Pool

Constructor

    constructor(
        address manager_,
        address asset_,
        address destination_,
        uint256 bootstrapMint_,
        uint256 initialSupply_,
        string name_,
        string symbol_
    );

Parameters:

Functions

BOOTSTRAP_MINT

The amount of shares that will be burned during the first deposit/mint.

    function BOOTSTRAP_MINT()
        view
        returns (
            uint256
        );

Return Values:

DOMAIN_SEPARATOR

Returns the signature domain separator.

    function DOMAIN_SEPARATOR()
        view
        returns (
            bytes32 domainSeparator_
        );

Return Values:

PERMIT_TYPEHASH

Returns the permit type hash.

    function PERMIT_TYPEHASH()
        view
        returns (
            bytes32
        );

Return Values:

allowance

Returns the allowance that one account has given another over their tokens.

    function allowance(
        address,
        address
    )
        view
        returns (
            uint256
        );

Parameters:

Return Values:

approve

Function that allows one account to set the allowance of another account over their tokens. Emits an {Approval} event.

    function approve(
        address spender_,
        uint256 amount_
    )
        nonpayable
        returns (
            bool success_
        );

Parameters:

Return Values:

asset

The address of the underlying asset used by the Vault. MUST be a contract that implements the ERC-20 standard. MUST NOT revert.

    function asset()
        view
        returns (
            address
        );

Return Values:

balanceOf

Returns the amount of tokens owned by a given account.

    function balanceOf(
        address
    )
        view
        returns (
            uint256
        );

Parameters:

Return Values:

balanceOfAssets

Returns the amount of underlying assets owned by the specified account.

    function balanceOfAssets(
        address account_
    )
        view
        returns (
            uint256 balanceOfAssets_
        );

Parameters:

Return Values:

convertToAssets

The amount of `assets_` the `shares_` are currently equivalent to. MUST NOT be inclusive of any fees that are charged against assets in the Vault. MUST NOT reflect slippage or other on-chain conditions when performing the actual exchange. MUST NOT show any variations depending on the caller. MUST NOT revert.

    function convertToAssets(
        uint256 shares_
    )
        view
        returns (
            uint256 assets_
        );

Parameters:

Return Values:

convertToExitAssets

Returns the amount of exit assets for the input amount.

    function convertToExitAssets(
        uint256 shares_
    )
        view
        returns (
            uint256 assets_
        );

Parameters:

Return Values:

convertToExitShares

Returns the amount of exit shares for the input amount.

    function convertToExitShares(
        uint256 amount_
    )
        view
        returns (
            uint256 shares_
        );

Parameters:

Return Values:

convertToShares

The amount of `shares_` the `assets_` are currently equivalent to. MUST NOT be inclusive of any fees that are charged against assets in the Vault. MUST NOT reflect slippage or other on-chain conditions when performing the actual exchange. MUST NOT show any variations depending on the caller. MUST NOT revert.

    function convertToShares(
        uint256 assets_
    )
        view
        returns (
            uint256 shares_
        );

Parameters:

Return Values:

decimals

Returns the decimal precision used by the token.

    function decimals()
        view
        returns (
            uint8
        );

Return Values:

decreaseAllowance

Function that allows one account to decrease the allowance of another account over their tokens. Emits an {Approval} event.

    function decreaseAllowance(
        address spender_,
        uint256 subtractedAmount_
    )
        nonpayable
        returns (
            bool success_
        );

Parameters:

Return Values:

deposit

Mints `shares_` to `receiver_` by depositing `assets_` into the Vault. MUST emit the {Deposit} event. MUST revert if all of the assets cannot be deposited (due to insufficient approval, deposit limits, slippage, etc).

    function deposit(
        uint256 assets_,
        address receiver_
    )
        nonpayable
        returns (
            uint256 shares_
        );

Parameters:

Return Values:

depositWithPermit

Does a ERC4626 `deposit` with a ERC-2612 `permit`.

    function depositWithPermit(
        uint256 assets_,
        address receiver_,
        uint256 deadline_,
        uint8 v_,
        bytes32 r_,
        bytes32 s_
    )
        nonpayable
        returns (
            uint256 shares_
        );

Parameters:

Return Values:

increaseAllowance

Function that allows one account to increase the allowance of another account over their tokens. Emits an {Approval} event.

    function increaseAllowance(
        address spender_,
        uint256 addedAmount_
    )
        nonpayable
        returns (
            bool success_
        );

Parameters:

Return Values:

manager

The address of the account that is allowed to update the vesting schedule.

    function manager()
        view
        returns (
            address
        );

Return Values:

maxDeposit

