Contract 155a17b9929ffb1f9e84bd6ef5c00a4d613c1ab5f4ad4c502d84515250cc2907

← Back to Index 📥 Download WASM

Meta

Description Concentrated liquidity pool inspired by Uniswap v3, adapted for Soroban
cliver 27.0.0#5a7c5fe76530bf4248477ac812fc757146b98cc4
rssdkver 25.3.0#dcbea44513feb7734af6b6c4aced2c4a7a2715d0
rsver 1.96.0

Instances

  • CA26X2GYYE2H3ZXNXFPU537O2HITDXNMF5HXUJVL3O7XEVQUUB4RQ54T
  • CA4HTZNY2RBZWEQE5GBMNREZMFRPAZSVJ6OGPC7T3VM7NHRJYFAVID2S
  • CA4HVQTVHQWDIZSQQQBXYHCA4C5D6V2ZGRHJQIKHVDMBEXCMFH4NYURR
  • CAA6RWSD7SFHXTWLNTZQCIIZEFWNTBEEY7JZGNCFXZ5FDGACQMXS2KXJ
  • CAAJYIESEIKI7KZV67MBSXPCRGKH5WY354WUS55H4UNBD35OSKYPZA7Q
  • CABSPYXN7XQWFZ2U4O32FOAFMSPSDNYOUKU7PVHSJE7YELSY5FQSSQID
  • CADMDTCQHSC2GCYPDCYQ7FBYVOXED3E3WGCYJHHT524ZBALM7VYHFS7F
  • CAEZXCC7IHS3SSSICXWMPX54XAFMCIS2CIH24H4NBZRKEVU5P2KUFXB2
  • CAKGRY6BTYEPBOL6RG77KYSJYNTK423OBRSGBKYWHKHDZ7GGU2YEIMSA
  • CAKJKVAJJQEVFPBTWG5IQ4WJHL5AE27RYYIVFBYJXW5HVE4A7UDJZ6UH
  • CALCNPWBGQOPFTY3BSAZKAGI3MXEHZZ7VOMSMTX3ISYWBTFNGGFQVK5O
  • CAPIOQNULTKVYOJT6X2W2XKGNIVUWZDY72Y42YG6HQKJ7DU7YTHIDQYX
  • CAPQ3TMDYZBV4Y7J3HULP4VOHSQKGDDBC4QF5EZGPK3O5Y4ARXWBHISB
  • CAT65JSA4B3AK7SIUWB5ZONZALAS2HGMFG7EF5GP7BIOKJP6Y4O6J5BF
  • CATBRG3ADIAEYW6W7K4OHINZAS4WFJ4QG737HR5F3DY5VMNVUWTQMWYY
  • CAUTC4ZRSR74UYZE6O26T3VCDAIDW6TWVWLGHXZ7E5UQJVZSM7BU2WSP
  • CAVB532FDYEWBXNSCSKACTZI3BV3QBNFLH2UQRR5HIKFKLFVQW5YGZVY
  • CAWR3CM74VNXM5MRIPILDSTW5S4ZNB47DYBEVE6565UC573L7OFZF7FH
  • CB3ZWHICKIYJOSQ7W2GFN2U2CVSGTFBQ6GCDVGQ354BQYJCKX6L22CNH
  • CB665SVTHHKPYX4LUSTYUG5T22WMDETNWWKXRDES3I74NADZG6SIBP5F
  • CB6M2MGKLIALMGANSVRTQZFTIVRZTF3H3HZBZK33EOWLR7E6CQVX6QAL
  • CBBMQBNHB2FYVZYV7VNHOJHUMTFJLR4PUMRVQYNW6RHIKZO2NQMIBUCV
  • CBF6IS7Z2VYVYFZC3VT5IDI6YGX2MNUO35TAJPR7OZ6UX3PE5WE5ORSW
  • CBNPFXQT7BMMAZSCAP4Z3VWBXMSFRDRUFABPABPIKPGHGN7IHV3J2MD3
  • CBRUQ7I6C6OGHMDYWD6XQUZFB6KJ3LLPNE34EPKSPFZ2YMBJ2GIWYYZ7
  • CBV6LZABOAJRXHLIEKILTWBPC2AXLYVR4CGGPKZQ3PWJ5QFTPIWSWGWQ
  • CBWV52AJSNVC2KYEMOHAV2MA73DMMHVEDLPTPM77KZX2NQOI4OP36XHZ
  • CBWWCFZUIYARXP2VFQKB6TGD63IV6PC5GO4AO6PNP3HGZWHT23FTHMGC
  • CC642QYWXXR2HUZDNJ6KYN5LV5JFPFPT4Q6YNKLZLYEFWZZZ5SJYLA5G
  • CC7IGNJ4CDAKZPOZJCTTWGAVKTQXKYQGUSVJ5CDUPES3QULCQW6UNAH5
  • CCB5P7TX6NCNYS72PUGFJU2B655G5H4W2IIRZPIZ3XKSMNRGS72FSE23
  • CCC466Y3A5332PRE7NQOKOLJXDHF5CNS2M5MT7I7YIPNKLUO4YETIE3B
  • CCJHUCHZ2DC6MP7LMGQJYSENNTGIFWU4J4TCGFYYDLAC5LTD4YMF6HSQ
  • CCKQASCNLYGCUYRKDFYHW5SRVUQNRPRX27YAK62CBNLEVSKIXE3CO4LI
  • CCNW7S7C6GYLBZR2VIMJ244FUHLIYK2X6DH5YIENPQDTNHQ4PQLS5SXP
  • CCPN4NNSQKL3LLPTSPTFKYKXR3FBL37AULE6PTZH3QD24MPHXQCN5O3U
  • CCQV7YZLHZCAUSA6NRDQXP4IBLGCL2AXJIXHVTIUCHE5LAZ3GLA3OTY5
  • CCR2APFXL5IFQH5H6V6C6E6V5PNSF3QDL6RQX2CL2YUCEO6OBKJDWA72
  • CCU7TJ5XXFZOWRWXWEX3F4UIDY27UKITATVWRUIQOKJOIBXQB7IHWWQN
  • CCV2X5THRWCT7HCGJU42DMOVYLAARVIPEDG2LQOVVA2WGONF2MZY2OX6
  • CCVUACGHGUCECMKAGKSPRXPCLHB7SFUO32NKSHNMBUWR4BKFQETEWWBH
  • CCVWACSSUYADCHYEYUCKUQL4YISMLLFFXY56UHCVIYR6D6P77RCRGQY7
  • CCZXH6N6DSJLAMXCYODGD255GTFILMNU4R5AHPE7PED4A4EZEOPYAWL5
  • CD2CU3DRKJAFLB2ZQFFBQ4WL4Q5XZ36CMTP3PXFLHBNFWFXR3JAGNKLH
  • CD3INVPZI3UBNYU3FEMTIGUJCYQVVMD73XSAOL7FFCYOUQ34DSFUZUZT
  • CD74JDJIRBMCKPI5LV5C4A7L4NIPCLJ3VOVYILFFXF3TSTALPOLY7CHC
  • CDAFK5WJMVLSQDGHAPSDH3VE77KB2GJH5VSGM7O7CNBFUSVIS5NTWC4P
  • CDBIGH3UEIVPVU7I2PGJV3IFIAN6OIPZ3QW7EDOO6LAHYBWW4MVS75Z2
  • CDE53ZA37BXC3RA4J4CX2ZRCJ3B4DKXK7VCVK3OMDBBIIBZASTVQQM5L
  • CDINXPGR3BJCPBC7IQQIL5AEHAVDZZSIGNCWJ7ORPVBRCL6L5RJ3FDQM
  • CDL5H2BZTIPBPIKJ2NOILZQYZRZE553H3SZX47DDBYEBXSWXIHZLGA2C
  • CDM3E67MHCLMFXRDJWOIZRRYPKENH7CMARTOQBEZQQZVLQV52RVPMINA
  • CDPL6QRE7T5XXICU2KJEUL366KEZT6ICOVBLSL46MHMC5RSDIBR2PCTO
  • CDQ223FWK2XEEYXNNJQS4JCQ5DUCPXKJNNDNRJ3RON5LXH43UO7ECWUY
  • CDQ4OYM3RPLEWNZFVAJQGEYLSDMPHEZYMHVOQBKI767UWV5XV5ISAJE2
  • CDRRS2SLIP7THFGUZVB4QL2RAM2ZHSDMAD2GL5GEXTKK5AY3DQUX3Y7N
  • CDTSE6RLRI7ZO25JSER6E4SQR4PHJJNONEGS5HDJ3Y6LAKECRZKYN5CA
  • CDXIKNYSJZVJKZGBUJM5IONQA7EJCOI27RPWUBR5WYKOGWYLTJVML7HW
  • CDZESLCCI6WS6PXME2WW7OMYAMUR6MUXG5QWZ6JFPBGV36DZHJVJPPV7

