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 cung cấp một bộ lệnh chặt chẽ: sáu lệnh dành cho người dùng cộng với một số lệnh nguyên thủy dành cho quản trị viên. SDK bao bọc tất cả chúng; trang này ghi lại bề mặt thô cho các tổng hợp, công cụ giám sát và các chương trình cần CPI.

Danh sách lệnh

Phân chia “ExactIn/ExactOut” phản ánh SwapBaseInput / SwapBaseOutput của CPMM — trên chuỗi chúng là các bộ phân biệt lệnh riêng biệt với làm tròn hơi khác nhau. Lựa chọn đường dẫn tốt nghiệp. Mọi lệnh Initialize, InitializeV2InitializeWithToken2022 mới phải đặt migrate_type = 1 (CPSWAP). Bất kỳ nỗ lực nào để khởi tạo một pool mới được liên kết với AMM v4 sẽ trả về MigrateTypeNotMatch. amm_creator_fee_on chỉ chọn xem phí người tạo CPMM kết quả có áp dụng cho token quote hay cả hai token; nó không chọn chương trình đích. MigrateToAmm vẫn có thể gọi được cho một PoolState hiện có được khởi tạo với migrate_type = 0 trước hạn chế này. Bản phát hành không viết lại trạng thái pool hiện có hoặc xóa lệnh kế thừa. Chương trình token phía quote. Mint quote có thể được sở hữu bởi chương trình SPL Token hoặc Token-2022. Mọi lệnh chạm vào nó — CreateConfig, InitializeV2, InitializeWithToken2022, cả bốn lệnh giao dịch, CollectFee, CollectMigrateFee, ClaimCreatorFee, ClaimPlatformFeeClaimPlatformFeeFromVault — lấy chương trình sở hữu trong vị trí tài khoản chương trình quote của nó. Vị trí tài khoản không thay đổi; chỉ giá trị được chấp nhận thay đổi. Chuyển chương trình thực sự sở hữu GlobalConfig.quote_mint, mà bạn có thể đọc từ bit1 PoolState.token_program_flag cho một khởi chạy hiện có (xem accounts) hoặc từ chủ sở hữu tài khoản mint nếu không. Initialize không dùng nữa là ngoại lệ: tài khoản chương trình quote của nó vẫn được gõ thành SPL Token, vì vậy một cấu hình có mint quote là Token-2022 phải được khởi chạy thông qua InitializeV2 hoặc InitializeWithToken2022. MigrateToCpswap là ngoại lệ khác, theo hướng ngược lại — nó lấy cả hai chương trình vô điều kiện thay vì một cho mỗi mint. Xem các tài khoản di chuyển bên dưới.

Initialize

Tạo một khởi chạy mới. Đối số
Tài khoản (tóm tắt) Điều kiện trước
  • quote_mint ∈ launch_config.allowed_quote_mints.
  • base_supply_graduation ≤ base_supply_max.
  • Các tham số phí vượt qua kiểm tra launch_config.max_*_fee_rate.
  • open_time ≥ now − slop (SDK thực thi ≥ now; chương trình dung thứ cho việc đặt ngày lùi lại nhẹ).
  • curve_type được công nhận.
Điều kiện sau
  • base_mintsupply = base_supply_max, tất cả trong base_vault.
  • base_mint.mint_authority = launch_authority, freeze_authority = None.
  • LaunchState được khởi tạo với status = Active, base_sold = 0, quote_reserve_real = 0.
  • quote_reserve_target được tính từ các tham số đường cong + base_supply_graduation + buy_numerator (xấp xỉ).
  • Đối với InitializeWithToken2022 với TransferFeeConfig được đính kèm: transfer_fee_config_authority = launch_authoritywithdraw_withheld_authority = PlatformConfig.transfer_fee_extension_auth khi trường đó được đặt, nếu không thì launch_authority. Phía rút được viết tại tạo mint chính xác để nền tảng có thể quét phí bị giữ lại trước khi tốt nghiệp. Xem platform-config.
Lỗi phổ biếnInvalidQuoteMint, FeeRateTooHigh, InvalidCurveParams, MathOverflow.

Buy (biến thể chính tắc: BuyExactIn)

Người dùng cung cấp một quote_in cố định; đường cong tính toán base_out. Đối số
Tài khoản Điều kiện trước
  • launch_state.status == Active.
  • now ≥ open_time.
  • user_quote_ata.balance ≥ quote_in.
  • quote_in > 0.