Maximum amount of `assets_` that can be deposited on behalf of the `receiver_` through a `deposit` call. MUST return a limited value if the receiver is subject to any limits, or the maximum value otherwise. MUST NOT revert.

    function maxDeposit(
        address receiver_
    )
        view
        returns (
            uint256 maxAssets_
        );

Parameters:

Return Values:

maxMint

Maximum amount of `shares_` that can be minted on behalf of the `receiver_` through a `mint` call. MUST return a limited value if the receiver is subject to any limits, or the maximum value otherwise. MUST NOT revert.

    function maxMint(
        address receiver_
    )
        view
        returns (
            uint256 maxShares_
        );

Parameters:

Return Values:

maxRedeem

Maximum amount of `shares_` that can be redeemed from the `owner_` through a `redeem` call. MUST return a limited value if the owner is subject to any limits, or the total amount of owned shares otherwise. MUST NOT revert.

    function maxRedeem(
        address owner_
    )
        view
        returns (
            uint256 maxShares_
        );

Parameters:

Return Values:

maxWithdraw

Maximum amount of `assets_` that can be withdrawn from the `owner_` through a `withdraw` call. MUST return a limited value if the owner is subject to any limits, or the total amount of owned assets otherwise. MUST NOT revert.

    function maxWithdraw(
        address owner_
    )
        view
        returns (
            uint256 maxAssets_
        );

Parameters:

Return Values:

mint

Mints `shares_` to `receiver_` by depositing `assets_` into the Vault. MUST emit the {Deposit} event. MUST revert if all of shares cannot be minted (due to insufficient approval, deposit limits, slippage, etc).

    function mint(
        uint256 shares_,
        address receiver_
    )
        nonpayable
        returns (
            uint256 assets_
        );

Parameters:

Return Values:

mintWithPermit

Does a ERC4626 `mint` with a ERC-2612 `permit`.

    function mintWithPermit(
        uint256 shares_,
        address receiver_,
        uint256 maxAssets_,
        uint256 deadline_,
        uint8 v_,
        bytes32 r_,
        bytes32 s_
    )
        nonpayable
        returns (
            uint256 assets_
        );

Parameters:

Return Values:

name

Returns the name of the token.

    function name()
        view
        returns (
            string
        );

Return Values:

nonces

Returns the nonce for the given owner.

    function nonces(
        address
    )
        view
        returns (
            uint256
        );

Parameters:

Return Values:

permit

Approve by signature.

    function permit(
        address owner_,
        address spender_,
        uint256 amount_,
        uint256 deadline_,
        uint8 v_,
        bytes32 r_,
        bytes32 s_
    )
        nonpayable;

Parameters:

previewDeposit

Allows an on-chain or off-chain user to simulate the effects of their deposit at the current block, given current on-chain conditions. MUST return as close to and no more than the exact amount of shares that would be minted in a `deposit` call in the same transaction. MUST NOT account for deposit limits like those returned from `maxDeposit` and should always act as though the deposit would be accepted.

    function previewDeposit(
        uint256 assets_
    )
        view
        returns (
            uint256 shares_
        );

Parameters:

Return Values:

previewMint

Allows an on-chain or off-chain user to simulate the effects of their mint at the current block, given current on-chain conditions. MUST return as close to and no fewer than the exact amount of assets that would be deposited in a `mint` call in the same transaction. MUST NOT account for mint limits like those returned from `maxMint` and should always act as though the minting would be accepted.

    function previewMint(
        uint256 shares_
    )
        view
        returns (
            uint256 assets_
        );

Parameters:

Return Values:

previewRedeem

Allows an on-chain or off-chain user to simulate the effects of their redemption at the current block, given current on-chain conditions. MUST return as close to and no more than the exact amount of assets that would be withdrawn in a `redeem` call in the same transaction. MUST NOT account for redemption limits like those returned from `maxRedeem` and should always act as though the redemption would be accepted.

    function previewRedeem(
        uint256 shares_
    )
        view
        returns (
            uint256 assets_
        );

Parameters:

Return Values:

previewWithdraw

Allows an on-chain or off-chain user to simulate the effects of their withdrawal at the current block, given current on-chain conditions. MUST return as close to and no fewer than the exact amount of shares that would be burned in a `withdraw` call in the same transaction. MUST NOT account for withdrawal limits like those returned from `maxWithdraw` and should always act as though the withdrawal would be accepted.

    function previewWithdraw(
        uint256 assets_
    )
        view
        returns (
            uint256 shares_
        );

Parameters:

Return Values:

redeem

Burns `shares_` from `owner_` and sends `assets_` to `receiver_`. MUST emit the {Withdraw} event. MUST revert if all of the shares cannot be redeemed (due to insufficient shares, withdrawal limits, slippage, etc).

    function redeem(
        uint256 shares_,
        address receiver_,
        address owner_
    )
        nonpayable
        returns (
            uint256 assets_
        );

