Variables
Inherits: ERC20, ERC20Permit, Error, Constants, IFToken
State Variables
TOKEN_NAME_PREFIX
prefix for token name. fToken will append the underlying asset name
string private constant TOKEN_NAME_PREFIX = "Fluid ";
TOKEN_SYMBOL_PREFIX
prefix for token symbol. fToken will append the underlying asset symbol
string private constant TOKEN_SYMBOL_PREFIX = "f";
_rewardsRateModel
address of the LendingRewardsRateModel.
IFluidLendingRewardsRateModel internal _rewardsRateModel;
__placeholder_gap
uint96 private __placeholder_gap;
_liquidityExchangePrice
exchange price for the underlying assset in the liquidity protocol (without rewards)
uint64 internal _liquidityExchangePrice;
_tokenExchangePrice
exchange price between fToken and the underlying assset (with rewards)
uint64 internal _tokenExchangePrice;
_lastUpdateTimestamp
timestamp when exchange prices were updated the last time
uint40 internal _lastUpdateTimestamp;
_status
status for reentrancy guard
uint8 internal _status;
_rewardsActive
flag to signal if rewards are active without having to read slot 6
bool internal _rewardsActive;
_rebalancer
rebalancer address allowed to call rebalance()
and source for funding rewards (ReserveContract).
address internal _rebalancer;
Functions
constructor
constructor(IFluidLiquidity liquidity_, IFluidLendingFactory lendingFactory_, IERC20 asset_)
validAddress(address(liquidity_))
validAddress(address(lendingFactory_))
validAddress(address(asset_))
Constants(liquidity_, lendingFactory_, asset_)
ERC20(
string(abi.encodePacked(TOKEN_NAME_PREFIX, IERC20Metadata(address(asset_)).name())),
string(abi.encodePacked(TOKEN_SYMBOL_PREFIX, IERC20Metadata(address(asset_)).symbol()))
)
ERC20Permit(string(abi.encodePacked(TOKEN_NAME_PREFIX, IERC20Metadata(address(asset_)).name())));
Parameters
Name | Type | Description |
---|---|---|
liquidity_ | IFluidLiquidity | liquidity contract address |
lendingFactory_ | IFluidLendingFactory | lending factory contract address |
asset_ | IERC20 | underlying token address |
_checkValidAddress
checks that address is not the zero address, reverts if so. Calling the method in the modifier reduces bytecode size as modifiers are inlined into bytecode
function _checkValidAddress(address value_) internal pure;
validAddress
validates that an address is not the zero address
modifier validAddress(address value_);