Skip to content
This repository was archived by the owner on Mar 5, 2025. It is now read-only.

Commit be4e23d

Browse files
committed
Merge branch 'release/2.0-alpha' of github.com:ethereum/web3.js into release/2.0-alpha
2 parents fdd596d + bcd1d88 commit be4e23d

File tree

25 files changed

+80
-65
lines changed

25 files changed

+80
-65
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"description": "Ethereum JavaScript API wrapper repository",
66
"license": "LGPL-3.0",
77
"engines": {
8-
"node": "<8.0.0 <12.0.0"
8+
"node": ">=8.0.0"
99
},
1010
"main": "./packages/web3/src/index.js",
1111
"directories": {

packages/web3-core-helpers/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"repository": "https://github.com/ethereum/web3.js/tree/1.0/packages/web3-core-helpers",
77
"license": "LGPL-3.0",
88
"engines": {
9-
"node": ">=8.0.0 <=12.6.0"
9+
"node": ">=8.0.0"
1010
},
1111
"main": "dist/web3-core-helpers.cjs.js",
1212
"module": "dist/web3-core-helpers.esm.js",

packages/web3-core-method/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"repository": "https://github.com/ethereum/web3.js/tree/1.0/packages/web3-core-method",
77
"license": "LGPL-3.0",
88
"engines": {
9-
"node": ">=8.0.0 <=12.6.0"
9+
"node": ">=8.0.0"
1010
},
1111
"main": "dist/web3-core-method.cjs.js",
1212
"module": "dist/web3-core-method.esm.js",

packages/web3-core-subscriptions/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"repository": "https://github.com/ethereum/web3.js/tree/1.0/packages/web3-core-subscriptions",
77
"license": "LGPL-3.0",
88
"engines": {
9-
"node": ">=8.0.0 <=12.6.0"
9+
"node": ">=8.0.0"
1010
},
1111
"main": "dist/web3-core-subscriptions.cjs.js",
1212
"module": "dist/web3-core-subscriptions.esm.js",

packages/web3-core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"repository": "https://github.com/ethereum/web3.js/tree/1.0/packages/web3-core",
77
"license": "LGPL-3.0",
88
"engines": {
9-
"node": ">=8.0.0 <=12.6.0"
9+
"node": ">=8.0.0"
1010
},
1111
"main": "dist/web3-core.cjs.js",
1212
"module": "dist/web3-core.esm.js",

packages/web3-eth-abi/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"repository": "https://github.com/ethereum/web3.js/tree/1.0/packages/web3-eth-abi",
77
"license": "LGPL-3.0",
88
"engines": {
9-
"node": ">=8.0.0 <=12.6.0"
9+
"node": ">=8.0.0"
1010
},
1111
"main": "dist/web3-eth-abi.cjs.js",
1212
"module": "dist/web3-eth-abi.esm.js",

packages/web3-eth-accounts/package-lock.json

Lines changed: 14 additions & 34 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/web3-eth-accounts/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"repository": "https://github.com/ethereum/web3.js/tree/1.0/packages/web3-eth-accounts",
77
"license": "LGPL-3.0",
88
"engines": {
9-
"node": ">=8.0.0 <=12.6.0"
9+
"node": ">=8.0.0"
1010
},
1111
"main": "dist/web3-eth-accounts.cjs.js",
1212
"module": "dist/web3-eth-accounts.esm.js",
@@ -25,7 +25,8 @@
2525
"lodash": "^4.17.11",
2626
"pbkdf2": "^3.0.17",
2727
"randombytes": "^2.1.0",
28-
"scrypt.js": "0.3.0",
28+
"semver": "6.2.0",
29+
"scryptsy": "2.1.0",
2930
"uuid": "3.3.2",
3031
"web3-core": "1.0.0-beta.55",
3132
"web3-core-helpers": "1.0.0-beta.55",
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import scryptsy from 'scryptsy';
2+
3+
let scrypt;
4+
5+
const isNode = Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';
6+
if (isNode) {
7+
const NODE_MIN_VER_WITH_BUILTIN_SCRYPT = '10.5.0';
8+
const semver = require('semver');
9+
const useNodeBuiltin = isNode && semver.Range('>=' + NODE_MIN_VER_WITH_BUILTIN_SCRYPT).test(process.version);
10+
11+
if (useNodeBuiltin) {
12+
const crypto = require('crypto');
13+
scrypt = function (key, salt, N, r, p, dkLen) {
14+
return crypto.scryptSync(key, salt, dkLen, {N, r, p});
15+
};
16+
} else {
17+
let scryptPkg;
18+
try {
19+
scryptPkg = require('scrypt');
20+
scrypt = function (key, salt, N, r, p, dkLen) {
21+
return scryptPkg.hashSync(key, {N, r, p}, dkLen, salt);
22+
};
23+
} catch (e) {
24+
console.warn(
25+
'\x1b[33m%s\x1b[0m',
26+
`You can improve web3's peformance when running Node.js versions older than ${NODE_MIN_VER_WITH_BUILTIN_SCRYPT} by installing the (deprecated) scrypt package in your project`
27+
);
28+
}
29+
}
30+
}
31+
32+
scrypt = scrypt || scryptsy;
33+
34+
export default scrypt;

packages/web3-eth-accounts/src/models/Account.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* @date 2019
1818
*/
1919

20-
import scryptsy from 'scrypt.js';
20+
import scrypt from '../crypto/Scrypt';
2121
import isString from 'lodash/isString';
2222
import isObject from 'lodash/isObject';
2323
import * as EthLibAccount from 'eth-lib/lib/account'; // TODO: Remove this dependency
@@ -157,7 +157,7 @@ export default class Account {
157157
kdfparams.n = options.n || 8192; // 2048 4096 8192 16384
158158
kdfparams.r = options.r || 8;
159159
kdfparams.p = options.p || 1;
160-
derivedKey = scryptsy(Buffer.from(password), salt, kdfparams.n, kdfparams.r, kdfparams.p, kdfparams.dklen);
160+
derivedKey = scrypt(Buffer.from(password), salt, kdfparams.n, kdfparams.r, kdfparams.p, kdfparams.dklen);
161161
} else {
162162
throw new Error('Unsupported kdf');
163163
}
@@ -227,7 +227,7 @@ export default class Account {
227227
kdfparams = json.crypto.kdfparams;
228228

229229
// FIXME: support progress reporting callback
230-
derivedKey = scryptsy(
230+
derivedKey = scrypt(
231231
Buffer.from(password),
232232
Buffer.from(kdfparams.salt, 'hex'),
233233
kdfparams.n,

0 commit comments

Comments
 (0)