本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
本條目涵蓋排定於 2026-10-22 的 CLMM 程式升級。在部署前已針對
raydium-clmm 的 feat/create-customizable-pool-v2 分支(head 18f5db1)進行驗證。在依賴新指令名稱或帳戶清單前,請確認已部署的程式。CreatePermissionedPool,允許呼叫者透過將 seed_index 折疊到池 PDA 中,為相同的 (amm_config, token_mint_0, token_mint_1) 創建多個池。該指令受到閘門限制:支付者必須持有由管理員簽發的 Permission PDA。
本版本移除了該閘門。指令改名為 CreateCustomizablePoolV2,任何人都可以呼叫它,整個權限機制已從程式中刪除。池數學、交換、流動性、限價單、費用和獎勵保持不變。
整合者速覽
CreatePermissionedPool→CreateCustomizablePoolV2。 相同的參數(CreateCustomizableParams、seed_index: u16)和相同的池地址衍生。Anchor 判別器隨著名稱改變,因此針對舊指令構建的交易在升級後會失敗。請針對新 IDL 重新構建。permission帳戶已從帳戶清單中移除。 它位於第 3 個位置,因此從amm_config開始的每個帳戶都向上移動一個位置。請參閱新帳戶清單。- 多池創建現在無需許可。 任何支付者都可以使用非零的
seed_index為交易對和費用層級創建額外的池。將交易對視為每個費用層級可能有許多 CLMM 池,由任何人創建。 Permission、CreatePermissionPda和ClosePermissionPda已移除。 程式和 IDL 不再知道Permission類型。- 重新整理你的 IDL。 它刪除了兩個指令和一個帳戶類型,共 37 個指令和 53 個錯誤。
- 沒有帳戶佈局改變,也沒有新增錯誤代碼。
PoolState.seed_index保持其偏移量;只是其含義從「受許可的池」擴展到「任何 V2 池」。
程式中的變更
CreatePermissionedPool 改名為 CreateCustomizablePoolV2
處理程式是相同的代碼,只是名稱不同。它仍然:
- 要求
seed_index > 0; - 在
["pool", amm_config, token_mint_0, token_mint_1, seed_index.to_le_bytes()]衍生池; - 採用與
CreateCustomizablePool相同的CreateCustomizableParams,因此單邊費用(collect_fee_on)和動態費用選擇以相同方式運作; - 應用與
CreatePool相同的 Token-2022 支援鑄幣檢查; - 將
pool_creator記錄為pool_state.owner並將seed_index寫入PoolState; - 發出
PoolCreatedEvent。
Permission PDA 檢查是唯一被移除的行為。
CreateCustomizablePoolV2 帳戶清單
remaining_accounts 保持不變:當 Token-2022 鑄幣需要時的支援鑄幣登錄 PDA,以及當 enable_dynamic_fee = true 時最後的 DynamicFeeConfig。
已移除:Permission、CreatePermissionPda、ClosePermissionPda
Permission帳戶類型(["permission", authority],280 位元組)已從程式中刪除。CreatePermissionPda和ClosePermissionPda已刪除,以及可以簽署它們的專用permission_pda_admin金鑰也已刪除。- 升級前創建的 Permission PDA 保留在鏈上。程式不再讀取它們,也沒有指令可以關閉它們。
錯誤代碼
無變更。6000–6052 保持其編號。NotApproved(6000)不再有「簽署者既不是 admin 也不是 permission_pda_admin」的情況,因為這些指令已刪除。
遷移說明
- 池創建者。 從
CreatePermissionedPool切換到CreateCustomizablePoolV2,移除permission帳戶,並將其餘帳戶向上移動一個位置。你不再需要管理員授權。 - 索引器和路由器。 從
PoolCreatedEvent或透過掃描PoolState帳戶索引 CLMM 池,而不是衍生四種子 PDA。為任何seed_index非零的池儲存seed_index,因為你需要它來重新衍生地址。預期現在會有更多非規範池,因為任何人都可以創建它們,不要假設規範池是最深的。 - UI。 交易對和費用層級可以有許多具有不同起始價格的池。顯示流動性和池地址,不要因為池的
owner而將其呈現為官方。 - IDL 消費者。 移除
Permission、CreatePermissionPda和ClosePermissionPda的任何解碼器或客戶端代碼。
未變更的內容
- 每個帳戶佈局,包括
PoolState(seed_index欄位及其偏移量相同)。 CreatePool和CreateCustomizablePool。 它們仍然為每個交易對和層級創建單個規範池,seed_index = [0, 0]。- 升級前透過
CreatePermissionedPool創建的池。 它們的地址、狀態和seed_index保持不變。 - 錯誤代碼、交換、流動性、費用、動態費用、獎勵和限價單行為。
- 程式 ID。
更新的頁面
products/clmm/instructions:升級橫幅;清單和管理員閘門行;帶有新帳戶清單的CreateCustomizablePoolV2部分。products/clmm/accounts:Permission從清單中移除並記錄為已停用;seed_index描述;PDA 幫助程式改名為deriveCustomizablePoolV2;生命週期行。products/clmm/overview:「新增功能」備註。security/admin-and-multisig:從 CLMM 表中移除permission_pda_admin角色。reference/error-codes:NotApproved描述。reference/token-2022-support:CLMM 池創建路徑。sdk-api/anchor-idl:CLMM 指令計數。protocol-overview/versions-and-migration:CLMM 升級歷史項目符號。
raydium-clmm 分支 feat/create-customizable-pool-v2(18f5db1):instructions/create_customizable_pool_v2.rs、instructions/mod.rs、instructions/admin/mod.rs、states/mod.rs、states/pool.rs、lib.rs,以及已刪除的 admin/create_permission_pda.rs、admin/close_permission_pda.rs、states/permission.rs。
