本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
版本資訊。
- SDK:
@raydium-io/raydium-sdk-v2@0.2.64-alpha - 叢集:Solana
mainnet-beta - 程式 ID:見
reference/program-addresses - 最後驗證:2026-09-09 針對 SDK
0.2.64-alpha原始碼、raydium-sdk-V2-demo/src/launchpad及raydium-launch程式原始碼
package.json 中固定 SDK 版本。結合曲線介面在次要版本之間已演變。設定
此處的示例鏡像raydium-sdk-V2-demo/src/launchpad 中的檔案。啟動程序遵循示例儲存庫的 config.ts.template:
建立發行
來源:src/launchpad/createMint.ts(以及 createBonkMintApi.ts 用於 API 驅動的 Bonk 變體)
發行的大部分經濟學參數不是引數——它們來自你透過 configId 綁定的 GlobalConfig,SDK 從 API 的預設參數填充其餘部分。你傳遞代幣的身份、要綁定的設定,以及(可選)首次購買:
- 沒有
curveType、graduationFractionBps、initialK、quoteMint、openTime、fees或postGraduationLpPolicy引數。曲線形狀和報價代幣是你綁定的GlobalConfig的屬性;費率存在於GlobalConfig和PlatformConfig上;畢業時的 LP 處置是PlatformConfig設定。見products/launchlab/instructions了解InitializeV2確切接受的內容。 - 超過 10 個字元的
symbol和空的uri都在任何 RPC 之前被客戶端拒絕。 - 傳遞
transferFeeExtensionParams將建構器切換到InitializeWithToken2022並強制migrateType為"cpmm"。 - 建構器返回一個
transactions陣列;createOnly: false新增首次購買交易。始終execute({ sequentially: true })——代幣必須在購買到達之前存在。
取得發行狀態
來源:src/launchpad/poolInfo.ts
沒有 getLaunchById。池 ID 是 (programId, mintA, mintB) 的 PDA,getRpcPoolInfo 返回解碼的 PoolState 及其綁定的 configInfo:
getRpcPoolsInfo({ poolIdList }) 是批量形式,返回由池 ID 鍵入的 poolInfoMap ——用於投資組合檢視而不是迴圈。如果你想自己解碼原始帳戶,LaunchpadPool.decode 和 LaunchpadConfig.decode 已匯出。
購買——精確報價輸入
來源:src/launchpad/buy.ts
離線報價幫助程式是 Curve.buyExactIn,是匯出的 Curve 類上的靜態方法——不是 raydium.launchpad 上的方法。交易建構器是 buyToken。兩者都需要平台的費率,這些費率存在於單獨的 PlatformConfig 帳戶上:
minMintAAmount 而不是 slippage;省略兩者,SDK 從即時 RPC 資料計算界限。shareFeeRate 不得超過 poolInfo.configInfo.maxShareFeeRate,且僅在你也傳遞 shareFeeReceiver 時適用。
購買——精確基礎輸出
建構器是buyTokenExactOut,金額引數是 outAmount(你想要的基礎)和 maxBuyAmount(你最多花費的報價)。Curve.buyExactOut({ poolInfo, amountA, ... }) 是匹配的離線預覽。
outAmount,如果曲線移動足夠使報價要求超過 maxBuyAmount,程式會還原。
銷售
來源:src/launchpad/sell.ts
建構器是 sellToken(精確報價輸出變體為 sellTokenExactOut),帶有 sellAmount 和可選的 minAmountB。Curve.sellExactIn({ poolInfo, amountA, ... }) 預覽它。
real_a 減少 sellAmount 返回 quote_out 等於曲線下在 real_a − sellAmount 和 real_a 之間的積分面積,減去銷售費用。sellAmount 必須大於零——建構器在任何 RPC 之前在客戶端拒絕零。
畢業
這些錢包由 Raydium 的畢業 crank 操作,所以實際上無論誰進行最後購買,遷移都會在閾值被超越後的幾秒內進行。從整合者的角度來看,唯一要做的是將狀態轉換視為快速事件:輪詢getRpcPoolInfo(或透過 gRPC 訂閱,見下文)並在 status 變更時將你的 UI 從曲線切換到結果 CPMM 池。
見 products/launchlab/instructions 了解帳戶列表、遷移費用以及畢業時 LP 如何分割。
收取創作者費用
來源:src/launchpad/claimCreatorFee.ts(單一代幣)和 collectAllCreatorFees.ts(批量)
方法是 claimCreatorFee(批量形式為 claimMultipleCreatorFee)。它由報價代幣鍵入,而不是由發行鍵入——一次呼叫會掃除簽署者在該代幣中跨其發行的累積創作者費用:
claimPlatformFee / claimAllPlatformFee / claimVaultPlatformFee 建構器。
透過其生命週期追蹤發行
綜合起來,監控指令碼可能看起來像:getRpcPoolInfo 對單一發行來說很好。對於索引器,改用下面的 gRPC 訂閱——getRpcPoolsInfo({ poolIdList }) 批量,但輪詢數百個池仍然會為無益處而燃燒 RPC 信用。
透過 gRPC 監視設定和池
來源:src/grpc/launchpadPoolInfo.ts
透過 Yellowstone gRPC 訂閱 LaunchLab 程式,並記錄每個 GlobalConfig 和 PoolState 更新及每個代幣的代幣程式。一個 accounts 訂閱上的兩個 datasize 篩選器分離兩種帳戶類型,所以單一流涵蓋兩者。
示例是分類發行代幣的最短正確參考,Token-2022 報價代幣發行使其成為必要:
- 池直接從
PoolState.token_program_flag分類,解碼位 0 用於基礎代幣,位 1 用於報價代幣,完全不進行代幣提取。測試整個位元組對0——在報價代幣僅為舊版時足夠——當報價代幣為 Token-2022 時誤讀舊版基礎代幣。 - 設定不能以這種方式分類:
GlobalConfig儲存其報價代幣的地址且沒有程式標誌,所以示例讀取代幣帳戶的擁有者一次並按代幣快取它。
create 對 update 是從示例自己的快取推斷的,在啟動時從 getProgramAccounts 播種;禁用該播種後,讀取「create」為「首次在此流上看到」。
gRPC 存取不是公共 RPC 表面的一部分——見示例儲存庫的 src/grpc/README.md。
Rust CPI
從你自己的 Anchor 程式呼叫 LaunchLab 很少見(大多數發行整合僅為 TS 端)。如果你這樣做:- 箱子是
raydium-launchpad(lib 名稱raydium_launchpad),版本0.2.0,它確實公開了cpi功能。沒有raydium_launchlab。 - 它未在 crates.io 上發佈——透過 git 修訂依賴它,與其他 Raydium 程式箱子相同的方式。
- CPI 進入點以鏈上指令命名,而不是以 SDK 的 TypeScript 方法命名:
buy_exact_in、buy_exact_out、sell_exact_in、sell_exact_out、claim_creator_fee、create_vesting_account、claim_vested_token。migrate_to_amm/migrate_to_cpswap對GlobalConfig遷移錢包的簽署者進行門控,不可從整合者程式呼叫。
sdk-api/rust-cpi 了解箱子固定規則——特別是 Anchor 版本分割,它決定一個箱子是否可以 CPI 進入 LaunchLab 和 CLMM。
陷阱
- 混淆鏈上指令名稱與 SDK 方法名稱。 程式有
buy_exact_in/sell_exact_in;SDK 有buyToken/sellToken。buyExactIn和sellExactIn僅作為Curve上的靜態方法存在,它們計算報價——它們不建構交易。 - 忘記
extraSigners。createLaunchpad從你生成的金鑰對建立基礎代幣,所以該金鑰對必須簽署。省略extraSigners: [pair]交易失敗簽名驗證。 - 不選擇報價代幣。 你不傳遞一個。報價代幣是你透過
configId綁定的GlobalConfig的屬性——getPdaLaunchpadConfigId(programId, quoteMint, curveType, index)。要針對不同的報價代幣發行,綁定不同的設定;raydium.api.fetchLaunchConfigs()列出可用的及其預設參數。 - 元資料大小。 長
uri字串將 Metaplex CPI 推過預算。保持uri在 ~200 個字元以下——大多數 CDN 託管的 JSON 元資料輕鬆適配。symbol硬上限為 10 個字元。 - 將畢業視為你可以進入的競賽。 它不是——見上面的警告。你的 UI 仍應將
status轉換視為快速事件,因為 Raydium 的 crank 在閾值被超越後的幾秒內進行遷移。
接下來去哪裡
products/launchlab/bonding-curve——曲線數學。products/cpmm/code-demos——對結果池做什麼。user-flows/launch-token-launchlab——端到端發行代幣指南,包括離線步驟。
- Raydium SDK v2
- Raydium LaunchLab 程式原始碼

