Skip to main content
Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
GlobalConfig adalah akun konfigurasi tingkat protokol. Dapat ada banyak dari mereka — dikunci oleh (curve_type, index) — dan setiap peluncuran memilih tepat satu pada waktu Initialize. Nilai pada GlobalConfig yang dipilih kemudian menjadi batas keras untuk parameter peluncuran tersebut. Untuk penyesuaian tingkat platform (tarif biaya per-platform, bentuk kurva yang diizinkan, pembagian NFT saat kelulusan), lihat products/launchlab/platform-config.

Apa itu

GlobalConfig adalah PDA singleton-per-(curve_type, index) yang menetapkan aturan sisi protokol yang harus dipatuhi setiap peluncuran:
  • Jenis kurva ikatan yang diizinkan (curve_type).
  • Tarif biaya perdagangan yang dikenakan kurva pada setiap pembelian dan penjualan.
  • Biaya migrasi yang dikenakan saat kelulusan.
  • Lantai pada pasokan, tingkat kunci, tingkat penjualan, dan tingkat migrasi.
  • Mint kutipan (biasanya SOL terbungkus atau USDC) — aset yang dibeli pengguna.
  • Empat dompet sisi protokol: pemilik biaya protokol, pemilik biaya migrasi, dan dua dompet kontrol migrasi yang disimpan untuk kelulusan CPMM dan AMM v4 warisan.
Akun GlobalConfig dapat dibuat oleh admin program LaunchLab atau otoritas delegasi buat-konfigurasi. Hanya admin yang memperbarui konfigurasi yang ada. Lihat reference/program-addresses untuk otoritas kanonik.

Tata Letak

Derivasi PDA:
(Verifikasi urutan seed yang tepat dari akun on-chain sebelum menandatangani — instruksi create_config program adalah sumber kebenaran.)

Semantik Bidang

curve_type dan index

Bersama-sama ini mengunci GlobalConfig secara unik. Ada satu GlobalConfig per pasangan (curve_type, index):
  • curve_type = 0 — Kurva cadangan virtual produk-konstan. Default dan paling banyak digunakan.
  • curve_type = 1 — Kurva harga tetap.
  • curve_type = 2 — Kurva harga linier.
index adalah u16 yang memungkinkan admin menerbitkan beberapa konfigurasi per jenis kurva (misalnya, satu dengan biaya yang lebih ketat, satu dengan minimum kutipan yang lebih tinggi). Pada Initialize peluncuran menyediakan pasangan (curve_type, index) dan program memuat GlobalConfig yang cocok.

Biaya

  • trade_fee_rate — dinyatakan dalam 1/1_000_000 dari volume perdagangan. Diterapkan pada setiap pembelian dan penjualan di kurva. protocol_fee_owner mengklaim bagiannya melalui CollectFee.
  • migrate_fee — biaya tetap dalam lamport (atau unit kutipan, tergantung konfigurasi) yang dikenakan sekali saat kelulusan. Diklaim oleh migrate_fee_owner melalui CollectMigrateFee.
  • max_share_fee_rate — diinisialisasi ke 10_000 (100 bps). Membatasi argumen share_fee_rate yang diterima BuyExactIn, BuyExactOut, SellExactIn, dan SellExactOut — biaya rujukan yang dibayarkan langsung ke penerima bagian selama perdagangan. Ini tidak membatasi PlatformConfig.fee_rate; tingkat itu memiliki batas sendiri, dijelaskan dalam platform-config. Baik CreateConfig maupun UpdateConfig memberlakukan trade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE.

Lantai pasokan dan tingkat

Lantai ini membatasi parameter bentuk kurva apa yang dapat dipilih peluncuran pada Initialize. Jika CurveParams kreator melanggar salah satunya, Initialize kembali dengan InvalidInput.
  • min_base_supply — minimum supply (tanpa desimal) yang dapat dideklarasikan kurva. Default ke 10_000_000.
  • max_lock_rate — dinyatakan dalam 1/1_000_000; default 300_000 (30%). Membatasi vesting melalui total_locked_amount <= supply * max_lock_rate / 1_000_000.
  • min_base_sell_rate — dinyatakan dalam 1/1_000_000; default 200_000 (20%). Membatasi base_supply_graduation / supply dari bawah.
  • min_base_migrate_rate — dinyatakan dalam 1/1_000_000; default 200_000 (20%). Membatasi jumlah token yang tersisa untuk menabur pool pasca-kelulusan.
  • min_quote_fund_raising — minimum quote_reserve_target yang dapat dideklarasikan peluncuran (dengan desimal). Default ke 30_000_000_000 unit mint kutipan.

Mint kutipan dan dompet protokol

  • quote_mint — aset yang dibeli pengguna. Sebagian besar peluncuran menggunakan SOL terbungkus (So111…112) atau USDC (EPjF…Dt1v). Satu GlobalConfig terikat pada satu mint kutipan; peluncuran yang membutuhkan target kutipan berbeda menargetkan (curve_type, index) yang berbeda. Mint dapat dimiliki oleh program SPL Token atau Token-2022 — lihat di bawah.
  • protocol_fee_owner — pubkey yang menandatangani CollectFee dan mengklaim biaya protokol yang terkumpul pada setiap peluncuran yang terikat pada konfigurasi ini. Disimpan on-chain; admin dapat merotasinya melalui UpdateConfig.
  • migrate_fee_owner — pubkey yang menandatangani CollectMigrateFee.

