@bitgo-beta/secp256k1 1.0.2-beta.200 → 1.0.2-beta.2000

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.
@@ -0,0 +1,16 @@
1
+ import { BIP32Interface } from 'bip32';
2
+ /**
3
+ * bip32-aware wrapper around bitcoin-message package
4
+ * @see {bitcoinMessage.sign}
5
+ */
6
+ export declare function signMessage(message: string | Buffer, privateKey: BIP32Interface | Buffer, network: {
7
+ messagePrefix: string;
8
+ }): Buffer;
9
+ /**
10
+ * bip32-aware wrapper around bitcoin-message package
11
+ * @see {bitcoinMessage.verify}
12
+ */
13
+ export declare function verifyMessage(message: string | Buffer, publicKey: BIP32Interface | Buffer, signature: Buffer, network: {
14
+ messagePrefix: string;
15
+ }): boolean;
16
+ //# sourceMappingURL=bip32utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bip32utils.d.ts","sourceRoot":"","sources":["../../src/bip32utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AA2BvC;;;GAGG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,UAAU,EAAE,cAAc,GAAG,MAAM,EACnC,OAAO,EAAE;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GACjC,MAAM,CAYR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,SAAS,EAAE,cAAc,GAAG,MAAM,EAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GACjC,OAAO,CAUT"}
@@ -0,0 +1,90 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.signMessage = signMessage;
37
+ exports.verifyMessage = verifyMessage;
38
+ const bitcoinMessage = __importStar(require("bitcoinjs-message"));
39
+ const createHash = require('create-hash');
40
+ const bs58check = require('bs58check');
41
+ /**
42
+ * Computes hash160 (RIPEMD160(SHA256(data)))
43
+ */
44
+ function hash160(data) {
45
+ const sha256Hash = createHash('sha256').update(data).digest();
46
+ return createHash('ripemd160').update(sha256Hash).digest();
47
+ }
48
+ /**
49
+ * Encodes a hash with version byte in Base58Check format
50
+ */
51
+ function toBase58Check(hash, version) {
52
+ const payload = Buffer.allocUnsafe(21);
53
+ payload.writeUInt8(version, 0);
54
+ hash.copy(payload, 1);
55
+ return bs58check.encode(payload);
56
+ }
57
+ // Bitcoin mainnet pubKeyHash version byte
58
+ const BITCOIN_PUBKEY_HASH_VERSION = 0x00;
59
+ /**
60
+ * bip32-aware wrapper around bitcoin-message package
61
+ * @see {bitcoinMessage.sign}
62
+ */
63
+ function signMessage(message, privateKey, network) {
64
+ if (!Buffer.isBuffer(privateKey)) {
65
+ privateKey = privateKey.privateKey;
66
+ if (!privateKey) {
67
+ throw new Error(`must provide privateKey`);
68
+ }
69
+ }
70
+ if (network === null || typeof network !== 'object' || typeof network.messagePrefix !== 'string') {
71
+ throw new Error(`invalid argument 'network'`);
72
+ }
73
+ const compressed = true;
74
+ return bitcoinMessage.sign(message, privateKey, compressed, network.messagePrefix);
75
+ }
76
+ /**
77
+ * bip32-aware wrapper around bitcoin-message package
78
+ * @see {bitcoinMessage.verify}
79
+ */
80
+ function verifyMessage(message, publicKey, signature, network) {
81
+ if (!Buffer.isBuffer(publicKey)) {
82
+ publicKey = publicKey.publicKey;
83
+ }
84
+ if (network === null || typeof network !== 'object' || typeof network.messagePrefix !== 'string') {
85
+ throw new Error(`invalid argument 'network'`);
86
+ }
87
+ const address = toBase58Check(hash160(publicKey), BITCOIN_PUBKEY_HASH_VERSION);
88
+ return bitcoinMessage.verify(message, address, signature, network.messagePrefix);
89
+ }
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlwMzJ1dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaXAzMnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK0JBLGtDQWdCQztBQU1ELHNDQWVDO0FBbkVELGtFQUFvRDtBQUVwRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDMUMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBRXZDOztHQUVHO0FBQ0gsU0FBUyxPQUFPLENBQUMsSUFBWTtJQUMzQixNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzlELE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUM3RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLGFBQWEsQ0FBQyxJQUFZLEVBQUUsT0FBZTtJQUNsRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQsMENBQTBDO0FBQzFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxDQUFDO0FBRXpDOzs7R0FHRztBQUNILFNBQWdCLFdBQVcsQ0FDekIsT0FBd0IsRUFDeEIsVUFBbUMsRUFDbkMsT0FBa0M7SUFFbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUNqQyxVQUFVLEdBQUcsVUFBVSxDQUFDLFVBQW9CLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksT0FBTyxLQUFLLElBQUksSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLENBQUMsYUFBYSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2pHLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDckYsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGFBQWEsQ0FDM0IsT0FBd0IsRUFDeEIsU0FBa0MsRUFDbEMsU0FBaUIsRUFDakIsT0FBa0M7SUFFbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxPQUFPLEtBQUssSUFBSSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDakcsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENBQUM7SUFDL0UsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdiaXAzMic7XG5pbXBvcnQgKiBhcyBiaXRjb2luTWVzc2FnZSBmcm9tICdiaXRjb2luanMtbWVzc2FnZSc7XG5cbmNvbnN0IGNyZWF0ZUhhc2ggPSByZXF1aXJlKCdjcmVhdGUtaGFzaCcpO1xuY29uc3QgYnM1OGNoZWNrID0gcmVxdWlyZSgnYnM1OGNoZWNrJyk7XG5cbi8qKlxuICogQ29tcHV0ZXMgaGFzaDE2MCAoUklQRU1EMTYwKFNIQTI1NihkYXRhKSkpXG4gKi9cbmZ1bmN0aW9uIGhhc2gxNjAoZGF0YTogQnVmZmVyKTogQnVmZmVyIHtcbiAgY29uc3Qgc2hhMjU2SGFzaCA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShkYXRhKS5kaWdlc3QoKTtcbiAgcmV0dXJuIGNyZWF0ZUhhc2goJ3JpcGVtZDE2MCcpLnVwZGF0ZShzaGEyNTZIYXNoKS5kaWdlc3QoKTtcbn1cblxuLyoqXG4gKiBFbmNvZGVzIGEgaGFzaCB3aXRoIHZlcnNpb24gYnl0ZSBpbiBCYXNlNThDaGVjayBmb3JtYXRcbiAqL1xuZnVuY3Rpb24gdG9CYXNlNThDaGVjayhoYXNoOiBCdWZmZXIsIHZlcnNpb246IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IHBheWxvYWQgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMjEpO1xuICBwYXlsb2FkLndyaXRlVUludDgodmVyc2lvbiwgMCk7XG4gIGhhc2guY29weShwYXlsb2FkLCAxKTtcbiAgcmV0dXJuIGJzNThjaGVjay5lbmNvZGUocGF5bG9hZCk7XG59XG5cbi8vIEJpdGNvaW4gbWFpbm5ldCBwdWJLZXlIYXNoIHZlcnNpb24gYnl0ZVxuY29uc3QgQklUQ09JTl9QVUJLRVlfSEFTSF9WRVJTSU9OID0gMHgwMDtcblxuLyoqXG4gKiBiaXAzMi1hd2FyZSB3cmFwcGVyIGFyb3VuZCBiaXRjb2luLW1lc3NhZ2UgcGFja2FnZVxuICogQHNlZSB7Yml0Y29pbk1lc3NhZ2Uuc2lnbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25NZXNzYWdlKFxuICBtZXNzYWdlOiBzdHJpbmcgfCBCdWZmZXIsXG4gIHByaXZhdGVLZXk6IEJJUDMySW50ZXJmYWNlIHwgQnVmZmVyLFxuICBuZXR3b3JrOiB7IG1lc3NhZ2VQcmVmaXg6IHN0cmluZyB9XG4pOiBCdWZmZXIge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihwcml2YXRlS2V5KSkge1xuICAgIHByaXZhdGVLZXkgPSBwcml2YXRlS2V5LnByaXZhdGVLZXkgYXMgQnVmZmVyO1xuICAgIGlmICghcHJpdmF0ZUtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IHByb3ZpZGUgcHJpdmF0ZUtleWApO1xuICAgIH1cbiAgfVxuICBpZiAobmV0d29yayA9PT0gbnVsbCB8fCB0eXBlb2YgbmV0d29yayAhPT0gJ29iamVjdCcgfHwgdHlwZW9mIG5ldHdvcmsubWVzc2FnZVByZWZpeCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgYXJndW1lbnQgJ25ldHdvcmsnYCk7XG4gIH1cbiAgY29uc3QgY29tcHJlc3NlZCA9IHRydWU7XG4gIHJldHVybiBiaXRjb2luTWVzc2FnZS5zaWduKG1lc3NhZ2UsIHByaXZhdGVLZXksIGNvbXByZXNzZWQsIG5ldHdvcmsubWVzc2FnZVByZWZpeCk7XG59XG5cbi8qKlxuICogYmlwMzItYXdhcmUgd3JhcHBlciBhcm91bmQgYml0Y29pbi1tZXNzYWdlIHBhY2thZ2VcbiAqIEBzZWUge2JpdGNvaW5NZXNzYWdlLnZlcmlmeX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeU1lc3NhZ2UoXG4gIG1lc3NhZ2U6IHN0cmluZyB8IEJ1ZmZlcixcbiAgcHVibGljS2V5OiBCSVAzMkludGVyZmFjZSB8IEJ1ZmZlcixcbiAgc2lnbmF0dXJlOiBCdWZmZXIsXG4gIG5ldHdvcms6IHsgbWVzc2FnZVByZWZpeDogc3RyaW5nIH1cbik6IGJvb2xlYW4ge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihwdWJsaWNLZXkpKSB7XG4gICAgcHVibGljS2V5ID0gcHVibGljS2V5LnB1YmxpY0tleTtcbiAgfVxuICBpZiAobmV0d29yayA9PT0gbnVsbCB8fCB0eXBlb2YgbmV0d29yayAhPT0gJ29iamVjdCcgfHwgdHlwZW9mIG5ldHdvcmsubWVzc2FnZVByZWZpeCAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgYXJndW1lbnQgJ25ldHdvcmsnYCk7XG4gIH1cblxuICBjb25zdCBhZGRyZXNzID0gdG9CYXNlNThDaGVjayhoYXNoMTYwKHB1YmxpY0tleSksIEJJVENPSU5fUFVCS0VZX0hBU0hfVkVSU0lPTik7XG4gIHJldHVybiBiaXRjb2luTWVzc2FnZS52ZXJpZnkobWVzc2FnZSwgYWRkcmVzcywgc2lnbmF0dXJlLCBuZXR3b3JrLm1lc3NhZ2VQcmVmaXgpO1xufVxuIl19
@@ -1,5 +1,5 @@
1
- import { ECPairAPI, ECPairInterface } from 'ecpair';
2
- import { BIP32API, BIP32Interface } from 'bip32';
1
+ import { ECPairAPI, ECPairFactory, ECPairInterface } from 'ecpair';
2
+ import { BIP32API, BIP32Factory, BIP32Interface } from 'bip32';
3
3
  import { MuSig } from '@brandonblack/musig';
