Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Build error (scrypt) w. Node.js 12.9.1, Web3.js 1.2.1 #3051

Closed
talaikis opened this issue Aug 28, 2019 · 2 comments
Closed

Build error (scrypt) w. Node.js 12.9.1, Web3.js 1.2.1 #3051

talaikis opened this issue Aug 28, 2019 · 2 comments

Comments

@talaikis
Copy link

Doesn't compile on Node 12.9.1 with 1.2.1, but continues to install:

\node_modules\scrypt\src\node-boilerplate\scrypt_hash_async.cc(52): warning C4996: 'Nan:
:Callback::Call': was declared deprecated \node_modules\scrypt\build\scrypt.vcxproj]
\node_modules\nan\nan.h(1740): note: see declaration of 'Nan::Callback::Call'
  win_delay_load_hook.cc
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\build.js:196:23)
gyp ERR! stack     at ChildProcess.emit (events.js:209:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Windows_NT 10.0.18362
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "\AppData\\Roaming\\npm\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd \node_modules\scrypt
gyp ERR! node -v v12.9.1
gyp ERR! node-gyp -v v5.0.3
gyp ERR! not ok

> [email protected] install C:\Users\Dxenu\Desktop\nakamoto\node_modules\secp256k1
> npm run rebuild || echo "Secp256k1 bindings compilation fail. Pure JS implementation will be used."
@michaelsbradleyjr
Copy link
Contributor

The scrypt package is no longer a dependency of web3-eth-accounts as of v1.2.1:

https://github.com/ethereum/web3.js/blob/v1.2.1/packages/web3-eth-accounts/package.json

Maybe it's coming from another dependency in your project or your project's package-lock.json?

Wherever it's coming from, the problem is that the deprecated scrypt package is not compatible with Node.js >=12.0.0.

There is an scrypt shim in web3 v1.2.1 that makes use of Node's built-in scrypt if it's available (was introduced in 10.5.0):

https://github.com/ethereum/web3.js/blob/v1.2.1/packages/web3-eth-accounts/src/scrypt.js

However, improvements to the shim are needed and those will be in the next 1.x release of web3.

@nivida
Copy link
Contributor

nivida commented Sep 5, 2019

Closed this issue because of the mentioned coming improvements. scrypt-shim

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

No branches or pull requests

3 participants