Contract c9cdd8f3f8c991783657809efb816c3330d4408500b8c87979ca0d263a107b8b

← Back to Index 📥 Download WASM

Meta

cliver 23.2.0#8c559e832fd969aa469784b66e70891fadf94f0a
rssdkver 22.0.10#9a1b75b509a5053b676b09fdbd224fe8c5f2fcd5
rsver 1.94.0

Instances

  • CA5WUBZ6PUW24NMGMYY2JWSJFSGQB3YPYRA27DQDD7PA5VZQIRN3PEK5
  • CAI4JY4E2IDCVK2WRCE25TB3QYPJMLCQA5GHUE6XMCATFCZHZMFKHTOV
  • CAJDNSQLODMZZMPA3VTXNCVLFJ54OT3LS44UBE5HEJG74JONILN5SRVC
  • CAJNBXWKLXQ7VGNLQSMLHFEWTAI5IXNVDGQSGUFLNHCT2GNT5P7UIQQL
  • CAOESO2GZUMGWLDY45QW2F5VIL5JWRPED277VU7HKUN65JUU7WOBIRQ6
  • CAOT5IZ3UGUWWARVID4FAWR3K2HSPM2Y7PBDE4RHNCRSDLJSZQQGUH4B
  • CB34HNWZB6CV5ZNPXQBDF6L54BMJQHTNMDGQ4YZUYCWEIWY2PDG2GLY3
  • CB3FG3EVFMX7DYHCKBADO3UU46HGIJHFUOUTORVSAE5S4MIWJTC7PNDQ
  • CB3XRX22TI5UUW26FSULH34TUW4GHT5IC5YNGM6FMPIQCSF2RIC2UQEJ
  • CBCOLHUOJCNACMD4NZJVO5PDM4574XIAXK65LSKVZZXCDHQWB5SHIK5P
  • CBCYOL2GNBO2HSLSWS7T5ZG2EABIDBIU4YAEQTJCI3SNZH7WV5KEU5G7
  • CBDZ262L2WTMOR4X7OSLXHVJG4EYZGEWZBG4KK2FHHF346LMYDVTTD7H
  • CBLPQVZSASEUZLTNSHGK2RPUUKPPO7CFHRDFSMDWO3OAXTJYRP2HH5EH
  • CBPCROYLRJVZQCY5ZTM62EVNRLDIOP7IKGIA4DSAD3FBCHIHRVMXZE4Q
  • CC3MXLDXG24L4VFGHEH7D5IV6K5MSFAOT7ZKBXCKYAD6FLUBDHNBTXDA
  • CC5OIQEIS5J3IJSVNNDA2AHXGUIOONWSHJ7Z6TXVC3T5U3S4LOQCRR7V
  • CC7FDJXSB4QKDY4PZUON74YXT7LBYTOSKKVFPGCJGBFBEXQPMRRJKPQE
  • CCCTYKXTFZSWX7E3HIGQ7KASLGQCWWYLY3NBEZJ23KDPRLM3E7WIHSKX
  • CCKKK2ZLGIP7CVXA2YO4P2IJHSN4QZ2GXM4CNCVFPXVRFRFQLYZG7ZZP
  • CCM7OHWW2SIYGMFXIN3ZEPZQDYJQLFYC3E5V5ZSRCJJ7K52ZODK3B4XG
  • CCPECIVCUME5N6ZP6PDUZX7ZCHE2GDAOLUKAKSNNMMBDLCWFZ4W2XDSZ
  • CCPLEXQ6VHSJQGUGVXLQGFPMB6ZJTMRIO624IWJIVNVVVKMRGODEG33Y
  • CCRC3P75SI4PUMFPN3OLH2AZERFS5LRPT24GOFD35RQ7RMLAAJZU3EM2
  • CDE7NE5ZC6CBC2AW3UCWCN57B37OXSZECKZMFQKPT2UPTPVN4JWHRDW5
  • CDPJGRDP4IJRDPEFJJIFW2M5W3RXZ6JN5FMALF2RVDT23CPFMBXPJX4J
  • CDTHGRAAGEAI3JJTVLENMO7LONJJ4G4ALV6K2KAAWRWOEPZAJ5EVAI3R

Interface

