MINTRv1
Inherits: Module
Wrapper for minting and burning functions of OHM token.
State Variables
ohm
OHM public ohm
active
Status of the minter. If false, minting and burning OHM is disabled.
bool public active
mintApproval
Mapping of who is approved for minting.
minter -> amount. Infinite approval is max(uint256).
mapping(address => uint256) public mintApproval
Functions
onlyWhileActive
modifier onlyWhileActive() ;
mintOhm
Mint OHM to an address.
function mintOhm(address to_, uint256 amount_) external virtual;
burnOhm
Burn OHM from an address. Must have approval.
function burnOhm(address from_, uint256 amount_) external virtual;
increaseMintApproval
Increase approval for specific withdrawer addresses
Policies must explicity request how much they want approved before withdrawing.
function increaseMintApproval(address policy_, uint256 amount_) external virtual;
decreaseMintApproval
Decrease approval for specific withdrawer addresses
function decreaseMintApproval(address policy_, uint256 amount_) external virtual;
deactivate
Emergency shutdown of minting and burning.
function deactivate() external virtual;
activate
Re-activate minting and burning after shutdown.
function activate() external virtual;
Events
IncreaseMintApproval
event IncreaseMintApproval(address indexed policy_, uint256 newAmount_);
DecreaseMintApproval
event DecreaseMintApproval(address indexed policy_, uint256 newAmount_);
Mint
event Mint(address indexed policy_, address indexed to_, uint256 amount_);
Burn
event Burn(address indexed policy_, address indexed from_, uint256 amount_);
Errors
MINTR_NotApproved
error MINTR_NotApproved();
MINTR_ZeroAmount
error MINTR_ZeroAmount();
MINTR_NotActive
error MINTR_NotActive();