From ee94109bd33c7cc3c49bc6edca2941f01e8b33a2 Mon Sep 17 00:00:00 2001 From: jash Date: Sat, 6 Oct 2018 21:45:45 +0200 Subject: [PATCH] added extended key validator --- .../generators/app/features/000_cyphernode.js | 15 +++++---------- .../generator-cyphernode/generators/app/index.js | 11 +++++++++++ install/generator-cyphernode/package.json | 1 + 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/install/generator-cyphernode/generators/app/features/000_cyphernode.js b/install/generator-cyphernode/generators/app/features/000_cyphernode.js index 7ee54c6..82f69f8 100644 --- a/install/generator-cyphernode/generators/app/features/000_cyphernode.js +++ b/install/generator-cyphernode/generators/app/features/000_cyphernode.js @@ -14,16 +14,11 @@ module.exports = { choices: utils._featureChoices() }, { - type: 'confirm', - name: 'cyphernode_rocks0', - default: utils._getDefault( 'cyphernode_rocks0' ), - message: 'Does cyphernode rock?'+'\n', - }, - { - type: 'confirm', - name: 'cyphernode_rocks1', - default: utils._getDefault( 'cyphernode_rocks1' ), - message: 'Does cyphernode rock?'+'\n', + type: 'input', + name: 'cyphernode_xpub', + default: utils._getDefault( 'cyphernode_xpub' ), + message: 'What is your xpub to watch?'+'\n', + validate: utils._xkeyValidator }]; }, env: function( props ) { diff --git a/install/generator-cyphernode/generators/app/index.js b/install/generator-cyphernode/generators/app/index.js index 4d742aa..5e5df58 100644 --- a/install/generator-cyphernode/generators/app/index.js +++ b/install/generator-cyphernode/generators/app/index.js @@ -6,6 +6,7 @@ const wrap = require('wordwrap')(86); const validator = require('validator'); const path = require("path"); const featureChoices = require(path.join(__dirname, "features.json")); +const coinstring = require('coinstring'); let featurePromptModules = []; const normalizedPath = path.join(__dirname, "features"); @@ -76,6 +77,16 @@ module.exports = class extends Generator { return validator.isIP((ip+"").trim()); } + _xpubValidator( xpub ) { + try { + coinstring.decode(xpub); + } catch( e ) { + throw new Error('Invalid extended public key. Please check your input.'); + } + return true; + } + + _trimFilter( input ) { return (input+"").trim(); } diff --git a/install/generator-cyphernode/package.json b/install/generator-cyphernode/package.json index 32d63bd..634a27a 100644 --- a/install/generator-cyphernode/package.json +++ b/install/generator-cyphernode/package.json @@ -21,6 +21,7 @@ }, "dependencies": { "chalk": "^2.1.0", + "coinstring": "^2.3.0", "validator": "^10.8.0", "wordwrap": "^1.0.0", "yeoman-generator": "^2.0.1"