runtimeverification / runtimeverification/kontrol

CSE: support aliases for contract fields

Open
#653 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

cse engagement enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.