MaxApyRouter

Overview

The MaxApyRouter is a helper contract that provides safe and convenient ways to interact with MaxApy vaults. It supports standard ERC20 deposits, permit-style deposits, and native token operations.

Constants

IWrappedToken public immutable wrappedToken;    // Chain's wrapped native token

Errors

error FailedNativeTransfer();          // Native token transfer failed
error InsufficientShares();            // Not enough shares received
error InsufficientAssets();            // Not enough assets received
error ReceiveNotAllowed();             // Unauthorized receive call
error InvalidRecipient();              // Zero address recipient

Functions

Deposit Functions

deposit

Deposits tokens into a vault using standard ERC20 transfers.

Parameters:

  • vault: Target MaxApy vault

  • amount: Amount of tokens to deposit

  • recipient: Address to receive shares

  • minSharesOut: Minimum shares to receive

Returns:

  • Amount of shares minted

depositWithPermit

Deposits tokens using EIP-2612 permit for approval-free deposits.

Parameters:

  • vault: Target MaxApy vault

  • amount: Amount of tokens to deposit

  • recipient: Address to receive shares

  • deadline: Permit deadline

  • v: Signature component

  • r: Signature component

  • s: Signature component

  • minSharesOut: Minimum shares to receive

Returns:

  • Amount of shares minted

depositNative

Deposits native token by wrapping it first.

Parameters:

  • vault: Target MaxApy vault

  • recipient: Address to receive shares

  • minSharesOut: Minimum shares to receive

Returns:

  • Amount of shares minted

Withdrawal Functions

redeem

Redeems shares for underlying tokens.

Parameters:

  • vault: Target MaxApy vault

  • shares: Amount of shares to redeem

  • recipient: Address to receive assets

  • minAmountOut: Minimum assets to receive

Returns:

  • Amount of assets received

redeemNative

Redeems shares for native tokens.

Parameters:

  • vault: Target MaxApy vault

  • shares: Amount of shares to redeem

  • recipient: Address to receive native tokens

  • minAmountOut: Minimum assets to receive

Returns:

  • Amount of native tokens received

Helper Functions

_approveMax

Approves maximum token spending limit if current allowance is zero.

Parameters:

  • _vault: Vault address to approve

  • _token: Token to approve spending for

Last updated