Mint kutipan Token-2022

CreateConfig menerima quote_mint Token-2022, dan pool yang terikat pada konfigurasi seperti itu membawanya dari awal hingga akhir: vault kutipan, kedua vault biaya, dan akun token penerima biaya bagian semuanya dibuat di Token-2022, dan instruksi swap memperhitungkan TransferFeeConfig di sisi kutipan. Bit PoolState.token_program_flag bit1 mencatat pilihan per peluncuran. Dua batasan yang perlu diketahui sebelum Anda mengandalkan salah satunya:
  • Initialize yang sudah usang tidak dapat diluncurkan terhadapnya. Hanya InitializeV2 dan InitializeWithToken2022 yang menerima program kutipan Token-2022. Lihat instructions.
  • Tidak ada daftar izin ekstensi yang diterapkan. Tidak seperti CPMM dan CLMM, LaunchLab tidak menyaring ekstensi mint kutipan — CreateConfig mengambil mint sebagaimana adanya, jadi satu-satunya gerbang adalah kebijaksanaan admin atas mint mana yang terikat pada konfigurasi. Pemeriksaan NoSupportExtension program hanya mencakup mint dasar Token-2022 yang dibuat LaunchLab sendiri. Perlakukan pengikatan satu sebagai tindakan kepercayaan tinggi; lihat reference/token-2022-support.

Dompet migrasi

Dua dompet kelulusan yang disimpan memerlukan penandatangan yang berbeda:
  • migrate_to_amm_wallet — menandatangani MigrateToAmm untuk peluncuran warisan yang ada yang menyimpan migrate_type = 0.
  • migrate_to_cpswap_wallet — menandatangani MigrateToCpswap. Setiap peluncuran yang baru diinisialisasi menggunakan jalur ini.
Ini biasanya dipegang oleh crank kelulusan yang dioperasikan Raydium, sehingga kelulusan terjadi segera setelah kurva mencapai ambang batas daripada menunggu kreator memanggilnya.

Daftar izin sisi platform

GlobalConfig tidak lagi memiliki requires_platform_auth. Byte formernya adalah padding, jadi ukuran akun tidak berubah. Akses sekarang dikendalikan oleh PlatformConfig.restrict_global_config dan akun PlatformAllowConfig yang dibuat oleh admin platform tersebut. Lihat platform-config.

Default saat inisialisasi

Ketika CreateConfig dipanggil, program menabur banyak bidang dengan default yang dikodekan keras:
Admin menetapkan curve_type, index, migrate_fee, trade_fee_rate, quote_mint, dan empat pubkey dompet secara eksplisit pada waktu pembuatan; nilai berikutnya dapat disesuaikan melalui UpdateConfig.

Bagaimana peluncuran memilih GlobalConfig

Pada Initialize, kreator melewatkan:
  • (curve_type, index) untuk memilih PDA GlobalConfig mana yang akan dimuat.
  • CurveParams yang menggambarkan bentuk kurva (supply, total_base_sell, total_quote_fund_raising, migrate_type).
  • VestingParams yang menggambarkan pasokan terkunci.
  • MintParams untuk mint dasar.
Program memberlakukan:
  • curve_type cocok dengan global_config.curve_type.
  • supply >= global_config.min_base_supply.
  • total_locked_amount <= supply * max_lock_rate / 1_000_000.
  • total_base_sell >= supply * min_base_sell_rate / 1_000_000.
  • (supply − total_base_sell − total_locked_amount) >= supply * min_base_migrate_rate / 1_000_000 — yaitu, cukup token tersisa untuk menabur pool pasca-kelulusan.
  • total_quote_fund_raising >= min_quote_fund_raising.
  • migrate_type == 1 (CPSWAP).
  • Jika platform yang dipilih memiliki restrict_global_config == 1, PlatformAllowConfig yang cocok disertakan.
Setelah Initialize, PoolState peluncuran menyimpan pubkey global_config secara langsung, sehingga pengikatan bersifat permanen.

Jalur pembaruan

UpdateConfig hanya untuk admin dan mengambil pasangan (param: u8, value: u64). Setiap nilai param memilih bidang mana yang akan dimutasi: Rotasi dompet (protocol_fee_owner, migrate_fee_owner, migrate_to_amm_wallet, migrate_to_cpswap_wallet) mengambil bentuk argumen Pubkey terpisah; periksa sumber update_config untuk tabel dispatch yang tepat sebelum menyusun transaksi admin. Pemilih UpdateConfig sebelumnya 12 untuk otorisasi platform dihapus. Admin platform sekarang mengelola daftar izin mereka sendiri.

Membaca GlobalConfig dari klien

Untuk UI yang mencantumkan semua konfigurasi yang tersedia, berjalan melalui helper getAllGlobalConfigs SDK atau kueri titik akhir API LaunchLab yang mencerminkannya; jumlah akun on-chain kecil (satu digit dalam praktik).

Penunjuk

Sumber:
  • raydium-launch/programs/launchpad/src/states/config.rs — struct GlobalConfig dan initialize.
  • raydium-launch/programs/launchpad/src/lib.rscreate_config, update_config.