fn burn(env: soroban_sdk::Env, from: soroban_sdk::Address, amount: i128)
fn mint(
env: soroban_sdk::Env,
minter: soroban_sdk::Address,
shares: i128,
) -> Result
fn name(env: soroban_sdk::Env) -> soroban_sdk::String
fn asset(env: soroban_sdk::Env) -> Result
fn redeem(
env: soroban_sdk::Env,
redeemer: soroban_sdk::Address,
shares: i128,
) -> Result
fn symbol(env: soroban_sdk::Env) -> soroban_sdk::String
fn approve(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
spender: soroban_sdk::Address,
amount: i128,
live_until_ledger: u32,
)
fn balance(env: soroban_sdk::Env, account: soroban_sdk::Address) -> i128
fn deposit(
env: soroban_sdk::Env,
depositor: soroban_sdk::Address,
amount: i128,
) -> Result
fn upgrade(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
new_wasm_hash: soroban_sdk::BytesN<32>,
) -> Result<(), LendingVaultError>
fn bump_ttl(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> Result<(), LendingVaultError>
fn decimals(env: soroban_sdk::Env) -> u32
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,
)
fn withdraw(
env: soroban_sdk::Env,
withdrawer: soroban_sdk::Address,
assets: i128,
) -> Result
fn allowance(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
spender: soroban_sdk::Address,
) -> i128
fn burn_from(
env: soroban_sdk::Env,
spender: soroban_sdk::Address,
from: soroban_sdk::Address,
amount: i128,
)
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,
params: VaultInitParams,
share_name: soroban_sdk::String,
share_symbol: soroban_sdk::String,
) -> 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
OpenZeppelin / stellar-tokens vault naming: underlying asset set at initialize.
Panics if the vault was never initialized (same as [Vault::query_asset]).
fn query_asset(env: soroban_sdk::Env) -> soroban_sdk::Address
Fungible share ledger lives on this contract (same pattern as splyce-stellar-s-token SToken).
fn share_token(
env: soroban_sdk::Env,
) -> Result
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 & match size:
total_assets >= max_capacity): caller may be the borrow request
creator, a settlement processor, or the settlement admin. Matched principal
= max_capacity.min_capacity <= total_assets < max_capacity): borrower only
(processor / admin not permitted here). Matched principal = total_assets (drains the
vault). The engine validates the amount is within [min_principal_amount, principal_amount].total_assets < min_capacity): SoftCapNotReached.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
Soft cap reached. When true the borrower may call execute_match even before the hard
cap is reached (matching total_assets). Same as is_funded for requests that left the
soft cap at the default (min_capacity == max_capacity).
fn is_min_funded(env: soroban_sdk::Env) -> bool
Move surplus underlying (ledger balance minus [Self::total_assets] bookkeeping for the
payout token for the current status) to recipient. Only the settlement engine may call.
Use when users mistakenly transfer tokens into the vault, or other dust accumulates. Does
not change TotalAssets (LP claims are unchanged).
fn sweep_surplus(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
token_addr: soroban_sdk::Address,
recipient: soroban_sdk::Address,
) -> Result
fn transfer_from(
env: soroban_sdk::Env,
spender: soroban_sdk::Address,
from: soroban_sdk::Address,
to: soroban_sdk::Address,
amount: i128,
)
fn get_request_id(env: soroban_sdk::Env) -> u64
fn mark_defaulted(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> Result<(), LendingVaultError>
Pro-rata conversion preview (current TotalAssets / share supply). Not claimable exit:
use max_redeem / max_withdraw to know whether redeem / burn will succeed
(redemption is gated until Settled / Defaulted / Closed; see protocol docs).
fn preview_redeem(env: soroban_sdk::Env, shares: i128) -> i128
fn preview_deposit(env: soroban_sdk::Env, assets: i128) -> i128
Shares required to withdraw assets at current book (rounded up). Not claimable exit:
use max_withdraw / max_redeem for whether exit is allowed.
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>