Socket
Socket
Sign inDemoInstall

@ethersproject/json-wallets

Package Overview
Dependencies
Maintainers
1
Versions
41
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ethersproject/json-wallets - npm Package Compare versions

Comparing version 5.4.0 to 5.5.0

2

lib.esm/_version.d.ts

@@ -1,2 +0,2 @@

export declare const version = "json-wallets/5.4.0";
export declare const version = "json-wallets/5.5.0";
//# sourceMappingURL=_version.d.ts.map

@@ -1,2 +0,2 @@

export const version = "json-wallets/5.4.0";
export const version = "json-wallets/5.5.0";
//# sourceMappingURL=_version.js.map

@@ -1,2 +0,2 @@

export declare const version = "json-wallets/5.4.0";
export declare const version = "json-wallets/5.5.0";
//# sourceMappingURL=_version.d.ts.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = void 0;
exports.version = "json-wallets/5.4.0";
exports.version = "json-wallets/5.5.0";
//# sourceMappingURL=_version.js.map

@@ -47,11 +47,11 @@ "use strict";

var data = JSON.parse(json);
password = utils_1.getPassword(password);
password = (0, utils_1.getPassword)(password);
// Ethereum Address
var ethaddr = address_1.getAddress(utils_1.searchPath(data, "ethaddr"));
var ethaddr = (0, address_1.getAddress)((0, utils_1.searchPath)(data, "ethaddr"));
// Encrypted Seed
var encseed = utils_1.looseArrayify(utils_1.searchPath(data, "encseed"));
var encseed = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "encseed"));
if (!encseed || (encseed.length % 16) !== 0) {
logger.throwArgumentError("invalid encseed", "json", json);
}
var key = bytes_1.arrayify(pbkdf2_1.pbkdf2(password, password, 2000, 32, "sha256")).slice(0, 16);
var key = (0, bytes_1.arrayify)((0, pbkdf2_1.pbkdf2)(password, password, 2000, 32, "sha256")).slice(0, 16);
var iv = encseed.slice(0, 16);

@@ -61,3 +61,3 @@ var encryptedSeed = encseed.slice(16);

var aesCbc = new aes_js_1.default.ModeOfOperation.cbc(key, iv);
var seed = aes_js_1.default.padding.pkcs7.strip(bytes_1.arrayify(aesCbc.decrypt(encryptedSeed)));
var seed = aes_js_1.default.padding.pkcs7.strip((0, bytes_1.arrayify)(aesCbc.decrypt(encryptedSeed)));
// This wallet format is weird... Convert the binary encoded hex to a string.

