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%.
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 also tracks the following roles:
AccountManager
Grant Account role
AccountManager
Open loan on LendingPool for someone
Account
Deposit and withdraw into Strategies
Last updated