Skip to main content
Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
Entri ini mencakup pembaruan program LaunchLab yang akan datang. Entri ini telah diverifikasi terhadap cabang rilis lokal sebelum penerapan. Konfirmasikan program yang diterapkan sebelum mengandalkan akun atau instruksi baru.
Platform sudah dapat membatasi bentuk peluncuran mana yang dapat dipilih oleh kreatornya, melalui PlatformConfig.curve_params. Mekanisme tersebut hanya menguji kesetaraan eksak: entri baik mengikat bidang ke satu nilai atau menggantinya dengan sentinel. Mekanisme ini juga menampung paling banyak 10 entri di seluruh setiap GlobalConfig yang didukung platform, dan mekanisme ini berada di akun PlatformConfig itu sendiri, menambahnya sebesar 491 byte per entri. Ketiga properti tersebut bertabrakan saat protokol menambahkan konfigurasi. Mengekspresikan “target penggalangan dana antara 50 dan 200 SOL” memerlukan satu entri per nilai yang diizinkan dan oleh karena itu tidak mungkin. Lantai GlobalConfig itu sendiri telah dibuka lebar — tingkat 1 bps, batas pasokan 99999 — justru agar setiap platform sesuai di bawahnya, yang membuat platform tidak memiliki cara untuk mempersempit. Rilis ini menggantikan daftar putih dengan aturan kurva: satu akun PlatformCurveRule per pasangan (platform, config), menampung hingga 10 grup pemeriksaan, masing-masing menampung hingga 25 batasan (field, op, value) di atas 19 parameter peluncuran, dengan Eq, Gte, Lte, dan Neq. Batasan dalam grup di-AND, grup di-OR. Rentang adalah Gte ditambah Lte pada bidang yang sama. Model lengkap dan sembilan playbook yang dikerjakan ada di halaman baru: products/launchlab/curve-rules.

TL;DR untuk integrator

  • PlatformConfig mempertahankan ukuran dan setiap offset bidang yang ada. Ini adalah 944 byte tetap. curve_params hilang; restrict_curve_param (u8), curve_rule_manager (Pubkey), dan 4 byte yang ditempati prefiks panjang vec semuanya keluar dari padding, yang menyusut dari 107 menjadi 78.
  • Decoder harus menghapus vec trailing. Decoder yang masih mengharapkan Vec<PlatformCurveParam> setelah padding akan membaca dua bidang baru sebagai byte vec. Semuanya sebelum padding tidak terpengaruh, jadi decoder yang hanya membaca dompet biaya dan tingkat terus bekerja tanpa perubahan.
  • Pembangun peluncuran memerlukan satu akun lagi saat flag aktif. Sementara restrict_curve_param adalah 1, InitializeV2 dan InitializeWithToken2022 memerlukan PDA aturan di remaining_accountstermasuk saat akun tidak ada, sehingga menghilangkannya tidak dapat melewati pemeriksaan. Derivasi: [b"platform_curve_rule", platform_config, global_config].
  • Tidak ada platform yang dibatasi secara default. restrict_curve_param adalah 0 di setiap akun yang ada, dan 0 berarti program tidak membaca aturan sama sekali.
  • Dua instruksi dihapus: UpdatePlatformCurveParam dan RemovePlatformCurveParam. Empat ditambahkan: CreatePlatformCurveRule, UpdatePlatformCurveRule, RemovePlatformCurveRule, ClosePlatformCurveRule.
  • UpdatePlatformConfig mendapat dua varian: RestrictCurveParam(u64) pada indeks dispatch 13 dan CurveRuleManager(Pubkey) pada 14. Indeks yang ada 0–12 tidak berubah.
  • Tujuh kode kesalahan ditambahkan, 60246030. 6020 CurveParamIsNotExist dipertahankan sebagai placeholder meskipun pemanggil terakhirnya hilang, jadi tidak ada yang bergeser setelahnya. Lihat reference/error-codes.
  • Penyegaran IDL diperlukan. Tipe akun baru, empat instruksi baru, dua dihapus, dua varian dispatch baru, tujuh kode kesalahan baru.
  • Periksa aturan off-chain sebelum mengirim apa pun. SDK mengekspos checkLaunchAgainstCurveRule (mencerminkan pemeriksaan saat peluncuran, perilaku gagal-tertutup disertakan) dan checkCurveRuleGroupWritable (mencerminkan validasi saat penulisan). Keduanya adalah fungsi murni. Lihat Periksa sebelum Anda mengirim.
  • Latihan di devnet sebelum mengaktifkan di mainnet. Mengaktifkan restrict_curve_param mengubah apa yang dapat dilakukan kreator Anda segera. Urutan yang direkomendasikan — termasuk meluncurkan satu token yang harus ditolak, untuk membuktikan pembangun Anda benar-benar melewati akun aturan — ada di Uji di devnet terlebih dahulu.

Apa yang dapat diekspresikan oleh aturan yang tidak dapat dilakukan daftar putih

19 bidang mencakup empat tingkat yang diturunkan — SellRateA, LockRate, MigrateRateA, FundRaisingRateB — yang membuat aturan portabel di seluruh pasokan daripada terikat pada satu.

Manajemen delegasi

