Contract b92ca6cf2e096ae44f87dd29af1f4c80ab1b45b7de62c35ec7dfeedd07e74fe7

← Back to Index 📥 Download WASM

Meta

rssdkver 27.0.6#60926a20d1f9f0a669d5fe551636f42a1302f0c0
rsver 1.98.0

Instances

  • CAMFLRM7FOEL6ZJGQ4QJGAO5SGBRLTWGHIC6WBYFXVGEJPHXXNYHFKGI

Interface

Called after the user's XLM/USDC payment is confirmed.

Deploys a new lockb0x Soroban contract for user, invokes its initialize function via cross-contract call, and emits an event.

fn on_board(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    poh_anchor: soroban_sdk::BytesN<32>,
) -> soroban_sdk::Address

Initialise the contract. Must be called once by the deployer.

fn initialise(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    lockb0x_wasm_hash: soroban_sdk::BytesN<32>,
)

Update the lockb0x WASM hash for new deployments.

fn set_lockb0x_wasm(env: soroban_sdk::Env, new_hash: soroban_sdk::BytesN<32>)

Register/update Groth16 verifying key material referenced by vk_id.

fn set_verifying_key(
    env: soroban_sdk::Env,
    vk_id: soroban_sdk::String,
    alpha_g1: soroban_sdk::BytesN<64>,
    beta_g2: soroban_sdk::BytesN<128>,
    gamma_g2: soroban_sdk::BytesN<128>,
    delta_g2: soroban_sdk::BytesN<128>,
    ic0_g1: soroban_sdk::BytesN<64>,
    ic1_g1: soroban_sdk::BytesN<64>,
)

Redeem a fiat access code using a ZK proof of issuer-commitment knowledge.

The issuer commitment is stored as a persistent key so it cannot be re-used.

fn redeem_access_code(
    env: soroban_sdk::Env,
    zk_proof_a: soroban_sdk::Bytes,
    zk_proof_b: soroban_sdk::Bytes,
    zk_proof_c: soroban_sdk::Bytes,
    nullifier_hash: soroban_sdk::BytesN<32>,
    vk_id: soroban_sdk::String,
    user: soroban_sdk::Address,
    poh_anchor: soroban_sdk::BytesN<32>,
) -> soroban_sdk::Address

Register a 32-byte access-code commitment hash. Admin-only.

fn register_commitment(env: soroban_sdk::Env, commitment: soroban_sdk::BytesN<32>)

Called by orchestrators that bind onboarding to an off-chain payment key.

Replay-safe behavior:

  • If the same payment key was already onboarded, return the same lockb0x.
  • Otherwise execute standard onboarding and persist the payment->lockb0x mapping.
fn on_board_for_payment(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    poh_anchor: soroban_sdk::BytesN<32>,
    payment_key: soroban_sdk::BytesN<32>,
) -> soroban_sdk::Address

Redeem a fiat access code and bind onboarding idempotency to payment_key.

fn redeem_access_code_for_payment(
    env: soroban_sdk::Env,
    zk_proof_a: soroban_sdk::Bytes,
    zk_proof_b: soroban_sdk::Bytes,
    zk_proof_c: soroban_sdk::Bytes,
    nullifier_hash: soroban_sdk::BytesN<32>,
    vk_id: soroban_sdk::String,
    user: soroban_sdk::Address,
    poh_anchor: soroban_sdk::BytesN<32>,
    payment_key: soroban_sdk::BytesN<32>,
) -> soroban_sdk::Address

Imports

WebAssembly Text (WAT) ▶