contracts
contracts copied to clipboard
Cannot install because of node-gyp error
Seems like MATIC contracts use scrypt that has a node-gyp script that fails:
../[email protected]/node_modules/scrypt install$ node-gyp rebuild
│ gyp info it worked if it ends with ok
│ gyp info using [email protected]
│ gyp info using [email protected] | linux | x64
│ gyp info find Python using Python version 3.9.6 found at "/usr/bin/python3"
│ gyp info spawn /usr/bin/python3
│ gyp info spawn args [
│ gyp info spawn args '/home/v1rtl/n/pnpm-global/5/node_modules/.pnpm/[email protected]/node_modules/pnpm/dist/node_modules/node-gyp/gyp/gyp_main.py',
│ gyp info spawn args 'binding.gyp',
│ gyp info spawn args '-f',
│ gyp info spawn args 'make',
│ gyp info spawn args '-I',
│ gyp info spawn args '/home/v1rtl/polygon-testnet/contracts/node_modules/.pnpm/[email protected]/node_modules/scrypt/build/config.gypi',
│ gyp info spawn args '-I',
│ gyp info spawn args '/home/v1rtl/n/pnpm-global/5/node_modules/.pnpm/[email protected]/node_modules/pnpm/dist/node_modules/node-gyp/addon.gypi',
│ gyp info spawn args '-I',
│ gyp info spawn args '/home/v1rtl/.cache/node-gyp/14.17.3/include/node/common.gypi',
│ gyp info spawn args '-Dlibrary=shared_library',
│ gyp info spawn args '-Dvisibility=default',
│ gyp info spawn args '-Dnode_root_dir=/home/v1rtl/.cache/node-gyp/14.17.3',
│ gyp info spawn args '-Dnode_gyp_dir=/home/v1rtl/n/pnpm-global/5/node_modules/.pnpm/[email protected]/node_modules/pnpm/dist/node_modules/node-gyp',
│ gyp info spawn args '-Dnode_lib_file=/home/v1rtl/.cache/node-gyp/14.17.3/<(target_arch)/node.lib',
│ gyp info spawn args '-Dmodule_root_dir=/home/v1rtl/polygon-testnet/contracts/node_modules/.pnpm/[email protected]/node_modules/scrypt',
│ gyp info spawn args '-Dnode_engine=v8',
│ gyp info spawn args '--depth=.',
│ gyp info spawn args '--no-parallel',
│ gyp info spawn args '--generator-output',
│ gyp info spawn args 'build',
│ gyp info spawn args '-Goutput_dir=.'
│ gyp info spawn args ]
│ gyp info spawn make
│ gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
│ make: Entering directory '/home/v1rtl/polygon-testnet/contracts/node_modules/.pnpm/[email protected]/node_modules/scrypt/build'
│ SOLINK_MODULE(target) Release/obj.target/copied_files.node
│ COPY Release/copied_files.node
│ CC(target) Release/obj.target/scrypt_wrapper/src/util/memlimit.o
│ CC(target) Release/obj.target/scrypt_wrapper/src/scryptwrapper/keyderivation.o
│ CC(target) Release/obj.target/scrypt_wrapper/src/scryptwrapper/pickparams.o
│ CC(target) Release/obj.target/scrypt_wrapper/src/scryptwrapper/hash.o
│ AR(target) Release/obj.target/scrypt_wrapper.a
│ COPY Release/scrypt_wrapper.a
│ CC(target) Release/obj.target/scrypt_lib/scrypt/scrypt-1.2.0/lib/crypto/crypto_scrypt.o
│ CC(target) Release/obj.target/scrypt_lib/scrypt/scrypt-1.2.0/lib/crypto/crypto_scrypt_smix.o
│ CC(target) Release/obj.target/scrypt_lib/scrypt/scrypt-1.2.0/libcperciva/util/warnp.o
│ CC(target) Release/obj.target/scrypt_lib/scrypt/scrypt-1.2.0/libcperciva/alg/sha256.o
│ CC(target) Release/obj.target/scrypt_lib/scrypt/scrypt-1.2.0/libcperciva/util/insecure_memzero.o
│ CC(target) Release/obj.target/scrypt_lib/scrypt/scrypt-1.2.0/lib/scryptenc/scryptenc_cpuperf.o
│ AR(target) Release/obj.target/scrypt_lib.a
│ COPY Release/scrypt_lib.a
│ CXX(target) Release/obj.target/scrypt/src/node-boilerplate/scrypt_common.o
│ CXX(target) Release/obj.target/scrypt/src/node-boilerplate/scrypt_params_async.o
│ In file included from ../src/node-boilerplate/inc/scrypt_async.h:28,
│ from ../src/node-boilerplate/inc/scrypt_params_async.h:28,
│ from ../src/node-boilerplate/scrypt_params_async.cc:4:
│ ../src/node-boilerplate/inc/scrypt_common.h: In constructor ‘NodeScrypt::Params::Params(const v8::Local<v8::Object>&)’:
│ ../src/node-boilerplate/inc/scrypt_common.h:39:17: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>)’
│ 39 | N(obj->Get(Nan::New("N").ToLocalChecked())->Uint32Value()),
│ | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
│ In file included from /home/v1rtl/.cache/node-gyp/14.17.3/include/node/node.h:67,
│ from ../../../../[email protected]/node_modules/nan/nan.h:56,
│ from ../src/node-boilerplate/scrypt_params_async.cc:1:
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
│ 3717 | V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
│ | ^~~
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3717:43: note: candidate expects 2 arguments, 1 provided
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
│ 3720 | V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
│ | ^~~
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3720:43: note: candidate expects 2 arguments, 1 provided
│ In file included from ../src/node-boilerplate/inc/scrypt_async.h:28,
│ from ../src/node-boilerplate/inc/scrypt_params_async.h:28,
│ from ../src/node-boilerplate/scrypt_params_async.cc:4:
│ ../src/node-boilerplate/inc/scrypt_common.h:40:17: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>)’
│ 40 | r(obj->Get(Nan::New("r").ToLocalChecked())->Uint32Value()),
│ | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
│ In file included from /home/v1rtl/.cache/node-gyp/14.17.3/include/node/node.h:67,
│ from ../../../../[email protected]/node_modules/nan/nan.h:56,
│ from ../src/node-boilerplate/scrypt_params_async.cc:1:
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
│ 3717 | V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
│ | ^~~
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3717:43: note: candidate expects 2 arguments, 1 provided
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
│ 3720 | V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
│ | ^~~
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3720:43: note: candidate expects 2 arguments, 1 provided
│ In file included from ../src/node-boilerplate/inc/scrypt_async.h:28,
│ from ../src/node-boilerplate/inc/scrypt_params_async.h:28,
│ from ../src/node-boilerplate/scrypt_params_async.cc:4:
│ ../src/node-boilerplate/inc/scrypt_common.h:41:17: error: no matching function for call to ‘v8::Object::Get(v8::Local<v8::String>)’
│ 41 | p(obj->Get(Nan::New("p").ToLocalChecked())->Uint32Value()) {}
│ | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
│ In file included from /home/v1rtl/.cache/node-gyp/14.17.3/include/node/node.h:67,
│ from ../../../../[email protected]/node_modules/nan/nan.h:56,
│ from ../src/node-boilerplate/scrypt_params_async.cc:1:
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3717:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)’
│ 3717 | V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
│ | ^~~
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3717:43: note: candidate expects 2 arguments, 1 provided
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3720:43: note: candidate: ‘v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)’
│ 3720 | V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
│ | ^~~
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3720:43: note: candidate expects 2 arguments, 1 provided
│ In file included from ../src/node-boilerplate/inc/scrypt_params_async.h:28,
│ from ../src/node-boilerplate/scrypt_params_async.cc:4:
│ ../src/node-boilerplate/inc/scrypt_async.h: In member function ‘virtual void ScryptAsyncWorker::HandleErrorCallback()’:
│ ../src/node-boilerplate/inc/scrypt_async.h:53:21: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
│ 53 | callback->Call(1, argv);
│ | ~~~~~~~~~~~~~~^~~~~~~~~
│ In file included from ../src/node-boilerplate/scrypt_params_async.cc:1:
│ ../../../../[email protected]/node_modules/nan/nan.h:1742:3: note: declared here
│ 1742 | Call(int argc, v8::Local<v8::Value> argv[]) const {
│ | ^~~~
│ In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:
│ ../src/node-boilerplate/inc/scrypt_params_async.h: In constructor ‘ScryptParamsAsyncWorker::ScryptParamsAsyncWorker(Nan::NAN_METHOD_ARGS_TYPE)’:
│ ../src/node-boilerplate/inc/scrypt_params_async.h:35:35: error: no matching function for call to ‘v8::Value::NumberValue()’
│ 35 | maxtime(info[0]->NumberValue()),
│ | ~~~~~~~~~~~~~~~~~~~~^~
│ In file included from /home/v1rtl/.cache/node-gyp/14.17.3/include/node/node.h:67,
│ from ../../../../[email protected]/node_modules/nan/nan.h:56,
│ from ../src/node-boilerplate/scrypt_params_async.cc:1:
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:2861:39: note: candidate: ‘v8::Maybe<double> v8::Value::NumberValue(v8::Local<v8::Context>) const’
│ 2861 | V8_WARN_UNUSED_RESULT Maybe<double> NumberValue(Local<Context> context) const;
│ | ^~~~~~~~~~~
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:2861:39: note: candidate expects 1 argument, 0 provided
│ In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:
│ ../src/node-boilerplate/inc/scrypt_params_async.h:36:38: error: no matching function for call to ‘v8::Value::NumberValue()’
│ 36 | maxmemfrac(info[1]->NumberValue()),
│ | ~~~~~~~~~~~~~~~~~~~~^~
│ In file included from /home/v1rtl/.cache/node-gyp/14.17.3/include/node/node.h:67,
│ from ../../../../[email protected]/node_modules/nan/nan.h:56,
│ from ../src/node-boilerplate/scrypt_params_async.cc:1:
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:2861:39: note: candidate: ‘v8::Maybe<double> v8::Value::NumberValue(v8::Local<v8::Context>) const’
│ 2861 | V8_WARN_UNUSED_RESULT Maybe<double> NumberValue(Local<Context> context) const;
│ | ^~~~~~~~~~~
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:2861:39: note: candidate expects 1 argument, 0 provided
│ In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:
│ ../src/node-boilerplate/inc/scrypt_params_async.h:37:35: error: no matching function for call to ‘v8::Value::IntegerValue()’
│ 37 | maxmem(info[2]->IntegerValue()),
│ | ~~~~~~~~~~~~~~~~~~~~~^~
│ In file included from /home/v1rtl/.cache/node-gyp/14.17.3/include/node/node.h:67,
│ from ../../../../[email protected]/node_modules/nan/nan.h:56,
│ from ../src/node-boilerplate/scrypt_params_async.cc:1:
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:2863:40: note: candidate: ‘v8::Maybe<long int> v8::Value::IntegerValue(v8::Local<v8::Context>) const’
│ 2863 | V8_WARN_UNUSED_RESULT Maybe<int64_t> IntegerValue(
│ | ^~~~~~~~~~~~
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:2863:40: note: candidate expects 1 argument, 0 provided
│ In file included from ../src/node-boilerplate/scrypt_params_async.cc:4:
│ ../src/node-boilerplate/inc/scrypt_params_async.h:38:38: error: no matching function for call to ‘v8::Value::IntegerValue()’
│ 38 | osfreemem(info[3]->IntegerValue())
│ | ~~~~~~~~~~~~~~~~~~~~~^~
│ In file included from /home/v1rtl/.cache/node-gyp/14.17.3/include/node/node.h:67,
│ from ../../../../[email protected]/node_modules/nan/nan.h:56,
│ from ../src/node-boilerplate/scrypt_params_async.cc:1:
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:2863:40: note: candidate: ‘v8::Maybe<long int> v8::Value::IntegerValue(v8::Local<v8::Context>) const’
│ 2863 | V8_WARN_UNUSED_RESULT Maybe<int64_t> IntegerValue(
│ | ^~~~~~~~~~~~
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:2863:40: note: candidate expects 1 argument, 0 provided
│ ../src/node-boilerplate/scrypt_params_async.cc: In member function ‘virtual void ScryptParamsAsyncWorker::HandleOKCallback()’:
│ ../src/node-boilerplate/scrypt_params_async.cc:23:11: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, Nan::imp::IntegerFactory<v8::Integer>::return_t)’
│ 23 | obj->Set(Nan::New("N").ToLocalChecked(), Nan::New<Integer>(logN));
│ | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
│ In file included from /home/v1rtl/.cache/node-gyp/14.17.3/include/node/node.h:67,
│ from ../../../../[email protected]/node_modules/nan/nan.h:56,
│ from ../src/node-boilerplate/scrypt_params_async.cc:1:
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3670:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
│ 3670 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
│ | ^~~
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3670:37: note: candidate expects 3 arguments, 2 provided
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3673:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
│ 3673 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
│ | ^~~
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3673:37: note: candidate expects 3 arguments, 2 provided
│ ../src/node-boilerplate/scrypt_params_async.cc:24:11: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, Nan::imp::IntegerFactory<v8::Integer>::return_t)’
│ 24 | obj->Set(Nan::New("r").ToLocalChecked(), Nan::New<Integer>(r));
│ | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
│ In file included from /home/v1rtl/.cache/node-gyp/14.17.3/include/node/node.h:67,
│ from ../../../../[email protected]/node_modules/nan/nan.h:56,
│ from ../src/node-boilerplate/scrypt_params_async.cc:1:
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3670:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
│ 3670 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
│ | ^~~
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3670:37: note: candidate expects 3 arguments, 2 provided
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3673:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
│ 3673 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
│ | ^~~
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3673:37: note: candidate expects 3 arguments, 2 provided
│ ../src/node-boilerplate/scrypt_params_async.cc:25:11: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, Nan::imp::IntegerFactory<v8::Integer>::return_t)’
│ 25 | obj->Set(Nan::New("p").ToLocalChecked(), Nan::New<Integer>(p));
│ | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
│ In file included from /home/v1rtl/.cache/node-gyp/14.17.3/include/node/node.h:67,
│ from ../../../../[email protected]/node_modules/nan/nan.h:56,
│ from ../src/node-boilerplate/scrypt_params_async.cc:1:
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3670:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’
│ 3670 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context,
│ | ^~~
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3670:37: note: candidate expects 3 arguments, 2 provided
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3673:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’
│ 3673 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index,
│ | ^~~
│ /home/v1rtl/.cache/node-gyp/14.17.3/include/node/v8.h:3673:37: note: candidate expects 3 arguments, 2 provided
│ ../src/node-boilerplate/scrypt_params_async.cc:32:17: warning: ‘v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const’ is deprecated [-Wdeprecated-declarations]
│ 32 | callback->Call(2, argv);
│ | ~~~~~~~~~~~~~~^~~~~~~~~
│ In file included from ../src/node-boilerplate/scrypt_params_async.cc:1:
│ ../../../../[email protected]/node_modules/nan/nan.h:1742:3: note: declared here
│ 1742 | Call(int argc, v8::Local<v8::Value> argv[]) const {
│ | ^~~~
│ make: *** [scrypt.target.mk:131: Release/obj.target/scrypt/src/node-boilerplate/scrypt_params_async.o] Error 1
│ make: Leaving directory '/home/v1rtl/polygon-testnet/contracts/node_modules/.pnpm/[email protected]/node_modules/scrypt/build'
│ gyp ERR! build error
│ gyp ERR! stack Error: `make` failed with exit code: 2
│ gyp ERR! stack at ChildProcess.onExit (/home/v1rtl/n/pnpm-global/5/node_modules/.pnpm/[email protected]/node_modules/pnpm/dist/node_modules/node-gyp/lib/build.js:194:23)
│ gyp ERR! stack at ChildProcess.emit (events.js:375:28)
│ gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12)
│ gyp ERR! System Linux 5.10.52-1-MANJARO
│ gyp ERR! command "/home/v1rtl/n/bin/node" "/home/v1rtl/n/pnpm-global/5/node_modules/.pnpm/[email protected]/node_modules/pnpm/dist/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
│ gyp ERR! cwd /home/v1rtl/polygon-testnet/contracts/node_modules/.pnpm/[email protected]/node_modules/scrypt
│ gyp ERR! node -v v14.17.3
│ gyp ERR! node-gyp -v v8.1.0
│ gyp ERR! not ok
└─ Failed in 3.6s
ERROR Command failed with exit code 1.
I have Node 14.17.3 and g++ 11.1
Also looks like scrypt is deprecated:
#WARNING!!! This module is deprecated. Instead, use https://nodejs.org/api/crypto.html#crypto_crypto_scrypt_password_salt_keylen_options_callback
Did your issue solve? I'm also facing this issue.
Did your issue solve? I'm also facing this issue.
Try using node 10?