For the complete documentation index, see llms.txt. This page is also available as Markdown.

Pool Management

The Lending Pool contract handles updating pool status and asset parameters.

Pool Status

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.

Permissionless Updates

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:

spinner

Permissioned Updates

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:

spinner

Asset Parameters

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:

  1. 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()

  1. After 7 days have passed the admin calls set_reserve() which sets the asset parameters to the queued metadata.

Last updated