Contract 785870924ad04930512a5494cbf442b159c912a1f233491d1b0f696fe19f4dae

← 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

  • CAJYFE76XIRQVEUPI6O3JMH2LZCS3VXHYEF3VO3L5FID4ACNPBK4HVOC
  • CCGUC64LNKNDADMIKEPT2HCUCS2QKX2B3XGRHJLMQ2G33424SGMNAKN2
  • CD62KR2YTQZ5OR7SEGC5PUKRCKAVI6MJNROJ4LT6MZBZAVEWQFMOWSYB

Interface

Binds this adapter instance to exactly one treasury SmartAccount. An adapter instance is not shared across unrelated treasuries: doing so would let one treasury's approved transfer authorize funds moving out of a different treasury with the same adapter configured.

fn initialize(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    smart_account: soroban_sdk::Address,
) -> Result<(), TransferAdapterError>
fn contract_name(env: soroban_sdk::Env) -> soroban_sdk::Symbol

Executes a single SAC transfer of amount of token from the configured treasury to to. Requires the treasury's own authorization for this exact call.

fn execute_transfer(
    env: soroban_sdk::Env,
    token: soroban_sdk::Address,
    to: soroban_sdk::Address,
    amount: i128,
) -> Result<(), TransferAdapterError>

Security review finding: this contract's instance TTL was only ever extended as a side effect of execute_transfer succeeding, which itself requires the treasury's own authorization -- meaning a treasury that goes fully dormant (no payments at all, entirely plausible for e.g. a quarterly-disbursement treasury) had no way for anyone to keep this adapter's instance storage alive, since the one call that touches it can't be driven permissionlessly. Instance storage archival is not a soft failure -- an archived contract cannot be invoked at all without a separate restore operation. Every other contract in this workspace (smart_account, recovery_manager, policy_engine, intent_registry, governance_account) already has a permissionless maintenance entrypoint for exactly this reason; this one and split_adapter were the two gaps.

fn extend_instance_ttl(env: soroban_sdk::Env)

Imports

WebAssembly Text (WAT) ▶