Zum Hauptinhalt springen
Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
Dieser Eintrag behandelt ein CPMM-Programm-Upgrade, das für 2026-10-30 geplant ist. Er wurde vor der Bereitstellung gegen den Branch feat/initialize-v2 von raydium-cp-swap (Head 40cbd81) verifiziert. Bestätigen Sie das bereitgestellte Programm, bevor Sie sich auf die neue Anweisung verlassen.
Jeder CPMM-Pool hat ein enable_creator_fee-Flag und eine creator_fee_on-Seite, beide bei der Erstellung festgelegt. Bisher konnte ein Creator sie nur über InitializeWithPermission setzen, das eine vom Admin ausgestellte Permission-PDA benötigt. Das öffentliche Initialize speicherte die Gebühr immer als deaktiviert. In der Praxis konnten nur LaunchLab-Graduierungen und andere gated Flows einen Pool erstellen, der eine Creator-Gebühr erhebt. Dieses Release fügt InitializeV2 hinzu. Es ist Initialize mit einem zusätzlichen Argument, creator_fee_on: Option<CreatorFeeOn>, und jeder kann es aufrufen. Pool-Mathematik, Swap, Liquidität, Gebührenerhebung und der Protokollanteil der Creator-Gebühr sind unberührt.

TL;DR für Integratoren

  • Neue Anweisung: InitializeV2. Berechtigungsfrei. Die Argumente sind init_amount_0, init_amount_1, open_time und creator_fee_on: Option<CreatorFeeOn>. Diskriminator [67, 153, 175, 39, 218, 16, 38, 32].
  • Some(side) aktiviert die Creator-Gebühr auf dieser Seite; None lässt sie deaktiviert. None speichert genau das, was Initialize speichert.
  • Dieselben Konten wie Initialize, ohne rent. Die ersten 19 Konten sind identisch und in derselben Reihenfolge. Siehe die Kontoliste.
  • Der Creator ist der Unterzeichner. pool_state.pool_creator ist der signierende creator. Anders als bei InitializeWithPermission kann der Begünstigte nicht auf eine andere Adresse gesetzt werden.
  • Der Creator wählt Ein/Aus und die Seite, nicht den Satz. Der Pool erhebt die AmmConfig.creator_fee_rate seines Gebührentiers. Dieser Satz ist standardmäßig 0, daher sammelt ein aktivierter Pool auf einem solchen Tier nichts an.
  • Nichts Bestehendes hat sich geändert. Initialize und InitializeWithPermission behalten ihre Diskriminatoren, Konten, Argumente und ihr Verhalten. Kein Account-Layout und kein Fehlercode hat sich geändert.
  • Aktualisieren Sie Ihre IDL, um die neue Anweisung zu erhalten. Clients, die sie nie aufrufen, benötigen keine Änderung.

Was sich im Programm geändert hat

Neue Anweisung: InitializeV2

InitializeV2 führt denselben Erstellungscode wie Initialize aus. Es:
  • akzeptiert entweder die kanonische Pool-PDA oder ein signiertes zufälliges Keypair als pool_state;
  • wendet dieselbe Token-2022-Allowlist und dieselben SupportMintAssociated-Prüfungen über remaining_accounts an;
  • lehnt die Erstellung ab, wenn amm_config.disable_create_pool gesetzt ist;
  • erhöht open_time auf block_timestamp + 1, wenn es nicht in der Zukunft liegt;
  • sperrt 100 LP-Basiseinheiten und prägt den Rest an den Creator;
  • erhebt amm_config.create_pool_fee.
Der einzige Unterschied ist, was es in den neuen PoolState schreibt: Ein ungültiges Tag- oder Varianten-Byte lässt die Argument-Deserialisierung von Anchor fehlschlagen. Es ist kein neuer Fehlercode beteiligt.

Vergleich der drei Erstellungspfade

Internes Refactoring

Die drei Handler teilen sich nun eine initialize_pool-Routine. Das Refactoring ändert weder die Konten, Argumente, Prüfungen noch die gespeicherten Werte von Initialize oder InitializeWithPermission. Die neuen Tests prüfen außerdem, dass ein einfaches Initialize auf derselben Config die Creator-Gebühr weiterhin als deaktiviert speichert.

