Draws from a specific pool by liquidation engine.
fn draw(
env: soroban_sdk::Env,
liquidation_engine: soroban_sdk::Address,
pool_id: u32,
shortfall: i128,
) -> Result<(), soroban_sdk::Error>
Deposits capital into pool backstop.
fn deposit(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
pool_id: u32,
amount: i128,
) -> Result<(), soroban_sdk::Error>
Initializes backstop pool admin and dependencies.
fn initialize(
env: soroban_sdk::Env,
governance: soroban_sdk::Address,
liquidation_engine: soroban_sdk::Address,
base_asset: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>
Pulls emissions into accounting.
fn gulp_emissions(
env: soroban_sdk::Env,
amount: i128,
) -> Result<(), soroban_sdk::Error>
Sets governance-defined allocation weight.
fn set_allocation(
env: soroban_sdk::Env,
pool_id: u32,
weight_bps: u32,
) -> Result<(), soroban_sdk::Error>
Calculates share percentage of a user in a pool proportional to total deposit.
fn calculate_share(
env: soroban_sdk::Env,
pool_id: u32,
user: soroban_sdk::Address,
) -> Result
Claims a queued withdrawal after cooldown expires.
fn claim_withdrawal(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
pool_id: u32,
) -> Result<(), soroban_sdk::Error>
Gets the current pool balance for namespaced assets.
fn get_pool_balance(env: soroban_sdk::Env, pool_id: u32) -> i128
Gets a user's deposited balance in a pool.
fn get_user_balance(
env: soroban_sdk::Env,
pool_id: u32,
user: soroban_sdk::Address,
) -> i128
Queues a withdrawal with cooldown.
fn queue_withdrawal(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
pool_id: u32,
amount: i128,
) -> Result<(), soroban_sdk::Error>