> ## Documentation Index
> Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 2026-08-17 — CPMM：無權限創作者費用收集

> CPMM 新增目標受限指令，允許任何支付者將創作者費用掃入資金池創作者的規範 ATA，並委派 Permission PDA 建立而不委派撤銷。

<Info>
  **本頁內容由 AI 自動翻譯，所有內容以英文版本為準。**

  [查看英文版 →](/reference/changelog/2026-08-17-cpmm-permissionless-creator-fee-collection)
</Info>

<Info>
  CPMM 程式即將更新的文件變更日誌項目。如需所有更新的索引，請參閱 [`reference/changelog`](/zh-Hant/reference/changelog)。如需協議本身的歷史時間軸，請參閱 [`introduction/history-and-milestones`](/zh-Hant/introduction/history-and-milestones)。
</Info>

本版本新增無權限操作路徑以進行創作者費用收集。任何人都可以支付以觸發掃入，但程式將收款人所有者固定為 `PoolState.pool_creator`，並將兩個目標都固定為該創作者的規範關聯代幣帳戶。現有的創作者簽署指令保持不變。

它還允許專用授權機構建立 CPMM `Permission` PDA。該委派刻意不對稱：專用授權機構可以授予 `InitializeWithPermission` 的存取權限，而只有程式管理員可以使用 `ClosePermissionPda` 撤銷授權。

## 整合者速覽

* **新增指令：`CollectCreatorFeePermissionless`。** 任何簽署者都可以是 `payer`。記錄的資金池創作者不簽署。
* **呼叫者無法重定向資金。** `creator` 必須等於 `pool_state.pool_creator`。`creator_token_0` 和 `creator_token_1` 必須是該創作者針對資金池保管庫鑄幣及其各自代幣程式的規範 ATA。
* **支付者涵蓋缺失的 ATA。** 兩個收款帳戶都使用 `init_if_needed`；當任一帳戶不存在時，支付者資助租金。
* **收集是全有或全無。** 指令轉移兩個完整累積的創作者費用計數器，將兩者歸零，並更新 `recent_epoch`。當兩個計數器都為零時，它返回現有的 `NoFeeCollect` 錯誤。
* **現有整合保持相容。** `CollectCreatorFee` 未被修改或移除。不存在 `PoolState`、`AmmConfig`、`Permission`、事件或錯誤代碼佈局變更。
* **Permission 建立有第二個所有者。** `CreatePermissionPda` 接受程式管理員或專用建立-permission-PDA 所有者。`ClosePermissionPda` 仍為僅限管理員。

## 新指令帳戶

`CollectCreatorFeePermissionless` 按此順序接受 14 個帳戶：

| #     | 帳戶                                  | 約束或角色                               |
| ----- | ----------------------------------- | ----------------------------------- |
| 1     | `payer`                             | 可寫簽署者；資助缺失的創作者 ATA。                 |
| 2     | `creator`                           | 必須等於 `pool_state.pool_creator`；不簽署。 |
| 3     | `authority`                         | CPMM 全域保管庫授權 PDA。                   |
| 4     | `pool_state`                        | 可寫；持有創作者費用計數器。                      |
| 5–6   | `token_0_vault`、`token_1_vault`     | 可寫；必須符合資金池中儲存的保管庫。                  |
| 7–8   | `vault_0_mint`、`vault_1_mint`       | 必須符合對應的保管庫鑄幣。                       |
| 9–10  | `creator_token_0`、`creator_token_1` | 可寫規範創作者 ATA；必要時初始化。                 |
| 11–12 | `token_0_program`、`token_1_program` | 每個鑄幣的 SPL Token 或 Token-2022。       |
| 13    | `associated_token_program`          | 建立缺失的創作者 ATA。                       |
| 14    | `system_program`                    | 支援支付者資助的帳戶建立。                       |

與 `CollectCreatorFee` 不同，新佈局有獨立的 `payer` 和非簽署 `creator` 帳戶，不接受 `amm_config`。因此它需要自己的判別器和建構器。

## SDK 和 IDL 影響

程式源分支不包括已提交的 SDK 或 IDL 更新。整合者必須重新整理已部署的 CPMM IDL 或使用明確支援 `CollectCreatorFeePermissionless` 的用戶端版本。文件的固定 `@raydium-io/raydium-sdk-v2@0.2.42-alpha` 建構器集僅涵蓋原始創作者簽署路徑。

## 安全邊界

無權限呼叫並不意味著無權限保管。呼叫者可以選擇何時收集，並可以花費 SOL 建立缺失的創作者 ATA。呼叫者無法選擇受益人、替換任意代幣帳戶、請求部分金額或變更資金池的創作者費用設定。

新的 permission-PDA 創作者角色可以為任何 `permission_authority` 建立授權，並支付新帳戶的租金。在此變更下，它無法關閉該 PDA。將其視為委派授權機構，而非完整的 permission 管理員。

## 遷移說明

* 保持現有 `CollectCreatorFee` 交易不變。
* 僅在目標 CPMM 部署和用戶端 IDL 包含無權限指令後才新增它。
* 自動化可以掃描具有非零 `creator_fees_token_0` 或 `creator_fees_token_1` 的資金池，並在不持有創作者金鑰的情況下觸發收集。
* 當另一個呼叫者先耗盡計數器時，將 `NoFeeCollect` 視為良性競爭。
* 不要傳遞任意收款代幣帳戶；從 `pool_state.pool_creator`、每個保管庫鑄幣和匹配的代幣程式衍生創作者 ATA。

## 更新的頁面

* `products/cpmm/overview` — 創作者費用收集更新和目標安全摘要。
* `products/cpmm/instructions` — 新指令摘要、完整帳戶清單、效果和狀態變更矩陣。
* `products/cpmm/accounts` — 創作者費用計數器收集路徑和委派 Permission PDA 建立。
* `products/cpmm/fees` — 無權限收集機制和操作流程。
* `products/cpmm/code-demos` — SDK 可用性警告和用戶端遷移邊界。
* `products/launchlab/platform-config` — 澄清即使另一個支付者觸發收集，記錄的 CPMM 創作者仍為受益人。
* `protocol-overview/shared-infrastructure` — 授權閘控和目標受限收集路徑。
* `security/admin-and-multisig` — 委派授權機構和無權限收集器邊界。
* `reference/program-addresses` — 規範專用 `CreatePermissionPda` 所有者地址。
* `reference/error-codes` — 擴展 `NoFeeCollect` 以涵蓋創作者費用收集。

**驗證於 2026-08-13 針對**：

* [`raydium-cp-swap` 分支 `feat/permissionless-collect-creator-fee`](https://github.com/raydium-io/raydium-cp-swap/tree/feat/permissionless-collect-creator-fee)。
* 提交 [`9585ea1`](https://github.com/raydium-io/raydium-cp-swap/commit/9585ea1efeb27be7be7eab1ebc033449f9c793b4) 和 [`d99d542`](https://github.com/raydium-io/raydium-cp-swap/commit/d99d5420c65b973af05d4efa009a2a9d060461f9)，與 `master` 在 [`78f254e`](https://github.com/raydium-io/raydium-cp-swap/commit/78f254e1023751e706df7dc15c453fc3e046697c) 進行比較。

<Warning>
  此驗證涵蓋源分支，而非 mainnet-beta 部署。在生產環境中啟用新路徑之前，請確認已部署的程式和已發佈的 IDL。
</Warning>
