IFTokenNativeUnderlying
Inherits:IFToken
Functions
NATIVE_TOKEN_ADDRESS
address that is mapped to the chain native token at Liquidity
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.
function depositNative(address receiver_) external payable returns (uint256 shares_);
Returns
Name | Type | Description |
---|---|---|
shares_ | uint256 | actually 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
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.
function mintNative(uint256 shares_, address receiver_) external payable returns (uint256 assets_);
Returns
Name | Type | Description |
---|---|---|
assets_ | uint256 | deposited 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_
.
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.
function withdrawNative(uint256 assets_, address receiver_, address owner_) external returns (uint256 shares_);
Returns
Name | Type | Description |
---|---|---|
shares_ | uint256 | burned 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.
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.
function redeemNative(uint256 shares_, address receiver_, address owner_) external returns (uint256 assets_);
Returns
Name | Type | Description |
---|---|---|
assets_ | uint256 | withdrawn 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.
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).
function withdrawWithSignatureNative(
uint256 sharesToPermit_,
uint256 assets_,
address receiver_,
address owner_,
uint256 maxSharesBurn_,
uint256 deadline_,
bytes calldata signature_
) external returns (uint256 shares_);
Parameters
Name | Type | Description |
---|---|---|
sharesToPermit_ | uint256 | shares amount to use for EIP2612 permit(). Should cover previewWithdraw(assets_) + small buffer. |
assets_ | uint256 | amount of assets to withdraw |
receiver_ | address | receiver of withdrawn assets |
owner_ | address | owner to withdraw from (must be signature signer) |
maxSharesBurn_ | uint256 | maximum accepted amount of shares burned |
deadline_ | uint256 | deadline for signature validity |
signature_ | bytes | packed signature of signing the EIP712 hash for ERC-2612 permit |
Returns
Name | Type | Description |
---|---|---|
shares_ | uint256 | burned 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.
function redeemWithSignatureNative(
uint256 shares_,
address receiver_,
address owner_,
uint256 minAmountOut_,
uint256 deadline_,
bytes calldata signature_
) external returns (uint256 assets_);
Parameters
Name | Type | Description |
---|---|---|
shares_ | uint256 | amount of shares to redeem |
receiver_ | address | receiver of withdrawn assets |
owner_ | address | owner to withdraw from (must be signature signer) |
minAmountOut_ | uint256 | minimum accepted amount of assets withdrawn |
deadline_ | uint256 | deadline for signature validity |
signature_ | bytes | packed signature of signing the EIP712 hash for ERC-2612 permit |
Returns
Name | Type | Description |
---|---|---|
assets_ | uint256 | withdrawn assets amount |