錯誤:ethjs-q你___和噸Hjs−q在和r是ethjs-query格式化 RPC 的輸出時:“message”:“invalid sender”
我正在將 MetaMask 與我正在開發的應用程序一起使用,以前工作的函式現在返回一個非常嚴重的錯誤。
此錯誤已在平台中的許多函式上重複出現,因此我不會為任何給定函式提供特定程式碼。它們都是送出交易的 web3 函式——只從鏈中讀取數據的函式可以正常工作。
我還檢查了只是將 Rinkeby ETH 發送到另一個帳戶,但也失敗了。
這是錯誤:
Error: [ethjs-query] while formatting outputs from RPC '{ "value":{"code":-32603,"message":"Internal JSON-RPC error.", "data":{"code":-32000,"message":"invalid sender"}, "stack":"o@moz-extension://125500d6-db15-4fb6-bc31-b59dc631b8ab/background.js:60:358924\ns@moz-extension://125500d6-db15-4fb6-bc31-b59dc631b8ab/background.js:60:361390\ninternal@moz-extension://125500d6-db15-4fb6-bc31-b59dc631b8ab/background.js:60:361794\nl@moz-extension://125500d6-db15-4fb6-bc31-b59dc631b8ab/background.js:60:35483\n[715]</</t.exports/<@moz-extension://125500d6-db15-4fb6-bc31-b59dc631b8ab/background.js:60:34640\n" }}'
據此,我嘗試在MetaMask中重置帳戶,但沒有幫助。
是什麼導致了這個錯誤?我看到它說發件人無效,但無法弄清楚在這種情況下這意味著什麼。想法?
更新:為了響應@goodvibration 的程式碼請求,我將從其中一個失敗的函式中放入一些程式碼。如上所述,許多函式都失敗了,實際上任何寫入鏈的函式,不僅函式失敗,從 MetaMask 內部的簡單發送(將 Rinkeby Ether 從一個地址發送到另一個地址)也失敗了,清楚地表明這不是問題帶程式碼。
這是一個範例函式:
const signer = props.injectedProvider.getSigner() const contract = new ethers.Contract(process.env.CONTRACT_ADDRESS, abi, signer); const result = await contract.updateRole(arg1, arg2, name) .then(() => submitted()) .catch(e => err(e));
這是反應程式碼。這
injectedProvider
是一個 ethers.js 提供程序,作為道具從組件樹的上層傳入。合約地址儲存為 env var,並正常執行。updateRole
是目標合約中被呼叫的函式的名稱。submitted
並且err
是程式碼中其他地方定義的彈出通知。但是,即使程式碼中存在問題,它也不是上述錯誤的(唯一)原因。如前所述,我這樣做的理由是,即使 MetaMask 內的簡單發送也會失敗,並出現完全相同的錯誤。謝謝!
這可能太簡單了——但就我而言,重新啟動我的反應應用程序和我的本地區塊鏈解決了這個問題。
我也意識到我在使用 Firefox 時經常遇到這個問題。它還幫助我將瀏覽器切換到 Google Chrome。
Renaissance 和我得出的結論是,切換到任何 Chromium 瀏覽器(例如 Chrome、Chromium、Brave,我猜甚至是 Edge)都可以解決這個問題。我們倆在使用 Firefox 時都遇到了這個問題。
方法1:將瀏覽器更改為chrome(這對我有用)
方法 2:如果您已經使用 chrome,請按照以下步驟操作 => 1) 轉到設置 => 高級設置 => 點擊重置帳戶
2)try running the code again, this works for sure