fn admin(env: soroban_sdk::Env) -> soroban_sdk::Address
fn keeper(env: soroban_sdk::Env) -> Option
fn router(env: soroban_sdk::Env) -> Option
Rotate the admin (the 2-of-3 multisig address). Auth: current admin.
fn set_admin(env: soroban_sdk::Env, new: soroban_sdk::Address)
Some = upsert, None = remove. Enforces the two fee caps loudly:
fee_bps ≤ MAX_FEE_BPS, and no non-zero fee_bps while the treasury is
unset (set the treasury first). Auth: admin.
fn set_vault(
env: soroban_sdk::Env,
vault: soroban_sdk::Address,
info: Option,
) -> Result<(), soroban_sdk::Error>
(treasury, rebalance_delta_bps) — the protocol-wide fee config read by
every Strategy on the withdraw/rebalance path.
fn fee_config(env: soroban_sdk::Env) -> (Option, u32)
Set/rotate the fleet-wide keeper address (key rotation in one tx). Auth: admin.
fn set_keeper(env: soroban_sdk::Env, keeper: soroban_sdk::Address)
Set the Soroswap router (used from T2). Auth: admin.
fn set_router(env: soroban_sdk::Env, router: soroban_sdk::Address)
Read a vault's record (None if not whitelisted).
fn vault_info(env: soroban_sdk::Env, vault: soroban_sdk::Address) -> Option
Deploy-time init. Stores admin; every other key follows the read-default
rule (Router/Treasury/Keeper ⇒ None, RebalanceDeltaBps ⇒ 0,
KeeperEnabled ⇒ false) and is written only when first set.
fn __constructor(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn keeper_enabled(env: soroban_sdk::Env) -> bool
Set the protocol-wide treasury + rebalance surcharge. Validates
delta_bps ≤ BPS − MAX_FEE_BPS so fee_bps + delta_bps ≤ 10_000 for every
vault by construction. Once set, the treasury stays Some. Auth: admin.
fn set_fee_config(
env: soroban_sdk::Env,
treasury: soroban_sdk::Address,
delta_bps: u32,
) -> Result<(), soroban_sdk::Error>
Global kill-switch — fleet-wide halt of keeper-driven rebalances. Auth: admin.
fn set_keeper_enabled(env: soroban_sdk::Env, enabled: bool)