Hiệu ứng
  1. Chia quote_in thành quote_in_after_fee và các phần phí.
  2. Newton-giải đường cong cho base_out được cấp post-fee quote.
  3. require(base_out ≥ minimum_base_out) nếu không hoàn nguyên ExceededSlippage.
  4. Di chuyển quote_in người dùng → kho. Di chuyển base_out kho → người dùng.
  5. Cập nhật base_sold += base_out, quote_reserve_real += quote_in_after_fee × (lp_share / total_share).
  6. Cập nhật bộ đếm phí (protocol_fees_quote, creator_fees_quote).
  7. state_data.num_buys += 1.
  8. Nếu quote_reserve_real ≥ quote_reserve_target sau khi cập nhật, SDK thường xuyên chuỗi lệnh Graduate trong cùng một giao dịch. Chương trình không tự động tốt nghiệp bên trong Buy — một Graduate tiếp theo là bắt buộc.

BuyExactOut

Người dùng chỉ định base_out chính xác; chương trình tính toán quote_in. Đối số
Các tài khoản giống như BuyExactIn. Sử dụng tích phân bậc hai dạng đóng (hoặc CPMM nghịch đảo, cho curve_type 1) thay vì lặp lại Newton.

Sell / SellExactIn / SellExactOut

Gương của Buy. Người dùng trả lại base_in cho đường cong và nhận quote_out. Phí được khấu trừ từ quote_out, vì vậy người dùng nhận được ít hơn các khoản tiền tích lũy thô. Điều kiện trước
  • user_base_ata.balance ≥ base_in.
  • Bán không thể đẩy base_sold dưới 0 (dư thừa với điều trên với kế toán nhất quán).
  • Khởi chạy là Active.
Hiệu ứng — đối xứng với Buy. base_sold giảm, quote_reserve_real giảm. Phí vẫn tích lũy.

Phí chuyển phía quote

Khi mint quote mang TransferFeeConfig, số tiền kho di chuyển và số tiền người trả tiền bị ghi nợ hoặc ghi có khác nhau, và giới hạn trượt được kiểm tra so với phía người trả tiền. Trên mint quote không có phần mở rộng, mọi trường hợp dưới đây giống hệt với mint kế thừa đơn giản. Hai hệ quả cho trích dẫn:
  • Một giới hạn được tính toán như thể mint không có phí bị từ chối. Chuyển chi phí không có phí làm maximum_amount_in hoặc lợi nhuận không có phí làm minimum_amount_out hoàn nguyên với ExceededSlippage.
  • real_quote chỉ tiến lên bởi những gì đến kho. Một BuyExactIn của amount_in trên mint quote 5% di chuyển real_quote bởi amount_in × 0.95.
Mint quote 100%-phí (10000 điểm cơ sở) không thể được đảo ngược và hoàn nguyên với CalculateOverflow trên các đường dẫn chính xác. Cả hai mint phía giao dịch cũng bị ràng buộc với chương trình được chuyển trong vị trí khớp của chúng, vì vậy base_token_program không khớp bây giờ thất bại thay vì bị bỏ qua. Xem algorithms/token-2022-transfer-fees để biết toán học phí cơ bản.

MigrateToAmm / MigrateToCpswap

Tốt nghiệp một khởi chạy thành một pool có thể giao dịch được khi đường cong đã chạm total_quote_fund_raising. Các khởi chạy mới chỉ CPMM. MigrateToAmm được giữ lại cho các pool hiện có có migrate_type được lưu trữ là 0. Ai ký
  • MigrateToAmmmigrate_to_amm_wallet được ghi lại trên GlobalConfig liên kết.
  • MigrateToCpswapmigrate_to_cpswap_wallet được ghi lại trên GlobalConfig liên kết.
Những ví này thường được giữ bởi crank tốt nghiệp do Raydium vận hành; trong thực tế tốt nghiệp hạ cánh vài giây sau khi ngưỡng bị vượt qua, bất kể ai kích hoạt lần mua cuối cùng. Đối số MigrateToAmm lấy ba (chủ yếu là các tham số thị trường OpenBook mà chương trình chuyển tiếp đến AMM v4):
MigrateToCpswap không lấy gì. Hiệu ứng (chung cho cả hai)
  1. Xác minh pool_state.status == Migrate (tức là quote_reserve_target đã được đạt). Nếu không hoàn nguyên với PoolMigrated (trạng thái đã là Migrated) hoặc PoolFunding (vẫn đang tài trợ).
  2. Xác minh pool_state.migrate_type khớp với lệnh (0 cho AMM, 1 cho CPMM). Nếu không hoàn nguyên với MigrateTypeNotMatch.
  3. Tính toán dự trữ sau tốt nghiệp:
    • base_amount_out = base_vault.amount − vesting_schedule.total_locked_amount
    • quote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
  4. CPI vào chương trình đích (AMM v4 Initialize2 hoặc CPMM InitializeWithPermission) với những dự trữ đó để tạo pool sau tốt nghiệp.
  5. Đối với các di chuyển CPMM được thực thi sau nâng cấp 2026-08-17, kết hợp platform_scale + creator_scale thành một chia sẻ LP bị khóa do nền tảng sở hữu và mint tối đa một NFT Fee Key cho platform_nft_wallet. Đốt phần còn lại burn_scale. Trước nâng cấp, creator_scale được khóa riêng biệt và Fee Key của nó đã đi đến người tạo token. Các di chuyển lịch sử hoàn thành không được sửa đổi. Đối với tốt nghiệp AMM v4 kế thừa, việc xử lý LP tuân theo luồng hiện có của lệnh đó.
  6. Thu hồi base_mint.mint_authority (đặt thành None).
  7. Lật pool_state.status = Migrated, đặt vesting_schedule.start_time = block_time + cliff_period.
