WeBankBlockchain/WeCross

合约跨链调用失败,出现the name's address not exist的问题

wxudong opened this issue · 4 comments

BUG描述
我这边在尝试两个BCOS之间的合约跨链调用,BCOS1部署了InterchainSample.sol合约,BCOS2部署了HelloWeCross.sol合约
执行sendTransaction payment.bcos2.hello set 是够调用BCOS2成功
执行sendTransaction payment.bcos1.interchain interchain payment.bcos2.hello set "Hello world" payment.bcos.interchain callback 调用失败,没有调用到BCOS2

失败log, BCOS1的router报错找不到地址:the name's address not exist
ERROR InterchainJob() - Failed to handle current inter chain request: ["28","1","payment.bcos2.hello","set","["Hello world"]","payment.bcos1.interchain","callback","0x071ad60009838f771ac762b08c91bddffc92403c"], path: payment.bcos1.WeCrossHub, errorMessage: GET_XA_TRANSACTION_STATE_ERROR, internalMessage: the name's address not exist.

另外,BCOS2也部署InterchainSample.sol合约,测试sendTransaction payment.bcos1.interchain interchain payment.bcos2.interchain set "Hello world" payment.bcos.interchain callback 结果也是成功的,说明使用示例没有问题。

请帮忙分析下原因吧,感谢。

你的请求里的回调的资源路径写错了吧,应该是payment.bcos1.interchain?你写的是payment.bcos.interchain。

你的请求里的回调的资源路径写错了吧,应该是payment.bcos1.interchain?你写的是payment.bcos.interchain。

上面是我写描述的时候写错了,调用的时候写的就是payment.bcos1.interchain,应该跟这个回调没关系,主要是bcos2上没有产生交易,说明没调用到bcos2上,提示的就是找不到需要调用的地址。这个问题应该很容易复现,好奇怪,我再看看源码找找原因吧

你的请求里的回调的资源路径写错了吧,应该是payment.bcos1.interchain?你写的是payment.bcos.interchain。

上面是我写描述的时候写错了,调用的时候写的就是payment.bcos1.interchain,应该跟这个回调没关系,主要是bcos2上没有产生交易,说明没调用到bcos2上,提示的就是找不到需要调用的地址。这个问题应该很容易复现,好奇怪,我再看看源码找找原因吧

今天社区用户也反馈了这个问题,经检查,是我们代码有bug,在这个pr #520 修复了。