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>