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, InitializeV2 và InitializeWithToken2022 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, ClaimPlatformFee và ClaimPlatformFeeFromVault — 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ố
Đ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.
base_mintcósupply = base_supply_max, tất cả trongbase_vault.base_mint.mint_authority = launch_authority,freeze_authority = None.LaunchStateđược khởi tạo vớistatus = 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
InitializeWithToken2022vớiTransferFeeConfigđược đính kèm:transfer_fee_config_authority = launch_authorityvàwithdraw_withheld_authority = PlatformConfig.transfer_fee_extension_authkhi 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. Xemplatform-config.
InvalidQuoteMint, 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ố
Điều kiện trước
launch_state.status == Active.now ≥ open_time.user_quote_ata.balance ≥ quote_in.quote_in > 0.
- Chia
quote_inthànhquote_in_after_feevà các phần phí. - Newton-giải đường cong cho
base_outđược cấp post-fee quote. require(base_out ≥ minimum_base_out)nếu không hoàn nguyênExceededSlippage.- Di chuyển
quote_inngười dùng → kho. Di chuyểnbase_outkho → người dùng. - Cập nhật
base_sold += base_out,quote_reserve_real += quote_in_after_fee × (lp_share / total_share). - Cập nhật bộ đếm phí (
protocol_fees_quote,creator_fees_quote). state_data.num_buys += 1.- Nếu
quote_reserve_real ≥ quote_reserve_targetsau khi cập nhật, SDK thường xuyên chuỗi lệnhGraduatetrong cùng một giao dịch. Chương trình không tự động tốt nghiệp bên trongBuy— mộtGraduatetiế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ố
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_solddướ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.
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 mangTransferFeeConfig, 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_inhoặc lợi nhuận không có phí làmminimum_amount_outhoàn nguyên vớiExceededSlippage. real_quotechỉ tiến lên bởi những gì đến kho. MộtBuyExactIncủaamount_intrên mint quote 5% di chuyểnreal_quotebởiamount_in × 0.95.
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ý
MigrateToAmm—migrate_to_amm_walletđược ghi lại trênGlobalConfigliên kết.MigrateToCpswap—migrate_to_cpswap_walletđược ghi lại trênGlobalConfigliên kết.
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)
- Xác minh
pool_state.status == Migrate(tức làquote_reserve_targetđã được đạt). Nếu không hoàn nguyên vớiPoolMigrated(trạng thái đã làMigrated) hoặcPoolFunding(vẫn đang tài trợ). - Xác minh
pool_state.migrate_typekhớp với lệnh (0cho AMM,1cho CPMM). Nếu không hoàn nguyên vớiMigrateTypeNotMatch. - Tính toán dự trữ sau tốt nghiệp:
base_amount_out = base_vault.amount − vesting_schedule.total_locked_amountquote_amount_out = quote_vault.amount − quote_protocol_fee − migrate_fee − platform_fee
- CPI vào chương trình đích (
AMM v4 Initialize2hoặcCPMM InitializeWithPermission) với những dự trữ đó để tạo pool sau tốt nghiệp. - Đố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_scalethà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 choplatform_nft_wallet. Đốt phần còn lạiburn_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 đó. - Thu hồi
base_mint.mint_authority(đặt thànhNone). - Lật
pool_state.status = Migrated, đặtvesting_schedule.start_time = block_time + cliff_period.
TransferFeeConfig và 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_authorityluôn được tái chỉ định. PDAauthoritykhở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 PDAauthorityvẫn giữ nó. Các khởi chạy được tạo từ 2026-08-27 trở đi đã mangtransfer_fee_extension_authtrê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ữ.
transfer_fee_extension_auth là Pubkey::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 sau — BuyExactIn, 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ến — PoolFunding, 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ựngMigrateToCpswap 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ỳGlobalConfignào hợp lệ; không cần tài khoản cho phép.1:Initialize,InitializeV2vàInitializeWithToken2022phải bao gồmPlatformAllowConfigkhớp ở bất kỳ đâu trongremaining_accounts.
CreatePlatformAllowConfig và ClosePlatformAllowConfig. 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ảnPlatformCurveRule. 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].
Createphâ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ì.Updateupserts nhóm vớigroup_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ấtTotalSellAtrên cấu hình không phải sản phẩm hằng số trả vềCurveRuleFieldNotSupportedByCurve.Removethả 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.Closetrả 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ả khirestrict_curve_paramvẫn ở1.
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_param là 1, InitializeV2 và InitializeWithToken2022 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:CreateVestingAccount,CreatePlatformVestingAccount,ClaimVestedTokenCreatePlatformConfig,UpdatePlatformConfig,CreatePlatformAllowConfig,ClosePlatformAllowConfigCreatePlatformCurveRule,UpdatePlatformCurveRule,RemovePlatformCurveRule,ClosePlatformCurveRuleCreateConfig,UpdateConfig
Ma trận thay đổi trạng thái
Nơi đi tiếp theo
products/launchlab/code-demos— Ví dụ TypeScript cho mỗi lệnh.products/launchlab/accounts— hình dạng trạng thái đầy đủ.reference/error-codes— enum lỗi LaunchLab.
- Mô-đun Raydium SDK v2
LaunchLab - Nguồn chương trình Raydium LaunchLab

