SPACE ID 主名称不显示:检查 SDK 版本、Registry 路由与正反向一致性
链小知 · 进阶 · 核验 · 依官方文档整理
从现有项目版本和解析日志定位 .bnb/.arb 显示问题,区分主名称、正向 Record、TLD 配置 Hub 与域名所在链。
开始前准备
- 准备现有项目锁文件、完整 .bnb/.arb 名称、公开地址的脱敏解析日志与已保存的域名详情;没有日志时只完成文档检查表。
- 固定源码参考 core 0.4.2 的指定 commit;不自动升级依赖,不复制注册包的 signer 流程。
1. 固定实际使用的包与版本
在 package.json 和锁文件中确认解析用 @web3-name-sdk/core,记录其版本及 viem 依赖。官方 core 文档和固定 0.4.2 源码使用 viem ^2.23.12;@web3-name-sdk/register 的 ethers5.7.2 是注册组件,不能拿注册示例解释只读函数的返回值。
检查结果:本项目版本有记录;与参考 commit 不同的行为先保留待核。
2. 确认按链还是按后缀查主名称
检查现有 getDomainName 调用。按 .bnb/.arb 时用 queryTldList 指定后缀;按链时用 queryChainIdList 指定 56/42161。固定源码同时传两项会忽略后缀列表,逆查只返回首个通过的名称;所以这个结果不是地址全部域名资产清单。
检查结果:调用条件只有明确的一种筛选方式,未误解为全部 NFT。
3. 沿 Hub、Registry、Resolver 三层定位
从既有日志或对应代码追踪 TLD 信息:生产 Hub 在 Ethereum 读取配置,其地址常量不是 .bnb/.arb 注册合约。getTldInfo 的 registry/chainId 决定域名路由,随后 registry.resolver(namehash) 决定解析器。不要把同名 Registry、Resolver 或 ERC20 代币地址互换;缺上游配置时先记无法定位。
检查结果:每一层地址都有角色及链,未把 Hub 所在链当域名注册链。
4. 检查正反向地址是否匹配
对现有逆查名称继续核对其正向 getAddress 结果与原输入地址。固定单名实现忽略 EVM 大小写比较,不匹配返回 null;它不是只读 reverse 字段就直接显示。比较应使用同一请求条件和可追溯记录;记录时间不同的结果先列出,不能证明同时一致。
检查结果:名称、正向结果和输入地址三者相符,或明确标出不匹配/证据时间不足。
5. 把空解析器和普通错误与无名称分开
核对已有错误日志:零 resolver 会在路由层报错;若 SDK 最后仅给 null,普通异常也可能被捕获成这个结果。继续检查 RPC、TLD 配置和超时日志,不将 null 一概判成域名没注册。保留错误文本、版本与原参数,避免改错误链来掩盖失败。
检查结果:无主记录、不一致、零 resolver、RPC/超时四类原因分别记录。
6. 回到域名状态与应用显示条件
在已保存的管理详情区分 Registrant、Record 与 Primary;所有人不是自动收款地址,设置 Primary 前需先有 Record。再核对到期状态:该管理文档的 .bnb/.arb 到期宽限期为 90 天,不能套所有 Toolkit 后缀。已有记录一致而应用仍不显示,应查应用具体集成范围,不以重新注册或签名作为默认排错步骤。
检查结果:已记录域名状态与客户端范围;未把管理记录一致当所有钱包必定即时显示。
怎样确认完成
- 完成版本、筛选条件、三层路由、正反向一致性与错误原因清单。
- 需补的配置/RPC/当前到期证据有明确位置,没有虚构当前合约或菜单。
常见错误与边界
- 参考的是固定源码,不是对最新线上 SDK、当前 Hub 内容或用户记录的运行验收。
- 注册付款、设置 Record/Primary 是写操作;只读查询成功不会自动赋予修改权。