fn burn(env: soroban_sdk::Env, from: soroban_sdk::Address, amount: i128)
fn mint(
env: soroban_sdk::Env,
shares: i128,
receiver: soroban_sdk::Address,
from: soroban_sdk::Address,
operator: soroban_sdk::Address,
) -> i128
fn name(env: soroban_sdk::Env) -> soroban_sdk::String
fn price(env: soroban_sdk::Env) -> u64
fn redeem(
env: soroban_sdk::Env,
shares: i128,
receiver: soroban_sdk::Address,
owner: soroban_sdk::Address,
operator: soroban_sdk::Address,
) -> i128
fn symbol(env: soroban_sdk::Env) -> soroban_sdk::String
fn approve(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
spender: soroban_sdk::Address,
amount: i128,
live_until_ledger: u32,
)
fn balance(env: soroban_sdk::Env, account: soroban_sdk::Address) -> i128
fn deposit(
env: soroban_sdk::Env,
assets: i128,
receiver: soroban_sdk::Address,
from: soroban_sdk::Address,
operator: soroban_sdk::Address,
) -> i128
fn upgrade(
env: soroban_sdk::Env,
new_wasm_hash: soroban_sdk::BytesN<32>,
operator: soroban_sdk::Address,
)
fn decimals(env: soroban_sdk::Env) -> u32
fn has_role(
env: soroban_sdk::Env,
account: soroban_sdk::Address,
role: soroban_sdk::Symbol,
) -> Option
fn max_mint(env: soroban_sdk::Env, receiver: soroban_sdk::Address) -> i128
fn transfer(
env: soroban_sdk::Env,
from: soroban_sdk::Address,
to: soroban_sdk::Address,
amount: i128,
)
fn withdraw(
env: soroban_sdk::Env,
assets: i128,
receiver: soroban_sdk::Address,
owner: soroban_sdk::Address,
operator: soroban_sdk::Address,
) -> i128
fn allowance(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
spender: soroban_sdk::Address,
) -> i128
fn burn_from(
env: soroban_sdk::Env,
spender: soroban_sdk::Address,
from: soroban_sdk::Address,
amount: i128,
)
fn get_admin(env: soroban_sdk::Env) -> Option
fn is_paused(env: soroban_sdk::Env) -> bool
fn accountant(env: soroban_sdk::Env) -> soroban_sdk::Address
fn grant_role(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
account: soroban_sdk::Address,
role: soroban_sdk::Symbol,
)
fn initialize(
env: soroban_sdk::Env,
config: VaultInitConfig,
) -> Result<(), STokenCoreError>
fn max_redeem(env: soroban_sdk::Env, owner: soroban_sdk::Address) -> i128
fn total_idle(env: soroban_sdk::Env) -> u64
Accept pending fee changes after cooldown
fn accept_fees(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> Result<(), STokenFeeChangeError>
fn max_deposit(env: soroban_sdk::Env, receiver: soroban_sdk::Address) -> i128
Pause the vault (emergency mode) Can be called by either the manager or the guardian
fn pause_vault(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> Result<(), STokenEmergencyWithdrawalError>
fn query_asset(env: soroban_sdk::Env) -> soroban_sdk::Address
fn revoke_role(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
account: soroban_sdk::Address,
role: soroban_sdk::Symbol,
)
Returns the vault/share token contract address (same as this contract once initialized).
fn share_token(env: soroban_sdk::Env) -> Result
Swap tokens between two s-token vaults with the same underlying token and asset manager
fn swap_tokens(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
destination_vault: soroban_sdk::Address,
source_amount: u64,
min_destination_amount: u64,
) -> Result<(), STokenSwapError>
Accept a pending price update
fn accept_price(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> Result<(), STokenCoreError>
Accept pending role changes after cooldown
fn accept_roles(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> Result<(), STokenRoleChangeError>
fn max_withdraw(env: soroban_sdk::Env, owner: soroban_sdk::Address) -> i128
fn preview_mint(env: soroban_sdk::Env, shares: i128) -> i128
Propose fee parameter changes (starts cooldown period)
fn propose_fees(
env: soroban_sdk::Env,
deposit_fee_bps: u32,
withdraw_fee_bps: u32,
management_fee_bps_per_year: u32,
swap_fee_bps: u32,
caller: soroban_sdk::Address,
) -> Result<(), STokenFeeChangeError>
Reject a pending price update (manager only)
fn reject_price(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> Result<(), STokenCoreError>
Return funds from asset manager to vault
fn return_funds(
env: soroban_sdk::Env,
amount: u64,
caller: soroban_sdk::Address,
) -> Result<(), STokenCoreError>
fn swap_fee_bps(env: soroban_sdk::Env) -> u32
fn total_assets(env: soroban_sdk::Env) -> i128
fn total_shares(env: soroban_sdk::Env) -> u64
fn total_supply(env: soroban_sdk::Env) -> i128
Update S-Token price (with secure price flow for v2)
fn update_price(
env: soroban_sdk::Env,
new_price: u64,
caller: soroban_sdk::Address,
) -> Result<(), STokenOracleError>
Accept pending limits changes after cooldown
fn accept_limits(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> Result<(), STokenCoreError>
fn asset_manager(env: soroban_sdk::Env) -> soroban_sdk::Address
Propose vault role changes
fn propose_roles(
env: soroban_sdk::Env,
new_manager: Option,
new_processor: Option,
new_accountant: Option,
new_oracle: Option,
new_asset_manager: Option,
new_guardian: Option,
caller: soroban_sdk::Address,
) -> Result<(), STokenRoleChangeError>
fn renounce_role(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
role: soroban_sdk::Symbol,
)
fn transfer_from(
env: soroban_sdk::Env,
spender: soroban_sdk::Address,
from: soroban_sdk::Address,
to: soroban_sdk::Address,
amount: i128,
)
Unpause the vault
fn unpause_vault(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> Result<(), STokenEmergencyWithdrawalError>
fn allowlist_mint(
env: soroban_sdk::Env,
mint: soroban_sdk::Address,
to: soroban_sdk::Address,
amount: u64,
) -> Result<(), STokenAllowlistMintError>
fn get_role_admin(
env: soroban_sdk::Env,
role: soroban_sdk::Symbol,
) -> Option
fn preview_redeem(env: soroban_sdk::Env, shares: i128) -> i128
Propose limits parameter changes (starts cooldown period)
fn propose_limits(
env: soroban_sdk::Env,
new_max_total_shares: Option,
new_max_shares_per_user: Option,
new_max_total_idle: Option,
new_max_deviation_bps: Option,
new_min_shares_to_mint: Option,
caller: soroban_sdk::Address,
) -> Result<(), STokenCoreError>
fn renounce_admin(env: soroban_sdk::Env)
fn set_role_admin(
env: soroban_sdk::Env,
role: soroban_sdk::Symbol,
admin_role: soroban_sdk::Symbol,
)
fn get_role_member(
env: soroban_sdk::Env,
role: soroban_sdk::Symbol,
index: u32,
) -> soroban_sdk::Address
fn preview_deposit(env: soroban_sdk::Env, assets: i128) -> i128
fn theoretical_out(env: soroban_sdk::Env, shares: u64, price: u64) -> u64
Accept pending cooldown changes after cooldown
fn accept_cooldowns(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> Result<(), STokenCooldownChangeError>
fn accept_whitelist(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> Result<(), STokenWhitelistChangeError>
fn max_total_shares(env: soroban_sdk::Env) -> u64
fn preview_withdraw(env: soroban_sdk::Env, assets: i128) -> i128
Process queued deposits (processor only)
fn process_deposits(
env: soroban_sdk::Env,
amount: u64,
caller: soroban_sdk::Address,
) -> Result<(), STokenCoreError>
Request withdrawal of S-Tokens
fn withdraw_request(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
shares: u64,
min_amount_out: u64,
) -> Result<(), STokenCoreError>
Cancel a withdrawal request
fn cancel_withdrawal(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
request_id: u64,
) -> Result<(), STokenWithdrawalRequestError>
fn convert_to_assets(env: soroban_sdk::Env, shares: i128) -> i128
fn convert_to_shares(env: soroban_sdk::Env, assets: i128) -> i128
Propose cooldown parameter changes (starts cooldown period)
fn propose_cooldowns(
env: soroban_sdk::Env,
new_price_update_cooldown_secs: Option,
new_price_acceptance_cooldown: Option,
new_config_cooldown_secs: Option,
new_emergency_withdraw_cldwn: Option,
new_role_change_cooldown_secs: Option,
new_fee_change_cooldown_secs: Option,
caller: soroban_sdk::Address,
) -> Result<(), STokenCooldownChangeError>
fn propose_whitelist(
env: soroban_sdk::Env,
deposit_enabled: Option,
withdrawal_enabled: Option,
caller: soroban_sdk::Address,
) -> Result<(), STokenWhitelistChangeError>
fn shares_in_custody(env: soroban_sdk::Env) -> u64
Deposit underlying tokens to receive S-Tokens
fn deposit_underlying(
env: soroban_sdk::Env,
amount: u64,
caller: soroban_sdk::Address,
min_shares: Option,
beneficiary: Option,
) -> Result<(), STokenCoreError>
Emergency withdrawal when vault is paused
fn emergency_withdraw(
env: soroban_sdk::Env,
token_mint: soroban_sdk::Address,
amount: u64,
caller: soroban_sdk::Address,
) -> Result<(), STokenEmergencyWithdrawalError>
Fulfill a withdrawal request by request ID
fn fulfill_withdrawal(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
request_id: u64,
caller: soroban_sdk::Address,
) -> Result<(), STokenWithdrawalRequestError>
fn min_shares_to_mint(env: soroban_sdk::Env) -> u64
fn max_shares_per_user(env: soroban_sdk::Env) -> u64
fn transfer_admin_role(
env: soroban_sdk::Env,
new_admin: soroban_sdk::Address,
live_until_ledger: u32,
)
fn get_withdraw_request(env: soroban_sdk::Env, request_id: u64) -> (u64, u64, u64, u64)
fn accept_admin_transfer(env: soroban_sdk::Env)
Accept allowlist mint - this should be the address of the vault that is being swapped to
fn accept_allowlist_mint(
env: soroban_sdk::Env,
mint: soroban_sdk::Address,
caller: soroban_sdk::Address,
) -> Result<(), STokenAllowlistMintError>
Accrue management fee (anyone can call)
fn accrue_management_fee(env: soroban_sdk::Env) -> Result<(), STokenCoreError>
fn cancel_allowlist_mint(
env: soroban_sdk::Env,
mint: soroban_sdk::Address,
caller: soroban_sdk::Address,
) -> Result<(), STokenAllowlistMintError>
fn get_role_member_count(env: soroban_sdk::Env, role: soroban_sdk::Symbol) -> u32
fn is_deposit_whitelisted(env: soroban_sdk::Env, caller: soroban_sdk::Address) -> bool
Accept pending withdrawal parameter changes after cooldown.
fn accept_withdrawal_params(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> Result<(), STokenConfigurationCooldownError>
fn add_to_deposit_whitelist(
env: soroban_sdk::Env,
user_to_add: soroban_sdk::Address,
caller: soroban_sdk::Address,
) -> Result<(), STokenCoreError>
fn max_price_staleness_secs(env: soroban_sdk::Env) -> u64
fn write_vault_total_shares(
env: soroban_sdk::Env,
mint: soroban_sdk::Address,
shares: u64,
) -> Result<(), STokenAllowlistMintError>
fn deposit_whitelist_enabled(env: soroban_sdk::Env) -> bool
fn is_withdrawal_whitelisted(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
) -> bool
Propose withdrawal parameter changes (starts cooldown period). Allows timelocked updates to downside_cap_bps, withdrawal_ttl_secs, system_penalty_bps.
fn propose_withdrawal_params(
env: soroban_sdk::Env,
new_downside_cap_bps: Option,
new_withdrawal_ttl_secs: Option,
new_system_penalty_bps: Option,
caller: soroban_sdk::Address,
) -> Result<(), STokenConfigurationCooldownError>
fn rm_from_deposit_whitelist(
env: soroban_sdk::Env,
user_to_remove: soroban_sdk::Address,
caller: soroban_sdk::Address,
) -> Result<(), STokenCoreError>
fn total_withdrawals_pending(env: soroban_sdk::Env) -> u64
Update minimum acceptable payout for a pending withdrawal request
fn update_withdrawal_minimum(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
request_id: u64,
new_minimum: u64,
) -> Result<(), STokenWithdrawalRequestError>
fn add_to_withdrawal_whitelist(
env: soroban_sdk::Env,
user_to_add: soroban_sdk::Address,
caller: soroban_sdk::Address,
) -> Result<(), STokenCoreError>
fn last_price_update_timestamp(env: soroban_sdk::Env) -> u64
fn rm_from_withdrawal_whitelist(
env: soroban_sdk::Env,
user_to_remove: soroban_sdk::Address,
caller: soroban_sdk::Address,
) -> Result<(), STokenCoreError>
Withdraw unexpected deposits immediately
fn withdraw_unexpected_deposits(
env: soroban_sdk::Env,
token_mint: soroban_sdk::Address,
amount: u64,
caller: soroban_sdk::Address,
) -> Result<(), STokenCoreError>
fn withdrawal_whitelist_enabled(env: soroban_sdk::Env) -> bool