Web3js
交易永遠不會在 Polygon 測試網上被探勘
一段時間以來,我一直在嘗試使用 nodejs 發送 tx,但是 tx 僅輸出交易雜湊,但從未確認或探勘,我使用以下參數相同
{ txParams: { nonce: '0x24b', from: '0x2FF312a35e4bBD2158997D90CC81bC298059F2D1', gas: '0xac7b', gasPrice: '0x12a05f200', gasLimit: '0x4c4b40', to: '0xb7F1A82f326751E1F8387b4C54778836BfcEF9b8', data: '0x289f0fee0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000607b2234383037223a5b343830372c22434f4d504c45544544222c22307834326137653836376133303261396530643732643735623539383836353933373062376366356131343532613336653035656166623130666433383963343235225d7d' } }
如果需要更多資訊,請告訴我。這裡有一些txs供參考
- https://mumbai.polygonscan.com/tx/0x3bb98220b25f39d059b5065229632f6ab3b4c66133a305e442f07f80bb934f98
- https://mumbai.polygonscan.com/tx/0xfcc05e6ade78d661e1b6374cc389f83c304a496e79b0f5fcedcad7a38a50d80a
- https://mumbai.polygonscan.com/tx/0x1999d8f75617e7c844eed7d34843c4a599627751d00214081fb8c1637ba8d3db
假設您的地址確實是:
0x2FF312a35e4bBD2158997D90CC81bC298059F2D1
您可能無意中創建了一個隨機數差距(請參閱此答案)。
該帳戶的 nonce 為
556
(1 + last tx nonce ) 但在您的程式碼中,您將 nonce 設置為0x24b
is587
。這是一個隨機數差距。交易不會亂序處理,因此在填補空白之前一直處於待處理狀態。這也通過 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 匹配時工作。
如果這確實是問題所在,您可能還想取消之前的交易。但是您在測試網上,所以我懷疑它是否非常重要。