fn get_loan(env: soroban_sdk::Env, loan_id: u64) -> Result
One-time setup. Only settlement engine may create/update loans.
fn initialize(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
settlement_engine: soroban_sdk::Address,
) -> Result<(), ProtocolError>
Check whether a loan has passed its maturity timestamp.
fn is_matured(env: soroban_sdk::Env, loan_id: u64) -> Result
Create a new loan record. Called by settlement engine on match.
fn create_loan(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
request_id: u64,
vault_id: u64,
borrower: soroban_sdk::Address,
principal_amount: i128,
collateral_amount: i128,
interest_rate_bps: u32,
maturity_time: u64,
collateral_policy: CollateralPolicy,
) -> Result
Mark loan as REPAID. Called by settlement engine.
fn mark_repaid(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
loan_id: u64,
interest_amount: i128,
) -> Result<(), LoanError>
Mark loan as DEFAULTED. Called by settlement engine.
fn mark_defaulted(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
loan_id: u64,
) -> Result<(), LoanError>
fn get_next_loan_id(env: soroban_sdk::Env) -> u64