@shapeshiftoss/hdwallet-native 1.55.4-alpha.1 → 1.55.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter.js +61 -22
- package/dist/adapter.js.map +1 -1
- package/dist/arkeo.js +123 -54
- package/dist/arkeo.js.map +1 -1
- package/dist/binance.js +194 -123
- package/dist/binance.js.map +1 -1
- package/dist/bitcoin.js +284 -219
- package/dist/bitcoin.js.map +1 -1
- package/dist/cosmos.js +123 -54
- package/dist/cosmos.js.map +1 -1
- package/dist/crypto/CryptoHelper.js +172 -106
- package/dist/crypto/CryptoHelper.js.map +1 -1
- package/dist/crypto/EncryptedWallet.js +123 -64
- package/dist/crypto/EncryptedWallet.js.map +1 -1
- package/dist/crypto/classes/cipherString.js +19 -18
- package/dist/crypto/classes/cipherString.js.map +1 -1
- package/dist/crypto/classes/encryptedObject.js +7 -7
- package/dist/crypto/classes/encryptedObject.js.map +1 -1
- package/dist/crypto/classes/encryptionType.js +5 -2
- package/dist/crypto/classes/encryptionType.js.map +1 -1
- package/dist/crypto/classes/index.js +11 -4
- package/dist/crypto/classes/index.js.map +1 -1
- package/dist/crypto/classes/symmetricCryptoKey.js +11 -13
- package/dist/crypto/classes/symmetricCryptoKey.js.map +1 -1
- package/dist/crypto/engines/index.js +18 -2
- package/dist/crypto/engines/index.js.map +1 -1
- package/dist/crypto/engines/types.js +5 -2
- package/dist/crypto/engines/types.js.map +1 -1
- package/dist/crypto/engines/web-crypto.js +84 -39
- package/dist/crypto/engines/web-crypto.js.map +1 -1
- package/dist/crypto/index.js +32 -3
- package/dist/crypto/index.js.map +1 -1
- package/dist/crypto/isolation/adapters/binance.js +51 -12
- package/dist/crypto/isolation/adapters/binance.js.map +1 -1
- package/dist/crypto/isolation/adapters/bip32.js +108 -65
- package/dist/crypto/isolation/adapters/bip32.js.map +1 -1
- package/dist/crypto/isolation/adapters/bitcoin.js +84 -41
- package/dist/crypto/isolation/adapters/bitcoin.js.map +1 -1
- package/dist/crypto/isolation/adapters/cosmos.js +24 -9
- package/dist/crypto/isolation/adapters/cosmos.js.map +1 -1
- package/dist/crypto/isolation/adapters/cosmosDirect.js +77 -35
- package/dist/crypto/isolation/adapters/cosmosDirect.js.map +1 -1
- package/dist/crypto/isolation/adapters/ethereum.js +90 -49
- package/dist/crypto/isolation/adapters/ethereum.js.map +1 -1
- package/dist/crypto/isolation/adapters/fio.js +67 -24
- package/dist/crypto/isolation/adapters/fio.js.map +1 -1
- package/dist/crypto/isolation/adapters/index.js +20 -7
- package/dist/crypto/isolation/adapters/index.js.map +1 -1
- package/dist/crypto/isolation/core/bip32/index.js +50 -22
- package/dist/crypto/isolation/core/bip32/index.js.map +1 -1
- package/dist/crypto/isolation/core/bip32/interfaces.js +28 -2
- package/dist/crypto/isolation/core/bip32/interfaces.js.map +1 -1
- package/dist/crypto/isolation/core/bip32/types.js +8 -5
- package/dist/crypto/isolation/core/bip32/types.js.map +1 -1
- package/dist/crypto/isolation/core/bip39/index.js +17 -1
- package/dist/crypto/isolation/core/bip39/index.js.map +1 -1
- package/dist/crypto/isolation/core/bip39/interfaces.js +2 -1
- package/dist/crypto/isolation/core/digest/algorithms.js +32 -23
- package/dist/crypto/isolation/core/digest/algorithms.js.map +1 -1
- package/dist/crypto/isolation/core/digest/index.js +18 -2
- package/dist/crypto/isolation/core/digest/index.js.map +1 -1
- package/dist/crypto/isolation/core/digest/types.js +26 -23
- package/dist/crypto/isolation/core/digest/types.js.map +1 -1
- package/dist/crypto/isolation/core/index.js +32 -5
- package/dist/crypto/isolation/core/index.js.map +1 -1
- package/dist/crypto/isolation/core/secp256k1/index.js +18 -2
- package/dist/crypto/isolation/core/secp256k1/index.js.map +1 -1
- package/dist/crypto/isolation/core/secp256k1/interfaces.js +2 -1
- package/dist/crypto/isolation/core/secp256k1/types.js +157 -119
- package/dist/crypto/isolation/core/secp256k1/types.js.map +1 -1
- package/dist/crypto/isolation/engines/default/bip32.js +176 -102
- package/dist/crypto/isolation/engines/default/bip32.js.map +1 -1
- package/dist/crypto/isolation/engines/default/bip39.js +68 -24
- package/dist/crypto/isolation/engines/default/bip39.js.map +1 -1
- package/dist/crypto/isolation/engines/default/index.js +32 -3
- package/dist/crypto/isolation/engines/default/index.js.map +1 -1
- package/dist/crypto/isolation/engines/default/revocable.js +51 -30
- package/dist/crypto/isolation/engines/default/revocable.js.map +1 -1
- package/dist/crypto/isolation/engines/dummy/bip32.js +121 -63
- package/dist/crypto/isolation/engines/dummy/bip32.js.map +1 -1
- package/dist/crypto/isolation/engines/dummy/bip39.js +97 -55
- package/dist/crypto/isolation/engines/dummy/bip39.js.map +1 -1
- package/dist/crypto/isolation/engines/dummy/index.js +30 -3
- package/dist/crypto/isolation/engines/dummy/index.js.map +1 -1
- package/dist/crypto/isolation/engines/dummy/types.js +5 -1
- package/dist/crypto/isolation/engines/dummy/types.js.map +1 -1
- package/dist/crypto/isolation/engines/index.js +28 -2
- package/dist/crypto/isolation/engines/index.js.map +1 -1
- package/dist/crypto/isolation/index.js +29 -3
- package/dist/crypto/isolation/index.js.map +1 -1
- package/dist/crypto/isolation/types.js +49 -43
- package/dist/crypto/isolation/types.js.map +1 -1
- package/dist/crypto/utils.js +13 -7
- package/dist/crypto/utils.js.map +1 -1
- package/dist/ethereum.js +160 -92
- package/dist/ethereum.js.map +1 -1
- package/dist/fio.js +282 -204
- package/dist/fio.js.map +1 -1
- package/dist/index.js +32 -3
- package/dist/index.js.map +1 -1
- package/dist/kava.js +119 -50
- package/dist/kava.js.map +1 -1
- package/dist/native.js +304 -176
- package/dist/native.js.map +1 -1
- package/dist/networks.js +33 -16
- package/dist/networks.js.map +1 -1
- package/dist/osmosis.js +123 -54
- package/dist/osmosis.js.map +1 -1
- package/dist/secret.js +119 -50
- package/dist/secret.js.map +1 -1
- package/dist/terra.js +119 -50
- package/dist/terra.js.map +1 -1
- package/dist/thorchain.js +123 -54
- package/dist/thorchain.js.map +1 -1
- package/dist/util.js +54 -16
- package/dist/util.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,42 +1,87 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.WebCryptoEngine = void 0;
|
|
36
|
+
const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
|
|
37
|
+
const scryptJs = __importStar(require("scrypt-js"));
|
|
38
|
+
const types_1 = require("./types");
|
|
39
|
+
class WebCryptoEngine {
|
|
40
|
+
decrypt(data, key, iv) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
const impKey = yield globalThis.crypto.subtle.importKey("raw", key, { name: "AES-CBC" }, false, ["decrypt"]);
|
|
43
|
+
return globalThis.crypto.subtle.decrypt({ name: "AES-CBC", iv }, impKey, data);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
digest(algorithm, data) {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
const alg = algorithm === types_1.DigestAlgorithm.SHA512 ? "SHA-512" : "SHA-256";
|
|
49
|
+
return globalThis.crypto.subtle.digest(alg, data);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
encrypt(data, key, iv) {
|
|
53
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
+
const impKey = yield globalThis.crypto.subtle.importKey("raw", key, { name: "AES-CBC" }, false, ["encrypt"]);
|
|
55
|
+
return globalThis.crypto.subtle.encrypt({ name: "AES-CBC", iv }, impKey, data);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
hmac(value, key) {
|
|
59
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
const signingAlgorithm = {
|
|
61
|
+
name: "HMAC",
|
|
62
|
+
hash: { name: "SHA-256" },
|
|
63
|
+
};
|
|
64
|
+
const impKey = yield globalThis.crypto.subtle.importKey("raw", key, signingAlgorithm, false, ["sign"]);
|
|
65
|
+
return globalThis.crypto.subtle.sign(signingAlgorithm, impKey, value);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
pbkdf2(password, salt, options) {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
const pbkdf2Params = Object.assign({ name: "PBKDF2", salt: new Uint8Array(salt), hash: { name: "SHA-256" } }, options);
|
|
71
|
+
const impKey = yield globalThis.crypto.subtle.importKey("raw", password, { name: "PBKDF2" }, false, ["deriveBits"]);
|
|
72
|
+
return globalThis.crypto.subtle.deriveBits(pbkdf2Params, impKey, 256);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
randomBytes(size) {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
return core.toArrayBuffer(globalThis.crypto.getRandomValues(new Uint8Array(size)));
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
scrypt(password, salt, params) {
|
|
81
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
return core.toArrayBuffer(yield scryptJs.scrypt(new Uint8Array(password), new Uint8Array(salt), params.iterations, params.blockSize, params.parallelism, params.keyLength));
|
|
83
|
+
});
|
|
40
84
|
}
|
|
41
85
|
}
|
|
86
|
+
exports.WebCryptoEngine = WebCryptoEngine;
|
|
42
87
|
//# sourceMappingURL=web-crypto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-crypto.js","sourceRoot":"","sources":["../../../src/crypto/engines/web-crypto.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"web-crypto.js","sourceRoot":"","sources":["../../../src/crypto/engines/web-crypto.ts"],"names":[],"mappings":"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"}
|
package/dist/crypto/index.js
CHANGED
|
@@ -1,4 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
+
};
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.Isolation = exports.engines = void 0;
|
|
30
|
+
__exportStar(require("./EncryptedWallet"), exports);
|
|
31
|
+
exports.engines = __importStar(require("./engines"));
|
|
32
|
+
exports.Isolation = __importStar(require("./isolation"));
|
|
4
33
|
//# sourceMappingURL=index.js.map
|
package/dist/crypto/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,qDAAqC;AACrC,yDAAyC"}
|
|
@@ -1,15 +1,54 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
const p_lazy_1 = __importDefault(require("p-lazy"));
|
|
39
|
+
const core_1 = require("../core");
|
|
40
|
+
const bnbSdk = p_lazy_1.default.from(() => Promise.resolve().then(() => __importStar(require("bnb-javascript-sdk-nobroadcast"))));
|
|
41
|
+
exports.default = {
|
|
42
|
+
create(keyPair) {
|
|
43
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
return (tx, signMsg) => __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
const signBytes = tx.getSignBytes(signMsg);
|
|
46
|
+
const pubKey = (yield bnbSdk).crypto.getPublicKey(Buffer.from(yield keyPair.getPublicKey()).toString("hex"));
|
|
47
|
+
const sig = Buffer.from(yield core_1.SecP256K1.Signature.signCanonically(keyPair, "sha256", signBytes));
|
|
48
|
+
tx.addSignature(pubKey, sig);
|
|
49
|
+
return tx;
|
|
50
|
+
});
|
|
51
|
+
});
|
|
13
52
|
},
|
|
14
53
|
};
|
|
15
54
|
//# sourceMappingURL=binance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binance.js","sourceRoot":"","sources":["../../../../src/crypto/isolation/adapters/binance.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"binance.js","sourceRoot":"","sources":["../../../../src/crypto/isolation/adapters/binance.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAA2B;AAE3B,kCAA2C;AAI3C,MAAM,MAAM,GAAG,gBAAK,CAAC,IAAI,CAAC,GAAG,EAAE,mDAAQ,gCAAgC,GAAC,CAAC,CAAC;AAE1E,kBAAe;IACP,MAAM,CAAC,OAAmB;;YAC9B,OAAO,CAAO,EAAe,EAAE,OAAa,EAAwB,EAAE;gBACpE,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7G,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,gBAAS,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;gBACjG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAC7B,OAAO,EAAE,CAAC;YACZ,CAAC,CAAA,CAAC;QACJ,CAAC;KAAA;CACF,CAAC"}
|
|
@@ -1,50 +1,84 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
11
17
|
});
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.BIP32Adapter = void 0;
|
|
39
|
+
const hdwallet_core_1 = require("@shapeshiftoss/hdwallet-core");
|
|
40
|
+
const bip32 = __importStar(require("bip32"));
|
|
41
|
+
const bs58check_1 = __importDefault(require("bs58check"));
|
|
42
|
+
const p_lazy_1 = __importDefault(require("p-lazy"));
|
|
43
|
+
const core_1 = require("../core");
|
|
44
|
+
const types_1 = require("../core/bip32/types");
|
|
45
|
+
const bitcoin_1 = require("./bitcoin");
|
|
46
|
+
let btccryptoInstance;
|
|
47
|
+
const btccryptoReady = p_lazy_1.default.from(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
48
|
+
btccryptoInstance = (yield Promise.resolve().then(() => __importStar(require("@shapeshiftoss/bitcoinjs-lib")))).crypto;
|
|
49
|
+
}));
|
|
50
|
+
class BIP32Adapter extends bitcoin_1.ECPairAdapter {
|
|
22
51
|
/**
|
|
23
52
|
* If you're inheriting from this class, be sure to call `await BIP32Adapter.prepare()` in your `create()` overload.
|
|
24
53
|
*/
|
|
25
54
|
constructor(node, chainCode, publicKey, networkOrParent, index) {
|
|
26
55
|
super(node, publicKey, networkOrParent instanceof BIP32Adapter ? networkOrParent.network : networkOrParent);
|
|
56
|
+
this._children = new Map();
|
|
27
57
|
this.node = node;
|
|
28
58
|
this._chainCode = chainCode;
|
|
29
59
|
this._publicKey = publicKey;
|
|
30
|
-
this.index = index
|
|
60
|
+
this.index = index !== null && index !== void 0 ? index : 0;
|
|
31
61
|
if (networkOrParent instanceof BIP32Adapter)
|
|
32
62
|
this._parent = networkOrParent;
|
|
33
63
|
if (node.explicitPath) {
|
|
34
|
-
Path.assert(node.explicitPath);
|
|
64
|
+
types_1.Path.assert(node.explicitPath);
|
|
35
65
|
this._explicitPath = node.explicitPath;
|
|
36
66
|
}
|
|
37
67
|
}
|
|
38
|
-
static
|
|
39
|
-
|
|
40
|
-
|
|
68
|
+
static prepare() {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
// Must await superclass's prepare() so it can do its lazy-loading.
|
|
71
|
+
yield Promise.all([yield btccryptoReady, bitcoin_1.ECPairAdapter.prepare()]);
|
|
72
|
+
});
|
|
41
73
|
}
|
|
42
|
-
static
|
|
43
|
-
|
|
44
|
-
|
|
74
|
+
static create(isolatedNode, networkOrParent, index) {
|
|
75
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
yield this.prepare();
|
|
77
|
+
return new BIP32Adapter(isolatedNode, yield isolatedNode.getChainCode(), yield isolatedNode.getPublicKey(), networkOrParent, index);
|
|
78
|
+
});
|
|
45
79
|
}
|
|
46
80
|
get depth() {
|
|
47
|
-
return this.path ? bip32ToAddressNList(this.path).length : 0;
|
|
81
|
+
return this.path ? (0, hdwallet_core_1.bip32ToAddressNList)(this.path).length : 0;
|
|
48
82
|
}
|
|
49
83
|
get chainCode() {
|
|
50
84
|
return Buffer.from(this._chainCode);
|
|
@@ -53,9 +87,10 @@ export class BIP32Adapter extends ECPairAdapter {
|
|
|
53
87
|
return this.chainCode;
|
|
54
88
|
}
|
|
55
89
|
get identifier() {
|
|
90
|
+
var _a;
|
|
56
91
|
return (this._identifier =
|
|
57
92
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
58
|
-
this._identifier
|
|
93
|
+
(_a = this._identifier) !== null && _a !== void 0 ? _a : btccryptoInstance.hash160(Buffer.from(core_1.SecP256K1.CompressedPoint.from(this.publicKey))));
|
|
59
94
|
}
|
|
60
95
|
get fingerprint() {
|
|
61
96
|
return this.identifier.slice(0, 4);
|
|
@@ -64,11 +99,12 @@ export class BIP32Adapter extends ECPairAdapter {
|
|
|
64
99
|
return this._parent ? this._parent.fingerprint.readUInt32BE(0) : 0;
|
|
65
100
|
}
|
|
66
101
|
get path() {
|
|
102
|
+
var _a;
|
|
67
103
|
if (this._explicitPath)
|
|
68
104
|
return this._explicitPath;
|
|
69
105
|
if (!this._parent)
|
|
70
106
|
return "";
|
|
71
|
-
let parentPath = this._parent.path
|
|
107
|
+
let parentPath = (_a = this._parent.path) !== null && _a !== void 0 ? _a : "";
|
|
72
108
|
if (parentPath === "")
|
|
73
109
|
parentPath = "m";
|
|
74
110
|
const hardened = this.index >= 0x80000000;
|
|
@@ -76,7 +112,7 @@ export class BIP32Adapter extends ECPairAdapter {
|
|
|
76
112
|
return `${parentPath}/${index}${hardened ? "'" : ""}`;
|
|
77
113
|
}
|
|
78
114
|
get publicKey() {
|
|
79
|
-
return Buffer.from(SecP256K1.CompressedPoint.from(this._publicKey));
|
|
115
|
+
return Buffer.from(core_1.SecP256K1.CompressedPoint.from(this._publicKey));
|
|
80
116
|
}
|
|
81
117
|
getPublicKey() {
|
|
82
118
|
return this.publicKey;
|
|
@@ -93,44 +129,51 @@ export class BIP32Adapter extends ECPairAdapter {
|
|
|
93
129
|
xpub.writeUInt32BE(this.index, 9);
|
|
94
130
|
xpub.set(this.chainCode, 13);
|
|
95
131
|
xpub.set(this.publicKey, 45);
|
|
96
|
-
this._base58 =
|
|
132
|
+
this._base58 = bs58check_1.default.encode(xpub);
|
|
97
133
|
}
|
|
98
134
|
return bip32.fromBase58(this._base58, this.network);
|
|
99
135
|
}
|
|
100
136
|
toBase58() {
|
|
101
|
-
throw new IsolationError("xprv");
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
return out;
|
|
110
|
-
}
|
|
111
|
-
async deriveHardened(index) {
|
|
112
|
-
return await this.derive(index + 0x80000000);
|
|
113
|
-
}
|
|
114
|
-
async derivePath(path) {
|
|
115
|
-
/**
|
|
116
|
-
* If a non-root explicit path has been set, we cannot construct
|
|
117
|
-
* a full representation of the BIP32 key tree and therefore may
|
|
118
|
-
* only derive keys for nodes that are children of this one.
|
|
119
|
-
*/
|
|
120
|
-
if (this._explicitPath) {
|
|
121
|
-
if (!(path.startsWith(this._explicitPath) && path.length >= this._explicitPath.length)) {
|
|
122
|
-
throw new Error("path is not a child of this node");
|
|
137
|
+
throw new core_1.IsolationError("xprv");
|
|
138
|
+
}
|
|
139
|
+
derive(index) {
|
|
140
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
141
|
+
let out = this._children.get(index);
|
|
142
|
+
if (!out) {
|
|
143
|
+
out = (yield BIP32Adapter.create(yield this.node.derive(index), this, index));
|
|
144
|
+
this._children.set(index, out);
|
|
123
145
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
146
|
+
return out;
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
deriveHardened(index) {
|
|
150
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
151
|
+
return yield this.derive(index + 0x80000000);
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
derivePath(path) {
|
|
155
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
156
|
+
/**
|
|
157
|
+
* If a non-root explicit path has been set, we cannot construct
|
|
158
|
+
* a full representation of the BIP32 key tree and therefore may
|
|
159
|
+
* only derive keys for nodes that are children of this one.
|
|
160
|
+
*/
|
|
161
|
+
if (this._explicitPath) {
|
|
162
|
+
if (!(path.startsWith(this._explicitPath) && path.length >= this._explicitPath.length)) {
|
|
163
|
+
throw new Error("path is not a child of this node");
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
const ownPath = this.path;
|
|
167
|
+
if (path.startsWith(ownPath))
|
|
168
|
+
path = path.slice(ownPath.length);
|
|
169
|
+
if (path.startsWith("/"))
|
|
170
|
+
path = path.slice(1);
|
|
171
|
+
if (/^m/.test(path) && this._parent)
|
|
172
|
+
throw new Error("expected master, got child");
|
|
173
|
+
return yield core_1.BIP32.derivePath(this, path);
|
|
174
|
+
});
|
|
133
175
|
}
|
|
134
176
|
}
|
|
135
|
-
|
|
177
|
+
exports.BIP32Adapter = BIP32Adapter;
|
|
178
|
+
exports.default = BIP32Adapter;
|
|
136
179
|
//# sourceMappingURL=bip32.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bip32.js","sourceRoot":"","sources":["../../../../src/crypto/isolation/adapters/bip32.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"bip32.js","sourceRoot":"","sources":["../../../../src/crypto/isolation/adapters/bip32.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gEAAmE;AACnE,6CAA+B;AAC/B,0DAAkC;AAClC,oDAA2B;AAE3B,kCAA2D;AAC3D,+CAA2C;AAC3C,uCAA0C;AAE1C,IAAI,iBAA+C,CAAC;AACpD,MAAM,cAAc,GAAG,gBAAK,CAAC,IAAI,CAAC,GAAS,EAAE;IAC3C,iBAAiB,GAAG,CAAC,wDAAa,8BAA8B,GAAC,CAAC,CAAC,MAAM,CAAC;AAC5E,CAAC,CAAA,CAAC,CAAC;AASH,MAAa,YAAa,SAAQ,uBAAa;IAW7C;;OAEG;IACH,YACE,IAAgB,EAChB,SAA0B,EAC1B,SAA+B,EAC/B,eAAwC,EACxC,KAAc;QAEd,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,YAAY,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAfrG,cAAS,GAAG,IAAI,GAAG,EAAgB,CAAC;QAgB3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,CAAC;QACxB,IAAI,eAAe,YAAY,YAAY;YAAE,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC;QAC5E,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,YAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC;QACzC,CAAC;IACH,CAAC;IAES,MAAM,CAAO,OAAO;;YAC5B,mEAAmE;YACnE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,cAAc,EAAE,uBAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;KAAA;IAED,MAAM,CAAO,MAAM,CACjB,YAAwB,EACxB,eAAwC,EACxC,KAAc;;YAEd,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,IAAI,YAAY,CACrB,YAAY,EACZ,MAAM,YAAY,CAAC,YAAY,EAAE,EACjC,MAAM,YAAY,CAAC,YAAY,EAAE,EACjC,eAAe,EACf,KAAK,CACN,CAAC;QACJ,CAAC;KAAA;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,mCAAmB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,SAAS;QACX,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAA6B,CAAC;IAClE,CAAC;IACD,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACD,IAAI,UAAU;;QACZ,OAAO,CAAC,IAAI,CAAC,WAAW;YACtB,oEAAoE;YACpE,MAAA,IAAI,CAAC,WAAW,mCAAI,iBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAS,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACjH,CAAC;IACD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,IAAI;;QACN,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAC7B,IAAI,UAAU,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,IAAI,mCAAI,EAAE,CAAC;QACzC,IAAI,UAAU,KAAK,EAAE;YAAE,UAAU,GAAG,GAAG,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9D,OAAO,GAAG,UAAU,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACxD,CAAC;IAED,IAAI,SAAS;QACX,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAS,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAuC,CAAC;IAC5G,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,UAAU;QACR,OAAO,KAAK,CAAC;IACf,CAAC;IACD,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,mBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,QAAQ;QACN,MAAM,IAAI,qBAAc,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAEK,MAAM,CAAC,KAAa;;YACxB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,GAAG,GAAG,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAS,CAAC;gBACtF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;KAAA;IACK,cAAc,CAAC,KAAa;;YAChC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC;QAC/C,CAAC;KAAA;IAEK,UAAU,CAAC,IAAY;;YAC3B;;;;eAIG;YACH,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;oBACvF,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;YAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACnF,OAAO,MAAM,YAAK,CAAC,UAAU,CAAe,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;KAAA;CACF;AA9ID,oCA8IC;AAED,kBAAe,YAAY,CAAC"}
|