prepareDepositAuthorization() to determine the method, then prepareDeposit() to execute.
Import
prepareDepositAuthorization()
Determines the optimal authorization method for a deposit operation.Function Signature
Parameters
Return Type (Discriminated Union)
- Type Definition
- Permit Result
- Approval Result
- Already Approved Result
Decision Logic
The function follows this priority order:- Check
forceMethod— If specified, use that method directly - Detect smart wallet — If the address has deployed bytecode (Safe, EIP-4337, EIP-7702), route to
APPROVALso callers can batch approve + deposit atomically - Check permit support — If the token supports EIP-2612, return permit signature data
- Check existing allowance — If sufficient, return
ALREADY_APPROVED - Default to approval — Return approval transaction data
Token Permit Support
The following table shows which supported tokens use the gas-efficient EIP-2612 permit path versus the standard ERC-20 approval path. The SDK detects this automatically — useforceMethod: "approval" to override when needed (e.g., smart contract wallets).
prepareDeposit()
Prepares transaction data for a deposit, automatically using the correct method based on provided parameters.Function Signature
Parameters
Return Type
Returns a discriminated union based on which deposit method is used:Complete Flow Example
Force Specific Method
Override automatic detection when needed:Slippage Configuration
Error Handling
Related
- Deposits Guide - Complete integration examples
- DepositAuthMethod - Type definitions
- prepareDepositTxData - Lower-level deposit function