Lender redeems vault shares for underlying assets. Available after vault reaches SETTLED, DEFAULTED, or CLOSED status, or after deposit_deadline if still COLLECTING (cancelled request).
fn redeem(
env: soroban_sdk::Env,
redeemer: soroban_sdk::Address,
shares: i128,
) -> Result
Returns the share balance for a given owner.
fn balance(env: soroban_sdk::Env, owner: soroban_sdk::Address) -> i128
Lender deposits USDC. Mints vault shares proportionally. Only while vault is in COLLECTING status and before deposit_deadline.
fn deposit(
env: soroban_sdk::Env,
depositor: soroban_sdk::Address,
amount: i128,
) -> Result
Transfer vault shares between addresses.
fn transfer(
env: soroban_sdk::Env,
from: soroban_sdk::Address,
to: soroban_sdk::Address,
amount: i128,
) -> Result<(), LendingVaultError>
True when the vault has collected enough deposits to fill the request.
fn is_funded(env: soroban_sdk::Env) -> bool
fn get_status(env: soroban_sdk::Env) -> VaultStatus
Called by factory on deployment. Configures vault for a specific borrow request.
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,
) -> Result<(), ProtocolError>
Transition vault to ACTIVE when loan is matched. Transfers all deposited USDC to the settlement engine for disbursement.
fn mark_active(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
loan_id: u64,
) -> Result<(), LendingVaultError>
Transition vault to CLOSED (request cancelled before match). Callable by any authenticated address while vault is COLLECTING.
fn mark_closed(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> Result<(), LendingVaultError>
fn get_vault_id(env: soroban_sdk::Env) -> u64
Transition vault to SETTLED after successful repayment.
fn mark_settled(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> Result<(), LendingVaultError>
Total USDC (or primary asset) available for redemption.
fn total_assets(env: soroban_sdk::Env) -> i128
fn total_shares(env: soroban_sdk::Env) -> i128
Returns the total supply of vault shares.
fn total_supply(env: soroban_sdk::Env) -> i128
fn get_request_id(env: soroban_sdk::Env) -> u64
Transition vault to DEFAULTED after maturity without repayment.
fn mark_defaulted(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> Result<(), LendingVaultError>
Receive repayment (principal + interest) from settlement engine. The SE transfers USDC to this vault before calling this method.
fn receive_repayment(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
amount: i128,
) -> Result<(), LendingVaultError>
Receive USDC proceeds from liquidator buyout. The SE transfers USDC to this vault before calling this method.
fn receive_liquidation_proceeds(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
amount: i128,
) -> Result<(), LendingVaultError>