Async deposit flow

1) User requests a deposit

 function requestDeposit(
        uint256 assets,
        address controller,
        address owner
    ) external payable returns (uint256 requestId);Copy

Args:

  • assets: the quantity of underlying to deposit.

  • controller: the address that will control the request. The user address.

  • owner: the address from which the asset will be transfered from. The user address.

circle-info

An asset.approve() transaction from the user to the vault should happen before the request deposit.

After the transaction, users can check their pending requests by calling:

function pendingDepositRequest(
        uint256 requestId, 
        address controller
    ) external view returns (uint256 assets);Copy

Args:

  • requestId, the id of the deposit request. Put 0 as a wildcard.

  • controller. User address.

Return:

  • Amount of assets pending

2) User claim his shares

After a settleDeposits, the shares are claimable and waiting in the vault.

circle-exclamation

A user can know the amount of claimable shares by calling:

He can claim them by calling:

or

Args:

  • shares: the amount of shares to claim. Between 0 and the return of maxMint(userAddress).

  • receiver: user address.

Ux tip - Claim shares and request redeem in one tx

A user with claimable shares can directly request a redemption by calling:

Note: Already claimed shares can be requested to be redeemed via this method. It also means that you could only use this function to do redemption requests.

circle-check

Last updated