fn admin(env: soroban_sdk::Env) -> soroban_sdk::Address
Pull tokens from from into the vault (any account may fund the vault).
fn deposit(
env: soroban_sdk::Env,
from: soroban_sdk::Address,
token: soroban_sdk::Address,
amount: i128,
)
fn upgrade(env: soroban_sdk::Env, new_wasm_hash: soroban_sdk::BytesN<32>)
fn is_caller(env: soroban_sdk::Env, caller: soroban_sdk::Address) -> bool
fn add_caller(env: soroban_sdk::Env, caller: soroban_sdk::Address)
fn initialize(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn remove_caller(env: soroban_sdk::Env, caller: soroban_sdk::Address)
Admin emergency withdrawal from vault balances.
fn admin_withdraw(
env: soroban_sdk::Env,
token: soroban_sdk::Address,
to: soroban_sdk::Address,
amount: i128,
)
Authorized caller executes a round-trip arb atomically: vault → caller → aggregator → caller → vault.
allowance_expiration_ledger is supplied by the caller (not
ledger.sequence()+N inside the contract) so Soroban auth args match
between simulate and inclusion.
fn execute_round_trip(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
aggregator: soroban_sdk::Address,
base_token: soroban_sdk::Address,
bridge_token: soroban_sdk::Address,
amount_in: i128,
leg_out: soroban_sdk::Vec,
leg_back: soroban_sdk::Vec,
min_amount_out: i128,
allowance_expiration_ledger: u32,
) -> i128