-
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
External calls in CSE executions #356
Comments
We now have support for basic external function calls as part of #355. Problem 1 was resolved by adding the condition explicitly. The remaining problems disappeared with the addition of the contract being executed to As an example, from the
results in expected KCFGs and branchings. Specifically, the KCFG of
the KCFG for
and the KCFG for
and we can see that how the specification of The branching on the call depth that is still present is expected. |
When it comes to handling external function calls, the current CSE initial state is too general, leading to infeasible branches and even proof crashes. PR #355 introduces a simple contract whose only purpose is to test the handling of external calls:
Executing
identity_wrapper
in CSE mode results in the following problems:ID_CELL:Int #Equals 645326474426547203313410069153905908525362434349
, since the address of the contract analysed cannot be the address of the Foundry cheatcodes. This can be fixed by having the disequality in the intiial CSE state.true #Equals BAL:Int <Int 0
, whereBAL
is an account balance. This can be fixed by having balances and other account parameters be within the appropriate bounds in the initial CSE state. This also means that the<accounts>
cell should not be fully symbolic, but should expose the accounts that we know have to be present (e.g., the contract being executed).#checkBalanceUnderflow
caused by incompleteness of the associated rules, as brought up in this KEVM issue, which leads to a crash.The associated kcfg and the bug report which includes all of the requests are attached below.
identity_wrapper.txt
id-wrapper-crash.tar.gz
The text was updated successfully, but these errors were encountered: