资源管理器调试
请访问资源管理器 https://explorer.hyperlane.xyz
然后将发送者/接收者地址或交易哈希粘贴到顶部搜索框中。所有匹配的消息将显示在结果列表中。单击行以获取更多详细信息。
调试失败信息
您将会知道消息处理失败,因为页面顶部的消息状态将显示为”Error“,页面右上角的部分将指定消息无法处理的原因。
如果您的消息未被传递,可能有几个因素造成了这种情况。
目标域无效(Invalid destination)
如果目标域标识符(uint32
)对于中继客户端来说是未知的,它们将无法传递您的消息。请参考domains以了解已知域和发送消息到这些目的地时要使用的规范标识符。
接收地址无效(Invalid recipient)
如果接收方地址(bytes32
)不是实现了 IMessageRecipient
接口的合约地址,则中继器将无法传递您的消息。
// SPDX-License-Identifier: MIT OR Apache-2.0
pragma solidity >=0.6.11;
interface IMessageRecipient {
function handle(
uint32 _origin,
bytes32 _sender,
bytes calldata _message
) external payable;
}
warning
EVM 地址(address
)必须左填充零以符合规范。请参考TypeCasts library中的pure addressToBytes32
实用函数,以及消息 dispatch 部分获取其他详细信息。
无法处理(Unprocessable)
如果消息接收者的IMessageRecipient.handle()
函数的燃料估算失败,中继器将无法传递该消息。中继器将继续为消息传递估算燃料,因为状态变化可能导致先前无法传递的消息成功传递。
info
如果您的用例错误不属于以上的类别,请通过 Discord on Discord。