fTokenCore ​
Inherits:Error, IERC4626, IFToken, Variables, Events, ReentrancyGuard
internal methods for fToken contracts
Functions ​
_getLiquidityExchangePrice ​
Gets current (updated) Liquidity supply exchange price for the underyling asset
function _getLiquidityExchangePrice() internal view returns (uint256 supplyExchangePrice_);_getLiquidityBalance ​
Gets current Liquidity supply balance of address(this) for the underyling asset
function _getLiquidityBalance() internal view returns (uint256 balance_);_getLiquidityUnderlyingBalance ​
Gets current Liquidity underlying token balance
function _getLiquidityUnderlyingBalance() internal view virtual returns (uint256);_getLiquidityWithdrawable ​
Gets current withdrawable amount at Liquidity withdrawalLimit_ (withdrawal limit or balance).
function _getLiquidityWithdrawable() internal view returns (uint256 withdrawalLimit_);_calculateNewTokenExchangePrice ​
Calculates new token exchange price based on the current liquidity exchange price newLiquidityExchangePrice_ and rewards rate.
function _calculateNewTokenExchangePrice(uint256 newLiquidityExchangePrice_)
internal
view
returns (uint256 newTokenExchangePrice_, bool rewardsEnded_);Parameters
| Name | Type | Description |
|---|---|---|
newLiquidityExchangePrice_ | uint256 | new (current) liquidity exchange price |
_updateRates ​
calculates new exchange prices, updates values in storage and returns new tokenExchangePrice (with reward rates)
function _updateRates(uint256 liquidityExchangePrice_, bool forceUpdateStorage_)
internal
returns (uint256 tokenExchangePrice_);_splitSignature ​
splits a bytes signature sig into v, r, s. Taken from https://docs.soliditylang.org/en/v0.8.17/solidity-by-example.html
function _splitSignature(bytes memory sig) internal pure returns (uint8 v, bytes32 r, bytes32 s);_depositToLiquidity ​
Deposit assets_ amount of tokens to Liquidity
function _depositToLiquidity(uint256 assets_, bytes memory liquidityCallbackData_)
internal
virtual
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 |
_withdrawFromLiquidity ​
Withdraw assets_ amount of tokens from Liquidity directly to receiver_
function _withdrawFromLiquidity(uint256 assets_, address receiver_) internal virtual 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 |
_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
validAddress(receiver_)
returns (uint256 sharesMinted_);_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
validAddress(receiver_)
returns (uint256 sharesBurned_);
