Contract 0151f6f0e8e711d09cb5ae35e980322a837fb418cdd034bff0713634105e05c8

← Back to Index 📥 Download WASM

Meta

rssdkver 23.1.0#7456be9d91fe1f4cb070fc2732bac78244ce6c3f
rsver 1.89.0

Instances

  • CCFFXDSNAHP3IRH4O2QAKRCSZYDKSFZ55OUAPHY3FICP6OO3EDD7XDFL

Interface

fn upgrade(
    env: soroban_sdk::Env,
    new_wasm_hash: soroban_sdk::BytesN<32>,
    operator: soroban_sdk::Address,
)
fn initialize(
    env: soroban_sdk::Env,
    config: VaultInitConfig,
) -> Result<(), STokenCoreError>
fn mint_core(
    env: soroban_sdk::Env,
    mint: soroban_sdk::Address,
    to: soroban_sdk::Address,
    amount: u64,
) -> Result<(), STokenAllowlistMintError>

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,
    caller: soroban_sdk::Address,
) -> Result<(), STokenRoleChangeError>

Accept pending role changes after cooldown

fn accept_roles(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
) -> Result<(), STokenRoleChangeError>

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,
    caller: soroban_sdk::Address,
) -> Result<(), STokenFeeChangeError>

Accept pending fee changes after cooldown

fn accept_fees(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
) -> Result<(), STokenFeeChangeError>

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>

Accept pending limits changes after cooldown

fn accept_limits(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
) -> Result<(), STokenCoreError>

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>

Deposit underlying tokens to receive S-Tokens

fn deposit_core(
    env: soroban_sdk::Env,
    amount: u64,
    caller: soroban_sdk::Address,
    min_shares: Option,
    beneficiary: Option,
) -> 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>

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>

Process queued deposits (processor only)

fn process_deposits(
    env: soroban_sdk::Env,
    amount: u64,
    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>

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>

Accrue management fee (anyone can call)

fn accrue_management_fee(env: soroban_sdk::Env) -> Result<(), STokenCoreError>

Accept a pending price update

fn accept_price(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
) -> Result<(), STokenCoreError>

Reject a pending price update (manager only)

fn reject_price(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
) -> Result<(), STokenCoreError>

Cancel a withdrawal request

fn cancel_withdrawal(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    request_id: u64,
) -> Result<(), STokenWithdrawalRequestError>

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>

Pause the vault (emergency mode)

fn pause_vault(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
) -> Result<(), STokenEmergencyWithdrawalError>

Unpause the vault

fn unpause_vault(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
) -> Result<(), STokenEmergencyWithdrawalError>

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>

Add a user to the vault whitelist

fn add_user_to_whitelist(
    env: soroban_sdk::Env,
    user_to_add: soroban_sdk::Address,
    caller: soroban_sdk::Address,
) -> Result<(), STokenCoreError>

Propose whitelist toggle (starts cooldown period)

fn propose_whitelist(
    env: soroban_sdk::Env,
    enabled: bool,
    caller: soroban_sdk::Address,
) -> Result<(), STokenWhitelistChangeError>

Accept pending whitelist changes after cooldown

fn accept_whitelist(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
) -> Result<(), STokenWhitelistChangeError>

Remove a user from the vault whitelist

fn remove_user_from_whitelist(
    env: soroban_sdk::Env,
    user_to_remove: soroban_sdk::Address,
    caller: soroban_sdk::Address,
) -> Result<(), STokenCoreError>

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,
    swap_fee_bps: u32,
    min_destination_amount: u64,
) -> Result<(), STokenSwapError>

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>

Accept pending cooldown changes after cooldown

