Contract f0dba141759b715801d67eb697d046a9b6d1e4d9cba7db2a48687f88c5066d79

← Back to Index 📥 Download WASM

Meta

cliver 25.2.0#28484880988199233a7e8e87c97cb12dac323cb3
rssdkver 23.5.3#d3e1ab2424388b10893b796b0c8e405c5edd03d2
rsver 1.94.0

Instances

  • CBHZBIGN65PN44HI2DBE4QRHIXHZEBJ6WCNNSJQPMBG3JKQQONQ4Y7GR
  • CBNTRRRCGSQYLMPNOEE5WGQ7C3SS6PPVMXAMJWEBH2CIFWLUF3RBMB3W

Interface

Initialise the adapter. Admin only, one-time.

fn initialize(env: soroban_sdk::Env, admin: soroban_sdk::Address)

Get all LP position values for account across all registered Aquarius pools.

For each registered pool (filtered by enabled_position_ids when non-empty):

  1. pool.share_id() → LP token address; lp_token.balance(account) → user LP shares (i128)
  2. Skip pool if user_shares == 0 or total_shares == 0
  3. pool.get_reserves() → [reserve_a, reserve_b]
  4. pool.get_tokens() → [token_a, token_b]
  5. For each non-zero reserve leg: a. token.decimals() (SEP-41) b. oracle_registry.get_price_pair(token, accounting_token) c. Compute user's pro-rata token amount and USDC value d. Append a PositionValue entry

Each pool contributes up to two PositionValue entries (one per token leg).

Panics

Panics if any arithmetic operation overflows or token decimals are too large.

fn get_all_pos(
    env: soroban_sdk::Env,
    account: soroban_sdk::Address,
    oracle_registry: soroban_sdk::Address,
    accounting_token: soroban_sdk::Address,
    enabled_position_ids: soroban_sdk::Vec,
) -> soroban_sdk::Vec

Remove a pool by index using swap-with-last removal. Admin only.

fn remove_pool(env: soroban_sdk::Env, index: u32)

Accept a pending admin proposal (step 2). Pending admin only.

fn accept_admin(env: soroban_sdk::Env)

Propose a new admin (step 1). Current admin only.

The new admin must call accept_admin() to complete the transfer.

fn propose_admin(env: soroban_sdk::Env, new_admin: soroban_sdk::Address)

Register a single Aquarius pool address. Admin only.

fn register_pool(env: soroban_sdk::Env, pool: soroban_sdk::Address)

Return the number of registered pools.

fn get_pool_count(env: soroban_sdk::Env) -> u32

Return adapter info: (protocol_id, name, version).

fn get_adapter_info(
    env: soroban_sdk::Env,
) -> (soroban_sdk::Symbol, soroban_sdk::Symbol, u32)

Enable or disable a specific pool (circuit-breaker). Admin only.

fn set_pool_enabled(env: soroban_sdk::Env, index: u32, enabled: bool)

Register multiple pools at once. Skips duplicates silently. Admin only.

fn register_pools_batch(
    env: soroban_sdk::Env,
    pools: soroban_sdk::Vec,
)

Imports

WebAssembly Text (WAT) ▶