dappnode / DAppNodeSDK

dappnodesdk is a tool to mantain dappnode packages. It helps to initialize and publish an Aragon Package Manager Repository
GNU General Public License v3.0
61 stars 26 forks source link

Scrypt dependency is no longer maintained and fails on node12 #34

Closed Leibniz137 closed 4 years ago

Leibniz137 commented 5 years ago

gotta love the npm ecosystem

npx @dappnode/dappnodesdk

fails on node version 12.4.0

compilation errors

In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:
In file included from ../src/node-boilerplate/inc/scrypt_params_async.h:28:
In file included from ../src/node-boilerplate/inc/scrypt_async.h:28:
../src/node-boilerplate/inc/scrypt_common.h:39:14: warning: 'Get' is deprecated: Use maybe version [-Wdeprecated-declarations]
      N(obj->Get(Nan::New("N").ToLocalChecked())->Uint32Value()),
             ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8.h:3412:3: note: 'Get' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use maybe version", Local<Value> Get(Local<Value> key));
  ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8config.h:322:29: note: expanded from macro 'V8_DEPRECATE_SOON'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:
In file included from ../src/node-boilerplate/inc/scrypt_params_async.h:28:
In file included from ../src/node-boilerplate/inc/scrypt_async.h:28:
../src/node-boilerplate/inc/scrypt_common.h:39:63: error: too few arguments to function call, single argument 'context' was not specified
      N(obj->Get(Nan::New("N").ToLocalChecked())->Uint32Value()),
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8.h:2567:3: note: 'Uint32Value' declared here
  V8_WARN_UNUSED_RESULT Maybe<uint32_t> Uint32Value(
  ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8config.h:347:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:
In file included from ../src/node-boilerplate/inc/scrypt_params_async.h:28:
In file included from ../src/node-boilerplate/inc/scrypt_async.h:28:
../src/node-boilerplate/inc/scrypt_common.h:40:14: warning: 'Get' is deprecated: Use maybe version [-Wdeprecated-declarations]
      r(obj->Get(Nan::New("r").ToLocalChecked())->Uint32Value()),
             ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8.h:3412:3: note: 'Get' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use maybe version", Local<Value> Get(Local<Value> key));
  ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8config.h:322:29: note: expanded from macro 'V8_DEPRECATE_SOON'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:
In file included from ../src/node-boilerplate/inc/scrypt_params_async.h:28:
In file included from ../src/node-boilerplate/inc/scrypt_async.h:28:
../src/node-boilerplate/inc/scrypt_common.h:40:63: error: too few arguments to function call, single argument 'context' was not specified
      r(obj->Get(Nan::New("r").ToLocalChecked())->Uint32Value()),
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8.h:2567:3: note: 'Uint32Value' declared here
  V8_WARN_UNUSED_RESULT Maybe<uint32_t> Uint32Value(
  ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8config.h:347:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:
In file included from ../src/node-boilerplate/inc/scrypt_params_async.h:28:
In file included from ../src/node-boilerplate/inc/scrypt_async.h:28:
../src/node-boilerplate/inc/scrypt_common.h:41:14: warning: 'Get' is deprecated: Use maybe version [-Wdeprecated-declarations]
      p(obj->Get(Nan::New("p").ToLocalChecked())->Uint32Value()) {}
             ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8.h:3412:3: note: 'Get' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use maybe version", Local<Value> Get(Local<Value> key));
  ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8config.h:322:29: note: expanded from macro 'V8_DEPRECATE_SOON'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:
In file included from ../src/node-boilerplate/inc/scrypt_params_async.h:28:
In file included from ../src/node-boilerplate/inc/scrypt_async.h:28:
../src/node-boilerplate/inc/scrypt_common.h:41:63: error: too few arguments to function call, single argument 'context' was not specified
      p(obj->Get(Nan::New("p").ToLocalChecked())->Uint32Value()) {}
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8.h:2567:3: note: 'Uint32Value' declared here
  V8_WARN_UNUSED_RESULT Maybe<uint32_t> Uint32Value(
  ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8config.h:347:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:
In file included from ../src/node-boilerplate/inc/scrypt_params_async.h:28:
../src/node-boilerplate/inc/scrypt_async.h:53:17: warning: 'Call' is deprecated [-Wdeprecated-declarations]
      callback->Call(1, argv);
                ^
../../nan/nan.h:1673:3: note: 'Call' has been explicitly marked deprecated here
  NAN_DEPRECATED inline v8::Local<v8::Value>
  ^
../../nan/nan.h:103:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:
../src/node-boilerplate/inc/scrypt_params_async.h:35:36: error: too few arguments to function call, single argument 'context' was not specified
      maxtime(info[0]->NumberValue()),
              ~~~~~~~~~~~~~~~~~~~~ ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8.h:2564:3: note: 'NumberValue' declared here
  V8_WARN_UNUSED_RESULT Maybe<double> NumberValue(Local<Context> context) const;
  ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8config.h:347:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:
../src/node-boilerplate/inc/scrypt_params_async.h:36:39: error: too few arguments to function call, single argument 'context' was not specified
      maxmemfrac(info[1]->NumberValue()),
                 ~~~~~~~~~~~~~~~~~~~~ ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8.h:2564:3: note: 'NumberValue' declared here
  V8_WARN_UNUSED_RESULT Maybe<double> NumberValue(Local<Context> context) const;
  ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8config.h:347:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:
../src/node-boilerplate/inc/scrypt_params_async.h:37:36: error: too few arguments to function call, single argument 'context' was not specified
      maxmem(info[2]->IntegerValue()),
             ~~~~~~~~~~~~~~~~~~~~~ ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8.h:2565:3: note: 'IntegerValue' declared here
  V8_WARN_UNUSED_RESULT Maybe<int64_t> IntegerValue(
  ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8config.h:347:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:
../src/node-boilerplate/inc/scrypt_params_async.h:38:39: error: too few arguments to function call, single argument 'context' was not specified
      osfreemem(info[3]->IntegerValue())
                ~~~~~~~~~~~~~~~~~~~~~ ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8.h:2565:3: note: 'IntegerValue' declared here
  V8_WARN_UNUSED_RESULT Maybe<int64_t> IntegerValue(
  ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8config.h:347:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
../src/node-boilerplate/scrypt_params_async.cc:23:8: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
  obj->Set(Nan::New("N").ToLocalChecked(), Nan::New<Integer>(logN));
       ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8.h:3358:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use maybe version",
  ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8config.h:322:29: note: expanded from macro 'V8_DEPRECATE_SOON'
  declarator __attribute__((deprecated(message)))
                            ^
../src/node-boilerplate/scrypt_params_async.cc:24:8: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
  obj->Set(Nan::New("r").ToLocalChecked(), Nan::New<Integer>(r));
       ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8.h:3358:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use maybe version",
  ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8config.h:322:29: note: expanded from macro 'V8_DEPRECATE_SOON'
  declarator __attribute__((deprecated(message)))
                            ^
../src/node-boilerplate/scrypt_params_async.cc:25:8: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
  obj->Set(Nan::New("p").ToLocalChecked(), Nan::New<Integer>(p));
       ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8.h:3358:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATE_SOON("Use maybe version",
  ^
/Users/nathaniel/.node-gyp/12.4.0/include/node/v8config.h:322:29: note: expanded from macro 'V8_DEPRECATE_SOON'
  declarator __attribute__((deprecated(message)))
                            ^
../src/node-boilerplate/scrypt_params_async.cc:32:13: warning: 'Call' is deprecated [-Wdeprecated-declarations]
  callback->Call(2, argv);
            ^
../../nan/nan.h:1673:3: note: 'Call' has been explicitly marked deprecated here
  NAN_DEPRECATED inline v8::Local<v8::Value>
  ^
../../nan/nan.h:103:40: note: expanded from macro 'NAN_DEPRECATED'
# define NAN_DEPRECATED __attribute__((deprecated))
                                       ^
8 warnings and 7 errors generated.
make: *** [Release/obj.target/scrypt/src/node-boilerplate/scrypt_params_async.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:200:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Darwin 18.6.0
gyp ERR! command "/usr/local/Cellar/node/12.4.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/nathaniel/.npm/_npx/22869/lib/node_modules/@dappnode/dappnodesdk/node_modules/scrypt
gyp ERR! node -v v12.4.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! scrypt@6.0.3 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the scrypt@6.0.3 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/nathaniel/.npm/_logs/2019-06-09T19_27_35_428Z-debug.log
Install for [ '@dappnode/dappnodesdk@latest' ] failed with code 1

scrypt.js

It appears the error is coming from scrypt, which is a nested dependency of the sdk:

$ npm-remote-ls @dappnode/dappnodesdk | grep scrypt
   │  │  │  ├─ scrypt.js@0.3.0
   │  │  │  │  ├─ scryptsy@1.2.1
   │  │  │  │  └─ scrypt@6.0.3
   │  │  │  ├─ scrypt.js@0.2.0
   │  │  │  │  ├─ scryptsy@1.2.1
   │  │  │  │  └─ scrypt@6.0.3
   │  │  │  │  ├─ scrypt-js@2.0.3

this appears to be a similar issue with the same root cause: https://github.com/syscoin/sysethereum-contracts/issues/1

Leibniz137 commented 5 years ago

These look like the downstream dependencies:

$ npm-remote-ls @dappnode/dappnodesdk
could not find a satisfactory version for string git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2
could not find a satisfactory version for string git+https://github.com/frozeman/bignumber.js-nolookahead.git
could not find a satisfactory version for string git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible
could not find a satisfactory version for string git+https://github.com/ethereumjs/ethereumjs-abi.git
could not find a satisfactory version for string github:ahultgren/async-eventemitter#fa06e39e56786ba541c180061dbf2c0a5bbf951c
could not find a satisfactory version for string git+https://github.com/debris/bignumber.js.git#master
└─ @dappnode/dappnodesdk@0.1.16
   ├─ execa@1.0.0
   │  ├─ cross-spawn@6.0.5
   │  │  ├─ nice-try@1.0.5
   │  │  ├─ path-key@2.0.1
   │  │  ├─ semver@5.7.0
   │  │  ├─ shebang-command@1.2.0
   │  │  │  └─ shebang-regex@1.0.0
   │  │  └─ which@1.3.1
   │  │     └─ isexe@2.0.0
   │  ├─ get-stream@4.1.0
   │  │  └─ pump@3.0.0
   │  │     ├─ end-of-stream@1.4.1
   │  │     │  └─ once@1.4.0
   │  │     └─ once@1.4.0
   │  │        └─ wrappy@1.0.2
   │  ├─ is-stream@1.1.0
   │  ├─ npm-run-path@2.0.2
   │  │  └─ path-key@2.0.1
   │  ├─ p-finally@1.0.0
   │  ├─ signal-exit@3.0.2
   │  └─ strip-eof@1.0.0
   ├─ chalk@2.4.2
   │  ├─ ansi-styles@3.2.1
   │  │  └─ color-convert@1.9.3
   │  │     └─ color-name@1.1.3
   │  ├─ escape-string-regexp@1.0.5
   │  └─ supports-color@5.5.0
   │     └─ has-flag@3.0.0
   ├─ ethereum-ens@0.7.7
   │  ├─ js-sha3@0.5.7
   │  ├─ eth-ens-namehash@2.0.8
   │  │  ├─ idna-uts46-hx@2.3.1
   │  │  │  └─ punycode@2.1.0
   │  │  └─ js-sha3@0.5.7
   │  ├─ pako@1.0.10
   │  ├─ text-encoding@0.6.4
   │  ├─ bluebird@3.5.5
   │  ├─ underscore@1.9.1
   │  └─ web3@1.0.0-beta.37
   ├─ commander@2.20.0
   ├─ figlet@1.2.3
   ├─ @babel/runtime@7.4.5
   │  └─ regenerator-runtime@0.13.2
   ├─ chai@4.2.0
   │  ├─ assertion-error@1.1.0
   │  ├─ check-error@1.0.2
   │  ├─ get-func-name@2.0.0
   │  ├─ deep-eql@3.0.1
   │  │  └─ type-detect@4.0.8
   │  ├─ pathval@1.1.0
   │  └─ type-detect@4.0.8
   ├─ web3-utils@1.0.0-beta.37
   │  ├─ eth-lib@0.1.27
   │  │  ├─ keccakjs@0.2.3
   │  │  │  ├─ browserify-sha3@0.0.4
   │  │  │  │  ├─ js-sha3@0.6.1
   │  │  │  │  └─ safe-buffer@5.1.2
   │  │  │  └─ sha3@1.2.3
   │  │  │     └─ nan@2.13.2
   │  │  ├─ bn.js@4.11.8
   │  │  ├─ nano-json-stream-parser@0.1.2
   │  │  ├─ servify@0.1.12
   │  │  │  ├─ body-parser@1.19.0
   │  │  │  │  ├─ bytes@3.1.0
   │  │  │  │  ├─ content-type@1.0.4
   │  │  │  │  ├─ debug@2.6.9
   │  │  │  │  │  └─ ms@2.0.0
   │  │  │  │  ├─ depd@1.1.2
   │  │  │  │  ├─ http-errors@1.7.2
   │  │  │  │  │  ├─ depd@1.1.2
   │  │  │  │  │  ├─ inherits@2.0.3
   │  │  │  │  │  ├─ setprototypeof@1.1.1
   │  │  │  │  │  ├─ statuses@1.5.0
   │  │  │  │  │  └─ toidentifier@1.0.0
   │  │  │  │  ├─ on-finished@2.3.0
   │  │  │  │  │  └─ ee-first@1.1.1
   │  │  │  │  ├─ iconv-lite@0.4.24
   │  │  │  │  ├─ qs@6.7.0
   │  │  │  │  ├─ type-is@1.6.18
   │  │  │  │  │  ├─ media-typer@0.3.0
   │  │  │  │  │  └─ mime-types@2.1.24
   │  │  │  │  └─ raw-body@2.4.0
   │  │  │  │     ├─ bytes@3.1.0
   │  │  │  │     ├─ unpipe@1.0.0
   │  │  │  │     ├─ http-errors@1.7.2
   │  │  │  │     └─ iconv-lite@0.4.24
   │  │  │  ├─ xhr@2.5.0
   │  │  │  │  ├─ global@4.3.2
   │  │  │  │  │  ├─ process@0.5.2
   │  │  │  │  │  └─ min-document@2.19.0
   │  │  │  │  │     └─ dom-walk@0.1.1
   │  │  │  │  ├─ parse-headers@2.0.2
   │  │  │  │  │  ├─ for-each@0.3.3
   │  │  │  │  │  └─ string.prototype.trim@1.1.2
   │  │  │  │  ├─ is-function@1.0.1
   │  │  │  │  └─ xtend@4.0.1
   │  │  │  ├─ request@2.88.0
   │  │  │  │  ├─ aws-sign2@0.7.0
   │  │  │  │  ├─ aws4@1.8.0
   │  │  │  │  ├─ caseless@0.12.0
   │  │  │  │  ├─ combined-stream@1.0.8
   │  │  │  │  │  └─ delayed-stream@1.0.0
   │  │  │  │  ├─ extend@3.0.2
   │  │  │  │  ├─ forever-agent@0.6.1
   │  │  │  │  ├─ form-data@2.3.3
   │  │  │  │  │  ├─ asynckit@0.4.0
   │  │  │  │  │  ├─ combined-stream@1.0.8
   │  │  │  │  │  └─ mime-types@2.1.24
   │  │  │  │  ├─ isstream@0.1.2
   │  │  │  │  ├─ is-typedarray@1.0.0
   │  │  │  │  ├─ har-validator@5.1.3
   │  │  │  │  │  ├─ ajv@6.10.0
   │  │  │  │  │  └─ har-schema@2.0.0
   │  │  │  │  ├─ http-signature@1.2.0
   │  │  │  │  │  ├─ assert-plus@1.0.0
   │  │  │  │  │  ├─ jsprim@1.4.1
   │  │  │  │  │  │  ├─ assert-plus@1.0.0
   │  │  │  │  │  │  ├─ extsprintf@1.3.0
   │  │  │  │  │  │  ├─ verror@1.10.0
   │  │  │  │  │  │  │  ├─ assert-plus@1.0.0
   │  │  │  │  │  │  │  ├─ extsprintf@1.4.0
   │  │  │  │  │  │  │  └─ core-util-is@1.0.2
   │  │  │  │  │  │  └─ json-schema@0.2.3
   │  │  │  │  │  └─ sshpk@1.16.1
   │  │  │  │  │     ├─ assert-plus@1.0.0
   │  │  │  │  │     ├─ asn1@0.2.4
   │  │  │  │  │     │  └─ safer-buffer@2.1.2
   │  │  │  │  │     ├─ getpass@0.1.7
   │  │  │  │  │     │  └─ assert-plus@1.0.0
   │  │  │  │  │     ├─ dashdash@1.14.1
   │  │  │  │  │     │  └─ assert-plus@1.0.0
   │  │  │  │  │     ├─ safer-buffer@2.1.2
   │  │  │  │  │     ├─ jsbn@0.1.1
   │  │  │  │  │     ├─ bcrypt-pbkdf@1.0.2
   │  │  │  │  │     │  └─ tweetnacl@0.14.5
   │  │  │  │  │     ├─ ecc-jsbn@0.1.2
   │  │  │  │  │     │  ├─ jsbn@0.1.1
   │  │  │  │  │     │  └─ safer-buffer@2.1.2
   │  │  │  │  │     └─ tweetnacl@0.14.5
   │  │  │  │  ├─ json-stringify-safe@5.0.1
   │  │  │  │  ├─ oauth-sign@0.9.0
   │  │  │  │  ├─ mime-types@2.1.24
   │  │  │  │  ├─ performance-now@2.1.0
   │  │  │  │  ├─ safe-buffer@5.1.2
   │  │  │  │  ├─ uuid@3.3.2
   │  │  │  │  ├─ tunnel-agent@0.6.0
   │  │  │  │  │  └─ safe-buffer@5.1.2
   │  │  │  │  ├─ qs@6.5.2
   │  │  │  │  └─ tough-cookie@2.4.3
   │  │  │  │     ├─ psl@1.1.32
   │  │  │  │     └─ punycode@1.4.1
   │  │  │  ├─ cors@2.8.5
   │  │  │  │  ├─ object-assign@4.1.1
   │  │  │  │  └─ vary@1.1.2
   │  │  │  └─ express@4.17.1
   │  │  │     ├─ array-flatten@1.1.1
   │  │  │     ├─ accepts@1.3.7
   │  │  │     │  ├─ mime-types@2.1.24
   │  │  │     │  └─ negotiator@0.6.2
   │  │  │     ├─ content-type@1.0.4
   │  │  │     ├─ cookie-signature@1.0.6
   │  │  │     ├─ content-disposition@0.5.3
   │  │  │     │  └─ safe-buffer@5.1.2
   │  │  │     ├─ body-parser@1.19.0
   │  │  │     ├─ cookie@0.4.0
   │  │  │     ├─ debug@2.6.9
   │  │  │     ├─ depd@1.1.2
   │  │  │     ├─ escape-html@1.0.3
   │  │  │     ├─ encodeurl@1.0.2
   │  │  │     ├─ finalhandler@1.1.2
   │  │  │     │  ├─ encodeurl@1.0.2
   │  │  │     │  ├─ on-finished@2.3.0
   │  │  │     │  ├─ parseurl@1.3.3
   │  │  │     │  ├─ statuses@1.5.0
   │  │  │     │  ├─ debug@2.6.9
   │  │  │     │  ├─ escape-html@1.0.3
   │  │  │     │  └─ unpipe@1.0.0
   │  │  │     ├─ merge-descriptors@1.0.1
   │  │  │     ├─ fresh@0.5.2
   │  │  │     ├─ etag@1.8.1
   │  │  │     ├─ on-finished@2.3.0
   │  │  │     ├─ methods@1.1.2
   │  │  │     ├─ parseurl@1.3.3
   │  │  │     ├─ range-parser@1.2.1
   │  │  │     ├─ path-to-regexp@0.1.7
   │  │  │     ├─ proxy-addr@2.0.5
   │  │  │     │  ├─ ipaddr.js@1.9.0
   │  │  │     │  └─ forwarded@0.1.2
   │  │  │     ├─ qs@6.7.0
   │  │  │     ├─ serve-static@1.14.1
   │  │  │     │  ├─ encodeurl@1.0.2
   │  │  │     │  ├─ escape-html@1.0.3
   │  │  │     │  ├─ send@0.17.1
   │  │  │     │  └─ parseurl@1.3.3
   │  │  │     ├─ safe-buffer@5.1.2
   │  │  │     ├─ send@0.17.1
   │  │  │     │  ├─ debug@2.6.9
   │  │  │     │  ├─ destroy@1.0.4
   │  │  │     │  ├─ escape-html@1.0.3
   │  │  │     │  ├─ encodeurl@1.0.2
   │  │  │     │  ├─ fresh@0.5.2
   │  │  │     │  ├─ depd@1.1.2
   │  │  │     │  ├─ etag@1.8.1
   │  │  │     │  ├─ mime@1.6.0
   │  │  │     │  ├─ http-errors@1.7.2
   │  │  │     │  ├─ on-finished@2.3.0
   │  │  │     │  ├─ ms@2.1.1
   │  │  │     │  ├─ range-parser@1.2.1
   │  │  │     │  └─ statuses@1.5.0
   │  │  │     ├─ setprototypeof@1.1.1
   │  │  │     ├─ statuses@1.5.0
   │  │  │     ├─ vary@1.1.2
   │  │  │     ├─ utils-merge@1.0.1
   │  │  │     └─ type-is@1.6.18
   │  │  ├─ elliptic@6.4.1
   │  │  │  ├─ brorand@1.1.0
   │  │  │  ├─ bn.js@4.11.8
   │  │  │  ├─ hmac-drbg@1.0.1
   │  │  │  │  ├─ minimalistic-assert@1.0.1
   │  │  │  │  ├─ hash.js@1.1.7
   │  │  │  │  └─ minimalistic-crypto-utils@1.0.1
   │  │  │  ├─ minimalistic-crypto-utils@1.0.1
   │  │  │  ├─ hash.js@1.1.7
   │  │  │  │  ├─ inherits@2.0.3
   │  │  │  │  └─ minimalistic-assert@1.0.1
   │  │  │  ├─ inherits@2.0.3
   │  │  │  └─ minimalistic-assert@1.0.1
   │  │  ├─ ws@3.3.3
   │  │  │  ├─ async-limiter@1.0.0
   │  │  │  ├─ ultron@1.1.1
   │  │  │  └─ safe-buffer@5.1.2
   │  │  └─ xhr-request-promise@0.1.2
   │  │     └─ xhr-request@1.1.0
   │  │        ├─ object-assign@4.1.1
   │  │        ├─ buffer-to-arraybuffer@0.0.5
   │  │        ├─ query-string@5.1.1
   │  │        │  ├─ decode-uri-component@0.2.0
   │  │        │  ├─ object-assign@4.1.1
   │  │        │  └─ strict-uri-encode@1.1.0
   │  │        ├─ simple-get@2.8.1
   │  │        │  ├─ once@1.4.0
   │  │        │  ├─ simple-concat@1.0.0
   │  │        │  └─ decompress-response@3.3.0
   │  │        ├─ timed-out@4.0.1
   │  │        ├─ url-set-query@1.0.0
   │  │        └─ xhr@2.5.0
   │  ├─ bn.js@4.11.6
   │  ├─ ethjs-unit@0.1.6
   │  │  ├─ number-to-bn@1.7.0
   │  │  └─ bn.js@4.11.6
   │  ├─ number-to-bn@1.7.0
   │  │  ├─ strip-hex-prefix@1.0.0
   │  │  │  └─ is-hex-prefixed@1.0.0
   │  │  └─ bn.js@4.11.6
   │  ├─ randomhex@0.1.5
   │  ├─ utf8@2.1.1
   │  └─ underscore@1.8.3
   ├─ @aragon/os@4.2.0
   │  ├─ truffle-flattener@1.3.0
   │  │  ├─ find-up@2.1.0
   │  │  │  └─ locate-path@2.0.0
   │  │  │     ├─ p-locate@2.0.0
   │  │  │     │  └─ p-limit@1.3.0
   │  │  │     │     └─ p-try@1.0.0
   │  │  │     └─ path-exists@3.0.0
   │  │  ├─ mkdirp@0.5.1
   │  │  ├─ tsort@0.0.1
   │  │  ├─ solidity-parser-antlr@0.4.3
   │  │  └─ @resolver-engine/imports-fs@0.2.2
   │  │     ├─ debug@3.2.6
   │  │     │  └─ ms@2.1.2
   │  │     ├─ @resolver-engine/fs@0.2.1
   │  │     │  ├─ debug@3.2.6
   │  │     │  └─ @resolver-engine/core@0.2.1
   │  │     │     ├─ request@2.88.0
   │  │     │     └─ debug@3.2.6
   │  │     └─ @resolver-engine/imports@0.2.2
   │  │        ├─ hosted-git-info@2.7.1
   │  │        ├─ debug@3.2.6
   │  │        └─ @resolver-engine/core@0.2.1
   │  ├─ homedir@0.6.0
   │  ├─ mkdirp@0.5.1
   │  │  └─ minimist@0.0.8
   │  ├─ truffle-hdwallet-provider@0.0.3
   │  │  ├─ bip39@2.6.0
   │  │  │  ├─ create-hash@1.2.0
   │  │  │  │  ├─ cipher-base@1.0.4
   │  │  │  │  │  ├─ inherits@2.0.3
   │  │  │  │  │  └─ safe-buffer@5.1.2
   │  │  │  │  ├─ inherits@2.0.3
   │  │  │  │  ├─ md5.js@1.3.5
   │  │  │  │  │  ├─ hash-base@3.0.4
   │  │  │  │  │  │  ├─ inherits@2.0.3
   │  │  │  │  │  │  └─ safe-buffer@5.1.2
   │  │  │  │  │  ├─ inherits@2.0.3
   │  │  │  │  │  └─ safe-buffer@5.1.2
   │  │  │  │  ├─ sha.js@2.4.11
   │  │  │  │  │  ├─ safe-buffer@5.1.2
   │  │  │  │  │  └─ inherits@2.0.3
   │  │  │  │  └─ ripemd160@2.0.2
   │  │  │  │     ├─ hash-base@3.0.4
   │  │  │  │     └─ inherits@2.0.3
   │  │  │  ├─ pbkdf2@3.0.17
   │  │  │  │  ├─ create-hash@1.2.0
   │  │  │  │  ├─ create-hmac@1.1.7
   │  │  │  │  │  ├─ create-hash@1.2.0
   │  │  │  │  │  ├─ cipher-base@1.0.4
   │  │  │  │  │  ├─ inherits@2.0.3
   │  │  │  │  │  ├─ safe-buffer@5.1.2
   │  │  │  │  │  ├─ ripemd160@2.0.2
   │  │  │  │  │  └─ sha.js@2.4.11
   │  │  │  │  ├─ safe-buffer@5.1.2
   │  │  │  │  ├─ sha.js@2.4.11
   │  │  │  │  └─ ripemd160@2.0.2
   │  │  │  ├─ randombytes@2.1.0
   │  │  │  │  └─ safe-buffer@5.1.2
   │  │  │  ├─ safe-buffer@5.1.2
   │  │  │  └─ unorm@1.5.0
   │  │  ├─ ethereumjs-wallet@0.6.3
   │  │  │  ├─ aes-js@3.1.2
   │  │  │  ├─ bs58check@2.1.2
   │  │  │  │  ├─ create-hash@1.2.0
   │  │  │  │  ├─ bs58@4.0.1
   │  │  │  │  └─ safe-buffer@5.1.2
   │  │  │  ├─ ethereumjs-util@6.1.0
   │  │  │  │  ├─ bn.js@4.11.8
   │  │  │  │  ├─ create-hash@1.2.0
   │  │  │  │  ├─ ethjs-util@0.1.6
   │  │  │  │  │  ├─ is-hex-prefixed@1.0.0
   │  │  │  │  │  └─ strip-hex-prefix@1.0.0
   │  │  │  │  ├─ keccak@1.4.0
   │  │  │  │  │  ├─ inherits@2.0.3
   │  │  │  │  │  ├─ bindings@1.5.0
   │  │  │  │  │  ├─ safe-buffer@5.1.2
   │  │  │  │  │  └─ nan@2.14.0
   │  │  │  │  ├─ safe-buffer@5.1.2
   │  │  │  │  ├─ secp256k1@3.7.1
   │  │  │  │  └─ rlp@2.2.3
   │  │  │  ├─ hdkey@1.1.1
   │  │  │  │  ├─ coinstring@2.3.0
   │  │  │  │  │  ├─ bs58@2.0.1
   │  │  │  │  │  └─ create-hash@1.2.0
   │  │  │  │  ├─ safe-buffer@5.1.2
   │  │  │  │  └─ secp256k1@3.7.1
   │  │  │  │     ├─ bindings@1.5.0
   │  │  │  │     ├─ create-hash@1.2.0
   │  │  │  │     ├─ bip66@1.1.5
   │  │  │  │     │  └─ safe-buffer@5.1.2
   │  │  │  │     ├─ bn.js@4.11.8
   │  │  │  │     ├─ drbg.js@1.0.1
   │  │  │  │     │  ├─ browserify-aes@1.2.0
   │  │  │  │     │  ├─ create-hash@1.2.0
   │  │  │  │     │  └─ create-hmac@1.1.7
   │  │  │  │     ├─ elliptic@6.4.1
   │  │  │  │     ├─ nan@2.14.0
   │  │  │  │     └─ safe-buffer@5.1.2
   │  │  │  ├─ randombytes@2.1.0
   │  │  │  ├─ safe-buffer@5.1.2
   │  │  │  ├─ utf8@3.0.0
   │  │  │  ├─ scrypt.js@0.3.0
   │  │  │  │  ├─ scrypt@6.0.3
   │  │  │  │  │  └─ nan@2.14.0
   │  │  │  │  └─ scryptsy@1.2.1
   │  │  │  │     └─ pbkdf2@3.0.17
   │  │  │  └─ uuid@3.3.2
   │  │  ├─ web3@0.18.4
   │  │  │  ├─ crypto-js@3.1.8
   │  │  │  ├─ utf8@2.1.2
   │  │  │  ├─ xhr2@0.2.0
   │  │  │  └─ xmlhttprequest@1.8.0
   │  │  └─ web3-provider-engine@8.6.1
   │  │     ├─ ethereumjs-tx@1.3.7
   │  │     ├─ clone@2.1.2
   │  │     ├─ ethereumjs-block@1.7.1
   │  │     │  ├─ ethereumjs-tx@1.3.7
   │  │     │  ├─ ethereum-common@0.2.0
   │  │     │  ├─ async@2.6.2
   │  │     │  ├─ merkle-patricia-tree@2.3.2
   │  │     │  │  ├─ async@1.5.2
   │  │     │  │  ├─ ethereumjs-util@5.2.0
   │  │     │  │  ├─ level-ws@0.0.0
   │  │     │  │  │  ├─ xtend@2.1.2
   │  │     │  │  │  │  └─ object-keys@0.4.0
   │  │     │  │  │  └─ readable-stream@1.0.34
   │  │     │  │  │     ├─ core-util-is@1.0.2
   │  │     │  │  │     ├─ string_decoder@0.10.31
   │  │     │  │  │     ├─ isarray@0.0.1
   │  │     │  │  │     └─ inherits@2.0.3
   │  │     │  │  ├─ rlp@2.2.3
   │  │     │  │  ├─ memdown@1.4.1
   │  │     │  │  │  ├─ functional-red-black-tree@1.0.1
   │  │     │  │  │  ├─ ltgt@2.2.1
   │  │     │  │  │  ├─ immediate@3.2.3
   │  │     │  │  │  ├─ abstract-leveldown@2.7.2
   │  │     │  │  │  │  └─ xtend@4.0.1
   │  │     │  │  │  ├─ inherits@2.0.3
   │  │     │  │  │  └─ safe-buffer@5.1.2
   │  │     │  │  ├─ readable-stream@2.3.6
   │  │     │  │  ├─ levelup@1.3.9
   │  │     │  │  │  ├─ level-codec@7.0.1
   │  │     │  │  │  ├─ level-iterator-stream@1.3.1
   │  │     │  │  │  │  ├─ inherits@2.0.3
   │  │     │  │  │  │  ├─ level-errors@1.1.2
   │  │     │  │  │  │  │  └─ errno@0.1.7
   │  │     │  │  │  │  ├─ readable-stream@1.1.14
   │  │     │  │  │  │  │  ├─ isarray@0.0.1
   │  │     │  │  │  │  │  ├─ core-util-is@1.0.2
   │  │     │  │  │  │  │  ├─ string_decoder@0.10.31
   │  │     │  │  │  │  │  └─ inherits@2.0.3
   │  │     │  │  │  │  └─ xtend@4.0.1
   │  │     │  │  │  ├─ deferred-leveldown@1.2.2
   │  │     │  │  │  │  └─ abstract-leveldown@2.6.3
   │  │     │  │  │  │     └─ xtend@4.0.1
   │  │     │  │  │  ├─ level-errors@1.0.5
   │  │     │  │  │  │  └─ errno@0.1.7
   │  │     │  │  │  │     └─ prr@1.0.1
   │  │     │  │  │  ├─ prr@1.0.1
   │  │     │  │  │  ├─ semver@5.4.1
   │  │     │  │  │  └─ xtend@4.0.1
   │  │     │  │  └─ semaphore@1.1.0
   │  │     │  └─ ethereumjs-util@5.2.0
   │  │     ├─ ethereumjs-vm@2.6.0
   │  │     │  ├─ ethereumjs-common@1.2.1
   │  │     │  ├─ ethereumjs-account@2.0.5
   │  │     │  │  ├─ ethereumjs-util@5.2.0
   │  │     │  │  ├─ safe-buffer@5.1.2
   │  │     │  │  └─ rlp@2.2.3
   │  │     │  ├─ async-eventemitter@0.2.4
   │  │     │  │  └─ async@2.6.2
   │  │     │  ├─ async@2.6.2
   │  │     │  ├─ ethereumjs-block@2.2.0
   │  │     │  │  ├─ ethereumjs-common@1.2.1
   │  │     │  │  ├─ async@2.6.2
   │  │     │  │  ├─ ethereumjs-util@5.2.0
   │  │     │  │  ├─ ethereumjs-tx@1.3.7
   │  │     │  │  └─ merkle-patricia-tree@2.3.2
   │  │     │  ├─ ethereumjs-util@6.1.0
   │  │     │  ├─ functional-red-black-tree@1.0.1
   │  │     │  ├─ merkle-patricia-tree@2.3.2
   │  │     │  ├─ fake-merkle-patricia-tree@1.0.1
   │  │     │  │  └─ checkpoint-store@1.1.0
   │  │     │  │     └─ functional-red-black-tree@1.0.1
   │  │     │  ├─ rustbn.js@0.2.0
   │  │     │  └─ safe-buffer@5.1.2
   │  │     ├─ isomorphic-fetch@2.2.1
   │  │     │  ├─ whatwg-fetch@3.0.0
   │  │     │  └─ node-fetch@1.7.3
   │  │     │     ├─ encoding@0.1.12
   │  │     │     │  └─ iconv-lite@0.4.24
   │  │     │     └─ is-stream@1.1.0
   │  │     ├─ ethereumjs-util@5.2.0
   │  │     ├─ request@2.88.0
   │  │     ├─ async@2.6.2
   │  │     ├─ xtend@4.0.1
   │  │     ├─ xhr@2.5.0
   │  │     ├─ solc@0.4.26
   │  │     │  ├─ require-from-string@1.2.1
   │  │     │  ├─ memorystream@0.3.1
   │  │     │  ├─ fs-extra@0.30.0
   │  │     │  │  ├─ graceful-fs@4.1.15
   │  │     │  │  ├─ klaw@1.3.1
   │  │     │  │  │  └─ graceful-fs@4.1.15
   │  │     │  │  ├─ jsonfile@2.4.0
   │  │     │  │  ├─ path-is-absolute@1.0.1
   │  │     │  │  └─ rimraf@2.6.3
   │  │     │  ├─ semver@5.7.0
   │  │     │  └─ yargs@4.8.1
   │  │     │     ├─ decamelize@1.2.0
   │  │     │     ├─ get-caller-file@1.0.3
   │  │     │     ├─ os-locale@1.4.0
   │  │     │     │  └─ lcid@1.0.0
   │  │     │     │     └─ invert-kv@1.0.0
   │  │     │     ├─ cliui@3.2.0
   │  │     │     │  ├─ string-width@1.0.2
   │  │     │     │  ├─ strip-ansi@3.0.1
   │  │     │     │  │  └─ ansi-regex@2.1.1
   │  │     │     │  └─ wrap-ansi@2.1.0
   │  │     │     │     ├─ string-width@1.0.2
   │  │     │     │     └─ strip-ansi@3.0.1
   │  │     │     ├─ lodash.assign@4.2.0
   │  │     │     ├─ read-pkg-up@1.0.1
   │  │     │     │  ├─ find-up@1.1.2
   │  │     │     │  │  ├─ path-exists@2.1.0
   │  │     │     │  │  │  └─ pinkie-promise@2.0.1
   │  │     │     │  │  └─ pinkie-promise@2.0.1
   │  │     │     │  └─ read-pkg@1.1.0
   │  │     │     │     ├─ load-json-file@1.1.0
   │  │     │     │     │  ├─ pify@2.3.0
   │  │     │     │     │  ├─ strip-bom@2.0.0
   │  │     │     │     │  │  └─ is-utf8@0.2.1
   │  │     │     │     │  ├─ pinkie-promise@2.0.1
   │  │     │     │     │  ├─ parse-json@2.2.0
   │  │     │     │     │  │  └─ error-ex@1.3.2
   │  │     │     │     │  │     └─ is-arrayish@0.2.1
   │  │     │     │     │  └─ graceful-fs@4.1.15
   │  │     │     │     ├─ normalize-package-data@2.5.0
   │  │     │     │     │  ├─ hosted-git-info@2.7.1
   │  │     │     │     │  ├─ resolve@1.11.1
   │  │     │     │     │  │  └─ path-parse@1.0.6
   │  │     │     │     │  ├─ semver@5.7.0
   │  │     │     │     │  └─ validate-npm-package-license@3.0.4
   │  │     │     │     │     ├─ spdx-correct@3.1.0
   │  │     │     │     │     │  ├─ spdx-license-ids@3.0.4
   │  │     │     │     │     │  └─ spdx-expression-parse@3.0.0
   │  │     │     │     │     └─ spdx-expression-parse@3.0.0
   │  │     │     │     │        ├─ spdx-license-ids@3.0.4
   │  │     │     │     │        └─ spdx-exceptions@2.2.0
   │  │     │     │     └─ path-type@1.1.0
   │  │     │     │        ├─ pinkie-promise@2.0.1
   │  │     │     │        ├─ graceful-fs@4.1.15
   │  │     │     │        └─ pify@2.3.0
   │  │     │     ├─ require-main-filename@1.0.1
   │  │     │     ├─ require-directory@2.1.1
   │  │     │     ├─ set-blocking@2.0.0
   │  │     │     ├─ which-module@1.0.0
   │  │     │     ├─ string-width@1.0.2
   │  │     │     │  ├─ code-point-at@1.1.0
   │  │     │     │  ├─ is-fullwidth-code-point@1.0.0
   │  │     │     │  │  └─ number-is-nan@1.0.1
   │  │     │     │  └─ strip-ansi@3.0.1
   │  │     │     ├─ window-size@0.2.0
   │  │     │     ├─ y18n@3.2.1
   │  │     │     └─ yargs-parser@2.4.1
   │  │     │        ├─ lodash.assign@4.2.0
   │  │     │        └─ camelcase@3.0.0
   │  │     ├─ web3@0.16.0
   │  │     │  ├─ utf8@2.1.2
   │  │     │  ├─ crypto-js@3.1.8
   │  │     │  └─ xmlhttprequest@1.8.0
   │  │     ├─ tape@4.10.2
   │  │     │  ├─ deep-equal@1.0.1
   │  │     │  ├─ for-each@0.3.3
   │  │     │  │  └─ is-callable@1.1.4
   │  │     │  ├─ defined@1.0.0
   │  │     │  ├─ glob@7.1.4
   │  │     │  ├─ function-bind@1.1.1
   │  │     │  ├─ inherits@2.0.3
   │  │     │  ├─ has@1.0.3
   │  │     │  │  └─ function-bind@1.1.1
   │  │     │  ├─ minimist@1.2.0
   │  │     │  ├─ object-inspect@1.6.0
   │  │     │  ├─ resolve@1.10.1
   │  │     │  │  └─ path-parse@1.0.6
   │  │     │  ├─ string.prototype.trim@1.1.2
   │  │     │  │  ├─ define-properties@1.1.3
   │  │     │  │  │  └─ object-keys@1.1.1
   │  │     │  │  ├─ function-bind@1.1.1
   │  │     │  │  └─ es-abstract@1.13.0
   │  │     │  │     ├─ function-bind@1.1.1
   │  │     │  │     ├─ es-to-primitive@1.2.0
   │  │     │  │     │  ├─ is-callable@1.1.4
   │  │     │  │     │  ├─ is-symbol@1.0.2
   │  │     │  │     │  │  └─ has-symbols@1.0.0
   │  │     │  │     │  └─ is-date-object@1.0.1
   │  │     │  │     ├─ has@1.0.3
   │  │     │  │     ├─ is-callable@1.1.4
   │  │     │  │     ├─ is-regex@1.0.4
   │  │     │  │     │  └─ has@1.0.3
   │  │     │  │     └─ object-keys@1.1.1
   │  │     │  ├─ through@2.3.8
   │  │     │  └─ resumer@0.0.0
   │  │     │     └─ through@2.3.8
   │  │     └─ semaphore@1.1.0
   │  └─ truffle-hdwallet-provider-privkey@0.3.0
   │     ├─ ethereumjs-wallet@0.6.3
   │     ├─ ethereumjs-tx@1.3.7
   │     │  ├─ ethereum-common@0.0.18
   │     │  └─ ethereumjs-util@5.2.0
   │     │     ├─ bn.js@4.11.8
   │     │     ├─ create-hash@1.2.0
   │     │     ├─ ethjs-util@0.1.6
   │     │     ├─ keccak@1.4.0
   │     │     ├─ rlp@2.2.3
   │     │     │  ├─ safe-buffer@5.1.2
   │     │     │  └─ bn.js@4.11.8
   │     │     ├─ secp256k1@3.7.1
   │     │     └─ safe-buffer@5.1.2
   │     ├─ web3@0.20.7
   │     │  ├─ crypto-js@3.1.8
   │     │  ├─ utf8@2.1.2
   │     │  ├─ xhr2-cookies@1.1.0
   │     │  │  └─ cookiejar@2.1.2
   │     │  └─ xmlhttprequest@1.8.0
   │     └─ web3-provider-engine@13.8.0
   │        ├─ async@2.6.2
   │        ├─ clone@2.1.2
   │        ├─ eth-sig-util@1.4.2
   │        │  └─ ethereumjs-util@5.2.0
   │        ├─ ethereumjs-block@1.7.1
   │        ├─ eth-block-tracker@2.3.1
   │        │  ├─ eth-query@2.1.2
   │        │  │  ├─ json-rpc-random-id@1.0.1
   │        │  │  └─ xtend@4.0.1
   │        │  ├─ ethereumjs-tx@1.3.7
   │        │  ├─ pify@2.3.0
   │        │  ├─ ethjs-util@0.1.6
   │        │  ├─ json-rpc-engine@3.8.0
   │        │  │  ├─ async@2.6.2
   │        │  │  ├─ babel-preset-env@1.7.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-arrow-functions@6.22.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  │     ├─ regenerator-runtime@0.11.1
   │        │  │  │  │     └─ core-js@2.6.9
   │        │  │  │  ├─ babel-plugin-check-es2015-constants@6.22.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-syntax-trailing-function-commas@6.22.0
   │        │  │  │  ├─ babel-plugin-transform-async-to-generator@6.24.1
   │        │  │  │  │  ├─ babel-plugin-syntax-async-functions@6.13.0
   │        │  │  │  │  ├─ babel-helper-remap-async-to-generator@6.24.1
   │        │  │  │  │  │  ├─ babel-template@6.26.0
   │        │  │  │  │  │  ├─ babel-types@6.26.0
   │        │  │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  │  ├─ babel-traverse@6.26.0
   │        │  │  │  │  │  └─ babel-helper-function-name@6.24.1
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-block-scoped-functions@6.22.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-classes@6.24.1
   │        │  │  │  │  ├─ babel-template@6.26.0
   │        │  │  │  │  │  ├─ babel-types@6.26.0
   │        │  │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  │  ├─ babel-traverse@6.26.0
   │        │  │  │  │  │  ├─ lodash@4.17.11
   │        │  │  │  │  │  └─ babylon@6.18.0
   │        │  │  │  │  ├─ babel-helper-replace-supers@6.24.1
   │        │  │  │  │  │  ├─ babel-helper-optimise-call-expression@6.24.1
   │        │  │  │  │  │  ├─ babel-template@6.26.0
   │        │  │  │  │  │  ├─ babel-types@6.26.0
   │        │  │  │  │  │  ├─ babel-messages@6.23.0
   │        │  │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  │  └─ babel-traverse@6.26.0
   │        │  │  │  │  ├─ babel-helper-optimise-call-expression@6.24.1
   │        │  │  │  │  │  ├─ babel-types@6.26.0
   │        │  │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  │  ├─ babel-helper-function-name@6.24.1
   │        │  │  │  │  │  ├─ babel-traverse@6.26.0
   │        │  │  │  │  │  ├─ babel-helper-get-function-arity@6.24.1
   │        │  │  │  │  │  ├─ babel-types@6.26.0
   │        │  │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  │  └─ babel-template@6.26.0
   │        │  │  │  │  ├─ babel-traverse@6.26.0
   │        │  │  │  │  │  ├─ babel-code-frame@6.26.0
   │        │  │  │  │  │  ├─ babel-types@6.26.0
   │        │  │  │  │  │  ├─ debug@2.6.9
   │        │  │  │  │  │  ├─ invariant@2.2.4
   │        │  │  │  │  │  ├─ globals@9.18.0
   │        │  │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  │  ├─ babylon@6.18.0
   │        │  │  │  │  │  ├─ babel-messages@6.23.0
   │        │  │  │  │  │  └─ lodash@4.17.11
   │        │  │  │  │  ├─ babel-helper-define-map@6.26.0
   │        │  │  │  │  │  ├─ babel-helper-function-name@6.24.1
   │        │  │  │  │  │  ├─ babel-types@6.26.0
   │        │  │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  │  └─ lodash@4.17.11
   │        │  │  │  │  ├─ babel-types@6.26.0
   │        │  │  │  │  │  ├─ esutils@2.0.2
   │        │  │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  │  ├─ to-fast-properties@1.0.3
   │        │  │  │  │  │  └─ lodash@4.17.11
   │        │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  └─ babel-messages@6.23.0
   │        │  │  │  │     └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-computed-properties@6.24.1
   │        │  │  │  │  ├─ babel-template@6.26.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-for-of@6.23.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-destructuring@6.23.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-duplicate-keys@6.24.1
   │        │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  └─ babel-types@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-block-scoping@6.26.0
   │        │  │  │  │  ├─ babel-types@6.26.0
   │        │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  ├─ babel-traverse@6.26.0
   │        │  │  │  │  ├─ babel-template@6.26.0
   │        │  │  │  │  └─ lodash@4.17.11
   │        │  │  │  ├─ babel-plugin-transform-es2015-function-name@6.24.1
   │        │  │  │  │  ├─ babel-helper-function-name@6.24.1
   │        │  │  │  │  ├─ babel-types@6.26.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-literals@6.22.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-modules-commonjs@6.26.2
   │        │  │  │  │  ├─ babel-plugin-transform-strict-mode@6.24.1
   │        │  │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  │  └─ babel-types@6.26.0
   │        │  │  │  │  ├─ babel-template@6.26.0
   │        │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  └─ babel-types@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-modules-amd@6.24.1
   │        │  │  │  │  ├─ babel-plugin-transform-es2015-modules-commonjs@6.26.2
   │        │  │  │  │  ├─ babel-template@6.26.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-modules-systemjs@6.24.1
   │        │  │  │  │  ├─ babel-template@6.26.0
   │        │  │  │  │  ├─ babel-helper-hoist-variables@6.24.1
   │        │  │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  │  └─ babel-types@6.26.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-object-super@6.24.1
   │        │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  └─ babel-helper-replace-supers@6.24.1
   │        │  │  │  ├─ babel-plugin-transform-es2015-shorthand-properties@6.24.1
   │        │  │  │  │  ├─ babel-types@6.26.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-parameters@6.24.1
   │        │  │  │  │  ├─ babel-helper-call-delegate@6.24.1
   │        │  │  │  │  │  ├─ babel-traverse@6.26.0
   │        │  │  │  │  │  ├─ babel-types@6.26.0
   │        │  │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  │  └─ babel-helper-hoist-variables@6.24.1
   │        │  │  │  │  ├─ babel-template@6.26.0
   │        │  │  │  │  ├─ babel-helper-get-function-arity@6.24.1
   │        │  │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  │  └─ babel-types@6.26.0
   │        │  │  │  │  ├─ babel-traverse@6.26.0
   │        │  │  │  │  ├─ babel-types@6.26.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-spread@6.22.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-modules-umd@6.24.1
   │        │  │  │  │  ├─ babel-plugin-transform-es2015-modules-amd@6.24.1
   │        │  │  │  │  ├─ babel-template@6.26.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-exponentiation-operator@6.24.1
   │        │  │  │  │  ├─ babel-plugin-syntax-exponentiation-operator@6.13.0
   │        │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  └─ babel-helper-builder-binary-assignment-operator-visitor@6.24.1
   │        │  │  │  │     ├─ babel-types@6.26.0
   │        │  │  │  │     ├─ babel-helper-explode-assignable-expression@6.24.1
   │        │  │  │  │     │  ├─ babel-traverse@6.26.0
   │        │  │  │  │     │  ├─ babel-types@6.26.0
   │        │  │  │  │     │  └─ babel-runtime@6.26.0
   │        │  │  │  │     └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-template-literals@6.22.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ browserslist@3.2.8
   │        │  │  │  │  ├─ electron-to-chromium@1.3.155
   │        │  │  │  │  └─ caniuse-lite@1.0.30000974
   │        │  │  │  ├─ babel-plugin-transform-es2015-typeof-symbol@6.23.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-unicode-regex@6.24.1
   │        │  │  │  │  ├─ regexpu-core@2.0.0
   │        │  │  │  │  │  ├─ regenerate@1.4.0
   │        │  │  │  │  │  ├─ regjsgen@0.2.0
   │        │  │  │  │  │  └─ regjsparser@0.1.5
   │        │  │  │  │  │     └─ jsesc@0.5.0
   │        │  │  │  │  ├─ babel-helper-regex@6.26.0
   │        │  │  │  │  │  ├─ babel-runtime@6.26.0
   │        │  │  │  │  │  ├─ babel-types@6.26.0
   │        │  │  │  │  │  └─ lodash@4.17.11
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-es2015-sticky-regex@6.24.1
   │        │  │  │  │  ├─ babel-helper-regex@6.26.0
   │        │  │  │  │  ├─ babel-types@6.26.0
   │        │  │  │  │  └─ babel-runtime@6.26.0
   │        │  │  │  ├─ babel-plugin-transform-regenerator@6.26.0
   │        │  │  │  │  └─ regenerator-transform@0.10.1
   │        │  │  │  │     ├─ private@0.1.8
   │        │  │  │  │     ├─ babel-runtime@6.26.0
   │        │  │  │  │     └─ babel-types@6.26.0
   │        │  │  │  ├─ invariant@2.2.4
   │        │  │  │  │  └─ loose-envify@1.4.0
   │        │  │  │  │     └─ js-tokens@4.0.0
   │        │  │  │  └─ semver@5.7.0
   │        │  │  ├─ babelify@7.3.0
   │        │  │  │  ├─ object-assign@4.1.1
   │        │  │  │  └─ babel-core@6.26.3
   │        │  │  │     ├─ babel-helpers@6.24.1
   │        │  │  │     │  ├─ babel-template@6.26.0
   │        │  │  │     │  └─ babel-runtime@6.26.0
   │        │  │  │     ├─ babel-template@6.26.0
   │        │  │  │     ├─ babel-generator@6.26.1
   │        │  │  │     │  ├─ babel-messages@6.23.0
   │        │  │  │     │  ├─ babel-runtime@6.26.0
   │        │  │  │     │  ├─ detect-indent@4.0.0
   │        │  │  │     │  │  └─ repeating@2.0.1
   │        │  │  │     │  │     └─ is-finite@1.0.2
   │        │  │  │     │  │        └─ number-is-nan@1.0.1
   │        │  │  │     │  ├─ babel-types@6.26.0
   │        │  │  │     │  ├─ jsesc@1.3.0
   │        │  │  │     │  ├─ source-map@0.5.7
   │        │  │  │     │  ├─ lodash@4.17.11
   │        │  │  │     │  └─ trim-right@1.0.1
   │        │  │  │     ├─ babel-code-frame@6.26.0
   │        │  │  │     │  ├─ esutils@2.0.2
   │        │  │  │     │  ├─ chalk@1.1.3
   │        │  │  │     │  │  ├─ escape-string-regexp@1.0.5
   │        │  │  │     │  │  ├─ ansi-styles@2.2.1
   │        │  │  │     │  │  ├─ has-ansi@2.0.0
   │        │  │  │     │  │  │  └─ ansi-regex@2.1.1
   │        │  │  │     │  │  ├─ strip-ansi@3.0.1
   │        │  │  │     │  │  └─ supports-color@2.0.0
   │        │  │  │     │  └─ js-tokens@3.0.2
   │        │  │  │     ├─ babel-traverse@6.26.0
   │        │  │  │     ├─ babel-register@6.26.0
   │        │  │  │     │  ├─ babel-runtime@6.26.0
   │        │  │  │     │  ├─ home-or-tmp@2.0.0
   │        │  │  │     │  │  ├─ os-tmpdir@1.0.2
   │        │  │  │     │  │  └─ os-homedir@1.0.2
   │        │  │  │     │  ├─ babel-core@6.26.3
   │        │  │  │     │  ├─ lodash@4.17.11
   │        │  │  │     │  ├─ core-js@2.6.9
   │        │  │  │     │  ├─ mkdirp@0.5.1
   │        │  │  │     │  └─ source-map-support@0.4.18
   │        │  │  │     │     └─ source-map@0.5.7
   │        │  │  │     ├─ babel-messages@6.23.0
   │        │  │  │     ├─ babel-runtime@6.26.0
   │        │  │  │     ├─ convert-source-map@1.6.0
   │        │  │  │     │  └─ safe-buffer@5.1.2
   │        │  │  │     ├─ babel-types@6.26.0
   │        │  │  │     ├─ babylon@6.18.0
   │        │  │  │     ├─ json5@0.5.1
   │        │  │  │     ├─ debug@2.6.9
   │        │  │  │     ├─ lodash@4.17.11
   │        │  │  │     ├─ minimatch@3.0.4
   │        │  │  │     ├─ slash@1.0.0
   │        │  │  │     ├─ path-is-absolute@1.0.1
   │        │  │  │     ├─ private@0.1.8
   │        │  │  │     └─ source-map@0.5.7
   │        │  │  ├─ json-rpc-error@2.0.0
   │        │  │  ├─ promise-to-callback@1.0.0
   │        │  │  └─ safe-event-emitter@1.0.1
   │        │  │     └─ events@3.0.0
   │        │  ├─ tape@4.10.2
   │        │  └─ ethereumjs-util@5.2.0
   │        ├─ ethereumjs-tx@1.3.7
   │        ├─ ethereumjs-util@5.2.0
   │        ├─ ethereumjs-vm@2.6.0
   │        ├─ json-rpc-error@2.0.0
   │        │  └─ inherits@2.0.3
   │        ├─ fetch-ponyfill@4.1.0
   │        │  └─ node-fetch@1.7.3
   │        ├─ promise-to-callback@1.0.0
   │        │  ├─ is-fn@1.0.0
   │        │  └─ set-immediate-shim@1.0.1
   │        ├─ json-stable-stringify@1.0.1
   │        │  └─ jsonify@0.0.0
   │        ├─ semaphore@1.1.0
   │        ├─ request@2.88.0
   │        ├─ readable-stream@2.3.6
   │        ├─ xhr@2.5.0
   │        ├─ solc@0.4.26
   │        ├─ xtend@4.0.1
   │        └─ tape@4.10.2
   ├─ semver@5.7.0
   ├─ js-yaml@3.13.1
   │  ├─ argparse@1.0.10
   │  │  └─ sprintf-js@1.0.3
   │  └─ esprima@4.0.1
   ├─ eslint-config-google@0.11.0
   ├─ web3@1.0.0-beta.37
   │  ├─ web3-core@1.0.0-beta.37
   │  │  ├─ web3-core-helpers@1.0.0-beta.37
   │  │  │  ├─ underscore@1.8.3
   │  │  │  ├─ web3-eth-iban@1.0.0-beta.37
   │  │  │  └─ web3-utils@1.0.0-beta.37
   │  │  ├─ web3-core-method@1.0.0-beta.37
   │  │  │  ├─ underscore@1.8.3
   │  │  │  ├─ web3-core-promievent@1.0.0-beta.37
   │  │  │  │  ├─ any-promise@1.3.0
   │  │  │  │  └─ eventemitter3@1.1.1
   │  │  │  ├─ web3-utils@1.0.0-beta.37
   │  │  │  ├─ web3-core-helpers@1.0.0-beta.37
   │  │  │  └─ web3-core-subscriptions@1.0.0-beta.37
   │  │  ├─ web3-core-requestmanager@1.0.0-beta.37
   │  │  │  ├─ underscore@1.8.3
   │  │  │  ├─ web3-core-helpers@1.0.0-beta.37
   │  │  │  ├─ web3-providers-http@1.0.0-beta.37
   │  │  │  │  ├─ xhr2-cookies@1.1.0
   │  │  │  │  └─ web3-core-helpers@1.0.0-beta.37
   │  │  │  ├─ web3-providers-ipc@1.0.0-beta.37
   │  │  │  │  ├─ oboe@2.1.3
   │  │  │  │  │  └─ http-https@1.0.0
   │  │  │  │  ├─ underscore@1.8.3
   │  │  │  │  └─ web3-core-helpers@1.0.0-beta.37
   │  │  │  └─ web3-providers-ws@1.0.0-beta.37
   │  │  │     ├─ underscore@1.8.3
   │  │  │     └─ web3-core-helpers@1.0.0-beta.37
   │  │  └─ web3-utils@1.0.0-beta.37
   │  ├─ web3-bzz@1.0.0-beta.37
   │  │  ├─ underscore@1.8.3
   │  │  ├─ swarm-js@0.1.37
   │  │  │  ├─ buffer@5.2.1
   │  │  │  │  ├─ ieee754@1.1.13
   │  │  │  │  └─ base64-js@1.3.0
   │  │  │  ├─ decompress@4.2.0
   │  │  │  │  ├─ decompress-tarbz2@4.1.1
   │  │  │  │  │  ├─ is-stream@1.1.0
   │  │  │  │  │  ├─ decompress-tar@4.1.1
   │  │  │  │  │  ├─ file-type@6.2.0
   │  │  │  │  │  ├─ seek-bzip@1.0.5
   │  │  │  │  │  │  └─ commander@2.8.1
   │  │  │  │  │  │     └─ graceful-readlink@1.0.1
   │  │  │  │  │  └─ unbzip2-stream@1.3.3
   │  │  │  │  │     ├─ through@2.3.8
   │  │  │  │  │     └─ buffer@5.2.1
   │  │  │  │  ├─ decompress-tar@4.1.1
   │  │  │  │  │  ├─ is-stream@1.1.0
   │  │  │  │  │  ├─ tar-stream@1.6.2
   │  │  │  │  │  └─ file-type@5.2.0
   │  │  │  │  ├─ decompress-targz@4.1.1
   │  │  │  │  │  ├─ decompress-tar@4.1.1
   │  │  │  │  │  ├─ file-type@5.2.0
   │  │  │  │  │  └─ is-stream@1.1.0
   │  │  │  │  ├─ decompress-unzip@4.0.1
   │  │  │  │  │  ├─ yauzl@2.10.0
   │  │  │  │  │  │  ├─ fd-slicer@1.1.0
   │  │  │  │  │  │  │  └─ pend@1.2.0
   │  │  │  │  │  │  └─ buffer-crc32@0.2.13
   │  │  │  │  │  ├─ pify@2.3.0
   │  │  │  │  │  ├─ get-stream@2.3.1
   │  │  │  │  │  │  ├─ pinkie-promise@2.0.1
   │  │  │  │  │  │  │  └─ pinkie@2.0.4
   │  │  │  │  │  │  └─ object-assign@4.1.1
   │  │  │  │  │  └─ file-type@3.9.0
   │  │  │  │  ├─ make-dir@1.3.0
   │  │  │  │  │  └─ pify@3.0.0
   │  │  │  │  ├─ pify@2.3.0
   │  │  │  │  ├─ graceful-fs@4.1.15
   │  │  │  │  └─ strip-dirs@2.1.0
   │  │  │  │     └─ is-natural-number@4.0.1
   │  │  │  ├─ eth-lib@0.1.27
   │  │  │  ├─ bluebird@3.5.5
   │  │  │  ├─ fs-promise@2.0.3
   │  │  │  │  ├─ any-promise@1.3.0
   │  │  │  │  ├─ fs-extra@2.1.2
   │  │  │  │  ├─ thenify-all@1.6.0
   │  │  │  │  │  └─ thenify@3.3.0
   │  │  │  │  │     └─ any-promise@1.3.0
   │  │  │  │  └─ mz@2.7.0
   │  │  │  │     ├─ any-promise@1.3.0
   │  │  │  │     ├─ object-assign@4.1.1
   │  │  │  │     └─ thenify-all@1.6.0
   │  │  │  ├─ mime-types@2.1.24
   │  │  │  │  └─ mime-db@1.40.0
   │  │  │  ├─ mkdirp-promise@5.0.1
   │  │  │  │  └─ mkdirp@0.5.1
   │  │  │  ├─ mock-fs@4.10.1
   │  │  │  ├─ setimmediate@1.0.5
   │  │  │  ├─ got@7.1.0
   │  │  │  ├─ tar.gz@1.0.7
   │  │  │  │  ├─ commander@2.20.0
   │  │  │  │  ├─ bluebird@2.11.0
   │  │  │  │  ├─ mout@0.11.1
   │  │  │  │  ├─ tar@2.2.2
   │  │  │  │  │  ├─ block-stream@0.0.9
   │  │  │  │  │  │  └─ inherits@2.0.3
   │  │  │  │  │  ├─ fstream@1.0.12
   │  │  │  │  │  └─ inherits@2.0.3
   │  │  │  │  └─ fstream@1.0.12
   │  │  │  │     ├─ mkdirp@0.5.1
   │  │  │  │     ├─ inherits@2.0.3
   │  │  │  │     ├─ rimraf@2.6.3
   │  │  │  │     └─ graceful-fs@4.1.15
   │  │  │  ├─ xhr-request-promise@0.1.2
   │  │  │  └─ fs-extra@2.1.2
   │  │  │     ├─ graceful-fs@4.1.15
   │  │  │     └─ jsonfile@2.4.0
   │  │  │        └─ graceful-fs@4.1.15
   │  │  └─ got@7.1.0
   │  │     ├─ duplexer3@0.1.4
   │  │     ├─ decompress-response@3.3.0
   │  │     │  └─ mimic-response@1.0.1
   │  │     ├─ is-retry-allowed@1.1.0
   │  │     ├─ get-stream@3.0.0
   │  │     ├─ is-stream@1.1.0
   │  │     ├─ p-timeout@1.2.1
   │  │     │  └─ p-finally@1.0.0
   │  │     ├─ lowercase-keys@1.0.1
   │  │     ├─ isurl@1.0.0
   │  │     │  ├─ is-object@1.0.1
   │  │     │  └─ has-to-string-tag-x@1.4.1
   │  │     │     └─ has-symbol-support-x@1.4.2
   │  │     ├─ is-plain-obj@1.1.0
   │  │     ├─ p-cancelable@0.3.0
   │  │     ├─ safe-buffer@5.1.2
   │  │     ├─ timed-out@4.0.1
   │  │     ├─ url-to-options@1.0.1
   │  │     └─ url-parse-lax@1.0.0
   │  │        └─ prepend-http@1.0.4
   │  ├─ web3-eth@1.0.0-beta.37
   │  │  ├─ web3-core@1.0.0-beta.37
   │  │  ├─ underscore@1.8.3
   │  │  ├─ web3-core-method@1.0.0-beta.37
   │  │  ├─ web3-core-helpers@1.0.0-beta.37
   │  │  ├─ web3-core-subscriptions@1.0.0-beta.37
   │  │  │  ├─ eventemitter3@1.1.1
   │  │  │  ├─ underscore@1.8.3
   │  │  │  └─ web3-core-helpers@1.0.0-beta.37
   │  │  ├─ web3-eth-abi@1.0.0-beta.37
   │  │  │  ├─ underscore@1.8.3
   │  │  │  ├─ web3-utils@1.0.0-beta.37
   │  │  │  └─ ethers@4.0.0-beta.1
   │  │  │     ├─ aes-js@3.0.0
   │  │  │     ├─ js-sha3@0.5.7
   │  │  │     ├─ elliptic@6.3.3
   │  │  │     │  ├─ brorand@1.1.0
   │  │  │     │  ├─ inherits@2.0.3
   │  │  │     │  ├─ bn.js@4.11.8
   │  │  │     │  └─ hash.js@1.1.7
   │  │  │     ├─ scrypt-js@2.0.3
   │  │  │     ├─ setimmediate@1.0.4
   │  │  │     ├─ hash.js@1.1.3
   │  │  │     │  ├─ inherits@2.0.3
   │  │  │     │  └─ minimalistic-assert@1.0.1
   │  │  │     ├─ xmlhttprequest@1.8.0
   │  │  │     ├─ uuid@2.0.1
   │  │  │     ├─ bn.js@4.11.8
   │  │  │     └─ @types/node@10.14.8
   │  │  ├─ web3-eth-ens@1.0.0-beta.37
   │  │  │  ├─ eth-ens-namehash@2.0.8
   │  │  │  ├─ underscore@1.8.3
   │  │  │  ├─ web3-core-promievent@1.0.0-beta.37
   │  │  │  ├─ web3-core@1.0.0-beta.37
   │  │  │  ├─ web3-eth-abi@1.0.0-beta.37
   │  │  │  ├─ web3-utils@1.0.0-beta.37
   │  │  │  ├─ web3-eth-contract@1.0.0-beta.37
   │  │  │  └─ web3-core-helpers@1.0.0-beta.37
   │  │  ├─ web3-eth-contract@1.0.0-beta.37
   │  │  │  ├─ web3-core-helpers@1.0.0-beta.37
   │  │  │  ├─ web3-core-promievent@1.0.0-beta.37
   │  │  │  ├─ web3-core-subscriptions@1.0.0-beta.37
   │  │  │  ├─ web3-eth-abi@1.0.0-beta.37
   │  │  │  ├─ underscore@1.8.3
   │  │  │  ├─ web3-core-method@1.0.0-beta.37
   │  │  │  ├─ web3-core@1.0.0-beta.37
   │  │  │  └─ web3-utils@1.0.0-beta.37
   │  │  ├─ web3-eth-iban@1.0.0-beta.37
   │  │  │  ├─ bn.js@4.11.6
   │  │  │  └─ web3-utils@1.0.0-beta.37
   │  │  ├─ web3-utils@1.0.0-beta.37
   │  │  ├─ web3-eth-personal@1.0.0-beta.37
   │  │  ├─ web3-net@1.0.0-beta.37
   │  │  └─ web3-eth-accounts@1.0.0-beta.37
   │  │     ├─ any-promise@1.3.0
   │  │     ├─ underscore@1.8.3
   │  │     ├─ scrypt.js@0.2.0
   │  │     │  ├─ scryptsy@1.2.1
   │  │     │  └─ scrypt@6.0.3
   │  │     ├─ crypto-browserify@3.12.0
   │  │     │  ├─ browserify-cipher@1.0.1
   │  │     │  │  ├─ browserify-aes@1.2.0
   │  │     │  │  ├─ browserify-des@1.0.2
   │  │     │  │  │  ├─ cipher-base@1.0.4
   │  │     │  │  │  ├─ des.js@1.0.0
   │  │     │  │  │  │  ├─ inherits@2.0.3
   │  │     │  │  │  │  └─ minimalistic-assert@1.0.1
   │  │     │  │  │  ├─ safe-buffer@5.1.2
   │  │     │  │  │  └─ inherits@2.0.3
   │  │     │  │  └─ evp_bytestokey@1.0.3
   │  │     │  ├─ create-ecdh@4.0.3
   │  │     │  │  ├─ elliptic@6.4.1
   │  │     │  │  └─ bn.js@4.11.8
   │  │     │  ├─ create-hash@1.2.0
   │  │     │  ├─ create-hmac@1.1.7
   │  │     │  ├─ diffie-hellman@5.0.3
   │  │     │  │  ├─ miller-rabin@4.0.1
   │  │     │  │  │  ├─ bn.js@4.11.8
   │  │     │  │  │  └─ brorand@1.1.0
   │  │     │  │  ├─ randombytes@2.1.0
   │  │     │  │  └─ bn.js@4.11.8
   │  │     │  ├─ inherits@2.0.3
   │  │     │  ├─ browserify-sign@4.0.4
   │  │     │  │  ├─ browserify-rsa@4.0.1
   │  │     │  │  │  ├─ randombytes@2.1.0
   │  │     │  │  │  └─ bn.js@4.11.8
   │  │     │  │  ├─ bn.js@4.11.8
   │  │     │  │  ├─ create-hash@1.2.0
   │  │     │  │  ├─ inherits@2.0.3
   │  │     │  │  ├─ parse-asn1@5.1.4
   │  │     │  │  │  ├─ browserify-aes@1.2.0
   │  │     │  │  │  ├─ create-hash@1.2.0
   │  │     │  │  │  ├─ asn1.js@4.10.1
   │  │     │  │  │  │  ├─ inherits@2.0.3
   │  │     │  │  │  │  ├─ minimalistic-assert@1.0.1
   │  │     │  │  │  │  └─ bn.js@4.11.8
   │  │     │  │  │  ├─ evp_bytestokey@1.0.3
   │  │     │  │  │  ├─ safe-buffer@5.1.2
   │  │     │  │  │  └─ pbkdf2@3.0.17
   │  │     │  │  ├─ create-hmac@1.1.7
   │  │     │  │  └─ elliptic@6.4.1
   │  │     │  ├─ public-encrypt@4.0.3
   │  │     │  │  ├─ browserify-rsa@4.0.1
   │  │     │  │  ├─ create-hash@1.2.0
   │  │     │  │  ├─ bn.js@4.11.8
   │  │     │  │  ├─ randombytes@2.1.0
   │  │     │  │  ├─ parse-asn1@5.1.4
   │  │     │  │  └─ safe-buffer@5.1.2
   │  │     │  ├─ pbkdf2@3.0.17
   │  │     │  ├─ randombytes@2.1.0
   │  │     │  └─ randomfill@1.0.4
   │  │     │     ├─ randombytes@2.1.0
   │  │     │     └─ safe-buffer@5.1.2
   │  │     ├─ uuid@2.0.1
   │  │     ├─ eth-lib@0.2.7
   │  │     │  ├─ bn.js@4.11.8
   │  │     │  ├─ xhr-request-promise@0.1.2
   │  │     │  └─ elliptic@6.4.1
   │  │     ├─ web3-utils@1.0.0-beta.37
   │  │     ├─ web3-core-method@1.0.0-beta.37
   │  │     ├─ web3-core@1.0.0-beta.37
   │  │     └─ web3-core-helpers@1.0.0-beta.37
   │  ├─ web3-net@1.0.0-beta.37
   │  │  ├─ web3-core-method@1.0.0-beta.37
   │  │  ├─ web3-core@1.0.0-beta.37
   │  │  └─ web3-utils@1.0.0-beta.37
   │  ├─ web3-shh@1.0.0-beta.37
   │  │  ├─ web3-core@1.0.0-beta.37
   │  │  ├─ web3-core-method@1.0.0-beta.37
   │  │  ├─ web3-core-subscriptions@1.0.0-beta.37
   │  │  └─ web3-net@1.0.0-beta.37
   │  ├─ web3-eth-personal@1.0.0-beta.37
   │  │  ├─ web3-core-helpers@1.0.0-beta.37
   │  │  ├─ web3-core@1.0.0-beta.37
   │  │  ├─ web3-core-method@1.0.0-beta.37
   │  │  ├─ web3-net@1.0.0-beta.37
   │  │  └─ web3-utils@1.0.0-beta.37
   │  └─ web3-utils@1.0.0-beta.37
   ├─ prettier@1.18.2
   ├─ eslint@5.16.0
   │  ├─ chalk@2.4.2
   │  ├─ @babel/code-frame@7.0.0
   │  │  └─ @babel/highlight@7.0.0
   │  │     ├─ js-tokens@4.0.0
   │  │     ├─ esutils@2.0.2
   │  │     └─ chalk@2.4.2
   │  ├─ doctrine@3.0.0
   │  │  └─ esutils@2.0.2
   │  ├─ cross-spawn@6.0.5
   │  ├─ ajv@6.10.0
   │  │  ├─ fast-json-stable-stringify@2.0.0
   │  │  ├─ uri-js@4.2.2
   │  │  │  └─ punycode@2.1.1
   │  │  ├─ fast-deep-equal@2.0.1
   │  │  └─ json-schema-traverse@0.4.1
   │  ├─ debug@4.1.1
   │  │  └─ ms@2.1.2
   │  ├─ eslint-scope@4.0.3
   │  │  ├─ estraverse@4.2.0
   │  │  └─ esrecurse@4.2.1
   │  │     └─ estraverse@4.2.0
   │  ├─ eslint-utils@1.3.1
   │  ├─ eslint-visitor-keys@1.0.0
   │  ├─ espree@5.0.1
   │  │  ├─ eslint-visitor-keys@1.0.0
   │  │  ├─ acorn-jsx@5.0.1
   │  │  └─ acorn@6.1.1
   │  ├─ esutils@2.0.2
   │  ├─ esquery@1.0.1
   │  │  └─ estraverse@4.2.0
   │  ├─ functional-red-black-tree@1.0.1
   │  ├─ file-entry-cache@5.0.1
   │  │  └─ flat-cache@2.0.1
   │  │     ├─ rimraf@2.6.3
   │  │     │  └─ glob@7.1.4
   │  │     ├─ flatted@2.0.0
   │  │     └─ write@1.0.3
   │  │        └─ mkdirp@0.5.1
   │  ├─ globals@11.12.0
   │  ├─ import-fresh@3.0.0
   │  │  ├─ parent-module@1.0.1
   │  │  │  └─ callsites@3.1.0
   │  │  └─ resolve-from@4.0.0
   │  ├─ imurmurhash@0.1.4
   │  ├─ glob@7.1.4
   │  │  ├─ inflight@1.0.6
   │  │  │  ├─ once@1.4.0
   │  │  │  └─ wrappy@1.0.2
   │  │  ├─ fs.realpath@1.0.0
   │  │  ├─ path-is-absolute@1.0.1
   │  │  ├─ once@1.4.0
   │  │  ├─ inherits@2.0.3
   │  │  └─ minimatch@3.0.4
   │  ├─ ignore@4.0.6
   │  ├─ inquirer@6.3.1
   │  │  ├─ ansi-escapes@3.2.0
   │  │  ├─ chalk@2.4.2
   │  │  ├─ cli-cursor@2.1.0
   │  │  │  └─ restore-cursor@2.0.0
   │  │  │     ├─ onetime@2.0.1
   │  │  │     │  └─ mimic-fn@1.2.0
   │  │  │     └─ signal-exit@3.0.2
   │  │  ├─ cli-width@2.2.0
   │  │  ├─ lodash@4.17.11
   │  │  ├─ figures@2.0.0
   │  │  │  └─ escape-string-regexp@1.0.5
   │  │  ├─ external-editor@3.0.3
   │  │  │  ├─ chardet@0.7.0
   │  │  │  ├─ iconv-lite@0.4.24
   │  │  │  │  └─ safer-buffer@2.1.2
   │  │  │  └─ tmp@0.0.33
   │  │  │     └─ os-tmpdir@1.0.2
   │  │  ├─ mute-stream@0.0.7
   │  │  ├─ run-async@2.3.0
   │  │  │  └─ is-promise@2.1.0
   │  │  ├─ string-width@2.1.1
   │  │  │  ├─ is-fullwidth-code-point@2.0.0
   │  │  │  └─ strip-ansi@4.0.0
   │  │  ├─ through@2.3.8
   │  │  ├─ strip-ansi@5.2.0
   │  │  │  └─ ansi-regex@4.1.0
   │  │  └─ rxjs@6.5.2
   │  │     └─ tslib@1.9.3
   │  ├─ mkdirp@0.5.1
   │  ├─ levn@0.3.0
   │  │  ├─ prelude-ls@1.1.2
   │  │  └─ type-check@0.3.2
   │  │     └─ prelude-ls@1.1.2
   │  ├─ json-stable-stringify-without-jsonify@1.0.1
   │  ├─ lodash@4.17.11
   │  ├─ minimatch@3.0.4
   │  │  └─ brace-expansion@1.1.11
   │  │     ├─ balanced-match@1.0.0
   │  │     └─ concat-map@0.0.1
   │  ├─ js-yaml@3.13.1
   │  ├─ path-is-inside@1.0.2
   │  ├─ natural-compare@1.4.0
   │  ├─ progress@2.0.3
   │  ├─ regexpp@2.0.1
   │  ├─ optionator@0.8.2
   │  │  ├─ prelude-ls@1.1.2
   │  │  ├─ type-check@0.3.2
   │  │  ├─ levn@0.3.0
   │  │  ├─ deep-is@0.1.3
   │  │  ├─ wordwrap@1.0.0
   │  │  └─ fast-levenshtein@2.0.6
   │  ├─ semver@5.7.0
   │  ├─ strip-ansi@4.0.0
   │  │  └─ ansi-regex@3.0.0
   │  ├─ strip-json-comments@2.0.1
   │  ├─ text-table@0.2.0
   │  └─ table@5.4.0
   │     ├─ lodash@4.17.11
   │     ├─ slice-ansi@2.1.0
   │     │  ├─ ansi-styles@3.2.1
   │     │  ├─ astral-regex@1.0.0
   │     │  └─ is-fullwidth-code-point@2.0.0
   │     ├─ string-width@3.1.0
   │     │  ├─ emoji-regex@7.0.3
   │     │  ├─ is-fullwidth-code-point@2.0.0
   │     │  └─ strip-ansi@5.2.0
   │     └─ ajv@6.10.0
   ├─ mocha@5.2.0
   │  ├─ browser-stdout@1.3.1
   │  ├─ escape-string-regexp@1.0.5
   │  ├─ growl@1.10.5
   │  ├─ commander@2.15.1
   │  ├─ debug@3.1.0
   │  │  └─ ms@2.0.0
   │  ├─ glob@7.1.2
   │  │  ├─ fs.realpath@1.0.0
   │  │  ├─ inflight@1.0.6
   │  │  ├─ inherits@2.0.3
   │  │  ├─ minimatch@3.0.4
   │  │  ├─ path-is-absolute@1.0.1
   │  │  └─ once@1.4.0
   │  ├─ diff@3.5.0
   │  ├─ he@1.1.1
   │  ├─ mkdirp@0.5.1
   │  ├─ minimatch@3.0.4
   │  └─ supports-color@5.4.0
   │     └─ has-flag@3.0.0
   ├─ ipfs-http-client@29.1.1
   │  ├─ bignumber.js@8.1.1
   │  ├─ bs58@4.0.1
   │  │  └─ base-x@3.0.5
   │  │     └─ safe-buffer@5.1.2
   │  ├─ bl@2.2.0
   │  │  ├─ safe-buffer@5.1.2
   │  │  └─ readable-stream@2.3.6
   │  │     ├─ core-util-is@1.0.2
   │  │     ├─ inherits@2.0.3
   │  │     ├─ isarray@1.0.0
   │  │     ├─ process-nextick-args@2.0.0
   │  │     ├─ util-deprecate@1.0.2
   │  │     ├─ safe-buffer@5.1.2
   │  │     └─ string_decoder@1.1.1
   │  │        └─ safe-buffer@5.1.2
   │  ├─ async@2.6.2
   │  │  └─ lodash@4.17.11
   │  ├─ end-of-stream@1.4.1
   │  ├─ detect-node@2.0.4
   │  ├─ debug@4.1.1
   │  ├─ concat-stream@2.0.0
   │  │  ├─ buffer-from@1.1.1
   │  │  ├─ inherits@2.0.3
   │  │  ├─ typedarray@0.0.6
   │  │  └─ readable-stream@3.4.0
   │  ├─ cids@0.5.8
   │  │  ├─ multibase@0.6.0
   │  │  ├─ multicodec@0.5.3
   │  │  │  └─ varint@5.0.0
   │  │  ├─ class-is@1.1.0
   │  │  └─ multihashes@0.4.14
   │  ├─ err-code@1.1.2
   │  ├─ flatmap@0.0.3
   │  ├─ glob@7.1.4
   │  ├─ ipfs-unixfs@0.1.16
   │  │  └─ protons@1.0.1
   │  │     ├─ signed-varint@2.0.1
   │  │     │  └─ varint@5.0.0
   │  │     ├─ safe-buffer@5.1.2
   │  │     ├─ varint@5.0.0
   │  │     └─ protocol-buffers-schema@3.3.2
   │  ├─ ipfs-block@0.8.1
   │  │  ├─ cids@0.7.1
   │  │  │  ├─ class-is@1.1.0
   │  │  │  ├─ multibase@0.6.0
   │  │  │  ├─ multicodec@0.5.3
   │  │  │  └─ multihashes@0.4.14
   │  │  └─ class-is@1.1.0
   │  ├─ is-ipfs@0.4.8
   │  │  ├─ cids@0.5.8
   │  │  ├─ multibase@0.6.0
   │  │  ├─ bs58@4.0.1
   │  │  └─ multihashes@0.4.14
   │  ├─ ipld-dag-pb@0.15.3
   │  │  ├─ bs58@4.0.1
   │  │  ├─ cids@0.5.8
   │  │  ├─ async@2.6.2
   │  │  ├─ pull-traverse@1.0.3
   │  │  ├─ is-ipfs@0.6.1
   │  │  │  ├─ bs58@4.0.1
   │  │  │  ├─ mafmt@6.0.7
   │  │  │  ├─ cids@0.7.1
   │  │  │  ├─ multiaddr@6.1.0
   │  │  │  ├─ multibase@0.6.0
   │  │  │  └─ multihashes@0.4.14
   │  │  ├─ multihashing-async@0.5.2
   │  │  │  ├─ js-sha3@0.8.0
   │  │  │  ├─ murmurhash3js@3.0.1
   │  │  │  ├─ blakejs@1.1.0
   │  │  │  ├─ nodeify@1.0.1
   │  │  │  │  ├─ is-promise@1.0.1
   │  │  │  │  └─ promise@1.3.0
   │  │  │  │     └─ is-promise@1.0.1
   │  │  │  └─ multihashes@0.4.14
   │  │  ├─ class-is@1.1.0
   │  │  ├─ protons@1.0.1
   │  │  ├─ stable@0.1.8
   │  │  └─ pull-stream@3.6.12
   │  ├─ ipld-dag-cbor@0.13.1
   │  │  ├─ borc@2.1.0
   │  │  │  ├─ bignumber.js@8.1.1
   │  │  │  ├─ ieee754@1.1.13
   │  │  │  ├─ iso-url@0.4.6
   │  │  │  ├─ json-text-sequence@0.1.1
   │  │  │  │  └─ delimit-stream@0.1.0
   │  │  │  └─ commander@2.20.0
   │  │  ├─ is-circular@1.0.2
   │  │  ├─ bs58@4.0.1
   │  │  ├─ multihashing-async@0.5.2
   │  │  ├─ cids@0.5.8
   │  │  ├─ traverse@0.6.6
   │  │  └─ multihashes@0.4.14
   │  ├─ is-stream@1.1.0
   │  ├─ libp2p-crypto@0.16.1
   │  │  ├─ asn1.js@5.0.1
   │  │  │  ├─ inherits@2.0.3
   │  │  │  ├─ minimalistic-assert@1.0.1
   │  │  │  └─ bn.js@4.11.8
   │  │  ├─ asmcrypto.js@2.3.2
   │  │  ├─ browserify-aes@1.2.0
   │  │  │  ├─ cipher-base@1.0.4
   │  │  │  ├─ inherits@2.0.3
   │  │  │  ├─ evp_bytestokey@1.0.3
   │  │  │  │  ├─ md5.js@1.3.5
   │  │  │  │  └─ safe-buffer@5.1.2
   │  │  │  ├─ create-hash@1.2.0
   │  │  │  ├─ safe-buffer@5.1.2
   │  │  │  └─ buffer-xor@1.0.3
   │  │  ├─ keypair@1.0.1
   │  │  ├─ async@2.6.2
   │  │  ├─ bn.js@4.11.8
   │  │  ├─ bs58@4.0.1
   │  │  ├─ libp2p-crypto-secp256k1@0.3.0
   │  │  │  ├─ bs58@4.0.1
   │  │  │  ├─ nodeify@1.0.1
   │  │  │  ├─ secp256k1@3.7.1
   │  │  │  ├─ multihashing-async@0.5.2
   │  │  │  ├─ safe-buffer@5.1.2
   │  │  │  └─ async@2.6.2
   │  │  ├─ multihashing-async@0.5.2
   │  │  ├─ iso-random-stream@1.1.0
   │  │  ├─ protons@1.0.1
   │  │  ├─ rsa-pem-to-jwk@1.1.3
   │  │  │  ├─ rsa-unpack@0.0.6
   │  │  │  │  └─ optimist@0.3.7
   │  │  │  │     └─ wordwrap@0.0.3
   │  │  │  └─ object-assign@2.1.1
   │  │  ├─ pem-jwk@2.0.0
   │  │  │  └─ asn1.js@5.0.1
   │  │  ├─ tweetnacl@1.0.1
   │  │  ├─ node-forge@0.7.6
   │  │  └─ ursa-optional@0.9.10
   │  │     ├─ bindings@1.5.0
   │  │     │  └─ file-uri-to-path@1.0.0
   │  │     └─ nan@2.14.0
   │  ├─ is-pull-stream@0.0.0
   │  ├─ lru-cache@5.1.1
   │  │  └─ yallist@3.0.3
   │  ├─ lodash@4.17.11
   │  ├─ multiaddr@6.1.0
   │  │  ├─ bs58@4.0.1
   │  │  ├─ hi-base32@0.5.0
   │  │  ├─ varint@5.0.0
   │  │  ├─ ip@1.1.5
   │  │  ├─ class-is@1.1.0
   │  │  └─ is-ip@2.0.0
   │  │     └─ ip-regex@2.1.0
   │  ├─ multibase@0.6.0
   │  │  └─ base-x@3.0.4
   │  │     └─ safe-buffer@5.1.2
   │  ├─ ndjson@1.5.0
   │  │  ├─ json-stringify-safe@5.0.1
   │  │  ├─ minimist@1.2.0
   │  │  ├─ split2@2.2.0
   │  │  │  └─ through2@2.0.5
   │  │  └─ through2@2.0.5
   │  │     ├─ xtend@4.0.1
   │  │     └─ readable-stream@2.3.6
   │  ├─ once@1.4.0
   │  ├─ peer-id@0.12.2
   │  │  ├─ class-is@1.1.0
   │  │  ├─ async@2.6.2
   │  │  ├─ libp2p-crypto@0.16.1
   │  │  └─ multihashes@0.4.14
   │  ├─ peer-info@0.15.1
   │  │  ├─ multiaddr@6.1.0
   │  │  ├─ mafmt@6.0.7
   │  │  │  └─ multiaddr@6.1.0
   │  │  ├─ peer-id@0.12.2
   │  │  └─ unique-by@1.0.0
   │  ├─ promisify-es6@1.0.3
   │  ├─ pull-defer@0.2.3
   │  ├─ pull-pushable@2.2.0
   │  ├─ pull-stream-to-stream@1.3.4
   │  ├─ pump@3.0.0
   │  ├─ stream-to-pull-stream@1.7.3
   │  │  ├─ looper@3.0.0
   │  │  └─ pull-stream@3.6.12
   │  ├─ qs@6.7.0
   │  ├─ streamifier@0.1.1
   │  ├─ readable-stream@3.4.0
   │  │  ├─ inherits@2.0.3
   │  │  ├─ util-deprecate@1.0.2
   │  │  └─ string_decoder@1.2.0
   │  │     └─ safe-buffer@5.1.2
   │  ├─ through2@3.0.1
   │  │  └─ readable-stream@3.4.0
   │  ├─ tar-stream@1.6.2
   │  │  ├─ bl@1.2.2
   │  │  │  ├─ safe-buffer@5.1.2
   │  │  │  └─ readable-stream@2.3.6
   │  │  ├─ fs-constants@1.0.0
   │  │  ├─ buffer-alloc@1.2.0
   │  │  │  ├─ buffer-alloc-unsafe@1.1.0
   │  │  │  └─ buffer-fill@1.0.0
   │  │  ├─ end-of-stream@1.4.1
   │  │  ├─ to-buffer@1.1.1
   │  │  ├─ xtend@4.0.1
   │  │  └─ readable-stream@2.3.6
   │  ├─ stream-http@3.0.0
   │  │  ├─ builtin-status-codes@3.0.0
   │  │  ├─ inherits@2.0.3
   │  │  ├─ xtend@4.0.1
   │  │  └─ readable-stream@3.4.0
   │  └─ multihashes@0.4.14
   │     ├─ bs58@4.0.1
   │     └─ varint@5.0.0
   └─ inquirer@6.3.1
Blockchainbrett commented 5 years ago

Is this same error blocking from installing the npm package in the first place? Getting a similar error when trying to install for the first time:

$ sudo npm install -g @dappnode/dappnodesdk npm WARN deprecated joi@14.3.1: This module has moved and is now available at @hapi/joi. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues. npm WARN deprecated text-encoding@0.6.4: no longer maintained npm WARN deprecated fs-promise@2.0.3: Use mz or fs-extra^3.0 with Promise Support npm WARN deprecated tar.gz@1.0.7: ⚠️ WARNING ⚠️ tar.gz module has been deprecated and your application is vulnerable. Please use tar module instead: https://npmjs.com/tar npm WARN deprecated hoek@6.1.3: This module has moved and is now available at @hapi/hoek. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues. npm WARN deprecated topo@3.0.3: This module has moved and is now available at @hapi/topo. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.

scrypt@6.0.3 preinstall /usr/local/lib/node_modules/@dappnode/dappnodesdk/node_modules/scrypt node node-scrypt-preinstall.js

Error: Error: Command failed: ./configure ./configure: line 1904: config.log: Permission denied ./configure: line 1914: config.log: Permission denied

/usr/local/bin/dappnodesdk -> /usr/local/lib/node_modules/@dappnode/dappnodesdk/src/dappnodesdk.js

scrypt@6.0.3 install /usr/local/lib/node_modules/@dappnode/dappnodesdk/node_modules/scrypt node-gyp rebuild

gyp ERR! configure error gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/@dappnode/dappnodesdk/node_modules/scrypt/build' gyp ERR! System Darwin 19.0.0 gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /usr/local/lib/node_modules/@dappnode/dappnodesdk/node_modules/scrypt gyp ERR! node -v v11.2.0 gyp ERR! node-gyp -v v3.8.0 gyp ERR! not ok npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! scrypt@6.0.3 install: node-gyp rebuild npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the scrypt@6.0.3 install script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in: npm ERR! /Users/Austin/.npm/_logs/2019-06-19T02_35_12_843Z-debug.log

Leibniz137 commented 5 years ago

I was able to install dappnode on node:11 if I removed the -g argument: https://github.com/Leibniz137/DAppNodePackage-cosmos/blob/master/dev.Dockerfile

dapplion commented 4 years ago

@Leibniz137 @Blockchainbrett Is this still an issue? Maybe within these 6 months the libraries were updated to be suitable for Node 12, I just tried and compiled without issues on a Linux Mint with NodeJS v12.15.0.

dapplion commented 4 years ago

@Leibniz137 @Blockchainbrett I've experienced your issue while trying to install the dappnodesdk in a remote server. Installing locally in a dummy project fixed the issue. After some tests I can confirm that packages (or its dependencies) that need a scrypt build cause the issue while the ones that don't require a build succeed.

Right now the only dappnodesdk dependency that requires a build is ipfs-http-client, which will be hard to replace but I'll try.

dapplion commented 4 years ago

I've been able to reproduce the issue and fix it with this PR https://github.com/dappnode/DAppNodeSDK/pull/64. It will be released soon as a new version. Feel free to try it them and let us know if it fixes your issues

Leibniz137 commented 4 years ago

I upgraded to node 13.8.0 and ran npx @dappnode/dappnodesdk successfully. Thanks for taking a look at this issue!