Contract 0c22c96756f4ef6245c53f44662cd5f51ef2332a5f8c33c45a2b2b93a2e25ec9

← Back to Index 📥 Download WASM

Meta

cliver 26.0.0#60f7458e7ecffddf2f2d91dc6d0d2db4fab03ecc
rssdkver 25.3.1#e50d95af029c83196dd122f0154bac3f1302394b
rsver 1.95.0

Instances

  • CCFGWTBPEZ4CQCQE4TDAY7VCQ7X4APSIEDP3RMJTBFFDZZOSIAJFOQHF
  • CCOTLIGOUIY2GX7C5AD2KZ53XVI3I3TIFUVDM44PP44N4D473DZY2E4Z
  • CDDD5OXWPCKJWB5CIYYH3OGMQXXZGQEDEJCCRVAVABF3OW3HDKHAMUJJ
  • CDYKNBNOLCDV2V33ZWDDGIVO6IDZL4DWPNEGR54BDDIGQZGPQIKZDVSQ

Interface

Add an Ed25519 admin/session signer. Adding a passkey (Secp256r1) signer post-construction (which needs its pubkey persisted) lands in A3 Phase 2; the Phase-1 passkey admin is set at __constructor.

fn add_signer(
    env: soroban_sdk::Env,
    signer: SignerKey,
    is_admin: bool,
) -> Result<(), soroban_sdk::Error>
fn get_policy(env: soroban_sdk::Env) -> Option
fn set_policy(env: soroban_sdk::Env, policy: Policy) -> Result<(), soroban_sdk::Error>
fn get_session(
    env: soroban_sdk::Env,
    session_id: soroban_sdk::BytesN<32>,
) -> Option
fn get_signers(env: soroban_sdk::Env) -> soroban_sdk::Vec

Enforce policy on every authorized call.

Order is deliberate: cheap rejections first, signature verify last so a bad-policy call does not burn ed25519 cycles. Admin signers bypass the policy entirely (emergency-unwind path).

fn __check_auth(
    env: soroban_sdk::Env,
    signature_payload: soroban_sdk::BytesN<32>,
    auth_payload: AuthPayload,
    auth_contexts: soroban_sdk::Vec,
) -> Result<(), soroban_sdk::Error>

Deployment-time initialization. Sets the first admin atomically during contract creation so no public uninitialized takeover window exists.

fn __constructor(env: soroban_sdk::Env, admin: Signer)
fn remove_signer(
    env: soroban_sdk::Env,
    signer: SignerKey,
) -> Result<(), soroban_sdk::Error>
fn revoke_session(
    env: soroban_sdk::Env,
    session_id: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>
fn rotate_session(
    env: soroban_sdk::Env,
    old_session_id: soroban_sdk::BytesN<32>,
    new_session_id: soroban_sdk::BytesN<32>,
    new_pubkey: soroban_sdk::BytesN<32>,
    new_policy: Policy,
) -> Result<(), soroban_sdk::Error>
fn register_session(
    env: soroban_sdk::Env,
    session_id: soroban_sdk::BytesN<32>,
    pubkey: soroban_sdk::BytesN<32>,
    policy: Policy,
) -> Result<(), soroban_sdk::Error>
fn get_oracle_aggregator(env: soroban_sdk::Env) -> Option

Admin-only setter for the Reflector aggregator contract address used by the swap-auth path. Until set, every swap auth fails closed with Error::OracleStale. Operators MUST verify the address against https://reflector.network/docs before invoking this on mainnet — pointing at the wrong contract is a slippage-bypass vector.

fn set_oracle_aggregator(
    env: soroban_sdk::Env,
    aggregator: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>

Imports

WebAssembly Text (WAT) ▶