One-time initialisation. Panics if already initialised. The admin must authorize this call to prevent front-running on deployment (C-1).
Expected mainnet values (C-3, C-7): usdc_contract : CCW67TSZV3SSS2HXMBQ5JFGCKJNXKZM7UQUWUZPUTHXSTZLEO7SJMI75 (USDC SAC) xlm_contract : native XLM SAC address (varies by network) treasury : cards402 treasury G-address — verify before deployment
fn init(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
treasury: soroban_sdk::Address,
usdc_contract: soroban_sdk::Address,
xlm_contract: soroban_sdk::Address,
)
Return the admin address.
fn admin(env: soroban_sdk::Env) -> soroban_sdk::Address
Transfer amount XLM (in stroops, 7 d.p.) from from to treasury.
Emits: topics=[Symbol("pay_xlm"), order_id, from], value=amount
fn pay_xlm(
env: soroban_sdk::Env,
from: soroban_sdk::Address,
amount: i128,
order_id: soroban_sdk::Bytes,
)
Upgrade the contract WASM. Only the admin may call this.
fn upgrade(env: soroban_sdk::Env, new_wasm_hash: soroban_sdk::BytesN<32>)
Transfer amount USDC (in micro-USDC, 7 d.p.) from from to treasury.
Emits: topics=[Symbol("pay_usdc"), order_id, from], value=amount
fn pay_usdc(
env: soroban_sdk::Env,
from: soroban_sdk::Address,
amount: i128,
order_id: soroban_sdk::Bytes,
)
Return the treasury address.
fn treasury(env: soroban_sdk::Env) -> soroban_sdk::Address
Return the native XLM SAC contract address.
fn xlm_contract(env: soroban_sdk::Env) -> soroban_sdk::Address
Return the USDC SAC contract address.
fn usdc_contract(env: soroban_sdk::Env) -> soroban_sdk::Address