Repository navigation
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 44 minutes. View limit detailsLimit details: You’ve used the included review currently available. Review configuration: ⚙️ Run configuration
📒 Files selected for processing (4)
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (4)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe change adds ChangesERC20 withdrawal recovery adaptor
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Feature Merge Risk: ⚪ Minimal · up to The recovery adaptor’s recorded identity and runtime match the observed Optimism deployment; no concrete merge-blocking issue was found. Architecture SummaryArchitecture risk: 🔵 Low · up to The change affects 3 systems. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
- Warn in ERC20WithdrawalRecoveryAdaptor that it must replace, never sit beside, an ERC20Adaptor position for the same token; otherwise the token is counted twice in totalAssets. - Commit the exact deployed source. Compiled as src/modules/adaptors/ERC20Adaptor.sol at 07efdfa, it reproduces the full live runtime including metadata (0x0d037adb...fb12), so it can be used for block explorer verification. - Record intended use in the manifest: replaces position 9 (rETH via ERC20Adaptor) with 9999 on the Optimism RYETH vault, plus the live state checked at block 157789515. - Note that the "Candidate" identifier string is fixed by the deployment, and that the bytecode pin test is intentional. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The live Optimism RYETH recovery flow uses a separately identified ERC20 adaptor, but that adaptor was not represented in
cellar-contracts. This adds the reviewable repository source and records the exact deployment evidence.The new
ERC20WithdrawalRecoveryAdaptorinherits the audited ERC20 behavior and overrides onlyidentifier(). The existingERC20Adaptoridentifier remains unchanged; it is markedvirtualsolely to permit the isolated recovery identifier.Deployment evidence:
0x214ff95df1Ec8238977dACAeD9768441ce7d05dc0x65bb90168ba5a3459d09c631105fb7cf8e53ac3820069b77f6927278dc02477d0x0d037adbce330a32869a4ba8a29f93c56aa3767094a9185405061b2c6a38fb120x5509c54323791d5da52562bf42d23f36858c1bd57454abe30ad056f5fc3ff0cbThe repository build has the same 2,256-byte metadata-free runtime as the deployed contract. Solidity metadata differs because this reviewable version uses a distinct source path and contract name; the deployment manifest states that boundary explicitly.
Validation:
forge buildforge test --match-contract ERC20WithdrawalRecoveryAdaptorTest— 3 passedforge fmt --check src/modules/adaptors/ERC20WithdrawalRecoveryAdaptor.sol test/testAdaptors/ERC20WithdrawalRecoveryAdaptor.t.solgit diff --checkidentifier(),isDebt(), full runtime hash, and metadata-free bytecode comparisonThe full
forge testrun compiled successfully, but local fork tests could not complete because the public Ethereum and Arbitrum endpoints reject the suite's historical archive reads. GitHub CI supplies the repository's configured archive RPC secrets.Summary by CodeRabbit