Contract 46d57af43dbdb228a6eea4f2fb5144e240927109dc993e91048e7cab34e3e189

← Back to Index 📥 Download WASM

Meta

rssdkver 22.0.11#34f7f53ae31e0fd02aab436a9872e79fa671ca02
rsver 1.95.0

Instances

  • CDNKTVXUUVQR4YTT2ZE3NJS75XHRAQD7MB25LDQDNIHM3OR45CG2UZGC

Interface

Upgrade the contract to a new WASM (admin only).

Lets the admin patch bugs / ship improvements WITHOUT changing the contract ID or migrating state. Upload the new WASM first (stellar contract upload), then pass its hash here.

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

Withdraw funds (admin only)

fn withdraw(env: soroban_sdk::Env, amount: i128) -> Result<(), soroban_sdk::Error>

Get admin address

fn get_admin(env: soroban_sdk::Env) -> Result

Initialize the contract with admin address and XLM token

fn initialize(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    token_id: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>

Repay a loan

fn repay_loan(
    env: soroban_sdk::Env,
    borrower: soroban_sdk::Address,
    loan_id: u32,
) -> Result<(), soroban_sdk::Error>

Join an existing Trust Circle (requires 10 XLM stake)

fn join_circle(
    env: soroban_sdk::Env,
    member: soroban_sdk::Address,
    circle_id: u32,
) -> Result<(), soroban_sdk::Error>

Approve and disburse loan (admin only)

fn approve_loan(env: soroban_sdk::Env, loan_id: u32) -> Result<(), soroban_sdk::Error>

Check if demo mode is enabled

fn is_demo_mode(env: soroban_sdk::Env) -> bool

Request a new loan

fn request_loan(
    env: soroban_sdk::Env,
    borrower: soroban_sdk::Address,
    amount: i128,
    purpose: soroban_sdk::String,
) -> Result

Create a new Trust Circle (requires 10 XLM stake)

fn create_circle(
    env: soroban_sdk::Env,
    creator: soroban_sdk::Address,
    name: soroban_sdk::String,
) -> Result

Toggle demo mode (admin only)

fn set_demo_mode(
    env: soroban_sdk::Env,
    enabled: bool,
) -> Result<(), soroban_sdk::Error>

Get loan count

fn get_loan_count(env: soroban_sdk::Env) -> u32

Get user's loan IDs

fn get_user_loans(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
) -> soroban_sdk::Vec

Get user's complete stats

fn get_user_stats(env: soroban_sdk::Env, user: soroban_sdk::Address) -> UserStats

Get user's final trust score

fn get_trust_score(env: soroban_sdk::Env, user: soroban_sdk::Address) -> u32

Check if loan is overdue

fn is_loan_overdue(
    env: soroban_sdk::Env,
    loan_id: u32,
) -> Result

Get circle count

fn get_circle_count(env: soroban_sdk::Env) -> u32

Get loan details

fn get_loan_details(
    env: soroban_sdk::Env,
    loan_id: u32,
) -> Result

Penalize user for loan default (admin only)

fn penalize_default(
    env: soroban_sdk::Env,
    loan_id: u32,
) -> Result<(), soroban_sdk::Error>

Unfreeze account (admin only)

fn unfreeze_account(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>

Deposit liquidity for lending (admin only)

fn deposit_liquidity(
    env: soroban_sdk::Env,
    amount: i128,
) -> Result<(), soroban_sdk::Error>

Get interest rate based on trust score (percentage)

fn get_interest_rate(env: soroban_sdk::Env, user: soroban_sdk::Address) -> u32

Get circle details

fn get_circle_details(
    env: soroban_sdk::Env,
    circle_id: u32,
) -> Result

Get maximum loan amount based on trust score

fn get_max_loan_amount(env: soroban_sdk::Env, user: soroban_sdk::Address) -> i128

Get contract balance

fn get_contract_balance(env: soroban_sdk::Env) -> i128

Set demo loan duration (admin only)

fn set_demo_loan_duration(
    env: soroban_sdk::Env,
    duration_ledgers: u32,
) -> Result<(), soroban_sdk::Error>

Get circle's average score

fn get_circle_average_score(
    env: soroban_sdk::Env,
    circle_id: u32,
) -> Result

Imports

WebAssembly Text (WAT) ▶