fn initialize(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
smart_account: soroban_sdk::Address,
) -> Result<(), SplitAdapterError>
fn contract_name(env: soroban_sdk::Env) -> soroban_sdk::Symbol
Splits token from the treasury across recipients[i] receiving
amounts[i], for every index. Positionally aligned by index;
recipients and amounts must have the same length, each amount
must be positive, and the recipient count is bounded so a single
call cannot be used to exhaust the transaction's resource budget or
silently balloon the preauthorized action's blast radius.
fn execute_split(
env: soroban_sdk::Env,
token: soroban_sdk::Address,
recipients: soroban_sdk::Vec,
amounts: soroban_sdk::Vec,
) -> Result<(), SplitAdapterError>
Security review finding: same gap as transfer_adapter's identical
entrypoint -- this contract's instance TTL was only ever extended
as a side effect of execute_split succeeding, which itself
requires the treasury's own authorization. A fully dormant
treasury (no split payments at all for ~30 days -- plausible, e.g.
a treasury that only ever does single-recipient transfers) had no
permissionless way to keep this adapter's instance storage alive.
fn extend_instance_ttl(env: soroban_sdk::Env)