Contract 3c030c6e93ac973cf26e39947176c85a2bf61210e9c1f98ce638b963da948c96

← Back to Index 📥 Download WASM

Meta

Description Stable Swap AMM for set of tokens
rssdkver 22.0.6#0c47dcfa187069d241f11fb082730f667b55e802
rsver 1.87.0
source_repo AquaToken/soroban-amm

Instances

  • CA262ONRV6P2IZPFVCTQNIU5XZIPZE4RLZNSOVJUNFUWDQR6MBNKS3IB
  • CA5DL7ZFP55STN35ONADCOUULUKKXP27IKTGJRAL6Q52KSIB5FX3HYQA
  • CA7JPXK5XK4DMGPTDUP4MA6YWYGRX7SWR6AJ2RLMDKUB6Q5RBNFJFSJP
  • CAC56QNJ2CX456TPC5S4MSOU3DBULG4TGN7AZ2SAYGBLD3GICFMZBIT2
  • CACIDXIZXZHD2KM27ETPAFHL4N4RB7MNQ6RHKLNACNFTQOMNZK3FE7ED
  • CAIOFLKJ3DQGZR2C2OF2QA46ILIUT6ELTQIVO6GSQRTKUVL5B2EWMA4N
  • CANNGX6237WS6E3VS5UVY6P547D2BTZ5PEX3XS2Y2F4MTB7EHHRJILQR
  • CAQXW3WZKODG7DXFDFQ2VRY4EVTBBJLJ4PEQW7DBSZHXEJC7542HIRQH
  • CASL4PYESGRCUJVCSS33DX52JBSRWSZJEADCMPNL5CK4UWJJ5WQPAUMP
  • CB64A6FEWKK4YRWRBNWJDZ4EZ6RI74FB3MZWNECXIBL4IYC2USMF2ELV
  • CB664UQW7GDHDJE2JXN2QMGBJMO6MFEIXINX5FHPGOZTJLXLYZY7S5XG
  • CBG2QNHFV3DJTKHGABZ3ZRCDWXE6JB2FXTNVXPSOGZUDHTTH3TQ7CGRM
  • CBKENQ33KITYE4JKPAWALHU4KGWV5AXQLJFUNRNIDGCRLRDENX6PYVDE
  • CBL7MWLEZ4SU6YC5XL4T3WXKNKNO2UQVDVONOQSW5VVCYFWORROHY4AM
  • CBNLT7K2DUJ6U4HR7RABYQSDZ7AQYQIHBWO7SYCC4XEUOAF6OTOMHPRT
  • CBRGFMR6QBX7ASUBO534UDGOUB2SDGRL7AAFXFYBQ4DT4RJTWQG55W2T
  • CBRXOYKXPQI4EEA6KA35TUIYN5OJLNWMTIVDOMNOIL2BG5Y5LEDHUU7V
  • CBTUGNROCSTKKK2HUI3Y5Q4PNLCOXQGBT23S62FA6CMDZHJWY6F7KY6R
  • CBUTKQ3Z35FZLUKODPV7MS7NHWA3ED4IJZL5GOBQQQIHQIL4AFGJS45O
  • CC2QQVENM4W4C6DW4WZGMZSW4WI6ZWFISHRWVXMTWPIAHMB77IOIP77C
  • CCE5SYJ4EJDVN2ZNB5A3DE7UOLLHI2I3J5FOFO6U6BFSXRGMYQ6GOTH7
  • CCFGZJTHQZGDZP5PK6WMLKHKJ72ACSVMJGCI2NFR7Q6EAVSKWLJB3ZH3
  • CCI5UGNCHE5PBINLZKSFFCMBUVJYWYDPKDZS54JD6TGJBA7MCG3YXNT5
  • CCJY3VRDZ55SQVD73RO3D6LPT33AMUYAQDDTGN7OHXAEDPQPRZ2PCDJT
  • CCLZQDL5LY2DBPNNFBRKPSROGFGTT7Y7AI2SM6QUI3SUTTKA672X4PDF
  • CCOZA42SRNHEMT7SBPAX5BG7BJXTTCHJ56FYCQRYB35CP5WUVEXM7B3F
  • CCPQAGAPB6J4WSO4A3SBRROTMYPS4YNBRSNHVNLV4GBPSBL7IOBIQL4Y
  • CCQ6SUAEW4REXTXI5ZL7F2UNXTZTQAORQIPCCNWQWT3SGNYWZTTDLFTT
  • CCWNKTTMHZ4VRR3FYQT3G253MHOGRLUEVTO6YPENM7ZN65DGC345LHI6
  • CCYNRWTZBINZZ3CZ6FYAUKRGTRVZGCIB33CIGJHV7MFPWPNK56NTAXEW
  • CD6VHCKSUPGQVQPEQUI6EAEO6Z4PXMFTPHW3UTAOF7W4UF7TH7ZSKZBG
  • CDCSXULBM55C5ZRP6L4E2T3NA4ALGVXNN73Y6HJXTHHCDAKUMIHGPELO
  • CDD3OQDUVL3ITL4ZJF27WVSO65PFEQQ5AOHEUPUHC7YNL7VUYM4QRLZ5
  • CDKVJYMN34ZIEXSLNFYHVAFF6M6FM5E2U6OHXOTBKH2WLBULXOE53YDP
  • CDMGXLUASLRCSMIFYTLNKGASA3DAU4UA6GWAJQ7WQIFL3HND3WXU6ZYU
  • CDMH535JSD224YXPET3B4SJOLXTQQ24GRSCWACGYBKSH2DKFJYWI7SUW
  • CDRAJL4B6PV3U22H4VBM3PGOEDG6AWCDBJHVUMQSL4LHH7RF4JZPTLV3
  • CDRRLXLBXYVENKIUCCTFUT5WW6BW43NJMAPEMGU6VIU74LV6526OLS35
  • CDSVWH3J6C4FJO6C5CE5LF4VFPIV5WLMNQQKSNWJXNKLONXK5PAZ4KAG
  • CDU5EDRLORSCPHZDAEVHNOT7EMRLWSGHRA3WLCXFGUNVVY22PLEWNBBU