PlatformConfig.curve_rule_manager adalah dompet panas yang dapat membuat, memperbarui, menghapus, dan menutup akun aturan platform ini. Mengedit aturan adalah rutin dan kunci admin platform biasanya multisig; ini adalah bidang yang membuat multisig keluar dari loop. Atur sekali melalui UpdatePlatformConfig::CurveRuleManager. Admin platform mempertahankan kekuatan yang sama secara paralel — program menerimanya dengan menurunkan ulang PDA PlatformConfig dari penandatangan — jadi kunci manajer yang hilang dapat dipulihkan dengan memutar bidang. Pubkey::default() berarti admin-only. Kunci manajer yang dikompromikan dapat melonggarkan atau menghapus aturan parameter dan mengklaim kembali sewa akun aturan. Kunci tersebut tidak dapat membalik restrict_curve_param, menyentuh dompet biaya apa pun, bidang vesting, atau konfigurasi CPMM, atau melanggar batas GlobalConfig.

Sewa dan ukuran

Akun aturan dibuat tanpa grup dan diubah ukurannya pada setiap perubahan, jadi platform membayar untuk aturan yang benar-benar ditulisnya, dan menghapus grup mengembalikan perbedaannya kepada penandatangan. Karena ukurannya dinamis, decoder harus membaca panjang akun yang sebenarnya daripada menganggap konstanta.

Biaya komputasi saat peluncuran

Pemeriksaan berjalan pada setiap peluncuran saat diaktifkan. Diukur end-to-end — derivasi PDA, pemindaian remaining_accounts, deserialisasi, evaluasi: Batasan yang diturunkan biaya sekitar 223 CU terhadap sekitar 48 untuk pembacaan bidang langsung. Bahkan aturan yang sepenuhnya dimuat tetap berada di dalam sepertiga dari anggaran default 200 000 CU per-instruksi. Grup dievaluasi sampai satu cocok, jadi tingkat yang paling banyak digunakan harus terlebih dahulu.

Migrasi sekali jadi

Platform yang menggunakan daftar putih dimigrasikan oleh protokol dalam satu lintasan, sebelum flag tersedia untuk diaktifkan. Otoritas khusus menjalankan satu transaksi per platform yang menerjemahkan setiap entri warisan ke dalam grup pemeriksaan akun aturan konfigurasi yang dinamainya, menghapus entri dari PlatformConfig, dan menyusut akun itu kembali ke 944 byte. Terjemahan mempertahankan semantik lama dengan tepat: setiap entri menjadi satu grup, setiap bidang non-sentinel menjadi satu batasan Eq, dan entri all-sentinel — yang cocok dengan setiap peluncuran — menjadi grup tanpa batasan, yang juga cocok dengan setiap peluncuran. Migrasi menulis aturan tetapi tidak mengaktifkannya. Platform yang dimigrasikan tetap tidak dibatasi sampai menetapkan restrict_curve_param ke 1 sendiri. Instruksi migrasi telah dihapus dari program sekarang lintasan selesai, bersama dengan bidang warisan yang dibacanya.

Apa yang tidak berubah

  • GlobalConfig. Tata letak yang sama, batas yang sama, instruksi yang sama. Aturan mempersempit batas tersebut dan diperiksa bersama; mereka tidak pernah dapat memperluas satu.
  • Daftar akun dan argumen instruksi peluncuran. InitializeV2 dan InitializeWithToken2022 mengambil akun tetap yang sama dan argumen yang sama. Hanya remaining_accounts yang mendapat entri, dan hanya saat flag aktif.
  • Jalur perdagangan, kelulusan, biaya, dan vesting. Tidak tersentuh.
  • PlatformAllowConfig. Tidak berubah dan tidak terkait: ini memutuskan konfigurasi mana yang dapat digunakan peluncuran platform, sementara aturan memutuskan parameter mana dalam konfigurasi. Dua flag independen.
  • Kode kesalahan 60006023. Tidak berubah, 6020 disertakan.
  • Ukuran PlatformConfig dan offset pre-padding. Tidak berubah, jadi akun yang ada tidak memerlukan migrasi mereka sendiri.

Halaman yang diperbarui

  • products/launchlab/curve-ruleshalaman baru. Model tiga tingkat, tabel bidang 19 dan operator 4, sembilan playbook, pembatasan tipe kurva, dua pembantu pemeriksaan off-chain, urutan latihan devnet, manajemen delegasi, sewa, urutan peluncuran, dan biaya komputasi.
  • products/launchlab/platform-config — “Daftar putih parameter kurva” diganti dengan “Aturan parameter peluncuran”; tata letak diperbarui untuk restrict_curve_param, curve_rule_manager, dan padding 78-byte; tabel jalur pembaruan, cuplikan jalur baca, dan jebakan ditulis ulang.
  • products/launchlab/instructions — bagian “Aturan parameter peluncuran platform” baru mencakup empat instruksi, akun, argumen, dan kesalahan mereka; baris inventaris diganti.
  • products/launchlab/accountsPlatformCurveRule ditambahkan ke inventaris dan diberikan bagiannya sendiri dengan tata letak lengkap dan peringatan ukuran variabel.
  • reference/error-codes60246030 didokumentasikan; 6018 dan 6020 dianotasi.