Pool Management
Last updated
Last updated
The Lending Pool contract handles updating pool status and asset parameters.
Pool status is updated using either a permissionless function, update_status()
, or a permissioned (admin-only) function set_status()
. These set the pool to one of the following statuses:
Admin_Active
(enum 0): The pool is functioning normally.
Active
(enum 1): The pool is functioning normally.
Admin_On_Ice
(enum 2): Borrowing and auction cancellations are disabled.
On_Ice
(enum 3): Borrowing and auction cancellations are disabled.
Admin_Frozen
(enum 4): Borrowing, depositing, and auction cancellations are disabled.
Frozen
(enum 5): Borrowing, depositing, and auction cancellations are disabled.
Anyone can update pool status permissionlessly by calling update_status()
. This function checks the backstop state and sets the status based on the current percentage of backstop deposits allocated to the pool that are queued-for-withdrawal(q4w).
The status is set as follows:
Pool admins can update pool status by calling set_status()
. This takes a status
parameter and sets it after validating it with the following logic:
Asset parameters can only be updated by the pool admin. They're updated in a two-step process that involves a 7-day queue to prevent admins from suddenly adding unsafe assets or parameters. The process is as follows:
The admin calls queue_set_reserve()
with the new parameters. This stores a queued reserve update in a hashmap with the address of the asset being added or updated as the key and a QueuedReserveInit
struct as the value
The queued reserve modification (or addition) can be canceled at any point by the admin using cancel_set_reserve()
After 7 days have passed the admin calls set_reserve()
which sets the asset parameters to the queued metadata.