runtimeverification / runtimeverification/kontrol
CSE: support aliases for contract fields
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 122
- Forks
- 16
- PR merge metrics
- No merged PRs in 30d
Description
We should add NatSpec annotations that allow to indicate that contract fields correspond to the same contract/account, e.g. /// @custom-kontrol-alias: escrowOne.oneEth, escrowTwo.oneEth,. They could then be used when CSEing contracts such as Governance:
contract Governance {
OneEth oneEth;
EscrowOne escrowOne;
EscrowTwo escrowTwo;
...
}
contract EscrowOne {
OneEth oneEth;
...
}
contract EscrowTwo {
OneEth oneEth;
...
}
in order to only generate a single account for oneEth instead of three (one for each contract involved).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files or tests; start by locating Kontrol's NatSpec/custom-annotation parsing and the CSE entry point for contract fields. Trace how Governance's escrowOne, escrowTwo, and oneEth fields become accounts, then define and test the alias behavior so the annotated fields produce one account rather than three.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, solidity
- Domain
- blockchain, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100