Interest Token

The governance token of Interest Protocol.

Open Zeppelin Contracts

MINTER_ROLE

function MINTER_ROLE() external view returns(bytes32);
Summary
It returns the hash assigned to the MINTER_ROLE. Addresses must have this role to call the mint function.

DEVELOPER_ROLE

function DEVELOPER_ROLE() external view returns(bytes32);
Summary
It returns the hash assigned to the DEVELOPER_ROLE. Addresses must have this role to upgrade the Interest Token contract.

mint

function mint(address account, uint256 amount) external;
Parameters
  1. 1.
    Account - address: The address that will receive the new-minted tokens
  2. 2.
    Amount - uint256: The amount of new tokens.
Restrictions
  • onlyRole modifier: Callers must have the MINTER_ROLE to call this function.
Event
event Transfer(address indexed from, address indexed to, uint256 value);
Summary
This function allows authorized contracts to mint Interest Token to incentivize liquidity providers.

burn

function burn(uint256 amount) external;
Parameters
  1. 1.
    Amount - uint256: The amount of tokens to be burned.
Event
event Transfer(address indexed from, address indexed to, uint256 value);
Summary
This function allows the caller to burn his/her own tokens.

burnFrom

function burnFrom(address account, uint256 amount) external;
Parameters
  1. 1.
    Account - address: The address that will have its tokens burned.
  2. 2.
    Amount - uint256: The amount of tokens to be burned.
Restrictions:
  • allowance: It requires the msg.sender to have an allowance with the Account equal or higher than the Amount.
Events
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
Summary
This function allows a caller to burn his/her allowance from a third account. It reduces the allowance and total supply.
This contract uses the UUPS upgradeable pattern. Therefore, the interfaces and functionalities can change in the future.