Was Creators wissen sollten

  • Prüfen Sie zuerst das Gebührentier. Der Creator-Gebührensatz gehört zur AmmConfig, nicht zum Pool. Wählen Sie ein Tier, dessen creator_fee_rate dem entspricht, was Sie erheben möchten. Die Sätze sind in products/cpmm/fees aufgeführt.
  • Die Wahl ist dauerhaft. Keine Anweisung ändert enable_creator_fee oder creator_fee_on nach der Erstellung. Um sie zu ändern, müssen Sie einen neuen Pool erstellen.
  • Trader zahlen sie zusätzlich zur Handelsgebühr. Die Creator-Gebühr ist ein separater Satz, der zum Swap hinzukommt. Sie reduziert nicht die LP-, Protokoll- oder Fonds-Anteile, macht den Pool aber teurer zu handeln als einen Pool auf demselben Tier mit deaktivierter Gebühr.
  • Die Erhebung ist unverändert. Verwenden Sie CollectCreatorFee oder CollectCreatorFeePermissionless. Der Protokollanteil aus dem Release vom 2026-09-19 gilt, und Sie können ihn bei der Erstellung nicht abwählen.

Migrationsnotizen

  • Pool-Creators. Wechseln Sie nur dann von Initialize zu InitializeV2, wenn Sie die Creator-Gebühr aktivieren möchten. Übergeben Sie Some(side) und entfernen Sie das rent-Konto. Initialize funktioniert weiterhin.
  • SDK-Nutzer. raydium.cpmm.createPool in @raydium-io/raydium-sdk-v2@0.2.64-alpha baut Initialize. Bis ein Release einen InitializeV2-Builder mitliefert, kodieren Sie es aus der aktualisierten IDL.
  • Indexer und Router. Rechnen Sie mit mehr Pools mit enable_creator_fee = true, die von gewöhnlichen Wallets statt von LaunchLab erstellt werden. Quoten Sie anhand von enable_creator_fee und creator_fee_on des jeweiligen Pools, niemals allein anhand des Erstellungspfads oder des Tiers. Dekodieren Sie die neue Anweisung, wenn Sie die Pool-Erstellung anhand von Anweisungen verfolgen. Das Verfolgen über PoolState-Konten erfordert keine Änderung.
  • UIs. Zeigen Sie an, ob ein Pool eine Creator-Gebühr erhebt und zu welchem Satz, da sich zwei Pools auf demselben Tier nun unterscheiden können.
  • LaunchLab und andere berechtigte Flows. Keine Änderung. InitializeWithPermission bleibt der Pfad, wenn sich Zahler und aufgezeichneter Creator unterscheiden müssen.

Was sich nicht geändert hat

  • Jedes Account-Layout, einschließlich PoolState und AmmConfig.
  • Initialize und InitializeWithPermission: Diskriminatoren, Konten, Argumente und gespeicherte Werte.
  • Permission, CreatePermissionPda und ClosePermissionPda.
  • Swap-, Deposit- und Withdraw-Mathematik, die Erhebung der Creator-Gebühr und der Protokollanteil der Creator-Gebühr.
  • Fehlercodes. 6000–6015 sind unverändert; nichts angehängt.
  • Programm-ID.

Aktualisierte Seiten

  • products/cpmm/instructions: Upgrade-Banner; Zeilen in Übersicht und Zustandsänderungsmatrix; neuer InitializeV2-Abschnitt mit Argumenten, Kodierung und Kontoliste; die Initialize-Nachbedingung verweist nun auf InitializeV2.
  • products/cpmm/fees: Der Abschnitt „Creator-Gebühr” listet alle drei Erstellungspfade auf und weist darauf hin, dass das Aktivieren der Gebühr nicht ihren Satz festlegt.
  • products/cpmm/accounts: poolState- und Pool-ID-Hinweise; Feldhinweise zu creator_fee_on / enable_creator_fee; Permission-Hinweis; Zeile zum Konto-Lebenszyklus.
  • products/cpmm/overview: „What’s new”-Callout und der Punkt „Vorhersehbare Gebühren”.
  • products/cpmm/code-demos: Hinweis, dass createPool Initialize baut, und wie man InitializeV2 erreicht.
  • protocol-overview/shared-infrastructure: Creator-Gebühren sind nicht mehr auf LaunchLab-graduierte Pools beschränkt.
  • reference/token-2022-support: CPMM-Pool-Erstellungspfade.
Verifiziert gegen: raydium-cp-swap Branch 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 und tests/initialize_v2.test.ts.