Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
Leibniz137 opened this issue Jun 9, 2019 · 7 comments
Closed

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

Leibniz137 opened this issue Jun 9, 2019 · 7 comments
Assignees

Comments

@Leibniz137
Copy link

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: syscoin/sysethereum-contracts#1

@Leibniz137
Copy link
Author

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
Copy link

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
Copy link
Author

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
Copy link
Contributor

dapplion commented Feb 7, 2020

@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
Copy link
Contributor

dapplion commented Feb 13, 2020

@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
Copy link
Contributor

I've been able to reproduce the issue and fix it with this PR #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
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants