Contract e5e5b5fd76102a987a1346106532595059dfedb7a6b008fbb72797a99b8bd39b

← Back to Index 📥 Download WASM

Meta

rssdkver 20.5.0#9e2c3022b4355b224a7a814e13ba51761eeb14bb
rsver 1.92.0-nightly

Instances

  • CBGAHG6UKW3M7KXW5MWEE4W7KBVNCYO3W7HBZM7UD7BJ57EGVPR4Q3DA

Interface

Record AQUA lock with POL contribution (admin-only) Stake AQUA tokens - user calls this directly This function transfers tokens from user to contract and records the lock

fn stake(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    token: soroban_sdk::Address,
    amount: i128,
    duration_days: u32,
) -> Result
fn get_config(env: soroban_sdk::Env) -> Result
fn initialize(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    treasury_address: soroban_sdk::Address,
    blub_token: soroban_sdk::Address,
    aqua_token: soroban_sdk::Address,
    liquidity_contract: soroban_sdk::Address,
    aqua_blub_pool_id: soroban_sdk::Bytes,
) -> Result<(), soroban_sdk::Error>

Restake BLUB tokens (stake BLUB to earn more BLUB rewards) User must have BLUB tokens in their wallet to restake

fn stake_blub(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    amount: i128,
    duration_days: u32,
) -> Result
fn get_user_lp(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    pool_id: soroban_sdk::Bytes,
) -> Option

DEPRECATED: Use stake() instead This function only records metadata without transferring tokens

fn record_lock(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    amount: i128,
    duration_days: u32,
    tx_hash: soroban_sdk::Bytes,
) -> Result
fn record_unlock(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    amount: i128,
    tx_hash: soroban_sdk::Bytes,
) -> Result
fn get_user_pools(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
) -> soroban_sdk::Vec

Update AQUA-BLUB pool ID (admin-only)

fn update_pool_id(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    new_pool_id: soroban_sdk::Bytes,
) -> Result<(), soroban_sdk::Error>
fn get_global_state(env: soroban_sdk::Env) -> Result
fn get_unlock_count(env: soroban_sdk::Env, user: soroban_sdk::Address) -> u32
fn get_user_rewards(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
) -> Option
fn record_lp_deposit(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    user: soroban_sdk::Address,
    pool_id: soroban_sdk::Bytes,
    amount_a: i128,
    amount_b: i128,
    tx_hash: soroban_sdk::Bytes,
) -> Result<(), soroban_sdk::Error>
fn credit_user_reward(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    kind: u32,
    user: soroban_sdk::Address,
    pool_id: soroban_sdk::Bytes,
    amount: i128,
    tx_hash: soroban_sdk::Bytes,
) -> Result<(), soroban_sdk::Error>

Manually deposit accumulated POL to AQUA-BLUB LP (admin-only) Useful for batch deposits or if auto-deposit is disabled

fn manual_deposit_pol(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    aqua_amount: i128,
    blub_amount: i128,
) -> Result<(), soroban_sdk::Error>

Record POL rewards claimed from AQUA-BLUB pair voting (admin-only)

fn record_pol_rewards(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    reward_amount: i128,
    ice_voting_power: i128,
) -> Result<(), soroban_sdk::Error>
fn update_reward_rate(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    new_rate: i128,
) -> Result<(), soroban_sdk::Error>
fn get_unlock_by_index(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    index: u32,
) -> Option
fn get_user_lock_count(env: soroban_sdk::Env, user: soroban_sdk::Address) -> u32

DEPRECATED: Use stake_blub() instead

fn record_blub_restake(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    amount: i128,
    tx_hash: soroban_sdk::Bytes,
) -> Result
fn get_user_lock_totals(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
) -> Option

Toggle auto-deposit POL feature (admin-only)

fn set_auto_deposit_pol(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    enabled: bool,
) -> Result<(), soroban_sdk::Error>
fn calculate_user_rewards(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
) -> Result
fn get_blub_restake_count(env: soroban_sdk::Env, user: soroban_sdk::Address) -> u32

Get daily POL snapshot

fn get_daily_pol_snapshot(
    env: soroban_sdk::Env,
    day: u64,
) -> Option
fn get_distribution_count(env: soroban_sdk::Env) -> u32
fn get_user_lock_by_index(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    index: u32,
) -> Option

Get available POL balance that can be deposited to LP

fn get_available_pol_balance(
    env: soroban_sdk::Env,
) -> Result<(i128, i128), soroban_sdk::Error>
fn get_blub_restake_by_index(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    index: u32,
) -> Option
fn get_distribution_by_index(
    env: soroban_sdk::Env,
    index: u32,
) -> Option

Get total POL contribution for user

fn get_user_pol_contribution(env: soroban_sdk::Env, user: soroban_sdk::Address) -> i128
fn record_reward_distribution(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    kind: u32,
    pool_id: soroban_sdk::Bytes,
    total_reward: i128,
    distributed_amount: i128,
    treasury_amount: i128,
    tx_hash: soroban_sdk::Bytes,
) -> Result

Get POL state

fn get_protocol_owned_liquidity(env: soroban_sdk::Env) -> ProtocolOwnedLiquidity

Imports

WebAssembly Text (WAT) ▶