Skip to content

refactor: update requestAsyncWithdraw to accept multiple signers and signatures#159

Open
jashmehta-qds wants to merge 4 commits into
devfrom
feat/frax-withdraw-multisig
Open

refactor: update requestAsyncWithdraw to accept multiple signers and signatures#159
jashmehta-qds wants to merge 4 commits into
devfrom
feat/frax-withdraw-multisig

Conversation

@jashmehta-qds

@jashmehta-qds jashmehta-qds commented Jun 29, 2026

Copy link
Copy Markdown

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. requestAsyncWithdraw takes signers and signatures arrays and validates them with IEtherFiSafe.checkSignatures, matching flows like cancelAsyncWithdraw and 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 with isCollateralToken / isBorrowToken guards.

Bytecode verification for FraxModule is 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.

…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.
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Credits must be used to enable repository wide code reviews.

jash-etherfi and others added 3 commits July 1, 2026 11:07
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.
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.

2 participants