Metamask - “參數指定 EIP-1559 事務,但目前網路不支持 EIP-1559”
我正在做一個小小的 erc 721 項目。我們有一個前端,允許使用者通過一個按鈕來鑄造我們的幾個 nft。
contract.methods.mint(tokensNumber).send({from: accounts[0], value: 75000000000000000 * tokensNumber} )
出於某種原因,我們的一部分使用者收到此錯誤:
MetaMask - RPC Error: Invalid transaction params: params specify an EIP-1559 transaction but the current network does not support EIP-1559 Object
我們注意到,共同點是他們所有人都在他們的元遮罩上獲得了舊的類型 0 交易表格,而不是帶有優先費用等的新 eip-1559 表格。但奇怪的是,一些使用者已經能夠成功地製作類型 0交易(我看到這兩種類型都在 etherscan 上成功交易)。
我們可以通過讓他們重新安裝 metamask 來解決他們的問題,然後他們會得到類型 2 表單,但這並不理想。
有沒有其他人有這個問題?有沒有可能在 Metamask 的盡頭?
我以前也為此苦苦掙扎。使用帶有 Ledger/Trezor 的 Metamask 的使用者會發生此錯誤。
似乎較新版本的 web3js 要求 Metamask 嚴格將 txs 作為 EIP1559 txs 發送,儘管 Ledger 尚不支持帶有 Metamask 的 EIP1559 txs。
Metamask 已在 10.1.0 版( https://github.com/MetaMask/metamask-extension/releases/tag/v10.1.0)上推出了 EIP1559 + Ledger 支持。這應該可以解決您面臨的問題。使用者已經可以在 Chrome 上直接更新到該版本,但仍在等待 Firefox 擴展的推出。
或者,您可以將 web3js 包版本刪除到較舊的版本(例如 1.2.x),儘管它有自己的怪癖。
上次我測試過,這也影響了其他工具,如 InstaDapp 和 Remix。
通過執行以下步驟,我能夠將我的 Chrome MetaMask 版本更新到 10.1.0:
- 導航到“管理擴展”
- 啟用“開發者模式”(右上角)
- 點擊“更新”(左上角)
我的 MetaMask 立即從 10.0.3 升級到了 10.1.0。
這修復了該錯誤。現在我在嘗試通過 etherscan 在 ERC20 代幣合約上送出 tx 時遇到了這個錯誤:
Error: [object Object]
我將在設備上更新我的 Ledger Live 軟體和 Ethereum 應用程序,看看是否能解決這個問題。
更新:我忘記在 Ledger Nano 乙太坊應用程序的“設置”下重新啟用“允許合約數據…”。允許此設置後,我終於可以再次通過 etherscan.io 與智能合約進行互動了!