fTokenNativeUnderlyingOverrides
Inherits:fToken, IFTokenNativeUnderlying
overrides certain methods from the inherited fToken used as base contract to make them compatible with the native token being used as underlying.
State Variables
NATIVE_TOKEN_ADDRESS
address that is mapped to the chain native token at Liquidity
address public constant NATIVE_TOKEN_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
Functions
_getLiquiditySlotLinksAsset
gets asset address for liquidity slot links, overridden to set native token address
function _getLiquiditySlotLinksAsset() internal view virtual override returns (address);
_getLiquidityUnderlyingBalance
Gets current Liquidity underlying token balance
function _getLiquidityUnderlyingBalance() internal view virtual override returns (uint256);
rescueFunds
sends any potentially stuck funds to Liquidity contract. Only callable by LendingFactory auths.
function rescueFunds(address token_) external virtual override(IFTokenAdmin, fTokenAdmin) nonReentrant;
rebalance
function rebalance()
external
payable
virtual
override(IFTokenAdmin, fTokenAdmin)
nonReentrant
returns (uint256 assets_);
_depositToLiquidity
Deposit assets_
amount of tokens to Liquidity
function _depositToLiquidity(uint256 assets_, bytes memory liquidityCallbackData_)
internal
virtual
override
returns (uint256 exchangePrice_);
Parameters
Name | Type | Description |
---|---|---|
assets_ | uint256 | The amount of tokens to deposit |
liquidityCallbackData_ | bytes | callback data passed to Liquidity for liquidityCallback |
Returns
Name | Type | Description |
---|---|---|
exchangePrice_ | uint256 | liquidity exchange price for token |
_executeDeposit
deposits assets_
into liquidity and mints shares for receiver_
. Returns amount of sharesMinted_
.
function _executeDeposit(uint256 assets_, address receiver_, bytes memory liquidityCallbackData_)
internal
virtual
override
returns (uint256 sharesMinted_);
_executeDepositNative
deposits msg.value
amount of native token into liquidity and mints shares for receiver_
.
Returns amount of sharesMinted_
.
function _executeDepositNative(address receiver_) internal virtual returns (uint256 sharesMinted_);
_withdrawFromLiquidity
Withdraw assets_
amount of tokens from Liquidity directly to receiver_
function _withdrawFromLiquidity(uint256 assets_, address receiver_)
internal
virtual
override
returns (uint256 exchangePrice_);
Parameters
Name | Type | Description |
---|---|---|
assets_ | uint256 | The amount of tokens to withdraw |
receiver_ | address | the receiver address of withdraw amount |
Returns
Name | Type | Description |
---|---|---|
exchangePrice_ | uint256 | liquidity exchange price for token |
_executeWithdraw
withdraws assets_
from liquidity to receiver_
and burns shares from owner_
.
Returns amount of sharesBurned_
.
requires nonReentrant! modifier on calling method otherwise ERC777s could reenter!
function _executeWithdraw(uint256 assets_, address receiver_, address owner_)
internal
virtual
override
returns (uint256 sharesBurned_);
_executeWithdrawNative
withdraws assets_
from liquidity to receiver_
and burns shares from owner_
.
Returns amount of sharesBurned_
.
function _executeWithdrawNative(uint256 assets_, address receiver_, address owner_)
internal
virtual
returns (uint256 sharesBurned_);