Skip to main content
本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
本項目涵蓋即將推出的 LaunchLab 程式更新。在部署前已針對本地發佈分支進行驗證。在生產環境中啟用新路徑前,請確認已部署的程式和已發佈的 IDL。
此版本允許啟動項目使用 Token-2022 代幣進行報價。在此之前,報價端被硬連線到舊版 SPL Token 程式,因此只有基礎代幣可以是 Token-2022。現在,每個涉及報價代幣的地方——GlobalConfig 建立、池初始化、四個交換指令、所有費用領取和 CPMM 遷移——都接受任一代幣程式,且交換指令會計算報價代幣的轉帳費用。

整合者快速摘要

  • 報價代幣可以是 Token-2022。 CreateConfig 接受 Token-2022 quote_token_mintInitializeV2 / InitializeWithToken2022 在報價程式槽中接受任一代幣程式。帳戶順序不變——你在該槽中傳遞的值會改變。
  • 已棄用的 Initialize 仍為舊版專用。 其報價程式帳戶仍被型別化為 SPL Token,因此報價代幣為 Token-2022 的設定只能透過 InitializeV2InitializeWithToken2022 啟動。
  • 滑點邊界移至付款人實際支付和接收的金額。 minimum_amount_outmaximum_amount_in 現在與報價代幣轉帳費用淨額進行比較,而不是與金庫移動的金額進行比較。在費用承擔報價代幣上,現有報價邏輯會低估成本並高估收益。
  • PoolState.token_program_flag 位元 1 變得有意義。 當報價代幣為舊版時,它始終為 0。將整個位元組與 0 進行比較的用戶端,只要報價代幣是 Token-2022,就會將舊版基礎代幣讀取為 Token-2022。這是此版本中最可能的無聲中斷。
  • MigrateToCpswap 重新命名其兩個代幣程式帳戶。 base_token_program / quote_token_program 變為 token_program / token_program_2022。兩者始終都是必需的,程式會根據代幣選擇正確的。
  • 代幣/程式對現在已驗證。 兩個交換代幣都獲得了 mint::token_program 約束,ClaimPlatformFee 的報價代幣也是如此,因此不匹配的對會還原而不是被忽略。
  • 新錯誤 6023 CalculateOverflow 代碼 60006022 保持不變。6023 由上一版本空出,現在被重新使用。
  • 費用金庫跟隨報價代幣。 建立者和平台費用金庫,以及分享費用接收者的代幣帳戶,位於擁有報價代幣的任何程式上。

哪些帳戶改變了型別

這些都不會改變其帳戶列表中的位置。只有允許的值會改變。 已棄用的 Initialize(V1 路徑)刻意不在此表中。其報價程式帳戶保持型別化為 SPL Token。 其中幾個也加強了其代幣約束,因此不匹配的代幣/程式對現在會還原,而之前是被接受或未檢查的:
  • 四個交換指令將 base_token_mintquote_token_mint 都約束到在匹配槽中傳遞的程式。之前都沒有該約束,因此錯誤的基礎程式被無聲接受。
  • ClaimPlatformFeequote_mint 上添加相同的約束。
  • ClaimPlatformFeeFromVault 將其約束從代幣帳戶形式更正為代幣帳戶上的代幣形式。

報價端轉帳費用會計

這是改變數字而不是帳戶列表的部分。在沒有 TransferFeeConfig 的報價代幣上,下面的每個公式都會折疊為先前的行為,因此舊版池和無費用 Token-2022 池在位元上完全不變。 兩個值得明確說明的後果:
  • 從等效無費用池計算的邊界不再可接受。使用無費用成本作為 maximum_amount_inBuyExactOut 現在以 ExceededSlippage 還原,SellExactIn 使用無費用收益作為 minimum_amount_out 也是如此。這是預期行為——舊比較讓付款人被扣除轉帳費用,超過他們已同意的邊界。
  • 池簿只記錄進入金庫的內容。在 5% 報價代幣上進行 amount_inBuyExactIn 後,real_quote 前進 amount_in × 0.95,而不是 amount_in
get_transfer_inverse_fee 也放棄了其 100% 費用代幣的特殊情況:它現在在無法計算反向費用時返回新的 CalculateOverflow 錯誤,而不是回退到 maximum_fee。因此 10000 基點的報價代幣會導致精確輸出路徑失敗,而不是無聲地以費用上限進行交易。

token_program_flag 位元 1

PoolState.token_program_flag 是一個位欄位,一直都是:
該欄位、位元位置和寫入兩個位元的代碼都早於此版本。改變的是位元 1 現在實際上可以是 1,因為報價代幣現在可以是 Token-2022 代幣。四個值是: 使用 (token_program_flag >> bit) & 1 讀取每個代幣的程式。任何將位元組視為基礎代幣布林值的用戶端——flag === 0 ? Token : Token-2022——會將值 2 解析為 Token-2022 基礎代幣,並將針對錯誤的程式建立基礎端代幣帳戶和轉帳。沒有帳戶大小或欄位偏移改變,因此索引器不需要儲存遷移,只需要解碼修復。

