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();