Interface

fn a(env: soroban_sdk::Env) -> u128
fn get_virtual_price(env: soroban_sdk::Env) -> u128
fn calc_token_amount(
    env: soroban_sdk::Env,
    amounts: soroban_sdk::Vec,
    deposit: bool,
) -> u128
fn get_dy(env: soroban_sdk::Env, i: u32, j: u32, dx: u128) -> u128
fn get_dx(env: soroban_sdk::Env, i: u32, j: u32, dy: u128) -> u128
fn remove_liquidity_imbalance(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    amounts: soroban_sdk::Vec,
    max_burn_amount: u128,
) -> u128
fn calc_withdraw_one_coin(env: soroban_sdk::Env, share_amount: u128, i: u32) -> u128
fn withdraw_one_coin(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    share_amount: u128,
    i: u32,
    min_amount: u128,
) -> soroban_sdk::Vec
fn set_privileged_addrs(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    rewards_admin: soroban_sdk::Address,
    operations_admin: soroban_sdk::Address,
    pause_admin: soroban_sdk::Address,
    emergency_pause_admins: soroban_sdk::Vec,
    system_fee_admin: soroban_sdk::Address,
)
fn get_privileged_addrs(
    env: soroban_sdk::Env,
) -> soroban_sdk::Map>
fn ramp_a(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    future_a: u128,
    future_time: u64,
)
fn stop_ramp_a(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn commit_new_fee(env: soroban_sdk::Env, admin: soroban_sdk::Address, new_fee: u32)
fn apply_new_fee(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn revert_new_parameters(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn kill_deposit(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn kill_swap(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn kill_claim(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn unkill_deposit(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn unkill_swap(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn unkill_claim(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn get_is_killed_deposit(env: soroban_sdk::Env) -> bool
fn get_is_killed_swap(env: soroban_sdk::Env) -> bool
fn get_is_killed_claim(env: soroban_sdk::Env) -> bool
fn set_protocol_fee_fraction(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    new_fraction: u32,
)
fn get_protocol_fees(env: soroban_sdk::Env) -> soroban_sdk::Vec
fn claim_protocol_fees(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    destination: soroban_sdk::Address,
) -> soroban_sdk::Vec
fn initialize_all(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    privileged_addrs: (
        soroban_sdk::Address,
        soroban_sdk::Address,
        soroban_sdk::Address,
        soroban_sdk::Address,
        soroban_sdk::Vec,
        soroban_sdk::Address,
    ),
    router: soroban_sdk::Address,
    token_wasm_hash: soroban_sdk::BytesN<32>,
    coins: soroban_sdk::Vec,
    amp: u128,
    fees_config: (u32, u32),
    reward_config: (soroban_sdk::Address, soroban_sdk::Address, soroban_sdk::Address),
    plane: soroban_sdk::Address,
    config_storage: soroban_sdk::Address,
)
fn pool_type(env: soroban_sdk::Env) -> soroban_sdk::Symbol
fn initialize(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    privileged_addrs: (
        soroban_sdk::Address,
        soroban_sdk::Address,
        soroban_sdk::Address,
        soroban_sdk::Address,
        soroban_sdk::Vec,
        soroban_sdk::Address,
    ),
    router: soroban_sdk::Address,
    token_wasm_hash: soroban_sdk::BytesN<32>,
    tokens: soroban_sdk::Vec,
    amp: u128,
    fees_config: (u32, u32),
)
fn get_fee_fraction(env: soroban_sdk::Env) -> u32
fn get_protocol_fee_fraction(env: soroban_sdk::Env) -> u32
fn share_id(env: soroban_sdk::Env) -> soroban_sdk::Address
fn get_total_shares(env: soroban_sdk::Env) -> u128
fn get_reserves(env: soroban_sdk::Env) -> soroban_sdk::Vec
fn get_tokens(env: soroban_sdk::Env) -> soroban_sdk::Vec
fn get_decimals(env: soroban_sdk::Env) -> soroban_sdk::Vec
fn deposit(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    amounts: soroban_sdk::Vec,
    min_shares: u128,
) -> (soroban_sdk::Vec, u128)
fn swap(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    in_idx: u32,
    out_idx: u32,
    in_amount: u128,
    out_min: u128,
) -> u128
fn estimate_swap(
    env: soroban_sdk::Env,
    in_idx: u32,
    out_idx: u32,
    in_amount: u128,
) -> u128
fn swap_strict_receive(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    in_idx: u32,
    out_idx: u32,
    out_amount: u128,
    in_max: u128,
) -> u128
fn estimate_swap_strict_receive(
    env: soroban_sdk::Env,
    in_idx: u32,
    out_idx: u32,
    out_amount: u128,
) -> u128
fn withdraw(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    share_amount: u128,
    min_amounts: soroban_sdk::Vec,
) -> soroban_sdk::Vec
fn get_info(
    env: soroban_sdk::Env,
) -> soroban_sdk::Map
fn version(env: soroban_sdk::Env) -> u32
fn contract_name(env: soroban_sdk::Env) -> soroban_sdk::Symbol
fn commit_upgrade(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    new_wasm_hash: soroban_sdk::BytesN<32>,
    token_new_wasm_hash: soroban_sdk::BytesN<32>,
    gauges_new_wasm_hash: soroban_sdk::BytesN<32>,
)
fn apply_upgrade(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
) -> (soroban_sdk::BytesN<32>, soroban_sdk::BytesN<32>)
fn revert_upgrade(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn set_emergency_mode(
    env: soroban_sdk::Env,
    emergency_admin: soroban_sdk::Address,
    value: bool,
)
fn get_emergency_mode(env: soroban_sdk::Env) -> bool
fn initialize_rewards_config(env: soroban_sdk::Env, reward_token: soroban_sdk::Address)
fn initialize_boost_config(
    env: soroban_sdk::Env,
    reward_boost_token: soroban_sdk::Address,
    reward_boost_feed: soroban_sdk::Address,
)
fn set_reward_boost_config(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    reward_boost_token: soroban_sdk::Address,
    reward_boost_feed: soroban_sdk::Address,
)
fn set_rewards_config(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    expired_at: u64,
    tps: u128,
)
fn get_unused_reward(env: soroban_sdk::Env) -> u128
fn return_unused_reward(env: soroban_sdk::Env, admin: soroban_sdk::Address) -> u128
fn get_rewards_info(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
) -> soroban_sdk::Map
fn get_user_reward(env: soroban_sdk::Env, user: soroban_sdk::Address) -> u128
fn checkpoint_reward(
    env: soroban_sdk::Env,
    token_contract: soroban_sdk::Address,
    user: soroban_sdk::Address,
    user_shares: u128,
)
fn checkpoint_working_balance(
    env: soroban_sdk::Env,
    token_contract: soroban_sdk::Address,
    user: soroban_sdk::Address,
    user_shares: u128,
)
fn get_total_accumulated_reward(env: soroban_sdk::Env) -> u128
fn get_total_configured_reward(env: soroban_sdk::Env) -> u128
fn adjust_total_accumulated_reward(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    diff: i128,
)
fn get_total_claimed_reward(env: soroban_sdk::Env) -> u128
fn claim(env: soroban_sdk::Env, user: soroban_sdk::Address) -> u128
fn gauge_add(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    gauge_address: soroban_sdk::Address,
)
fn gauge_remove(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    reward_token: soroban_sdk::Address,
)
fn gauge_schedule_reward(
    env: soroban_sdk::Env,
    router: soroban_sdk::Address,
    distributor: soroban_sdk::Address,
    gauge: soroban_sdk::Address,
    start_at: Option,
    duration: u64,
    tps: u128,
)
fn kill_gauges_claim(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn unkill_gauges_claim(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn get_gauges(
    env: soroban_sdk::Env,
) -> soroban_sdk::Map
fn gauges_claim(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
) -> soroban_sdk::Map
fn gauges_get_reward_info(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
) -> soroban_sdk::Map<
    soroban_sdk::Address,
    soroban_sdk::Map,
>
fn init_pools_plane(env: soroban_sdk::Env, plane: soroban_sdk::Address)
fn set_pools_plane(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    plane: soroban_sdk::Address,
)
fn get_pools_plane(env: soroban_sdk::Env) -> soroban_sdk::Address
fn backfill_plane_data(env: soroban_sdk::Env)
fn commit_transfer_ownership(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    role_name: soroban_sdk::Symbol,
    new_address: soroban_sdk::Address,
)
fn apply_transfer_ownership(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    role_name: soroban_sdk::Symbol,
)
fn revert_transfer_ownership(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    role_name: soroban_sdk::Symbol,
)
fn get_future_address(
    env: soroban_sdk::Env,
    role_name: soroban_sdk::Symbol,
) -> soroban_sdk::Address
fn init_config_storage(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    config_storage: soroban_sdk::Address,
)

Imports

WebAssembly Text (WAT) ▶