Skip to main content
Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
Halaman ini mendokumentasikan grafik akun per-peluncuran: PoolState (akun status akar untuk satu peluncuran), dua vaultnya, PDA otoritas, dan referensi pasca-kelulusan yang diperolehnya saat peluncuran diselesaikan.Untuk konfigurasi tingkat protokol yang membatasi setiap peluncuran, lihat products/launchlab/global-config. Untuk overlay per-platform, lihat products/launchlab/platform-config. Untuk akun vesting (VestingSchedule pada PoolState, VestingRecord per penerima manfaat), lihat products/launchlab/vesting.

Inventaris akun

SDK raydium.launchpad.getLaunchById mengembalikan PoolState ditambah flag yang menunjukkan apakah peluncuran telah lulus; jika ya, ID pool pasca-migrasi disertakan.

PoolState

Status akar per-peluncuran. Nama field di bawah cocok dengan struct Rust on-chain (states/pool.rs); beberapa nilai disederhanakan untuk keterbacaan — konsultasikan sumber untuk tata letak memori yang tepat.
Nilai PoolStatus (dari Anchor IDL):
Field yang menghadap integrator:
  • status — tiga nilai, monoton (Funding → Migrate → Migrated). Pembacaan selalu aman; penulisan terbatas.
  • real_base, real_quote — status kurva saat ini. Dikombinasikan dengan virtual_base / virtual_quote mereka cukup untuk menghitung harga spot tanpa menyentuh vault. Lihat bonding-curve.
  • total_base_sell vs real_base — rasio “kemajuan menuju kelulusan” untuk UI.
  • migrate_type — inisialisasi baru memerlukan 1 (CPSWAP). 0 yang tersimpan tetap bermakna hanya untuk peluncuran yang ada yang dibuat sebelum penegakan CPMM-only.
  • amm_creator_fee_on — memilih creator_fee_on = OnlyQuoteToken (0) atau BothToken (1) pada pool CPMM pasca-kelulusan. Ini tidak memilih target migrasi. Lihat creator-fees.
  • token_program_flag — bidang bit, bukan boolean. Bit0 adalah mint dasar dan bit1 adalah mint kutipan, masing-masing 0 untuk SPL Token dan 1 untuk Token-2022, jadi byte mengambil empat nilai: 0 (keduanya warisan), 1 (Token-2022 dasar), 2 (Token-2022 kutipan), 3 (keduanya Token-2022). Baca satu mint dengan (token_program_flag >> bit) & 1. Membandingkan seluruh byte terhadap 0 untuk mengklasifikasikan mint dasar menyelesaikan 2 ke program yang salah. Bit1 konstan 0 sampai mint kutipan Token-2022 didukung.
  • quote_protocol_fee / platform_fee / migrate_fee — tiga penghitung biaya independen. Masing-masing memiliki instruksi klaim sendiri; lihat instructions.
  • vesting_schedule — hadir pada setiap PoolState tetapi tidak aktif ketika total_locked_amount == 0. Lihat vesting untuk siklus hidup lengkap.

PDA otoritas

LaunchLab menggunakan satu PDA otoritas di semua peluncuran, diturunkan tanpa seed per-peluncuran:
PDA tunggal itu adalah:
  • Otoritas pada base_vault dan quote_vault setiap peluncuran.
  • mint_authority pada base_mint setiap peluncuran (pra-kelulusan).
  • Penandatangan pada CPI kelulusan CPMM, dan pada kelulusan AMM v4 warisan untuk status yang ada.
  • Penandatangan pada transfer ClaimVestedToken keluar dari vault dasar.
  • transfer_fee_config_authority pada TransferFeeConfig mint dasar Token-2022, untuk seluruh fase pra-kelulusan — dan withdraw_withheld_authority-nya juga, tetapi hanya ketika platform meninggalkan PlatformConfig.transfer_fee_extension_auth tidak diatur.
mint_authority dicabut segera setelah panggilan MigrateToCpswap atau MigrateToAmm warisan, jadi pasokan secara permanen tetap. Dua PDA tambahan membatasi vault biaya:
Ini menandatangani transfer keluar dari vault biaya yang sesuai selama ClaimCreatorFee dan ClaimPlatformFeeFromVault.

Mint dasar

Dibuat inline oleh Initialize dengan:
  • mint_authority = authority (dicabut saat kelulusan).
  • freeze_authority = None.
  • supply = supply, sepenuhnya dimint ke base_vault.
  • decimals dipilih oleh kreator di Initialize (biasanya 6).