fn mint(
    env: soroban_sdk::Env,
    minter: soroban_sdk::Address,
    shares: i128,
) -> Result
fn asset(env: soroban_sdk::Env) -> Result
fn redeem(
    env: soroban_sdk::Env,
    redeemer: soroban_sdk::Address,
    shares: i128,
) -> Result
fn balance(env: soroban_sdk::Env, owner: soroban_sdk::Address) -> i128
fn deposit(
    env: soroban_sdk::Env,
    depositor: soroban_sdk::Address,
    amount: i128,
) -> Result

L-04: upgrade Wasm; only settlement engine (same trust as pause / lifecycle).

fn upgrade(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    new_wasm_hash: soroban_sdk::BytesN<32>,
) -> Result<(), LendingVaultError>

M-04: refresh TTL on core vault keys (settlement engine or offer book).

fn bump_ttl(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
) -> Result<(), LendingVaultError>
fn max_mint(env: soroban_sdk::Env, owner: soroban_sdk::Address) -> i128
fn transfer(
    env: soroban_sdk::Env,
    from: soroban_sdk::Address,
    to: soroban_sdk::Address,
    amount: i128,
) -> Result<(), LendingVaultError>
fn withdraw(
    env: soroban_sdk::Env,
    withdrawer: soroban_sdk::Address,
    assets: i128,
) -> Result
fn is_funded(env: soroban_sdk::Env) -> bool
fn is_paused(env: soroban_sdk::Env) -> bool
fn get_status(env: soroban_sdk::Env) -> VaultStatus
fn initialize(
    env: soroban_sdk::Env,
    vault_id: u64,
    request_id: u64,
    asset_token: soroban_sdk::Address,
    max_capacity: i128,
    deposit_deadline: u64,
    settlement_engine: soroban_sdk::Address,
    offer_book: soroban_sdk::Address,
) -> Result<(), ProtocolError>
fn max_redeem(env: soroban_sdk::Env, owner: soroban_sdk::Address) -> i128
fn set_paused(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    paused: bool,
) -> Result<(), LendingVaultError>
fn mark_active(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    loan_id: u64,
) -> Result<(), LendingVaultError>
fn mark_closed(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
) -> Result<(), LendingVaultError>
fn max_deposit(env: soroban_sdk::Env, _owner: soroban_sdk::Address) -> i128
fn get_vault_id(env: soroban_sdk::Env) -> u64
fn mark_settled(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
) -> Result<(), LendingVaultError>
fn max_withdraw(env: soroban_sdk::Env, owner: soroban_sdk::Address) -> i128
fn preview_mint(env: soroban_sdk::Env, shares: i128) -> i128
fn total_assets(env: soroban_sdk::Env) -> i128
fn total_shares(env: soroban_sdk::Env) -> i128
fn total_supply(env: soroban_sdk::Env) -> i128

Vault-as-matcher: invoke configured settlement engine match_request with caller = this (principal pulled from vault).

Authorization: caller must be the borrow request creator, a settlement engine processor, or the settlement admin. The engine address is always read from vault config (not a parameter).

Soroban forbids re-entering this contract from within match_request, so post-match accounting (sync_after_principal_matched) runs here after match_request returns instead of via an SE callback.

fn execute_match(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    request_id: u64,
) -> Result
fn get_request_id(env: soroban_sdk::Env) -> u64
fn mark_defaulted(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
) -> Result<(), LendingVaultError>
fn preview_redeem(env: soroban_sdk::Env, shares: i128) -> i128
fn preview_deposit(env: soroban_sdk::Env, assets: i128) -> i128
fn preview_withdraw(env: soroban_sdk::Env, assets: i128) -> i128
fn convert_to_assets(env: soroban_sdk::Env, shares: i128) -> i128
fn convert_to_shares(env: soroban_sdk::Env, assets: i128) -> i128
fn receive_repayment(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    amount: i128,
) -> Result<(), LendingVaultError>

Borrower cancel penalty: principal token already transferred into this contract; bumps TotalAssets without minting shares (pro-rata bonus to LPs).

fn receive_cancel_penalty(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    amount: i128,
) -> Result<(), LendingVaultError>

After settlement_engine pulls amount of principal from this vault, sync book value and go Active. Prefer routing matches through [Self::execute_match]; this entrypoint remains for non-reentrant call paths.

fn record_match_principal(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    amount: i128,
    loan_id: u64,
) -> Result<(), LendingVaultError>
fn receive_default_collateral(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    collateral_token: soroban_sdk::Address,
    amount: i128,
) -> Result<(), LendingVaultError>
fn receive_liquidation_proceeds(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    amount: i128,
) -> Result<(), LendingVaultError>

Imports

WebAssembly Text (WAT) ▶