本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
本條目涵蓋計劃於 2026-10-30 進行的 CPMM 程式升級。部署前已針對
raydium-cp-swap 的 feat/initialize-v2 分支(頭部 40cbd81)進行驗證。在依賴新指令之前,請確認已部署的程式。enable_creator_fee 標誌和一個 creator_fee_on 收取側,兩者都在創建時固定。在此之前,創作者只能透過 InitializeWithPermission 設定它們,而這需要管理員簽發的 Permission PDA。公開的 Initialize 始終將費用儲存為停用。實際上,只有 LaunchLab 畢業和其他受限流程才能創建收取創作者費用的池。
此版本新增 InitializeV2。它就是多了一個參數 creator_fee_on: Option<CreatorFeeOn> 的 Initialize,任何人都可以呼叫。池數學、交換、流動性、費用收取以及創作者費用的協議份額均未改動。
整合者速覽
- 新指令:
InitializeV2。 無需許可。參數為init_amount_0、init_amount_1、open_time和creator_fee_on: Option<CreatorFeeOn>。判別器[67, 153, 175, 39, 218, 16, 38, 32]。 Some(side)在該側啟用創作者費用;None保持關閉。None儲存的內容與Initialize完全相同。- 帳戶與
Initialize相同,但移除了rent。 前 19 個帳戶完全相同,順序也相同。見帳戶清單。 - 創作者就是簽署者。
pool_state.pool_creator是簽署的creator。與InitializeWithPermission不同,受益人不能被設定為其他地址。 - 創作者選擇的是開/關和收取側,而不是費率。 池收取其費用等級的
AmmConfig.creator_fee_rate。該費率預設為0,因此在這樣的等級上已啟用的池不會累積任何費用。 - 現有內容均未改變。
Initialize和InitializeWithPermission保留其判別器、帳戶、參數和行為。沒有帳戶佈局或錯誤代碼改變。 - 刷新你的 IDL 以取得新指令。從不呼叫它的客戶端無需任何更改。
程式中的變更
新指令:InitializeV2
InitializeV2 執行與 Initialize 相同的創建程式碼。它:
- 接受規範池 PDA 或已簽署的隨機金鑰對作為
pool_state; - 透過
remaining_accounts套用相同的 Token-2022 允許清單和SupportMintAssociated檢查; - 當設定了
amm_config.disable_create_pool時拒絕創建; - 當
open_time不在未來時,將其提升到block_timestamp + 1; - 鎖定 100 個 LP 基礎單位,並將其餘部分鑄造給創作者;
- 收取
amm_config.create_pool_fee。
PoolState 的內容:
無效的標籤位元組或變體位元組會在 Anchor 的參數反序列化階段失敗。不涉及新的錯誤代碼。
三條創建路徑的比較
內部重構
三個處理程式現在共用同一個initialize_pool 常式。此重構不會改變 Initialize 或 InitializeWithPermission 的帳戶、參數、檢查或儲存的值。新測試還會檢查在同一配置上普通的 Initialize 仍將創作者費用儲存為停用。
創作者需要了解的內容
- 先檢查費用等級。 創作者費率屬於
AmmConfig,而不是池。請選擇一個creator_fee_rate正是你想收取的費率的等級。費率列於products/cpmm/fees。 - 這一選擇是永久性的。 創建後沒有任何指令可以更改
enable_creator_fee或creator_fee_on。如需更改,你必須創建一個新池。 - 交易者在交易費之外支付它。 創作者費用是加在交換上的單獨費率。它不會減少 LP、協議或基金的份額,但確實會使該池的交易成本高於同一等級上關閉費用的池。
- 收取方式未改變。 使用
CollectCreatorFee或CollectCreatorFeePermissionless。2026-09-19 版本的協議份額適用,並且你無法在創建時選擇退出。
遷移說明
- 池創作者。 僅當你希望開啟創作者費用時,才從
Initialize切換到InitializeV2。傳遞Some(side)並移除rent帳戶。Initialize仍然可用。 - SDK 使用者。
@raydium-io/raydium-sdk-v2@0.2.64-alpha中的raydium.cpmm.createPool構建的是Initialize。在某個版本提供InitializeV2構建器之前,請根據更新後的 IDL 對其進行編碼。 - 索引器和路由器。 預計會有更多
enable_creator_fee = true的池,由普通錢包而非 LaunchLab 創建。始終根據每個池自身的enable_creator_fee和creator_fee_on報價,而不要僅根據創建路徑或等級。如果你透過指令追蹤池創建,請解碼新指令。透過PoolState帳戶追蹤則無需更改。 - UI。 顯示池是否收取創作者費用以及費率,因為同一等級上的兩個池現在可能不同。
- LaunchLab 和其他需要許可的流程。 無變化。當支付者和記錄的創作者必須不同時,
InitializeWithPermission仍然是應使用的路徑。
未變更的內容
- 每個帳戶佈局,包括
PoolState和AmmConfig。 Initialize和InitializeWithPermission:判別器、帳戶、參數和儲存的值。Permission、CreatePermissionPda和ClosePermissionPda。- 交換、存款和提取數學、創作者費用的收取,以及創作者費用的協議份額。
- 錯誤代碼。
6000–6015未改變;沒有附加任何內容。 - 程式 ID。
更新的頁面
products/cpmm/instructions:升級橫幅;摘要和狀態變更矩陣行;包含參數、編碼和帳戶清單的新InitializeV2部分;Initialize後置條件現在指向InitializeV2。products/cpmm/fees:「創作者費用」部分列出全部三條創建路徑,並註明啟用費用不會設定其費率。products/cpmm/accounts:poolState和資金池 ID 說明;creator_fee_on/enable_creator_fee欄位說明;Permission說明;帳戶生命週期行。products/cpmm/overview:「新功能」提示框和「可預測的費用」要點。products/cpmm/code-demos:說明createPool構建的是Initialize,以及如何使用InitializeV2。protocol-overview/shared-infrastructure:創作者費用不再僅限於 LaunchLab 畢業的池。reference/token-2022-support:CPMM 池創建路徑。
raydium-cp-swap 分支 feat/initialize-v2(40cbd81):programs/cp-swap/src/lib.rs、instructions/initialize_v2.rs、instructions/initialize.rs、instructions/initialize_with_permission.rs、instructions/mod.rs、states/pool.rs,以及 tests/initialize_v2.test.ts。