fn accept_cooldowns(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
) -> Result<(), STokenCooldownChangeError>

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>
fn cancel_allowlist_mint(
    env: soroban_sdk::Env,
    mint: soroban_sdk::Address,
    caller: soroban_sdk::Address,
) -> Result<(), STokenAllowlistMintError>
fn write_vault_total_shares(
    env: soroban_sdk::Env,
    mint: soroban_sdk::Address,
    shares: u64,
) -> Result<(), STokenAllowlistMintError>
fn total_idle(env: soroban_sdk::Env) -> u64
fn total_shares(env: soroban_sdk::Env) -> u64
fn is_paused(env: soroban_sdk::Env) -> bool
fn price(env: soroban_sdk::Env) -> u64
fn asset_manager(env: soroban_sdk::Env) -> soroban_sdk::Address
fn accountant(env: soroban_sdk::Env) -> soroban_sdk::Address
fn whitelist_enabled(env: soroban_sdk::Env) -> bool
fn is_whitelisted(env: soroban_sdk::Env, caller: soroban_sdk::Address) -> bool
fn min_shares_to_mint(env: soroban_sdk::Env) -> u64
fn get_withdraw_request(env: soroban_sdk::Env, request_id: u64) -> (u64, u64, u64, u64)
fn theoretical_out(env: soroban_sdk::Env, shares: u64, price: u64) -> u64
fn total_withdrawals_pending(env: soroban_sdk::Env) -> u64
fn shares_in_custody(env: soroban_sdk::Env) -> u64
fn max_total_shares(env: soroban_sdk::Env) -> u64
fn max_shares_per_user(env: soroban_sdk::Env) -> u64
fn total_supply(env: soroban_sdk::Env) -> i128
fn balance(env: soroban_sdk::Env, account: soroban_sdk::Address) -> i128
fn allowance(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    spender: soroban_sdk::Address,
) -> i128
fn transfer(
    env: soroban_sdk::Env,
    from: soroban_sdk::Address,
    to: soroban_sdk::Address,
    amount: i128,
)
fn transfer_from(
    env: soroban_sdk::Env,
    spender: soroban_sdk::Address,
    from: soroban_sdk::Address,
    to: soroban_sdk::Address,
    amount: i128,
)
fn approve(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    spender: soroban_sdk::Address,
    amount: i128,
    live_until_ledger: u32,
)
fn decimals(env: soroban_sdk::Env) -> u32
fn name(env: soroban_sdk::Env) -> soroban_sdk::String
fn symbol(env: soroban_sdk::Env) -> soroban_sdk::String
fn query_asset(env: soroban_sdk::Env) -> soroban_sdk::Address
fn total_assets(env: soroban_sdk::Env) -> i128
fn convert_to_shares(env: soroban_sdk::Env, assets: i128) -> i128
fn convert_to_assets(env: soroban_sdk::Env, shares: i128) -> i128
fn max_deposit(env: soroban_sdk::Env, account: soroban_sdk::Address) -> i128
fn preview_deposit(env: soroban_sdk::Env, assets: i128) -> i128
fn deposit(
    env: soroban_sdk::Env,
    assets: i128,
    receiver: soroban_sdk::Address,
    from: soroban_sdk::Address,
    operator: soroban_sdk::Address,
) -> i128
fn max_mint(env: soroban_sdk::Env, account: soroban_sdk::Address) -> i128
fn preview_mint(env: soroban_sdk::Env, shares: i128) -> i128
fn mint(
    env: soroban_sdk::Env,
    shares: i128,
    receiver: soroban_sdk::Address,
    from: soroban_sdk::Address,
    operator: soroban_sdk::Address,
) -> i128
fn max_withdraw(env: soroban_sdk::Env, account: soroban_sdk::Address) -> i128
fn preview_withdraw(env: soroban_sdk::Env, assets: i128) -> i128
fn withdraw(
    env: soroban_sdk::Env,
    assets: i128,
    caller: soroban_sdk::Address,
    receiver: soroban_sdk::Address,
    owner: soroban_sdk::Address,
) -> i128
fn max_redeem(env: soroban_sdk::Env, account: soroban_sdk::Address) -> i128
fn preview_redeem(env: soroban_sdk::Env, shares: i128) -> i128
fn redeem(
    env: soroban_sdk::Env,
    shares: i128,
    caller: soroban_sdk::Address,
    receiver: soroban_sdk::Address,
    owner: soroban_sdk::Address,
) -> i128
fn has_role(
    env: soroban_sdk::Env,
    account: soroban_sdk::Address,
    role: soroban_sdk::Symbol,
) -> Option
fn get_role_member_count(env: soroban_sdk::Env, role: soroban_sdk::Symbol) -> u32
fn get_role_member(
    env: soroban_sdk::Env,
    role: soroban_sdk::Symbol,
    index: u32,
) -> soroban_sdk::Address
fn get_role_admin(
    env: soroban_sdk::Env,
    role: soroban_sdk::Symbol,
) -> Option
fn get_admin(env: soroban_sdk::Env) -> Option
fn grant_role(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    account: soroban_sdk::Address,
    role: soroban_sdk::Symbol,
)
fn revoke_role(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    account: soroban_sdk::Address,
    role: soroban_sdk::Symbol,
)
fn renounce_role(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    role: soroban_sdk::Symbol,
)
fn renounce_admin(env: soroban_sdk::Env)
fn transfer_admin_role(
    env: soroban_sdk::Env,
    new_admin: soroban_sdk::Address,
    live_until_ledger: u32,
)
fn accept_admin_transfer(env: soroban_sdk::Env)
fn set_role_admin(
    env: soroban_sdk::Env,
    role: soroban_sdk::Symbol,
    admin_role: soroban_sdk::Symbol,
)

Imports

WebAssembly Text (WAT) ▶