fn get_status(env: soroban_sdk::Env, owner: soroban_sdk::Address) -> Status
One-time setup. Zero category = block; zero band floor is allowed.
fn initialize(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
max_per_call: i128,
max_per_day: i128,
category_daily: CategoryLimits,
liquid_low: i128,
liquid_high: i128,
auto_yield: bool,
)
fn set_limits(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
max_per_call: i128,
max_per_day: i128,
)
Blocks check_spend only — set_paused still works while paused.
fn set_paused(env: soroban_sdk::Env, owner: soroban_sdk::Address, paused: bool)
Enforce + record USDC spend (Hub converts XLM before calling).
fn check_spend(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
category: SpendCategory,
amount: i128,
)
Liquid band + auto-yield (published for Hub; not enforced here).
fn set_treasury_band(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
liquid_low: i128,
liquid_high: i128,
auto_yield: bool,
)
Zero = block that category.
fn set_category_limits(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
category_daily: CategoryLimits,
)