PANIC triggered by simple assembly `require` function
- Dominant language
- Haskell
- Stars
- 113
- Forks
- 9
- Avg merge
- 4d 9h
- Merged PRs (30d)
- 1
Description
The line https://github.com/axic/solcore/blob/a14a61491592a710ea588050dd982ff9e816ac87/test/examples/dispatch/deposit.solc#L240 triggers this PANIC:
```
$ ./contest.sh test/examples/dispatch/deposit.json
Processing: test/examples/dispatch/deposit.json
Compiling to Hull...
PANIC: spec(require $420408>(ne uint256 -> sum((), ())>(callvalue(), uint256 uint256>(0)))): free type vars in sum((), ()) -> $420408: [TVar {var = $420408}] @ subst={$265579 |-> $420408, a |-> uint256, decodable |-> calldata(bytes), ty |-> (memory(string), (memory(string), (memory(string), uint256))), reader |-> CalldataWordReader, decoded |-> (memory(string), (memory(string), (memory(string), uint256))), b |-> (memory(string), (memory(string), uint256)), _s1 |-> NonPayable, _q1 |-> (memory(string), (memory(string), (memory(string), uint256))), _r1 |-> (), _p1 |-> t_deposit421831, name |-> DispatchNameTy_DepositContract_deposit, n |-> Method(DispatchNameTy_DepositContract_deposit, NonPayable, (memory(string), (memory(string), (memory(string), uint256))), (), t_deposit421831), m |-> Method(DispatchNameTy_DepositContract_supportsInterface, NonPayable, uint256, sum((), ()), t_supportsInterface292600), methods |-> (Method(DispatchNameTy_DepositContract_get_zero_hash, NonPayable, uint256, uint256, t_get_zero_hash410559), (Method(DispatchNameTy_DepositContract_get_deposit_root, NonPayable, (), uint256, t_get_deposit_root413685), (Method(DispatchNameTy_DepositContract_get_deposit_count, NonPayable, (), memory(string), t_get_deposit_count418663), (Method(DispatchNameTy_DepositContract_deposit, NonPayable, (memory(string), (memory(string), (memory(string), uint256))), (), t_deposit421831), Method(DispatchNameTy_DepositContract_supportsInterface, NonPayable, uint256, sum((), ()), t_supportsInterface292600))))), fallback |-> Fallback(NonPayable, (), (), t_revert_handler260167)}
Error: sol-core compilation failed
```
Removing that line allows for compilation. Prior to this a more complex `require` implementation (the one from `ownable.solc`) worked. Commenting out the assembly block in `require` makes it compile.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.