Skip to content

feat(solidity): add direct persistent-state reads and writes - #84

Open
tob-scott-a wants to merge 1 commit into
mainfrom
codex/71-solidity-state-web
Open

tob-scott-a wants to merge 1 commit into
mainfrom
codex/71-solidity-state-web

Conversation

@tob-scott-a

Copy link
Copy Markdown
Collaborator

Add a Solidity-first state web for #71. A function such as transfer now has READS/WRITES edges to persistent storage declarations such as token:Token.balances, with a location for each source occurrence. State queries return distinct declarations or readers/writers, while default call traversals remain unchanged.

The parser handles assignments, compound assignments, increments, deletes, struct/mapping/array accesses, direct array push/pop, and lexical shadowing. Constants, immutables, and transient variables are excluded. Model, storage, query, parser, JSON export, README, and snapshot coverage are included.

Scope: direct accesses to storage declared in the same contract. Inherited state, alias propagation, library/assembly/delegatecall effects, declaration initializers, generated getters, and transitive modifier effects are documented limitations. Other language adapters remain follow-up work, so this references rather than closes #71.

Validation:

  • Full pytest suite: 1,440 passed.
  • Ruff lint/format and ty: passed.
  • Focused mutation campaign using tests.run_mutations: 33/35 killed, with clean and instrumented baselines passing. The two surviving mutations change defensive declaration-field and expression-wrapper guards.
  • Dependency setup used the checked-in lockfile with uv --frozen because the local global exclude-newer setting predates a required locked dependency.

@tob-scott-a
tob-scott-a marked this pull request as ready for review October 16, 2026 19:22

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] state web across smart-contract languages

1 participant