Contract 42478c7d30d929252171b277cd8dd9d2e91c3593546acae070eb615546d506ea

← Back to Index 📥 Download WASM

Meta

cliver 23.2.0#8c559e832fd969aa469784b66e70891fadf94f0a
rssdkver 23.1.0#7456be9d91fe1f4cb070fc2732bac78244ce6c3f
rsver 1.94.0

Instances

  • CA3QOQTOUOOMAJHCEXASR2DM4CGAYUE3JFBUXFCWI4SGPEQ6WI2NQRPB

Interface

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

Imports

WebAssembly Text (WAT) ▶