Contract 50ecf1ba2d55d655b7798685d4f3bdd9545e88fa7c99f92023529fe11f9d4c06

← Back to Index 📥 Download WASM

Meta

binver 2.3.0
rssdkver 25.3.1#e50d95af029c83196dd122f0154bac3f1302394b
rsver 1.93.0

Instances

  • CDVGRV7VWMQDET333B25CJIFF56IS3YCAPQ4AROD2JZCQQKOQXSXG5ZK

Interface

Pause deposits and distributions. Withdraw + claim are NEVER pausable.

fn pause(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn deposit(env: soroban_sdk::Env, user: soroban_sdk::Address, amount: i128)

Resume deposits and distributions.

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

Upgrade contract WASM

fn upgrade(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    new_wasm_hash: soroban_sdk::BytesN<32>,
)

Withdraw a specific position after its lock expires. Auto-claims that position's accrued rewards on exit.

fn withdraw(env: soroban_sdk::Env, user: soroban_sdk::Address, pos_id: u32)

Get whether the vault is paused.

fn is_paused(env: soroban_sdk::Env) -> bool

Transfer admin

fn set_admin(
    env: soroban_sdk::Env,
    current_admin: soroban_sdk::Address,
    new_admin: soroban_sdk::Address,
)

Extend contract instance TTL.

fn extend_ttl(env: soroban_sdk::Env)

Get a user's V1-style deposit info (backward compat for frontend transition).

fn get_deposit(env: soroban_sdk::Env, user: soroban_sdk::Address) -> UserInfo

Get a specific position.

fn get_position(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    pos_id: u32,
) -> Position

Protocol 22+ constructor — flat args for Admin Bridge compatibility.

fn __constructor(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    aqua_token: soroban_sdk::Address,
    reward_0: soroban_sdk::Address,
    reward_1: soroban_sdk::Address,
    reward_2: soroban_sdk::Address,
    reward_3: soroban_sdk::Address,
    lock_duration_secs: u64,
)

Claim accumulated rewards from positions whose lock term has expired. Positions still locked accrue rewards but cannot claim.

fn claim_rewards(env: soroban_sdk::Env, user: soroban_sdk::Address)

Get all active positions for a user.

fn get_positions(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
) -> soroban_sdk::Vec<(u32, Position)>

Claim accumulated rewards from a SINGLE unlocked position. Use this for granular, O(1) claims when a user has many positions. Guaranteed to succeed regardless of total position count.

fn claim_position(env: soroban_sdk::Env, user: soroban_sdk::Address, pos_id: u32)

Get all depositor addresses. Admin dashboard enumeration. Follows the same pattern as NFT's AllTokens / tokens_of.

fn get_depositors(env: soroban_sdk::Env) -> soroban_sdk::Vec

Public: extend all position TTLs for a user.

fn extend_user_ttl(env: soroban_sdk::Env, user: soroban_sdk::Address)

Get the earliest lock expiry across all positions. Frontend uses this to show "🔒 CLAIM UNLOCKS May 13, 2027".

fn get_next_unlock(env: soroban_sdk::Env, user: soroban_sdk::Address) -> u64

One-time seed for upgrade migration. Admin calls with known depositors. Idempotent — skips already-registered addresses.

fn seed_depositors(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    depositors: soroban_sdk::Vec,
)

Add a new reward token (admin only). Idempotent.

fn add_reward_token(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    token: soroban_sdk::Address,
)

Get vault config.

fn get_vault_config(env: soroban_sdk::Env) -> VaultConfig

Set authorized Fee Collector (admin-only). Used for synchronous sweeps on deposit.

fn set_fee_collector(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    collector: soroban_sdk::Address,
)

Deposit reward tokens and update the global rewardPerToken.

fn distribute_revenue(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    reward_token: soroban_sdk::Address,
    amount: i128,
)

Get pending rewards across ALL positions (locked + unlocked).

fn get_pending_rewards(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
) -> soroban_sdk::Vec<(soroban_sdk::Address, i128)>

Get total AQUA deposited in the vault.

fn get_total_deposited(env: soroban_sdk::Env) -> i128

Imports

WebAssembly Text (WAT) ▶