Contract 08708aef565c2fcc37fd945395a79ef1e752e9f4d542761295ce791b831baca4

← Back to Index 📥 Download WASM

Meta

cliver 25.2.0#
rssdkver 25.3.1#e50d95af029c83196dd122f0154bac3f1302394b
rsver 1.92.0

Instances

  • CDUV6DABN5EBOCE2JGB3B7XFPY364EAGUCLGXDE5WP4WLBOYQ2KBFCAP

Interface

fn lock(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    lp_token: soroban_sdk::Address,
    amount: i128,
    tier_id: u32,
) -> Result<(), FarmError>
fn claim(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    lp_token: soroban_sdk::Address,
) -> Result
fn unlock(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    lp_token: soroban_sdk::Address,
) -> Result
fn set_pool(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    config: PoolConfig,
) -> Result<(), FarmError>
fn initialize(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
) -> Result<(), FarmError>

Allow specific treasury addresses to top up a specific reward token for a pool.

fn set_funder(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    lp_token: soroban_sdk::Address,
    reward_token: soroban_sdk::Address,
    funder: soroban_sdk::Address,
    allowed: bool,
) -> Result<(), FarmError>
fn get_position(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    lp_token: soroban_sdk::Address,
) -> Position

Admin-only APR update without replacing pool token/reward addresses.

fn set_pool_apr(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    lp_token: soroban_sdk::Address,
    apr_a_flex_bps: u32,
    apr_a_core_bps: u32,
    apr_a_prime_bps: u32,
    apr_b_flex_bps: u32,
    apr_b_core_bps: u32,
    apr_b_prime_bps: u32,
) -> Result<(), FarmError>

Admin/Trident: sync a user's recorded position to their live LP balance and computed tier after externally paying/settling accrued rewards. If actual_balance is zero, the position is removed. If the amount grows or tier increases, the lock timer is reset to the current ledger time.

fn sync_position(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    user: soroban_sdk::Address,
    lp_token: soroban_sdk::Address,
    actual_balance: i128,
    new_tier_id: u32,
) -> Result<(), FarmError>
fn get_pool_vault(
    env: soroban_sdk::Env,
    lp_token: soroban_sdk::Address,
) -> Result

Admin/Trident: reduce a user's recorded position when their actual LP balance has dropped (e.g. they removed liquidity on another platform). actual_balance is the user's real LP share balance as observed by the bot via Horizon. If it's zero the position is removed entirely. new_tier_id lets Trident demote the user's tier when their reduced balance no longer meets the minimum for their current tier. Rewards stop accruing on the removed portion from this moment.

fn slash_position(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    user: soroban_sdk::Address,
    lp_token: soroban_sdk::Address,
    actual_balance: i128,
    new_tier_id: u32,
) -> Result<(), FarmError>
fn deposit_rewards(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    lp_token: soroban_sdk::Address,
    amount_a: i128,
    amount_b: i128,
) -> Result<(), FarmError>
fn get_pool_config(
    env: soroban_sdk::Env,
    lp_token: soroban_sdk::Address,
) -> Result
fn pending_rewards(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    lp_token: soroban_sdk::Address,
) -> Result
fn get_participants(
    env: soroban_sdk::Env,
    lp_token: soroban_sdk::Address,
) -> soroban_sdk::Vec

Hybrid mode helper: Marks a user's rewards as externally settled through a timestamp (for Trident sweeps), preventing double-pay between off-chain and on-chain claim flows.

fn settle_unclaimed(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    user: soroban_sdk::Address,
    lp_token: soroban_sdk::Address,
    settled_through: u64,
) -> Result<(), FarmError>

Admin can withdraw unused reward balances from a pool vault.

fn withdraw_rewards(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    lp_token: soroban_sdk::Address,
    amount_a: i128,
    amount_b: i128,
) -> Result<(), FarmError>

Admin-only update for tier minimums. min_lp_* is enforceable by this contract. min_bfab_* is exposed for clients that estimate BFAB-equivalent LP value from pool reserves.

fn set_pool_minimums(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    lp_token: soroban_sdk::Address,
    min_lp_flex: i128,
    min_lp_core: i128,
    min_lp_prime: i128,
    min_bfab_flex: i128,
    min_bfab_core: i128,
    min_bfab_prime: i128,
) -> Result<(), FarmError>

Admin/Trident: completely remove a user's position and adjust the vault. Use when the bot confirms the user holds zero LP shares.

fn force_remove_position(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    user: soroban_sdk::Address,
    lp_token: soroban_sdk::Address,
) -> Result<(), FarmError>

Third-party approved funder can deposit one reward token directly.

fn deposit_reward_as_funder(
    env: soroban_sdk::Env,
    funder: soroban_sdk::Address,
    lp_token: soroban_sdk::Address,
    reward_token: soroban_sdk::Address,
    amount: i128,
) -> Result<(), FarmError>

Imports

WebAssembly Text (WAT) ▶