CPMM 遷移帳戶重新命名

MigrateToCpswap 之前為每個代幣取一個代幣程式,呼叫者決定哪個是哪個。現在它無條件地取兩個程式,並從代幣本身推導映射: 兩個位置保持不變,因此這是值改變,而不是佈局改變——但值幾乎完全反轉,建立者繼續傳遞其舊對將在任一代幣是 Token-2022 代幣時立即傳遞 Token-2022,其中舊版程式是必需的。 舊版程式仍然無條件地必需,無論任一代幣如何,因為 CPMM LP 代幣和鎖定流動性費用密鑰 NFT 始終位於其上。來自 2026-08-17 版本remaining_accounts 佈局保持不變。

報價代幣僅由管理員自由裁量承認

與 CPMM 和 CLMM 不同,LaunchLab 對報價代幣不執行擴展允許清單。CreateConfig 按原樣接受代幣帳戶,因此唯一的門檻是管理員將哪些代幣綁定到 GlobalConfig。程式的 NoSupportExtension 檢查僅適用於 LaunchLab 自己建立的 Token-2022 基礎代幣,其中只允許 MetadataPointerTransferFeeConfig 將 Token-2022 報價代幣綁定視為高信任操作,理由與 reference/token-2022-support 中的 CPMM/CLMM 靜態白名單相同。TransferHookPermanentDelegate 報價代幣將在設定建立時被承認,然後將在每個以其報價的池上執行或能夠掃除。

amm_creator_fee_on 時間戳門檛

InitializeV2 放棄了時間戳門檛,該門檛在升級時間戳之前拒絕任何 amm_creator_fee_on 而不是 BothToken。等效的門檛仍存在於 InitializeWithToken2022 中。實際上,兩條路徑在 mainnet-beta 上今天都接受任一值,因為該時間戳(1755522000,2025-08-18 13:00 UTC)早已過去——這是清理,而不是當前呼叫者的行為改變。

錯誤和 IDL 影響

代碼 60006022 保持不變,包括 6022 InvalidPlatformAllowConfig 上一版本停用了舊的 6023 並將其留空;此版本重新使用該數字。不要使用早期版本的 IDL 解碼 6023 在傳遞 Token-2022 報價程式、解碼 token_program_flag 位元 1 或建立重新命名的 MigrateToCpswap 帳戶列表前,刷新 LaunchLab IDL。

SDK 影響

SDK 的啟動板模組的報價端在與程式相同的地方被硬編碼為 TOKEN_PROGRAM_ID。伴隨此版本的分支改為解析報價代幣的擁有者,將其穿過代幣帳戶建立、分享費用接收者的 ATA 和指令的報價程式槽,並為四個 Curve 方法添加可選的 transferFeeConfigB,以便報價反映上述公式。Curve 結果獲得 transferFeeB 欄位;amountB 保持其含義——付款人花費或賣方接收的內容——因此無費用報價代幣產生與之前相同的數字。 這些 SDK 改變未發佈。本文件集中代碼演示頁面上的規範釘選保持不變;在依賴新參數前檢查已發佈的版本。

參考實現

新演示透過 Yellowstone gRPC 訂閱 LaunchLab 程式,並為每個 GlobalConfigPoolState 更新記錄每個代幣是 Token 還是 Token-2022 代幣: raydium-sdk-V2-demo/src/grpc/launchpadPoolInfo.ts 它是此版本使必要的兩件事的緊湊參考。池直接從 token_program_flag 分類,使用兩個位元解碼,完全不需要代幣提取——這是上述位元 1 中斷的修復。設定無法以這種方式分類,因為 GlobalConfig 只儲存其報價代幣的地址,沒有程式標誌,因此演示讀取代幣帳戶的擁有者一次並按代幣快取。並排看到兩條路徑是檢查你自己解碼器的最快方式。 請參閱 products/launchlab/code-demos 以取得逐步說明。

更新的頁面

  • products/launchlab/accounts — 報價代幣程式、token_program_flag 位元佈局和金庫所有權。
  • products/launchlab/instructions — 報價程式帳戶、交換滑點語義和重新命名的遷移帳戶。
  • products/launchlab/global-configquote_mint 可能是 Token-2022 代幣,以及什麼會和不會限制它。
  • products/launchlab/code-demos — gRPC 設定/池監視器。
  • reference/token-2022-support — LaunchLab 列和報價代幣部分。
  • reference/error-codes6023 CalculateOverflow