4
4
  declare const ecc: {
5
5
  isPoint: (p: Uint8Array) => boolean;
@@ -9,20 +9,22 @@ declare const ecc: {
9
9
  parity: 0 | 1;
10
10
  xOnlyPubkey: Uint8Array;
11
11
  } | null;
12
- pointFromScalar: (sk: Uint8Array, compressed?: boolean | undefined) => Uint8Array | null;
13
- pointCompress: (p: Uint8Array, compressed?: boolean | undefined) => Uint8Array;
14
- pointMultiply: (a: Uint8Array, tweak: Uint8Array, compressed?: boolean | undefined) => Uint8Array | null;
15
- pointAdd: (a: Uint8Array, b: Uint8Array, compressed?: boolean | undefined) => Uint8Array | null;
16
- pointAddScalar: (p: Uint8Array, tweak: Uint8Array, compressed?: boolean | undefined) => Uint8Array | null;
12
+ pointFromScalar: (sk: Uint8Array, compressed?: boolean) => Uint8Array | null;
13
+ pointCompress: (p: Uint8Array, compressed?: boolean) => Uint8Array;
14
+ pointMultiply: (a: Uint8Array, tweak: Uint8Array, compressed?: boolean) => Uint8Array | null;
15
+ pointAdd: (a: Uint8Array, b: Uint8Array, compressed?: boolean) => Uint8Array | null;
16
+ pointAddScalar: (p: Uint8Array, tweak: Uint8Array, compressed?: boolean) => Uint8Array | null;
17
17
  privateAdd: (d: Uint8Array, tweak: Uint8Array) => Uint8Array | null;
18
18
  privateNegate: (d: Uint8Array) => Uint8Array;
19
- sign: (h: Uint8Array, d: Uint8Array, e?: Uint8Array | undefined) => Uint8Array;
19
+ sign: (h: Uint8Array, d: Uint8Array, e?: Uint8Array) => Uint8Array;
20
20
  signSchnorr: (h: Uint8Array, d: Uint8Array, e?: Uint8Array) => Uint8Array;
21
- verify: (h: Uint8Array, Q: Uint8Array, signature: Uint8Array, strict?: boolean | undefined) => boolean;
21
+ verify: (h: Uint8Array, Q: Uint8Array, signature: Uint8Array, strict?: boolean) => boolean;
22
+ recoverPublicKey: (h: Uint8Array, signature: Uint8Array, recovery: number, compressed?: boolean) => Uint8Array | null;
22
23
  verifySchnorr: (h: Uint8Array, Q: Uint8Array, signature: Uint8Array) => boolean;
23
24
  };
24
25
  declare const ECPair: ECPairAPI;
25
26
  declare const bip32: BIP32API;
26
27
  declare const musig: MuSig;
27
- export { ecc, ECPair, ECPairAPI, ECPairInterface, bip32, BIP32API, BIP32Interface, musig, MuSig };
28
+ import * as bip32utils from './bip32utils';
29
+ export { ecc, ECPair, ECPairAPI, ECPairFactory, ECPairInterface, bip32, BIP32API, BIP32Factory, BIP32Interface, musig, MuSig, bip32utils, };
28
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAiB,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEnE,OAAO,EAAE,QAAQ,EAAgB,cAAc,EAAE,MAAM,OAAO,CAAC;AAI/D,OAAO,EAAE,KAAK,EAAgB,MAAM,qBAAqB,CAAC;AA2C1D,QAAA,MAAM,GAAG;iBACM,UAAU,KAAG,OAAO;mBAClB,UAAU,KAAG,OAAO;sBACjB,UAAU,KAAG,OAAO;4BAEd,UAAU,SAAS,UAAU,KAAG;QAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;QAAC,WAAW,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI;0BAOnF,UAAU,uCAAyB,UAAU,GAAG,IAAI;uBAGvD,UAAU,uCAAyB,UAAU;uBAI7C,UAAU,SAAS,UAAU,uCAAyB,UAAU,GAAG,IAAI;kBAG5E,UAAU,KAAK,UAAU,uCAAyB,UAAU,GAAG,IAAI;wBAO7D,UAAU,SAAS,UAAU,uCAAyB,UAAU,GAAG,IAAI;oBAG3E,UAAU,SAAS,UAAU,KAAG,UAAU,GAAG,IAAI;uBAS9C,UAAU,KAAG,UAAU;cAEhC,UAAU,KAAK,UAAU,iCAAmB,UAAU;qBAI/C,UAAU,KAAK,UAAU,MAAK,UAAU,KAA4B,UAAU;gBAInF,UAAU,KAAK,UAAU,aAAa,UAAU,mCAAqB,OAAO;uBAIrE,UAAU,KAAK,UAAU,aAAa,UAAU,KAAG,OAAO;CAG9E,CAAC;AAkEF,QAAA,MAAM,MAAM,EAAE,SAA8B,CAAC;AAC7C,QAAA,MAAM,KAAK,EAAE,QAA4B,CAAC;AAC1C,QAAA,MAAM,KAAK,EAAE,KAA4B,CAAC;AAE1C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEnE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI/D,OAAO,EAAE,KAAK,EAAgB,MAAM,qBAAqB,CAAC;AA4C1D,QAAA,MAAM,GAAG;iBACM,UAAU,KAAG,OAAO;mBAClB,UAAU,KAAG,OAAO;sBACjB,UAAU,KAAG,OAAO;4BAEd,UAAU,SAAS,UAAU,KAAG;QAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;QAAC,WAAW,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI;0BAOnF,UAAU,eAAe,OAAO,KAAG,UAAU,GAAG,IAAI;uBAGvD,UAAU,eAAe,OAAO,KAAG,UAAU;uBAI7C,UAAU,SAAS,UAAU,eAAe,OAAO,KAAG,UAAU,GAAG,IAAI;kBAG5E,UAAU,KAAK,UAAU,eAAe,OAAO,KAAG,UAAU,GAAG,IAAI;wBAO7D,UAAU,SAAS,UAAU,eAAe,OAAO,KAAG,UAAU,GAAG,IAAI;oBAG3E,UAAU,SAAS,UAAU,KAAG,UAAU,GAAG,IAAI;uBAS9C,UAAU,KAAG,UAAU;cAEhC,UAAU,KAAK,UAAU,MAAM,UAAU,KAAG,UAAU;qBAI/C,UAAU,KAAK,UAAU,MAAK,UAAU,KAA4B,UAAU;gBAInF,UAAU,KAAK,UAAU,aAAa,UAAU,WAAW,OAAO,KAAG,OAAO;0BAKnF,UAAU,aACF,UAAU,YACX,MAAM,eACH,OAAO,KACnB,UAAU,GAAG,IAAI;uBAgBD,UAAU,KAAK,UAAU,aAAa,UAAU,KAAG,OAAO;CAG9E,CAAC;AAkEF,QAAA,MAAM,MAAM,EAAE,SAA8B,CAAC;AAC7C,QAAA,MAAM,KAAK,EAAE,QAA4B,CAAC;AAC1C,QAAA,MAAM,KAAK,EAAE,KAA4B,CAAC;AAE1C,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAE3C,OAAO,EACL,GAAG,EACH,MAAM,EACN,SAAS,EACT,aAAa,EACb,eAAe,EACf,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,KAAK,EACL,KAAK,EACL,UAAU,GACX,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,15 +1,50 @@
1
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.musig = exports.bip32 = exports.ECPair = exports.ecc = void 0;
4
- const createHmac = require("create-hmac");
36
+ exports.bip32utils = exports.musig = exports.BIP32Factory = exports.bip32 = exports.ECPairFactory = exports.ECPair = exports.ecc = void 0;
5
37
  const ecpair_1 = require("ecpair");
6
- const necc = require("@noble/secp256k1");
38
+ Object.defineProperty(exports, "ECPairFactory", { enumerable: true, get: function () { return ecpair_1.ECPairFactory; } });
39
+ const necc = __importStar(require("@noble/secp256k1"));
7
40
  const bip32_1 = require("bip32");
41
+ Object.defineProperty(exports, "BIP32Factory", { enumerable: true, get: function () { return bip32_1.BIP32Factory; } });
8
42
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
9
43
  // @ts-ignore base_crypto is exported as a subPath export, ignoring since compiler complains about importing like this
10
- const baseCrypto = require("@brandonblack/musig/base_crypto");
44
+ const baseCrypto = __importStar(require("@brandonblack/musig/base_crypto"));
11
45
  const musig_1 = require("@brandonblack/musig");
12
46
  const createHash = require('create-hash');
47
+ const createHmac = require('create-hmac');
13
48
  necc.utils.sha256Sync = (...messages) => {
14
49
  const sha256 = createHash('sha256');
15
50
  for (const message of messages)
@@ -71,7 +106,7 @@ const ecc = {
71
106
  const res = necc.utils.privateAdd(d, tweak);
72
107
  // tiny-secp256k1 returns null rather than allowing a 0 private key to be returned
73
108
  // ECPair.testEcc() requires that behavior.
74
- if (res === null || res === void 0 ? void 0 : res.every((i) => i === 0))
109
+ if (res?.every((i) => i === 0))
75
110
  return null;
76
111
  return res;
77
112
  }),
@@ -85,6 +120,21 @@ const ecc = {
85
120
  verify: (h, Q, signature, strict) => {
86
121
  return necc.verify(signature, h, Q, { strict });
87
122
  },
123
+ recoverPublicKey: (h, signature, recovery, compressed) => {
124
+ // Message hash must be exactly 32 bytes
125
+ if (h.length !== 32) {
126
+ return null;
127
+ }
128
+ // Signature must be exactly 64 bytes (r and s components)
129
+ if (signature.length !== 64) {
130
+ return null;
131
+ }
132
+ // Recovery value must be 0 or 1
133
+ if (recovery !== 0 && recovery !== 1) {
134
+ return null;
135
+ }
136
+ return throwToNull(() => necc.recoverPublicKey(h, signature, recovery, defaultTrue(compressed)));
137
+ },
88
138
  verifySchnorr: (h, Q, signature) => {
89
139
  return necc.schnorr.verifySync(signature, h, Q);
90
140
  },
@@ -163,10 +213,12 @@ const crypto = {
163
213
  return sha256.digest();
164
214
  },
165
215
  };
166
- const ECPair = ecpair_1.ECPairFactory(ecc);
216
+ const ECPair = (0, ecpair_1.ECPairFactory)(ecc);
167
217
  exports.ECPair = ECPair;
168
- const bip32 = bip32_1.BIP32Factory(ecc);
218
+ const bip32 = (0, bip32_1.BIP32Factory)(ecc);
169
219
  exports.bip32 = bip32;
