Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
LaunchLab mendukung tiga bentuk kurva yang dipilih saat
Initialize: constant-product (yang paling umum, bentuk virtual-reserve dari kurva standar x · y = k), linear-price, dan fixed-price. Formula ambang batas kelulusan dibagikan di ketiga bentuk. Halaman ini menjelaskan matematika constant-product secara detail; bentuk linear dan fixed dirangkum di akhir.Parameter yang disimpan di LaunchState
Nama field dalam struct Rust cocok dengan field
PoolState yang dijelaskan di accounts; unit di atas bersifat konseptual.
Kurva constant-product dengan virtual reserve (curve_type = 0)
Kurva default dan paling banyak digunakan. Semua peluncuran gaya Pump menggunakan bentuk ini. Kurva berpura-pura ada virtual quote reserve V_q dan virtual base reserve V_b sejak awal (disimpan sebagai virtual_quote dan virtual_base di PoolState), sehingga pool efektif terlihat seperti CPMM dengan reserve tersebut. Pembelian mengikuti matematika x · y = k:
base_out:
s:
x · y = k yang sama yang diterapkan LaunchLab pra-kelulusan kemudian menjadi kurva CPMM pasca-kelulusan, sehingga perpindahan bersifat mekanis mulus: harga marginal pada base_sold = base_supply_graduation sama dengan harga pembukaan pool pasca-kelulusan dengan (quote_vault, base_vault_remaining) sebagai reserve-nya.
Kurva fixed-price (curve_type = 1)
Kurva harga datar. Setiap pembelian/penjualan terjadi pada harga konstan, dapat dikonfigurasi saat Initialize:
base_supply_graduation telah terjual (hubungan biaya linear membuat quote_reserve_target mudah diturunkan).
Kurva linear-price (curve_type = 2)
Harga meningkat secara linear dengan base_sold:
base_sold — pembeli awal membayar mendekati nol, pembeli akhir membayar jauh lebih banyak, dengan harga marginal selalu naik pada slope tetap. Implementasi on-chain berada di curve/linear_price.rs.
Perbandingan bentuk kurva
Ambang batas kelulusan
quote_reserve_target dihitung saat Initialize sebagai quote yang diperlukan untuk mendorong base_sold dari 0 ke base_supply_graduation:
quote_vault.balance ≥ quote_reserve_target. Karena pembelian datang dalam ukuran diskrit, saldo aktual saat kelulusan dapat sedikit melebihi target — surplus menjadi likuiditas sisi quote tambahan di pool CPMM yang dihasilkan.
Contoh terperinci — peluncuran kuadratik
Parameter:base_supply_max = 1_000_000_000(1 miliar token base, 6 desimal)base_supply_graduation = 800_000_000(80% terjual memicu kelulusan)k = 40(skala harga)- Biaya: 1% beli, 1% jual, pembagian
lp:creator:protocol = 60:20:20.
s = 0): 0 (kuadratik murni dimulai dari nol).
Harga pada 50% terjual (s = 500_000_000):
s = 800_000_000):
10 USDC:
- State virtual:
s = 0,quote_vault = 0. - Kurangi biaya:
quote_after_fee = 10 × 0.99 = 9.9. - Selesaikan
(40 / (3e18)) × s³ = 9.9e6— 9.9 USDC dalam unit native 6-desimal, unit yang sama dengan6.827e9di atas ⇒s ≈ 9.06e7token base dibeli. - Biaya 1% (
0.1 USDC) dibagi: lp0.06, creator0.02, protocol0.02. Bagian lp tetap diquote_vault; dua lainnya menuju counter akrual masing-masing.
s₀ = 750e6 dengan quote_in_after_fee = 9.9e6 memberikan ∆s ≈ 4.4e5 — pengurangan ~200× dalam base per USDC dibandingkan pembelian pertama.
Mekanika biaya selama fase kurva
Pada setiapBuy:
lp_shareditinggalkan diquote_vault. Ini yang membuat kurva efektif lebih ketat (lebih banyak quote reserve terhadap supply base yang sama).protocol_sharemenambahLaunchState.state_data.protocol_fees_quote.creator_sharemenambahLaunchState.state_data.creator_fees_quote.
Sell pembagian yang sama diterapkan tetapi biaya diambil dari quote_out keluar.
Kedua counter disapu melalui CollectFees (admin atau creator, masing-masing ke counter mereka).
Presisi
- Jumlah sisi base:
u64. - Jumlah sisi quote:
u64. - Kubus / produk perantara:
u128. - “Beli quote eksak” dan “jual quote eksak” dapat diinversi dalam bentuk tertutup — kurva constant-product secara aljabar, kurva harga tetap dengan pembagian, kurva harga linear dengan akar kuadrat. Tidak ada penyelesai Newton di dalam program, tidak ada batas iterasi, dan tidak ada error
NotConverged.
Perpindahan ke CPMM
KetikaGraduate dijalankan:
cpmm_initial_price tepat sama dengan price(base_sold), yaitu harga kurva marginal pada saat perpindahan, sehingga pengamat yang beralih dari UI kurva ke UI CPMM tidak melihat lompatan. Untuk kurva harga kuadratik hal itu tidak berlaku: rata-rata terintegrasi berada di atas harga marginal (dengan faktor 4/3 pada contoh di atas), sehingga lompatan pada saat perpindahan memang diharapkan.
Ke mana selanjutnya
products/launchlab/accounts— fieldLaunchStateyang menyimpan parameter ini.products/launchlab/instructions— daftar akunBuy,Sell,Graduate.algorithms/constant-product— matematika CPMM yang digunakan pool pasca-kelulusan.
- Modul Raydium SDK v2
LaunchLab - Sumber program Raydium LaunchLab

