docs: creator_vault/coin_creator from events; CODE_REVIEW three-repo check

Made-with: Cursor
This commit is contained in:
Wood
2026-03-07 11:45:33 +08:00
parent 30c91a74af
commit e32e7ee6ab
4 changed files with 86 additions and 2 deletions
+18
View File
@@ -320,6 +320,24 @@ PumpFun 与 PumpSwap 支持**返现(Cashback**:部分手续费可返还
- **pumpfun_copy_trading**、**pumpfun_sniper_trading** 示例使用 sol-parser-sdk 订阅 gRPC 事件,并在构造参数时传入 `e.is_cashback_coin`
- **领取返现**:使用 `client.claim_cashback_pumpfun()``client.claim_cashback_pumpswap(...)` 领取累计的返现。
#### PumpFunCreator Rewards Sharingcreator_vault
部分 PumpFun 代币启用了 **Creator Rewards Sharing**,链上 `creator_vault` 可能与默认推导结果不同。若在**卖出**时复用**买入**时缓存的 params,可能触发程序错误 **2006seeds constraint violated**。建议:
- **来自 gRPC/事件(无需 RPC**`creator``creator_vault` 均可从解析后的事件中直接拿到:
- **sol-parser-sdk**:推送前会调用 `fill_trade_accounts`,从 buy/sell 指令账户补全 `creator_vault`buy 索引 9sell 索引 8);`creator` 来自 TradeEvent 日志。用 `PumpFunParams::from_trade(..., e.creator, e.creator_vault, ...)``from_dev_trade(..., e.creator, e.creator_vault, ...)` 即可。
- **solana-streamer**:指令解析时从 accounts[9]buy/ accounts[8]sell)写入 `creator_vault``creator` 来自合并后的 CPI TradeEvent 日志。同样用事件的 `e.creator``e.creator_vault` 调用 `from_trade` / `from_dev_trade`
- **RPC 后覆盖**:若通过 `PumpFunParams::from_mint_by_rpc` 得到 params,之后又从 gRPC 拿到更新的 `creator_vault`,在卖出前对 params 调用 `.with_creator_vault(latest_creator_vault)`
SDK 不会在每次卖出时通过 RPC 拉取 creator_vault(以避免延迟);请从 gRPC/事件中传入最新 vault。
#### PumpSwap:从事件拿 coin_creator_vault(无需 RPC
**PumpSwap**Pump AMM)的 buy/sell 指令需要 `coin_creator_vault_ata``coin_creator_vault_authority`,二者均可从解析事件中拿到,无需 RPC:
- **sol-parser-sdk**:指令解析从账户 17、18 写入;若事件来自日志,账户填充器也会从指令补全。用 `PumpSwapParams::from_trade(..., e.coin_creator_vault_ata, e.coin_creator_vault_authority, ...)` 即可。
- **solana-streamer**:指令解析从 `accounts.get(17)``accounts.get(18)` 写入。同样用事件的 `coin_creator_vault_ata``coin_creator_vault_authority` 调用 `from_trade`
## 🛡️ MEV 保护服务
可以通过官网申请密钥:[社区官网](https://fnzero.dev/swqos)