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 →
Trang này ghi chép đồ thị tài khoản mỗi lần phát hành: PoolState (tài khoản trạng thái gốc cho một lần phát hành), hai vault của nó, PDA quyền hạn, và các tham chiếu sau khi tốt nghiệp mà nó nhận được khi lần phát hành kết thúc.Để xem cấu hình cấp giao thức ràng buộc mọi lần phát hành, xem products/launchlab/global-config. Để xem lớp phủ mỗi nền tảng, xem products/launchlab/platform-config. Để xem tài khoản vesting (VestingSchedule trên PoolState, VestingRecord mỗi người hưởng lợi), xem products/launchlab/vesting.

Danh sách tài khoản

SDK của raydium.launchpad.getLaunchById trả về PoolState cộng với cờ cho biết lần phát hành đã tốt nghiệp hay chưa; nếu có, ID pool sau khi di chuyển được bao gồm.

PoolState

Trạng thái gốc mỗi lần phát hành. Tên trường dưới đây khớp với struct Rust trên chuỗi (states/pool.rs); một số giá trị được đơn giản hóa để dễ đọc — tham khảo nguồn để biết bố cục bộ nhớ chính xác.
Giá trị PoolStatus (từ Anchor IDL):
Các trường hướng đến người tích hợp:
  • status — ba giá trị, đơn điệu (Funding → Migrate → Migrated). Đọc luôn an toàn; ghi bị gated.
  • real_base, real_quote — trạng thái đường cong hiện tại. Kết hợp với virtual_base / virtual_quote chúng đủ để tính giá spot mà không cần chạm vào vault. Xem bonding-curve.
  • total_base_sell so với real_base — tỷ lệ “tiến độ hướng tới tốt nghiệp” cho UI.
  • migrate_type — khởi tạo mới yêu cầu 1 (CPSWAP). Một 0 được lưu trữ vẫn có ý nghĩa chỉ cho một lần phát hành hiện có được tạo trước khi thực thi chỉ CPMM.
  • amm_creator_fee_on — chọn creator_fee_on = OnlyQuoteToken (0) hoặc BothToken (1) trên pool CPMM sau khi tốt nghiệp. Nó không chọn mục tiêu di chuyển. Xem creator-fees.
  • token_program_flag — một trường bit, không phải boolean. Bit0 là mint cơ sở và bit1 là mint trích dẫn, mỗi 0 cho SPL Token và 1 cho Token-2022, vì vậy byte nhận bốn giá trị: 0 (cả hai cũ), 1 (Token-2022 cơ sở), 2 (Token-2022 trích dẫn), 3 (cả hai Token-2022). Đọc một mint với (token_program_flag >> bit) & 1. So sánh toàn bộ byte với 0 để phân loại mint cơ sở giải quyết 2 thành chương trình sai. Bit1 là hằng số 0 cho đến khi mint trích dẫn Token-2022 được hỗ trợ.
  • quote_protocol_fee / platform_fee / migrate_fee — ba bộ đếm phí độc lập. Mỗi cái có hướng dẫn yêu cầu riêng của nó; xem instructions.
  • vesting_schedule — hiện diện trên mọi PoolState nhưng không hoạt động khi total_locked_amount == 0. Xem vesting để biết vòng đời đầy đủ.

PDA quyền hạn

LaunchLab sử dụng một PDA quyền hạn duy nhất trên tất cả các lần phát hành, được lấy mà không có seed mỗi lần phát hành:
PDA duy nhất đó là:
  • Quyền hạn trên base_vaultquote_vault của mỗi lần phát hành.
  • mint_authority trên base_mint của mỗi lần phát hành (trước tốt nghiệp).
  • Người ký trên CPI tốt nghiệp CPMM, và trên tốt nghiệp AMM v4 cũ cho trạng thái hiện có.
  • Người ký trên chuyển ClaimVestedToken ra khỏi vault cơ sở.
  • transfer_fee_config_authority trên TransferFeeConfig của mint cơ sở Token-2022, cho toàn bộ giai đoạn trước tốt nghiệp — và withdraw_withheld_authority của nó cũng vậy, nhưng chỉ khi nền tảng để PlatformConfig.transfer_fee_extension_auth không được đặt.
mint_authority bị thu hồi ngay sau lệnh gọi MigrateToCpswap hoặc MigrateToAmm cũ, vì vậy cung cấp được cố định vĩnh viễn. Hai PDA bổ sung gated các vault phí:
Những cái này ký chuyển ra khỏi vault phí tương ứng trong ClaimCreatorFeeClaimPlatformFeeFromVault.

Mint cơ sở

Được tạo nội tuyến bởi Initialize với:
  • mint_authority = authority (thu hồi khi tốt nghiệp).
  • freeze_authority = None.
  • supply = supply, hoàn toàn được mint vào base_vault.
  • decimals được chọn bởi người tạo tại Initialize (thường là 6).
