Skip to content

IFTokenNativeUnderlying ​

Git Source

Inherits:IFToken

Functions ​

NATIVE_TOKEN_ADDRESS ​

address that is mapped to the chain native token at Liquidity

solidity
function NATIVE_TOKEN_ADDRESS() external view returns (address);

depositNative ​

deposits msg.value amount of native token for receiver_. msg.value must be at least minDeposit() amount; reverts otherwise. Recommended to use depositNative() with a minAmountOut_ param instead to set acceptable limit.

solidity
function depositNative(address receiver_) external payable returns (uint256 shares_);

Returns

NameTypeDescription
shares_uint256actually minted shares

depositNative ​

same as depositNative but with an additional setting for minimum output amount. reverts with fToken__MinAmountOut() if minAmountOut_ of shares is not reached

solidity
function depositNative(address receiver_, uint256 minAmountOut_) external payable returns (uint256 shares_);

mintNative ​

mints shares_ for receiver_, paying with underlying native token. shares_ must at least be minMint() amount; reverts otherwise. shares_ set to type(uint256).max not supported. Note there might be tiny inaccuracies between requested shares_ and actually received shares amount. Recommended to use depositNative() over mint because it is more gas efficient and less likely to revert. Recommended to use mintNative() with a minAmountOut_ param instead to set acceptable limit.

solidity
function mintNative(uint256 shares_, address receiver_) external payable returns (uint256 assets_);

Returns

NameTypeDescription
assets_uint256deposited assets amount

mintNative ​

same as mintNative but with an additional setting for minimum output amount. reverts with fToken__MaxAmount() if maxAssets_ of assets is surpassed to mint shares_.

solidity
function mintNative(uint256 shares_, address receiver_, uint256 maxAssets_)
    external
    payable
    returns (uint256 assets_);

withdrawNative ​

withdraws assets_ amount in native underlying to receiver_, burning shares of owner_. If assets_ equals uint256.max then the whole fToken balance of owner_ is withdrawn.This does not consider withdrawal limit at liquidity so best to check with maxWithdraw() before. Note there might be tiny inaccuracies between requested assets_ and actually received assets amount. Recommended to use withdrawNative() with a maxSharesBurn_ param instead to set acceptable limit.

solidity
function withdrawNative(uint256 assets_, address receiver_, address owner_) external returns (uint256 shares_);

Returns

NameTypeDescription
shares_uint256burned shares

withdrawNative ​

same as withdrawNative but with an additional setting for minimum output amount. reverts with fToken__MaxAmount() if maxSharesBurn_ of shares burned is surpassed.

solidity
function withdrawNative(uint256 assets_, address receiver_, address owner_, uint256 maxSharesBurn_)
    external
    returns (uint256 shares_);

redeemNative ​

redeems shares_ to native underlying to receiver_, burning shares of owner_. If shares_ equals uint256.max then the whole balance of owner_ is withdrawn.This does not consider withdrawal limit at liquidity so best to check with maxRedeem() before. Recommended to use withdrawNative() over redeem because it is more gas efficient and can set specific amount. Recommended to use redeemNative() with a minAmountOut_ param instead to set acceptable limit.

solidity
function redeemNative(uint256 shares_, address receiver_, address owner_) external returns (uint256 assets_);

Returns

NameTypeDescription
assets_uint256withdrawn assets amount

redeemNative ​

same as redeemNative but with an additional setting for minimum output amount. reverts with fToken__MinAmountOut() if minAmountOut_ of assets is not reached.

solidity
function redeemNative(uint256 shares_, address receiver_, address owner_, uint256 minAmountOut_)
    external
    returns (uint256 assets_);

withdrawWithSignatureNative ​

withdraw amount of assets_ in native token with ERC-2612 permit signature for fToken approval. owner_ signs ERC-2612 permit signature_ to give allowance of fTokens to msg.sender. Note there might be tiny inaccuracies between requested assets_ and actually received assets amount. allowance via signature should cover previewWithdraw(assets_) plus a little buffer to avoid revert. Inherent trust assumption that msg.sender will set receiver_ and minAmountOut_ as owner_ intends (which is always the case when giving allowance to some spender).

solidity
function withdrawWithSignatureNative(
    uint256 sharesToPermit_,
    uint256 assets_,
    address receiver_,
    address owner_,
    uint256 maxSharesBurn_,
    uint256 deadline_,
    bytes calldata signature_
) external returns (uint256 shares_);

Parameters

NameTypeDescription
sharesToPermit_uint256shares amount to use for EIP2612 permit(). Should cover previewWithdraw(assets_) + small buffer.
assets_uint256amount of assets to withdraw
receiver_addressreceiver of withdrawn assets
owner_addressowner to withdraw from (must be signature signer)
maxSharesBurn_uint256maximum accepted amount of shares burned
deadline_uint256deadline for signature validity
signature_bytespacked signature of signing the EIP712 hash for ERC-2612 permit

Returns

NameTypeDescription
shares_uint256burned shares amount

redeemWithSignatureNative ​

redeem amount of shares_ as native token with ERC-2612 permit signature for fToken approval. owner_ signs ERC-2612 permit signature_ to give allowance of fTokens to msg.sender. Note there might be tiny inaccuracies between requested shares_ to redeem and actually burned shares. allowance via signature must cover shares_ plus a tiny buffer. Inherent trust assumption that msg.sender will set receiver_ and minAmountOut_ as owner_ intends (which is always the case when giving allowance to some spender). Recommended to use withdrawNative() over redeem because it is more gas efficient and can set specific amount.

solidity
function redeemWithSignatureNative(
    uint256 shares_,
    address receiver_,
    address owner_,
    uint256 minAmountOut_,
    uint256 deadline_,
    bytes calldata signature_
) external returns (uint256 assets_);

Parameters

NameTypeDescription
shares_uint256amount of shares to redeem
receiver_addressreceiver of withdrawn assets
owner_addressowner to withdraw from (must be signature signer)
minAmountOut_uint256minimum accepted amount of assets withdrawn
deadline_uint256deadline for signature validity
signature_bytespacked signature of signing the EIP712 hash for ERC-2612 permit

Returns

NameTypeDescription
assets_uint256withdrawn assets amount