170
- const musig = musig_1.MuSigFactory(crypto);
220
+ const musig = (0, musig_1.MuSigFactory)(crypto);
171
221
  exports.musig = musig;
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQTBDO0FBQzFDLG1DQUFtRTtBQUNuRSx5Q0FBeUM7QUFDekMsaUNBQStEO0FBQy9ELDZEQUE2RDtBQUM3RCxzSEFBc0g7QUFDdEgsOERBQThEO0FBQzlELCtDQUEwRDtBQUUxRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7QUFFMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLFFBQXNCLEVBQWMsRUFBRTtJQUNoRSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRO1FBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RCxPQUFPLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUN6QixDQUFDLENBQUM7QUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxDQUFDLEdBQWUsRUFBRSxHQUFHLFFBQXNCLEVBQWMsRUFBRTtJQUNyRixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwRCxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEMsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQ3hDLENBQUMsQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBZSxFQUFXLEVBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDO0FBRWxFLFNBQVMsV0FBVyxDQUFPLEVBQWM7SUFD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QUM7Q0FDRixDQUFDO0FBRUYsTUFBTSxNQUFNLEdBQWMsc0JBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUkvQix3QkFBTTtBQUhwQixNQUFNLEtBQUssR0FBYSxvQkFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBR1Esc0JBQUs7QUFGdkQsTUFBTSxLQUFLLEdBQVUsb0JBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUV5QyxzQkFBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNyZWF0ZUhtYWMgZnJvbSAnY3JlYXRlLWhtYWMnO1xuaW1wb3J0IHsgRUNQYWlyQVBJLCBFQ1BhaXJGYWN0b3J5LCBFQ1BhaXJJbnRlcmZhY2UgfSBmcm9tICdlY3BhaXInO1xuaW1wb3J0ICogYXMgbmVjYyBmcm9tICdAbm9ibGUvc2VjcDI1NmsxJztcbmltcG9ydCB7IEJJUDMyQVBJLCBCSVAzMkZhY3RvcnksIEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnYmlwMzInO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuLy8gQHRzLWlnbm9yZSBiYXNlX2NyeXB0byBpcyBleHBvcnRlZCBhcyBhIHN1YlBhdGggZXhwb3J0LCBpZ25vcmluZyBzaW5jZSBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgaW1wb3J0aW5nIGxpa2UgdGhpc1xuaW1wb3J0ICogYXMgYmFzZUNyeXB0byBmcm9tICdAYnJhbmRvbmJsYWNrL211c2lnL2Jhc2VfY3J5cHRvJztcbmltcG9ydCB7IE11U2lnLCBNdVNpZ0ZhY3RvcnkgfSBmcm9tICdAYnJhbmRvbmJsYWNrL211c2lnJztcblxuY29uc3QgY3JlYXRlSGFzaCA9IHJlcXVpcmUoJ2NyZWF0ZS1oYXNoJyk7XG5cbm5lY2MudXRpbHMuc2hhMjU2U3luYyA9ICguLi5tZXNzYWdlczogVWludDhBcnJheVtdKTogVWludDhBcnJheSA9PiB7XG4gIGNvbnN0IHNoYTI1NiA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpO1xuICBmb3IgKGNvbnN0IG1lc3NhZ2Ugb2YgbWVzc2FnZXMpIHNoYTI1Ni51cGRhdGUobWVzc2FnZSk7XG4gIHJldHVybiBzaGEyNTYuZGlnZXN0KCk7XG59O1xuXG5uZWNjLnV0aWxzLmhtYWNTaGEyNTZTeW5jID0gKGtleTogVWludDhBcnJheSwgLi4ubWVzc2FnZXM6IFVpbnQ4QXJyYXlbXSk6IFVpbnQ4QXJyYXkgPT4ge1xuICBjb25zdCBoYXNoID0gY3JlYXRlSG1hYygnc2hhMjU2JywgQnVmZmVyLmZyb20oa2V5KSk7XG4gIG1lc3NhZ2VzLmZvckVhY2goKG0pID0+IGhhc2gudXBkYXRlKG0pKTtcbiAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShoYXNoLmRpZ2VzdCgpKTtcbn07XG5cbmNvbnN0IGRlZmF1bHRUcnVlID0gKHBhcmFtPzogYm9vbGVhbik6IGJvb2xlYW4gPT4gcGFyYW0gIT09IGZhbHNlO1xuXG5mdW5jdGlvbiB0aHJvd1RvTnVsbDxUeXBlPihmbjogKCkgPT4gVHlwZSk6IFR5cGUgfCBudWxsIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZm4oKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzUG9pbnQocDogVWludDhBcnJheSwgeE9ubHk6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgaWYgKChwLmxlbmd0aCA9PT0gMzIpICE9PSB4T25seSkgcmV0dXJuIGZhbHNlO1xuICB0cnkge1xuICAgIHJldHVybiAhIW5lY2MuUG9pbnQuZnJvbUhleChwKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0b0JpZ0ludChiOiBVaW50OEFycmF5IHwgQnVmZmVyKTogYmlnaW50IHtcbiAgY29uc3QgYnVmZiA9IEJ1ZmZlci5mcm9tKGIpO1xuICBpZiAoYnVmZi5sZW5ndGggIT09IDMyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHNpemUgJHtidWZmLmxlbmd0aH0nKTtcbiAgfVxuICByZXR1cm4gQmlnSW50KGAweCR7YnVmZi50b1N0cmluZygnaGV4Jyl9YCk7XG59XG5cbmNvbnN0IGVjYyA9IHtcbiAgaXNQb2ludDogKHA6IFVpbnQ4QXJyYXkpOiBib29sZWFuID0+IGlzUG9pbnQocCwgZmFsc2UpLFxuICBpc1ByaXZhdGU6IChkOiBVaW50OEFycmF5KTogYm9vbGVhbiA9PiBuZWNjLnV0aWxzLmlzVmFsaWRQcml2YXRlS2V5KGQpLFxuICBpc1hPbmx5UG9pbnQ6IChwOiBVaW50OEFycmF5KTogYm9vbGVhbiA9PiBpc1BvaW50KHAsIHRydWUpLFxuXG4gIHhPbmx5UG9pbnRBZGRUd2VhazogKHA6IFVpbnQ4QXJyYXksIHR3ZWFrOiBVaW50OEFycmF5KTogeyBwYXJpdHk6IDAgfCAxOyB4T25seVB1YmtleTogVWludDhBcnJheSB9IHwgbnVsbCA9PlxuICAgIHRocm93VG9OdWxsKCgpID0+IHtcbiAgICAgIGNvbnN0IFAgPSBuZWNjLnV0aWxzLnBvaW50QWRkU2NhbGFyKHAsIHR3ZWFrLCB0cnVlKTtcbiAgICAgIGNvbnN0IHBhcml0eSA9IFBbMF0gJSAyID09PSAxID8gMSA6IDA7XG4gICAgICByZXR1cm4geyBwYXJpdHksIHhPbmx5UHVia2V5OiBQLnNsaWNlKDEpIH07XG4gICAgfSksXG5cbiAgcG9pbnRGcm9tU2NhbGFyOiAoc2s6IFVpbnQ4QXJyYXksIGNvbXByZXNzZWQ/OiBib29sZWFuKTogVWludDhBcnJheSB8IG51bGwgPT5cbiAgICB0aHJvd1RvTnVsbCgoKSA9PiBuZWNjLmdldFB1YmxpY0tleShzaywgZGVmYXVsdFRydWUoY29tcHJlc3NlZCkpKSxcblxuICBwb2ludENvbXByZXNzOiAocDogVWludDhBcnJheSwgY29tcHJlc3NlZD86IGJvb2xlYW4pOiBVaW50OEFycmF5ID0+IHtcbiAgICByZXR1cm4gbmVjYy5Qb2ludC5mcm9tSGV4KHApLnRvUmF3Qnl0ZXMoZGVmYXVsdFRydWUoY29tcHJlc3NlZCkpO1xuICB9LFxuXG4gIHBvaW50TXVsdGlwbHk6IChhOiBVaW50OEFycmF5LCB0d2VhazogVWludDhBcnJheSwgY29tcHJlc3NlZD86IGJvb2xlYW4pOiBVaW50OEFycmF5IHwgbnVsbCA9PlxuICAgIHRocm93VG9OdWxsKCgpID0+IG5lY2MudXRpbHMucG9pbnRNdWx0aXBseShhLCB0d2VhaywgZGVmYXVsdFRydWUoY29tcHJlc3NlZCkpKSxcblxuICBwb2ludEFkZDogKGE6IFVpbnQ4QXJyYXksIGI6IFVpbnQ4QXJyYXksIGNvbXByZXNzZWQ/OiBib29sZWFuKTogVWludDhBcnJheSB8IG51bGwgPT5cbiAgICB0aHJvd1RvTnVsbCgoKSA9PiB7XG4gICAgICBjb25zdCBBID0gbmVjYy5Qb2ludC5mcm9tSGV4KGEpO1xuICAgICAgY29uc3QgQiA9IG5lY2MuUG9pbnQuZnJvbUhleChiKTtcbiAgICAgIHJldHVybiBBLmFkZChCKS50b1Jhd0J5dGVzKGRlZmF1bHRUcnVlKGNvbXByZXNzZWQpKTtcbiAgICB9KSxcblxuICBwb2ludEFkZFNjYWxhcjogKHA6IFVpbnQ4QXJyYXksIHR3ZWFrOiBVaW50OEFycmF5LCBjb21wcmVzc2VkPzogYm9vbGVhbik6IFVpbnQ4QXJyYXkgfCBudWxsID0+XG4gICAgdGhyb3dUb051bGwoKCkgPT4gbmVjYy51dGlscy5wb2ludEFkZFNjYWxhcihwLCB0d2VhaywgZGVmYXVsdFRydWUoY29tcHJlc3NlZCkpKSxcblxuICBwcml2YXRlQWRkOiAoZDogVWludDhBcnJheSwgdHdlYWs6IFVpbnQ4QXJyYXkpOiBVaW50OEFycmF5IHwgbnVsbCA9PlxuICAgIHRocm93VG9OdWxsKCgpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IG5lY2MudXRpbHMucHJpdmF0ZUFkZChkLCB0d2Vhayk7XG4gICAgICAvLyB0aW55LXNlY3AyNTZrMSByZXR1cm5zIG51bGwgcmF0aGVyIHRoYW4gYWxsb3dpbmcgYSAwIHByaXZhdGUga2V5IHRvIGJlIHJldHVybmVkXG4gICAgICAvLyBFQ1BhaXIudGVzdEVjYygpIHJlcXVpcmVzIHRoYXQgYmVoYXZpb3IuXG4gICAgICBpZiAocmVzPy5ldmVyeSgoaSkgPT4gaSA9PT0gMCkpIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9KSxcblxuICBwcml2YXRlTmVnYXRlOiAoZDogVWludDhBcnJheSk6IFVpbnQ4QXJyYXkgPT4gbmVjYy51dGlscy5wcml2YXRlTmVnYXRlKGQpLFxuXG4gIHNpZ246IChoOiBVaW50OEFycmF5LCBkOiBVaW50OEFycmF5LCBlPzogVWludDhBcnJheSk6IFVpbnQ4QXJyYXkgPT4ge1xuICAgIHJldHVybiBuZWNjLnNpZ25TeW5jKGgsIGQsIHsgZGVyOiBmYWxzZSwgZXh0cmFFbnRyb3B5OiBlIH0pO1xuICB9LFxuXG4gIHNpZ25TY2hub3JyOiAoaDogVWludDhBcnJheSwgZDogVWludDhBcnJheSwgZTogVWludDhBcnJheSA9IEJ1ZmZlci5hbGxvYygzMiwgMHgwMCkpOiBVaW50OEFycmF5ID0+IHtcbiAgICByZXR1cm4gbmVjYy5zY2hub3JyLnNpZ25TeW5jKGgsIGQsIGUpO1xuICB9LFxuXG4gIHZlcmlmeTogKGg6IFVpbnQ4QXJyYXksIFE6IFVpbnQ4QXJyYXksIHNpZ25hdHVyZTogVWludDhBcnJheSwgc3RyaWN0PzogYm9vbGVhbik6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiBuZWNjLnZlcmlmeShzaWduYXR1cmUsIGgsIFEsIHsgc3RyaWN0IH0pO1xuICB9LFxuXG4gIHZlcmlmeVNjaG5vcnI6IChoOiBVaW50OEFycmF5LCBROiBVaW50OEFycmF5LCBzaWduYXR1cmU6IFVpbnQ4QXJyYXkpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gbmVjYy5zY2hub3JyLnZlcmlmeVN5bmMoc2lnbmF0dXJlLCBoLCBRKTtcbiAgfSxcbn07XG5cbmNvbnN0IGNyeXB0byA9IHtcbiAgLi4uYmFzZUNyeXB0byxcbiAgcG9pbnRNdWx0aXBseVVuc2FmZShwOiBVaW50OEFycmF5LCBhOiBVaW50OEFycmF5LCBjb21wcmVzczogYm9vbGVhbik6IFVpbnQ4QXJyYXkgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcHJvZHVjdCA9IG5lY2MuUG9pbnQuZnJvbUhleChwKS5tdWx0aXBseUFuZEFkZFVuc2FmZShuZWNjLlBvaW50LlpFUk8sIHRvQmlnSW50KGEpLCBCaWdJbnQoMSkpO1xuICAgICAgaWYgKCFwcm9kdWN0KSByZXR1cm4gbnVsbDtcbiAgICAgIHJldHVybiBwcm9kdWN0LnRvUmF3Qnl0ZXMoY29tcHJlc3MpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9LFxuICBwb2ludE11bHRpcGx5QW5kQWRkVW5zYWZlKHAxOiBVaW50OEFycmF5LCBhOiBVaW50OEFycmF5LCBwMjogVWludDhBcnJheSwgY29tcHJlc3M6IGJvb2xlYW4pOiBVaW50OEFycmF5IHwgbnVsbCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHAycCA9IG5lY2MuUG9pbnQuZnJvbUhleChwMik7XG4gICAgICBjb25zdCBwID0gbmVjYy5Qb2ludC5mcm9tSGV4KHAxKS5tdWx0aXBseUFuZEFkZFVuc2FmZShwMnAsIHRvQmlnSW50KGEpLCBCaWdJbnQoMSkpO1xuICAgICAgaWYgKCFwKSByZXR1cm4gbnVsbDtcbiAgICAgIHJldHVybiBwLnRvUmF3Qnl0ZXMoY29tcHJlc3MpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9LFxuICBwb2ludEFkZChhOiBVaW50OEFycmF5LCBiOiBVaW50OEFycmF5LCBjb21wcmVzczogYm9vbGVhbik6IFVpbnQ4QXJyYXkgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIG5lY2MuUG9pbnQuZnJvbUhleChhKS5hZGQobmVjYy5Qb2ludC5mcm9tSGV4KGIpKS50b1Jhd0J5dGVzKGNvbXByZXNzKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSxcbiAgcG9pbnRBZGRUd2VhayhwOiBVaW50OEFycmF5LCB0d2VhazogVWludDhBcnJheSwgY29tcHJlc3M6IGJvb2xlYW4pOiBVaW50OEFycmF5IHwgbnVsbCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IFAgPSBuZWNjLlBvaW50LmZyb21IZXgocCk7XG4gICAgICBjb25zdCB0ID0gYmFzZUNyeXB0by5yZWFkU2VjcmV0KHR3ZWFrKTtcbiAgICAgIGNvbnN0IFEgPSBuZWNjLlBvaW50LkJBU0UubXVsdGlwbHlBbmRBZGRVbnNhZmUoUCwgdCwgQmlnSW50KDEpKTtcbiAgICAgIGlmICghUSkgdGhyb3cgbmV3IEVycm9yKCdUd2Vha2VkIHBvaW50IGF0IGluZmluaXR5Jyk7XG4gICAgICByZXR1cm4gUS50b1Jhd0J5dGVzKGNvbXByZXNzKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSxcbiAgcG9pbnRDb21wcmVzcyhwOiBVaW50OEFycmF5LCBjb21wcmVzcyA9IHRydWUpOiBVaW50OEFycmF5IHtcbiAgICByZXR1cm4gbmVjYy5Qb2ludC5mcm9tSGV4KHApLnRvUmF3Qnl0ZXMoY29tcHJlc3MpO1xuICB9LFxuICBsaWZ0WChwOiBVaW50OEFycmF5KTogVWludDhBcnJheSB8IG51bGwge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbmVjYy5Qb2ludC5mcm9tSGV4KHApLnRvUmF3Qnl0ZXMoZmFsc2UpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9LFxuICBnZXRQdWJsaWNLZXkoczogVWludDhBcnJheSwgY29tcHJlc3M6IGJvb2xlYW4pOiBVaW50OEFycmF5IHwgbnVsbCB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBuZWNjLmdldFB1YmxpY0tleShzLCBjb21wcmVzcyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH0sXG4gIHRhZ2dlZEhhc2g6IG5lY2MudXRpbHMudGFnZ2VkSGFzaFN5bmMsXG4gIHNoYTI1NiguLi5tZXNzYWdlczogVWludDhBcnJheVtdKTogVWludDhBcnJheSB7XG4gICAgY29uc3Qgc2hhMjU2ID0gY3JlYXRlSGFzaCgnc2hhMjU2Jyk7XG4gICAgZm9yIChjb25zdCBtZXNzYWdlIG9mIG1lc3NhZ2VzKSBzaGEyNTYudXBkYXRlKG1lc3NhZ2UpO1xuICAgIHJldHVybiBzaGEyNTYuZGlnZXN0KCk7XG4gIH0sXG59O1xuXG5jb25zdCBFQ1BhaXI6IEVDUGFpckFQSSA9IEVDUGFpckZhY3RvcnkoZWNjKTtcbmNvbnN0IGJpcDMyOiBCSVAzMkFQSSA9IEJJUDMyRmFjdG9yeShlY2MpO1xuY29uc3QgbXVzaWc6IE11U2lnID0gTXVTaWdGYWN0b3J5KGNyeXB0byk7XG5cbmV4cG9ydCB7IGVjYywgRUNQYWlyLCBFQ1BhaXJBUEksIEVDUGFpckludGVyZmFjZSwgYmlwMzIsIEJJUDMyQVBJLCBCSVAzMkludGVyZmFjZSwgbXVzaWcsIE11U2lnIH07XG4iXX0=
222
+ const bip32utils = __importStar(require("./bip32utils"));
223
+ exports.bip32utils = bip32utils;
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQW1FO0FBNk1qRSw4RkE3TWtCLHNCQUFhLE9BNk1sQjtBQTVNZix1REFBeUM7QUFDekMsaUNBQStEO0FBK003RCw2RkEvTWlCLG9CQUFZLE9BK01qQjtBQTlNZCw2REFBNkQ7QUFDN0Qsc0hBQXNIO0FBQ3RILDRFQUE4RDtBQUM5RCwrQ0FBMEQ7QUFFMUQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzFDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUUxQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsUUFBc0IsRUFBYyxFQUFFO0lBQ2hFLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVE7UUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELE9BQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3pCLENBQUMsQ0FBQztBQUVGLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLENBQUMsR0FBZSxFQUFFLEdBQUcsUUFBc0IsRUFBYyxFQUFFO0lBQ3JGLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BELFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFB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QUFNLEtBQUssR0FBVSxJQUFBLG9CQUFZLEVBQUMsTUFBTSxDQUFDLENBQUM7QUFjeEMsc0JBQUs7QUFaUCx5REFBMkM7QUFjekMsZ0NBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFQ1BhaXJBUEksIEVDUGFpckZhY3RvcnksIEVDUGFpckludGVyZmFjZSB9IGZyb20gJ2VjcGFpcic7XG5pbXBvcnQgKiBhcyBuZWNjIGZyb20gJ0Bub2JsZS9zZWNwMjU2azEnO1xuaW1wb3J0IHsgQklQMzJBUEksIEJJUDMyRmFjdG9yeSwgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdiaXAzMic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4vLyBAdHMtaWdub3JlIGJhc2VfY3J5cHRvIGlzIGV4cG9ydGVkIGFzIGEgc3ViUGF0aCBleHBvcnQsIGlnbm9yaW5nIHNpbmNlIGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCBpbXBvcnRpbmcgbGlrZSB0aGlzXG5pbXBvcnQgKiBhcyBiYXNlQ3J5cHRvIGZyb20gJ0BicmFuZG9uYmxhY2svbXVzaWcvYmFzZV9jcnlwdG8nO1xuaW1wb3J0IHsgTXVTaWcsIE11U2lnRmFjdG9yeSB9IGZyb20gJ0BicmFuZG9uYmxhY2svbXVzaWcnO1xuXG5jb25zdCBjcmVhdGVIYXNoID0gcmVxdWlyZSgnY3JlYXRlLWhhc2gnKTtcbmNvbnN0IGNyZWF0ZUhtYWMgPSByZXF1aXJlKCdjcmVhdGUtaG1hYycpO1xuXG5uZWNjLnV0aWxzLnNoYTI1NlN5bmMgPSAoLi4ubWVzc2FnZXM6IFVpbnQ4QXJyYXlbXSk6IFVpbnQ4QXJyYXkgPT4ge1xuICBjb25zdCBzaGEyNTYgPSBjcmVhdGVIYXNoKCdzaGEyNTYnKTtcbiAgZm9yIChjb25zdCBtZXNzYWdlIG9mIG1lc3NhZ2VzKSBzaGEyNTYudXBkYXRlKG1lc3NhZ2UpO1xuICByZXR1cm4gc2hhMjU2LmRpZ2VzdCgpO1xufTtcblxubmVjYy51dGlscy5obWFjU2hhMjU2U3luYyA9IChrZXk6IFVpbnQ4QXJyYXksIC4uLm1lc3NhZ2VzOiBVaW50OEFycmF5W10pOiBVaW50OEFycmF5ID0+IHtcbiAgY29uc3QgaGFzaCA9IGNyZWF0ZUhtYWMoJ3NoYTI1NicsIEJ1ZmZlci5mcm9tKGtleSkpO1xuICBtZXNzYWdlcy5mb3JFYWNoKChtKSA9PiBoYXNoLnVwZGF0ZShtKSk7XG4gIHJldHVybiBVaW50OEFycmF5LmZyb20oaGFzaC5kaWdlc3QoKSk7XG59O1xuXG5jb25zdCBkZWZhdWx0VHJ1ZSA9IChwYXJhbT86IGJvb2xlYW4pOiBib29sZWFuID0+IHBhcmFtICE9PSBmYWxzZTtcblxuZnVuY3Rpb24gdGhyb3dUb051bGw8VHlwZT4oZm46ICgpID0+IFR5cGUpOiBUeXBlIHwgbnVsbCB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGZuKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1BvaW50KHA6IFVpbnQ4QXJyYXksIHhPbmx5OiBib29sZWFuKTogYm9vbGVhbiB7XG4gIGlmICgocC5sZW5ndGggPT09IDMyKSAhPT0geE9ubHkpIHJldHVybiBmYWxzZTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gISFuZWNjLlBvaW50LmZyb21IZXgocCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9CaWdJbnQoYjogVWludDhBcnJheSB8IEJ1ZmZlcik6IGJpZ2ludCB7XG4gIGNvbnN0IGJ1ZmYgPSBCdWZmZXIuZnJvbShiKTtcbiAgaWYgKGJ1ZmYubGVuZ3RoICE9PSAzMikge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzaXplICR7YnVmZi5sZW5ndGh9Jyk7XG4gIH1cbiAgcmV0dXJuIEJpZ0ludChgMHgke2J1ZmYudG9TdHJpbmcoJ2hleCcpfWApO1xufVxuXG5jb25zdCBlY2MgPSB7XG4gIGlzUG9pbnQ6IChwOiBVaW50OEFycmF5KTogYm9vbGVhbiA9PiBpc1BvaW50KHAsIGZhbHNlKSxcbiAgaXNQcml2YXRlOiAoZDogVWludDhBcnJheSk6IGJvb2xlYW4gPT4gbmVjYy51dGlscy5pc1ZhbGlkUHJpdmF0ZUtleShkKSxcbiAgaXNYT25seVBvaW50OiAocDogVWludDhBcnJheSk6IGJvb2xlYW4gPT4gaXNQb2ludChwLCB0cnVlKSxcblxuICB4T25seVBvaW50QWRkVHdlYWs6IChwOiBVaW50OEFycmF5LCB0d2VhazogVWludDhBcnJheSk6IHsgcGFyaXR5OiAwIHwgMTsgeE9ubHlQdWJrZXk6IFVpbnQ4QXJyYXkgfSB8IG51bGwgPT5cbiAgICB0aHJvd1RvTnVsbCgoKSA9PiB7XG4gICAgICBjb25zdCBQID0gbmVjYy51dGlscy5wb2ludEFkZFNjYWxhcihwLCB0d2VhaywgdHJ1ZSk7XG4gICAgICBjb25zdCBwYXJpdHkgPSBQWzBdICUgMiA9PT0gMSA/IDEgOiAwO1xuICAgICAgcmV0dXJuIHsgcGFyaXR5LCB4T25seVB1YmtleTogUC5zbGljZSgxKSB9O1xuICAgIH0pLFxuXG4gIHBvaW50RnJvbVNjYWxhcjogKHNrOiBVaW50OEFycmF5LCBjb21wcmVzc2VkPzogYm9vbGVhbik6IFVpbnQ4QXJyYXkgfCBudWxsID0+XG4gICAgdGhyb3dUb051bGwoKCkgPT4gbmVjYy5nZXRQdWJsaWNLZXkoc2ssIGRlZmF1bHRUcnVlKGNvbXByZXNzZWQpKSksXG5cbiAgcG9pbnRDb21wcmVzczogKHA6IFVpbnQ4QXJyYXksIGNvbXByZXNzZWQ/OiBib29sZWFuKTogVWludDhBcnJheSA9PiB7XG4gICAgcmV0dXJuIG5lY2MuUG9pbnQuZnJvbUhleChwKS50b1Jhd0J5dGVzKGRlZmF1bHRUcnVlKGNvbXByZXNzZWQpKTtcbiAgfSxcblxuICBwb2ludE11bHRpcGx5OiAoYTogVWludDhBcnJheSwgdHdlYWs6IFVpbnQ4QXJyYXksIGNvbXByZXNzZWQ/OiBib29sZWFuKTogVWludDhBcnJheSB8IG51bGwgPT5cbiAgICB0aHJvd1RvTnVsbCgoKSA9PiBuZWNjLnV0aWxzLnBvaW50TXVsdGlwbHkoYSwgdHdlYWssIGRlZmF1bHRUcnVlKGNvbXByZXNzZWQpKSksXG5cbiAgcG9pbnRBZGQ6IChhOiBVaW50OEFycmF5LCBiOiBVaW50OEFycmF5LCBjb21wcmVzc2VkPzogYm9vbGVhbik6IFVpbnQ4QXJyYXkgfCBudWxsID0+XG4gICAgdGhyb3dUb051bGwoKCkgPT4ge1xuICAgICAgY29uc3QgQSA9IG5lY2MuUG9pbnQuZnJvbUhleChhKTtcbiAgICAgIGNvbnN0IEIgPSBuZWNjLlBvaW50LmZyb21IZXgoYik7XG4gICAgICByZXR1cm4gQS5hZGQoQikudG9SYXdCeXRlcyhkZWZhdWx0VHJ1ZShjb21wcmVzc2VkKSk7XG4gICAgfSksXG5cbiAgcG9pbnRBZGRTY2FsYXI6IChwOiBVaW50OEFycmF5LCB0d2VhazogVWludDhBcnJheSwgY29tcHJlc3NlZD86IGJvb2xlYW4pOiBVaW50OEFycmF5IHwgbnVsbCA9PlxuICAgIHRocm93VG9OdWxsKCgpID0+IG5lY2MudXRpbHMucG9pbnRBZGRTY2FsYXIocCwgdHdlYWssIGRlZmF1bHRUcnVlKGNvbXByZXNzZWQpKSksXG5cbiAgcHJpdmF0ZUFkZDogKGQ6IFVpbnQ4QXJyYXksIHR3ZWFrOiBVaW50OEFycmF5KTogVWludDhBcnJheSB8IG51bGwgPT5cbiAgICB0aHJvd1RvTnVsbCgoKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBuZWNjLnV0aWxzLnByaXZhdGVBZGQoZCwgdHdlYWspO1xuICAgICAgLy8gdGlueS1zZWNwMjU2azEgcmV0dXJucyBudWxsIHJhdGhlciB0aGFuIGFsbG93aW5nIGEgMCBwcml2YXRlIGtleSB0byBiZSByZXR1cm5lZFxuICAgICAgLy8gRUNQYWlyLnRlc3RFY2MoKSByZXF1aXJlcyB0aGF0IGJlaGF2aW9yLlxuICAgICAgaWYgKHJlcz8uZXZlcnkoKGkpID0+IGkgPT09IDApKSByZXR1cm4gbnVsbDtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSksXG5cbiAgcHJpdmF0ZU5lZ2F0ZTogKGQ6IFVpbnQ4QXJyYXkpOiBVaW50OEFycmF5ID0+IG5lY2MudXRpbHMucHJpdmF0ZU5lZ2F0ZShkKSxcblxuICBzaWduOiAoaDogVWludDhBcnJheSwgZDogVWludDhBcnJheSwgZT86IFVpbnQ4QXJyYXkpOiBVaW50OEFycmF5ID0+IHtcbiAgICByZXR1cm4gbmVjYy5zaWduU3luYyhoLCBkLCB7IGRlcjogZmFsc2UsIGV4dHJhRW50cm9weTogZSB9KTtcbiAgfSxcblxuICBzaWduU2Nobm9ycjogKGg6IFVpbnQ4QXJyYXksIGQ6IFVpbnQ4QXJyYXksIGU6IFVpbnQ4QXJyYXkgPSBCdWZmZXIuYWxsb2MoMzIsIDB4MDApKTogVWludDhBcnJheSA9PiB7XG4gICAgcmV0dXJuIG5lY2Muc2Nobm9yci5zaWduU3luYyhoLCBkLCBlKTtcbiAgfSxcblxuICB2ZXJpZnk6IChoOiBVaW50OEFycmF5LCBROiBVaW50OEFycmF5LCBzaWduYXR1cmU6IFVpbnQ4QXJyYXksIHN0cmljdD86IGJvb2xlYW4pOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gbmVjYy52ZXJpZnkoc2lnbmF0dXJlLCBoLCBRLCB7IHN0cmljdCB9KTtcbiAgfSxcblxuICByZWNvdmVyUHVibGljS2V5OiAoXG4gICAgaDogVWludDhBcnJheSxcbiAgICBzaWduYXR1cmU6IFVpbnQ4QXJyYXksXG4gICAgcmVjb3Zlcnk6IG51bWJlcixcbiAgICBjb21wcmVzc2VkPzogYm9vbGVhblxuICApOiBVaW50OEFycmF5IHwgbnVsbCA9PiB7XG4gICAgLy8gTWVzc2FnZSBoYXNoIG11c3QgYmUgZXhhY3RseSAzMiBieXRlc1xuICAgIGlmIChoLmxlbmd0aCAhPT0gMzIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICAvLyBTaWduYXR1cmUgbXVzdCBiZSBleGFjdGx5IDY0IGJ5dGVzIChyIGFuZCBzIGNvbXBvbmVudHMpXG4gICAgaWYgKHNpZ25hdHVyZS5sZW5ndGggIT09IDY0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgLy8gUmVjb3ZlcnkgdmFsdWUgbXVzdCBiZSAwIG9yIDFcbiAgICBpZiAocmVjb3ZlcnkgIT09IDAgJiYgcmVjb3ZlcnkgIT09IDEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhyb3dUb051bGwoKCkgPT4gbmVjYy5yZWNvdmVyUHVibGljS2V5KGgsIHNpZ25hdHVyZSwgcmVjb3ZlcnksIGRlZmF1bHRUcnVlKGNvbXByZXNzZWQpKSk7XG4gIH0sXG5cbiAgdmVyaWZ5U2Nobm9ycjogKGg6IFVpbnQ4QXJyYXksIFE6IFVpbnQ4QXJyYXksIHNpZ25hdHVyZTogVWludDhBcnJheSk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiBuZWNjLnNjaG5vcnIudmVyaWZ5U3luYyhzaWduYXR1cmUsIGgsIFEpO1xuICB9LFxufTtcblxuY29uc3QgY3J5cHRvID0ge1xuICAuLi5iYXNlQ3J5cHRvLFxuICBwb2ludE11bHRpcGx5VW5zYWZlKHA6IFVpbnQ4QXJyYXksIGE6IFVpbnQ4QXJyYXksIGNvbXByZXNzOiBib29sZWFuKTogVWludDhBcnJheSB8IG51bGwge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwcm9kdWN0ID0gbmVjYy5Qb2ludC5mcm9tSGV4KHApLm11bHRpcGx5QW5kQWRkVW5zYWZlKG5lY2MuUG9pbnQuWkVSTywgdG9CaWdJbnQoYSksIEJpZ0ludCgxKSk7XG4gICAgICBpZiAoIXByb2R1Y3QpIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIHByb2R1Y3QudG9SYXdCeXRlcyhjb21wcmVzcyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH0sXG4gIHBvaW50TXVsdGlwbHlBbmRBZGRVbnNhZmUocDE6IFVpbnQ4QXJyYXksIGE6IFVpbnQ4QXJyYXksIHAyOiBVaW50OEFycmF5LCBjb21wcmVzczogYm9vbGVhbik6IFVpbnQ4QXJyYXkgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcDJwID0gbmVjYy5Qb2ludC5mcm9tSGV4KHAyKTtcbiAgICAgIGNvbnN0IHAgPSBuZWNjLlBvaW50LmZyb21IZXgocDEpLm11bHRpcGx5QW5kQWRkVW5zYWZlKHAycCwgdG9CaWdJbnQoYSksIEJpZ0ludCgxKSk7XG4gICAgICBpZiAoIXApIHJldHVybiBudWxsO1xuICAgICAgcmV0dXJuIHAudG9SYXdCeXRlcyhjb21wcmVzcyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH0sXG4gIHBvaW50QWRkKGE6IFVpbnQ4QXJyYXksIGI6IFVpbnQ4QXJyYXksIGNvbXByZXNzOiBib29sZWFuKTogVWludDhBcnJheSB8IG51bGwge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbmVjYy5Qb2ludC5mcm9tSGV4KGEpLmFkZChuZWNjLlBvaW50LmZyb21IZXgoYikpLnRvUmF3Qnl0ZXMoY29tcHJlc3MpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9LFxuICBwb2ludEFkZFR3ZWFrKHA6IFVpbnQ4QXJyYXksIHR3ZWFrOiBVaW50OEFycmF5LCBjb21wcmVzczogYm9vbGVhbik6IFVpbnQ4QXJyYXkgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgUCA9IG5lY2MuUG9pbnQuZnJvbUhleChwKTtcbiAgICAgIGNvbnN0IHQgPSBiYXNlQ3J5cHRvLnJlYWRTZWNyZXQodHdlYWspO1xuICAgICAgY29uc3QgUSA9IG5lY2MuUG9pbnQuQkFTRS5tdWx0aXBseUFuZEFkZFVuc2FmZShQLCB0LCBCaWdJbnQoMSkpO1xuICAgICAgaWYgKCFRKSB0aHJvdyBuZXcgRXJyb3IoJ1R3ZWFrZWQgcG9pbnQgYXQgaW5maW5pdHknKTtcbiAgICAgIHJldHVybiBRLnRvUmF3Qnl0ZXMoY29tcHJlc3MpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9LFxuICBwb2ludENvbXByZXNzKHA6IFVpbnQ4QXJyYXksIGNvbXByZXNzID0gdHJ1ZSk6IFVpbnQ4QXJyYXkge1xuICAgIHJldHVybiBuZWNjLlBvaW50LmZyb21IZXgocCkudG9SYXdCeXRlcyhjb21wcmVzcyk7XG4gIH0sXG4gIGxpZnRYKHA6IFVpbnQ4QXJyYXkpOiBVaW50OEFycmF5IHwgbnVsbCB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBuZWNjLlBvaW50LmZyb21IZXgocCkudG9SYXdCeXRlcyhmYWxzZSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH0sXG4gIGdldFB1YmxpY0tleShzOiBVaW50OEFycmF5LCBjb21wcmVzczogYm9vbGVhbik6IFVpbnQ4QXJyYXkgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIG5lY2MuZ2V0UHVibGljS2V5KHMsIGNvbXByZXNzKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSxcbiAgdGFnZ2VkSGFzaDogbmVjYy51dGlscy50YWdnZWRIYXNoU3luYyxcbiAgc2hhMjU2KC4uLm1lc3NhZ2VzOiBVaW50OEFycmF5W10pOiBVaW50OEFycmF5IHtcbiAgICBjb25zdCBzaGEyNTYgPSBjcmVhdGVIYXNoKCdzaGEyNTYnKTtcbiAgICBmb3IgKGNvbnN0IG1lc3NhZ2Ugb2YgbWVzc2FnZXMpIHNoYTI1Ni51cGRhdGUobWVzc2FnZSk7XG4gICAgcmV0dXJuIHNoYTI1Ni5kaWdlc3QoKTtcbiAgfSxcbn07XG5cbmNvbnN0IEVDUGFpcjogRUNQYWlyQVBJID0gRUNQYWlyRmFjdG9yeShlY2MpO1xuY29uc3QgYmlwMzI6IEJJUDMyQVBJID0gQklQMzJGYWN0b3J5KGVjYyk7XG5jb25zdCBtdXNpZzogTXVTaWcgPSBNdVNpZ0ZhY3RvcnkoY3J5cHRvKTtcblxuaW1wb3J0ICogYXMgYmlwMzJ1dGlscyBmcm9tICcuL2JpcDMydXRpbHMnO1xuXG5leHBvcnQge1xuICBlY2MsXG4gIEVDUGFpcixcbiAgRUNQYWlyQVBJLFxuICBFQ1BhaXJGYWN0b3J5LFxuICBFQ1BhaXJJbnRlcmZhY2UsXG4gIGJpcDMyLFxuICBCSVAzMkFQSSxcbiAgQklQMzJGYWN0b3J5LFxuICBCSVAzMkludGVyZmFjZSxcbiAgbXVzaWcsXG4gIE11U2lnLFxuICBiaXAzMnV0aWxzLFxufTtcbiJdfQ==
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@bitgo-beta/secp256k1",
3
- "version": "1.0.2-beta.200",
3
+ "version": "1.0.2-beta.2000",
4
4
  "description": "Low-level cryptographic methods used in BitGo packages for the secp256k1 curve",
