Raydium 搜到同名池或 Token2022 报错?核对池程序、mint 与扩展
链小知 · 进阶 · 核验 · 依官方文档整理
用 poolId、两侧 mint 与链上 owner 程序识别真实池,按 CPMM/CLMM 的当前规则检查 Token2022 扩展和转账费;不把能建池当作代币安全证明。
开始前准备
- 已有 poolId、所在 Solana 集群、两侧预期 mint 地址,以及界面错误或交易日志。
- 只读检查池、mint 和程序资料,不创建池、签名、授权或兑换。docs.raydium.io 当前标注社区维护,扩展判断同时对照 raydium-io 官方源码。
1. 按 poolId 定位池而非按简称
从原池链接复制完整 poolId,并确认 mainnet-beta 或 devnet。保存两侧 mint 地址,代币同名、同 Logo 都不能代替 mint 身份。
在只读账户资料中核对池 owner 程序,区分 AMM v4、CPMM 与 CLMM。不要将 LP mint、代币 mint 或个人 position NFT 地址误当池地址。
检查结果:记录有集群、poolId、owner 程序及两侧 mint。
2. 对照对应集群的程序资料
从文档程序地址表定位同一集群和程序类型;文档也提示继续与当前程序资料核对。主网地址与 devnet 地址不可互换。
若 owner 不匹配预期,先停止使用该池资料作交易判断,回查链接来源与原始账户。不同程序参数结构不同,不能拿 CPMM 字段去解码所有池。
检查结果:程序类型已确认;地址不一致有明确待核查标记。
3. 读取每侧 mint 所属 token 程序
分别查看两侧 mint 的 owner,判断是经典 SPL Token 还是 Token2022。不能只因某一侧是 Token2022 就假设另一侧相同。
支持矩阵将 AMM v4 与 CPMM/CLMM 分开说明。CPMM/CLMM 的 Token2022 支持带条件;这不是任意扩展都可用的承诺。
检查结果:两侧 token 程序独立记录,且使用对应池类型的规则。
4. 逐项列出扩展并对照当前规则
读取 Token2022 mint 的扩展集合,再对照 CPMM 官方源码 is_supported_mint。当前默认列表包括 TransferFeeConfig、MetadataPointer、TokenMetadata、InterestBearingConfig 与 ScaledUiAmount。
官方源码还允许已初始化的 support-mint 关联记录通过检查。因此看到其他扩展不能只凭默认列表断言现有池必定不能交易;需核对特定程序的注册路径与部署版本。
检查结果:扩展清单、规则版本和注册路径都被记录,不能读到的项明确未知。
5. 把转账费与池手续费分开
对于 TransferFeeConfig,CPMM 源码按当前 epoch 计算转账费用。它属于代币转账规则,不能和池 swap 手续费合并成一个固定费率。
核对净到账数量与两类费用的原口径;界面展示缩放或计息修饰时,另检查实际基本余额和 decimals。数量差异未解释前,不把同名资产估值当作成交证明。
检查结果:净数量解释包含 token 精度、转账费与池费的不同来源。
6. 定位失败发生在哪个阶段
保存具体 instruction、程序和错误。建池时被扩展检查拒绝,与现有池兑换失败不是同一问题;当前资料说明支持检查主要发生在建池路径。
对于现有池,继续查路由、账户、转账费和具体失败调用。池存在只说明曾满足相应创建条件,不证明增发、冻结或其他权限没有风险。本教程不通过提高滑点、重复签名来试错。
检查结果:排查记录能指出失败程序、阶段及尚需确认的字段。
怎样确认完成
- 池、程序和两侧资产身份可复查。
- 扩展判断有官方源码与具体程序依据。
- 失败阶段与费用口径已经区分。
常见错误与边界
- 按简称识别池,或把 mint 与 poolId 混用。
- 主网与 devnet 程序地址混用。
- 将 Token2022 支持理解为所有扩展无条件支持。
- 把能创建池或已有流动性当成安全认证。
- 未考虑注册路径就推断现有池必然被默认列表拒绝。