lfglabs-dev / lfglabs-dev/verity
feat(Semantics): first-class multicall + delegatecall frame semantics (bytes[] iteration)
Nobody has claimed this yet.
- Dominant language
- Lean
- Stars
- 148
- Forks
- 20
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 29
Description
Promoted from #1982 P1 to a standalone tracked issue (was previously only a roadmap bullet).
Problem
multicall(bytes[]) with self-delegatecall is currently a giant hand-rolled ECM: manual calldata length/offset walking via raw YulStmt, delegatecall, returndatacopy, revert bubbling, plus a delegatecall-context axiom (Morpho Midnight Contract.lean:22–95, Th0rgal/morpho-verity). Low-level delegatecall exists but is tracked under notModeledProxyUpgradeability.
Goal
bytes[]calldata iteration support (depends on the dynamic ABI codec, #1982 P0-1).- A source-level
multicallhelper with proven revert-bubbling semantics. - Delegatecall-with-own-storage-context semantics for the self-delegatecall case (narrower and sounder than general proxy upgradeability), replacing the per-contract context axiom.
Acceptance
Midnight multicall expressible as a standard helper; the delegatecall-context axiom and raw YulStmt introspection removed from the trust report.
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
Start with the dynamic ABI codec work in #1982 and the delegatecall-context discussion in Morpho Midnight Contract.lean:22–95. Review the existing raw YulStmt multicall handling and trust report; done means bytes[] iteration, source-level multicall with proven revert bubbling, and removal of the delegatecall-context axiom and raw YulStmt introspection.
Written by the indexing model from the issue text.
Assessment
- Domain
- blockchain
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100