@exodus/bip322-js 1.1.0-exodus.0 → 1.1.0-exodus.2
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/README.md +1 -8
- package/dist/Signer.d.ts +2 -2
- package/dist/Signer.js +5 -5
- package/dist/Signer.js.map +1 -1
- package/dist/Verifier.js +3 -3
- package/dist/Verifier.js.map +1 -1
- package/dist/helpers/BIP137.js +2 -5
- package/dist/helpers/BIP137.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -5,14 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
A Javascript library that provides utility functions related to the BIP-322 signature scheme.
|
|
7
7
|
**This is a fork of https://github.com/ACken2/bip322-js with dependencies change in order to reduce audit load.**
|
|
8
|
-
No API changes present at the moment.
|
|
9
|
-
|
|
10
|
-
## Current status
|
|
11
|
-
|
|
12
|
-
**What else can be improved**:
|
|
13
|
-
- We decided to keep using `bitcoinjs-lib` and take an audit from scratch. ~~Update `@exodus/bitcoinjs-lib` so that the skipped tests in `Verifier.test.js` work.
|
|
14
|
-
A description of the existing challenges available in https://exodusio.slack.com/archives/C05DQN4DW4D/p1695295752637329.~~
|
|
15
|
-
- Replace `@bitcoinerlab/secp256k1` with an audited library.
|
|
8
|
+
No breaking API changes present at the moment.
|
|
16
9
|
|
|
17
10
|
## Limitations
|
|
18
11
|
|
package/dist/Signer.d.ts
CHANGED
|
@@ -7,13 +7,13 @@ import * as bitcoin from 'bitcoinjs-lib';
|
|
|
7
7
|
declare class Signer {
|
|
8
8
|
/**
|
|
9
9
|
* Sign a BIP-322 signature from P2WPKH, P2SH-P2WPKH, and single-key-spend P2TR address and its corresponding private key.
|
|
10
|
-
* @param
|
|
10
|
+
* @param privateKeyOrWIF
|
|
11
11
|
* @param address Address to be signing the message
|
|
12
12
|
* @param message message_challenge to be signed by the address
|
|
13
13
|
* @param network Network that the address is located, defaults to the Bitcoin mainnet
|
|
14
14
|
* @returns BIP-322 simple signature, encoded in base-64
|
|
15
15
|
*/
|
|
16
|
-
static sign(
|
|
16
|
+
static sign(privateKeyOrWIF: string | Buffer, address: string, message: string, network?: bitcoin.Network): string | Buffer;
|
|
17
17
|
/**
|
|
18
18
|
* Check if a given public key is the public key for a claimed address.
|
|
19
19
|
* @param publicKey Public key to be tested
|
package/dist/Signer.js
CHANGED
|
@@ -31,7 +31,7 @@ const BIP322_1 = __importDefault(require("./BIP322"));
|
|
|
31
31
|
const ecpair_1 = __importDefault(require("ecpair"));
|
|
32
32
|
const helpers_1 = require("./helpers");
|
|
33
33
|
const bitcoin = __importStar(require("bitcoinjs-lib"));
|
|
34
|
-
const
|
|
34
|
+
const bitcoinerlab_secp256k1_1 = __importDefault(require("@exodus/bitcoinerlab-secp256k1"));
|
|
35
35
|
const bitcoinMessage = __importStar(require("bitcoinjs-message"));
|
|
36
36
|
/**
|
|
37
37
|
* Class that signs BIP-322 signature using a private key.
|
|
@@ -40,16 +40,16 @@ const bitcoinMessage = __importStar(require("bitcoinjs-message"));
|
|
|
40
40
|
class Signer {
|
|
41
41
|
/**
|
|
42
42
|
* Sign a BIP-322 signature from P2WPKH, P2SH-P2WPKH, and single-key-spend P2TR address and its corresponding private key.
|
|
43
|
-
* @param
|
|
43
|
+
* @param privateKeyOrWIF
|
|
44
44
|
* @param address Address to be signing the message
|
|
45
45
|
* @param message message_challenge to be signed by the address
|
|
46
46
|
* @param network Network that the address is located, defaults to the Bitcoin mainnet
|
|
47
47
|
* @returns BIP-322 simple signature, encoded in base-64
|
|
48
48
|
*/
|
|
49
|
-
static sign(
|
|
49
|
+
static sign(privateKeyOrWIF, address, message, network = bitcoin.networks.bitcoin) {
|
|
50
50
|
// Initialize private key used to sign the transaction
|
|
51
|
-
const ECPair = (0, ecpair_1.default)(
|
|
52
|
-
let signer = ECPair.fromWIF(
|
|
51
|
+
const ECPair = (0, ecpair_1.default)(bitcoinerlab_secp256k1_1.default);
|
|
52
|
+
let signer = Buffer.isBuffer(privateKeyOrWIF) ? ECPair.fromPrivateKey(privateKeyOrWIF) : ECPair.fromWIF(privateKeyOrWIF, network);
|
|
53
53
|
// Check if the private key can sign message for the given address
|
|
54
54
|
if (!this.checkPubKeyCorrespondToAddress(signer.publicKey, address)) {
|
|
55
55
|
throw new Error(`Invalid private key provided for signing message for ${address}.`);
|
package/dist/Signer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Signer.js","sourceRoot":"","sources":["../src/Signer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sBAAsB;AACtB,sDAA8B;AAC9B,oDAAmC;AACnC,uCAAoC;AACpC,uDAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"Signer.js","sourceRoot":"","sources":["../src/Signer.ts"],"names":[],"mappings":"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"}
|
package/dist/Verifier.js
CHANGED
|
@@ -30,7 +30,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
30
30
|
const BIP322_1 = __importDefault(require("./BIP322"));
|
|
31
31
|
const helpers_1 = require("./helpers");
|
|
32
32
|
const bitcoin = __importStar(require("bitcoinjs-lib"));
|
|
33
|
-
const
|
|
33
|
+
const bitcoinerlab_secp256k1_1 = __importDefault(require("@exodus/bitcoinerlab-secp256k1"));
|
|
34
34
|
const bitcoinMessage = __importStar(require("bitcoinjs-message"));
|
|
35
35
|
const bitcoinjs_1 = require("./bitcoinjs");
|
|
36
36
|
/**
|
|
@@ -100,7 +100,7 @@ class Verifier {
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
// Computing OP_CHECKSIG in Javascript
|
|
103
|
-
return
|
|
103
|
+
return bitcoinerlab_secp256k1_1.default.verify(hashToSign, publicKey, signature);
|
|
104
104
|
}
|
|
105
105
|
else if (helpers_1.Address.isP2TR(signerAddress)) {
|
|
106
106
|
// Check if the witness stack correspond to a single-key-spend P2TR address
|
|
@@ -130,7 +130,7 @@ class Verifier {
|
|
|
130
130
|
throw new Error('Invalid Schnorr signature provided.');
|
|
131
131
|
}
|
|
132
132
|
// Computing OP_CHECKSIG in Javascript
|
|
133
|
-
return
|
|
133
|
+
return bitcoinerlab_secp256k1_1.default.verifySchnorr(hashToSign, publicKey, signature);
|
|
134
134
|
}
|
|
135
135
|
else {
|
|
136
136
|
throw new Error('Only P2WPKH, P2SH-P2WPKH, and single-key-spend P2TR BIP-322 verification is supported. Unsupported address is provided.');
|
package/dist/Verifier.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Verifier.js","sourceRoot":"","sources":["../src/Verifier.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sBAAsB;AACtB,sDAA8B;AAC9B,uCAA4C;AAC5C,uDAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"Verifier.js","sourceRoot":"","sources":["../src/Verifier.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sBAAsB;AACtB,sDAA8B;AAC9B,uCAA4C;AAC5C,uDAAyC;AACzC,4FAAiD;AACjD,kEAAoD;AACpD,2CAAoD;AAEpD;;;GAGG;AACH,MAAM,QAAQ;IAEV;;;;;;;OAOG;IACI,MAAM,CAAC,eAAe,CAAC,aAAqB,EAAE,OAAe,EAAE,eAAuB;QACzF,kCAAkC;QAClC,qEAAqE;QACrE,IAAI,iBAAO,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,gBAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE;YAC7E,OAAO,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;SAC9E;QACD,mDAAmD;QACnD,MAAM,YAAY,GAAG,iBAAO,CAAC,2BAA2B,CAAC,aAAa,CAAC,CAAC;QACxE,yFAAyF;QACzF,MAAM,SAAS,GAAG,gBAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,gBAAM,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,YAAY,CAAC,CAAC;QACvE,0CAA0C;QAC1C,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE;YACpB,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC;SAC7D,CAAC,CAAC;QACH,qDAAqD;QACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC7D,MAAM,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACpC,wFAAwF;QACxF,IAAI,iBAAO,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;YAClC,oGAAoG;YACpG,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,iCAAqB,EAAC,gBAAgB,CAAC,CAAC;YAC9D,gCAAgC;YAChC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACvD,uBAAuB;YACvB,IAAI,UAAkB,CAAC,CAAC,oDAAoD;YAC5E,IAAI,iBAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;gBAC/B,gCAAgC;gBAChC,mDAAmD;gBACnD,UAAU,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBACpE,mEAAmE;gBACnE,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,YAAY,CAAE,CAAC,CAAC;gBACjF,oCAAoC;gBACpC,MAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAClE,qJAAqJ;gBACrJ,MAAM,iCAAiC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvE,4EAA4E;gBAC5E,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,iCAAiC,CAAC,KAAK,CAAC,EAAE;oBAC9E,OAAO,KAAK,CAAC,CAAC,gHAAgH;iBACjI;aACJ;iBACI;gBACD,2BAA2B;gBAC3B,mDAAmD;gBACnD,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;gBAChD,qGAAqG;gBACrG,MAAM,0BAA0B,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC5D,gEAAgE;gBAChE,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,0BAA0B,CAAC,KAAK,CAAC,EAAE;oBAChE,OAAO,KAAK,CAAC,CAAC,0DAA0D;iBAC3E;aACJ;YACD,sCAAsC;YACtC,OAAO,gCAAG,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;SACvD;aACI,IAAI,iBAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;YACpC,2EAA2E;YAC3E,IAAI,CAAC,iBAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE;gBAC1C,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;aAClF;YACD,qGAAqG;YACrG,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3C,uDAAuD;YACvD,wIAAwI;YACxI,IAAI,UAAkB,CAAC;YACvB,IAAI,SAAiB,CAAC;YACtB,IAAI,gBAAgB,CAAC,UAAU,KAAK,EAAE,EAAE;gBACpC,0FAA0F;gBAC1F,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACpD,oEAAoE;gBACpE,SAAS,GAAG,gBAAgB,CAAC;aAChC;iBACI,IAAI,gBAAgB,CAAC,UAAU,KAAK,EAAE,EAAE;gBACzC,uHAAuH;gBACvH,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpE,wDAAwD;gBACxD,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAChD;iBACI;gBACD,yDAAyD;gBACzD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;aAC1D;YACD,sCAAsC;YACtC,OAAO,gCAAG,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;SAC9D;aACI;YACD,MAAM,IAAI,KAAK,CAAC,yHAAyH,CAAC,CAAC;SAC9I;IACL,CAAC;IAED;;;;;;;;OAQG;IACK,MAAM,CAAC,qBAAqB,CAAC,aAAqB,EAAE,OAAe,EAAE,eAAuB;QAChG,IAAI,iBAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;YAChC,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;SACzE;aACI;YACD,uDAAuD;YACvD,MAAM,eAAe,GAAG,gBAAM,CAAC,YAAY,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YACtE,qFAAqF;YACrF,MAAM,oBAAoB,GAAG,iBAAO,CAAC,wBAAwB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC;YAChG,iFAAiF;YACjF,IAAI,iBAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;gBAC/B,qGAAqG;gBACrG,MAAM,kBAAkB,GAAG,iBAAO,CAAC,wBAAwB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;gBAC5F,8EAA8E;gBAC9E,IAAI,kBAAkB,CAAC,OAAO,KAAK,aAAa,IAAI,kBAAkB,CAAC,OAAO,KAAK,aAAa,EAAE;oBAC9F,OAAO,KAAK,CAAC,CAAC,iEAAiE;iBAClF;aACJ;iBACI,IAAI,iBAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;gBACtC,2FAA2F;gBAC3F,MAAM,oBAAoB,GAAG,iBAAO,CAAC,wBAAwB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;gBACzF,8EAA8E;gBAC9E,IAAI,oBAAoB,CAAC,OAAO,KAAK,aAAa,IAAI,oBAAoB,CAAC,OAAO,KAAK,aAAa,EAAE;oBAClG,OAAO,KAAK,CAAC,CAAC,iEAAiE;iBAClF;aACJ;iBACI,IAAI,iBAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;gBACpC,uFAAuF;gBACvF,MAAM,kBAAkB,GAAG,iBAAO,CAAC,wBAAwB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;gBACrF,8EAA8E;gBAC9E,IAAI,kBAAkB,CAAC,OAAO,KAAK,aAAa,IAAI,kBAAkB,CAAC,OAAO,KAAK,aAAa,EAAE;oBAC9F,OAAO,KAAK,CAAC,CAAC,iEAAiE;iBAClF;aACJ;iBACI;gBACD,OAAO,KAAK,CAAC,CAAC,2BAA2B;aAC5C;YACD,gFAAgF;YAChF,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAC;SAChF;IACL,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,mBAAmB,CAAC,QAAsB;QACrD,kFAAkF;QAClF,2HAA2H;QAC3H,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YACzC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC/D,CAAC,CAAC,MAAM,CAAC;QACV,iDAAiD;QACjD,OAAO,QAAQ,CAAC,kBAAkB,EAAE,CAAC,gBAAgB,CACjD,CAAC,EACD,aAAa,EACb,CAAC,EACD,OAAO,CAAC,WAAW,CAAC,WAAW,CAClC,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,yBAAyB,CAAC,QAAsB,EAAE,YAAoB;QACjF,kFAAkF;QAClF,2HAA2H;QAC3H,+GAA+G;QAC/G,4EAA4E;QAC5E,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YACzC,IAAI,EAAE,YAAY;SACrB,CAAC,CAAC,MAAM,CAAC;QACV,iDAAiD;QACjD,OAAO,QAAQ,CAAC,kBAAkB,EAAE,CAAC,gBAAgB,CACjD,CAAC,EACD,aAAa,EACb,CAAC,EACD,OAAO,CAAC,WAAW,CAAC,WAAW,CAClC,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,iBAAiB,CAAC,QAAsB,EAAE,QAAgB;QACrE,qEAAqE;QACrE,yGAAyG;QACzG,IAAI,QAAQ,KAAK,OAAO,CAAC,WAAW,CAAC,eAAe,IAAI,QAAQ,KAAK,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE;YAClG,oEAAoE;YACpE,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;SACxG;QACD,gDAAgD;QAChD,OAAO,QAAQ,CAAC,kBAAkB,EAAE,CAAC,gBAAgB,CACjD,CAAC,EACD,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,EAC5C,CAAC,CAAC,CAAC,EACH,QAAQ,CACX,CAAC;IACN,CAAC;CAEJ;AAED,kBAAe,QAAQ,CAAC"}
|
package/dist/helpers/BIP137.js
CHANGED
|
@@ -22,12 +22,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
26
|
// Import dependencies
|
|
30
|
-
const secp256k1_1 =
|
|
27
|
+
const secp256k1_1 = require("@noble/secp256k1");
|
|
31
28
|
const bitcoinMessage = __importStar(require("bitcoinjs-message"));
|
|
32
29
|
/**
|
|
33
30
|
* Class that implement BIP137-related utility functions.
|
|
@@ -60,7 +57,7 @@ class BIP137 {
|
|
|
60
57
|
// Decode the provided BIP-137 signature
|
|
61
58
|
const signatureDecoded = this.decodeSignature(Buffer.from(signature, 'base64'));
|
|
62
59
|
// Recover the public key
|
|
63
|
-
return Buffer.from(secp256k1_1.
|
|
60
|
+
return Buffer.from((0, secp256k1_1.recoverPublicKey)(messageHash, signatureDecoded.signature, signatureDecoded.recovery, signatureDecoded.compressed));
|
|
64
61
|
}
|
|
65
62
|
/**
|
|
66
63
|
* Decode a BIP-137 signature.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BIP137.js","sourceRoot":"","sources":["../../src/helpers/BIP137.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BIP137.js","sourceRoot":"","sources":["../../src/helpers/BIP137.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sBAAsB;AACtB,gDAAoD;AACpD,kEAAoD;AAEpD;;GAEG;AACH,MAAM,MAAM;IAER;;;;OAIG;IACI,MAAM,CAAC,iBAAiB,CAAC,SAAiB;QAC7C,+EAA+E;QAC/E,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACzD,IAAI,eAAe,CAAC,UAAU,KAAK,EAAE,EAAE;YACnC,OAAO,IAAI,CAAC;SACf;aACI;YACD,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,YAAY,CAAC,OAAe,EAAE,SAAiB;QACzD,wCAAwC;QACxC,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACtD,wCAAwC;QACxC,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChF,yBAAyB;QACzB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAA,4BAAgB,EAAC,WAAW,EAAE,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1I,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,eAAe,CAAC,SAAiB;QAC5C,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC7C,IAAI,QAAQ,GAAG,EAAE,IAAI,QAAQ,GAAG,CAAC,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAClD;QACD,OAAO;YACH,UAAU,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC;YAC7B,QAAQ,EAAE,QAAQ,GAAG,CAAC;YACtB,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;SACnC,CAAA;IACL,CAAC;CAEJ;AAED,kBAAe,MAAM,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -39,7 +39,7 @@ Object.defineProperty(exports, "Witness", { enumerable: true, get: function () {
|
|
|
39
39
|
Object.defineProperty(exports, "Address", { enumerable: true, get: function () { return helpers_1.Address; } });
|
|
40
40
|
Object.defineProperty(exports, "BIP137", { enumerable: true, get: function () { return helpers_1.BIP137; } });
|
|
41
41
|
// Provide a ECC library to bitcoinjs-lib
|
|
42
|
-
const
|
|
42
|
+
const bitcoinerlab_secp256k1_1 = __importDefault(require("@exodus/bitcoinerlab-secp256k1"));
|
|
43
43
|
const bitcoin = __importStar(require("bitcoinjs-lib"));
|
|
44
|
-
bitcoin.initEccLib(
|
|
44
|
+
bitcoin.initEccLib(bitcoinerlab_secp256k1_1.default);
|
|
45
45
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gCAAgC;AAChC,sDAA8B;AAWrB,iBAXF,gBAAM,CAWE;AAVf,sDAA8B;AAUb,iBAVV,gBAAM,CAUU;AATvB,0DAAkC;AAST,mBATlB,kBAAQ,CASkB;AARjC,uCAAqD;AAQlB,wFAR1B,iBAAO,OAQ0B;AAAE,wFAR1B,iBAAO,OAQ0B;AAAE,uFAR1B,gBAAM,OAQ0B;AAN3D,yCAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gCAAgC;AAChC,sDAA8B;AAWrB,iBAXF,gBAAM,CAWE;AAVf,sDAA8B;AAUb,iBAVV,gBAAM,CAUU;AATvB,0DAAkC;AAST,mBATlB,kBAAQ,CASkB;AARjC,uCAAqD;AAQlB,wFAR1B,iBAAO,OAQ0B;AAAE,wFAR1B,iBAAO,OAQ0B;AAAE,uFAR1B,gBAAM,OAQ0B;AAN3D,yCAAyC;AACzC,4FAAiD;AACjD,uDAAyC;AACzC,OAAO,CAAC,UAAU,CAAC,gCAAG,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exodus/bip322-js",
|
|
3
|
-
"version": "1.1.0-exodus.
|
|
3
|
+
"version": "1.1.0-exodus.2",
|
|
4
4
|
"description": "A Javascript library that provides utility functions related to the BIP-322 signature scheme",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"typescript": "^5.1.3"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@bitcoinerlab
|
|
42
|
-
"@
|
|
41
|
+
"@exodus/bitcoinerlab-secp256k1": "^1.0.5-exodus.1",
|
|
42
|
+
"@noble/secp256k1": "^1.7.1",
|
|
43
43
|
"bitcoinjs-lib": "^6.1.1",
|
|
44
44
|
"bitcoinjs-message": "^2.2.0",
|
|
45
45
|
"ecpair": "^2.0.1"
|