Web3js

“需要身份驗證:密碼或解鎖”嘗試通過 web3 呼叫智能合約方法時出錯

  • September 26, 2021

我正在嘗試從我的 nodejs DAPP 呼叫智能合約方法(部署在遠端乙太坊帳戶上),並收到以下錯誤-

Error: authentication needed: password or unlock
   at Object.InvalidResponse (D:\dapp\node_modules\web3\lib\web3\errors.js:38:16)

我的 web3 DAPP 程式碼如下所示——

var ABI = [abiinterface];
var contract = web3.eth.contract(ABI);
var contractInstance = contract.at(accAddress);

我已經在我的 geth 控制台上執行了解鎖程式碼 -personal.unlockAccount(“address”),它返回 true,但仍然在 dapp 中收到“需要身份驗證:密碼或解鎖”錯誤。非常感謝任何幫助或指示。謝謝。

首先,確保您有一個帳戶。

web3.personal.listAccounts

如果你得到[]

web3.personal.newAccount()

再試一次。

然後 …

web3.personal.unlockAccount(web3.personal.listAccounts[0],"<password>", 15000)

意思是用這個密碼解鎖第一個帳戶 15,000 秒(不要打擾我一會兒。)

DAPP 方應該停止抱怨鎖。

希望能幫助到你。

我之前遇到過類似的問題。確保注意以下 3 件事:

  1. 您正在使用的帳戶是帳戶列表中的第一個帳戶。(或者,如果您正在使用其他帳戶,請確保您已在 nodejs 程式碼中進行了相應的更改。)
  2. 確保使用web3.personal.unlockAccount(web3.personal.listAccounts[0],"MyPassword", 15000)在我的情況下,它是第一個帳戶本身來解鎖同一個帳戶。
  3. 該帳戶包含一些乙太幣。

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