Initializes the contract with required dependencies.
fn init(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
lbx_token: soroban_sdk::Address,
distributor: soroban_sdk::Address,
fee_amount: i128,
vk: soroban_sdk::Bytes,
)
Admin-only function to update the contract WASM.
fn upgrade(env: soroban_sdk::Env, new_wasm_hash: soroban_sdk::BytesN<32>)
Admin-only function to update the VK if the circuit changes.
fn update_vk(env: soroban_sdk::Env, new_vk: soroban_sdk::Bytes)
Admin-only function to set the stealth_signal verification key.
fn set_stealth_vk(env: soroban_sdk::Env, stealth_vk: soroban_sdk::Bytes)
Admin-only migration hook for the legacy distributor key.
fn migrate_distributor(env: soroban_sdk::Env, distributor: soroban_sdk::Address)
Read-only accessor for ecosystem attestation metadata.
fn get_ecosystem_binding(
env: soroban_sdk::Env,
) -> (
soroban_sdk::Bytes,
soroban_sdk::Address,
soroban_sdk::Address,
soroban_sdk::Address,
u32,
)
Admin-only ecosystem binding metadata update.
The ecosystem binding authenticates the deployment identity and LBX token provenance.
ZK proof binding covers sha256(epk) and request_type only.
Ciphertext semantic validity and hostname-to-proof binding are enforced at the application layer.
fn set_ecosystem_binding(
env: soroban_sdk::Env,
hostname: soroban_sdk::Bytes,
lbx_issuer: soroban_sdk::Address,
lbx_distributor: soroban_sdk::Address,
lbx_sac: soroban_sdk::Address,
expires_at_ledger: u32,
)
Read-only accessor for the distributor storage value.
fn get_distributor_address(env: soroban_sdk::Env) -> soroban_sdk::Address
fn set_verify_diag_enabled(env: soroban_sdk::Env, enabled: bool)
Admin-only identity signaling configuration.
fn set_identity_config(
env: soroban_sdk::Env,
identity_vk: soroban_sdk::Bytes,
identity_fee_amount: i128,
)
Submit an opaque identity signal with replay protection.
ABI arguments:
(relayer, identity_proof, encrypted_payload, action_type, nullifier, expires_at_ledger, satellite, hostname).
primary is not a caller-provided argument. It is derived from stored
Distributor during fee routing and then emitted in event payloads.
fn request_identity_signal(
env: soroban_sdk::Env,
relayer: soroban_sdk::Address,
identity_proof: soroban_sdk::Bytes,
encrypted_payload: soroban_sdk::Bytes,
action_type: u32,
nullifier: soroban_sdk::BytesN<32>,
expires_at_ledger: u32,
satellite: soroban_sdk::Address,
hostname: soroban_sdk::Bytes,
)
Submits a tracking request.
ABI arguments:
(caller, zk_proof, ephemeral_pubkey, ciphertext, satellite, request_type, hostname).
primary is not a caller-provided argument. It is derived from stored
Distributor during fee routing and then emitted in event payloads.
Fee collection occurs before verification. Invalid proofs do not revert after payment; a failure event is emitted and the call returns.
fn request_tracking(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
zk_proof: soroban_sdk::Bytes,
epk: soroban_sdk::BytesN<64>,
ciphertext: soroban_sdk::BytesN<64>,
satellite: soroban_sdk::Address,
request_type: u32,
hostname: soroban_sdk::Bytes,
)
Submits a stealth tracking request where the satellite is the caller.
In this mode the satellite is the authenticated party, fee payer, and
on-chain caller. The user's G-address never appears on-chain.
Verification always uses the stealth VK. The on-chain request_type
is the generic stealth type (7); the actual operation type is encrypted
inside the ciphertext field.
ABI arguments:
(satellite, zk_proof, ephemeral_pubkey, ciphertext, request_type, hostname).
fn request_stealth_tracking(
env: soroban_sdk::Env,
satellite: soroban_sdk::Address,
zk_proof: soroban_sdk::Bytes,
epk: soroban_sdk::BytesN<64>,
ciphertext: soroban_sdk::BytesN<64>,
request_type: u32,
hostname: soroban_sdk::Bytes,
)