@@ -68,4 +68,4 @@ var seedHex = "";

}
var seedHexBytes = strings_1.toUtf8Bytes(seedHex);
var privateKey = keccak256_1.keccak256(seedHexBytes);
var seedHexBytes = (0, strings_1.toUtf8Bytes)(seedHex);
var privateKey = (0, keccak256_1.keccak256)(seedHexBytes);
return new CrowdsaleAccount({

@@ -72,0 +72,0 @@ _isCrowdsaleAccount: true,

@@ -15,7 +15,7 @@ "use strict";

function decryptJsonWallet(json, password, progressCallback) {
if (inspect_1.isCrowdsaleWallet(json)) {
if ((0, inspect_1.isCrowdsaleWallet)(json)) {
if (progressCallback) {
progressCallback(0);
}
var account = crowdsale_1.decrypt(json, password);
var account = (0, crowdsale_1.decrypt)(json, password);
if (progressCallback) {

@@ -26,4 +26,4 @@ progressCallback(1);

}
if (inspect_1.isKeystoreWallet(json)) {
return keystore_1.decrypt(json, password, progressCallback);
if ((0, inspect_1.isKeystoreWallet)(json)) {
return (0, keystore_1.decrypt)(json, password, progressCallback);
}

@@ -34,7 +34,7 @@ return Promise.reject(new Error("invalid JSON wallet"));

function decryptJsonWalletSync(json, password) {
if (inspect_1.isCrowdsaleWallet(json)) {
return crowdsale_1.decrypt(json, password);
if ((0, inspect_1.isCrowdsaleWallet)(json)) {
return (0, crowdsale_1.decrypt)(json, password);
}
if (inspect_1.isKeystoreWallet(json)) {
return keystore_1.decryptSync(json, password);
if ((0, inspect_1.isKeystoreWallet)(json)) {
return (0, keystore_1.decryptSync)(json, password);
}

@@ -41,0 +41,0 @@ throw new Error("invalid JSON wallet");

@@ -37,3 +37,3 @@ "use strict";

try {
return address_1.getAddress(JSON.parse(json).ethaddr);
return (0, address_1.getAddress)(JSON.parse(json).ethaddr);
}

@@ -46,3 +46,3 @@ catch (error) {

try {
return address_1.getAddress(JSON.parse(json).address);
return (0, address_1.getAddress)(JSON.parse(json).address);
}

@@ -49,0 +49,0 @@ catch (error) {

@@ -88,8 +88,8 @@ "use strict";

function _decrypt(data, key, ciphertext) {
var cipher = utils_1.searchPath(data, "crypto/cipher");
var cipher = (0, utils_1.searchPath)(data, "crypto/cipher");
if (cipher === "aes-128-ctr") {
var iv = utils_1.looseArrayify(utils_1.searchPath(data, "crypto/cipherparams/iv"));
var iv = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "crypto/cipherparams/iv"));
var counter = new aes_js_1.default.Counter(iv);
var aesCtr = new aes_js_1.default.ModeOfOperation.ctr(key, counter);
return bytes_1.arrayify(aesCtr.decrypt(ciphertext));
return (0, bytes_1.arrayify)(aesCtr.decrypt(ciphertext));
}

@@ -99,5 +99,5 @@ return null;

function _getAccount(data, key) {
var ciphertext = utils_1.looseArrayify(utils_1.searchPath(data, "crypto/ciphertext"));
var computedMAC = bytes_1.hexlify(keccak256_1.keccak256(bytes_1.concat([key.slice(16, 32), ciphertext]))).substring(2);
if (computedMAC !== utils_1.searchPath(data, "crypto/mac").toLowerCase()) {
var ciphertext = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "crypto/ciphertext"));
var computedMAC = (0, bytes_1.hexlify)((0, keccak256_1.keccak256)((0, bytes_1.concat)([key.slice(16, 32), ciphertext]))).substring(2);
if (computedMAC !== (0, utils_1.searchPath)(data, "crypto/mac").toLowerCase()) {
throw new Error("invalid password");

@@ -112,3 +112,3 @@ }

var mnemonicKey = key.slice(32, 64);
var address = transactions_1.computeAddress(privateKey);
var address = (0, transactions_1.computeAddress)(privateKey);
if (data.address) {

@@ -119,3 +119,3 @@ var check = data.address.toLowerCase();

}
if (address_1.getAddress(check) !== address) {
if ((0, address_1.getAddress)(check) !== address) {
throw new Error("address mismatch");

@@ -127,15 +127,15 @@ }

address: address,
privateKey: bytes_1.hexlify(privateKey)
privateKey: (0, bytes_1.hexlify)(privateKey)
};
// Version 0.1 x-ethers metadata must contain an encrypted mnemonic phrase
if (utils_1.searchPath(data, "x-ethers/version") === "0.1") {
var mnemonicCiphertext = utils_1.looseArrayify(utils_1.searchPath(data, "x-ethers/mnemonicCiphertext"));
var mnemonicIv = utils_1.looseArrayify(utils_1.searchPath(data, "x-ethers/mnemonicCounter"));
if ((0, utils_1.searchPath)(data, "x-ethers/version") === "0.1") {
var mnemonicCiphertext = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "x-ethers/mnemonicCiphertext"));
var mnemonicIv = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "x-ethers/mnemonicCounter"));
var mnemonicCounter = new aes_js_1.default.Counter(mnemonicIv);
var mnemonicAesCtr = new aes_js_1.default.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);
var path = utils_1.searchPath(data, "x-ethers/path") || hdnode_1.defaultPath;
var locale = utils_1.searchPath(data, "x-ethers/locale") || "en";
var entropy = bytes_1.arrayify(mnemonicAesCtr.decrypt(mnemonicCiphertext));
var path = (0, utils_1.searchPath)(data, "x-ethers/path") || hdnode_1.defaultPath;
var locale = (0, utils_1.searchPath)(data, "x-ethers/locale") || "en";
var entropy = (0, bytes_1.arrayify)(mnemonicAesCtr.decrypt(mnemonicCiphertext));
try {
var mnemonic = hdnode_1.entropyToMnemonic(entropy, locale);
var mnemonic = (0, hdnode_1.entropyToMnemonic)(entropy, locale);
var node = hdnode_1.HDNode.fromMnemonic(mnemonic, null, locale).derivePath(path);

@@ -159,3 +159,3 @@ if (node.privateKey != account.privateKey) {

function pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc) {
return bytes_1.arrayify(pbkdf2_1.pbkdf2(passwordBytes, salt, count, dkLen, prfFunc));
return (0, bytes_1.arrayify)((0, pbkdf2_1.pbkdf2)(passwordBytes, salt, count, dkLen, prfFunc));
}

@@ -166,4 +166,4 @@ function pbkdf2(passwordBytes, salt, count, dkLen, prfFunc) {

function _computeKdfKey(data, password, pbkdf2Func, scryptFunc, progressCallback) {
var passwordBytes = utils_1.getPassword(password);
var kdf = utils_1.searchPath(data, "crypto/kdf");
var passwordBytes = (0, utils_1.getPassword)(password);
var kdf = (0, utils_1.searchPath)(data, "crypto/kdf");
if (kdf && typeof (kdf) === "string") {

@@ -174,6 +174,6 @@ var throwError = function (name, value) {

if (kdf.toLowerCase() === "scrypt") {
var salt = utils_1.looseArrayify(utils_1.searchPath(data, "crypto/kdfparams/salt"));
var N = parseInt(utils_1.searchPath(data, "crypto/kdfparams/n"));
var r = parseInt(utils_1.searchPath(data, "crypto/kdfparams/r"));
var p = parseInt(utils_1.searchPath(data, "crypto/kdfparams/p"));
var salt = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "crypto/kdfparams/salt"));
var N = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/n"));
var r = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/r"));
var p = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/p"));
// Check for all required parameters

@@ -187,3 +187,3 @@ if (!N || !r || !p) {

}
var dkLen = parseInt(utils_1.searchPath(data, "crypto/kdfparams/dklen"));
var dkLen = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/dklen"));
if (dkLen !== 32) {

@@ -195,5 +195,5 @@ throwError("dklen", dkLen);

else if (kdf.toLowerCase() === "pbkdf2") {
var salt = utils_1.looseArrayify(utils_1.searchPath(data, "crypto/kdfparams/salt"));
var salt = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "crypto/kdfparams/salt"));
var prfFunc = null;
var prf = utils_1.searchPath(data, "crypto/kdfparams/prf");
var prf = (0, utils_1.searchPath)(data, "crypto/kdfparams/prf");
if (prf === "hmac-sha256") {

@@ -208,4 +208,4 @@ prfFunc = "sha256";

}
var count = parseInt(utils_1.searchPath(data, "crypto/kdfparams/c"));
var dkLen = parseInt(utils_1.searchPath(data, "crypto/kdfparams/dklen"));
var count = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/c"));
var dkLen = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/dklen"));
if (dkLen !== 32) {

@@ -244,3 +244,3 @@ throwError("dklen", dkLen);

// Check the address matches the private key
if (address_1.getAddress(account.address) !== transactions_1.computeAddress(account.privateKey)) {
if ((0, address_1.getAddress)(account.address) !== (0, transactions_1.computeAddress)(account.privateKey)) {
throw new Error("address/privateKey mismatch");

@@ -268,4 +268,4 @@ }

}
var privateKey = bytes_1.arrayify(account.privateKey);
var passwordBytes = utils_1.getPassword(password);
var privateKey = (0, bytes_1.arrayify)(account.privateKey);
var passwordBytes = (0, utils_1.getPassword)(password);
var entropy = null;

@@ -276,3 +276,3 @@ var path = null;

var srcMnemonic = account.mnemonic;
entropy = bytes_1.arrayify(hdnode_1.mnemonicToEntropy(srcMnemonic.phrase, srcMnemonic.locale || "en"));
entropy = (0, bytes_1.arrayify)((0, hdnode_1.mnemonicToEntropy)(srcMnemonic.phrase, srcMnemonic.locale || "en"));
path = srcMnemonic.path || hdnode_1.defaultPath;

@@ -288,6 +288,6 @@ locale = srcMnemonic.locale || "en";

if (options.salt) {
salt = bytes_1.arrayify(options.salt);
salt = (0, bytes_1.arrayify)(options.salt);
}
else {
salt = random_1.randomBytes(32);
salt = (0, random_1.randomBytes)(32);
;

@@ -298,3 +298,3 @@ }

if (options.iv) {
iv = bytes_1.arrayify(options.iv);
iv = (0, bytes_1.arrayify)(options.iv);
if (iv.length !== 16) {

@@ -305,3 +305,3 @@ throw new Error("invalid iv");

else {
iv = random_1.randomBytes(16);
iv = (0, random_1.randomBytes)(16);
}

@@ -311,3 +311,3 @@ // Override the uuid

if (options.uuid) {
uuidRandom = bytes_1.arrayify(options.uuid);
uuidRandom = (0, bytes_1.arrayify)(options.uuid);
if (uuidRandom.length !== 16) {

@@ -318,3 +318,3 @@ throw new Error("invalid uuid");

else {
uuidRandom = random_1.randomBytes(16);
uuidRandom = (0, random_1.randomBytes)(16);
}

@@ -338,3 +338,3 @@ // Override the scrypt password-based key derivation function parameters

return scrypt_js_1.default.scrypt(passwordBytes, salt, N, r, p, 64, progressCallback).then(function (key) {
key = bytes_1.arrayify(key);
key = (0, bytes_1.arrayify)(key);
// This will be used to encrypt the wallet (as per Web3 secret storage)

@@ -348,9 +348,9 @@ var derivedKey = key.slice(0, 16);

var aesCtr = new aes_js_1.default.ModeOfOperation.ctr(derivedKey, counter);
var ciphertext = bytes_1.arrayify(aesCtr.encrypt(privateKey));
var ciphertext = (0, bytes_1.arrayify)(aesCtr.encrypt(privateKey));
// Compute the message authentication code, used to check the password
var mac = keccak256_1.keccak256(bytes_1.concat([macPrefix, ciphertext]));
var mac = (0, keccak256_1.keccak256)((0, bytes_1.concat)([macPrefix, ciphertext]));
// See: https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition
var data = {
address: account.address.substring(2).toLowerCase(),
id: utils_1.uuidV4(uuidRandom),
id: (0, utils_1.uuidV4)(uuidRandom),
version: 3,

@@ -360,8 +360,8 @@ Crypto: {

cipherparams: {
iv: bytes_1.hexlify(iv).substring(2),
iv: (0, bytes_1.hexlify)(iv).substring(2),
},
ciphertext: bytes_1.hexlify(ciphertext).substring(2),
ciphertext: (0, bytes_1.hexlify)(ciphertext).substring(2),
kdf: "scrypt",
kdfparams: {
salt: bytes_1.hexlify(salt).substring(2),
salt: (0, bytes_1.hexlify)(salt).substring(2),
n: N,

@@ -377,18 +377,18 @@ dklen: 32,

if (entropy) {
var mnemonicIv = random_1.randomBytes(16);
var mnemonicIv = (0, random_1.randomBytes)(16);
var mnemonicCounter = new aes_js_1.default.Counter(mnemonicIv);
var mnemonicAesCtr = new aes_js_1.default.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);
var mnemonicCiphertext = bytes_1.arrayify(mnemonicAesCtr.encrypt(entropy));
var mnemonicCiphertext = (0, bytes_1.arrayify)(mnemonicAesCtr.encrypt(entropy));
var now = new Date();
var timestamp = (now.getUTCFullYear() + "-" +
utils_1.zpad(now.getUTCMonth() + 1, 2) + "-" +
utils_1.zpad(now.getUTCDate(), 2) + "T" +
utils_1.zpad(now.getUTCHours(), 2) + "-" +
utils_1.zpad(now.getUTCMinutes(), 2) + "-" +
utils_1.zpad(now.getUTCSeconds(), 2) + ".0Z");
(0, utils_1.zpad)(now.getUTCMonth() + 1, 2) + "-" +
(0, utils_1.zpad)(now.getUTCDate(), 2) + "T" +
(0, utils_1.zpad)(now.getUTCHours(), 2) + "-" +
(0, utils_1.zpad)(now.getUTCMinutes(), 2) + "-" +
(0, utils_1.zpad)(now.getUTCSeconds(), 2) + ".0Z");
data["x-ethers"] = {
client: client,
gethFilename: ("UTC--" + timestamp + "--" + data.address),
mnemonicCounter: bytes_1.hexlify(mnemonicIv).substring(2),
mnemonicCiphertext: bytes_1.hexlify(mnemonicCiphertext).substring(2),
mnemonicCounter: (0, bytes_1.hexlify)(mnemonicIv).substring(2),
mnemonicCiphertext: (0, bytes_1.hexlify)(mnemonicCiphertext).substring(2),
path: path,

@@ -395,0 +395,0 @@ locale: locale,

@@ -10,3 +10,3 @@ "use strict";

}
return bytes_1.arrayify(hexString);
return (0, bytes_1.arrayify)(hexString);
}

@@ -24,5 +24,5 @@ exports.looseArrayify = looseArrayify;

if (typeof (password) === 'string') {
return strings_1.toUtf8Bytes(password, strings_1.UnicodeNormalizationForm.NFKC);
return (0, strings_1.toUtf8Bytes)(password, strings_1.UnicodeNormalizationForm.NFKC);
}
return bytes_1.arrayify(password);
return (0, bytes_1.arrayify)(password);
}

@@ -54,3 +54,3 @@ exports.getPassword = getPassword;

function uuidV4(randomBytes) {
var bytes = bytes_1.arrayify(randomBytes);
var bytes = (0, bytes_1.arrayify)(randomBytes);
// Section: 4.1.3:

@@ -63,3 +63,3 @@ // - time_hi_and_version[12:16] = 0b0100

bytes[8] = (bytes[8] & 0x3f) | 0x80;
var value = bytes_1.hexlify(bytes);
var value = (0, bytes_1.hexlify)(bytes);
return [

@@ -66,0 +66,0 @@ value.substring(2, 10),

{
"author": "Richard Moore <me@ricmoo.com>",
"dependencies": {
"@ethersproject/abstract-signer": "^5.4.0",
"@ethersproject/address": "^5.4.0",
"@ethersproject/bytes": "^5.4.0",
"@ethersproject/hdnode": "^5.4.0",
"@ethersproject/keccak256": "^5.4.0",
"@ethersproject/logger": "^5.4.0",
"@ethersproject/pbkdf2": "^5.4.0",
"@ethersproject/properties": "^5.4.0",
"@ethersproject/random": "^5.4.0",
"@ethersproject/strings": "^5.4.0",
"@ethersproject/transactions": "^5.4.0",
"@ethersproject/abstract-signer": "^5.5.0",
"@ethersproject/address": "^5.5.0",
"@ethersproject/bytes": "^5.5.0",
"@ethersproject/hdnode": "^5.5.0",
"@ethersproject/keccak256": "^5.5.0",
"@ethersproject/logger": "^5.5.0",
"@ethersproject/pbkdf2": "^5.5.0",
"@ethersproject/properties": "^5.5.0",
"@ethersproject/random": "^5.5.0",
"@ethersproject/strings": "^5.5.0",
"@ethersproject/transactions": "^5.5.0",
"aes-js": "3.0.0",

@@ -30,3 +30,3 @@ "scrypt-js": "3.0.1"

],
"gitHead": "c2c0ce75039e7256b287f9a764188d08ed0b7296",
"gitHead": "73a46efea32c3f9a4833ed77896a216e3d3752a0",
"keywords": [

@@ -52,5 +52,5 @@ "Ethereum",

"sideEffects": false,
"tarballHash": "0x10ff1e0b44741ad030f770b0797020520c746dac1dff2ec027a7dcf492dfa228",
"tarballHash": "0xde9c1ef5ff92f71418ec3430531320f776248a11e3e698caf551d0f164c29ae1",
"types": "./lib/index.d.ts",
"version": "5.4.0"
"version": "5.5.0"
}

@@ -1,1 +0,1 @@

export const version = "json-wallets/5.4.0";
export const version = "json-wallets/5.5.0";

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc