如何在 web3js 中进行多笔交易
Posted
技术标签:
【中文标题】如何在 web3js 中进行多笔交易【英文标题】:How to make multiple transaction in web3js 【发布时间】:2018-09-12 10:04:05 【问题描述】:我知道 web3js 的 web3.eth.sendSignedTransaction() 用于发送交易并作为回报给我们交易哈希。但是当我想在一个循环中进行多个事务时。它给了我这样的错误
1 - Transaction known
2 - duplicate transaction
3 - error
那么我怎样才能进行多笔交易以发送可以循环运行的令牌。导致此问题的主要问题是 nounce(最后挖掘交易的交易计数)。交易没有被挖掘,我们给他们多个交易,因此我们得到相同的通知结果,导致所有这些错误。但是有一些方法可以发送多个交易。因为当我在 myetherwallet 或 metamask 中执行相同的任务时,它可以发送多个交易。
【问题讨论】:
增加nonce效果很好,但你需要使用web3.eth.accounts.signTransaction
而不是web3.eth.sendSignedTransaction
【参考方案1】:
只需在您发送的每笔交易中增加随机数。
【讨论】:
如果中间有任何交易失败怎么办。表示 5 工作 6 没有工作 7 再次工作 随机数仍然需要增加,如果这就是你的要求。 增加 nounce 不起作用。该交易未添加到区块链中。在 etherscan 中,我收到消息,因为找不到交易。虽然我在 web3js 中收到了事务哈希。 您需要在问题中提供更多信息(例如您的代码)。 参考此链接ethereum.stackexchange.com/questions/24828/… 在 Web3js 中,我正在运行要处理的地址和值的 forEach 循环。 web3.eth.getTransactionCount().then((lastTransactionCount)=> object.forEach(function(obj,index) var a = obj.address; var b = obj.value; newCount = lastTransactionCOunt + index web3.eth。 sendSignedTransaction() ) 我希望上述代码的逻辑有所帮助。以上是关于如何在 web3js 中进行多笔交易的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 web3js 在solidity 中建立一个大的字符串数组