Contract a2f45c8de9a360e1397e93589f28f4ea61d58881fd76b57298b66208d8bb1bb1

← Back to Index 📥 Download WASM

Meta

cliver 23.2.0#8c559e832fd969aa469784b66e70891fadf94f0a
rssdkver 23.5.3#d3e1ab2424388b10893b796b0c8e405c5edd03d2
rsver 1.94.0

Instances

  • CD3DPJUTPPJO2QFKEVUF3CBGUYWEZKF6JNR7AMKPGOTXCIUCB4IZV2LJ

Interface

fn repay(
    env: soroban_sdk::Env,
    borrower: soroban_sdk::Address,
    loan_id: u64,
) -> Result<(), SettlementError>
fn bump_ttl(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
) -> Result<(), ProtocolError>
fn is_paused(env: soroban_sdk::Env) -> bool
fn set_admin(
    env: soroban_sdk::Env,
    current_admin: soroban_sdk::Address,
    new_admin: soroban_sdk::Address,
) -> Result<(), ProtocolError>
fn initialize(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    offer_book: soroban_sdk::Address,
    loan_position: soroban_sdk::Address,
    collateral_vault: soroban_sdk::Address,
    lending_vault_factory: soroban_sdk::Address,
) -> Result<(), ProtocolError>
fn set_paused(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    paused: bool,
) -> Result<(), ProtocolError>
fn is_processor(env: soroban_sdk::Env, address: soroban_sdk::Address) -> bool
fn add_processor(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    processor: soroban_sdk::Address,
) -> Result<(), ProtocolError>
fn claim_default(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    loan_id: u64,
) -> Result<(), SettlementError>
fn is_liquidator(env: soroban_sdk::Env, address: soroban_sdk::Address) -> bool

Match after borrower has pledged collateral. Matcher (caller) supplies principal: token transfer(from=caller, to=settlement_engine) then full principal to borrower (no match fee). Matcher: admin, or (if whitelist empty) any address, or a whitelisted address.

fn match_request(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    request_id: u64,
) -> Result
fn add_liquidator(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    liquidator: soroban_sdk::Address,
) -> Result<(), ProtocolError>

Cancel a pending upgrade proposal.

fn cancel_upgrade(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
) -> Result<(), ProtocolError>

Execute a previously proposed upgrade once the timelock has elapsed.

fn execute_upgrade(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
) -> Result<(), ProtocolError>

Stage an upgrade to be executed after the timelock period (48 h).

fn propose_upgrade(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    new_wasm_hash: soroban_sdk::BytesN<32>,
) -> Result<(), ProtocolError>
fn remove_processor(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    processor: soroban_sdk::Address,
) -> Result<(), ProtocolError>
fn liquidator_buyout(
    env: soroban_sdk::Env,
    liquidator: soroban_sdk::Address,
    loan_id: u64,
    usdc_amount: i128,
    collateral_recipient: Option,
) -> Result<(), SettlementError>

Lock borrow collateral for an active request (required before match_request).

fn pledge_collateral(
    env: soroban_sdk::Env,
    borrower: soroban_sdk::Address,
    request_id: u64,
) -> Result<(), SettlementError>
fn protocol_treasury(env: soroban_sdk::Env) -> soroban_sdk::Address
fn remove_liquidator(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    liquidator: soroban_sdk::Address,
) -> Result<(), ProtocolError>
fn cancel_penalty_bps(env: soroban_sdk::Env) -> u32
fn liquidate_by_price(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    loan_id: u64,
) -> Result<(), SettlementError>
fn force_vault_default(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    loan_id: u64,
) -> Result<(), SettlementError>

Read-only: whether address is the configured settlement engine admin (for vault execute_match auth).

fn is_settlement_admin(env: soroban_sdk::Env, address: soroban_sdk::Address) -> bool
fn cancel_borrower_offer(
    env: soroban_sdk::Env,
    borrower: soroban_sdk::Address,
    request_id: u64,
) -> Result<(), SettlementError>

Anyone: past funding deadline, vault has zero principal deposits, no LP funds stuck.

fn expire_unfunded_offer(
    env: soroban_sdk::Env,
    request_id: u64,
) -> Result<(), SettlementError>
fn fee_liq_principal_bps(env: soroban_sdk::Env) -> u32
fn set_proc_cancel_grace(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    seconds: u64,
) -> Result<(), ProtocolError>
fn set_protocol_treasury(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    treasury: soroban_sdk::Address,
) -> Result<(), ProtocolError>
fn fee_repay_interest_bps(env: soroban_sdk::Env) -> u32
fn liquidator_surplus_bps(env: soroban_sdk::Env) -> u32

Same economics as borrower cancel; requires processor role and funding deadline + grace elapsed. Borrower must also authorize (penalty transfer).

fn processor_cancel_offer(
    env: soroban_sdk::Env,
    processor: soroban_sdk::Address,
    borrower: soroban_sdk::Address,
    request_id: u64,
) -> Result<(), SettlementError>
fn set_cancel_penalty_bps(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    bps: u32,
) -> Result<(), ProtocolError>
fn min_collateral_ratio_bps(env: soroban_sdk::Env) -> u32
fn proc_cancel_grace_seconds(env: soroban_sdk::Env) -> u64
fn set_fee_liq_principal_bps(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    bps: u32,
) -> Result<(), ProtocolError>
fn fee_default_collateral_bps(env: soroban_sdk::Env) -> u32
fn set_fee_repay_interest_bps(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    bps: u32,
) -> Result<(), ProtocolError>
fn set_liquidator_surplus_bps(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    bps: u32,
) -> Result<(), ProtocolError>
fn cancel_penalty_protocol_bps(env: soroban_sdk::Env) -> u32

0 disables the check. Requires oracle_address on the request when above zero.

fn set_min_collateral_ratio_bps(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    bps: u32,
) -> Result<(), ProtocolError>
fn set_fee_default_collateral_bps(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    bps: u32,
) -> Result<(), ProtocolError>
fn set_cancel_penalty_protocol_bps(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    bps: u32,
) -> Result<(), ProtocolError>

Pre-match: ACTIVE request with pledged collateral, pooled vault with LP shares, LiquidatorBuyout policy. Liquidator pays principal (anchor/LTV/surplus + fee split); receives pledged collateral; request cancelled.

fn liquidator_settle_active_request(
    env: soroban_sdk::Env,
    liquidator: soroban_sdk::Address,
    request_id: u64,
    usdc_amount: i128,
) -> Result<(), SettlementError>

Imports

WebAssembly Text (WAT) ▶