Transactions

錯誤:ethjs-q你___和噸Hjs−q在和r是ethjs-query格式化 RPC 的輸出時:“message”:“invalid sender”

  • January 7, 2022

我正在將 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

在此處輸入圖像描述

在此處輸入圖像描述

在此處輸入圖像描述

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