Contract 7c059aa7a204b6200ddba620e3e6737b8d7af8c59f2d26eca7e28a1a625eb071

← Back to Index 📥 Download WASM

Meta

cliver 23.4.1#a152ec2488c25136808ad28277c24b3a0765ffd4
rssdkver 22.0.11#34f7f53ae31e0fd02aab436a9872e79fa671ca02
rsver 1.92.0

Instances

  • CAC3QV47SE2H5235XICHNL24TRZ5PXO4ZJHCOUUJE7JKIWDOLPZ3BEQV
  • CAMXYYOSNBKCZH63Z5ZTNFLB5PFS2UGSQNBJYCXPOFLLNSCLBUZX3RI2
  • CAYDMV4A37C7WOUTJBCSECESWZMVO5GYYZQIJXQCWHZOXZJQHYLFSPQK
  • CBDH2WT7MTFWCU5QHZ6BWQSUMK4OSB5PVZXSVFKWQ2OUR7DKHUWKX3QD
  • CC3TX6QUJSXIK4MNCFNJ2HQK3I3JAOSPD5EVOMW622ENIMWS5B52EVON
  • CCWJEKF45XJSDO4DJE2HN5DE7OZSWATWNKZS37AYUX3MYYU54XZLZXA7
  • CDOJTUNFFTBLOMLKZDENWM5GMQ6BAX4WHYUQRIL4XJ3VM24HQ5XU24NR

Interface

Upgrade this wallet Wasm. Factory must authorize (factory invokes this).

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

Transfer SAC tokens to to. spender must be owner or operator and must authorize.

fn transfer(
    env: soroban_sdk::Env,
    spender: soroban_sdk::Address,
    token: soroban_sdk::Address,
    to: soroban_sdk::Address,
    amount: i128,
) -> Result<(), WalletError>
fn get_owner(env: soroban_sdk::Env) -> Option

Link a Stellar address as owner (Freighter / user key). Operator only.

fn link_owner(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
) -> Result<(), WalletError>
fn get_factory(env: soroban_sdk::Env) -> Result
fn get_operator(env: soroban_sdk::Env) -> Result
fn set_operator(
    env: soroban_sdk::Env,
    operator: soroban_sdk::Address,
) -> Result<(), WalletError>
fn get_daily_cap(env: soroban_sdk::Env) -> i128

daily_cap == 0 disables the cap. Units are token base units (caller’s convention).

fn set_daily_cap(env: soroban_sdk::Env, daily_cap: i128) -> Result<(), WalletError>
fn token_balance(env: soroban_sdk::Env, token: soroban_sdk::Address) -> i128

Deploy-time constructor (factory deploy_v2).

Until link_owner, only operator may spend (WhatsApp custodial mode). Pass naira_vault == factory (or any sentinel equal to this wallet after deploy) — unset vault is detected when vault == current contract; use factory address as the "not configured" placeholder at construction.

fn __constructor(
    env: soroban_sdk::Env,
    factory: soroban_sdk::Address,
    operator: soroban_sdk::Address,
    withdrawal_authority: soroban_sdk::Address,
    naira_vault: soroban_sdk::Address,
    daily_cap: i128,
)
fn get_naira_vault(env: soroban_sdk::Env) -> Result
fn is_owner_linked(env: soroban_sdk::Env) -> bool
fn set_naira_vault(
    env: soroban_sdk::Env,
    vault: soroban_sdk::Address,
) -> Result<(), WalletError>

Current owner transfers ownership. Owner must authorize.

fn transfer_ownership(
    env: soroban_sdk::Env,
    new_owner: soroban_sdk::Address,
) -> Result<(), WalletError>

Sweep tokens to the Naira vault for off-ramp settlement (phase 2 fiat).

fn send_to_naira_vault(
    env: soroban_sdk::Env,
    spender: soroban_sdk::Address,
    token: soroban_sdk::Address,
    amount: i128,
) -> Result<(), WalletError>
fn get_withdrawal_authority(
    env: soroban_sdk::Env,
) -> Result
fn set_withdrawal_authority(
    env: soroban_sdk::Env,
    authority: soroban_sdk::Address,
) -> Result<(), WalletError>

Imports

WebAssembly Text (WAT) ▶