From 2f393e744a644417a68ae2385294f5aa0513da9a Mon Sep 17 00:00:00 2001 From: Sebastian Kippe Date: Sat, 6 May 2017 15:34:35 +0200 Subject: [PATCH] Add script/bin for creating an Ethereum wallet --- .gitignore | 3 ++- package.json | 4 ++++ scripts/create-wallet.js | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100755 scripts/create-wallet.js diff --git a/.gitignore b/.gitignore index b512c09..e667aa2 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -node_modules \ No newline at end of file +node_modules +wallet.json diff --git a/package.json b/package.json index aa642e0..74f1efa 100644 --- a/package.json +++ b/package.json @@ -6,10 +6,14 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, + "bin": { + "kredits-wallet-create": "scripts/create-wallet.js" + }, "dependencies": { "ethereumjs-wallet": "mvayngrib/ethereumjs-wallet", "kredits-contracts": "67p/kredits-contracts", "node-fetch": "^1.6.3", + "prompt": "^1.0.0", "web3": "^0.18.4", "web3-provider-engine": "^12.0.3" }, diff --git a/scripts/create-wallet.js b/scripts/create-wallet.js new file mode 100755 index 0000000..339cef2 --- /dev/null +++ b/scripts/create-wallet.js @@ -0,0 +1,33 @@ +#!/usr/bin/env node + +const fs = require('fs'); +const Wallet = require('ethereumjs-wallet'); +const userPrompt = require('prompt'); + +let schema = { + properties: { + path: { + required: true, + default: 'wallet.json' + }, + password: { + hidden: true, + required: true + } + } +}; + +console.log(`You're about to create an Ethereum wallet. Please provide a path and password for encryption.\n`); + +userPrompt.start(); + +userPrompt.get(schema, (err, result) => { + if (err) { throw(err); } + + let wallet = Wallet.generate(); + let content = JSON.stringify(wallet.toV3(result.password)); + + fs.writeFileSync(result.path, content); + + console.log(`\nWrote encrypted wallet config to ${result.path}`); +});