Web3js

類型錯誤:web3.eth.accounts.create 不是函式

  • February 21, 2019

用於與 test-net 通信的 javascript 文件:

$(document).ready(function(){

if (typeof web3 !== 'undefined'){
 console.log('Web3 found');
   web3 = new Web3(web3.currentProvider);
 } else {
   web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}

$("#creatAccountSubmit").click(function(){
var count = $("#noOfAccount").val();
for (let index = 0; index < count; index++) {
 var accounts = web3.eth.accounts.create();
 console.log(accounts);

}    
});
});

我使用 ganache-cli 作為本地提供程序我不知道它使用哪個 web3 版本,但我的項目文件夾中的 package.json 文件似乎使用 1.0.0

{
"name": "project",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
 "test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
 "web3": "^1.0.0-beta.30"
}
}  

但是在執行網頁以創建帳戶後出現錯誤

“TypeError:web3.eth.accounts.create 不是函式”

但是節點控制台(它使用 web3-1.0.0)我可以執行相同的命令,我該如何解決這個錯誤,我認為更改 ganache-cli 使用的 web3 版本可以完成任務但不知道該怎麼做它?

可以使用以下命令創建帳戶。

          web3.personal.newAccount(newPassword);

此方法生成一個新的私鑰並將其儲存在密鑰儲存目錄中。密鑰文件使用給定的密碼片語/密碼加密,並返回新帳戶的地址。

參考:- https://github.com/ethereum/go-ethereum/wiki/Management-APIs#personal_newaccount

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