Governor
JuiceGovernor Contract
This inherits the core functionality of the ProtocolGovernor and adds a function for claiming gas fees on behalf of protocol contracts that have registered with it.
It has the following responsibilities:
Role assignment to addresses for action authorization.
Setting common dependency addresses to be used by all contracts integrated with it.
There are two types of common dependencies: Immutable and Mutable.
Immutable dependencies can only be set once because updating them can cause the protocol to break since they are contracts that are not expected to change without a redeployment of the protocol.
Mutable dependencies can be updated at any time since they are only bound by a contract interface.
Configuring protocol fees.
All fee configurations must be less than 100%.
Dependencies | Mutable | Description |
---|---|---|
Lend Asset | No | ERC20 used to facilitate lending and borrowing across the protocol. Will be USDB. |
Blast | No | Blast contract for managing native yield |
Pyth | No | For interacting with Pyth Network |
Gelato Automate | No | Entry point for integrating with Gelato Network |
No | N/A | |
Yes | N/A | |
Fee Collector | Yes | Recipient of protocol fees |
Yes | Returns a price denominated in Lend Asset given some asset address |
All contracts integrate with this via the ProtocolModule and JuiceModule, which implement typed internal methods for these contracts to fetch external dependencies, fee values, and role assignment.
The owner of this contract is the Protocol Owner and can perform contract owner interactions for all the contracts that integrate with it.
It implements Ownable2Step and will be owned by a Safe multisig.
It also tracks the following roles:
Role | Functionality |
---|---|
AccountManager | Grant Account role |
AccountManager | Open loan on LendingPool for someone |
Account | Deposit and withdraw into Strategies |
Last updated