Called by the Soroban runtime to authorize every invocation signed by this contract's key.
fn __check_auth(
env: soroban_sdk::Env,
signature_payload: soroban_sdk::BytesN<32>,
signatures: soroban_sdk::Vec,
auth_contexts: soroban_sdk::Vec,
) -> Result<(), WalletError>
Called once during deployment. Stores the owner's Ed25519 public key.
fn __constructor(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
owner_pubkey: soroban_sdk::BytesN<32>,
)
Whitelist a (contract, function) pair so session keys may call it.
fn allow_function(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
contract: soroban_sdk::Address,
fn_name: soroban_sdk::Symbol,
)
Register a session key with its operating limits.
fn add_session_key(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
pubkey: soroban_sdk::BytesN<32>,
data: SessionKeyData,
)
Permanently revoke a session key.
fn revoke_session_key(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
pubkey: soroban_sdk::BytesN<32>,
)
Update rate-limit parameters for an existing session key.
fn update_rate_limits(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
pubkey: soroban_sdk::BytesN<32>,
max_calls_per_day: u32,
cool_down_ledgers: u32,
)
Register a session key and whitelist all allowed (contract, function) pairs in a single call to reduce wallet signature prompts.
fn configure_session_key(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
pubkey: soroban_sdk::BytesN<32>,
data: SessionKeyData,
allowed_fn_contracts: soroban_sdk::Vec,
allowed_fn_names: soroban_sdk::Vec,
)