-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Functions with array arguments give "Unsupported ABI type for method` error #55
Comments
From slack discussion with @iFrostizz : Currently, when we have a function signature with types, we generate a rule that simplifies that function signature to its abi encoding, while at teh same time using an ensures clause to make sure the symbolic variables present are in the correct range: https://github.com/runtimeverification/evm-semantics/blob/a68c97a2280b7ac9f1fc81f142464d0a23793b8d/tests/foundry/contracts.k.check.expected#L80 This is an example generated rule for the KEVM foundry test-suite at tests/foundry We call I think there are two things we can do here:
|
By the way, a similar issue also happens when a function has a |
Partly fixed, please see runtimeverification/evm-semantics#1883 (comment) for reference. |
A related PR introducing support for structs: runtimeverification/evm-semantics#2051. |
Closed by #321. |
The function
_range_predicate
insolc_to_k.py
does not support array types. As a result, if we try tofoundry-kompile
a function such asthat has an array as argument, we get the message
Unsupported ABI type for method TestContract.method_TestContract_testArray_address[], will not generate calldata sugar: address[]
, and no rule of the formis added to
foundry.k
. This makes it so that the function cannot be evaluated during symbolic execution. If we try to runkevm foundry-prove
on this function, the execution just starts branching on conditions likewithout ever stepping into the function.
The text was updated successfully, but these errors were encountered: