Javascript
在同一個區塊中發送多個交易並增加隨機數
我需要同時從同一個地址向 10 個唯一地址發送 0.1 ETH。我正在手動增加每個事務的隨機數,並且事務已成功發送。
但是,每筆交易都會進入一個新區塊。例如,區塊 1 中的事務 A、2 中的 B、3 中的 C 等等。問題是這不能跨
n
事務擴展,因為我必須等待n
塊確認。是否有適當的方法批量發送 ETH,以便交易集合盡快確認?
編輯:這只在 Kovan 上測試過。即使 Kovan 的 4 秒出塊時間,在完全相同的時間發送的交易不應該包含在同一個塊中嗎?
您可以使用一種接收地址和要轉賬的金額並執行相應轉賬的方法來編寫一個可靠的合約。
然後,您可以在一次交易中實現您的目標。
出於安全原因,我建議擴展 Ownable 合約並使用 onlyOwner() 修飾符:
https://docs.openzeppelin.com/contracts/4.x/api/access#Ownable
:)
然而,我一直在玩類似的事情,在 ropsten 網路上,當測試發送 100 筆交易時,我在同一個區塊中獲得了多筆交易。我編寫了以下函式,允許我同時向我的智能合約發送任意數量的交易。也許這可以重新用於您的需求?
async function multipleTx(n) { accounts = await web3.eth.getAccounts() for (let i = 0; i < n; i++) { instance.methods .addSubmission(i, i, i, i) .send({ from: accounts[0], gasPrice: 10000000000, }) .then((receipt) => { console.log(receipt) }) } }