使用truffle-plugin-verify验证BSC测试网合约失败,求助排查
问题排查与解决方案
错误原因
报错TypeError: (intermediate value).hostname.split(...).at is not a function的核心原因是:你使用的Node.js v12.22.9不支持数组的at()方法,该方法是Node.js v16.6.0及以上版本才引入的API,当前安装的truffle-plugin-verify版本依赖了这个方法,导致运行时出错。
解决方案
方案1:升级Node.js版本(推荐)
Node.js v12已停止官方维护,后续会有更多工具不再兼容该版本,建议升级到v16.6.0或更高的LTS版本(如v18.x):
- 若使用
nvm管理Node版本,执行以下命令:nvm install 18 nvm use 18 - 升级完成后,重新安装项目依赖以避免版本冲突:
rm -rf node_modules package-lock.json npm install - 再次执行验证命令:
truffle run verify [你的合约名称] --network bscTestnet
方案2:安装兼容Node v12的插件旧版本
如果暂时无法升级Node,可以安装支持Node v12的truffle-plugin-verify旧版本,例如:
npm install truffle-plugin-verify@0.5.25
注:该版本经测试兼容Node v12,若版本失效可自行查找插件历史版本中明确支持Node v12的版本号。
内容的提问来源于stack exchange,提问作者Hakikat41
相关产品推荐
相关产品推荐