Vì toàn bộ cung cấp được mint trước, base_mint.supply là hằng số trong suốt vòng đời của lần phát hành. Các lần mua đường cong di chuyển token từ base_vault đến người mua, nhưng không gọi mint_to. Initialize / InitializeV2 tạo mint cơ sở SPL Token. Hướng dẫn InitializeWithToken2022 chuyên dụng cho phép mint cơ sở là mint Token-2022 (với TransferFeeConfig tùy chọn). Cả ba đường dẫn khởi tạo đều yêu cầu tốt nghiệp CPMM. Khi InitializeWithToken2022 đính kèm TransferFeeConfig, mint được tạo với transfer_fee_config_authority = authoritywithdraw_withheld_authority = PlatformConfig.transfer_fee_extension_auth, quay lại authority khi nền tảng chưa đặt trường đó. Cả hai quyền hạn được gán lại cho khóa nền tảng khi tốt nghiệp, phía rút chỉ nếu PDA vẫn giữ nó. Xem platform-config. Mint trích dẫn độc lập với mint cơ sở và có thể tự nó là mint Token-2022 — InitializeV2InitializeWithToken2022 chấp nhận chương trình nào trong khe chương trình trích dẫn của chúng. Initialize không dùng nữa: tài khoản chương trình trích dẫn của nó vẫn được gõ thành SPL Token, vì vậy cấu hình có mint trích dẫn Token-2022 chỉ có thể được phát hành thông qua hai cái kia. Mint trích dẫn không bao giờ được tạo bởi LaunchLab; nó là bất kỳ GlobalConfig.quote_mint nào được đặt tên. Xem global-configreference/token-2022-support.

Vault

Cả base_vaultquote_vault đều là tài khoản token được sở hữu bởi PDA authority LaunchLab, mỗi cái được tạo trên chương trình sở hữu mint của nó — vì vậy một lần phát hành có thể có vault cơ sở cũ và vault trích dẫn Token-2022, hoặc bất kỳ kết hợp nào khác. token_program_flag ghi lại cái nào là cái nào. Địa chỉ được lưu trữ trên PoolState và cũng có thể được lấy:
(Xác minh tiền tố seed chính xác từ struct tài khoản Initialize của nguồn trước khi dựa vào một lần lấy trong sản xuất.)

Vault phí

Hai PDA tổng hợp phí trên các lần phát hành:
  • Vault phí người tạo — PDA tại seed [creator, quote_mint]. Mỗi lần phát hành kiếm được phí người tạo giống nhau trên mint trích dẫn giống nhau đổ vào vault giống nhau. Người tạo quét nó qua ClaimCreatorFee.
  • Vault phí nền tảng — PDA tại seed [platform_config, quote_mint]. Mỗi lần phát hành được định tuyến qua nền tảng giống nhau sử dụng mint trích dẫn giống nhau đổ vào vault giống nhau. platform_fee_wallet của nền tảng quét nó qua ClaimPlatformFeeFromVault. Cũng có một biến thể quét mỗi lần phát hành (ClaimPlatformFee) kéo từ quote_vault của lần phát hành trực tiếp mà không đi qua vault tổng hợp.
Cả hai được tạo lười biếng trên lần swap đầu tiên tích lũy phí, trên chương trình nào sở hữu mint trích dẫn. Một người tạo hoặc nền tảng chạy các lần phát hành chống lại cả mint trích dẫn cũ và Token-2022 kết thúc với một vault cho mỗi mint, như nó đã làm cho hai mint cũ khác nhau. Mô hình vault tổng hợp là những gì cho phép một người tạo hoặc nền tảng khối lượng cao phân bổ chi phí thuê của tích lũy phí trên nhiều lần phát hành.

Quote vault ↔ real_quote

quote_vault.balancePoolState.real_quote nên ở trong đồng bộ. Chúng có thể trôi dạt tối đa tổng của ba bộ đếm phí đang chờ xử lý (quote_protocol_fee, platform_fee, migrate_fee), nằm trong vault nhưng thuộc về bộ đếm phí chứ không phải dự trữ đường cong. Toán học đường cong luôn sử dụng real_quote, không bao giờ là số dư vault thô. Bất biến trước tốt nghiệp:

PlatformCurveRule

Một tài khoản cho mỗi cặp (PlatformConfig, GlobalConfig), giữ các hình dạng phát hành mà nền tảng cho phép trên cấu hình đó. Seed PDA là [b"platform_curve_rule", platform_config, global_config].
Tài khoản được tạo không giữ nhóm và được thay đổi kích thước trên mỗi thay đổi nhóm, vì vậy độ dài của nó là 150 + Σ(14 + 18 × constraints) và bộ giải mã không được giả định kích thước cố định. Các nhóm được OR: một lần phát hành được phép ngay khi các ràng buộc của một nhóm đều giữ. Không có nhóm nào có nghĩa là không có hạn chế. Chỉ đọc nó khi PlatformConfig.restrict_curve_param sở hữu là 1 — tại 0 chương trình bỏ qua tài khoản, và một quy tắc cũ có thể đang nằm ở đó. ID trường, toán tử, và sách hướng dẫn nằm trong products/launchlab/curve-rules.

Chuyển đổi tài khoản vòng đời

Tiếp theo đi đâu

Nguồn:
  • raydium-launch/programs/launchpad/src/states/pool.rsPoolState, PoolStatus, VestingSchedule, AmmCreatorFeeOn.
  • raydium-launch/programs/launchpad/src/lib.rs — hằng số seed PDA (AUTH_SEED, CREATOR_FEE_VAULT_AUTH_SEED, PLATFORM_FEE_VAULT_AUTH_SEED).
  • Mô-đun launchpad SDK Raydium v2.