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
fn name(env: soroban_sdk::Env) -> Result
fn asset(env: soroban_sdk::Env) -> 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
fn symbol(env: soroban_sdk::Env) -> Result
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
fn decimals(env: soroban_sdk::Env) -> Result
fn max_mint(
env: soroban_sdk::Env,
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
fn balance_of(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
) -> Result
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>
fn initialize(
env: soroban_sdk::Env,
vault_address: soroban_sdk::Address,
asset_token: soroban_sdk::Address,
share_token: soroban_sdk::Address,
) -> Result<(), ContractError>
fn max_redeem(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
) -> Result
fn max_deposit(
env: soroban_sdk::Env,
receiver: soroban_sdk::Address,
) -> Result
fn max_withdraw(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
) -> Result
fn preview_mint(env: soroban_sdk::Env, shares: i128) -> Result
fn total_assets(env: soroban_sdk::Env) -> Result
fn total_supply(env: soroban_sdk::Env) -> Result
Atomically redeem an exact share amount from idle vault liquidity.
min_assets_out protects the caller from adverse share-price movement.
The authenticated operator may differ from owner when the share-token
allowance permits the delegated burn.
fn atomic_redeem(
env: soroban_sdk::Env,
operator: soroban_sdk::Address,
shares: i128,
receiver: soroban_sdk::Address,
owner: soroban_sdk::Address,
min_assets_out: i128,
) -> Result
fn preview_redeem(env: soroban_sdk::Env, shares: i128) -> Result
Atomically withdraw an exact asset amount from idle vault liquidity.
max_shares_burned protects the caller from adverse share-price movement.
The authenticated operator may differ from owner when the share-token
allowance permits the delegated burn.
fn atomic_withdraw(
env: soroban_sdk::Env,
operator: soroban_sdk::Address,
assets: i128,
receiver: soroban_sdk::Address,
owner: soroban_sdk::Address,
max_shares_burned: i128,
) -> Result
fn preview_deposit(env: soroban_sdk::Env, assets: i128) -> 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
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 preview_withdraw(env: soroban_sdk::Env, assets: i128) -> 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
fn convert_to_assets(
env: soroban_sdk::Env,
shares: i128,
) -> Result
fn convert_to_shares(
env: soroban_sdk::Env,
assets: i128,
) -> Result