Skip to content
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

CSE: Include symbolic contracts corresponding to contract fields into accounts #600

Merged
merged 45 commits into from
Jun 12, 2024

Conversation

palinatolmach
Copy link
Collaborator

@palinatolmach palinatolmach commented Jun 5, 2024

Closes #597.

This PR

  • introduces the _create_cse_accounts function that recursively ensures that code and storage are in place for addresses/accounts corresponding to contract fields during CSE;
  • introduces lemmas needed for symbolic bytes reasoning, in particular, when handling constructors with symbolic parameters;
  • adds ContractFieldTest.testEscrowToken CSE test that exercises new functionality by creating summaries for contracts with contract fields.

Follow-up issues to this and related PRs:

src/kontrol/prove.py Outdated Show resolved Hide resolved
@palinatolmach palinatolmach linked an issue Jun 6, 2024 that may be closed by this pull request
src/kontrol/prove.py Outdated Show resolved Hide resolved
@palinatolmach palinatolmach marked this pull request as ready for review June 12, 2024 07:09
src/kontrol/prove.py Outdated Show resolved Hide resolved
src/kontrol/prove.py Outdated Show resolved Hide resolved
src/kontrol/prove.py Outdated Show resolved Hide resolved
@palinatolmach palinatolmach merged commit 71adb1a into master Jun 12, 2024
13 checks passed
@palinatolmach palinatolmach deleted the cse-contract-fields branch June 12, 2024 17:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CSE: generate code & storage for addresses in contract field
4 participants