5
5
  "main": "./dist/src/index.js",
6
6
  "engines": {
7
- "node": ">=10.22.0 <21",
7
+ "node": ">=20",
8
8
  "npm": ">=3.10.10"
9
9
  },
10
10
  "keywords": [
@@ -34,13 +34,14 @@
34
34
  "@brandonblack/musig": "^0.0.1-alpha.0",
35
35
  "@noble/secp256k1": "1.6.3",
36
36
  "bip32": "^3.0.1",
37
+ "bitcoinjs-message": "npm:@bitgo-forks/bitcoinjs-message@1.0.0-master.3",
38
+ "bs58check": "^2.1.2",
37
39
  "create-hash": "^1.2.0",
38
40
  "create-hmac": "^1.1.7",
39
41
  "ecpair": "npm:@bitgo/ecpair@2.1.0-rc.0"
40
42
  },
41
43
  "devDependencies": {
42
- "@types/elliptic": "^6.4.12",
43
- "@types/node": "^16.18.46"
44
+ "@types/node": "^24.10.9"
44
45
  },
45
46
  "lint-staged": {
46
47
  "*.{js,ts}": [
@@ -53,5 +54,5 @@
53
54
  },
54
55
  "author": "BitGo SDK Team <sdkteam@bitgo.com>",
55
56
  "license": "MIT",
56
- "gitHead": "2ef3d9afc8b90d318d85859d8c10fa9ca6ce0e4c"
57
+ "gitHead": "ee271ff79df8c10d4d331e31bc43241a3bc3ae66"
57
58
  }