managed-oracle: add one-signature partial-success proposal batches - #79
managed-oracle: add one-signature partial-success proposal batches#79chrismaree wants to merge 2 commits into
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
md0x
left a comment
There was a problem hiding this comment.
Reviewed the batching design, EIP-712 witness encoding, budget/refund accounting, reentrancy surface, and test coverage at a4003bc. The witness type strings compose correctly with Permit2, per-item budgets are enforced via scoped allowances with balance-diff accounting, and the only-self execution boundary plus the shared reentrancy guard hold across the paths I could construct. Tests are thorough, including real-Permit2 signature verification, tamper fuzzing, refund-failure atomicity, gas exhaustion, and Polygon capacity bounds. No blockers found.
What Changed
chrismaree/signed-proposer-uups), which is based on managed-oracle: add Permit2 SignedProposer relay with partial-success batching #77. This diff adds batching to the upgradeable SignedProposer.proposeBatchfor one proposer and one collateral token, using a single Permit2 witness signature, nonce, and upfront transfer.Proposalstructure inside signedBatchProposalitems. Each item adds a bond-plus-paymentmaxAmount; the ordered item budgets must sum exactly to the permit amount.Why
Impact
proposeandtryMulticallentry points and the single-proposal witness remain available.tryMulticallstill accepts onlyproposecalls.proposeBatch. The funded execution helper rejects external callers, including calls routed through public multicall entry points.High risk Sections to review with detail
Validation
forge test --match-contract 'SignedProposer(Test|Permit2Test)' -vv— 81 passed, 0 failed, including 256 fuzz cases for signed-field/budget/order tampering.forge test --isolate --match-contract SignedProposerPermit2Test --match-test test_proposeBatch_maxAncillaryData_polygonCapacity -vv— passed with separate transaction contexts.expectRevertoverload uncovered by compilation. No test assertions were weakened.git diff --check.yarn install --frozen-lockfile.TL;DR: One user signature funds an ordered same-token batch; successful proposals persist, failed attempts are refunded, and the PR targets #78.