我正在使用 Polkadot JS API 在 Westend 上发送交易。为此,片段是这样的:
const hash = await api.tx.balances
.transfer(to, amount)
.signAndSend(from, { tip, nonce: -1 })
.catch(e => {
throw e;
});
我得到了一个很好的哈希值,并且余额正在按预期更新。但是在 Subscan 上找不到我得到的哈希值。当我获取账户的交易历史时,我看到了一个不同的哈希值,而不是我执行上述函数得到的哈希值。我从直接查询 Subscan(在https://westend.subscan.io/api/scan/transfers)得到的那个哈希是正确的。它可以通过 API 和使用 Subscan 的 UI 在 Subscan 上找到。
示例:我刚刚在 Westend 发送了一笔新交易。我得到了哈希0xdc2605ef0f21c77aa09f4e2df762a729bb2ecb5bb5602fe7a0858be2515c085c
;
如果我在 Subscan 上搜索该哈希,它不存在。
现在,我获取了账户的交易历史,发现我的最后一笔交易是:
{
"from": "5Ec2BnQhmoM7anBrXi2wvgPKBUrTDS1ELmcR3j68cgXZxCuo",
"to": "5HeRXojbvrsgk3x37haUJgxZhFZy8hvsBo9zDGsEsU8XhRRh",
"extrinsic_index": "6089109-2",
"success": true,
"hash": "0xf026f07bf8736e7b9a664d08529ef88466f5d52a7237d202560cad680865c5a5",
"block_num": 6089109,
"block_timestamp": 1623872502,
"module": "balances",
"amount": "0.000000010014",
"fee": "15700001585",
"nonce": 20,
"asset_symbol": "",
"from_account_display": {
"address": "5Ec2BnQhmoM7anBrXi2wvgPKBUrTDS1ELmcR3j68cgXZxCuo",
"display": "",
"judgements": null,
"account_index": "",
"identity": false,
"parent": null
},
"to_account_display": {
"address": "5HeRXojbvrsgk3x37haUJgxZhFZy8hvsBo9zDGsEsU8XhRRh",
"display": "",
"judgements": null,
"account_index": "",
"identity": false,
"parent": null
}
}
我们在那里看到的哈希 ( 0xf026f07bf8736e7b9a664d08529ef88466f5d52a7237d202560cad680865c5a5
) 是正确的。而且之前的 hash ( 0xdc2605ef0f21c77aa09f4e2df762a729bb2ecb5bb5602fe7a0858be2515c085c
) 甚至没有被引用,我不知道它是什么,也不知道函数为什么signAndSend
返回它。我正在尝试获取给定 tx 有多少确认,但我不能,因为我在进行交易时得到的哈希(显然)是无用的 - 我正在我的数据库中存储我的哈希当我进行交易时得到。
任何人都可以在这里阐明一下吗?
谢谢!