refactor: update requestAsyncWithdraw to accept multiple signers and signatures#159
Open
jashmehta-qds wants to merge 4 commits into
Open
refactor: update requestAsyncWithdraw to accept multiple signers and signatures#159jashmehta-qds wants to merge 4 commits into
jashmehta-qds wants to merge 4 commits into
Conversation
…signatures Modified the requestAsyncWithdraw function in FraxModule to accept an array of signers and their corresponding signatures, enhancing the security by requiring a quorum of signatures for withdrawal requests. Updated related tests to reflect these changes.
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
Replaced calls to `getNonce` with `safe.nonce()` in the FraxModule and its corresponding tests to ensure consistency and correctness in nonce handling for async withdrawal requests. This change enhances the reliability of the signature verification process.
Added a skip statement in the bytecode verification test for the FraxModule to account for intentional differences between local and deployed implementations until redeployment occurs.
Changed the addresses for fraxusd, custodian, fraxUsdPriceOracle, and remoteHop to new values. Updated the import for PriceProvider to use PriceProviderV2. Enhanced the debt manager configuration to be idempotent for collateral and borrow tokens, improving reliability in token management.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Modified the requestAsyncWithdraw function in FraxModule to accept an array of signers and their corresponding signatures, enhancing the security by requiring a quorum of signatures for withdrawal requests. Updated related tests to reflect these changes.
Note
Medium Risk
Authorization for cross-chain async withdrawals to arbitrary recipients is stricter (breaking API for integrators) and changes on-chain FraxModule bytecode; deploy/oracle config changes affect production setup until redeploy.
Overview
Frax async withdrawals now require Safe owner quorum instead of a single admin signature.
requestAsyncWithdrawtakessignersandsignaturesarrays and validates them withIEtherFiSafe.checkSignatures, matching flows likecancelAsyncWithdrawand other bridge modules where funds leave to an external recipient.The async-withdraw digest now uses
IEtherFiSafe(safe).useNonce()for the nonce field (tests and helpers updated accordingly). A test asserts that one owner signature is not enough.Deploy script changes: switches to PriceProviderV2 (
isStableToken+baseAsset), updates Frax-related contract addresses, and makes DebtManager collateral/borrow setup idempotent withisCollateralToken/isBorrowTokenguards.Bytecode verification for
FraxModuleis skipped in Scroll and OP mainnet tests until redeploy updates deployed addresses.Reviewed by Cursor Bugbot for commit 312edf9. Bugbot is set up for automated code reviews on this repo. Configure here.