Contract 0d8880855acd9890f8d80af299c814fca483ce56292fa0d9110a1c998c81857d

← Back to Index 📥 Download WASM

Meta

cliver 25.1.0#a048a57a75762458b487052e0021ea704a926bee
rssdkver 21.7.7#5da789c50b18a4c2be53394138212fed56f0dfc4
rsver 1.93.0

Instances

  • CAL6OVVWJ46NMKNR6JZUJAMUX73XPNOWDL6LQCFEJA6I4CEFARBFBJPN
  • CDYXKWVDGEVA6OSIGN7GRAPPRN6AKID35OJL5ZZQIBCMECZ35KGL45PS

Interface

fn admin(env: soroban_sdk::Env) -> soroban_sdk::Address
fn pause(env: soroban_sdk::Env)

Deposit XLM and receive sXLM tokens.

fn deposit(env: soroban_sdk::Env, user: soroban_sdk::Address, xlm_amount: i128)
fn unpause(env: soroban_sdk::Env)

Upgrade the contract WASM. Only callable by admin.

fn upgrade(env: soroban_sdk::Env, new_wasm_hash: soroban_sdk::BytesN<32>)
fn is_paused(env: soroban_sdk::Env) -> bool
fn set_admin(env: soroban_sdk::Env, new_admin: soroban_sdk::Address)

Initialize the staking contract.

fn initialize(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    sxlm_token: soroban_sdk::Address,
    native_token: soroban_sdk::Address,
    cooldown_period: u32,
)

Add staking rewards — admin sends real XLM into the contract. Splits: 10% → TreasuryBalance, 90% → TotalXlmStaked (raises exchange rate). Admin must have approved this amount. XLM is transferred from admin → contract.

fn add_rewards(env: soroban_sdk::Env, amount: i128)
fn set_treasury(env: soroban_sdk::Env, treasury: soroban_sdk::Address)
fn add_liquidity(env: soroban_sdk::Env, amount: i128)

Bump instance TTL — can be called by anyone to keep the contract alive.

fn bump_instance(env: soroban_sdk::Env)

Withdraw accumulated protocol fees to the treasury address.

fn withdraw_fees(env: soroban_sdk::Env)
fn apply_slashing(env: soroban_sdk::Env, slash_amount: i128)
fn get_validators(env: soroban_sdk::Env) -> soroban_sdk::Vec
fn get_withdrawal(env: soroban_sdk::Env, withdrawal_id: u64) -> WithdrawalRequest

Claim a delayed withdrawal after cooldown has expired.

fn claim_withdrawal(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    withdrawal_id: u64,
)
fn liquidity_buffer(env: soroban_sdk::Env) -> i128
fn protocol_fee_bps(env: soroban_sdk::Env) -> i128
fn recalibrate_rate(env: soroban_sdk::Env) -> i128
fn total_xlm_staked(env: soroban_sdk::Env) -> i128
fn treasury_balance(env: soroban_sdk::Env) -> i128
fn get_exchange_rate(env: soroban_sdk::Env) -> i128
fn total_sxlm_supply(env: soroban_sdk::Env) -> i128
fn update_validators(
    env: soroban_sdk::Env,
    validators: soroban_sdk::Vec,
)

Request withdrawal: burns sXLM and returns XLM.

fn request_withdrawal(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    sxlm_amount: i128,
)
fn get_cooldown_period(env: soroban_sdk::Env) -> u32
fn set_cooldown_period(env: soroban_sdk::Env, new_cooldown: u32)

Imports

WebAssembly Text (WAT) ▶