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 tingkat 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, lock rate, sell rate, dan migrate rate.
  • Quote mint (biasanya wrapped SOL atau USDC) — aset yang dibeli pengguna.
  • Empat dompet tingkat protokol: pemilik biaya protokol, pemilik biaya migrasi, dan dua dompet kontrol migrasi yang disimpan untuk kelulusan CPMM dan legacy AMM v4.
Akun GlobalConfig dapat dibuat oleh admin program LaunchLab atau otoritas create-config yang didelegasikan. 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 field

curve_type dan index

Bersama-sama ini mengunci GlobalConfig secara unik. Ada satu GlobalConfig per pasangan (curve_type, index):
  • curve_type = 0 — Kurva virtual-reserve constant-product. Default dan paling banyak digunakan.
  • curve_type = 1 — Kurva fixed-price.
  • curve_type = 2 — Kurva linear-price.
index adalah u16 yang memungkinkan admin menerbitkan beberapa konfigurasi per jenis kurva (misalnya, satu dengan biaya yang lebih ketat, satu dengan minimum quote raise 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 lamports (atau unit quote, 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 tarif biaya share platform dari PlatformConfig yang mengikat (lihat platform-config). Program memberlakukan trade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE.

Lantai pasokan dan rate

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 seed pool pasca-kelulusan.
  • min_quote_fund_raising — minimum quote_reserve_target yang dapat dideklarasikan peluncuran (dengan desimal). Default ke 30_000_000_000 unit quote mint.

Quote mint dan dompet protokol

  • quote_mint — aset yang dibeli pengguna. Sebagian besar peluncuran menggunakan wrapped SOL (So111…112) atau USDC (EPjF…Dt1v). Satu GlobalConfig terikat pada satu quote mint; peluncuran yang membutuhkan target quote berbeda menargetkan (curve_type, index) yang berbeda.
  • 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.

Dompet migrasi

Dua dompet kelulusan yang disimpan memerlukan penandatangan yang berbeda:
  • migrate_to_amm_wallet — menandatangani MigrateToAmm untuk peluncuran legacy 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 tingkat 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 menginisialisasi banyak field 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 mendeskripsikan bentuk kurva (supply, total_base_sell, total_quote_fund_raising, migrate_type).
  • VestingParams yang mendeskripsikan pasokan terkunci.
  • MintParams untuk base mint.
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 seed 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 field 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. Selector 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, gunakan helper getAllGlobalConfigs SDK atau kueri endpoint API LaunchLab yang mencerminkannya; jumlah akun on-chain kecil (beberapa 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.