@exodus/bip322-js 1.2.1 → 2.0.1

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/CHANGELOG.md CHANGED
@@ -3,6 +3,21 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [2.0.1](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/bip322-js@2.0.0...@exodus/bip322-js@2.0.1) (2025-01-05)
7
+
8
+ **Note:** Version bump only for package @exodus/bip322-js
9
+
10
+ ## [2.0.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/bip322-js@1.2.1...@exodus/bip322-js@2.0.0) (2024-10-29)
11
+
12
+ ### ⚠ BREAKING CHANGES
13
+
14
+ - drop unused exports from bip322 (#10142)
15
+
16
+ ### Features
17
+
18
+ - **bip322-js:** use exodus/crypto for crypto primitives ([#10172](https://github.com/ExodusMovement/exodus-hydra/issues/10172)) ([f16b453](https://github.com/ExodusMovement/exodus-hydra/commit/f16b45339620de7460fd5c29c0942c4e7bfd7492))
19
+ - drop unused exports from bip322 ([#10142](https://github.com/ExodusMovement/exodus-hydra/issues/10142)) ([6c1a268](https://github.com/ExodusMovement/exodus-hydra/commit/6c1a2687130bdf88ff78c38a599c950c84ae8f60))
20
+
6
21
  ## [1.2.1](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/bip322-js@1.2.0...@exodus/bip322-js@1.2.1) (2024-10-22)
7
22
 
8
23
  **Note:** Version bump only for package @exodus/bip322-js
@@ -117,4 +117,3 @@ class Address {
117
117
  }
118
118
  }
119
119
  export default Address;
120
- //# sourceMappingURL=Address.js.map
package/dist/BIP322.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as bitcoin from '@exodus/bitcoinjs';
2
2
  declare class BIP322 {
3
3
  static TAG: Buffer;
4
- static hashMessage(message: string): Buffer;
4
+ static hashMessage(message: string): any;
5
5
  static buildToSpendTx(message: string, scriptPublicKey: Buffer): bitcoin.Transaction;
6
6
  static buildToSignTx(toSpendTxId: string, witnessScript: Buffer, isRedeemScript?: boolean, tapInternalKey?: Buffer): bitcoin.Psbt;
7
7
  static encodeWitness(signedPsbt: bitcoin.Psbt): string;
package/dist/BIP322.js CHANGED
@@ -1,16 +1,10 @@
1
- import createHash from 'create-hash';
1
+ import { hashSync } from '@exodus/crypto/hash';
2
2
  import * as bitcoin from '@exodus/bitcoinjs';
3
3
  class BIP322 {
4
4
  static TAG = Buffer.from('BIP0322-signed-message');
5
5
  static hashMessage(message) {
6
- const tagHasher = createHash('sha256');
7
- tagHasher.update(this.TAG);
8
- const tagHash = tagHasher.digest();
9
- const messageHasher = createHash('sha256');
10
- messageHasher.update(tagHash);
11
- messageHasher.update(tagHash);
12
- messageHasher.update(Buffer.from(message));
13
- return messageHasher.digest();
6
+ const tagHash = hashSync('sha256', this.TAG);
7
+ return hashSync('sha256', [tagHash, tagHash, Buffer.from(message)]);
14
8
  }
15
9
  static buildToSpendTx(message, scriptPublicKey) {
16
10
  const psbt = new bitcoin.Psbt();
@@ -72,4 +66,3 @@ class BIP322 {
72
66
  }
73
67
  }
74
68
  export default BIP322;
75
- //# sourceMappingURL=BIP322.js.map
package/dist/Signer.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as bitcoin from '@exodus/bitcoinjs';
2
2
  declare class Signer {
3
- static sign(privateKeyOrWIF: string | Buffer, address: string, message: string, network?: bitcoin.Network): string | Buffer;
3
+ static sign(privateKeyOrWIF: string | Buffer, address: string, message: string, network?: bitcoin.Network): any;
4
4
  private static checkPubKeyCorrespondToAddress;
5
5
  }
6
6
  export default Signer;
package/dist/Signer.js CHANGED
@@ -1,7 +1,7 @@
1
+ import Address from './Address.js';
1
2
  import BIP322 from './BIP322.js';
2
- import { Address } from './helpers/index.js';
3
3
  import * as bitcoin from '@exodus/bitcoinjs';
4
- import * as bitcoinMessage from 'bitcoinjs-message';
4
+ import * as bitcoinMessage from '@exodus/bitcoinjs/message';
5
5
  class Signer {
6
6
  static sign(privateKeyOrWIF, address, message, network = bitcoin.networks.bitcoin) {
7
7
  const ECPair = bitcoin.ECPair;
@@ -12,7 +12,7 @@ class Signer {
12
12
  throw new Error(`Invalid private key provided for signing message for ${address}.`);
13
13
  }
14
14
  if (Address.isP2PKH(address)) {
15
- return bitcoinMessage.sign(message, signer.privateKey, signer.compressed);
15
+ return bitcoinMessage.signSync(message, signer.privateKey, signer.compressed);
16
16
  }
17
17
  const scriptPubKey = Address.convertAdressToScriptPubkey(address);
18
18
  const toSpendTx = BIP322.buildToSpendTx(message, scriptPubKey);
@@ -58,4 +58,3 @@ class Signer {
58
58
  }
59
59
  }
60
60
  export default Signer;
61
- //# sourceMappingURL=Signer.js.map
package/dist/index.d.ts CHANGED
@@ -1,5 +1,3 @@
1
+ export { default as Address } from './Address.js';
1
2
  export { default as BIP322 } from './BIP322.js';
2
3
  export { default as Signer } from './Signer.js';
3
- export { Witness, Address } from './helpers/index.js';
4
- export { default as Verifier } from './Verifier.js';
5
- export { BIP137 } from './helpers/index.js';
package/dist/index.js CHANGED
@@ -1,6 +1,3 @@
1
+ export { default as Address } from './Address.js';
1
2
  export { default as BIP322 } from './BIP322.js';
2
3
  export { default as Signer } from './Signer.js';
3
- export { Witness, Address } from './helpers/index.js';
4
- export { default as Verifier } from './Verifier.js';
5
- export { BIP137 } from './helpers/index.js';
6
- //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,21 +1,21 @@
1
1
  {
2
2
  "name": "@exodus/bip322-js",
3
- "version": "1.2.1",
3
+ "version": "2.0.1",
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",
7
7
  "type": "module",
8
8
  "publishConfig": {
9
- "access": "restricted"
9
+ "access": "public"
10
10
  },
11
11
  "files": [
12
12
  "dist",
13
13
  "CHANGELOG.md"
14
14
  ],
15
15
  "scripts": {
16
- "build": "tsc",
17
- "lint": "eslint",
18
- "lint:fix": "run lint --fix",
16
+ "build": "tsc --build tsconfig.build.json",
17
+ "lint": "run -T eslint",
18
+ "lint:fix": "run -T lint --fix",
19
19
  "doc": "typedoc src/index.ts",
20
20
  "prepack": "npm run build",
21
21
  "test": "run -T exodus-test --jest --esbuild",
@@ -35,21 +35,20 @@
35
35
  },
36
36
  "license": "MIT",
37
37
  "devDependencies": {
38
- "@types/create-hash": "^1",
38
+ "@exodus/bitcoinerlab-secp256k1": "^1.0.5-exodus.1",
39
+ "@exodus/secp256k1": "^4.0.2-exodus.0",
39
40
  "@types/node": "^20.2.5",
41
+ "bitcoinjs-message": "^2.2.0",
40
42
  "typedoc": "^0.24.8",
41
43
  "typescript": "^5.1.3"
42
44
  },
43
45
  "dependencies": {
44
- "@exodus/bitcoinerlab-secp256k1": "^1.0.5-exodus.1",
45
- "@exodus/bitcoinjs": "^1.1.0",
46
- "@exodus/secp256k1": "^4.0.2-exodus.0",
47
- "bitcoinjs-message": "^2.2.0",
48
- "create-hash": "^1.2.0"
46
+ "@exodus/bitcoinjs": "^1.4.0",
47
+ "@exodus/crypto": "^1.0.0-rc.14"
49
48
  },
50
49
  "homepage": "https://github.com/ExodusMovement/exodus-hydra/tree/master/libraries/bip322-js",
51
50
  "bugs": {
52
51
  "url": "https://github.com/ExodusMovement/exodus-hydra/issues?q=is%3Aissue+is%3Aopen+label%3Abip322-js"
53
52
  },
54
- "gitHead": "6a40d50082582568d68206d8926737eea560fa50"
53
+ "gitHead": "77481cba9b534f58a406992e354137b629f6743a"
55
54
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"BIP322.js","sourceRoot":"","sources":["../src/BIP322.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,aAAa,CAAA;AACpC,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAA;AAM5C,MAAM,MAAM;IAEV,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;IAS3C,MAAM,CAAC,WAAW,CAAC,OAAe;QAEvC,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;QACtC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC1B,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,CAAA;QAClC,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;QAC1C,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC7B,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC7B,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QAC1C,OAAO,aAAa,CAAC,MAAM,EAAE,CAAA;IAC/B,CAAC;IAQM,MAAM,CAAC,cAAc,CAAC,OAAe,EAAE,eAAuB;QAEnE,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAA;QAE/B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAClB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QAEnB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAE7C,MAAM,gBAAgB,GAAG,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QACrD,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,gBAAgB,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;QAC9E,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;QAC/B,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAEnD,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACpB,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,CAAC;YACX,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YACtC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;SAC/B,CAAC,CAAA;QAEF,IAAI,CAAC,SAAS,CAAC;YACb,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,eAAe;SACxB,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAA;IAClC,CAAC;IAUM,MAAM,CAAC,aAAa,CACzB,WAAmB,EACnB,aAAqB,EACrB,iBAA0B,KAAK,EAC/B,cAAuB;QAGvB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAA;QAE/B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAClB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QAEnB,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE;gBACX,MAAM,EAAE,aAAa;gBACrB,KAAK,EAAE,CAAC;aACT;SACF,CAAC,CAAA;QAEF,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;gBAClB,YAAY,EAAE,aAAa;aAC5B,CAAC,CAAA;QACJ,CAAC;QAGD,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;gBAClB,cAAc;aACf,CAAC,CAAA;QACJ,CAAC;QAGD,IAAI,CAAC,SAAS,CAAC;YACb,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;SAC5B,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAOM,MAAM,CAAC,aAAa,CAAC,UAAwB;QAElD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAA;QAE7D,IAAI,OAAO,EAAE,CAAC;YAEZ,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACnC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;;AAGH,eAAe,MAAM,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Signer.js","sourceRoot":"","sources":["../src/Signer.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- declare class Verifier {
2
- static verifySignature(signerAddress: string, message: string, signatureBase64: string): boolean;
3
- private static verifyBIP137Signature;
4
- private static getHashForSigP2WPKH;
5
- private static getHashForSigP2SHInP2WPKH;
6
- private static getHashForSigP2TR;
7
- }
8
- export default Verifier;
package/dist/Verifier.js DELETED
@@ -1,124 +0,0 @@
1
- import BIP322 from './BIP322.js';
2
- import { Address, BIP137 } from './helpers/index.js';
3
- import * as bitcoin from '@exodus/bitcoinjs';
4
- import ecc from '@exodus/bitcoinerlab-secp256k1';
5
- import * as bitcoinMessage from 'bitcoinjs-message';
6
- import { decodeScriptSignature } from './bitcoinjs/index.js';
7
- class Verifier {
8
- static verifySignature(signerAddress, message, signatureBase64) {
9
- if (Address.isP2PKH(signerAddress) || BIP137.isBIP137Signature(signatureBase64)) {
10
- return this.verifyBIP137Signature(signerAddress, message, signatureBase64);
11
- }
12
- const scriptPubKey = Address.convertAdressToScriptPubkey(signerAddress);
13
- const toSpendTx = BIP322.buildToSpendTx(message, scriptPubKey);
14
- const toSignTx = BIP322.buildToSignTx(toSpendTx.getId(), scriptPubKey);
15
- toSignTx.updateInput(0, {
16
- finalScriptWitness: Buffer.from(signatureBase64, 'base64'),
17
- });
18
- const witness = toSignTx.extractTransaction().ins[0].witness;
19
- const encodedSignature = witness[0];
20
- if (Address.isP2WPKHWitness(witness)) {
21
- const publicKey = witness[1];
22
- const { signature } = decodeScriptSignature(encodedSignature);
23
- const hashedPubkey = bitcoin.crypto.hash160(publicKey);
24
- let hashToSign;
25
- if (Address.isP2SH(signerAddress)) {
26
- hashToSign = this.getHashForSigP2SHInP2WPKH(toSignTx, hashedPubkey);
27
- const lockingScript = Buffer.concat([Buffer.from([0x00, 0x14]), hashedPubkey]);
28
- const hashedLockingScript = bitcoin.crypto.hash160(lockingScript);
29
- const hashedLockingScriptInScriptPubKey = scriptPubKey.subarray(2, -1);
30
- if (Buffer.compare(hashedLockingScript, hashedLockingScriptInScriptPubKey) !== 0) {
31
- return false;
32
- }
33
- }
34
- else {
35
- hashToSign = this.getHashForSigP2WPKH(toSignTx);
36
- const hashedPubkeyInScriptPubkey = scriptPubKey.subarray(2);
37
- if (Buffer.compare(hashedPubkey, hashedPubkeyInScriptPubkey) !== 0) {
38
- return false;
39
- }
40
- }
41
- return ecc.verify(hashToSign, publicKey, signature);
42
- }
43
- if (Address.isP2TR(signerAddress)) {
44
- if (!Address.isSingleKeyP2TRWitness(witness)) {
45
- throw new Error('BIP-322 verification from script-spend P2TR is unsupported.');
46
- }
47
- const publicKey = scriptPubKey.subarray(2);
48
- let hashToSign;
49
- let signature;
50
- if (encodedSignature.byteLength === 64) {
51
- hashToSign = this.getHashForSigP2TR(toSignTx, 0x00);
52
- signature = encodedSignature;
53
- }
54
- else if (encodedSignature.byteLength === 65) {
55
- hashToSign = this.getHashForSigP2TR(toSignTx, encodedSignature[64]);
56
- signature = encodedSignature.subarray(0, -1);
57
- }
58
- else {
59
- throw new Error('Invalid Schnorr signature provided.');
60
- }
61
- return ecc.verifySchnorr(hashToSign, publicKey, signature);
62
- }
63
- throw new Error('Only P2WPKH, P2SH-P2WPKH, and single-key-spend P2TR BIP-322 verification is supported. Unsupported address is provided.');
64
- }
65
- static verifyBIP137Signature(signerAddress, message, signatureBase64) {
66
- if (Address.isP2PKH(signerAddress)) {
67
- return bitcoinMessage.verify(message, signerAddress, signatureBase64);
68
- }
69
- const publicKeySigned = BIP137.derivePubKey(message, signatureBase64);
70
- const legacySigningAddress = Address.convertPubKeyIntoAddress(publicKeySigned, 'p2pkh').mainnet;
71
- if (Address.isP2SH(signerAddress)) {
72
- const p2shAddressDerived = Address.convertPubKeyIntoAddress(publicKeySigned, 'p2sh-p2wpkh');
73
- if (p2shAddressDerived.mainnet !== signerAddress &&
74
- p2shAddressDerived.testnet !== signerAddress) {
75
- return false;
76
- }
77
- }
78
- else if (Address.isP2WPKH(signerAddress)) {
79
- const p2wpkhAddressDerived = Address.convertPubKeyIntoAddress(publicKeySigned, 'p2wpkh');
80
- if (p2wpkhAddressDerived.mainnet !== signerAddress &&
81
- p2wpkhAddressDerived.testnet !== signerAddress) {
82
- return false;
83
- }
84
- }
85
- else if (Address.isP2TR(signerAddress)) {
86
- const p2trAddressDerived = Address.convertPubKeyIntoAddress(publicKeySigned, 'p2tr');
87
- if (p2trAddressDerived.mainnet !== signerAddress &&
88
- p2trAddressDerived.testnet !== signerAddress) {
89
- return false;
90
- }
91
- }
92
- else {
93
- return false;
94
- }
95
- return bitcoinMessage.verify(message, legacySigningAddress, signatureBase64);
96
- }
97
- static getHashForSigP2WPKH(toSignTx) {
98
- const signingScript = bitcoin.payments.p2pkh({
99
- hash: toSignTx.data.inputs[0].witnessUtxo.script.subarray(2),
100
- }).output;
101
- return toSignTx
102
- .extractTransaction()
103
- .hashForWitnessV0(0, signingScript, 0, bitcoin.Transaction.SIGHASH_ALL);
104
- }
105
- static getHashForSigP2SHInP2WPKH(toSignTx, hashedPubkey) {
106
- const signingScript = bitcoin.payments.p2pkh({
107
- hash: hashedPubkey,
108
- }).output;
109
- return toSignTx
110
- .extractTransaction()
111
- .hashForWitnessV0(0, signingScript, 0, bitcoin.Transaction.SIGHASH_ALL);
112
- }
113
- static getHashForSigP2TR(toSignTx, hashType) {
114
- if (hashType !== bitcoin.Transaction.SIGHASH_DEFAULT &&
115
- hashType !== bitcoin.Transaction.SIGHASH_ALL) {
116
- throw new Error('Invalid SIGHASH used in signature. Must be either SIGHASH_ALL or SIGHASH_DEFAULT.');
117
- }
118
- return toSignTx
119
- .extractTransaction()
120
- .hashForWitnessV1(0, [toSignTx.data.inputs[0].witnessUtxo.script], [0], hashType);
121
- }
122
- }
123
- export default Verifier;
124
- //# sourceMappingURL=Verifier.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Verifier.js","sourceRoot":"","sources":["../src/Verifier.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- interface ScriptSignature {
2
- signature: Buffer;
3
- hashType: number;
4
- }
5
- export declare function decodeScriptSignature(buffer: Buffer): ScriptSignature;
6
- export {};
@@ -1,56 +0,0 @@
1
- export function decodeScriptSignature(buffer) {
2
- const hashType = buffer.readUInt8(buffer.length - 1);
3
- const hashTypeMod = hashType & ~0x80;
4
- if (hashTypeMod <= 0 || hashTypeMod >= 4)
5
- throw new Error('Invalid hashType ' + hashType);
6
- const decoded = decode2(buffer.slice(0, -1));
7
- const r = fromDER(decoded.r);
8
- const s = fromDER(decoded.s);
9
- const signature = Buffer.concat([r, s], 64);
10
- return { signature, hashType };
11
- }
12
- function fromDER(x) {
13
- if (x[0] === 0x00)
14
- x = x.slice(1);
15
- const buffer = Buffer.alloc(32, 0);
16
- const bstart = Math.max(0, 32 - x.length);
17
- x.copy(buffer, bstart);
18
- return buffer;
19
- }
20
- function decode2(buffer) {
21
- if (buffer.length < 8)
22
- throw new Error('DER sequence length is too short');
23
- if (buffer.length > 72)
24
- throw new Error('DER sequence length is too long');
25
- if (buffer[0] !== 0x30)
26
- throw new Error('Expected DER sequence');
27
- if (buffer[1] !== buffer.length - 2)
28
- throw new Error('DER sequence length is invalid');
29
- if (buffer[2] !== 0x02)
30
- throw new Error('Expected DER integer');
31
- const lenR = buffer[3];
32
- if (lenR === 0)
33
- throw new Error('R length is zero');
34
- if (5 + lenR >= buffer.length)
35
- throw new Error('R length is too long');
36
- if (buffer[4 + lenR] !== 0x02)
37
- throw new Error('Expected DER integer (2)');
38
- const lenS = buffer[5 + lenR];
39
- if (lenS === 0)
40
- throw new Error('S length is zero');
41
- if (6 + lenR + lenS !== buffer.length)
42
- throw new Error('S length is invalid');
43
- if (buffer[4] & 0x80)
44
- throw new Error('R value is negative');
45
- if (lenR > 1 && buffer[4] === 0x00 && !(buffer[5] & 0x80))
46
- throw new Error('R value excessively padded');
47
- if (buffer[lenR + 6] & 0x80)
48
- throw new Error('S value is negative');
49
- if (lenS > 1 && buffer[lenR + 6] === 0x00 && !(buffer[lenR + 7] & 0x80))
50
- throw new Error('S value excessively padded');
51
- return {
52
- r: buffer.slice(4, 4 + lenR),
53
- s: buffer.slice(6 + lenR),
54
- };
55
- }
56
- //# sourceMappingURL=DecodeScriptSignature.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DecodeScriptSignature.js","sourceRoot":"","sources":["../../src/bitcoinjs/DecodeScriptSignature.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export { decodeScriptSignature } from './DecodeScriptSignature.js';
@@ -1,2 +0,0 @@
1
- export { decodeScriptSignature } from './DecodeScriptSignature.js';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bitcoinjs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Address.js","sourceRoot":"","sources":["../../src/helpers/Address.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- declare class BIP137 {
2
- static isBIP137Signature(signature: string): boolean;
3
- static derivePubKey(message: string, signature: string): Buffer;
4
- private static decodeSignature;
5
- }
6
- export default BIP137;
@@ -1,29 +0,0 @@
1
- import secp256k1 from '@exodus/secp256k1';
2
- import * as bitcoinMessage from 'bitcoinjs-message';
3
- class BIP137 {
4
- static isBIP137Signature(signature) {
5
- const signatureBuffer = Buffer.from(signature, 'base64');
6
- return signatureBuffer.byteLength === 65;
7
- }
8
- static derivePubKey(message, signature) {
9
- const messageHash = bitcoinMessage.magicHash(message);
10
- const signatureDecoded = this.decodeSignature(Buffer.from(signature, 'base64'));
11
- const recoveredPublicKey = secp256k1.ecdsaRecover(signatureDecoded.signature, signatureDecoded.recovery, messageHash, signatureDecoded.compressed);
12
- return Buffer.from(recoveredPublicKey);
13
- }
14
- static decodeSignature(signature) {
15
- if (signature.length !== 65)
16
- throw new Error('Invalid signature length');
17
- const flagByte = signature.readUInt8(0) - 27;
18
- if (flagByte > 19 || flagByte < 0) {
19
- throw new Error('Invalid signature parameter');
20
- }
21
- return {
22
- compressed: !!(flagByte & 12),
23
- recovery: flagByte & 3,
24
- signature: signature.subarray(1),
25
- };
26
- }
27
- }
28
- export default BIP137;
29
- //# sourceMappingURL=BIP137.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BIP137.js","sourceRoot":"","sources":["../../src/helpers/BIP137.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,mBAAmB,CAAA;AACzC,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAA;AAKnD,MAAM,MAAM;IAMH,MAAM,CAAC,iBAAiB,CAAC,SAAiB;QAE/C,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QACxD,OAAO,eAAe,CAAC,UAAU,KAAK,EAAE,CAAA;IAC1C,CAAC;IAQM,MAAM,CAAC,YAAY,CAAC,OAAe,EAAE,SAAiB;QAE3D,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAErD,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;QAE/E,MAAM,kBAAkB,GAAG,SAAS,CAAC,YAAY,CAC/C,gBAAgB,CAAC,SAAS,EAC1B,gBAAgB,CAAC,QAAQ,EACzB,WAAW,EACX,gBAAgB,CAAC,UAAU,CAC5B,CAAA;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IACxC,CAAC;IAQO,MAAM,CAAC,eAAe,CAAC,SAAiB;QAC9C,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QACxE,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;QAC5C,IAAI,QAAQ,GAAG,EAAE,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAChD,CAAC;QAED,OAAO;YACL,UAAU,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC;YAC7B,QAAQ,EAAE,QAAQ,GAAG,CAAC;YACtB,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;SACjC,CAAA;IACH,CAAC;CACF;AAED,eAAe,MAAM,CAAA"}
@@ -1,5 +0,0 @@
1
- declare class VarInt {
2
- static encode(i: number): Buffer;
3
- static decode(b: Buffer): number;
4
- }
5
- export default VarInt;
@@ -1,48 +0,0 @@
1
- class VarInt {
2
- static encode(i) {
3
- if (i < 0xfd) {
4
- const buffer = Buffer.alloc(1);
5
- buffer.writeUInt8(i);
6
- return buffer;
7
- }
8
- if (i < 0x1_00_00) {
9
- const buffer = Buffer.alloc(3);
10
- buffer.writeUInt8(0xfd);
11
- buffer.writeUInt16LE(i, 1);
12
- return buffer;
13
- }
14
- if (i < 0x1_00_00_00_00) {
15
- const buffer = Buffer.alloc(5);
16
- buffer.writeUInt8(0xfe);
17
- buffer.writeUInt32LE(i, 1);
18
- return buffer;
19
- }
20
- if (i < 0x1_00_00_00_00_00_00) {
21
- const buffer = Buffer.alloc(9);
22
- buffer.writeUInt8(0xff);
23
- buffer.writeUIntLE(i, 1, 6);
24
- buffer.writeUInt8(0x00, 7);
25
- buffer.writeUInt8(0x00, 8);
26
- return buffer;
27
- }
28
- throw new Error(`Integer too large: ${i}`);
29
- }
30
- static decode(b) {
31
- if (b.byteLength === 0) {
32
- throw new Error('Empty buffer provided');
33
- }
34
- const i = b.readUInt8();
35
- if (i === 0xfd) {
36
- return b.readUInt16LE(1);
37
- }
38
- if (i === 0xfe) {
39
- return b.readUInt32LE(1);
40
- }
41
- if (i === 0xff) {
42
- return b.readUIntLE(1, 6);
43
- }
44
- return i;
45
- }
46
- }
47
- export default VarInt;
48
- //# sourceMappingURL=VarInt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VarInt.js","sourceRoot":"","sources":["../../src/helpers/VarInt.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM;IAOH,MAAM,CAAC,MAAM,CAAC,CAAS;QAC5B,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC9B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACpB,OAAO,MAAM,CAAA;QACf,CAAC;QAED,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC9B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YACvB,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAC1B,OAAO,MAAM,CAAA;QACf,CAAC;QAED,IAAI,CAAC,GAAG,eAAe,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC9B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YACvB,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAC1B,OAAO,MAAM,CAAA;QACf,CAAC;QAED,IAAI,CAAC,GAAG,qBAAqB,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC9B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YACvB,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3B,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YAC1B,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YAC1B,OAAO,MAAM,CAAA;QACf,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAA;IAC5C,CAAC;IAQM,MAAM,CAAC,MAAM,CAAC,CAAS;QAE5B,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;QAC1C,CAAC;QAGD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAA;QAEvB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAEf,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAEf,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QAC1B,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAEf,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC3B,CAAC;QAGD,OAAO,CAAC,CAAA;IACV,CAAC;CACF;AAED,eAAe,MAAM,CAAA"}
@@ -1,5 +0,0 @@
1
- declare class VarStr {
2
- static encode(s: Buffer): Buffer;
3
- static decode(v: Buffer): Buffer;
4
- }
5
- export default VarStr;
@@ -1,14 +0,0 @@
1
- import VarInt from './VarInt.js';
2
- class VarStr {
3
- static encode(s) {
4
- const lengthBuffer = VarInt.encode(s.length);
5
- return Buffer.concat([lengthBuffer, s]);
6
- }
7
- static decode(v) {
8
- const length = VarInt.decode(v);
9
- const lengthByteLength = VarInt.encode(length).byteLength;
10
- return v.subarray(lengthByteLength, length + lengthByteLength);
11
- }
12
- }
13
- export default VarStr;
14
- //# sourceMappingURL=VarStr.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VarStr.js","sourceRoot":"","sources":["../../src/helpers/VarStr.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,aAAa,CAAA;AAMhC,MAAM,MAAM;IAOH,MAAM,CAAC,MAAM,CAAC,CAAS;QAE5B,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QAE5C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAA;IACzC,CAAC;IAQM,MAAM,CAAC,MAAM,CAAC,CAAS;QAE5B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAE/B,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAA;QAEzD,OAAO,CAAC,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAA;IAChE,CAAC;CACF;AAED,eAAe,MAAM,CAAA"}
@@ -1,5 +0,0 @@
1
- declare class Witness {
2
- static serialize(witnesses: Uint8Array[]): string;
3
- static deserialize(encodedWitness: string | Buffer): Buffer[];
4
- }
5
- export default Witness;
@@ -1,33 +0,0 @@
1
- import VarInt from './VarInt.js';
2
- import VarStr from './VarStr.js';
3
- class Witness {
4
- static serialize(witnesses) {
5
- let witnessStack = VarInt.encode(witnesses.length);
6
- witnesses.forEach((witness) => {
7
- witnessStack = Buffer.concat([witnessStack, VarStr.encode(Buffer.from(witness))]);
8
- });
9
- return witnessStack.toString('base64');
10
- }
11
- static deserialize(encodedWitness) {
12
- const witnessDecoded = [];
13
- let witnessToDecode;
14
- if (typeof encodedWitness === 'string') {
15
- witnessToDecode = Buffer.from(encodedWitness, 'base64');
16
- }
17
- else {
18
- witnessToDecode = encodedWitness;
19
- }
20
- const witnessCount = VarInt.decode(witnessToDecode);
21
- const varIntLength = VarInt.encode(witnessCount).byteLength;
22
- witnessToDecode = witnessToDecode.subarray(varIntLength);
23
- for (let i = 0; i < witnessCount; i++) {
24
- const witness = VarStr.decode(witnessToDecode);
25
- witnessDecoded.push(witness);
26
- const witnessLength = VarStr.encode(witness).byteLength;
27
- witnessToDecode = witnessToDecode.subarray(witnessLength);
28
- }
29
- return witnessDecoded;
30
- }
31
- }
32
- export default Witness;
33
- //# sourceMappingURL=Witness.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Witness.js","sourceRoot":"","sources":["../../src/helpers/Witness.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,MAAM,MAAM,aAAa,CAAA;AAKhC,MAAM,OAAO;IAQJ,MAAM,CAAC,SAAS,CAAC,SAAuB;QAE7C,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAElD,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAE5B,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QACnF,CAAC,CAAC,CAAA;QAEF,OAAO,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACxC,CAAC;IASM,MAAM,CAAC,WAAW,CAAC,cAA+B;QAEvD,MAAM,cAAc,GAAa,EAAE,CAAA;QAEnC,IAAI,eAAuB,CAAA;QAC3B,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YAEvC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;QACzD,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,cAAc,CAAA;QAClC,CAAC;QAGD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;QAEnD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,UAAU,CAAA;QAC3D,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YAEtC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;YAE9C,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAE5B,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,CAAA;YACvD,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;QAC3D,CAAC;QAGD,OAAO,cAAc,CAAA;IACvB,CAAC;CACF;AAED,eAAe,OAAO,CAAA"}
@@ -1,5 +0,0 @@
1
- export { default as Address } from './Address.js';
2
- export { default as VarInt } from './VarInt.js';
3
- export { default as BIP137 } from './BIP137.js';
4
- export { default as Witness } from './Witness.js';
5
- export { default as VarStr } from './VarStr.js';
@@ -1,6 +0,0 @@
1
- export { default as Address } from './Address.js';
2
- export { default as VarInt } from './VarInt.js';
3
- export { default as BIP137 } from './BIP137.js';
4
- export { default as Witness } from './Witness.js';
5
- export { default as VarStr } from './VarStr.js';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA"}
File without changes