Chuyển giao quyền hạn Token-2022 transfer-fee — khi mint cơ sở là mint Token-2022 mang TransferFeeConfig PlatformConfig.transfer_fee_extension_auth không phải mặc định, di chuyển cũng tái chỉ định các quyền hạn phần mở rộng đó cho khóa nền tảng:
  • transfer_fee_config_authority luôn được tái chỉ định. PDA authority khởi chạy giữ nó cho toàn bộ giai đoạn trước tốt nghiệp, vì vậy luôn có cái gì đó để di chuyển.
  • WithheldWithdraw được tái chỉ định chỉ khi PDA authority vẫn giữ nó. Các khởi chạy được tạo từ 2026-08-27 trở đi đã mang transfer_fee_extension_auth trên quyền hạn đó từ tạo mint, vì vậy bước này bị bỏ qua. Bảo vệ là những gì ngăn di chuyển khỏi hoàn nguyên trên những mint đó — PDA không thể ký bỏ quyền hạn nó không còn giữ.
Nếu transfer_fee_extension_authPubkey::default() tại thời điểm di chuyển, không có quyền hạn nào di chuyển và cả hai vẫn ở với PDA authority vĩnh viễn. Xem platform-config. Điều kiện sauBuyExactIn, BuyExactOut, SellExactIn, SellExactOut sẽ từ chối từ điểm này trở đi với PoolMigrated. Pool AMM kết quả là chính tắc và giao dịch như bất kỳ pool AMM v4 / CPMM nào khác. Lỗi phổ biếnPoolFunding, PoolMigrated, MigrateTypeNotMatch, InvalidCpSwapConfig, MathOverflow.

Các tài khoản còn lại di chuyển CPMM

Các máy khách xây dựng MigrateToCpswap phải sử dụng các chỉ số remaining_accounts cố định này: Lệnh yêu cầu ít nhất mười tài khoản còn lại trên đường dẫn được nâng cấp. Các tài khoản support-mint là đầu vào CPI chỉ đọc. Lấy cả hai địa chỉ ngay cả khi mint không có bản ghi hỗ trợ được khởi tạo. Các trình xây dựng cũ hơn vẫn nối các tài khoản khóa người tạo hoặc bỏ qua chỉ số 8–9 phải được cập nhật.

Chương trình token di chuyển CPMM

MigrateToCpswap lấy cả hai chương trình token vô điều kiện và tự tìm ra chương trình nào sở hữu mỗi mint. Hai tài khoản chương trình token của nó được đổi tên tương ứng: Chúng thay thế base_token_program cũ (chương trình nào sở hữu mint cơ sở) và quote_token_program (luôn kế thừa). Vị trí không thay đổi, vì vậy đây là thay đổi giá trị chứ không phải thay đổi bố cục — nhưng hai giá trị gần như bị đảo ngược, và một trình xây dựng giữ cặp cũ của nó sẽ cung cấp Token-2022 nơi chương trình kế thừa được yêu cầu ngay khi mint nào đó là mint Token-2022. Chương trình kế thừa được yêu cầu ngay cả khi không mint nào sử dụng nó, vì mint LP CPMM và NFT Fee Key thanh khoản bị khóa luôn sống trên nó.

Danh sách cho phép GlobalConfig nền tảng

PlatformConfig.restrict_global_config kiểm soát kiểm tra:
  • 0: nền tảng chấp nhận bất kỳ GlobalConfig nào hợp lệ; không cần tài khoản cho phép.
  • 1: Initialize, InitializeV2InitializeWithToken2022 phải bao gồm PlatformAllowConfig khớp ở bất kỳ đâu trong remaining_accounts.
Quản trị viên nền tảng tạo hoặc đóng PDA với CreatePlatformAllowConfigClosePlatformAllowConfig. Hạt giống của nó là [b"platform_allow_config", platform_config, global_config]. Các lệnh PlatformGlobalAccess do quản trị viên quản lý trước đây và PDA được loại bỏ.

Quy tắc tham số khởi chạy nền tảng

