Contract 15f635356ddf3497788d4f6aab7f6e93cd2fbdaab36ecbe77d0c5521e403a3dd

← Back to Index 📥 Download WASM

Meta

cliver 26.0.0#60f7458e7ecffddf2f2d91dc6d0d2db4fab03ecc
rssdk_spec_shaking 2
rssdkver 26.1.0#175aa41306f383057a8cdfc84b68d931664fc34e
rsver 1.94.1

Instances

  • CCFIPN4TIF5XOJ7SZCQNET7YSXUXS7ERLJHX3JHNVZPTJTFI4HTKQAAV

Interface

fn initialize(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    wasm_hashes: WasmHashes,
) -> Result<(), AccountFactoryError>
fn contract_name(env: soroban_sdk::Env) -> soroban_sdk::Symbol

Deploys and wires a complete, ready-to-use treasury stack in one call. See the module doc comment for the authorization model and what "ready to use" means (adapters already bound, no timelock; intent_registry already initialized).

salt only needs to be unique per caller — sub-contract addresses are derived from sha256(caller || salt || per-contract tag), so one caller-chosen salt is enough to place all six deployments deterministically and collision-free against each other, and two different callers can safely choose the identical raw salt value with no cross-caller collision or squatting risk (see sub_salt's doc comment for the security review finding this closed).

executor is intent_registry's scheduled-payment relayer address (see smart_account::initialize's doc comment on initial_executor for why this needs to be explicit rather than defaulted). Pass caller again if there is no separate relayer identity yet.

fn deploy_account(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    salt: soroban_sdk::BytesN<32>,
    initial_signers: soroban_sdk::Vec,
    initial_policies: soroban_sdk::Map,
    guardian_threshold: u32,
    executor: soroban_sdk::Address,
) -> Result
fn get_wasm_hashes(env: soroban_sdk::Env) -> Result

Updates the WASM hashes used for every future deploy_account call. Admin-gated and deliberately mutable — unlike smart_account's own pinned subordinate-module addresses (which protect one already -deployed treasury's established trust), this only ever affects treasuries deployed after the update; already-deployed treasuries are unaffected, since their addresses were already fixed at their own deploy time. Shared infrastructure code getting patched over time is the ordinary case, not a residual risk to name.

fn set_wasm_hashes(
    env: soroban_sdk::Env,
    wasm_hashes: WasmHashes,
) -> Result<(), AccountFactoryError>

Permissionless TTL maintenance — extending TTL creates no authority, matching the reasoning already used by every other contract in this workspace (docs/TECHNICAL_ARCHITECTURE.md §16.1).

fn extend_instance_ttl(env: soroban_sdk::Env)

Imports

WebAssembly Text (WAT) ▶