Upgrade this contract's own WASM Requires admin signature AND WASM hash must match pre-approved hash
fn upgrade(
env: soroban_sdk::Env,
new_wasm_hash: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>
Extend TTL — anyone can call
fn extend_ttl(env: soroban_sdk::Env)
Initialize with the admin's Ed25519 public key (32 bytes, from G-address)
fn initialize(
env: soroban_sdk::Env,
admin_pubkey: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>
fn __check_auth(
env: soroban_sdk::Env,
signature_payload: soroban_sdk::BytesN<32>,
signature: soroban_sdk::Val,
auth_contexts: soroban_sdk::Vec,
) -> Result<(), soroban_sdk::Error>
Pre-approve a WASM hash for contract upgrades Requires admin signature (via __check_auth)
fn approve_wasm(
env: soroban_sdk::Env,
wasm_hash: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>
Execute a proposed admin change after timelock expires
fn execute_admin_change(env: soroban_sdk::Env) -> Result<(), soroban_sdk::Error>
Propose an admin key change — starts the timelock Requires admin signature (via __check_auth)
fn propose_admin_change(
env: soroban_sdk::Env,
new_admin_pubkey: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>