Contract 6e00a774d7ad80e70d4243049c23be3a8f7159dcb2a1da540140c0fee9fa6fa1

← Back to Index 📥 Download WASM

Meta

cliver 26.0.0#60f7458e7ecffddf2f2d91dc6d0d2db4fab03ecc
rssdk_spec_shaking 2
rssdkver 25.3.0#dcbea44513feb7734af6b6c4aced2c4a7a2715d0
rsver 1.86.0

Instances

  • CDBBJXSK22AFN34GHAHOLZVEZOHSXGWZYMBMYPFRYBJSO5D7BTN7P6QX

Interface

Synchronous asset deposit into the underlying vault.

operator is explicit because Soroban has no ambient msg.sender; the proxy must know which address to authenticate with require_auth(). This method follows the ERC-4626 deposit shape, but with the Soroban operator address passed as an argument. The operator is also the asset source for this compatibility entrypoint.

fn deposit(
    env: soroban_sdk::Env,
    operator: soroban_sdk::Address,
    assets: i128,
    receiver: soroban_sdk::Address,
) -> Result

Synchronous asset deposit with explicit minimum shares out.

This exposes the vault's native DepositWithMin slippage guard through the proxy. operator is authenticated and is also the asset source for this compatibility entrypoint.

fn deposit_with_min(
    env: soroban_sdk::Env,
    operator: soroban_sdk::Address,
    assets: i128,
    receiver: soroban_sdk::Address,
    min_shares_out: i128,
) -> Result

Synchronous share mint into the underlying vault.

operator is explicit because Soroban has no ambient msg.sender; the proxy must know which address to authenticate with require_auth(). The proxy previews the assets needed and submits a minimum share output equal to shares. The operator is also the asset source for this compatibility entrypoint.

fn mint(
    env: soroban_sdk::Env,
    operator: soroban_sdk::Address,
    shares: i128,
    receiver: soroban_sdk::Address,
) -> Result

Request an asynchronous redemption by asset amount.

This is an ERC-7540-style redemption request, not a synchronous ERC-4626 withdrawal. It escrows shares in the vault and returns a request_id; assets are not transferred to receiver until the withdrawal becomes executable and execute_withdraw succeeds.

operator is explicit because Soroban has no ambient msg.sender. The supported path is operator == owner. Operator-style delegated requests require a transfer-from-backed vault request path.

fn withdraw(
    env: soroban_sdk::Env,
    operator: soroban_sdk::Address,
    assets: i128,
    receiver: soroban_sdk::Address,
    owner: soroban_sdk::Address,
) -> Result

Request an asynchronous redemption by share amount.

This is an ERC-7540-style redemption request, not a synchronous ERC-4626 redeem. It escrows shares in the vault and returns a request_id; assets are not transferred to receiver until the withdrawal becomes executable and execute_withdraw succeeds.

operator is explicit because Soroban has no ambient msg.sender. The supported path is operator == owner. Operator-style delegated requests require a transfer-from-backed vault request path.

fn redeem(
    env: soroban_sdk::Env,
    operator: soroban_sdk::Address,
    shares: i128,
    receiver: soroban_sdk::Address,
    owner: soroban_sdk::Address,
) -> Result

Lower-level asynchronous redemption request with explicit slippage.

This mirrors the vault's native request path: owner authenticates, shares are escrowed, and the returned request_id identifies the queued redemption request. Claiming assets is a separate execute_withdraw step after cooldown/liquidity conditions are met.

fn request_withdraw(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    receiver: soroban_sdk::Address,
    shares: i128,
    min_assets_out: i128,
) -> Result

Execute the next claimable queued withdrawal.

operator is the authenticated vault executor/keeper, not a request id. This method executes according to the vault's queue and authorization policy; it does not select a withdrawal request by request_id.

fn execute_withdraw(
    env: soroban_sdk::Env,
    operator: soroban_sdk::Address,
) -> Result<(), ContractError>
fn asset(env: soroban_sdk::Env) -> Result
fn total_assets(env: soroban_sdk::Env) -> Result
fn total_supply(env: soroban_sdk::Env) -> Result
fn balance_of(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
) -> Result
fn convert_to_shares(
    env: soroban_sdk::Env,
    assets: i128,
) -> Result
fn convert_to_assets(
    env: soroban_sdk::Env,
    shares: i128,
) -> Result
fn preview_deposit(env: soroban_sdk::Env, assets: i128) -> Result
fn preview_mint(env: soroban_sdk::Env, shares: i128) -> Result
fn preview_withdraw(env: soroban_sdk::Env, assets: i128) -> Result
fn preview_redeem(env: soroban_sdk::Env, shares: i128) -> Result
fn max_deposit(
    env: soroban_sdk::Env,
    receiver: soroban_sdk::Address,
) -> Result
fn max_mint(
    env: soroban_sdk::Env,
    receiver: soroban_sdk::Address,
) -> Result
fn max_withdraw(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
) -> Result
fn max_redeem(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
) -> Result
fn decimals(env: soroban_sdk::Env) -> Result
fn name(env: soroban_sdk::Env) -> Result
fn symbol(env: soroban_sdk::Env) -> Result
fn initialize(
    env: soroban_sdk::Env,
    vault_address: soroban_sdk::Address,
    asset_token: soroban_sdk::Address,
    share_token: soroban_sdk::Address,
) -> Result<(), ContractError>

Extend proxy configuration TTL.

This is permissionless because it only preserves existing proxy config; it cannot mutate vault accounting or authorization state.

fn extend_ttl(env: soroban_sdk::Env) -> Result<(), ContractError>

Imports

WebAssembly Text (WAT) ▶