Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
Halaman ini merupakan pasangan dari
products/clmm/accounts (penjelasan akun) dan products/clmm/math (penjelasan matematika). Halaman ini menjadi acuan untuk argumen dan urutan akun; tata letak byte terperinci tersedia di IDL.Daftar instruksi
| Grup | Instruksi | Catatan |
|---|---|---|
| Admin | CreateAmmConfig | Membuat fee tier baru. |
| Admin | UpdateAmmConfig | Mengubah tarif pada fee tier yang sudah ada. |
| Admin | UpdatePoolStatus | Menjeda/melanjutkan operasi pada pool. |
| Admin | CreateSupportMintAssociated | Memasukkan konfigurasi ekstensi mint Token-2022 ke daftar izin untuk digunakan di pool CLMM. |
| Admin | CreateOperationAccount | Menginisialisasi operation account tingkat program (satu kali). |
| Admin | UpdateOperationAccount | Mengubah whitelist operation account. |
| Admin | CreateDynamicFeeConfig | Membuat kumpulan parameter dynamic fee yang dapat digunakan ulang di bawah indeks u16. |
| Admin | UpdateDynamicFeeConfig | Mengubah DynamicFeeConfig yang sudah ada. Pool yang telah mengambil snapshot config ini tidak terpengaruh. |
| Pool | CreatePool | Menginisialisasi pool CLMM yang terikat ke AmmConfig. Jalur fee standar FromInput. Dapat digunakan bersamaan dengan CreateCustomizablePool. |
| Pool | CreateCustomizablePool | Direkomendasikan untuk pool baru. Sama seperti CreatePool ditambah collect_fee_on dan flag opsional enable_dynamic_fee. |
| Position | OpenPosition / OpenPositionV2 / OpenPositionWithToken22Nft | Mencetak NFT posisi. OpenPositionV2 menggantikan V1 (tata letak akun terbaru dengan slot bitmap-extension); OpenPositionWithToken22Nft menerbitkan NFT posisi sebagai Token-2022, bukan SPL Token. Kode baru sebaiknya menggunakan V2 atau varian Token-2022. |
| Position | IncreaseLiquidity / IncreaseLiquidityV2 | Menambah likuiditas ke posisi yang sudah ada. |
| Position | DecreaseLiquidity / DecreaseLiquidityV2 | Mengurangi likuiditas; mengumpulkan fee yang terutang. |
| Position | ClosePosition | Membakar NFT dan menutup PersonalPositionState. |
| Position | CloseProtocolPosition | Sweep khusus admin untuk PDA ProtocolPositionState lama. Program saat ini tidak lagi membuat atau membaca ProtocolPositionState — instruksi ini hanya ada untuk mengambil kembali rent pada akun yang dibuat oleh versi program lama. |
| Swap | Swap / SwapV2 | Swap dengan likuiditas konstan. Kedua varian mendukung dynamic fee, routing fee satu sisi, dan pencocokan limit order; perbedaannya hanya SwapV2 menerima mint Token-2022 (varian V1 mengharuskan kedua vault berupa SPL Token klasik). |
| Swap | SwapRouterBaseIn | Multi-hop, digunakan oleh router. |
| Limit order | OpenLimitOrder | Menempatkan sell order pada tick tertentu. Token yang belum terisi tersimpan di tick; mesin pencocokan mengisinya saat harga melewatinya. |
| Limit order | IncreaseLimitOrder | Menambah jumlah order yang sudah terbuka. |
| Limit order | DecreaseLimitOrder | Mengurangi atau membatalkan order yang terbuka; membayarkan sisa yang belum terisi beserta output yang sudah diselesaikan. |
| Limit order | SettleLimitOrder | Mendorong token output yang sudah terisi ke pemilik order. Dapat dipanggil oleh pemilik atau keeper operasional. |
| Limit order | CloseLimitOrder | Menutup akun order yang sudah sepenuhnya terisi. Rent selalu dikembalikan ke owner order. Dapat dipanggil oleh pemilik atau keeper. |
| Fees | CollectProtocolFee | Sweep admin untuk protocol fee. |
| Fees | CollectFundFee | Sweep admin untuk fund fee. |
| Rewards | InitializeReward | Menambahkan aliran reward baru ke pool. |
| Rewards | SetRewardParams | Mengubah laju emisi/waktu akhir reward yang sudah ada. |
| Rewards | UpdateRewardInfos | Menyelesaikan pertumbuhan reward hingga saat ini (dipanggil oleh setiap swap atau perubahan posisi). |
| Rewards | TransferRewardOwner | Memindahkan otoritas yang dapat mengatur atau mengisi ulang aliran reward. |
| Rewards | CollectRemainingRewards | Setelah end_time aliran reward, menyapu token yang belum dialokasikan kembali ke funder. |
| Utility | InitTickArray | Menginisialisasi akun tick-array (sering digabungkan dengan OpenPosition). |
CreateAmmConfig, UpdateAmmConfig, UpdatePoolStatus, CreateSupportMintAssociated, CreateOperationAccount, UpdateOperationAccount, CloseProtocolPosition) dibatasi oleh pubkey admin yang dikodekan langsung ke program. Instruksi admin aliran reward (TransferRewardOwner, CollectRemainingRewards) dibatasi oleh funder reward, bukan admin program.
Sufiks V2 berarti “mendukung Token-2022 pada vault/NFT, memerlukan slot bitmap-extension”. SDK memilih V2 secara default untuk pool baru.
CreatePool
Argumen
| # | Nama | W | S | Catatan |
|---|---|---|---|---|
| 1 | pool_creator | W | S | |
| 2 | amm_config | Fee tier yang dipilih. | ||
| 3 | pool_state | W | init di sini. | |
| 4 | token_mint_0 | Diurutkan. | ||
| 5 | token_mint_1 | |||
| 6 | token_vault_0 | W | init di sini, dimiliki oleh PDA otoritas pool. | |
| 7 | token_vault_1 | W | ||
| 8 | observation_state | W | init di sini. | |
| 9 | tick_array_bitmap_extension | W | init di sini (V2). | |
| 10 | token_program | |||
| 11 | token_program_2022 | |||
| 12 | system_program, rent |
token_mint_0 < token_mint_1berdasarkan urutan byte.amm_config.disable_create_pool == false.- Mint tidak ditolak oleh daftar izin ekstensi Token-2022.
pool_state.sqrt_price_x64 = sqrt_price_x64,tick_current = floor(log_{1.0001}(price)).pool_state.liquidity = 0(belum ada posisi).pool_state.fee_on = FromInput(default lama).pool_state.dynamic_fee_infodinolkan (dynamic fee dinonaktifkan).
CreateCustomizablePool
Direkomendasikan untuk pool baru. Efeknya sama dengan CreatePool ditambah mode pengumpulan fee per-pool dan opsi dynamic fee opsional.
Argumen
CreatePool ditambah, jika enable_dynamic_fee = true:
| # | Nama | W | S | Catatan |
|---|---|---|---|---|
| N | dynamic_fee_config | Config bersama yang akan diambil snapshotnya. Harus sudah ada. |
CreatePool. Jika enable_dynamic_fee = false, dynamic_fee_config diabaikan.
Hasil setelah eksekusi
pool_state.fee_ondiatur ke varianCollectFeeOnyang dipilih.- Jika dynamic fee diaktifkan:
pool_state.dynamic_fee_infodiinisialisasi dariDynamicFeeConfigyang diberikan (lima parameter kalibrasi disalin; kolom state dinolkan). - Jika tidak:
pool_state.dynamic_fee_infodinolkan (= dynamic fee tidak aktif selamanya untuk pool ini).
fee_on dan bit aktifasi dynamic fee hanya dapat diatur saat pembuatan pool. Tidak ada upgrade di tempat — pool yang dibuat melalui CreatePool lama tidak dapat memperoleh dynamic fee atau fee satu sisi secara retroaktif. Penerapan baru sebaiknya menggunakan instruksi ini sebagai default.
OpenPositionV2 / OpenPositionWithToken22Nft
Membuat posisi baru di dalam pool yang sudah ada.
Argumen
| # | Nama | W | S | |
|---|---|---|---|---|
| 1 | payer | W | S | |
| 2 | position_nft_owner | |||
| 3 | position_nft_mint | W | S (keypair) | |
| 4 | position_nft_account | W | ATA pemilik untuk NFT. | |
| 5 | metadata_account | W | Metaplex (opsional, jika with_metadata). | |
| 6 | pool_state | W | ||
| 7 | protocol_position | |||
| 8 | tick_array_lower | W | Dibuat jika belum diinisialisasi. | |
| 9 | tick_array_upper | W | Sama. | |
| 10 | personal_position | W | Dibuat di sini. | |
| 11 | token_account_0, token_account_1 | W | ATA sumber pengguna. | |
| 12 | token_vault_0, token_vault_1 | W | ||
| 13 | rent, system_program, token_program | |||
| 14 | associated_token_program | |||
| 15 | metadata_program | Opsional. | ||
| 16 | token_program_2022 | V2. | ||
| 17 | vault_0_mint, vault_1_mint | V2. | ||
| 18 | tick_array_bitmap_extension | W | V2 (jika disentuh). |
products/clmm/math. Berdasarkan base_flag, program menyelesaikan nilai liquidity atau (amount_0_max, amount_1_max) menjadi L aktual dan jumlah token yang dikonsumsi.
Prasyarat
tick_lower < tick_upper, keduanya merupakan kelipatan daripool.tick_spacing, berada dalam rentang[MIN_TICK, MAX_TICK].- Tick array yang diperlukan sudah diinisialisasi (atau dibuat di sini melalui CPI
InitTickArraydalam transaksi). - Pengguna memiliki setidaknya
amount_0_maxdanamount_1_maxdi ATA sumber.
personal_positionada,liquiditydiatur,fee_growth_inside_lastdiambil snapshotnya.- Entri tick-array pada
tick_lowerdantick_upperdiperbarui (liquidity_gross += L,liquidity_net ± L, snapshot pertumbuhan fee dipertahankan). pool_state.liquidity += Ljika posisi berada dalam rentang (tick_lower ≤ tick_current < tick_upper).
InvalidTickIndex, NotApproved, ZeroAmountSpecified, TransactionTooLarge (jika terlalu banyak tick array).
IncreaseLiquidityV2
Menambah likuiditas ke posisi yang sudah terbuka.
Argumen
OpenPosition tanpa mint NFT (posisi sudah ada; NFT diteruskan sebagai ATA pemilik yang menyimpan 1 token).
Efek
- Mentransfer
amount_0_actual/amount_1_actualdari pengguna ke vault. - Menaikkan
personal_position.liquiditydanpool_state.liquidity(jika dalam rentang), sertaliquidity_gross/liquidity_netpada tick ujung posisi. - Mengumpulkan fee dan reward yang terutang sejak sentuhan terakhir dan mengkreditkannya ke
tokens_fees_owed_{0,1}/reward_amount_owed. Jumlah tersebut baru dibayarkan saatDecreaseLiquidityatauCollectReward, bukan saat penambahan.
DecreaseLiquidityV2
Mengurangi likuiditas dari posisi.
Argumen
IncreaseLiquidity.
Efek
- Menghitung
(amount_0, amount_1)untukLyang dihapus berdasarkansqrt_price_x64saat ini. - Menyelesaikan fee/reward yang terkumpul sejak sentuhan terakhir, sama seperti
IncreaseLiquidity. - Mentransfer
amount_0 + fees_owed_0danamount_1 + fees_owed_1dari vault ke pengguna. - Mengurangi penghitung likuiditas; jika
personal_position.liquidity == 0yang baru, posisi tersebut memenuhi syarat untukClosePosition.
amount_0_min dan amount_1_min adalah jumlah minimum yang diterima pengguna setelah dikurangi transfer fee Token-2022 pada sisi output.
ClosePosition
Membakar NFT posisi dan menutup PersonalPositionState.
Prasyarat
personal_position.liquidity == 0.tokens_fees_owed_{0,1} == 0.- Semua penghitung reward
reward_amount_owed == 0.
- Membakar NFT.
- Menutup akun mint NFT dan akun
personal_position, mengembalikan rent kepayer.
SwapV2
Berjalan di sepanjang kurva likuiditas; input eksak atau output eksak bergantung pada is_base_input.
Argumen
| # | Nama | W | S | Catatan |
|---|---|---|---|---|
| 1 | payer | S | ||
| 2 | amm_config | |||
| 3 | pool_state | W | ||
| 4 | input_token_account | W | ||
| 5 | output_token_account | W | ||
| 6 | input_vault | W | ||
| 7 | output_vault | W | ||
| 8 | observation_state | W | ||
| 9 | token_program | |||
| 10 | token_program_2022 | V2. | ||
| 11 | memo_program | V2 (diperlukan untuk sebagian jalur Token-2022). | ||
| 12 | input_vault_mint, output_vault_mint | V2. | ||
| 13 | tick_array_bitmap_extension (opsional) | W | Jika swap berjalan ke dalam extension. | |
| 14+ | tick_array (sisa) | W | Cukup array untuk mencakup rentang perjalanan yang diharapkan. |
PoolUtils.computeAmountOutFormat atau endpoint quote API.
Prasyarat
pool_state.statusmengizinkan swap.now >= open_time.sqrt_price_limit_x64berada di sisi yang benar darisqrt_price_x64untuk arah yang dipilih.
ExceededSlippage, SqrtPriceLimitOverflow, TickArrayNotFound, LiquidityInsufficient.
Yang dilakukan SwapV2 secara internal yang perlu diketahui pemanggil (rilis pasca-2025):
- Surcharge dynamic fee — jika
pool.dynamic_fee_infobukan nol, program memperbarui akumulator volatilitas menggunakan jarak tick yang dilalui sejak swap terakhir (dengan aturan filter/peluruhan dariproducts/clmm/fees) dan menambahkandynamic_fee_componentdi atasAmmConfig.trade_fee_rate. Total fee dibatasi pada 10% (MAX_FEE_RATE_NUMERATOR / 1_000_000). - Pencocokan limit order — saat perjalanan harga melintasi tick yang memiliki limit order terbuka, program pertama-tama mengisi likuiditas limit order yang tersedia pada tick tersebut (FIFO berdasarkan
order_phase), lalu melanjutkan sepanjang kurva likuiditas LP. Jumlah yang terisi memperbaruitick.unfilled_ratio_x64dantick.part_filled_orders_remaininguntuk penyelesaian selanjutnya; order itu sendiri tetap tidak terselesaikan hingga pemiliknya memanggilSettleLimitOrder. - Routing fee satu sisi — saat
pool.fee_on = Token0OnlyatauToken1Only, langkah swap tetap menghitung pertukaran input-output yang sama; fee kemudian diarahkan ke sisi yang dikonfigurasi. Untuk arah di mana sisi fee yang dikonfigurasi adalah output, fee dikurangi dari output swap (pengguna menerimaout − fee); untuk arah di mana sisi fee adalah input, perilakunya sama denganFromInput. Lihatis_fee_on_input(zero_for_one)danis_fee_on_token0(zero_for_one)padaPoolState.
Swap (V1) mengimplementasikan dynamic fee, routing fee satu sisi, dan pencocokan limit order yang sama dengan SwapV2; satu-satunya fitur yang tidak dimilikinya adalah dukungan Token-2022 — kedua vault harus berupa SPL Token klasik. Pool dengan mint Token-2022 harus di-swap melalui SwapV2. Agregator dan SDK sudah lebih memilih V2 untuk setiap leg CLMM sehingga pemanggil tidak perlu memilah berdasarkan jenis mint.
OpenLimitOrder
Menempatkan sell order pada tick tertentu. Order tersebut berada dalam antrian FIFO per-tick dan terisi saat harga melewatinya.
Argumen
| # | Nama | W | S | Catatan |
|---|---|---|---|---|
| 1 | payer | W | S | Pemilik order; membayar rent. |
| 2 | pool_state | W | ||
| 3 | tick_array | W | Tick array yang mengandung tick_index. | |
| 4 | limit_order_nonce | W | PDA. init_if_needed — dibuat saat order pertama pengguna di bawah nonce_index ini. | |
| 5 | limit_order | W | PDA. init di sini. | |
| 6 | input_token_account | W | ATA input pengguna. | |
| 7 | input_vault | W | Vault input pool. | |
| 8 | input_vault_mint | Penanganan fee Token-2022. | ||
| 9 | input_token_program | SPL atau Token-2022. | ||
| 10 | system_program, rent |
tick_index % pool.tick_spacing == 0dan berada dalam rentang[MIN_TICK, MAX_TICK].tick_indexberada di sisi kananpool.tick_currentuntuk arah yang dipilih (menjual token0 → tick harus di atas tick saat ini, dan sebaliknya). Menjual pada tick yang sudah dilewati akan langsung dicocokkan dan ditolak.pool_state.statusmengizinkan operasi limit order (bit 5).
limit_orderada, mengambil snapshottick.order_phasedantick.unfilled_ratio_x64saat dibuka.tick.orders_amount += amount(dalam kohort saat ini).limit_order_nonce.order_nonce += 1.- Event
OpenLimitOrderEventdipancarkan.
InvalidLimitOrderAmount (nol atau di bawah minimum pool), InvalidTickIndex (di luar [MIN_TICK, MAX_TICK], atau di sisi yang salah dari tick_current untuk arah yang dipilih), TickAndSpacingNotMatch (tick_index % pool.tick_spacing != 0), OrderPhaseSaturated.
IncreaseLimitOrder
Menambah jumlah order yang sudah terbuka. Hanya dapat dipanggil oleh owner order.
Argumen
OpenLimitOrder tanpa akun nonce; PDA limit_order diteruskan langsung.
Prasyarat
limit_order.owner == signer.- Order masih berada dalam kohort yang sama (
tick.order_phase == limit_order.order_phase). Jika kohort sudah mulai terisi, order tersebut sebagian diselesaikan — pemanggil sebaiknya memanggilDecreaseLimitOrderatauSettleLimitOrderterlebih dahulu untuk maju ke depan.
- Mentransfer
amountdari ATA pemilik keinput_vault. limit_order.total_amount += amount;tick.orders_amount += amount.
DecreaseLimitOrder
Mengurangi atau sepenuhnya membatalkan order yang terbuka. Membayarkan sisa yang belum terisi ke pemilik, beserta output yang sudah diselesaikan dari pengisian parsial sebelumnya.
Argumen
| # | Nama | W | S |
|---|---|---|---|
| 1 | owner | S | |
| 2 | pool_state | W | |
| 3 | tick_array | W | |
| 4 | limit_order | W | |
| 5 | input_token_account | W | |
| 6 | output_token_account | W | |
| 7 | input_vault | W | |
| 8 | output_vault | W | |
| 9 | input_vault_mint, output_vault_mint | ||
| 10 | token_program, token_program_2022 |
- Menghitung ulang jumlah yang terisi dari
unfilled_ratio_x64kohort sejak dibuka. - Mengirim output yang terisi ke
output_token_account. - Mengirim
amountdari input yang belum terisi kembali keinput_token_account. - Memperbarui
limit_ordersesuai. Jika sisa yang belum terisi yang baru adalah nol, program menutup akun dan mengembalikan rent keowner.
SettleLimitOrder
Mendorong token output yang sudah terisi ke pemilik tanpa mengubah sisa input order yang belum terisi. Berguna ketika keeper auto_withdraw ingin membayar pengisian parsial yang berjalan lama secara bertahap.
Pemanggil — baik owner order, maupun limit_order_admin program (hot wallet operasional off-chain yang menjalankan loop keeper otomatis). Keeper tidak memiliki otoritas lain — ia tidak dapat memindahkan dana pengguna selain mendorong output yang terisi ke ATA owner order.
Akun
| # | Nama | W | S | |
|---|---|---|---|---|
| 1 | signer | S | pemilik atau limit_order_admin | |
| 2 | pool_state | |||
| 3 | tick_array | |||
| 4 | limit_order | W | ||
| 5 | output_token_account | W | ATA output pemilik. | |
| 6 | output_vault | W | Vault output pool. | |
| 7 | output_vault_mint | |||
| 8 | output_token_program |
- Menghitung output kumulatif yang terutang menggunakan
(limit_order.unfilled_ratio_x64, tick.unfilled_ratio_x64). - Mentransfer selisihnya ke
output_token_account. - Memperbarui
limit_order.settled_output. - Tidak menutup order; order masih terbuka terhadap input yang tersisa.
CloseLimitOrder
Menutup akun order yang sudah sepenuhnya dikonsumsi. Rent selalu dikembalikan ke limit_order.owner terlepas dari siapa yang menandatangani.
Pemanggil — baik owner maupun limit_order_admin.
Prasyarat
- Order memiliki sisa yang belum terisi sebesar nol (baik
amount == total_amountsudah terisi dan diselesaikan, atau pemilik sebelumnya mengurangi order ke nol dan lupa menutupnya).
- Menutup
limit_order; rent dikirimkan kelimit_order.owner.
CreateDynamicFeeConfig (admin)
Membuat kumpulan parameter yang dapat digunakan ulang di bawah indeks u16.
Argumen
| # | Nama | W | S | Catatan |
|---|---|---|---|---|
| 1 | owner | W | S | Pubkey admin yang dikodekan langsung. |
| 2 | dynamic_fee_config | W | PDA, init di sini. | |
| 3 | system_program |
InvalidDynamicFeeConfigParams jika decay_period <= filter_period atau kolom bernilai 0 di luar batas.
UpdateDynamicFeeConfig (admin)
Mengubah DynamicFeeConfig yang sudah ada. Pool yang telah mengambil snapshot config ini saat dibuat tidak diperbarui secara retroaktif; hanya pool yang baru dibuat dan merujuk config ini yang akan mengambil nilai baru.
Argumen — lima kolom kalibrasi yang sama dengan CreateDynamicFeeConfig (filter_period, decay_period, reduction_factor, dynamic_fee_control, max_volatility_accumulator); index ditetapkan saat pembuatan dan tidak diteruskan ulang di sini.
CollectProtocolFee / CollectFundFee
Bentuknya identik dengan CollectProtocolFee / CollectFundFee pada CPMM. Penandatangan harus cocok dengan AmmConfig.owner / AmmConfig.fund_owner. Menyapu protocol/fund fee yang terkumpul dari vault pool ke penerima, menolkan kolom PoolState.protocol_fees_* / fund_fees_* yang sesuai.
InitializeReward
Menambahkan aliran reward baru ke pool. Maksimal 3 aliran dapat aktif sekaligus.
Argumen
| # | Nama | W | S | |
|---|---|---|---|---|
| 1 | reward_funder | W | S | |
| 2 | funder_token_account | W | ||
| 3 | amm_config | |||
| 4 | pool_state | W | ||
| 5 | operation_state | PDA operation-state CLMM yang membatasi pembuatan reward. | ||
| 6 | reward_token_mint | |||
| 7 | reward_token_vault | W | init di sini. | |
| 8 | reward_token_program | |||
| 9 | system_program, rent |
- Kurang dari 3 aliran yang saat ini aktif pada pool.
- Funder menyetor
total_emission = emissions_per_second × (end_time − open_time)token reward ke vault sebagai bagian dari instruksi ini. - Mint reward diizinkan oleh
operation_state.
SetRewardParams
Memperpanjang, mengisi ulang, atau mengubah laju emisi pada aliran reward yang sudah ada. Biasanya dipanggil oleh pembuat pool atau Raydium multisig. Batasan tersimpan di on-chain: Anda umumnya dapat memperpanjang end_time atau meningkatkan emisi, tetapi tidak dapat menguranginya secara retroaktif. Periksa daftar pemilik operation_state.
UpdateRewardInfos
Hanya pembukuan — menyelesaikan reward_growth_global_x64 hingga waktu saat ini dengan mengalikan emissions_per_second × Δt / liquidity. Dipanggil secara internal oleh setiap instruksi yang menyentuh likuiditas. Diekspos sebagai instruksi mandiri karena aktor eksternal (UI, crank) terkadang ingin memicunya.
CollectReward
Pemilik posisi mengklaim token reward yang terutang.
Akun
| # | Nama | W | S | |
|---|---|---|---|---|
| 1 | nft_owner | S | ||
| 2 | nft_account | ATA pemilik yang menyimpan NFT posisi. | ||
| 3 | personal_position | W | ||
| 4 | pool_state | W | ||
| 5 | protocol_position | |||
| 6 | reward_token_vault | W | ||
| 7 | recipient_token_account | W | ||
| 8 | token_program | |||
| 9 | token_program_2022 |
- Menyelesaikan pertumbuhan reward (pola yang sama dengan fee).
- Mentransfer jumlah yang terutang ke ATA penerima, menolkan
reward_amount_owed[i].
Matriks perubahan state
| Instruksi | pool.liquidity | pool.fee_growth_global | pool.reward_growth_global | personal_position.liquidity | Tick array |
|---|---|---|---|---|---|
CreatePool | 0 | 0 | — | — | — |
OpenPosition | + jika dalam rentang | — | — | baru | tambah liquidity_gross/net |
IncreaseLiquidity | + jika dalam rentang | selesaikan yang terutang | selesaikan yang terutang | + | sesuaikan |
DecreaseLiquidity | − jika dalam rentang | selesaikan yang terutang | selesaikan yang terutang | − | sesuaikan |
ClosePosition | — | — | — | dihapus | — |
SwapV2 | ± saat melintasi | + | — | — | lintas & balik outside; cocokkan kohort limit order |
OpenLimitOrder | — | — | — | — | orders_amount += amount pada tick target |
IncreaseLimitOrder | — | — | — | — | orders_amount += amount |
DecreaseLimitOrder | — | — | — | — | orders_amount -=, mungkin menutup kohort |
SettleLimitOrder | — | — | — | — | — (hanya baca pada tick) |
CloseLimitOrder | — | — | — | — | — |
CreateCustomizablePool | 0 | 0 | — | — | — |
UpdateRewardInfos | — | — | + | — | — |
CollectReward | — | — | selesaikan yang terutang | — | — |
Langkah selanjutnya
products/clmm/code-demos— contoh TypeScript yang dapat dijalankan.products/clmm/fees— detail tentang akrual fee dan reward.reference/error-codes— tabel error Anchor CLMM lengkap.
raydium-io/raydium-clmm—programs/amm/src/instructions- Raydium SDK v2 —
@raydium-io/raydium-sdk-v2

