使用单个交易处理2个以太坊交易



我使用第三方SDK方法并成功完成交易。我试图在单个ETH交易中执行两次相同的功能。使用SDK方法是不可能的。我试图通过使用这个函数来部署我自己的智能合约,但不幸的是,它没有函数/智能合约的ABI。我已经检查了web3, ethers.js的任何解决方案,但无法找到一个。

const firstTx = await api.method(); // returns transactionHash
const secondTx = await api.method(); // returns transactionHash

它们单独工作很好,但我需要用单个事务处理它们。第二个事务依赖于第一个事务,因此它必须等待第一个函数。另外,如果任何一个函数失败,两个事务都应该失败。

const singleTx = async() => {firstTX(); secondTx()} or {firstTx().then(()=>secondTx())} //returns single transactionHash

我需要以类似的方式实现它。我被这个问题困扰了两天多。任何推荐都是非常感谢的!

在web3js中,有一个返回promise事件的.send函数。事件返回几个参数,这里您正在寻找confirmation

你可以这样做:

myContract.methods.firstTx(args).send({from: wallet})
.on('confirmation', function(confirmationNumber, receipt){
myContract.methods.secondTx(args)
})

最新更新