Parameters:

Return Values:

removeShares

Removes shares from the withdrawal mechanism, can only be called after the beginning of the withdrawal window has passed.

    function removeShares(
        uint256 shares_,
        address owner_
    )
        nonpayable
        returns (
            uint256 sharesReturned_
        );

Parameters:

Return Values:

requestRedeem

Requests a redemption of shares from the pool.

    function requestRedeem(
        uint256 shares_,
        address owner_
    )
        nonpayable
        returns (
            uint256 escrowedShares_
        );

Parameters:

Return Values:

requestWithdraw

Requests a withdrawal of assets from the pool.

    function requestWithdraw(
        uint256 assets_,
        address owner_
    )
        nonpayable
        returns (
            uint256 escrowedShares_
        );

Parameters:

Return Values:

symbol

Returns the symbol of the token.

    function symbol()
        view
        returns (
            string
        );

Return Values:

totalAssets

Total amount of the underlying asset that is managed by the Vault. SHOULD include compounding that occurs from any yields. MUST NOT revert.

    function totalAssets()
        view
        returns (
            uint256 totalAssets_
        );

Return Values:

totalSupply

Returns the total amount of tokens in existence.

    function totalSupply()
        view
        returns (
            uint256
        );

Return Values:

transfer

Moves an amount of tokens from `msg.sender` to a specified account. Emits a {Transfer} event.

    function transfer(
        address recipient_,
        uint256 amount_
    )
        nonpayable
        returns (
            bool success_
        );

Parameters:

Return Values:

transferFrom

Moves a pre-approved amount of tokens from a sender to a specified account. Emits a {Transfer} event. Emits an {Approval} event.

    function transferFrom(
        address owner_,
        address recipient_,
        uint256 amount_
    )
        nonpayable
        returns (
            bool success_
        );

Parameters:

Return Values:

unrealizedLosses

Returns the amount unrealized losses.

    function unrealizedLosses()
        view
        returns (
            uint256 unrealizedLosses_
        );

Return Values:

withdraw

Burns `shares_` from `owner_` and sends `assets_` to `receiver_`. MUST emit the {Withdraw} event. MUST revert if all of the assets cannot be withdrawn (due to insufficient assets, withdrawal limits, slippage, etc).

    function withdraw(
        uint256 assets_,
        address receiver_,
        address owner_
    )
        nonpayable
        returns (
            uint256 shares_
        );

Parameters:

Return Values:

Events

Approval

Emitted when one account has set the allowance of another account over their tokens.

    event Approval(
        address owner_,
        address spender_,
        uint256 amount_
    );

Parameters:

BootstrapMintPerformed

Initial shares amount was minted to the zero address to prevent the first depositor frontrunning exploit.

    event BootstrapMintPerformed(
        address caller_,
        address receiver_,
        uint256 assets_,
        uint256 shares_,
        uint256 bootStrapMintAmount_
    );

Parameters:

Deposit

`caller_` has exchanged `assets_` for `shares_` and transferred them to `owner_`. MUST be emitted when assets are deposited via the `deposit` or `mint` methods.

    event Deposit(
        address caller_,
        address owner_,
        uint256 assets_,
        uint256 shares_
    );

Parameters:

OwnershipAccepted

`newOwner_` has accepted the transferral of RDT ownership from `previousOwner_`.

    event OwnershipAccepted(
        address previousOwner_,
        address newOwner_
    );

Parameters:

PendingOwnerSet

`owner_` has set the new pending owner of RDT to `pendingOwner_`.

    event PendingOwnerSet(
        address owner_,
        address pendingOwner_
    );

Parameters:

RedemptionRequested

A new redemption request has been made.

    event RedemptionRequested(
        address owner_,
        uint256 shares_,
        uint256 escrowedShares_
    );

Parameters:

SharesRemoved

Shares have been removed.

    event SharesRemoved(
        address owner_,
        uint256 shares_
    );

Parameters:

Transfer

Emitted when tokens have moved from one account to another.

    event Transfer(
        address owner_,
        address recipient_,
        uint256 amount_
    );

Parameters:

Withdraw

`caller_` has exchanged `shares_`, owned by `owner_`, for `assets_`, and transferred them to `receiver_`. MUST be emitted when assets are withdrawn via the `withdraw` or `redeem` methods.

    event Withdraw(
        address caller_,
        address receiver_,
        address owner_,
        uint256 assets_,
        uint256 shares_
    );

Parameters:

WithdrawRequested

A new withdrawal request has been made.

    event WithdrawRequested(
        address owner_,
        uint256 assets_,
        uint256 escrowedShares_
    );

Parameters:

Last updated