Interface

fn get_tick(env: soroban_sdk::Env, tick: i32) -> TickInfo
fn get_slot0(env: soroban_sdk::Env) -> Slot0
fn get_position(
    env: soroban_sdk::Env,
    recipient: soroban_sdk::Address,
    tick_lower: i32,
    tick_upper: i32,
) -> PositionData
fn get_tick_bounds(env: soroban_sdk::Env) -> (i32, i32)
fn get_ticks_batch(
    env: soroban_sdk::Env,
    ticks: soroban_sdk::Vec,
) -> soroban_sdk::Vec
fn deposit_position(
    env: soroban_sdk::Env,
    sender: soroban_sdk::Address,
    tick_lower: i32,
    tick_upper: i32,
    desired_amounts: soroban_sdk::Vec,
    min_liquidity: u128,
) -> (soroban_sdk::Vec, u128)
fn get_chunk_bitmap(env: soroban_sdk::Env, word_pos: i32) -> soroban_sdk::U256
fn get_tick_spacing(env: soroban_sdk::Env) -> i32
fn get_position_fees(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    tick_lower: i32,
    tick_upper: i32,
) -> soroban_sdk::Vec
fn tick_from_amounts(env: soroban_sdk::Env, amount0: u128, amount1: u128) -> i32
fn withdraw_position(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    tick_lower: i32,
    tick_upper: i32,
    amount: u128,
    min_amounts: soroban_sdk::Vec,
) -> soroban_sdk::Vec
fn claim_position_fees(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    tick_lower: i32,
    tick_upper: i32,
) -> soroban_sdk::Vec
fn get_active_liquidity(env: soroban_sdk::Env) -> u128
fn get_all_position_fees(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
) -> soroban_sdk::Vec
fn get_chunk_bitmap_batch(
    env: soroban_sdk::Env,
    start_word: i32,
    count: u32,
) -> soroban_sdk::Vec
fn claim_all_position_fees(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
) -> soroban_sdk::Vec
fn get_total_raw_liquidity(env: soroban_sdk::Env) -> u128
fn estimate_deposit_position(
    env: soroban_sdk::Env,
    tick_lower: i32,
    tick_upper: i32,
    desired_amounts: soroban_sdk::Vec,
) -> (soroban_sdk::Vec, u128)
fn estimate_withdraw_position(
    env: soroban_sdk::Env,
    owner: soroban_sdk::Address,
    tick_lower: i32,
    tick_upper: i32,
    amount: u128,
) -> soroban_sdk::Vec
fn get_user_position_snapshot(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
) -> UserPositionSnapshot
fn get_fee_growth_global_0_x128(env: soroban_sdk::Env) -> soroban_sdk::U256
fn get_fee_growth_global_1_x128(env: soroban_sdk::Env) -> soroban_sdk::U256
fn get_total_weighted_liquidity(env: soroban_sdk::Env) -> u128
fn version(env: soroban_sdk::Env) -> u32
fn apply_upgrade(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
) -> (soroban_sdk::BytesN<32>, soroban_sdk::BytesN<32>)
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>,
    vault_new_wasm_hash: soroban_sdk::BytesN<32>,
)
fn finalize_sweep(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn revert_upgrade(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn get_emergency_mode(env: soroban_sdk::Env) -> bool
fn set_emergency_mode(
    env: soroban_sdk::Env,
    emergency_admin: soroban_sdk::Address,
    value: bool,
)
fn activate_accumulator(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    legacy_total_at_apply: u128,
    config_storage_addr: soroban_sdk::Address,
    reward_tps: u128,
    reward_expired_at: u64,
)
fn materialize_positions(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    user: soroban_sdk::Address,
)
fn claim(env: soroban_sdk::Env, user: soroban_sdk::Address) -> u128
fn get_vault_addr(env: soroban_sdk::Env) -> soroban_sdk::Address
fn get_user_reward(env: soroban_sdk::Env, user: soroban_sdk::Address) -> u128
fn get_rewards_info(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
) -> soroban_sdk::Map
fn get_rewards_state(env: soroban_sdk::Env, user: soroban_sdk::Address) -> bool
fn get_unused_reward(env: soroban_sdk::Env) -> u128
fn set_rewards_state(env: soroban_sdk::Env, user: soroban_sdk::Address, state: bool)
fn set_rewards_config(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    expired_at: u64,
    tps: u128,
)
fn return_unused_reward(env: soroban_sdk::Env, admin: soroban_sdk::Address) -> u128
fn tick_schedule_reward(
    env: soroban_sdk::Env,
    router: soroban_sdk::Address,
    distributor: soroban_sdk::Address,
    token: soroban_sdk::Address,
    start_at: u64,
    duration: u64,
    tps: u128,
) -> u32
fn get_reward_destination(env: soroban_sdk::Env) -> soroban_sdk::Address
fn admin_set_rewards_state(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    user: soroban_sdk::Address,
    state: bool,
)
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 estimate_working_balance(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    tick_lower: i32,
    tick_upper: i32,
    new_liquidity: u128,
) -> (u128, u128)
fn get_total_claimed_reward(env: soroban_sdk::Env) -> u128
fn get_incentives_vault_addr(env: soroban_sdk::Env) -> Option
fn initialize_rewards_config(env: soroban_sdk::Env, reward_token: soroban_sdk::Address)
fn get_total_configured_reward(env: soroban_sdk::Env) -> u128
fn get_total_accumulated_reward(env: soroban_sdk::Env) -> u128
fn get_total_outstanding_reward(env: soroban_sdk::Env) -> u128
fn get_reserved_other_rid_balance(env: soroban_sdk::Env) -> u128
fn get_future_address(
    env: soroban_sdk::Env,
    role_name: soroban_sdk::Symbol,
) -> soroban_sdk::Address
fn apply_transfer_ownership(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    role_name: soroban_sdk::Symbol,
)
fn commit_transfer_ownership(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    role_name: soroban_sdk::Symbol,
    new_address: soroban_sdk::Address,
)
fn revert_transfer_ownership(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    role_name: soroban_sdk::Symbol,
)
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 kill_gauges_claim(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn unkill_gauges_claim(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn gauges_claim_by_token(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    reward_token: soroban_sdk::Address,
) -> u128
fn gauges_get_reward_info(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
) -> soroban_sdk::Map<
    soroban_sdk::Address,
    soroban_sdk::Map,
>
fn gauges_get_reward_configs(
    env: soroban_sdk::Env,
) -> soroban_sdk::Map>
fn get_is_killed_gauges_claim(env: soroban_sdk::Env) -> bool
fn swap(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    in_idx: u32,
    out_idx: u32,
    in_amount: u128,
    out_min: u128,
) -> u128
fn deposit(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    desired_amounts: soroban_sdk::Vec,
    min_shares: u128,
) -> (soroban_sdk::Vec, u128)
fn get_info(
    env: soroban_sdk::Env,
) -> soroban_sdk::Map
fn share_id(env: soroban_sdk::Env) -> soroban_sdk::Address
fn withdraw(
    env: soroban_sdk::Env,
    user: soroban_sdk::Address,
    share_amount: u128,
    min_amounts: soroban_sdk::Vec,
) -> soroban_sdk::Vec
fn pool_type(env: soroban_sdk::Env) -> soroban_sdk::Symbol
fn get_tokens(env: soroban_sdk::Env) -> soroban_sdk::Vec
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,
    tokens: soroban_sdk::Vec,
    fee: u32,
    tick_spacing: i32,
    protocol_fee_fraction: u32,
)
fn get_reserves(env: soroban_sdk::Env) -> soroban_sdk::Vec
fn estimate_swap(
    env: soroban_sdk::Env,
    in_idx: u32,
    out_idx: u32,
    in_amount: u128,
) -> u128
fn get_user_shares(env: soroban_sdk::Env, user: soroban_sdk::Address) -> u128
fn estimate_deposit(
    env: soroban_sdk::Env,
    desired_amounts: soroban_sdk::Vec,
) -> u128
fn get_fee_fraction(env: soroban_sdk::Env) -> u32
fn get_total_shares(env: soroban_sdk::Env) -> 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 get_protocol_fee_fraction(env: soroban_sdk::Env) -> u32
fn get_total_excluded_shares(env: soroban_sdk::Env) -> u128
fn estimate_swap_strict_receive(
    env: soroban_sdk::Env,
    in_idx: u32,
    out_idx: u32,
    out_amount: u128,
) -> u128
fn kill_swap(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn kill_claim(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn unkill_swap(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn kill_deposit(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn unkill_claim(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn unkill_deposit(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn get_protocol_fees(env: soroban_sdk::Env) -> soroban_sdk::Vec
fn get_is_killed_swap(env: soroban_sdk::Env) -> bool
fn claim_protocol_fees(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    destination: soroban_sdk::Address,
) -> soroban_sdk::Vec
fn get_is_killed_claim(env: soroban_sdk::Env) -> bool
fn get_privileged_addrs(
    env: soroban_sdk::Env,
) -> soroban_sdk::Map>
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_is_killed_deposit(env: soroban_sdk::Env) -> bool
fn set_protocol_fee_fraction(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    new_fraction: u32,
)
fn get_pools_plane(env: soroban_sdk::Env) -> soroban_sdk::Address
fn set_pools_plane(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    plane: soroban_sdk::Address,
)
fn init_pools_plane(env: soroban_sdk::Env, plane: soroban_sdk::Address)
fn backfill_plane_data(env: soroban_sdk::Env)
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,
    tokens: soroban_sdk::Vec,
    fee: u32,
    tick_spacing: i32,
    protocol_fee_fraction: u32,
    reward_config: (soroban_sdk::Address, soroban_sdk::Address, soroban_sdk::Address),
    plane: soroban_sdk::Address,
    config_storage_addr: soroban_sdk::Address,
)

Imports

WebAssembly Text (WAT) ▶