Skip to main content
Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
Dieser Eintrag behandelt ein CLMM-Programm-Upgrade, das für 2026-10-22 geplant ist. Es wurde vor der Bereitstellung gegen den Branch feat/create-customizable-pool-v2 von raydium-clmm (Head 18f5db1) verifiziert. Bestätigen Sie das bereitgestellte Programm, bevor Sie sich auf den neuen Instruktionsnamen oder die neue Account-Liste verlassen. Das Release vom 2026-07-30 führte CreatePermissionedPool ein, mit dem ein Aufrufer mehr als einen Pool für dasselbe (amm_config, token_mint_0, token_mint_1) erstellen kann, indem ein seed_index in die Pool-PDA integriert wird. Es war gated: Der Zahler musste eine von einem Admin ausgestellte Permission-PDA halten. Dieses Release entfernt dieses Gate. Die Instruktion wird in CreateCustomizablePoolV2 umbenannt, jeder kann sie aufrufen, und die gesamte Permission-Maschinerie wird aus dem Programm gelöscht. Pool-Mathematik, Swap, Liquidität, Limit Orders, Gebühren und Rewards bleiben unverändert.

TL;DR für Integratoren

  • CreatePermissionedPool → CreateCustomizablePoolV2. Gleiche Argumente (CreateCustomizableParams, seed_index: u16) und gleiche Pool-Adress-Ableitung. Der Anchor-Diskriminator ändert sich mit dem Namen, daher schlägt eine gegen die alte Instruktion erstellte Transaktion nach dem Upgrade fehl. Erstellen Sie sie gegen die neue IDL neu.
  • Das permission-Konto ist weg aus der Account-Liste. Es befand sich in Slot 3, daher rückt jedes Konto von amm_config an eine Position nach oben. Siehe die neue Account-Liste.
  • Multi-Pool-Erstellung ist jetzt erlaubnisfrei. Jeder Zahler kann zusätzliche Pools für ein Paar und Gebührentier mit einem nicht-null seed_index erstellen. Behandeln Sie ein Paar als potenziell viele CLMM-Pools pro Gebührentier, erstellt von jedem.
  • Permission, CreatePermissionPda und ClosePermissionPda werden entfernt. Das Programm und die IDL kennen den Permission-Typ nicht mehr.
  • Aktualisieren Sie Ihre IDL. Sie verliert zwei Instruktionen und einen Account-Typ, für 37 Instruktionen und 53 Fehler.
  • Kein Account-Layout wurde geändert und kein Fehlercode wurde hinzugefügt. PoolState.seed_index behält seinen Offset; nur seine Bedeutung erweitert sich von „genehmigter Pool” zu „jeder V2-Pool”.

Was sich im Programm geändert hat

CreatePermissionedPool umbenannt zu CreateCustomizablePoolV2

Der Handler ist derselbe Code unter einem neuen Namen. Er:
  • erfordert seed_index > 0;
  • leitet den Pool unter ["pool", amm_config, token_mint_0, token_mint_1, seed_index.to_le_bytes()] ab;
  • nimmt dieselben CreateCustomizableParams wie CreateCustomizablePool, sodass einseitige Gebühren (collect_fee_on) und das Dynamic-Fee-Opt-in gleich funktionieren;
  • wendet dieselben Token-2022-Support-Mint-Checks wie CreatePool an;
  • zeichnet pool_creator als pool_state.owner auf und schreibt seed_index in PoolState;
  • gibt PoolCreatedEvent aus.
Die Permission-PDA-Prüfung ist das einzige Verhalten, das entfernt wurde.

CreateCustomizablePoolV2 Account-Liste

remaining_accounts sind unverändert: die Support-Mint-Registry-PDAs, wenn ein Token-2022-Mint sie benötigt, und die DynamicFeeConfig zuletzt, wenn enable_dynamic_fee = true.
pool_creator ist nicht authentifiziert. Jeder Zahler kann jede Adresse in pool_state.owner schreiben. Diese Adresse erhält das Recht, InitializeReward auf dem Pool aufzurufen, kann aber nicht als Beweis dafür verwendet werden, wer ihn erstellt hat. Bewerten Sie, kennzeichnen Sie oder vertrauen Sie einem V2-Pool nicht aufgrund seines owner-Feldes.