Karena pasokan penuh dimint sebelumnya, base_mint.supply konstan untuk kehidupan peluncuran. Pembelian kurva memindahkan token dari base_vault ke pembeli, tetapi tidak memanggil mint_to. Initialize / InitializeV2 membuat mint dasar SPL Token. Instruksi InitializeWithToken2022 khusus memungkinkan mint dasar menjadi mint Token-2022 (dengan TransferFeeConfig opsional). Ketiga jalur inisialisasi memerlukan kelulusan CPMM. Ketika InitializeWithToken2022 melampirkan TransferFeeConfig, mint dibuat dengan transfer_fee_config_authority = authority dan withdraw_withheld_authority = PlatformConfig.transfer_fee_extension_auth, kembali ke authority ketika platform belum menetapkan field itu. Kedua otoritas ditugaskan kembali ke kunci platform saat kelulusan, sisi tarik hanya jika PDA masih memegangnya. Lihat platform-config. Mint kutipan independen dari mint dasar dan mungkin sendiri adalah mint Token-2022 — InitializeV2 dan InitializeWithToken2022 menerima program mana pun di slot program kutipan mereka. Initialize yang sudah usang tidak: akun program-kutipan mereka masih diketik ke SPL Token, jadi konfigurasi yang mint kutipannya adalah Token-2022 hanya dapat diluncurkan melalui dua yang lain. Mint kutipan tidak pernah dibuat oleh LaunchLab; itu adalah apa pun yang dinamai GlobalConfig.quote_mint. Lihat global-config dan reference/token-2022-support.

Vault

Baik base_vault maupun quote_vault adalah akun token yang dimiliki oleh PDA LaunchLab authority, masing-masing dibuat pada program yang memiliki mintnya sendiri — jadi peluncuran dapat memiliki vault dasar warisan dan vault kutipan Token-2022, atau kombinasi lainnya. token_program_flag mencatat mana yang mana. Alamat disimpan pada PoolState dan juga dapat diturunkan:
(Verifikasi awalan seed yang tepat dari struct akun Initialize sumber sebelum mengandalkan derivasi dalam produksi.)

Vault biaya

Dua PDA mengagregasi biaya di semua peluncuran:
  • Vault biaya kreator — PDA pada seed [creator, quote_mint]. Setiap peluncuran yang menghasilkan biaya kreator yang sama pada mint kutipan yang sama dituangkan ke vault yang sama. Kreator menyapunya melalui ClaimCreatorFee.
  • Vault biaya platform — PDA pada seed [platform_config, quote_mint]. Setiap peluncuran yang dirutekan melalui platform yang sama yang menggunakan mint kutipan yang sama dituangkan ke vault yang sama. platform_fee_wallet platform menyapunya melalui ClaimPlatformFeeFromVault. Ada juga varian sapuan per-peluncuran (ClaimPlatformFee) yang menarik dari quote_vault peluncuran secara langsung tanpa melewati vault yang diagregasi.
Keduanya dibuat dengan malas pada swap pertama yang mengumpulkan biaya, pada program mana pun yang memiliki mint kutipan. Kreator atau platform yang menjalankan peluncuran terhadap mint kutipan warisan dan Token-2022 berakhir dengan satu vault per mint, seperti yang sudah dilakukan untuk dua mint warisan yang berbeda. Pola vault yang diagregasi adalah apa yang memungkinkan kreator atau platform volume tinggi untuk mengamortisasi biaya sewa akumulasi biaya di banyak peluncuran.

Quote vault ↔ real_quote

quote_vault.balance dan PoolState.real_quote harus tetap sinkron. Mereka dapat bergeser paling banyak jumlah dari tiga penghitung biaya yang tertunda (quote_protocol_fee, platform_fee, migrate_fee), yang duduk di vault tetapi milik penghitung biaya dan bukan cadangan kurva. Matematika kurva selalu menggunakan real_quote, tidak pernah saldo vault mentah. Invarian pra-kelulusan:

PlatformCurveRule

Satu akun per pasangan (PlatformConfig, GlobalConfig), menyimpan bentuk peluncuran yang diizinkan platform pada konfigurasi itu. Seed PDA adalah [b"platform_curve_rule", platform_config, global_config].
Akun dibuat tanpa grup dan diubah ukurannya pada setiap perubahan grup, jadi panjangnya adalah 150 + Σ(14 + 18 × constraints) dan decoder tidak boleh menganggap ukuran tetap. Grup adalah OR: peluncuran diizinkan segera setelah kendala satu grup semuanya berlaku. Nol grup berarti tidak ada pembatasan. Bacanya hanya ketika PlatformConfig.restrict_curve_param pemilik adalah 1 — pada 0 program mengabaikan akun, dan aturan basi mungkin duduk di sana. ID field, operator, dan playbook ada di products/launchlab/curve-rules.

Transisi akun siklus hidup

Ke mana selanjutnya

Sumber:
  • raydium-launch/programs/launchpad/src/states/pool.rsPoolState, PoolStatus, VestingSchedule, AmmCreatorFeeOn.
  • raydium-launch/programs/launchpad/src/lib.rs — konstanta seed PDA (AUTH_SEED, CREATOR_FEE_VAULT_AUTH_SEED, PLATFORM_FEE_VAULT_AUTH_SEED).
  • Modul launchpad Raydium SDK v2.