使用Axelar实现Polygon到BNB跨链消息传递时执行失败求助
Axelar跨链调用(Polygon→BNB)交易回滚问题排查
报错信息翻译
Gas估计出现以下错误(见下文)。交易执行很可能会失败。是否要强制发送?返回错误:{"jsonrpc":"2.0","error":"execution reverted","id":7635389025522819}
排查步骤
核对链上合约地址与配置
确认使用的Axelar网关、Gas服务合约地址是Polygon对应网络(测试网/主网)的官方地址,避免主网/测试网地址混用,或链配置错误。检查Gas参数与余额
跨链调用需同时支付源链Gas和Axelar中继器的目标链Gas:- 调高
sendMessage传入的gasLimit值(BNB链Gas消耗逻辑与Polygon不同,可尝试从200000调整至300000以上) - 确保账户MATIC余额足够覆盖源链Gas+跨链Gas费用
- 调高
验证目标链合约状态
确认BNB链上已部署对应的Hello World接收合约,且调用sendMessage时填写的目标合约地址完全正确。目标合约未部署或地址错误会导致中继执行时回滚。检查代码细节匹配度
对比官方示例代码,确认:destinationChain参数拼写正确(如BNB测试网为"bnb-testnet",主网为"bnb",注意大小写与单词准确性)- 正确导入
IAxelarGateway、IAxelarGasService接口,函数签名与官方一致 payNativeGasForContractCall的参数(目标链、目标合约、消息内容)与sendMessage完全匹配
排查Remix环境问题
- 切换至稳定的Polygon节点(如Alchemy、Infura提供的节点),避免公共节点不稳定导致的问题
- 清空Remix缓存,重新编译、部署合约后重试
- 尝试强制发送交易,通过PolygonScan查询交易哈希,从链上日志获取更具体的回滚原因(如某个
require条件未满足)
内容的提问来源于stack exchange,提问作者benjamin852
相关产品推荐
相关产品推荐

