Web3js
類型錯誤:web3.eth.accounts.create 不是函式
用於與 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