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:
GhoDirectMinterwhich contains the actual FacilitatorLidoGHOListingwhich is a reference implementation of a proposal to 1) list GHO on Aave Lido instance and 2) deploy and active aGhoDirectMinterfacilitator.
Prerequisites:
- the pool targeted by the
GhoDirectMintermust have GHO listed as a reserve. - the GHO AToken and VariableDebtToken implementations must not deviate from the Aave standard implementation.
- the
GhoDirectMintermust be registered as aFacilitatorwith a non zero bucket capacity. - the
GhoDirectMintermust obtain theRISK_ADMIN_ROLEin order to supply GHO to the pool.
The GhoDirectMinter offers the following functions:
mintAndSupplywhich allows a permissioned entity to mint GHO and supply it to the pool.withdrawAndBurnwhich allows a permissioned entity to withdraw GHO from the pool and burn it.transferExcessToTreasurywhich 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 installforge test