Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
Spanduk versi. Semua demo TypeScript menargetkan
@raydium-io/raydium-sdk-v2@0.2.64-alpha; terakhir dijalankan terhadap 0.2.42-alpha (2026-04) dan tanda tangan panggilan mereka diperiksa ulang terhadap sumber 0.2.64-alpha pada 2026-09-09, terhadap Solana mainnet-beta. Skeleton CPI Rust menargetkan raydium-cp-swap di master, Anchor 1.0.2. ID program ditarik melalui konstanta dari reference/program-addresses.Prasyarat
raydium-sdk-V2-demo/src/cpmm; tautan GitHub berada di sebelah setiap bagian. Bootstrap mengikuti config.ts.template repo demo (sumber):
Raydium adalah facade SDK — setiap demo di bawah menggunakannya. Raydium.load bersifat async karena memuat daftar token secara default; teruskan disableLoadToken: true untuk melewati pengambilan tersebut. Pemeriksaan fitur ketersediaan sudah dilewati kecuali Anda melewati disableFeatureCheck: false. Konfigurasi biaya diambil secara lazy pada penggunaan pertama melalui raydium.api.getCpmmConfigs().
Buat pool CPMM
Sumber:src/cpmm/createCpmmPool.ts
- Mengurutkan mint ke dalam urutan token0/token1 sebelum menurunkan PDA.
- Membayar
create_pool_feesekali kepoolFeeAccount. - Membuat akun token terkait pemanggil jika hilang.
- Memilih program token yang tepat (SPL Token vs Token-2022) per sisi.
Swap (base-input)
Sumber:src/cpmm/swap.ts
getPoolInfoFromRpc. Jangan kutip dari api-v3.raydium.io untuk transaksi yang akan Anda tandatangani — kutipan yang sudah usang satu blok dapat tergelincir ke ExceededSlippage saat waktu pendaratan.
Swap (base-output)
Sumber:src/cpmm/swapBaseOut.ts
Deposit likuiditas
Sumber:src/cpmm/deposit.ts
maximum_* instruksi, dan membangun kreasi ATA jika diperlukan. raydium.cpmm.computePairAmount({ ... }) mengembalikan angka yang sama jika Anda menginginkannya untuk pratinjau UI.
Withdraw likuiditas
Sumber:src/cpmm/withdraw.ts
Kumpulkan biaya protokol/dana/kreator
Sumber:src/cpmm/collectCreatorFee.ts, src/cpmm/collectAllCreatorFee.ts
Pengumpulan protokol dan dana tetap dibatasi oleh otoritas. Biaya kreator memiliki dua jalur: CollectCreatorFee yang ditandatangani kreator, dan CollectCreatorFeePermissionless yang aditif, yang dapat dipanggil oleh pembayar mana pun tetapi hanya dapat mentransfer ke ATA kanonik kreator. 0.2.64-alpha dilengkapi dengan builder tingkat modul untuk kedua jalur kreator:
Kedua instruksi kreator memiliki discriminator dan tata letak akun yang berbeda — yang permissionless menggantikan penandatangan kreator dengan
payer terpisah dan creator yang tidak menandatangani. Gunakan builder yang cocok daripada menukar akun secara manual di yang lain.Tidak ada builder biaya protokol atau dana dalam SDK (makeCollectProtocolFeeInstruction dan makeCollectFundFeeInstruction tidak ada dengan nama apa pun) — itu adalah jalur admin, begitu juga CreateCreatorFeeShare / CloseCreatorFeeShare, yang juga tidak memiliki builder. Builder instruksi tingkat rendah yang ada adalah collectCpFeeInstruction, makeCollectCreatorFeeInstruction dan collectCreatorFeePermissionlessInInstruction.PoolState:
Kerangka CPI Rust
Jika Anda ingin memanggil CPMM dari program Anchor Anda sendiri — misalnya, vault yang melakukan swap atas nama deposan Anda — konteks CPI terlihat seperti ini. Urutan akun mengikutiproducts/cpmm/instructions.
CpiContext::new dengan CpiContext::new_with_signer dan lewatkan seed Anda.
Jebakan umum
Daftar periksa singkat sebelum membuka tiket dukungan:- Mint yang diurutkan. Jika PDA
poolStateyang Anda turunkan tidak cocok dengan pool on-chain, Anda mungkin lupa mengurutkan mint. - Kutipan API yang ketinggalan zaman. Jangan pernah meneruskan nilai cadangan dari
api-v3.raydium.iokeCurveCalculator.swap. Ambil dari RPC. - Program token yang salah. Vault mint Token-2022 dimiliki oleh program Token-2022, bukan SPL Token. Selalu gunakan bidang
token_0_program/token_1_programpool. - Slippage yang kurang denominasi untuk mint biaya transfer. Jika salah satu sisi pool adalah mint biaya transfer Token-2022,
minimum_amount_outAnda harus denominasi dalam apa yang benar-benar diterima pengguna, bukan dalam apa yang dikirim vault. NotApprovedpada swap. PeriksaPoolState.status— admin mungkin telah menjeda swap di pool itu. Lihatproducts/cpmm/instructionsuntuk bitmask status.
Ke mana selanjutnya
sdk-api/typescript-sdk— referensi SDK lengkap.sdk-api/rest-api— endpoint kutipan dan metadata pool.user-flows/create-cpmm-pool— panduan non-kode alur yang sama.integration-guides/aggregator— jika Anda merutekan CPMM sebagai bagian dari jalur multi-hop.

