Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
LaunchLab mengekspos set instruksi yang ketat: enam panggilan yang menghadap pengguna ditambah beberapa primitif admin. SDK membungkus semuanya; halaman ini mendokumentasikan permukaan mentah untuk agregator, alat pemantauan, dan program yang memerlukan CPI.
Inventaris instruksi
Pemisahan “ExactIn/ExactOut” mencerminkan
SwapBaseInput / SwapBaseOutput CPMM — di rantai mereka adalah diskriminator instruksi terpisah dengan pembulatan yang sedikit berbeda.
Pemilihan jalur kelulusan. Setiap panggilan Initialize, InitializeV2, dan InitializeWithToken2022 yang baru harus menetapkan migrate_type = 1 (CPSWAP). Setiap upaya untuk menginisialisasi pool yang terikat AMM v4 baru mengembalikan MigrateTypeNotMatch. amm_creator_fee_on hanya memilih apakah biaya pembuat CPMM yang dihasilkan berlaku untuk token kutipan atau kedua token; itu tidak memilih program target.
MigrateToAmm tetap dapat dipanggil untuk PoolState yang ada yang diinisialisasi dengan migrate_type = 0 sebelum pembatasan ini. Rilis tidak menulis ulang status pool yang ada atau menghapus instruksi warisan.
Initialize
Buat peluncuran baru.
Argumen
Kondisi awal
quote_mint ∈ launch_config.allowed_quote_mints.base_supply_graduation ≤ base_supply_max.- Parameter biaya lulus pemeriksaan
launch_config.max_*_fee_rate. open_time ≥ now − slop(SDK memberlakukan≥ now; program mentoleransi backdating ringan).curve_typedikenali.
base_mintmemilikisupply = base_supply_max, semuanya dibase_vault.base_mint.mint_authority = launch_authority,freeze_authority = None.LaunchStatediinisialisasi denganstatus = Active,base_sold = 0,quote_reserve_real = 0.quote_reserve_targetdihitung dari parameter kurva +base_supply_graduation+buy_numerator(kira-kira).
InvalidQuoteMint, FeeRateTooHigh, InvalidCurveParams, MathOverflow.
Buy (varian kanonik: BuyExactIn)
Pengguna menyediakan quote_in tetap; kurva menghitung base_out.
Argumen
Kondisi awal
launch_state.status == Active.now ≥ open_time.user_quote_ata.balance ≥ quote_in.quote_in > 0.
- Pisahkan
quote_inmenjadiquote_in_after_feedan bagian biaya. - Newton-selesaikan kurva untuk
base_outyang diberikan post-fee quote. require(base_out ≥ minimum_base_out)jika tidak balikExceededSlippage.- Pindahkan
quote_inpengguna → vault. Pindahkanbase_outvault → pengguna. - Perbarui
base_sold += base_out,quote_reserve_real += quote_in_after_fee × (lp_share / total_share). - Perbarui penghitung biaya (
protocol_fees_quote,creator_fees_quote). state_data.num_buys += 1.- Jika
quote_reserve_real ≥ quote_reserve_targetsetelah pembaruan, SDK biasanya merantai ixGraduatedalam transaksi yang sama. Program tidak auto-graduate di dalamBuy—Graduateberikutnya diperlukan.
BuyExactOut
Pengguna menentukan base_out yang tepat; program menghitung quote_in.
Argumen
BuyExactIn. Menggunakan integral kuadrat bentuk tertutup (atau CPMM terbalik, untuk curve_type 1) daripada iterasi Newton.
Sell / SellExactIn / SellExactOut
Cerminan dari Buy. Pengguna mengembalikan base_in ke kurva dan menerima quote_out. Biaya dikurangkan dari quote_out, jadi pengguna menerima lebih sedikit daripada hasil terintegrasi mentah.
Kondisi awal —
user_base_ata.balance ≥ base_in.- Penjualan tidak dapat mendorong
base_solddi bawah 0 (redundan dengan di atas mengingat akuntansi konsisten). - Peluncuran adalah
Active.
Buy. base_sold berkurang, quote_reserve_real berkurang. Biaya masih terkumpul.
MigrateToAmm / MigrateToCpswap
Lulus peluncuran ke pool yang dapat diperdagangkan setelah kurva mencapai total_quote_fund_raising. Peluncuran baru adalah CPMM-only. MigrateToAmm dipertahankan untuk pool yang ada yang migrate_type tersimpannya adalah 0.
Siapa yang menandatangani
MigrateToAmm—migrate_to_amm_walletyang dicatat padaGlobalConfigpengikatan.MigrateToCpswap—migrate_to_cpswap_walletyang dicatat padaGlobalConfigpengikatan.
MigrateToAmm mengambil tiga (terutama parameter pasar OpenBook yang program teruskan ke AMM v4):
MigrateToCpswap tidak mengambil apa pun.
Efek (umum untuk keduanya)
- Verifikasi
pool_state.status == Migrate(yaitu,quote_reserve_targettelah tercapai). Jika tidak, balik denganPoolMigrated(status sudahMigrated) atauPoolFunding(masih dalam pendanaan). - Verifikasi
pool_state.migrate_typecocok dengan instruksi (0untuk AMM,1untuk CPMM). Jika tidak, balik denganMigrateTypeNotMatch. - Hitung cadangan pasca-kelulusan:
base_amount_out = base_vault.amount − vesting_schedule.total_locked_amountquote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
- CPI ke program target (
AMM v4 Initialize2atauCPMM InitializeWithPermission) dengan cadangan tersebut untuk membuat pool pasca-kelulusan. - Untuk migrasi CPMM yang dieksekusi setelah upgrade 2026-08-17, gabungkan
platform_scale + creator_scalemenjadi satu saham LP terkunci milik platform dan mint paling banyak satu Fee Key NFT keplatform_nft_wallet. Bakar sisaburn_scale. Sebelum upgrade,creator_scaledikunci secara terpisah dan Fee Key-nya pergi ke pembuat token. Migrasi historis yang selesai tidak dimodifikasi. Untuk kelulusan AMM v4 warisan, disposisi LP mengikuti alur yang ada dari instruksi itu. - Cabut
base_mint.mint_authority(atur keNone). - Balik
pool_state.status = Migrated, aturvesting_schedule.start_time = block_time + cliff_period.
BuyExactIn, BuyExactOut, SellExactIn, SellExactOut akan menolak dari titik ini dengan PoolMigrated. Pool AMM yang dihasilkan adalah kanonik dan berdagang seperti pool AMM v4 / CPMM lainnya.
Kesalahan umum — PoolFunding, PoolMigrated, MigrateTypeNotMatch, InvalidCpSwapConfig, MathOverflow.
Akun sisa migrasi CPMM
Klien yang membangunMigrateToCpswap harus menggunakan indeks remaining_accounts tetap ini:
Instruksi memerlukan setidaknya sepuluh akun sisa pada jalur yang ditingkatkan. Akun support-mint adalah input CPI read-only. Turunkan kedua alamat bahkan ketika mint tidak memiliki catatan dukungan yang diinisialisasi. Pembangun yang lebih lama yang masih menambahkan akun creator-lock atau menghilangkan indeks 8–9 harus diperbarui.
Daftar allowlist GlobalConfig platform
PlatformConfig.restrict_global_config mengontrol pemeriksaan:
0: platform menerimaGlobalConfigyang valid; tidak ada akun allow yang diperlukan.1:Initialize,InitializeV2, danInitializeWithToken2022harus menyertakanPlatformAllowConfigyang cocok di mana saja diremaining_accounts.
CreatePlatformAllowConfig dan ClosePlatformAllowConfig. Bijinya adalah [b"platform_allow_config", platform_config, global_config]. Instruksi PlatformGlobalAccess yang dikelola admin sebelumnya dan PDA sudah pensiun.
CollectFee
Penyapuan admin biaya perdagangan yang terkumpul protokol pada satu peluncuran.
Argumen — tidak ada.
Akun
Efek — transfer
pool_state.quote_protocol_fee dari quote_vault ke recipient_token_account, kemudian nol penghitung. Dapat dipanggil kapan saja setelah pembelian pertama.
CollectMigrateFee
Penyapuan admin biaya migrasi yang terkumpul pada kelulusan. Bentuk akun yang sama seperti CollectFee dengan migrate_fee_owner sebagai penandatangan (bukan protocol_fee_owner) dan pool_state.migrate_fee sebagai penghitung yang dikuras.
ClaimCreatorFee
Penyapuan per-pembuat biaya pembuat yang terkumpul di setiap peluncuran yang dimiliki pembuat yang menggunakan quote mint yang sama. Menguras vault biaya per-pembuat, bukan per-pool.
Argumen — tidak ada.
Akun
Efek — transfer seluruh saldo
creator_fee_vault ke recipient_token_account. Balik dengan pemeriksaan require-greater-than-zero jika vault kosong.
ClaimPlatformFee
Penyapuan per-platform yang menguras vault kutipan peluncuran secara langsung. Gunakan ini ketika platform ingin mengklaim potongannya untuk satu peluncuran spesifik tanpa melalui vault platform agregat.
Argumen — tidak ada.
Akun
Efek — transfer
pool_state.platform_fee dari quote_vault ke recipient_token_account, nol penghitung.
ClaimPlatformFeeFromVault
Penyapuan agregat per-platform. Menguras vault biaya per-quote-mint platform yang mengumpulkan biaya dari setiap peluncuran yang dirutekan melalui platform.
Argumen — tidak ada.
Akun
Efek — transfer saldo penuh
platform_fee_vault ke recipient_token_account. Balik jika vault kosong.
Instruksi vesting dan konfigurasi platform
Ini didokumentasikan di halaman khusus karena masing-masing memiliki model statusnya sendiri:CreateVestingAccount,CreatePlatformVestingAccount,ClaimVestedTokenCreatePlatformConfig,UpdatePlatformConfig,UpdatePlatformCurveParam,RemovePlatformCurveParam,CreatePlatformAllowConfig,ClosePlatformAllowConfigCreateConfig,UpdateConfig
Matriks perubahan status
Ke mana selanjutnya
products/launchlab/code-demos— contoh TypeScript untuk setiap instruksi.products/launchlab/accounts— bentuk status lengkap.reference/error-codes— enum kesalahan LaunchLab.
- Modul Raydium SDK v2
LaunchLab - Sumber program Raydium LaunchLab