Bốn lệnh quản lý một tài khoản PlatformCurveRule. Cả bốn đều được ký bởi PlatformConfig.curve_rule_manager hoặc quản trị viên nền tảng — chương trình chấp nhận quản trị viên bằng cách lấy lại PDA PlatformConfig từ người ký, vì vậy không có tài khoản riêng biệt chứng minh nó. Người ký không phải là cả hai trả về InvalidCurveRuleAuthority. platform_curve_rule là PDA tại [b"platform_curve_rule", platform_config, global_config].
  • Create phân bổ tài khoản không giữ nhóm. Trạng thái đó không hạn chế bất cứ điều gì.
  • Update upserts nhóm với group_id đó, thay thế nó hoàn toàn nếu nó tồn tại. Nó thay đổi kích thước tài khoản để phù hợp, vì vậy người ký bổ sung tiền thuê nó phát triển bởi và nhận lại tiền thuê nó co lại bởi. Một nhóm mới vượt quá thứ mười trả về CurveRuleGroupsExceeded; hơn 25 ràng buộc, trường không xác định hoặc toán tử, hoặc cặp (field, op) giống nhau hai lần trong một nhóm trả về InvalidCurveRuleConstraint; bốn trường dẫn xuất TotalSellA trên cấu hình không phải sản phẩm hằng số trả về CurveRuleFieldNotSupportedByCurve.
  • Remove thả một nhóm theo id, co lại tài khoản và hoàn lại sự khác biệt. Một id không xác định trả về CurveRuleGroupNotExist.
  • Close trả lại toàn bộ tiền thuê cho người ký. Cấu hình sau đó không bị hạn chế lại ngay cả khi restrict_curve_param vẫn ở 1.
Không có bốn cái nào thay đổi xem quy tắc có được thực thi hay không. Đó là UpdatePlatformConfig::RestrictCurveParam(0 | 1), chỉ quản trị viên nền tảng mới có thể gọi. Trên đường dẫn khởi chạy. Trong khi restrict_curve_param1, InitializeV2InitializeWithToken2022 yêu cầu PDA quy tắc trong remaining_accounts — bao gồm khi nó không tồn tại, vì vậy bỏ qua nó không thể bỏ qua kiểm tra. Tài khoản bị thiếu là NotEnoughRemainingAccounts; một khởi chạy không thỏa mãn nhóm nào là CurveParamNotMatchPlatformRule. Kiểm tra chạy trước các giới hạn của GlobalConfig riêng của nó và chỉ có thể thu hẹp chúng. Mô hình và sách hướng dẫn: products/launchlab/curve-rules. Cả hai lỗi đều có thể tránh được phía máy khách — SDK phản chiếu kiểm tra này như một hàm thuần túy, xem Kiểm tra trước khi bạn gửi.

CollectFee

Quét quản trị viên của phí giao dịch tích lũy của giao thức trên một khởi chạy duy nhất. Đối số — không có. Tài khoản Hiệu ứng — chuyển pool_state.quote_protocol_fee từ quote_vault đến recipient_token_account, sau đó không bộ đếm. Có thể gọi bất kỳ lúc nào sau lần mua đầu tiên.

CollectMigrateFee

Quét quản trị viên của phí di chuyển tích lũy tại tốt nghiệp. Hình dạng tài khoản giống như CollectFee với migrate_fee_owner làm người ký (thay vì protocol_fee_owner) và pool_state.migrate_fee làm bộ đếm drained.

ClaimCreatorFee

Quét mỗi người tạo của phí người tạo tích lũy trên mọi khởi chạy mà người tạo sở hữu sử dụng cùng một mint quote. Drained kho phí mỗi người tạo, không phải kho mỗi pool. Đối số — không có. Tài khoản Hiệu ứng — chuyển toàn bộ số dư của creator_fee_vault đến recipient_token_account. Hoàn nguyên với kiểm tra yêu cầu lớn hơn không nếu kho trống.

ClaimPlatformFee

Quét mỗi nền tảng drained kho quote khởi chạy trực tiếp. Sử dụng cái này khi nền tảng muốn yêu cầu lát cắt của nó cho một khởi chạy cụ thể mà không đi qua kho nền tảng tổng hợp. Đối số — không có. Tài khoản Hiệu ứng — chuyển pool_state.platform_fee từ quote_vault đến recipient_token_account, không bộ đếm.

ClaimPlatformFeeFromVault

Quét tổng hợp mỗi nền tảng. Drained kho phí mỗi mint quote nền tảng tích lũy phí từ mọi khởi chạy được định tuyến qua nền tảng. Đối số — không có. Tài khoản Hiệu ứng — chuyển toàn bộ số dư của platform_fee_vault đến recipient_token_account. Hoàn nguyên nếu kho trống.

Vesting và các lệnh cấu hình nền tảng

Những cái này được ghi lại trên các trang chuyên dụng vì mỗi cái có mô hình trạng thái riêng:

Ma trận thay đổi trạng thái

Nơi đi tiếp theo

Nguồn: