Ganache-cli: Can not Install ganache cli on Mac OS Mojave (version 10.14.6)

Created on 9 Sep 2019  路  15Comments  路  Source: trufflesuite/ganache-cli

  • I asked about this on gitter: [ ]

Expected Behavior

Being able to install ganache cli as expected and run ganache from the Mac OS command line using the command below:

$ ganache cli

Current Behavior

When trying to install ganache cli, the errors pasted below appear and it is not possible to start ganache cli.

Steps to Reproduce (for bugs)

  1. Manual Installation of Node.js 10.16.3 LTS for Mac OS from https://nodejs.org

  2. $ npm -v
    6.11.3

  3. $ node -v
    v10.16.3

  4. $ sudo npm install -g ganache-cli
    /usr/local/bin/ganache-cli -> /usr/local/lib/node_modules/ganache-cli/cli.js

[email protected] install /usr/local/lib/node_modules/ganache-cli/node_modules/keccak
npm run rebuild || echo "Keccak bindings compilation fail. Pure JS implementation will be used."

[email protected] rebuild /usr/local/lib/node_modules/ganache-cli/node_modules/keccak
node-gyp rebuild

gyp ERR! clean error
gyp ERR! stack Error: EACCES: permission denied, rmdir 'build'
gyp ERR! System Darwin 18.7.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/ganache-cli/node_modules/keccak
gyp ERR! node -v v10.16.3
gyp ERR! node-gyp -v v5.0.3
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] rebuild: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] rebuild script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Keccak bindings compilation fail. Pure JS implementation will be used.

[email protected] install /usr/local/lib/node_modules/ganache-cli/node_modules/secp256k1
npm run rebuild || echo "Secp256k1 bindings compilation fail. Pure JS implementation will be used."

[email protected] rebuild /usr/local/lib/node_modules/ganache-cli/node_modules/secp256k1
node-gyp rebuild

gyp ERR! clean error
gyp ERR! stack Error: EACCES: permission denied, rmdir 'build'
gyp ERR! System Darwin 18.7.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/ganache-cli/node_modules/secp256k1
gyp ERR! node -v v10.16.3
gyp ERR! node-gyp -v v5.0.3
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] rebuild: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] rebuild script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Secp256k1 bindings compilation fail. Pure JS implementation will be used.

  1. $ ganache cli
    -bash: ganache: command not found

Your Environment

  • Ganache cli Version: [email protected]
  • Version of Truffle/Remix/Other tools used: [email protected]
  • NodeJS Version: npm 6.11.3 & node.js 10.16.3
  • Operating System and version: Mac OS Mojave (version 10.14.6)

Most helpful comment

Thank you so much for the assistance @davidmurdoch 馃憤
It all works well now !!
You guys are legend 馃

All 15 comments

Thank for opening the issue, @Wiesel2000!

You really shouldn't be installing node modules with sudo, as it's likely to cause issues like this.

Can you try running npm uninstall -g ganache-cli && npm install -g ganache-cli?

Also, in your step 4 the command should be ganache-cli, not ganache cli (probably just a typo, but I just want to make sure)

Thank you for your reply, @davidmurdoch

Noted for the fact that sudo is not recommended.
However if I do not use sudo I simply can not install ganache cli since the "checkPermission is Missing write access to /usr/local/lib/node_modules" (see error pasted below).
Indeed if I run npm uninstall -g ganache-cli && npm install -g ganache-cli I get the error below:

$ npm uninstall -g ganache-cli && npm install -g ganache-cli
up to date in 0.06s
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! syscall access
npm ERR! path /usr/local/lib/node_modules
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules']
npm ERR! stack:
npm ERR! 'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules\'',
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/me/.npm/_logs/2019-09-10T12_24_26_070Z-debug.log

It would seem that your node installation is misconfigured. Can you try the solutions listed in https://stackoverflow.com/questions/33725639/npm-install-g-less-does-not-work

Thank you for your reply @davidmurdoch

I am struggling as I am very new to this.
I have checked the link you sent and tried the procedure but could not pass through step 3 which says:
Open or create a ~/.profile file and add this line:
export PATH = ~/.npm-global/bin:$PATH

How do I "open or create a ~/.profile file" ?

Here is a summary below of the steps I did:
$ mkdir ~ /.npm-global
$ npm config set prefix '~ /.npm-global'
$ export PATH =~/.npm-global/bin:$PATH
$ source ~/.profile
-bash: /Users/me/.profile: No such file or directory

Thank you for your assistance.

Best regards.

~/.profile is referring to a file named .profile located in your home directory. See https://apple.stackexchange.com/a/99836/20910 for ways you can create/edit it yourself.

Thank you,
It looks like I am getting closer as the installation has progressed further and took longer than before, however I am still not able to start ganache cli.
Please see below the commands I did to create the profile and then the ganache cli installation log. You will notice at the end that ganache does not start.

$ cd ~
$ sudo nano .bash_profile
Password:
$ source ~/.bash_profile
$ mkdir ~/.npm-global
mkdir: /Users/me/.npm-global: File exists
$ npm config set prefix '~/.npm-global'
$ source ~/.bash_profile
$ export PATH=~/.npm-global/bin:$PATH
$ source ~/.bash_profile
$ npm install -g jshint
/Users/me.npm-global/bin/jshint -> /Users/me/.npm-global/lib/node_modules/jshint/bin/jshint

  • [email protected]
    added 31 packages from 15 contributors in 3.015s
    $ sudo chown -R $USER ~/.npm-global
    $ sudo apt-get install nodejs npm
    sudo: apt-get: command not found
    $ npm uninstall -g ganache-cli && npm install -g ganache-cli
    removed 88 packages in 0.694s
    /Users/me/.npm-global/bin/ganache-cli -> /Users/me/.npm-global/lib/node_modules/ganache-cli/cli.js

[email protected] install /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/keccak
npm run rebuild || echo "Keccak bindings compilation fail. Pure JS implementation will be used."

[email protected] rebuild /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/keccak
node-gyp rebuild

CXX(target) Release/obj.target/keccak/src/addon.o
../src/addon.cc:37:34: warning: 'IntegerValue' is deprecated [-Wdeprecated-declarations]
unsigned int rate = info[0]->IntegerValue();
^
/Users/me/Library/Caches/node-gyp/10.16.3/include/node/v8.h:2476:3: note:
'IntegerValue' has been explicitly marked deprecated here
V8_DEPRECATED("Use maybe version", int64_t IntegerValue() const);
^
/Users/me/Library/Caches/node-gyp/10.16.3/include/node/v8config.h:327:29: note:
expanded from macro 'V8_DEPRECATED'
declarator __attribute__((deprecated))
^
../src/addon.cc:38:38: warning: 'IntegerValue' is deprecated [-Wdeprecated-declarations]
unsigned int capacity = info[1]->IntegerValue();
^
/Users/me/Library/Caches/node-gyp/10.16.3/include/node/v8.h:2476:3: note:
'IntegerValue' has been explicitly marked deprecated here
V8_DEPRECATED("Use maybe version", int64_t IntegerValue() const);
^
/Users/meLibrary/Caches/node-gyp/10.16.3/include/node/v8config.h:327:29: note:
expanded from macro 'V8_DEPRECATED'
declarator __attribute__((deprecated))
^
../src/addon.cc:56:35: warning: 'IntegerValue' is deprecated [-Wdeprecated-declarations]
unsigned char bits = info[0]->IntegerValue();
^
/Users/me/Library/Caches/node-gyp/10.16.3/include/node/v8.h:2476:3: note:
'IntegerValue' has been explicitly marked deprecated here
V8_DEPRECATED("Use maybe version", int64_t IntegerValue() const);
^
/Users/me/Library/Caches/node-gyp/10.16.3/include/node/v8config.h:327:29: note:
expanded from macro 'V8_DEPRECATED'
declarator __attribute__((deprecated))
^
../src/addon.cc:64:30: warning: 'IntegerValue' is deprecated [-Wdeprecated-declarations]
size_t length = info[0]->IntegerValue();
^
/Users/me/Library/Caches/node-gyp/10.16.3/include/node/v8.h:2476:3: note:
'IntegerValue' has been explicitly marked deprecated here
V8_DEPRECATED("Use maybe version", int64_t IntegerValue() const);
^
/Users/me/Library/Caches/node-gyp/10.16.3/include/node/v8config.h:327:29: note:
expanded from macro 'V8_DEPRECATED'
declarator __attribute__((deprecated))
^
../src/addon.cc:75:73: warning: 'ToObject' is deprecated [-Wdeprecated-declarations]
KeccakWrapper* to = Nan::ObjectWrap::Unwrap(info[0]->ToObject());
^
/Users/me/Library/Caches/node-gyp/10.16.3/include/node/v8.h:2455:10: note: 'ToObject'
has been explicitly marked deprecated here
inline V8_DEPRECATED("Use maybe version", Local ToObject() const);
^
/Users/me/Library/Caches/node-gyp/10.16.3/include/node/v8config.h:327:29: note:
expanded from macro 'V8_DEPRECATED'
declarator __attribute__((deprecated))
^
5 warnings generated.
CC(target) Release/obj.target/keccak/src/libkeccak/KeccakSponge.o
CC(target) Release/obj.target/keccak/src/libkeccak/KeccakP-1600-reference.o
../src/libkeccak/KeccakP-1600-reference.c:231:13: warning: unused function 'fromBytesToWords'
[-Wunused-function]
static void fromBytesToWords(tKeccakLane *stateAsWords, const unsigned char *state)
^
../src/libkeccak/KeccakP-1600-reference.c:242:13: warning: unused function 'fromWordsToBytes'
[-Wunused-function]
static void fromWordsToBytes(unsigned char *state, const tKeccakLane *stateAsWords)
^
2 warnings generated.
SOLINK_MODULE(target) Release/keccak.node

[email protected] install /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/secp256k1
npm run rebuild || echo "Secp256k1 bindings compilation fail. Pure JS implementation will be used."

[email protected] rebuild /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/secp256k1
node-gyp rebuild

CXX(target) Release/obj.target/secp256k1/src/addon.o
CXX(target) Release/obj.target/secp256k1/src/privatekey.o
../src/privatekey.cc:73:3: warning: ignoring return value of function declared with
'warn_unused_result' attribute [-Wunused-result]
secp256k1_ec_privkey_negate(secp256k1ctx, &private_key[0]);
^~~~~~~ ~~~~~~~~~
In file included from ../src/privatekey.cc:4:
In file included from ../src/secp256k1-src/src/scalar_impl.h:10:
In file included from ../src/secp256k1-src/src/group.h:11:
../src/secp256k1-src/src/field.h:36:13: warning: unused function 'secp256k1_fe_normalize'
[-Wunused-function]
static void secp256k1_fe_normalize(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:39:13: warning: unused function 'secp256k1_fe_normalize_weak'
[-Wunused-function]
static void secp256k1_fe_normalize_weak(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:42:13: warning: unused function 'secp256k1_fe_normalize_var'
[-Wunused-function]
static void secp256k1_fe_normalize_var(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:46:12: warning: unused function 'secp256k1_fe_normalizes_to_zero'
[-Wunused-function]
static int secp256k1_fe_normalizes_to_zero(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:50:12: warning: unused function 'secp256k1_fe_normalizes_to_zero_var'
[-Wunused-function]
static int secp256k1_fe_normalizes_to_zero_var(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:53:13: warning: unused function 'secp256k1_fe_set_int'
[-Wunused-function]
static void secp256k1_fe_set_int(secp256k1_fe *r, int a);
^
../src/secp256k1-src/src/field.h:56:13: warning: unused function 'secp256k1_fe_clear'
[-Wunused-function]
static void secp256k1_fe_clear(secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:59:12: warning: unused function 'secp256k1_fe_is_zero'
[-Wunused-function]
static int secp256k1_fe_is_zero(const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:62:12: warning: unused function 'secp256k1_fe_is_odd'
[-Wunused-function]
static int secp256k1_fe_is_odd(const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:65:12: warning: unused function 'secp256k1_fe_equal'
[-Wunused-function]
static int secp256k1_fe_equal(const secp256k1_fe *a, const secp256k1_fe *b);
^
../src/secp256k1-src/src/field.h:68:12: warning: unused function 'secp256k1_fe_equal_var'
[-Wunused-function]
static int secp256k1_fe_equal_var(const secp256k1_fe *a, const secp256k1_fe *b);
^
../src/secp256k1-src/src/field.h:71:12: warning: unused function 'secp256k1_fe_cmp_var'
[-Wunused-function]
static int secp256k1_fe_cmp_var(const secp256k1_fe *a, const secp256k1_fe *b);
^
../src/secp256k1-src/src/field.h:74:12: warning: unused function 'secp256k1_fe_set_b32'
[-Wunused-function]
static int secp256k1_fe_set_b32(secp256k1_fe *r, const unsigned char *a);
^
../src/secp256k1-src/src/field.h:77:13: warning: unused function 'secp256k1_fe_get_b32'
[-Wunused-function]
static void secp256k1_fe_get_b32(unsigned char *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:81:13: warning: unused function 'secp256k1_fe_negate'
[-Wunused-function]
static void secp256k1_fe_negate(secp256k1_fe *r, const secp256k1_fe *a, int m);
^
../src/secp256k1-src/src/field.h:85:13: warning: unused function 'secp256k1_fe_mul_int'
[-Wunused-function]
static void secp256k1_fe_mul_int(secp256k1_fe *r, int a);
^
../src/secp256k1-src/src/field.h:88:13: warning: unused function 'secp256k1_fe_add' [-Wunused-function]
static void secp256k1_fe_add(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:92:13: warning: unused function 'secp256k1_fe_mul' [-Wunused-function]
static void secp256k1_fe_mul(secp256k1_fe *r, const secp256k1_fe *a, const secp256k1_fe * SECP2...
^
../src/secp256k1-src/src/field.h:96:13: warning: unused function 'secp256k1_fe_sqr' [-Wunused-function]
static void secp256k1_fe_sqr(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:103:12: warning: unused function 'secp256k1_fe_sqrt'
[-Wunused-function]
static int secp256k1_fe_sqrt(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:106:12: warning: unused function 'secp256k1_fe_is_quad_var'
[-Wunused-function]
static int secp256k1_fe_is_quad_var(const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:110:13: warning: unused function 'secp256k1_fe_inv'
[-Wunused-function]
static void secp256k1_fe_inv(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:113:13: warning: unused function 'secp256k1_fe_inv_var'
[-Wunused-function]
static void secp256k1_fe_inv_var(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:118:13: warning: unused function 'secp256k1_fe_inv_all_var'
[-Wunused-function]
static void secp256k1_fe_inv_all_var(secp256k1_fe *r, const secp256k1_fe *a, size_t len);
^
../src/secp256k1-src/src/field.h:121:13: warning: unused function 'secp256k1_fe_to_storage'
[-Wunused-function]
static void secp256k1_fe_to_storage(secp256k1_fe_storage *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:124:13: warning: unused function 'secp256k1_fe_from_storage'
[-Wunused-function]
static void secp256k1_fe_from_storage(secp256k1_fe *r, const secp256k1_fe_storage *a);
^
../src/secp256k1-src/src/field.h:127:13: warning: unused function 'secp256k1_fe_storage_cmov'
[-Wunused-function]
static void secp256k1_fe_storage_cmov(secp256k1_fe_storage *r, const secp256k1_fe_storage *a, i...
^
../src/secp256k1-src/src/field.h:130:13: warning: unused function 'secp256k1_fe_cmov'
[-Wunused-function]
static void secp256k1_fe_cmov(secp256k1_fe *r, const secp256k1_fe *a, int flag);
^
In file included from ../src/privatekey.cc:4:
In file included from ../src/secp256k1-src/src/scalar_impl.h:10:
../src/secp256k1-src/src/group.h:44:13: warning: unused function 'secp256k1_ge_set_xy'
[-Wunused-function]
static void secp256k1_ge_set_xy(secp256k1_ge *r, const secp256k1_fe *x, const secp256k1_fe *y);
^
../src/secp256k1-src/src/group.h:50:12: warning: unused function 'secp256k1_ge_set_xquad'
[-Wunused-function]
static int secp256k1_ge_set_xquad(secp256k1_ge *r, const secp256k1_fe *x);
^
../src/secp256k1-src/src/group.h:54:12: warning: unused function 'secp256k1_ge_set_xo_var'
[-Wunused-function]
static int secp256k1_ge_set_xo_var(secp256k1_ge *r, const secp256k1_fe *x, int odd);
^
../src/secp256k1-src/src/group.h:57:12: warning: unused function 'secp256k1_ge_is_infinity'
[-Wunused-function]
static int secp256k1_ge_is_infinity(const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:60:12: warning: unused function 'secp256k1_ge_is_valid_var'
[-Wunused-function]
static int secp256k1_ge_is_valid_var(const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:62:13: warning: unused function 'secp256k1_ge_neg' [-Wunused-function]
static void secp256k1_ge_neg(secp256k1_ge *r, const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:65:13: warning: unused function 'secp256k1_ge_set_gej'
[-Wunused-function]
static void secp256k1_ge_set_gej(secp256k1_ge *r, secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:68:13: warning: unused function 'secp256k1_ge_set_all_gej_var'
[-Wunused-function]
static void secp256k1_ge_set_all_gej_var(secp256k1_ge *r, const secp256k1_gej *a, size_t len);
^
../src/secp256k1-src/src/group.h:75:13: warning: unused function 'secp256k1_ge_globalz_set_table_gej'
[-Wunused-function]
static void secp256k1_ge_globalz_set_table_gej(size_t len, secp256k1_ge *r, secp256k1_fe *globa...
^
../src/secp256k1-src/src/group.h:78:13: warning: unused function 'secp256k1_ge_set_infinity'
[-Wunused-function]
static void secp256k1_ge_set_infinity(secp256k1_ge *r);
^
../src/secp256k1-src/src/group.h:81:13: warning: unused function 'secp256k1_gej_set_infinity'
[-Wunused-function]
static void secp256k1_gej_set_infinity(secp256k1_gej *r);
^
../src/secp256k1-src/src/group.h:84:13: warning: unused function 'secp256k1_gej_set_ge'
[-Wunused-function]
static void secp256k1_gej_set_ge(secp256k1_gej *r, const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:87:12: warning: unused function 'secp256k1_gej_eq_x_var'
[-Wunused-function]
static int secp256k1_gej_eq_x_var(const secp256k1_fe *x, const secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:90:13: warning: unused function 'secp256k1_gej_neg'
[-Wunused-function]
static void secp256k1_gej_neg(secp256k1_gej *r, const secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:93:12: warning: unused function 'secp256k1_gej_is_infinity'
[-Wunused-function]
static int secp256k1_gej_is_infinity(const secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:96:12: warning: unused function 'secp256k1_gej_has_quad_y_var'
[-Wunused-function]
static int secp256k1_gej_has_quad_y_var(const secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:100:13: warning: unused function 'secp256k1_gej_double_nonzero'
[-Wunused-function]
static void secp256k1_gej_double_nonzero(secp256k1_gej *r, const secp256k1_gej *a, secp256k1_fe *rzr);
^
../src/secp256k1-src/src/group.h:103:13: warning: unused function 'secp256k1_gej_double_var'
[-Wunused-function]
static void secp256k1_gej_double_var(secp256k1_gej *r, const secp256k1_gej *a, secp256k1_fe *rzr);
^
../src/secp256k1-src/src/group.h:106:13: warning: unused function 'secp256k1_gej_add_var'
[-Wunused-function]
static void secp256k1_gej_add_var(secp256k1_gej *r, const secp256k1_gej *a, const secp256k1_ge...
^
../src/secp256k1-src/src/group.h:109:13: warning: unused function 'secp256k1_gej_add_ge'
[-Wunused-function]
static void secp256k1_gej_add_ge(secp256k1_gej *r, const secp256k1_gej *a, const secp256k1_ge *b);
^
../src/secp256k1-src/src/group.h:114:13: warning: unused function 'secp256k1_gej_add_ge_var'
[-Wunused-function]
static void secp256k1_gej_add_ge_var(secp256k1_gej *r, const secp256k1_gej *a, const secp256k1_...
^
../src/secp256k1-src/src/group.h:117:13: warning: unused function 'secp256k1_gej_add_zinv_var'
[-Wunused-function]
static void secp256k1_gej_add_zinv_var(secp256k1_gej *r, const secp256k1_gej *a, const secp256k...
^
../src/secp256k1-src/src/group.h:125:13: warning: unused function 'secp256k1_gej_clear'
[-Wunused-function]
static void secp256k1_gej_clear(secp256k1_gej *r);
^
../src/secp256k1-src/src/group.h:128:13: warning: unused function 'secp256k1_ge_clear'
[-Wunused-function]
static void secp256k1_ge_clear(secp256k1_ge *r);
^
../src/secp256k1-src/src/group.h:131:13: warning: unused function 'secp256k1_ge_to_storage'
[-Wunused-function]
static void secp256k1_ge_to_storage(secp256k1_ge_storage *r, const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:134:13: warning: unused function 'secp256k1_ge_from_storage'
[-Wunused-function]
static void secp256k1_ge_from_storage(secp256k1_ge *r, const secp256k1_ge_storage *a);
^
../src/secp256k1-src/src/group.h:137:13: warning: unused function 'secp256k1_ge_storage_cmov'
[-Wunused-function]
static void secp256k1_ge_storage_cmov(secp256k1_ge_storage *r, const secp256k1_ge_storage *a, i...
^
../src/secp256k1-src/src/group.h:140:13: warning: unused function 'secp256k1_gej_rescale'
[-Wunused-function]
static void secp256k1_gej_rescale(secp256k1_gej *r, const secp256k1_fe *b);
^
In file included from ../src/privatekey.cc:4:
In file included from ../src/secp256k1-src/src/scalar_impl.h:20:
../src/secp256k1-src/src/scalar_4x64_impl.h:83:12: warning: unused function 'secp256k1_scalar_add'
[-Wunused-function]
static int secp256k1_scalar_add(secp256k1_scalar *r, const secp256k1_scalar *a, const secp256k1...
^
../src/secp256k1-src/src/scalar_4x64_impl.h:897:12: warning: unused function 'secp256k1_scalar_shr_int'
[-Wunused-function]
static int secp256k1_scalar_shr_int(secp256k1_scalar *r, int n) {
^
In file included from ../src/privatekey.cc:4:
../src/secp256k1-src/src/scalar_impl.h:225:13: warning: unused function 'secp256k1_scalar_inverse_var'
[-Wunused-function]
static void secp256k1_scalar_inverse_var(secp256k1_scalar *r, const secp256k1_scalar *x) {
^
In file included from ../src/privatekey.cc:4:
In file included from ../src/secp256k1-src/src/scalar_impl.h:20:
../src/secp256k1-src/src/scalar_4x64_impl.h:140:13: warning: unused function 'secp256k1_scalar_negate'
[-Wunused-function]
static void secp256k1_scalar_negate(secp256k1_scalar *r, const secp256k1_scalar *a) {
^
../src/secp256k1-src/src/scalar_4x64_impl.h:156:12: warning: unused function 'secp256k1_scalar_is_high'
[-Wunused-function]
static int secp256k1_scalar_is_high(const secp256k1_scalar *a) {
^
../src/secp256k1-src/src/scalar_4x64_impl.h:168:12: warning: unused function
'secp256k1_scalar_cond_negate' [-Wunused-function]
static int secp256k1_scalar_cond_negate(secp256k1_scalar *r, int flag) {
^
63 warnings generated.
CXX(target) Release/obj.target/secp256k1/src/publickey.o
CXX(target) Release/obj.target/secp256k1/src/signature.o
CXX(target) Release/obj.target/secp256k1/src/ecdsa.o
CXX(target) Release/obj.target/secp256k1/src/ecdh.o
CC(target) Release/obj.target/secp256k1/src/secp256k1-src/src/secp256k1.o
In file included from ../src/secp256k1-src/src/secp256k1.c:11:
../src/secp256k1-src/src/field_impl.h:266:13: warning: unused function 'secp256k1_fe_inv_all_var'
[-Wunused-function]
static void secp256k1_fe_inv_all_var(secp256k1_fe *r, const secp256k1_fe *a, size_t len) {
^
In file included from ../src/secp256k1-src/src/secp256k1.c:13:
../src/secp256k1-src/src/group_impl.h:202:13: warning: unused function 'secp256k1_ge_set_infinity'
[-Wunused-function]
static void secp256k1_ge_set_infinity(secp256k1_ge *r) {
^
../src/secp256k1-src/src/group_impl.h:691:12: warning: unused function 'secp256k1_gej_has_quad_y_var'
[-Wunused-function]
static int secp256k1_gej_has_quad_y_var(const secp256k1_gej *a) {
^
../src/secp256k1-src/src/group_impl.h:272:12: warning: unused function 'secp256k1_gej_is_valid_var'
[-Wunused-function]
static int secp256k1_gej_is_valid_var(const secp256k1_gej *a) {
^
In file included from ../src/secp256k1-src/src/secp256k1.c:14:
../src/secp256k1-src/src/ecmult_impl.h:1135:12: warning: unused function 'secp256k1_ecmult_multi_var'
[-Wunused-function]
static int secp256k1_ecmult_multi_var(const secp256k1_ecmult_context *ctx, secp256k1_scratch *s...
^
../src/secp256k1-src/src/ecmult_impl.h:669:12: warning: unused function
'secp256k1_ecmult_strauss_batch_single' [-Wunused-function]
static int secp256k1_ecmult_strauss_batch_single(const secp256k1_ecmult_context *actx, secp256k...
^
../src/secp256k1-src/src/ecmult_impl.h:1042:12: warning: unused function
'secp256k1_ecmult_pippenger_batch_single' [-Wunused-function]
static int secp256k1_ecmult_pippenger_batch_single(const secp256k1_ecmult_context *actx, secp25...
^
7 warnings generated.
CC(target) Release/obj.target/secp256k1/src/secp256k1-src/contrib/lax_der_parsing.o
CC(target) Release/obj.target/secp256k1/src/secp256k1-src/contrib/lax_der_privatekey_parsing.o
SOLINK_MODULE(target) Release/secp256k1.node

  • [email protected]
    added 88 packages from 85 contributors in 15.268s
    $ ganache cli
    -bash: ganache: command not found
    $ ganache cli
    -bash: ganache: command not found

Could you please assist?

Thank you.

The command is ganache-cli, not ganache cli.

Thank you so much for the assistance @davidmurdoch 馃憤
It all works well now !!
You guys are legend 馃

Hi @davidmurdoch,

I've tried to use ganache today again and it looks like I am having issues to start it. This is strange as it ended up working fine last month after you assisted in the resolution (see posts above).

I have pasted below what I tried today and the corresponding compilation + errors.
Why does the ganache-cli command is not found whereas ganache-cli appears to be installed?

Last login: Sun Oct 20 12:04:22 on ttys000
xxx-xxx-x-xxx:~ me$ npm -v
6.9.0
xxx-xxx-x-xxx:~ me$ node -v
v10.16.3
xxx-xxx-x-xxx:~ me$ ganache-cli
-bash: ganache-cli: command not found
xxx-xxx-x-xxx:~ me$ npm uninstall -g ganache-cli && npm install -g ganache-cli
removed 88 packages in 0.707s
/Users/me/.npm-global/bin/ganache-cli -> /Users/me/.npm-global/lib/node_modules/ganache-cli/cli.js

[email protected] install /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/keccak
npm run rebuild || echo "Keccak bindings compilation fail. Pure JS implementation will be used."

[email protected] rebuild /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/keccak
node-gyp rebuild

CXX(target) Release/obj.target/keccak/src/addon.o
../src/addon.cc:37:34: warning: 'IntegerValue' is deprecated
[-Wdeprecated-declarations]
unsigned int rate = info[0]->IntegerValue();
^
/Users/me/.node-gyp/10.16.3/include/node/v8.h:2476:3: note:
'IntegerValue' has been explicitly marked deprecated here
V8_DEPRECATED("Use maybe version", int64_t IntegerValue() const);
^
/Users/me/.node-gyp/10.16.3/include/node/v8config.h:327:29: note:
expanded from macro 'V8_DEPRECATED'
declarator __attribute__((deprecated))
^
../src/addon.cc:38:38: warning: 'IntegerValue' is deprecated
[-Wdeprecated-declarations]
unsigned int capacity = info[1]->IntegerValue();
^
/Users/me/.node-gyp/10.16.3/include/node/v8.h:2476:3: note:
'IntegerValue' has been explicitly marked deprecated here
V8_DEPRECATED("Use maybe version", int64_t IntegerValue() const);
^
/Users/me/.node-gyp/10.16.3/include/node/v8config.h:327:29: note:
expanded from macro 'V8_DEPRECATED'
declarator __attribute__((deprecated))
^
../src/addon.cc:56:35: warning: 'IntegerValue' is deprecated
[-Wdeprecated-declarations]
unsigned char bits = info[0]->IntegerValue();
^
/Users/me/.node-gyp/10.16.3/include/node/v8.h:2476:3: note:
'IntegerValue' has been explicitly marked deprecated here
V8_DEPRECATED("Use maybe version", int64_t IntegerValue() const);
^
/Users/me/.node-gyp/10.16.3/include/node/v8config.h:327:29: note:
expanded from macro 'V8_DEPRECATED'
declarator __attribute__((deprecated))
^
../src/addon.cc:64:30: warning: 'IntegerValue' is deprecated
[-Wdeprecated-declarations]
size_t length = info[0]->IntegerValue();
^
/Users/me/.node-gyp/10.16.3/include/node/v8.h:2476:3: note:
'IntegerValue' has been explicitly marked deprecated here
V8_DEPRECATED("Use maybe version", int64_t IntegerValue() const);
^
/Users/me/.node-gyp/10.16.3/include/node/v8config.h:327:29: note:
expanded from macro 'V8_DEPRECATED'
declarator __attribute__((deprecated))
^
../src/addon.cc:75:73: warning: 'ToObject' is deprecated
[-Wdeprecated-declarations]
KeccakWrapper* to = Nan::ObjectWrap::Unwrap(info[0]->ToOb...
^
/Users/me/.node-gyp/10.16.3/include/node/v8.h:2455:10: note:
'ToObject' has been explicitly marked deprecated here
inline V8_DEPRECATED("Use maybe version", Local ToObject() const);
^
/Users/me/.node-gyp/10.16.3/include/node/v8config.h:327:29: note:
expanded from macro 'V8_DEPRECATED'
declarator __attribute__((deprecated))
^
5 warnings generated.
CC(target) Release/obj.target/keccak/src/libkeccak/KeccakSponge.o
CC(target) Release/obj.target/keccak/src/libkeccak/KeccakP-1600-reference.o
../src/libkeccak/KeccakP-1600-reference.c:231:13: warning: unused function
'fromBytesToWords' [-Wunused-function]
static void fromBytesToWords(tKeccakLane *stateAsWords, const unsigned c...
^
../src/libkeccak/KeccakP-1600-reference.c:242:13: warning: unused function
'fromWordsToBytes' [-Wunused-function]
static void fromWordsToBytes(unsigned char *state, const tKeccakLane *st...
^
2 warnings generated.
SOLINK_MODULE(target) Release/keccak.node

[email protected] install /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/secp256k1
npm run rebuild || echo "Secp256k1 bindings compilation fail. Pure JS implementation will be used."

[email protected] rebuild /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/secp256k1
node-gyp rebuild

CXX(target) Release/obj.target/secp256k1/src/addon.o
CXX(target) Release/obj.target/secp256k1/src/privatekey.o
../src/privatekey.cc:73:3: warning: ignoring return value of function declared
with 'warn_unused_result' attribute [-Wunused-result]
secp256k1_ec_privkey_negate(secp256k1ctx, &private_key[0]);
^~~~~~~ ~~~~~~~~~
In file included from ../src/privatekey.cc:4:
In file included from ../src/secp256k1-src/src/scalar_impl.h:10:
In file included from ../src/secp256k1-src/src/group.h:11:
../src/secp256k1-src/src/field.h:36:13: warning: unused function
'secp256k1_fe_normalize' [-Wunused-function]
static void secp256k1_fe_normalize(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:39:13: warning: unused function
'secp256k1_fe_normalize_weak' [-Wunused-function]
static void secp256k1_fe_normalize_weak(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:42:13: warning: unused function
'secp256k1_fe_normalize_var' [-Wunused-function]
static void secp256k1_fe_normalize_var(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:46:12: warning: unused function
'secp256k1_fe_normalizes_to_zero' [-Wunused-function]
static int secp256k1_fe_normalizes_to_zero(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:50:12: warning: unused function
'secp256k1_fe_normalizes_to_zero_var' [-Wunused-function]
static int secp256k1_fe_normalizes_to_zero_var(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:53:13: warning: unused function
'secp256k1_fe_set_int' [-Wunused-function]
static void secp256k1_fe_set_int(secp256k1_fe *r, int a);
^
../src/secp256k1-src/src/field.h:56:13: warning: unused function
'secp256k1_fe_clear' [-Wunused-function]
static void secp256k1_fe_clear(secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:59:12: warning: unused function
'secp256k1_fe_is_zero' [-Wunused-function]
static int secp256k1_fe_is_zero(const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:62:12: warning: unused function
'secp256k1_fe_is_odd' [-Wunused-function]
static int secp256k1_fe_is_odd(const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:65:12: warning: unused function
'secp256k1_fe_equal' [-Wunused-function]
static int secp256k1_fe_equal(const secp256k1_fe *a, const secp256k1_fe *b);
^
../src/secp256k1-src/src/field.h:68:12: warning: unused function
'secp256k1_fe_equal_var' [-Wunused-function]
static int secp256k1_fe_equal_var(const secp256k1_fe *a, const secp256k1_fe *b);
^
../src/secp256k1-src/src/field.h:71:12: warning: unused function
'secp256k1_fe_cmp_var' [-Wunused-function]
static int secp256k1_fe_cmp_var(const secp256k1_fe *a, const secp256k1_fe *b);
^
../src/secp256k1-src/src/field.h:74:12: warning: unused function
'secp256k1_fe_set_b32' [-Wunused-function]
static int secp256k1_fe_set_b32(secp256k1_fe *r, const unsigned char *a);
^
../src/secp256k1-src/src/field.h:77:13: warning: unused function
'secp256k1_fe_get_b32' [-Wunused-function]
static void secp256k1_fe_get_b32(unsigned char *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:81:13: warning: unused function
'secp256k1_fe_negate' [-Wunused-function]
static void secp256k1_fe_negate(secp256k1_fe *r, const secp256k1_fe *a, int m);
^
../src/secp256k1-src/src/field.h:85:13: warning: unused function
'secp256k1_fe_mul_int' [-Wunused-function]
static void secp256k1_fe_mul_int(secp256k1_fe *r, int a);
^
../src/secp256k1-src/src/field.h:88:13: warning: unused function
'secp256k1_fe_add' [-Wunused-function]
static void secp256k1_fe_add(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:92:13: warning: unused function
'secp256k1_fe_mul' [-Wunused-function]
static void secp256k1_fe_mul(secp256k1_fe *r, const secp256k1_fe *a, con...
^
../src/secp256k1-src/src/field.h:96:13: warning: unused function
'secp256k1_fe_sqr' [-Wunused-function]
static void secp256k1_fe_sqr(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:103:12: warning: unused function
'secp256k1_fe_sqrt' [-Wunused-function]
static int secp256k1_fe_sqrt(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:106:12: warning: unused function
'secp256k1_fe_is_quad_var' [-Wunused-function]
static int secp256k1_fe_is_quad_var(const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:110:13: warning: unused function
'secp256k1_fe_inv' [-Wunused-function]
static void secp256k1_fe_inv(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:113:13: warning: unused function
'secp256k1_fe_inv_var' [-Wunused-function]
static void secp256k1_fe_inv_var(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:118:13: warning: unused function
'secp256k1_fe_inv_all_var' [-Wunused-function]
static void secp256k1_fe_inv_all_var(secp256k1_fe *r, const secp256k1_f...
^
../src/secp256k1-src/src/field.h:121:13: warning: unused function
'secp256k1_fe_to_storage' [-Wunused-function]
static void secp256k1_fe_to_storage(secp256k1_fe_storage *r, const secp2...
^
../src/secp256k1-src/src/field.h:124:13: warning: unused function
'secp256k1_fe_from_storage' [-Wunused-function]
static void secp256k1_fe_from_storage(secp256k1_fe *r, const secp256k1_f...
^
../src/secp256k1-src/src/field.h:127:13: warning: unused function
'secp256k1_fe_storage_cmov' [-Wunused-function]
static void secp256k1_fe_storage_cmov(secp256k1_fe_storage *r, const sec...
^
../src/secp256k1-src/src/field.h:130:13: warning: unused function
'secp256k1_fe_cmov' [-Wunused-function]
static void secp256k1_fe_cmov(secp256k1_fe *r, const secp256k1_fe *a, int flag);
^
In file included from ../src/privatekey.cc:4:
In file included from ../src/secp256k1-src/src/scalar_impl.h:10:
../src/secp256k1-src/src/group.h:44:13: warning: unused function
'secp256k1_ge_set_xy' [-Wunused-function]
static void secp256k1_ge_set_xy(secp256k1_ge *r, const secp256k1_fe *x, ...
^
../src/secp256k1-src/src/group.h:50:12: warning: unused function
'secp256k1_ge_set_xquad' [-Wunused-function]
static int secp256k1_ge_set_xquad(secp256k1_ge *r, const secp256k1_fe *x);
^
../src/secp256k1-src/src/group.h:54:12: warning: unused function
'secp256k1_ge_set_xo_var' [-Wunused-function]
static int secp256k1_ge_set_xo_var(secp256k1_ge *r, const secp256k1_fe *...
^
../src/secp256k1-src/src/group.h:57:12: warning: unused function
'secp256k1_ge_is_infinity' [-Wunused-function]
static int secp256k1_ge_is_infinity(const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:60:12: warning: unused function
'secp256k1_ge_is_valid_var' [-Wunused-function]
static int secp256k1_ge_is_valid_var(const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:62:13: warning: unused function
'secp256k1_ge_neg' [-Wunused-function]
static void secp256k1_ge_neg(secp256k1_ge *r, const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:65:13: warning: unused function
'secp256k1_ge_set_gej' [-Wunused-function]
static void secp256k1_ge_set_gej(secp256k1_ge *r, secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:68:13: warning: unused function
'secp256k1_ge_set_all_gej_var' [-Wunused-function]
static void secp256k1_ge_set_all_gej_var(secp256k1_ge *r, const secp256k...
^
../src/secp256k1-src/src/group.h:75:13: warning: unused function
'secp256k1_ge_globalz_set_table_gej' [-Wunused-function]
static void secp256k1_ge_globalz_set_table_gej(size_t len, secp256k1_ge ...
^
../src/secp256k1-src/src/group.h:78:13: warning: unused function
'secp256k1_ge_set_infinity' [-Wunused-function]
static void secp256k1_ge_set_infinity(secp256k1_ge *r);
^
../src/secp256k1-src/src/group.h:81:13: warning: unused function
'secp256k1_gej_set_infinity' [-Wunused-function]
static void secp256k1_gej_set_infinity(secp256k1_gej *r);
^
../src/secp256k1-src/src/group.h:84:13: warning: unused function
'secp256k1_gej_set_ge' [-Wunused-function]
static void secp256k1_gej_set_ge(secp256k1_gej *r, const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:87:12: warning: unused function
'secp256k1_gej_eq_x_var' [-Wunused-function]
static int secp256k1_gej_eq_x_var(const secp256k1_fe *x, const secp256k1...
^
../src/secp256k1-src/src/group.h:90:13: warning: unused function
'secp256k1_gej_neg' [-Wunused-function]
static void secp256k1_gej_neg(secp256k1_gej *r, const secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:93:12: warning: unused function
'secp256k1_gej_is_infinity' [-Wunused-function]
static int secp256k1_gej_is_infinity(const secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:96:12: warning: unused function
'secp256k1_gej_has_quad_y_var' [-Wunused-function]
static int secp256k1_gej_has_quad_y_var(const secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:100:13: warning: unused function
'secp256k1_gej_double_nonzero' [-Wunused-function]
static void secp256k1_gej_double_nonzero(secp256k1_gej *r, const secp256...
^
../src/secp256k1-src/src/group.h:103:13: warning: unused function
'secp256k1_gej_double_var' [-Wunused-function]
static void secp256k1_gej_double_var(secp256k1_gej *r, const secp256k1_g...
^
../src/secp256k1-src/src/group.h:106:13: warning: unused function
'secp256k1_gej_add_var' [-Wunused-function]
static void secp256k1_gej_add_var(secp256k1_gej *r, const secp256k1_gej ...
^
../src/secp256k1-src/src/group.h:109:13: warning: unused function
'secp256k1_gej_add_ge' [-Wunused-function]
static void secp256k1_gej_add_ge(secp256k1_gej *r, const secp256k1_gej *...
^
../src/secp256k1-src/src/group.h:114:13: warning: unused function
'secp256k1_gej_add_ge_var' [-Wunused-function]
static void secp256k1_gej_add_ge_var(secp256k1_gej *r, const secp256k1_g...
^
../src/secp256k1-src/src/group.h:117:13: warning: unused function
'secp256k1_gej_add_zinv_var' [-Wunused-function]
static void secp256k1_gej_add_zinv_var(secp256k1_gej *r, const secp256k1...
^
../src/secp256k1-src/src/group.h:125:13: warning: unused function
'secp256k1_gej_clear' [-Wunused-function]
static void secp256k1_gej_clear(secp256k1_gej *r);
^
../src/secp256k1-src/src/group.h:128:13: warning: unused function
'secp256k1_ge_clear' [-Wunused-function]
static void secp256k1_ge_clear(secp256k1_ge *r);
^
../src/secp256k1-src/src/group.h:131:13: warning: unused function
'secp256k1_ge_to_storage' [-Wunused-function]
static void secp256k1_ge_to_storage(secp256k1_ge_storage *r, const secp2...
^
../src/secp256k1-src/src/group.h:134:13: warning: unused function
'secp256k1_ge_from_storage' [-Wunused-function]
static void secp256k1_ge_from_storage(secp256k1_ge *r, const secp256k1_g...
^
../src/secp256k1-src/src/group.h:137:13: warning: unused function
'secp256k1_ge_storage_cmov' [-Wunused-function]
static void secp256k1_ge_storage_cmov(secp256k1_ge_storage *r, const sec...
^
../src/secp256k1-src/src/group.h:140:13: warning: unused function
'secp256k1_gej_rescale' [-Wunused-function]
static void secp256k1_gej_rescale(secp256k1_gej *r, const secp256k1_fe *b);
^
In file included from ../src/privatekey.cc:4:
In file included from ../src/secp256k1-src/src/scalar_impl.h:20:
../src/secp256k1-src/src/scalar_4x64_impl.h:83:12: warning: unused function
'secp256k1_scalar_add' [-Wunused-function]
static int secp256k1_scalar_add(secp256k1_scalar *r, const secp256k1_sca...
^
../src/secp256k1-src/src/scalar_4x64_impl.h:897:12: warning: unused function
'secp256k1_scalar_shr_int' [-Wunused-function]
static int secp256k1_scalar_shr_int(secp256k1_scalar *r, int n) {
^
In file included from ../src/privatekey.cc:4:
../src/secp256k1-src/src/scalar_impl.h:225:13: warning: unused function
'secp256k1_scalar_inverse_var' [-Wunused-function]
static void secp256k1_scalar_inverse_var(secp256k1_scalar *r, const secp...
^
In file included from ../src/privatekey.cc:4:
In file included from ../src/secp256k1-src/src/scalar_impl.h:20:
../src/secp256k1-src/src/scalar_4x64_impl.h:140:13: warning: unused function
'secp256k1_scalar_negate' [-Wunused-function]
static void secp256k1_scalar_negate(secp256k1_scalar *r, const secp256k1...
^
../src/secp256k1-src/src/scalar_4x64_impl.h:156:12: warning: unused function
'secp256k1_scalar_is_high' [-Wunused-function]
static int secp256k1_scalar_is_high(const secp256k1_scalar *a) {
^
../src/secp256k1-src/src/scalar_4x64_impl.h:168:12: warning: unused function
'secp256k1_scalar_cond_negate' [-Wunused-function]
static int secp256k1_scalar_cond_negate(secp256k1_scalar *r, int flag) {
^
63 warnings generated.
CXX(target) Release/obj.target/secp256k1/src/publickey.o
CXX(target) Release/obj.target/secp256k1/src/signature.o
CXX(target) Release/obj.target/secp256k1/src/ecdsa.o
CXX(target) Release/obj.target/secp256k1/src/ecdh.o
CC(target) Release/obj.target/secp256k1/src/secp256k1-src/src/secp256k1.o
In file included from ../src/secp256k1-src/src/secp256k1.c:11:
../src/secp256k1-src/src/field_impl.h:266:13: warning: unused function
'secp256k1_fe_inv_all_var' [-Wunused-function]
static void secp256k1_fe_inv_all_var(secp256k1_fe *r, const secp256k1_f...
^
In file included from ../src/secp256k1-src/src/secp256k1.c:13:
../src/secp256k1-src/src/group_impl.h:202:13: warning: unused function
'secp256k1_ge_set_infinity' [-Wunused-function]
static void secp256k1_ge_set_infinity(secp256k1_ge *r) {
^
../src/secp256k1-src/src/group_impl.h:691:12: warning: unused function
'secp256k1_gej_has_quad_y_var' [-Wunused-function]
static int secp256k1_gej_has_quad_y_var(const secp256k1_gej *a) {
^
../src/secp256k1-src/src/group_impl.h:272:12: warning: unused function
'secp256k1_gej_is_valid_var' [-Wunused-function]
static int secp256k1_gej_is_valid_var(const secp256k1_gej *a) {
^
In file included from ../src/secp256k1-src/src/secp256k1.c:14:
../src/secp256k1-src/src/ecmult_impl.h:1135:12: warning: unused function
'secp256k1_ecmult_multi_var' [-Wunused-function]
static int secp256k1_ecmult_multi_var(const secp256k1_ecmult_context *ct...
^
../src/secp256k1-src/src/ecmult_impl.h:669:12: warning: unused function
'secp256k1_ecmult_strauss_batch_single' [-Wunused-function]
static int secp256k1_ecmult_strauss_batch_single(const secp256k1_ecmult_...
^
../src/secp256k1-src/src/ecmult_impl.h:1042:12: warning: unused function
'secp256k1_ecmult_pippenger_batch_single' [-Wunused-function]
static int secp256k1_ecmult_pippenger_batch_single(const secp256k1_ecmul...
^
7 warnings generated.
CC(target) Release/obj.target/secp256k1/src/secp256k1-src/contrib/lax_der_parsing.o
CC(target) Release/obj.target/secp256k1/src/secp256k1-src/contrib/lax_der_privatekey_parsing.o
SOLINK_MODULE(target) Release/secp256k1.node

  • [email protected]
    added 88 packages from 85 contributors in 12.216s
    xxx-xxx-x-xxx:~ me$ ganache-cli
    -bash: ganache-cli: command not found
    xxx-xxx-x-xxx:~ me$

Sounds like your node or npm installation is misconfigured. You might want to try uninstalling and reinstalling node.

Thank you for your reply @davidmurdoch

I have uninstalled node by deleting the files as explained in this link:
https://stackoverflow.com/questions/11177954/how-do-i-completely-uninstall-node-js-and-reinstall-from-beginning-mac-os-x

_To completely uninstall node + npm is to do the following:

go to /usr/local/lib and delete any node and node_modules
go to /usr/local/include and delete any node and node_modules directory
if you installed with brew install node, then run brew uninstall node in your terminal
check your Home directory for any local or lib or include folders, and delete any node or node_modules from there
go to /usr/local/bin and delete any node executable_

The I have reinstalled node v12.13 from the website:
https://nodejs.org/en/download/

Unfortunately I am still getting this weird errors (see compilation below)
Could you please assist.
Thank you very much.

:~ me$ node -v
v12.13.0
:~ me$ ganache-cli
-bash: ganache-cli: command not found
:~ me$ npm uninstall -g ganache-cli && npm install -g ganache-cli
removed 88 packages in 0.773s
/Users/me/.npm-global/bin/ganache-cli -> /Users/me/.npm-global/lib/node_modules/ganache-cli/cli.js

[email protected] install /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/keccak
npm run rebuild || echo "Keccak bindings compilation fail. Pure JS implementation will be used."

[email protected] rebuild /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/keccak
node-gyp rebuild

CXX(target) Release/obj.target/keccak/src/addon.o
../src/addon.cc:37:47: error: too few arguments to function call, single
argument 'context' was not specified
unsigned int rate = info[0]->IntegerValue();
~~~~~ ^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2609:3: note:
'IntegerValue' declared here
V8_WARN_UNUSED_RESULT Maybe IntegerValue(
^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:351:31: note:
expanded from macro 'V8_WARN_UNUSED_RESULT'

define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))

                          ^

../src/addon.cc:38:51: error: too few arguments to function call, single
argument 'context' was not specified
unsigned int capacity = info[1]->IntegerValue();
~~~~~ ^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2609:3: note:
'IntegerValue' declared here
V8_WARN_UNUSED_RESULT Maybe IntegerValue(
^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:351:31: note:
expanded from macro 'V8_WARN_UNUSED_RESULT'

define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))

                          ^

../src/addon.cc:56:48: error: too few arguments to function call, single
argument 'context' was not specified
unsigned char bits = info[0]->IntegerValue();
~~~~~ ^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2609:3: note:
'IntegerValue' declared here
V8_WARN_UNUSED_RESULT Maybe IntegerValue(
^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:351:31: note:
expanded from macro 'V8_WARN_UNUSED_RESULT'

define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))

                          ^

../src/addon.cc:64:43: error: too few arguments to function call, single
argument 'context' was not specified
size_t length = info[0]->IntegerValue();
~~~~~ ^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2609:3: note:
'IntegerValue' declared here
V8_WARN_UNUSED_RESULT Maybe IntegerValue(
^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:351:31: note:
expanded from macro 'V8_WARN_UNUSED_RESULT'

define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))

                          ^

../src/addon.cc:75:73: error: no matching member function for call to 'ToObject'
...to = Nan::ObjectWrap::Unwrap(info[0]->ToObject());
~~~^~
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2576:44: note:
candidate function not viable: requires single argument 'context', but no
arguments were provided
V8_WARN_UNUSED_RESULT MaybeLocal ToObject(
^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2590:31: note:
candidate function not viable: requires single argument 'isolate', but no
arguments were provided
Local ToObject(Isolate* isolate) const);
^
5 errors generated.
make: * [Release/obj.target/keccak/src/addon.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:194:23)
gyp ERR! stack at ChildProcess.emit (events.js:210:5)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Darwin 18.7.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 /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/keccak
gyp ERR! node -v v12.13.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] rebuild: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] rebuild 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/me/.npm/_logs/2019-10-22T10_33_24_737Z-debug.log
Keccak bindings compilation fail. Pure JS implementation will be used.

[email protected] install /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/secp256k1
npm run rebuild || echo "Secp256k1 bindings compilation fail. Pure JS implementation will be used."

[email protected] rebuild /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/secp256k1
node-gyp rebuild

CXX(target) Release/obj.target/secp256k1/src/addon.o
CXX(target) Release/obj.target/secp256k1/src/privatekey.o
../src/privatekey.cc:73:3: warning: ignoring return value of function declared
with 'warn_unused_result' attribute [-Wunused-result]
secp256k1_ec_privkey_negate(secp256k1ctx, &private_key[0]);
^~~~~~~ ~~~~~~~
In file included from ../src/privatekey.cc:4:
In file included from ../src/secp256k1-src/src/scalar_impl.h:10:
In file included from ../src/secp256k1-src/src/group.h:11:
../src/secp256k1-src/src/field.h:36:13: warning: unused function
'secp256k1_fe_normalize' [-Wunused-function]
static void secp256k1_fe_normalize(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:39:13: warning: unused function
'secp256k1_fe_normalize_weak' [-Wunused-function]
static void secp256k1_fe_normalize_weak(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:42:13: warning: unused function
'secp256k1_fe_normalize_var' [-Wunused-function]
static void secp256k1_fe_normalize_var(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:46:12: warning: unused function
'secp256k1_fe_normalizes_to_zero' [-Wunused-function]
static int secp256k1_fe_normalizes_to_zero(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:50:12: warning: unused function
'secp256k1_fe_normalizes_to_zero_var' [-Wunused-function]
static int secp256k1_fe_normalizes_to_zero_var(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:53:13: warning: unused function
'secp256k1_fe_set_int' [-Wunused-function]
static void secp256k1_fe_set_int(secp256k1_fe *r, int a);
^
../src/secp256k1-src/src/field.h:56:13: warning: unused function
'secp256k1_fe_clear' [-Wunused-function]
static void secp256k1_fe_clear(secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:59:12: warning: unused function
'secp256k1_fe_is_zero' [-Wunused-function]
static int secp256k1_fe_is_zero(const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:62:12: warning: unused function
'secp256k1_fe_is_odd' [-Wunused-function]
static int secp256k1_fe_is_odd(const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:65:12: warning: unused function
'secp256k1_fe_equal' [-Wunused-function]
static int secp256k1_fe_equal(const secp256k1_fe *a, const secp256k1_fe *b);
^
../src/secp256k1-src/src/field.h:68:12: warning: unused function
'secp256k1_fe_equal_var' [-Wunused-function]
static int secp256k1_fe_equal_var(const secp256k1_fe *a, const secp256k1_fe *b);
^
../src/secp256k1-src/src/field.h:71:12: warning: unused function
'secp256k1_fe_cmp_var' [-Wunused-function]
static int secp256k1_fe_cmp_var(const secp256k1_fe *a, const secp256k1_fe *b);
^
../src/secp256k1-src/src/field.h:74:12: warning: unused function
'secp256k1_fe_set_b32' [-Wunused-function]
static int secp256k1_fe_set_b32(secp256k1_fe *r, const unsigned char *a);
^
../src/secp256k1-src/src/field.h:77:13: warning: unused function
'secp256k1_fe_get_b32' [-Wunused-function]
static void secp256k1_fe_get_b32(unsigned char *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:81:13: warning: unused function
'secp256k1_fe_negate' [-Wunused-function]
static void secp256k1_fe_negate(secp256k1_fe *r, const secp256k1_fe *a, int m);
^
../src/secp256k1-src/src/field.h:85:13: warning: unused function
'secp256k1_fe_mul_int' [-Wunused-function]
static void secp256k1_fe_mul_int(secp256k1_fe *r, int a);
^
../src/secp256k1-src/src/field.h:88:13: warning: unused function
'secp256k1_fe_add' [-Wunused-function]
static void secp256k1_fe_add(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:92:13: warning: unused function
'secp256k1_fe_mul' [-Wunused-function]
static void secp256k1_fe_mul(secp256k1_fe *r, const secp256k1_fe *a, con...
^
../src/secp256k1-src/src/field.h:96:13: warning: unused function
'secp256k1_fe_sqr' [-Wunused-function]
static void secp256k1_fe_sqr(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:103:12: warning: unused function
'secp256k1_fe_sqrt' [-Wunused-function]
static int secp256k1_fe_sqrt(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:106:12: warning: unused function
'secp256k1_fe_is_quad_var' [-Wunused-function]
static int secp256k1_fe_is_quad_var(const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:110:13: warning: unused function
'secp256k1_fe_inv' [-Wunused-function]
static void secp256k1_fe_inv(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:113:13: warning: unused function
'secp256k1_fe_inv_var' [-Wunused-function]
static void secp256k1_fe_inv_var(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:118:13: warning: unused function
'secp256k1_fe_inv_all_var' [-Wunused-function]
static void secp256k1_fe_inv_all_var(secp256k1_fe *r, const secp256k1_f...
^
../src/secp256k1-src/src/field.h:121:13: warning: unused function
'secp256k1_fe_to_storage' [-Wunused-function]
static void secp256k1_fe_to_storage(secp256k1_fe_storage *r, const secp2...
^
../src/secp256k1-src/src/field.h:124:13: warning: unused function
'secp256k1_fe_from_storage' [-Wunused-function]
static void secp256k1_fe_from_storage(secp256k1_fe *r, const secp256k1_f...
^
../src/secp256k1-src/src/field.h:127:13: warning: unused function
'secp256k1_fe_storage_cmov' [-Wunused-function]
static void secp256k1_fe_storage_cmov(secp256k1_fe_storage *r, const sec...
^
../src/secp256k1-src/src/field.h:130:13: warning: unused function
'secp256k1_fe_cmov' [-Wunused-function]
static void secp256k1_fe_cmov(secp256k1_fe *r, const secp256k1_fe *a, int flag);
^
In file included from ../src/privatekey.cc:4:
In file included from ../src/secp256k1-src/src/scalar_impl.h:10:
../src/secp256k1-src/src/group.h:44:13: warning: unused function
'secp256k1_ge_set_xy' [-Wunused-function]
static void secp256k1_ge_set_xy(secp256k1_ge *r, const secp256k1_fe *x, ...
^
../src/secp256k1-src/src/group.h:50:12: warning: unused function
'secp256k1_ge_set_xquad' [-Wunused-function]
static int secp256k1_ge_set_xquad(secp256k1_ge *r, const secp256k1_fe *x);
^
../src/secp256k1-src/src/group.h:54:12: warning: unused function
'secp256k1_ge_set_xo_var' [-Wunused-function]
static int secp256k1_ge_set_xo_var(secp256k1_ge *r, const secp256k1_fe *...
^
../src/secp256k1-src/src/group.h:57:12: warning: unused function
'secp256k1_ge_is_infinity' [-Wunused-function]
static int secp256k1_ge_is_infinity(const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:60:12: warning: unused function
'secp256k1_ge_is_valid_var' [-Wunused-function]
static int secp256k1_ge_is_valid_var(const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:62:13: warning: unused function
'secp256k1_ge_neg' [-Wunused-function]
static void secp256k1_ge_neg(secp256k1_ge *r, const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:65:13: warning: unused function
'secp256k1_ge_set_gej' [-Wunused-function]
static void secp256k1_ge_set_gej(secp256k1_ge *r, secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:68:13: warning: unused function
'secp256k1_ge_set_all_gej_var' [-Wunused-function]
static void secp256k1_ge_set_all_gej_var(secp256k1_ge *r, const secp256k...
^
../src/secp256k1-src/src/group.h:75:13: warning: unused function
'secp256k1_ge_globalz_set_table_gej' [-Wunused-function]
static void secp256k1_ge_globalz_set_table_gej(size_t len, secp256k1_ge ...
^
../src/secp256k1-src/src/group.h:78:13: warning: unused function
'secp256k1_ge_set_infinity' [-Wunused-function]
static void secp256k1_ge_set_infinity(secp256k1_ge *r);
^
../src/secp256k1-src/src/group.h:81:13: warning: unused function
'secp256k1_gej_set_infinity' [-Wunused-function]
static void secp256k1_gej_set_infinity(secp256k1_gej *r);
^
../src/secp256k1-src/src/group.h:84:13: warning: unused function
'secp256k1_gej_set_ge' [-Wunused-function]
static void secp256k1_gej_set_ge(secp256k1_gej *r, const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:87:12: warning: unused function
'secp256k1_gej_eq_x_var' [-Wunused-function]
static int secp256k1_gej_eq_x_var(const secp256k1_fe *x, const secp256k1...
^
../src/secp256k1-src/src/group.h:90:13: warning: unused function
'secp256k1_gej_neg' [-Wunused-function]
static void secp256k1_gej_neg(secp256k1_gej *r, const secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:93:12: warning: unused function
'secp256k1_gej_is_infinity' [-Wunused-function]
static int secp256k1_gej_is_infinity(const secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:96:12: warning: unused function
'secp256k1_gej_has_quad_y_var' [-Wunused-function]
static int secp256k1_gej_has_quad_y_var(const secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:100:13: warning: unused function
'secp256k1_gej_double_nonzero' [-Wunused-function]
static void secp256k1_gej_double_nonzero(secp256k1_gej *r, const secp256...
^
../src/secp256k1-src/src/group.h:103:13: warning: unused function
'secp256k1_gej_double_var' [-Wunused-function]
static void secp256k1_gej_double_var(secp256k1_gej *r, const secp256k1_g...
^
../src/secp256k1-src/src/group.h:106:13: warning: unused function
'secp256k1_gej_add_var' [-Wunused-function]
static void secp256k1_gej_add_var(secp256k1_gej *r, const secp256k1_gej ...
^
../src/secp256k1-src/src/group.h:109:13: warning: unused function
'secp256k1_gej_add_ge' [-Wunused-function]
static void secp256k1_gej_add_ge(secp256k1_gej *r, const secp256k1_gej *...
^
../src/secp256k1-src/src/group.h:114:13: warning: unused function
'secp256k1_gej_add_ge_var' [-Wunused-function]
static void secp256k1_gej_add_ge_var(secp256k1_gej *r, const secp256k1_g...
^
../src/secp256k1-src/src/group.h:117:13: warning: unused function
'secp256k1_gej_add_zinv_var' [-Wunused-function]
static void secp256k1_gej_add_zinv_var(secp256k1_gej *r, const secp256k1...
^
../src/secp256k1-src/src/group.h:125:13: warning: unused function
'secp256k1_gej_clear' [-Wunused-function]
static void secp256k1_gej_clear(secp256k1_gej *r);
^
../src/secp256k1-src/src/group.h:128:13: warning: unused function
'secp256k1_ge_clear' [-Wunused-function]
static void secp256k1_ge_clear(secp256k1_ge *r);
^
../src/secp256k1-src/src/group.h:131:13: warning: unused function
'secp256k1_ge_to_storage' [-Wunused-function]
static void secp256k1_ge_to_storage(secp256k1_ge_storage *r, const secp2...
^
../src/secp256k1-src/src/group.h:134:13: warning: unused function
'secp256k1_ge_from_storage' [-Wunused-function]
static void secp256k1_ge_from_storage(secp256k1_ge *r, const secp256k1_g...
^
../src/secp256k1-src/src/group.h:137:13: warning: unused function
'secp256k1_ge_storage_cmov' [-Wunused-function]
static void secp256k1_ge_storage_cmov(secp256k1_ge_storage *r, const sec...
^
../src/secp256k1-src/src/group.h:140:13: warning: unused function
'secp256k1_gej_rescale' [-Wunused-function]
static void secp256k1_gej_rescale(secp256k1_gej *r, const secp256k1_fe *b);
^
In file included from ../src/privatekey.cc:4:
In file included from ../src/secp256k1-src/src/scalar_impl.h:20:
../src/secp256k1-src/src/scalar_4x64_impl.h:83:12: warning: unused function
'secp256k1_scalar_add' [-Wunused-function]
static int secp256k1_scalar_add(secp256k1_scalar *r, const secp256k1_sca...
^
../src/secp256k1-src/src/scalar_4x64_impl.h:897:12: warning: unused function
'secp256k1_scalar_shr_int' [-Wunused-function]
static int secp256k1_scalar_shr_int(secp256k1_scalar *r, int n) {
^
In file included from ../src/privatekey.cc:4:
../src/secp256k1-src/src/scalar_impl.h:225:13: warning: unused function
'secp256k1_scalar_inverse_var' [-Wunused-function]
static void secp256k1_scalar_inverse_var(secp256k1_scalar *r, const secp...
^
In file included from ../src/privatekey.cc:4:
In file included from ../src/secp256k1-src/src/scalar_impl.h:20:
../src/secp256k1-src/src/scalar_4x64_impl.h:140:13: warning: unused function
'secp256k1_scalar_negate' [-Wunused-function]
static void secp256k1_scalar_negate(secp256k1_scalar *r, const secp256k1...
^
../src/secp256k1-src/src/scalar_4x64_impl.h:156:12: warning: unused function
'secp256k1_scalar_is_high' [-Wunused-function]
static int secp256k1_scalar_is_high(const secp256k1_scalar *a) {
^
../src/secp256k1-src/src/scalar_4x64_impl.h:168:12: warning: unused function
'secp256k1_scalar_cond_negate' [-Wunused-function]
static int secp256k1_scalar_cond_negate(secp256k1_scalar *r, int flag) {
^
63 warnings generated.
CXX(target) Release/obj.target/secp256k1/src/publickey.o
CXX(target) Release/obj.target/secp256k1/src/signature.o
CXX(target) Release/obj.target/secp256k1/src/ecdsa.o
../src/ecdsa.cc:88:3: warning: ignoring return value of function declared with
'warn_unused_result' attribute [-Wunused-result]
obj->Set(info.GetIsolate()->GetCurrentContext(), Nan::New("signature").ToLocalChecked(), COPY_BUFFER(&output[0], 64));
^
~ ~~~~~~~~~~~~~~~~~~~~~~~~~
../src/ecdsa.cc:89:3: warning: ignoring return value of function declared with
'warn_unused_result' attribute [-Wunused-result]
obj->Set(info.GetIsolate()->GetCurrentContext(), Nan::New("recovery").ToLocalChecked(), Nan::New(recid));
^
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~
2 warnings generated.
CXX(target) Release/obj.target/secp256k1/src/ecdh.o
CC(target) Release/obj.target/secp256k1/src/secp256k1-src/src/secp256k1.o
In file included from ../src/secp256k1-src/src/secp256k1.c:11:
../src/secp256k1-src/src/field_impl.h:266:13: warning: unused function
'secp256k1_fe_inv_all_var' [-Wunused-function]
static void secp256k1_fe_inv_all_var(secp256k1_fe *r, const secp256k1_f...
^
In file included from ../src/secp256k1-src/src/secp256k1.c:13:
../src/secp256k1-src/src/group_impl.h:202:13: warning: unused function
'secp256k1_ge_set_infinity' [-Wunused-function]
static void secp256k1_ge_set_infinity(secp256k1_ge *r) {
^
../src/secp256k1-src/src/group_impl.h:691:12: warning: unused function
'secp256k1_gej_has_quad_y_var' [-Wunused-function]
static int secp256k1_gej_has_quad_y_var(const secp256k1_gej *a) {
^
../src/secp256k1-src/src/group_impl.h:272:12: warning: unused function
'secp256k1_gej_is_valid_var' [-Wunused-function]
static int secp256k1_gej_is_valid_var(const secp256k1_gej *a) {
^
In file included from ../src/secp256k1-src/src/secp256k1.c:14:
../src/secp256k1-src/src/ecmult_impl.h:1135:12: warning: unused function
'secp256k1_ecmult_multi_var' [-Wunused-function]
static int secp256k1_ecmult_multi_var(const secp256k1_ecmult_context *ct...
^
../src/secp256k1-src/src/ecmult_impl.h:669:12: warning: unused function
'secp256k1_ecmult_strauss_batch_single' [-Wunused-function]
static int secp256k1_ecmult_strauss_batch_single(const secp256k1_ecmult_...
^
../src/secp256k1-src/src/ecmult_impl.h:1042:12: warning: unused function
'secp256k1_ecmult_pippenger_batch_single' [-Wunused-function]
static int secp256k1_ecmult_pippenger_batch_single(const secp256k1_ecmul...
^
7 warnings generated.
CC(target) Release/obj.target/secp256k1/src/secp256k1-src/contrib/lax_der_parsing.o
CC(target) Release/obj.target/secp256k1/src/secp256k1-src/contrib/lax_der_privatekey_parsing.o
SOLINK_MODULE(target) Release/secp256k1.node

  • [email protected]
    added 88 packages from 85 contributors in 15.317s
    :~ me$ ganache-cli
    -bash: ganache-cli: command not found
    :~ me$

Hi @davidmurdoch,

I have checked this forum thread which has a similar error message as I do:
https://github.com/aragon/aragon-cli/issues/328

Hence as recommended I looked at this solution:
https://github.com/nodejs/node-gyp/wiki/Updating-npm%27s-bundled-node-gyp

But I am getting the issues below:

:~ me$ npm explore npm -g -- npm install node-gyp@latest

  • [email protected]
    updated 1 package and audited 11989 packages in 2.508s
    found 21 high severity vulnerabilities
    run npm audit fix to fix them, or npm audit for details
    :~ me$ npm audit fix
    npm ERR! code EAUDITNOPJSON
    npm ERR! audit No package.json found: Cannot audit a project without a package.json

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/me/.npm/_logs/2019-10-22T22_41_37_660Z-debug.log

Also see below a copy of the debug.log:
0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'audit', 'fix' ]
2 info using [email protected]
3 info using [email protected]
4 verbose config Skipping project config: /Users/me/.npmrc. (matches userconfig)
5 verbose npm-session be2f627538b60030
6 verbose stack Error: No package.json found: Cannot audit a project without a package.json
6 verbose stack at /usr/local/lib/node_modules/npm/lib/audit.js:164:19
6 verbose stack at tryCatcher (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
6 verbose stack at Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:514:35)
6 verbose stack at Promise._settlePromise (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:574:18)
6 verbose stack at Promise._settlePromise0 (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:619:10)
6 verbose stack at Promise._settlePromises (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:699:18)
6 verbose stack at Promise._fulfill (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:643:18)
6 verbose stack at PromiseArray._resolve (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise_array.js:126:19)
6 verbose stack at PromiseArray._promiseFulfilled (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise_array.js:144:14)
6 verbose stack at PromiseArray._iterate (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise_array.js:114:31)
6 verbose stack at PromiseArray.init [as _init] (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise_array.js:78:10)
6 verbose stack at Promise._settlePromise (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:571:21)
6 verbose stack at Promise._settlePromise0 (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:619:10)
6 verbose stack at Promise._settlePromises (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:699:18)
6 verbose stack at Promise._fulfill (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:643:18)
6 verbose stack at PromiseArray._resolve (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise_array.js:126:19)
7 verbose cwd /Users/me
8 verbose Darwin 18.7.0
9 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "audit" "fix"
10 verbose node v12.13.0
11 verbose npm v6.12.0
12 error code EAUDITNOPJSON
13 error audit No package.json found: Cannot audit a project without a package.json
14 verbose exit [ 1, true ]

Hi @davidmurdoch ,

Here is another update to this long story.
I have upgraded to OS Catalina and I get the following error.
Should I create a new issue btw ok keep posting in here?

:~ me$ npm uninstall -g ganache-cli && npm install -g ganache-cli
removed 88 packages in 0.949s
/Users/me/.npm-global/bin/ganache-cli -> /Users/me/.npm-global/lib/node_modules/ganache-cli/cli.js

[email protected] install /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/keccak
npm run rebuild || echo "Keccak bindings compilation fail. Pure JS implementation will be used."

[email protected] rebuild /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/keccak
node-gyp rebuild

CXX(target) Release/obj.target/keccak/src/addon.o
../src/addon.cc:37:47: error: too few arguments to function call, single argument 'context' was
not specified
unsigned int rate = info[0]->IntegerValue();
~~~~~ ^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2609:3: note:
'IntegerValue' declared here
V8_WARN_UNUSED_RESULT Maybe IntegerValue(
^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:351:31: note:
expanded from macro 'V8_WARN_UNUSED_RESULT'

define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))

                          ^

../src/addon.cc:38:51: error: too few arguments to function call, single argument 'context' was
not specified
unsigned int capacity = info[1]->IntegerValue();
~~~~~ ^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2609:3: note:
'IntegerValue' declared here
V8_WARN_UNUSED_RESULT Maybe IntegerValue(
^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:351:31: note:
expanded from macro 'V8_WARN_UNUSED_RESULT'

define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))

                          ^

../src/addon.cc:56:48: error: too few arguments to function call, single argument 'context' was
not specified
unsigned char bits = info[0]->IntegerValue();
~~~~~ ^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2609:3: note:
'IntegerValue' declared here
V8_WARN_UNUSED_RESULT Maybe IntegerValue(
^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:351:31: note:
expanded from macro 'V8_WARN_UNUSED_RESULT'

define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))

                          ^

../src/addon.cc:64:43: error: too few arguments to function call, single argument 'context' was
not specified
size_t length = info[0]->IntegerValue();
~~~~~ ^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2609:3: note:
'IntegerValue' declared here
V8_WARN_UNUSED_RESULT Maybe IntegerValue(
^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:351:31: note:
expanded from macro 'V8_WARN_UNUSED_RESULT'

define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))

                          ^

../src/addon.cc:75:73: error: no matching member function for call to 'ToObject'
KeccakWrapper* to = Nan::ObjectWrap::Unwrap(info[0]->ToObject());
~~~^~
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2576:44: note:
candidate function not viable: requires single argument 'context', but no arguments were
provided
V8_WARN_UNUSED_RESULT MaybeLocal ToObject(
^
/Users/me/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2590:31: note:
candidate function not viable: requires single argument 'isolate', but no arguments were
provided
Local ToObject(Isolate* isolate) const);
^
5 errors generated.
make: * [Release/obj.target/keccak/src/addon.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:194:23)
gyp ERR! stack at ChildProcess.emit (events.js:210:5)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
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 /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/keccak
gyp ERR! node -v v12.13.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] rebuild: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] rebuild 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/me/.npm/_logs/2019-10-23T03_16_38_910Z-debug.log
Keccak bindings compilation fail. Pure JS implementation will be used.

[email protected] install /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/secp256k1
npm run rebuild || echo "Secp256k1 bindings compilation fail. Pure JS implementation will be used."

[email protected] rebuild /Users/me/.npm-global/lib/node_modules/ganache-cli/node_modules/secp256k1
node-gyp rebuild

CXX(target) Release/obj.target/secp256k1/src/addon.o
CXX(target) Release/obj.target/secp256k1/src/privatekey.o
../src/privatekey.cc:73:3: warning: ignoring return value of function declared with
'warn_unused_result' attribute [-Wunused-result]
secp256k1_ec_privkey_negate(secp256k1ctx, &private_key[0]);
^~~~~~~ ~~~~~~~
In file included from ../src/privatekey.cc:4:
In file included from ../src/secp256k1-src/src/scalar_impl.h:10:
In file included from ../src/secp256k1-src/src/group.h:11:
../src/secp256k1-src/src/field.h:36:13: warning: unused function 'secp256k1_fe_normalize'
[-Wunused-function]
static void secp256k1_fe_normalize(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:39:13: warning: unused function 'secp256k1_fe_normalize_weak'
[-Wunused-function]
static void secp256k1_fe_normalize_weak(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:42:13: warning: unused function 'secp256k1_fe_normalize_var'
[-Wunused-function]
static void secp256k1_fe_normalize_var(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:46:12: warning: unused function
'secp256k1_fe_normalizes_to_zero' [-Wunused-function]
static int secp256k1_fe_normalizes_to_zero(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:50:12: warning: unused function
'secp256k1_fe_normalizes_to_zero_var' [-Wunused-function]
static int secp256k1_fe_normalizes_to_zero_var(secp256k1_fe *r);
^
../src/secp256k1-src/src/field.h:53:13: warning: unused function 'secp256k1_fe_set_int'
[-Wunused-function]
static void secp256k1_fe_set_int(secp256k1_fe *r, int a);
^
../src/secp256k1-src/src/field.h:56:13: warning: unused function 'secp256k1_fe_clear'
[-Wunused-function]
static void secp256k1_fe_clear(secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:59:12: warning: unused function 'secp256k1_fe_is_zero'
[-Wunused-function]
static int secp256k1_fe_is_zero(const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:62:12: warning: unused function 'secp256k1_fe_is_odd'
[-Wunused-function]
static int secp256k1_fe_is_odd(const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:65:12: warning: unused function 'secp256k1_fe_equal'
[-Wunused-function]
static int secp256k1_fe_equal(const secp256k1_fe *a, const secp256k1_fe *b);
^
../src/secp256k1-src/src/field.h:68:12: warning: unused function 'secp256k1_fe_equal_var'
[-Wunused-function]
static int secp256k1_fe_equal_var(const secp256k1_fe *a, const secp256k1_fe *b);
^
../src/secp256k1-src/src/field.h:71:12: warning: unused function 'secp256k1_fe_cmp_var'
[-Wunused-function]
static int secp256k1_fe_cmp_var(const secp256k1_fe *a, const secp256k1_fe *b);
^
../src/secp256k1-src/src/field.h:74:12: warning: unused function 'secp256k1_fe_set_b32'
[-Wunused-function]
static int secp256k1_fe_set_b32(secp256k1_fe *r, const unsigned char *a);
^
../src/secp256k1-src/src/field.h:77:13: warning: unused function 'secp256k1_fe_get_b32'
[-Wunused-function]
static void secp256k1_fe_get_b32(unsigned char *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:81:13: warning: unused function 'secp256k1_fe_negate'
[-Wunused-function]
static void secp256k1_fe_negate(secp256k1_fe *r, const secp256k1_fe *a, int m);
^
../src/secp256k1-src/src/field.h:85:13: warning: unused function 'secp256k1_fe_mul_int'
[-Wunused-function]
static void secp256k1_fe_mul_int(secp256k1_fe *r, int a);
^
../src/secp256k1-src/src/field.h:88:13: warning: unused function 'secp256k1_fe_add'
[-Wunused-function]
static void secp256k1_fe_add(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:92:13: warning: unused function 'secp256k1_fe_mul'
[-Wunused-function]
static void secp256k1_fe_mul(secp256k1_fe *r, const secp256k1_fe *a, const secp256k1_fe ...
^
../src/secp256k1-src/src/field.h:96:13: warning: unused function 'secp256k1_fe_sqr'
[-Wunused-function]
static void secp256k1_fe_sqr(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:103:12: warning: unused function 'secp256k1_fe_sqrt'
[-Wunused-function]
static int secp256k1_fe_sqrt(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:106:12: warning: unused function 'secp256k1_fe_is_quad_var'
[-Wunused-function]
static int secp256k1_fe_is_quad_var(const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:110:13: warning: unused function 'secp256k1_fe_inv'
[-Wunused-function]
static void secp256k1_fe_inv(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:113:13: warning: unused function 'secp256k1_fe_inv_var'
[-Wunused-function]
static void secp256k1_fe_inv_var(secp256k1_fe *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:118:13: warning: unused function 'secp256k1_fe_inv_all_var'
[-Wunused-function]
static void secp256k1_fe_inv_all_var(secp256k1_fe *r, const secp256k1_fe *a, size_t len);
^
../src/secp256k1-src/src/field.h:121:13: warning: unused function 'secp256k1_fe_to_storage'
[-Wunused-function]
static void secp256k1_fe_to_storage(secp256k1_fe_storage *r, const secp256k1_fe *a);
^
../src/secp256k1-src/src/field.h:124:13: warning: unused function 'secp256k1_fe_from_storage'
[-Wunused-function]
static void secp256k1_fe_from_storage(secp256k1_fe *r, const secp256k1_fe_storage *a);
^
../src/secp256k1-src/src/field.h:127:13: warning: unused function 'secp256k1_fe_storage_cmov'
[-Wunused-function]
static void secp256k1_fe_storage_cmov(secp256k1_fe_storage *r, const secp256k1_fe_storag...
^
../src/secp256k1-src/src/field.h:130:13: warning: unused function 'secp256k1_fe_cmov'
[-Wunused-function]
static void secp256k1_fe_cmov(secp256k1_fe *r, const secp256k1_fe *a, int flag);
^
In file included from ../src/privatekey.cc:4:
In file included from ../src/secp256k1-src/src/scalar_impl.h:10:
../src/secp256k1-src/src/group.h:44:13: warning: unused function 'secp256k1_ge_set_xy'
[-Wunused-function]
static void secp256k1_ge_set_xy(secp256k1_ge *r, const secp256k1_fe *x, const secp256k1_fe *y);
^
../src/secp256k1-src/src/group.h:50:12: warning: unused function 'secp256k1_ge_set_xquad'
[-Wunused-function]
static int secp256k1_ge_set_xquad(secp256k1_ge *r, const secp256k1_fe *x);
^
../src/secp256k1-src/src/group.h:54:12: warning: unused function 'secp256k1_ge_set_xo_var'
[-Wunused-function]
static int secp256k1_ge_set_xo_var(secp256k1_ge *r, const secp256k1_fe *x, int odd);
^
../src/secp256k1-src/src/group.h:57:12: warning: unused function 'secp256k1_ge_is_infinity'
[-Wunused-function]
static int secp256k1_ge_is_infinity(const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:60:12: warning: unused function 'secp256k1_ge_is_valid_var'
[-Wunused-function]
static int secp256k1_ge_is_valid_var(const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:62:13: warning: unused function 'secp256k1_ge_neg'
[-Wunused-function]
static void secp256k1_ge_neg(secp256k1_ge *r, const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:65:13: warning: unused function 'secp256k1_ge_set_gej'
[-Wunused-function]
static void secp256k1_ge_set_gej(secp256k1_ge *r, secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:68:13: warning: unused function 'secp256k1_ge_set_all_gej_var'
[-Wunused-function]
static void secp256k1_ge_set_all_gej_var(secp256k1_ge *r, const secp256k1_gej *a, size_t len);
^
../src/secp256k1-src/src/group.h:75:13: warning: unused function
'secp256k1_ge_globalz_set_table_gej' [-Wunused-function]
static void secp256k1_ge_globalz_set_table_gej(size_t len, secp256k1_ge *r, secp256k1_fe ...
^
../src/secp256k1-src/src/group.h:78:13: warning: unused function 'secp256k1_ge_set_infinity'
[-Wunused-function]
static void secp256k1_ge_set_infinity(secp256k1_ge *r);
^
../src/secp256k1-src/src/group.h:81:13: warning: unused function 'secp256k1_gej_set_infinity'
[-Wunused-function]
static void secp256k1_gej_set_infinity(secp256k1_gej *r);
^
../src/secp256k1-src/src/group.h:84:13: warning: unused function 'secp256k1_gej_set_ge'
[-Wunused-function]
static void secp256k1_gej_set_ge(secp256k1_gej *r, const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:87:12: warning: unused function 'secp256k1_gej_eq_x_var'
[-Wunused-function]
static int secp256k1_gej_eq_x_var(const secp256k1_fe *x, const secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:90:13: warning: unused function 'secp256k1_gej_neg'
[-Wunused-function]
static void secp256k1_gej_neg(secp256k1_gej *r, const secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:93:12: warning: unused function 'secp256k1_gej_is_infinity'
[-Wunused-function]
static int secp256k1_gej_is_infinity(const secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:96:12: warning: unused function 'secp256k1_gej_has_quad_y_var'
[-Wunused-function]
static int secp256k1_gej_has_quad_y_var(const secp256k1_gej *a);
^
../src/secp256k1-src/src/group.h:100:13: warning: unused function 'secp256k1_gej_double_nonzero'
[-Wunused-function]
static void secp256k1_gej_double_nonzero(secp256k1_gej *r, const secp256k1_gej *a, secp25...
^
../src/secp256k1-src/src/group.h:103:13: warning: unused function 'secp256k1_gej_double_var'
[-Wunused-function]
static void secp256k1_gej_double_var(secp256k1_gej *r, const secp256k1_gej *a, secp256k1_...
^
../src/secp256k1-src/src/group.h:106:13: warning: unused function 'secp256k1_gej_add_var'
[-Wunused-function]
static void secp256k1_gej_add_var(secp256k1_gej *r, const secp256k1_gej *a, const secp256...
^
../src/secp256k1-src/src/group.h:109:13: warning: unused function 'secp256k1_gej_add_ge'
[-Wunused-function]
static void secp256k1_gej_add_ge(secp256k1_gej *r, const secp256k1_gej *a, const secp256k...
^
../src/secp256k1-src/src/group.h:114:13: warning: unused function 'secp256k1_gej_add_ge_var'
[-Wunused-function]
static void secp256k1_gej_add_ge_var(secp256k1_gej *r, const secp256k1_gej *a, const secp...
^
../src/secp256k1-src/src/group.h:117:13: warning: unused function 'secp256k1_gej_add_zinv_var'
[-Wunused-function]
static void secp256k1_gej_add_zinv_var(secp256k1_gej *r, const secp256k1_gej *a, const se...
^
../src/secp256k1-src/src/group.h:125:13: warning: unused function 'secp256k1_gej_clear'
[-Wunused-function]
static void secp256k1_gej_clear(secp256k1_gej *r);
^
../src/secp256k1-src/src/group.h:128:13: warning: unused function 'secp256k1_ge_clear'
[-Wunused-function]
static void secp256k1_ge_clear(secp256k1_ge *r);
^
../src/secp256k1-src/src/group.h:131:13: warning: unused function 'secp256k1_ge_to_storage'
[-Wunused-function]
static void secp256k1_ge_to_storage(secp256k1_ge_storage *r, const secp256k1_ge *a);
^
../src/secp256k1-src/src/group.h:134:13: warning: unused function 'secp256k1_ge_from_storage'
[-Wunused-function]
static void secp256k1_ge_from_storage(secp256k1_ge *r, const secp256k1_ge_storage *a);
^
../src/secp256k1-src/src/group.h:137:13: warning: unused function 'secp256k1_ge_storage_cmov'
[-Wunused-function]
static void secp256k1_ge_storage_cmov(secp256k1_ge_storage *r, const secp256k1_ge_storag...
^
../src/secp256k1-src/src/group.h:140:13: warning: unused function 'secp256k1_gej_rescale'
[-Wunused-function]
static void secp256k1_gej_rescale(secp256k1_gej *r, const secp256k1_fe *b);
^
In file included from ../src/privatekey.cc:4:
In file included from ../src/secp256k1-src/src/scalar_impl.h:20:
../src/secp256k1-src/src/scalar_4x64_impl.h:83:12: warning: unused function
'secp256k1_scalar_add' [-Wunused-function]
static int secp256k1_scalar_add(secp256k1_scalar *r, const secp256k1_scalar *a, const sec...
^
../src/secp256k1-src/src/scalar_4x64_impl.h:897:12: warning: unused function
'secp256k1_scalar_shr_int' [-Wunused-function]
static int secp256k1_scalar_shr_int(secp256k1_scalar *r, int n) {
^
In file included from ../src/privatekey.cc:4:
../src/secp256k1-src/src/scalar_impl.h:225:13: warning: unused function
'secp256k1_scalar_inverse_var' [-Wunused-function]
static void secp256k1_scalar_inverse_var(secp256k1_scalar *r, const secp256k1_scalar *x) {
^
In file included from ../src/privatekey.cc:4:
In file included from ../src/secp256k1-src/src/scalar_impl.h:20:
../src/secp256k1-src/src/scalar_4x64_impl.h:140:13: warning: unused function
'secp256k1_scalar_negate' [-Wunused-function]
static void secp256k1_scalar_negate(secp256k1_scalar *r, const secp256k1_scalar *a) {
^
../src/secp256k1-src/src/scalar_4x64_impl.h:156:12: warning: unused function
'secp256k1_scalar_is_high' [-Wunused-function]
static int secp256k1_scalar_is_high(const secp256k1_scalar *a) {
^
../src/secp256k1-src/src/scalar_4x64_impl.h:168:12: warning: unused function
'secp256k1_scalar_cond_negate' [-Wunused-function]
static int secp256k1_scalar_cond_negate(secp256k1_scalar *r, int flag) {
^
63 warnings generated.
CXX(target) Release/obj.target/secp256k1/src/publickey.o
CXX(target) Release/obj.target/secp256k1/src/signature.o
CXX(target) Release/obj.target/secp256k1/src/ecdsa.o
../src/ecdsa.cc:88:3: warning: ignoring return value of function declared with
'warn_unused_result' attribute [-Wunused-result]
obj->Set(info.GetIsolate()->GetCurrentContext(), Nan::New("signature").ToLocalChecked(), COPY_BUFFER(&output[0], 64));
^
~ ~~~~~~~~~~~~~~~~~~~~~~~~~
../src/ecdsa.cc:89:3: warning: ignoring return value of function declared with
'warn_unused_result' attribute [-Wunused-result]
obj->Set(info.GetIsolate()->GetCurrentContext(), Nan::New("recovery").ToLocalChecked(), Nan::New(recid));
^
~ ~~~~~~~~~~~~~~~~~~~~~~~~~~
2 warnings generated.
CXX(target) Release/obj.target/secp256k1/src/ecdh.o
CC(target) Release/obj.target/secp256k1/src/secp256k1-src/src/secp256k1.o
In file included from ../src/secp256k1-src/src/secp256k1.c:11:
../src/secp256k1-src/src/field_impl.h:266:13: warning: unused function 'secp256k1_fe_inv_all_var'
[-Wunused-function]
static void secp256k1_fe_inv_all_var(secp256k1_fe *r, const secp256k1_fe *a, size_t len) {
^
In file included from ../src/secp256k1-src/src/secp256k1.c:13:
../src/secp256k1-src/src/group_impl.h:202:13: warning: unused function
'secp256k1_ge_set_infinity' [-Wunused-function]
static void secp256k1_ge_set_infinity(secp256k1_ge *r) {
^
../src/secp256k1-src/src/group_impl.h:691:12: warning: unused function
'secp256k1_gej_has_quad_y_var' [-Wunused-function]
static int secp256k1_gej_has_quad_y_var(const secp256k1_gej *a) {
^
../src/secp256k1-src/src/group_impl.h:272:12: warning: unused function
'secp256k1_gej_is_valid_var' [-Wunused-function]
static int secp256k1_gej_is_valid_var(const secp256k1_gej *a) {
^
In file included from ../src/secp256k1-src/src/secp256k1.c:14:
../src/secp256k1-src/src/ecmult_impl.h:1135:12: warning: unused function
'secp256k1_ecmult_multi_var' [-Wunused-function]
static int secp256k1_ecmult_multi_var(const secp256k1_ecmult_context *ctx, secp256k1_scra...
^
../src/secp256k1-src/src/ecmult_impl.h:669:12: warning: unused function
'secp256k1_ecmult_strauss_batch_single' [-Wunused-function]
static int secp256k1_ecmult_strauss_batch_single(const secp256k1_ecmult_context *actx, se...
^
../src/secp256k1-src/src/ecmult_impl.h:1042:12: warning: unused function
'secp256k1_ecmult_pippenger_batch_single' [-Wunused-function]
static int secp256k1_ecmult_pippenger_batch_single(const secp256k1_ecmult_context *actx, ...
^
7 warnings generated.
CC(target) Release/obj.target/secp256k1/src/secp256k1-src/contrib/lax_der_parsing.o
CC(target) Release/obj.target/secp256k1/src/secp256k1-src/contrib/lax_der_privatekey_parsing.o
SOLINK_MODULE(target) Release/secp256k1.node

:~ me$ ganache -cli
-bash: ganache: command not found

Hi @nicholasjpaterno and @davidmurdoch,
Just to let you know that the problem finally got resolved with the precious help of the node.js.
If you're interested in the solution, here is the thread: nodejs/help#2312
Best regards.

I faced the same problem and solve this issue following the guides:
1/ https://github.com/nodejs/help/issues/2312
2/ https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally#manually-change-npms-default-directory

Was this page helpful?
0 / 5 - 0 ratings

Related issues

zweicoder picture zweicoder  路  3Comments

zatsepinvl picture zatsepinvl  路  5Comments

mariam-crissi picture mariam-crissi  路  6Comments

dekz picture dekz  路  5Comments

gskerry picture gskerry  路  3Comments