The GHO direct minter is a generic facilitator that can inject GHO into an aave pool.
The GhoDirectMinter
is a smart contract that can be used to mint & burn GHO directly into/from an Aave pool.
In order to mint GHO the GhoDirectMinter
will need to be registered as a Facilitator
in the GHO contract.
This repository contains two contracts:
GhoDirectMinter
which contains the actual FacilitatorLidoGHOListing
which is a reference implementation of a proposal to 1) list GHO on Aave Lido instance and 2) deploy and active aGhoDirectMinter
facilitator.
Prerequisites:
- the pool targeted by the
GhoDirectMinter
must have GHO listed as a reserve. - the GHO AToken and VariableDebtToken implementations must not deviate from the Aave standard implementation.
- the
GhoDirectMinter
must be registered as aFacilitator
with a non zero bucket capacity. - the
GhoDirectMinter
must obtain theRISK_ADMIN_ROLE
in order to supply GHO to the pool.
The GhoDirectMinter
offers the following functions:
mintAndSupply
which allows a permissioned entity to mint GHO and supply it to the pool.withdrawAndBurn
which allows a permissioned entity to withdraw GHO from the pool and burn it.transferExcessToTreasury
which allows the permissionless transfer of the accrued fee to the collector.
While default permissioned entity is the owner(likely the governance short executor), but the contract inherits from UpgradeableOwnableWithGuardian which allows to share permissions with another party (e.g. the GHO stewards).
The GhoDirectMinter
can only inject and remove available GHO from the pool.
The actual maximum exposure of the reserve is managed via the BucketSize
and the chosen borrow cap
.
This project uses Foundry. See the book for detailed instructions on how to install and use Foundry.
forge install
forge test