Entfernt: Permission, CreatePermissionPda, ClosePermissionPda

  • Der Permission-Account-Typ (["permission", authority], 280 Bytes) wird aus dem Programm gelöscht.
  • CreatePermissionPda und ClosePermissionPda werden gelöscht, zusammen mit dem dedizierten permission_pda_admin-Schlüssel, der sie signieren konnte.
  • Permission-PDAs, die vor dem Upgrade erstellt wurden, bleiben in der Chain. Das Programm liest sie nicht mehr und hat keine Instruktion, die sie schließt.

Fehlercodes

Keine Änderung. 6000–6052 behalten ihre Nummern. NotApproved (6000) hat keinen Fall mehr für „Unterzeichner ist weder admin noch permission_pda_admin”, da diese Instruktionen weg sind.

Migrationsnoten

  • Pool-Ersteller. Wechseln Sie von CreatePermissionedPool zu CreateCustomizablePoolV2, lassen Sie das permission-Konto weg und verschieben Sie die verbleibenden Konten um einen Slot nach oben. Sie benötigen keine Admin-Genehmigung mehr.
  • Indexer und Router. Indexieren Sie CLMM-Pools aus PoolCreatedEvent oder durch Scannen von PoolState-Konten, nicht durch Ableitung der Vier-Seed-PDA. Speichern Sie seed_index für jeden Pool, bei dem er nicht null ist, da Sie ihn benötigen, um die Adresse neu abzuleiten. Erwarten Sie mehr nicht-kanonische Pools, da jetzt jeder sie erstellen kann, und nehmen Sie nicht an, dass der kanonische Pool der tiefste ist.
  • UIs. Ein Paar und Gebührentier können viele Pools mit unterschiedlichen Startpreisen haben. Zeigen Sie Liquidität und die Pool-Adresse an, und präsentieren Sie einen Pool nicht als offiziell, weil sein owner es ist.
  • IDL-Konsumenten. Entfernen Sie jeden Decoder oder Client-Code für Permission, CreatePermissionPda und ClosePermissionPda.

Was sich nicht geändert hat

  • Jedes Account-Layout, einschließlich PoolState (das seed_index-Feld und sein Offset sind gleich).
  • CreatePool und CreateCustomizablePool. Sie erstellen immer noch den einzelnen kanonischen Pool pro Paar und Tier mit seed_index = [0, 0].
  • Pools, die vor dem Upgrade durch CreatePermissionedPool erstellt wurden. Ihre Adressen, Zustand und seed_index sind unverändert.
  • Fehlercodes, Swap-, Liquiditäts-, Gebühren-, Dynamic-Fee-, Reward- und Limit-Order-Verhalten.
  • Programm-ID.

Aktualisierte Seiten

  • products/clmm/instructions: Upgrade-Banner; Inventar- und Admin-Gating-Zeilen; CreateCustomizablePoolV2-Abschnitt mit der neuen Account-Liste.
  • products/clmm/accounts: Permission aus dem Inventar entfernt und als veraltet dokumentiert; seed_index-Beschreibung; PDA-Helfer in deriveCustomizablePoolV2 umbenannt; Lebenszykluszeilen.
  • products/clmm/overview: „What’s new”-Notiz.
  • security/admin-and-multisig: permission_pda_admin-Rolle aus der CLMM-Tabelle entfernt.
  • reference/error-codes: NotApproved-Beschreibung.
  • reference/token-2022-support: CLMM-Pool-Erstellungspfade.
  • sdk-api/anchor-idl: CLMM-Instruktionszahl.
  • protocol-overview/versions-and-migration: CLMM-Upgrade-Verlauf-Punkt.
Verifiziert gegen: raydium-clmm Branch 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, und die gelöschten admin/create_permission_pda.rs, admin/close_permission_pda.rs, states/permission.rs.