Web3js

交易永遠不會在 Polygon 測試網上被探勘

  • December 3, 2021

一段時間以來,我一直在嘗試使用 nodejs 發送 tx,但是 tx 僅輸出交易雜湊,但從未確認或探勘,我使用以下參數相同

{
 txParams: {
   nonce: '0x24b',
   from: '0x2FF312a35e4bBD2158997D90CC81bC298059F2D1',
   gas: '0xac7b',
   gasPrice: '0x12a05f200',
   gasLimit: '0x4c4b40',
   to: '0xb7F1A82f326751E1F8387b4C54778836BfcEF9b8',
   data: '0x289f0fee0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000607b2234383037223a5b343830372c22434f4d504c45544544222c22307834326137653836376133303261396530643732643735623539383836353933373062376366356131343532613336653035656166623130666433383963343235225d7d'
 }
}

如果需要更多資訊,請告訴我。這裡有一些txs供參考

假設您的地址確實是:0x2FF312a35e4bBD2158997D90CC81bC298059F2D1

您可能無意中創建了一個隨機數差距(請參閱答案)。

該帳戶的 nonce 為556(1 + last tx nonce ) 但在您的程式碼中,您將 nonce 設置為0x24bis 587。這是一個隨機數差距。交易不會亂序處理,因此在填補空白之前一直處於待處理狀態。

這也通過 web3 對您的帳戶進行檢查:

import Web3 from "web3";

const web3 = new Web3(
 "https://speedy-nodes-nyc.moralis.io/YOUR-MORALIS-ID/polygon/mumbai"
);

const count = await web3.eth.getTransactionCount(
 "0x2FF312a35e4bBD2158997D90CC81bC298059F2D1"
);

console.log(`Next tx nonce should be : ${count}`);
// prints : 556

試試這樣:

 txParams: {
   nonce: '0x22c', // 556
   from: '0x2FF312a35e4bBD2158997D90CC81bC298059F2D1',
   gas: '0xac7b',
   gasPrice: '0x12a05f200',
   gasLimit: '0x4c4b40',
   to: '0xb7F1A82f326751E1F8387b4C54778836BfcEF9b8',
   data: '0x289f0fee0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000607b2234383037223a5b343830372c22434f4d504c45544544222c22307834326137653836376133303261396530643732643735623539383836353933373062376366356131343532613336653035656166623130666433383963343235225d7d'
 }

您應該讓 web3 / ethers 或您使用的任何東西根據您的帳戶為您設置 tx nonce。刪除對像中的 nonce 條目足以讓 web3 知道它必須為您填充它。

或者手動填寫,例如使用 Web3 getTransactionCount。但是不要將其設置為固定值,因為根據定義,它只能在 tx nonce 與只能發生一次的預期 nonce 匹配時工作。

如果這確實是問題所在,您可能還想取消之前的交易。但是您在測試網上,所以我懷疑它是否非常重要。

引用自:https://ethereum.stackexchange.com/questions/114877