Web3js

如何在多邊形 Matic 上簽署交易?

  • December 14, 2021

我有一個執行在乙太坊主網、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 網路分配一個。

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