StableDebtToken
https://github.com/Into-the-Fathom/fathom-lending-platform-smart-contracts/blob/master/contracts/protocol/tokenization/StableDebtToken.sol
The StableDebtToken
is a specialized token in the Fathom protocol used to track borrowing positions at a stable interest rate. This token does not inherit from IERC20
to save on code size and avoids standard ERC20 functionalities such as transfers and approvals, given its non-transferable nature.
Events
Initialized: Emitted when the token is initialized.
underlyingAsset
: Address of the underlying asset.pool
: Address of the associated pool.incentivesController
: Address of the incentives controller.debtTokenDecimals
: Decimals of the debt token.debtTokenName
: Name of the debt token.debtTokenSymbol
: Symbol of the debt token.params
: Encoded parameters for additional initialization.
Mint: Emitted when new stable debt is minted.
user
: Address of the user who triggered the minting.onBehalfOf
: Address receiving the stable debt tokens.amount
: Amount minted (user-entered amount + balance increase from interest).currentBalance
: Balance of the user based on the previous balance and balance increase from interest.balanceIncrease
: Increase in balance since the last action of the useronBehalfOf
.newRate
: Rate of the debt after the minting.avgStableRate
: Next average stable rate after the minting.newTotalSupply
: Next total supply of the stable debt token after the action.
Burn: Emitted when stable debt is burned.
from
: Address from which the debt will be burned.amount
: Amount being burned (user-entered amount - balance increase from interest).currentBalance
: Balance of the user based on the previous balance and balance increase from interest.balanceIncrease
: Increase in balance since the last action offrom
.avgStableRate
: Next average stable rate after the burning.newTotalSupply
: Next total supply of the stable debt token after the action.
Functions
initialize
Initializes the debt token.
Parameters:
pool
: The pool contract that is initializing this contract.underlyingAsset
: The address of the underlying asset of this debt token.incentivesController
: The smart contract managing potential incentives distribution.debtTokenDecimals
: The decimals of the debt token, same as the underlying asset's.debtTokenName
: The name of the token.debtTokenSymbol
: The symbol of the token.params
: Encoded parameters for additional initialization.
getAverageStableRate
Returns the average rate of all the stable rate loans.
Returns:
The average stable rate.
getUserLastUpdated
Returns the timestamp of the last update of the user.
Parameters:
user
: The address of the user.
Returns:
The timestamp.
getUserStableRate
Returns the stable rate of the user's debt.
Parameters:
user
: The address of the user.
Returns:
The stable rate of the user.
balanceOf
Returns the balance of a user.
Parameters:
account
: The address of the user.
Returns:
The balance of the user.
mint
Mints debt tokens to the onBehalfOf
address.
Parameters:
user
: The address receiving the borrowed underlying.onBehalfOf
: The address receiving the debt tokens.amount
: The amount of debt tokens to mint.rate
: The rate of the debt being minted.
Returns:
bool
: True if it is the first borrow, false otherwise.uint256
: The total stable debt.uint256
: The average stable borrow rate.
burn
Burns debt of user
.
Parameters:
from
: The address from which the debt will be burned.amount
: The amount of debt tokens getting burned.
Returns:
uint256
: The total stable debt.uint256
: The average stable borrow rate.
getSupplyData
Returns the principal, the total supply, the average stable rate, and the timestamp for the last update.
Returns:
uint256
: The principal.uint256
: The total supply.uint256
: The average stable rate.uint40
: The timestamp of the last update.
getTotalSupplyAndAvgRate
Returns the total supply and the average stable rate.
Returns:
uint256
: The total supply.uint256
: The average rate.
totalSupply
Returns the total supply of the stable debt tokens.
Returns:
The total supply.
getTotalSupplyLastUpdated
Returns the timestamp of the last update of the total supply.
Returns:
The timestamp.
principalBalanceOf
Returns the principal debt balance of the user.
Parameters:
user
: The address of the user.
Returns:
The debt balance of the user since the last burn/mint action.
UNDERLYING_ASSET_ADDRESS
Returns the address of the underlying asset of this stable debt token.
Returns:
The address of the underlying asset.
Non-Implemented ERC20 Functions
The following ERC20 functions are not implemented because StableDebtToken
is non-transferable:
transfer
allowance
approve
transferFrom
increaseAllowance
decreaseAllowance
Last updated