Web3js
如何在多邊形 Matic 上簽署交易?
我有一個執行在乙太坊主網、Rinkeby、Kovan 和 BSC 上的智能合約。我正在使用 web3.js 通過以下方式簽署交易:
var data = contract.methods.MyFunction(from+'', value+'').encodeABI(); var rawTrx = {"to": CONTRACT_ADDRESS, "gas": 5000000, "nonce":nonce, "data": data }; web3js.eth.accounts.signTransaction(rawTrx, SIGN) .then(signedTx => web3js.eth.sendSignedTransaction(signedTx.rawTransaction)) .then(function(receipt){ return true; }) .catch((err) => { console.log("ERROR 1: " + err); return false;});
我通過 Polygon RPC URL 發送它:https ://polygon-rpc.com
它冷漠地返回幾個錯誤,例如:
- 錯誤 1:錯誤:返回錯誤:tx 費用(1.50 乙太)超過配置的上限(1.00 乙太)
- 錯誤 1:錯誤:返回錯誤:替換交易價格過低
- 錯誤 1:錯誤:交易在 750 秒內沒有被探勘,請確保您的交易已正確發送。請注意,它可能仍被開採!
知道為什麼只發生在 Polygon Matic 網路中嗎?在其他乙太坊兼容網路中完美執行。
網路隨機數管理似乎有問題。從 rawTrx 中移除 nonce 並讓 Polygon 網路分配一個。