Skip to main content
Trang này được dịch tự động bằng AI. Phiên bản tiếng Anh là bản chính thức.Xem bản tiếng Anh →
LaunchLab hỗ trợ ba hình dạng đường cong được chọn tại Initialize: constant-product (hình thức phổ biến nhất, dạng virtual-reserve của đường cong x · y = k tiêu chuẩn), linear-price, và fixed-price. Công thức ngưỡng tốt nghiệp được chia sẻ trên cả ba loại. Trang này hướng dẫn chi tiết toán học constant-product; các hình thức linear và fixed được tóm tắt ở cuối.

Các tham số được lưu trữ trên LaunchState

Tên trường trong struct Rust khớp với các trường PoolState được mô tả trong accounts; các đơn vị trên là khái niệm.

Đường cong constant-product với virtual reserves (curve_type = 0)

Đường cong mặc định và được sử dụng nhiều nhất. Tất cả các lần phát hành kiểu Pump đều sử dụng hình thức này. Đường cong giả định có một virtual quote reserve V_q và một virtual base reserve V_b từ đầu (được lưu trữ dưới dạng virtual_quotevirtual_base trên PoolState), vì vậy pool hiệu quả trông giống như một CPMM với những reserve đó. Các lần mua tuân theo toán học x · y = k:
giải cho base_out:
Giá hiệu quả tại base-sold s:
Bất biến x · y = k tương tự mà LaunchLab áp dụng trước tốt nghiệp sau đó là đường cong CPMM sau tốt nghiệp, vì vậy việc chuyển giao là liền mạch về mặt cơ học: giá biên tại base_sold = base_supply_graduation bằng giá mà pool sau tốt nghiệp mở ra với (quote_vault, base_vault_remaining) làm reserve của nó.

Đường cong fixed-price (curve_type = 1)

Một đường cong giá phẳng. Mỗi lần mua/bán xảy ra ở một giá không đổi, có thể cấu hình tại Initialize:
Hữu ích cho các lần phát hành công bằng nơi nhóm muốn định giá thống nhất cho tất cả những người tham gia bất kể khi nào họ mua. Tốt nghiệp được kích hoạt khi base_supply_graduation đã được bán (mối quan hệ chi phí tuyến tính làm cho quote_reserve_target dễ dàng dẫn xuất).

Đường cong linear-price (curve_type = 2)

Giá tăng tuyến tính với base_sold:
Chi phí tích phân:
Bậc hai trong base_sold — những người mua sớm trả gần như không, những người mua muộn trả nhiều hơn đáng kể, với giá biên luôn tăng với một độ dốc cố định. Việc triển khai on-chain nằm trong curve/linear_price.rs.

So sánh hình dạng đường cong

Ngưỡng tốt nghiệp

quote_reserve_target được tính toán tại Initialize là quote cần thiết để đẩy base_sold từ 0 đến base_supply_graduation:
Một lần phát hành tốt nghiệp ngay khi quote_vault.balance ≥ quote_reserve_target. Vì các lần mua đến ở các kích thước rời rạc, số dư thực tế tại tốt nghiệp có thể vượt quá mục tiêu một chút — phần dư trở thành thankhoản quote bổ sung trong pool CPMM kết quả.

Ví dụ chi tiết — một lần phát hành bậc hai

Tham số:
  • base_supply_max = 1_000_000_000 (1 tỷ token base, 6 decimals)
  • base_supply_graduation = 800_000_000 (80% được bán kích hoạt tốt nghiệp)
  • k = 40 (thang giá)
  • Phí: 1% mua, 1% bán, chia lp:creator:protocol = 60:20:20.
Giá ban đầu (s = 0): 0 (bậc hai thuần túy bắt đầu từ không). Giá tại 50% được bán (s = 500_000_000):
Giá tại tốt nghiệp (s = 800_000_000):
Quote cần thiết để đạt tốt nghiệp (chi phí tích phân):
Vì vậy ≈ 6.827 đơn vị quote gốc (trong bất kỳ mint quote 6-decimal nào được cấu hình, ví dụ ~6,827 USDC nếu quote là USDC). Phí được áp dụng trên cùng:
Lần mua đầu tiên của 10 USDC:
  • Trạng thái virtual: s = 0, quote_vault = 0.
  • Trừ phí: quote_after_fee = 10 × 0.99 = 9.9.
  • Giải (40 / (3e18)) × s³ = 9.9s ≈ 6.22e6 token base được mua.
  • Phí 1% (0.1 USDC) chia: lp 0.06, creator 0.02, protocol 0.02. Phần lp ở lại trong quote_vault; hai phần kia định tuyến đến các bộ đếm tích lũy tương ứng của chúng.
Mua tại 75% được bán (tiếp cận tốt nghiệp): Cùng 10 USDC mua ít base hơn nhiều bây giờ vì đường cong dốc. Một giải Newton tại s₀ = 750e6 với quote_in_after_fee = 9.9 cho khoảng ∆s ≈ 0.4e6 — giảm ~15× trong base trên mỗi USDC so với lần mua đầu tiên.

Cơ chế phí trong giai đoạn đường cong

Trên mỗi Buy:
  • lp_share được để lại trong quote_vault. Đây là điều làm cho đường cong hiệu quả chặt hơn (nhiều quote reserve hơn so với cùng một cung base).
  • protocol_share tăng LaunchState.state_data.protocol_fees_quote.
  • creator_share tăng LaunchState.state_data.creator_fees_quote.
Trên Sell cùng một chia tách áp dụng nhưng phí được lấy từ quote_out gửi đi. Cả hai bộ đếm được quét qua CollectFees (admin hoặc creator, mỗi cái đến bộ đếm của chính nó).

Độ chính xác

  • Số lượng phía base: u64.
  • Số lượng phía quote: u64.
  • Các khối / tích trung gian: u128.
  • Các giải Newton cho “mua quote chính xác” và “bán quote chính xác” lặp lại trong u128 fixed-point với số lần lặp tối đa có thể cấu hình (mặc định 10). Chế độ lỗi là NotConverged — hiếm gặp ngoài các trường hợp cạnh gần tốt nghiệp.

Chuyển giao đến CPMM

Khi Graduate kích hoạt:
Đối với đường cong bậc hai, cpmm_initial_priceprice(base_sold) về mặt cơ học (nó là giá đường cong biên tại thời điểm chuyển giao). Pool CPMM mở ra ở chính xác giá đó, vì vậy một người quan sát chuyển từ UI đường cong sang UI CPMM không thấy bất kỳ bước nhảy nào.

Tiếp theo đi đâu

Nguồn: