Open talentlessguy opened 3 years ago
Seems like MATIC contracts use scrypt that has a node-gyp script that fails:
../scrypt@6.0.3/node_modules/scrypt install$ node-gyp rebuild │ gyp info it worked if it ends with ok │ gyp info using node-gyp@8.1.0 │ gyp info using node@14.17.3 | 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/pnpm@6.10.3/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/scrypt@6.0.3/node_modules/scrypt/build/config.gypi', │ gyp info spawn args '-I', │ gyp info spawn args '/home/v1rtl/n/pnpm-global/5/node_modules/.pnpm/pnpm@6.10.3/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/pnpm@6.10.3/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/scrypt@6.0.3/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/scrypt@6.0.3/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 ../../../../nan@2.14.2/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 ../../../../nan@2.14.2/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 ../../../../nan@2.14.2/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: │ ../../../../nan@2.14.2/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 ../../../../nan@2.14.2/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 ../../../../nan@2.14.2/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 ../../../../nan@2.14.2/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 ../../../../nan@2.14.2/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 ../../../../nan@2.14.2/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 ../../../../nan@2.14.2/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 ../../../../nan@2.14.2/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: │ ../../../../nan@2.14.2/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/scrypt@6.0.3/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/pnpm@6.10.3/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/pnpm@6.10.3/node_modules/pnpm/dist/node_modules/node-gyp/bin/node-gyp.js" "rebuild" │ gyp ERR! cwd /home/v1rtl/polygon-testnet/contracts/node_modules/.pnpm/scrypt@6.0.3/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.
Try using node 10?
Seems like MATIC contracts use scrypt that has a node-gyp script that fails:
I have Node 14.17.3 and g++ 11.1
Also looks like scrypt is deprecated: