Closed A-new-b closed 3 years ago
@A-new-b 报错的关键信息是:invalid_sender_state: The sender of this transaction does not exist on this chain.
这个报错的意思是,这个 tx 的发送者在 chain state 里面没找到,虽然你发送了 declare 的交易,但是这个交易未打包之前,owner 的账户是尚未存在 chain state 里面的。这意味着下面两层含义:
我们在 @arcblock/tx-util
里面提供了验证交易或者账户状态的辅助方法:
const { verifyTxAsync, verifyAccountAsync, verifyAssetAsync } = require('@arcblock/tx-util');
const owner = fromRandom();
console.log({ owner: owner.toAddress() });
let hash = await client.declare({ moniker: 'owner', wallet: owner });
// 可以这样验证
await verifyAccountAsync({ address: owner.toAddress(), chainId: 'xxx', chainHost: '' });
// 也可以这样验证
await verifyTxAsync({ hash, chainId: 'xxx', chainHost: '' });
类似的,你创建完 Asset 之后,可以考虑使用 verifyAssetAsync
,传入 asset address 即可
owner
我想问下chainId的和chainHost这两个参数该怎么获取,我在官网的教程中似乎找不到详细的方法
@A-new-b https://playground.network.arcblockio.cn/dashboard 以这个 playground 链为例:
我在使用forgejs graphql-client时遇到问题,源代码如下
这几乎与官方的例子https://github.com/ArcBlock/forge-js/blob/master/forge/graphql-client/examples/asset.js一样 但却报错
这是我本地配置
这个配置的搭建方法几乎和https://docs.arcblock.io/zh/handbook/11-forge-cli-in-production/deploy-multi-party-network一样 所以我想知道这大概是什么问题