@scure/btc-signer 1.6.0 → 1.8.0

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.
Files changed (76) hide show
  1. package/README.md +194 -25
  2. package/esm/_type_test.js +1 -1
  3. package/esm/index.d.ts +12 -12
  4. package/esm/index.d.ts.map +1 -1
  5. package/esm/index.js +10 -10
  6. package/esm/index.js.map +1 -1
  7. package/esm/musig2.d.ts +148 -0
  8. package/esm/musig2.d.ts.map +1 -0
  9. package/esm/musig2.js +405 -0
  10. package/esm/musig2.js.map +1 -0
  11. package/esm/p2p.d.ts +38 -0
  12. package/esm/p2p.d.ts.map +1 -0
  13. package/esm/p2p.js +156 -0
  14. package/esm/p2p.js.map +1 -0
  15. package/esm/payment.d.ts +77 -21
  16. package/esm/payment.d.ts.map +1 -1
  17. package/esm/payment.js +63 -60
  18. package/esm/payment.js.map +1 -1
  19. package/esm/psbt.d.ts +463 -463
  20. package/esm/psbt.d.ts.map +1 -1
  21. package/esm/psbt.js +10 -39
  22. package/esm/psbt.js.map +1 -1
  23. package/esm/script.d.ts +16 -16
  24. package/esm/script.d.ts.map +1 -1
  25. package/esm/script.js +1 -1
  26. package/esm/transaction.d.ts +59 -6
  27. package/esm/transaction.d.ts.map +1 -1
  28. package/esm/transaction.js +154 -11
  29. package/esm/transaction.js.map +1 -1
  30. package/esm/utils.d.ts.map +1 -1
  31. package/esm/utxo.d.ts +73 -125
  32. package/esm/utxo.d.ts.map +1 -1
  33. package/esm/utxo.js +17 -122
  34. package/esm/utxo.js.map +1 -1
  35. package/index.d.ts +12 -12
  36. package/index.d.ts.map +1 -1
  37. package/index.js +58 -58
  38. package/index.js.map +1 -1
  39. package/musig2.d.ts +148 -0
  40. package/musig2.d.ts.map +1 -0
  41. package/musig2.js +417 -0
  42. package/musig2.js.map +1 -0
  43. package/p2p.d.ts +38 -0
  44. package/p2p.d.ts.map +1 -0
  45. package/p2p.js +158 -0
  46. package/p2p.js.map +1 -0
  47. package/package.json +15 -11
  48. package/payment.d.ts +77 -21
  49. package/payment.d.ts.map +1 -1
  50. package/payment.js +81 -78
  51. package/payment.js.map +1 -1
  52. package/psbt.d.ts +463 -463
  53. package/psbt.d.ts.map +1 -1
  54. package/psbt.js +30 -59
  55. package/psbt.js.map +1 -1
  56. package/script.d.ts +16 -16
  57. package/script.d.ts.map +1 -1
  58. package/script.js +3 -3
  59. package/src/_type_test.ts +1 -1
  60. package/src/index.ts +12 -12
  61. package/src/musig2.ts +517 -0
  62. package/src/p2p.ts +158 -0
  63. package/src/payment.ts +160 -75
  64. package/src/psbt.ts +11 -39
  65. package/src/script.ts +1 -1
  66. package/src/transaction.ts +170 -17
  67. package/src/utxo.ts +29 -122
  68. package/transaction.d.ts +59 -6
  69. package/transaction.d.ts.map +1 -1
  70. package/transaction.js +224 -77
  71. package/transaction.js.map +1 -1
  72. package/utils.d.ts.map +1 -1
  73. package/utxo.d.ts +73 -125
  74. package/utxo.d.ts.map +1 -1
  75. package/utxo.js +54 -163
  76. package/utxo.js.map +1 -1
package/p2p.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p2p.js","sourceRoot":"","sources":["src/p2p.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scure/btc-signer",
3
- "version": "1.6.0",
3
+ "version": "1.8.0",
4
4
  "description": "Audited & minimal library for Bitcoin. Handle transactions, Schnorr, Taproot, UTXO & PSBT",
5
5
  "files": [
6
6
  "esm",
@@ -14,18 +14,18 @@
14
14
  "module": "./esm/index.js",
15
15
  "types": "./index.d.ts",
16
16
  "dependencies": {
17
- "@noble/curves": "~1.8.1",
18
- "@noble/hashes": "~1.7.1",
19
- "@scure/base": "~1.2.2",
20
- "micro-packed": "~0.7.2"
17
+ "@noble/curves": "~1.9.0",
18
+ "@noble/hashes": "~1.8.0",
19
+ "@scure/base": "~1.2.5",
20
+ "micro-packed": "~0.7.3"
21
21
  },
22
22
  "devDependencies": {
23
- "@paulmillr/jsbt": "0.3.1",
24
- "@scure/bip32": "~1.6.1",
25
- "micro-bmark": "0.4.0",
26
- "micro-should": "0.5.1",
27
- "prettier": "3.3.2",
28
- "typescript": "5.5.2"
23
+ "@paulmillr/jsbt": "0.3.3",
24
+ "@scure/bip32": "~1.7.0",
25
+ "micro-bmark": "0.4.1",
26
+ "micro-should": "0.5.2",
27
+ "prettier": "3.5.3",
28
+ "typescript": "5.8.3"
29
29
  },
30
30
  "exports": {
31
31
  ".": {
@@ -36,6 +36,10 @@
36
36
  "import": "./esm/index.js",
37
37
  "require": "./index.js"
38
38
  },
39
+ "./musig2": {
40
+ "import": "./esm/musig2.js",
41
+ "require": "./musig2.js"
42
+ },
39
43
  "./payment": {
40
44
  "import": "./esm/payment.js",
41
45
  "require": "./payment.js"
package/payment.d.ts CHANGED
@@ -1,14 +1,15 @@
1
1
  import { type Coder } from '@scure/base';
2
2
  import * as P from 'micro-packed';
3
- import { type TransactionInput } from './psbt.js';
4
- import { type ScriptType } from './script.js';
5
- import { type BTC_NETWORK, type Bytes } from './utils.js';
3
+ import { type TransactionInput } from './psbt.ts';
4
+ import { type ScriptType } from './script.ts';
5
+ import { type BTC_NETWORK, type Bytes } from './utils.ts';
6
6
  export type P2Ret = {
7
7
  type: string;
8
8
  script: Bytes;
9
9
  address?: string;
10
10
  redeemScript?: Bytes;
11
11
  witnessScript?: Bytes;
12
+ hash?: Bytes;
12
13
  };
13
14
  type OutP2AType = {
14
15
  type: 'p2a';
@@ -70,12 +71,54 @@ export type CustomScript = Coder<OptScript, CustomScriptOut | undefined> & {
70
71
  export declare const OutScript: P.CoderType<NonNullable<OutP2AType | OutPKType | OutPKHType | OutSHType | OutWSHType | OutWPKHType | OutMSType | OutTRType | OutTRNSType | OutTRMSType | OutUnknownType | undefined>>;
71
72
  export type OutScriptType = typeof OutScript;
72
73
  export declare function checkScript(script?: Bytes, redeemScript?: Bytes, witnessScript?: Bytes): void;
73
- export declare const p2pk: (pubkey: Bytes, network?: BTC_NETWORK) => P2Ret;
74
- export declare const p2pkh: (publicKey: Bytes, network?: BTC_NETWORK) => P2Ret;
75
- export declare const p2sh: (child: P2Ret, network?: BTC_NETWORK) => P2Ret;
76
- export declare const p2wsh: (child: P2Ret, network?: BTC_NETWORK) => P2Ret;
77
- export declare const p2wpkh: (publicKey: Bytes, network?: BTC_NETWORK) => P2Ret;
78
- export declare const p2ms: (m: number, pubkeys: Bytes[], allowSamePubkeys?: boolean) => P2Ret;
74
+ type Extends<T, U> = T extends U ? T : never;
75
+ export type P2PK = {
76
+ type: 'pk';
77
+ script: Bytes;
78
+ };
79
+ export declare const p2pk: (pubkey: Bytes, _network?: BTC_NETWORK) => Extends<P2PK, P2Ret>;
80
+ export type P2PKH = {
81
+ type: 'pkh';
82
+ script: Bytes;
83
+ address: string;
84
+ hash: Bytes;
85
+ };
86
+ export declare const p2pkh: (publicKey: Bytes, network?: BTC_NETWORK) => Extends<P2PKH, P2Ret>;
87
+ export type P2SHBase = {
88
+ type: 'sh';
89
+ redeemScript: Bytes;
90
+ script: Bytes;
91
+ address: string;
92
+ hash: Bytes;
93
+ };
94
+ export type P2SHWithWitness = P2SHBase & {
95
+ witnessScript: Bytes;
96
+ };
97
+ export type P2SHWithoutWitness = Omit<P2SHBase, 'witnessScript'>;
98
+ export type P2SHReturn<T extends P2Ret> = T extends {
99
+ witnessScript: Bytes;
100
+ } ? P2SHWithWitness : P2SHWithoutWitness;
101
+ export declare const p2sh: <T extends P2Ret>(child: T, network?: BTC_NETWORK) => Extends<P2SHReturn<T>, P2Ret>;
102
+ export type P2WSH = {
103
+ type: 'wsh';
104
+ witnessScript: Bytes;
105
+ script: Bytes;
106
+ address: string;
107
+ hash: Bytes;
108
+ };
109
+ export declare const p2wsh: (child: P2Ret, network?: BTC_NETWORK) => Extends<P2WSH, P2Ret>;
110
+ export type P2WPKH = {
111
+ type: 'wpkh';
112
+ script: Bytes;
113
+ address: string;
114
+ hash: Bytes;
115
+ };
116
+ export declare const p2wpkh: (publicKey: Bytes, network?: BTC_NETWORK) => Extends<P2WPKH, P2Ret>;
117
+ export type P2MS = {
118
+ type: 'ms';
119
+ script: Bytes;
120
+ };
121
+ export declare const p2ms: (m: number, pubkeys: Bytes[], allowSamePubkeys?: boolean) => Extends<P2MS, P2Ret>;
79
122
  export type HashedTree = {
80
123
  type: 'leaf';
81
124
  version?: number;
@@ -87,18 +130,23 @@ export type HashedTree = {
87
130
  right: HashedTree;
88
131
  hash: Bytes;
89
132
  };
90
- export type P2TROut = P2Ret & {
133
+ export type P2TR = {
134
+ type: 'tr';
135
+ script: Bytes;
136
+ address: string;
91
137
  tweakedPubkey: Bytes;
92
138
  tapInternalKey: Bytes;
93
- tapMerkleRoot?: Bytes;
94
- tapLeafScript?: TransactionInput['tapLeafScript'];
95
- leaves?: TaprootLeaf[];
139
+ };
140
+ export type P2TR_TREE = P2TR & {
141
+ tapMerkleRoot: Bytes;
142
+ tapLeafScript: TransactionInput['tapLeafScript'];
143
+ leaves: TaprootLeaf[];
96
144
  };
97
145
  export type TaprootNode = {
98
146
  script: Bytes | string;
99
147
  leafVersion?: number;
100
148
  weight?: number;
101
- } & Partial<P2TROut>;
149
+ } & Partial<P2TR_TREE>;
102
150
  export type TaprootScriptTree = TaprootNode | TaprootScriptTree[];
103
151
  export type TaprootScriptList = TaprootNode[];
104
152
  export declare function taprootListToTree(taprootList: TaprootScriptList): TaprootScriptTree;
@@ -118,21 +166,29 @@ export type HashedTreeWithPath = TaprootLeaf | {
118
166
  };
119
167
  export declare const TAP_LEAF_VERSION = 192;
120
168
  export declare const tapLeafHash: (script: Bytes, version?: number) => Bytes;
121
- export declare function p2tr(internalPubKey?: Bytes | string, tree?: TaprootScriptTree, network?: BTC_NETWORK, allowUnknownOutputs?: boolean, customScripts?: CustomScript[]): P2TROut;
169
+ export type P2TRRet<T> = T extends TaprootScriptTree ? P2TR_TREE : P2TR;
170
+ export declare function p2tr(internalPubKey: Bytes | string, tree?: undefined, network?: BTC_NETWORK, allowUnknownOutputs?: boolean, customScripts?: CustomScript[]): Extends<P2TR, P2Ret>;
171
+ export declare function p2tr(internalPubKey: Bytes | string, tree: TaprootScriptTree, network?: BTC_NETWORK, allowUnknownOutputs?: boolean, customScripts?: CustomScript[]): Extends<P2TR_TREE, P2Ret>;
122
172
  export declare function combinations<T>(m: number, list: T[]): T[][];
123
173
  /**
124
174
  * M-of-N multi-leaf wallet via p2tr_ns. If m == n, single script is emitted.
125
175
  * Takes O(n^2) if m != n. 99-of-100 is ok, 5-of-100 is not.
126
176
  * `2-of-[A,B,C] => [A,B] | [A,C] | [B,C]`
127
177
  */
128
- export declare const p2tr_ns: (m: number, pubkeys: Bytes[], allowSamePubkeys?: boolean) => P2Ret[];
129
- export declare const p2tr_pk: (pubkey: Bytes) => P2Ret;
130
- export declare function p2tr_ms(m: number, pubkeys: Bytes[], allowSamePubkeys?: boolean): {
131
- type: string;
132
- script: Uint8Array;
178
+ export type P2TR_NS = {
179
+ type: 'tr_ns';
180
+ script: Bytes;
181
+ };
182
+ export declare const p2tr_ns: (m: number, pubkeys: Bytes[], allowSamePubkeys?: boolean) => Extends<P2TR_NS, P2Ret>[];
183
+ export type P2TR_PK = P2TR_NS;
184
+ export declare const p2tr_pk: (pubkey: Bytes) => Extends<P2TR_PK, P2Ret>;
185
+ export type P2TR_MS = {
186
+ type: 'tr_ms';
187
+ script: Bytes;
133
188
  };
189
+ export declare function p2tr_ms(m: number, pubkeys: Bytes[], allowSamePubkeys?: boolean): Extends<P2TR_MS, P2Ret>;
134
190
  export declare function getAddress(type: 'pkh' | 'wpkh' | 'tr', privKey: Bytes, network?: BTC_NETWORK): string | undefined;
135
- export declare const _sortPubkeys: (pubkeys: Bytes[]) => Uint8Array[];
191
+ export declare const _sortPubkeys: (pubkeys: Bytes[]) => Bytes[];
136
192
  export declare function multisig(m: number, pubkeys: Bytes[], sorted?: boolean, witness?: boolean, network?: BTC_NETWORK): P2Ret;
137
193
  export declare function sortedMultisig(m: number, pubkeys: Bytes[], witness?: boolean, network?: BTC_NETWORK): P2Ret;
138
194
  export declare function WIF(network?: BTC_NETWORK): Coder<Bytes, string>;
package/payment.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["src/payment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["src/payment.ts"],"names":[],"mappings":"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"}
package/payment.js CHANGED
@@ -13,15 +13,15 @@ exports.WIF = WIF;
13
13
  exports.Address = Address;
14
14
  const base_1 = require("@scure/base");
15
15
  const P = require("micro-packed");
16
- const psbt_js_1 = require("./psbt.js");
17
- const script_js_1 = require("./script.js");
16
+ const psbt_ts_1 = require("./psbt.js");
17
+ const script_ts_1 = require("./script.js");
18
18
  const u = require("./utils.js");
19
- const utils_js_1 = require("./utils.js");
19
+ const utils_ts_1 = require("./utils.js");
20
20
  const OutP2A = {
21
21
  encode(from) {
22
22
  if (from.length !== 2 || from[0] !== 1 || !u.isBytes(from[1]) || base_1.hex.encode(from[1]) !== '4e73')
23
23
  return;
24
- return { type: 'p2a', script: script_js_1.Script.encode(from) };
24
+ return { type: 'p2a', script: script_ts_1.Script.encode(from) };
25
25
  },
26
26
  decode: (to) => {
27
27
  if (to.type !== 'p2a')
@@ -151,7 +151,7 @@ const OutTRMS = {
151
151
  if (from[last] !== 'NUMEQUAL' || from[1] !== 'CHECKSIG')
152
152
  return;
153
153
  const pubkeys = [];
154
- const m = (0, script_js_1.OpToNum)(from[last - 1]);
154
+ const m = (0, script_ts_1.OpToNum)(from[last - 1]);
155
155
  if (typeof m !== 'number')
156
156
  return;
157
157
  for (let i = 0; i < last - 1; i++) {
@@ -179,9 +179,9 @@ const OutTRMS = {
179
179
  };
180
180
  const OutUnknown = {
181
181
  encode(from) {
182
- return { type: 'unknown', script: script_js_1.Script.encode(from) };
182
+ return { type: 'unknown', script: script_ts_1.Script.encode(from) };
183
183
  },
184
- decode: (to) => to.type === 'unknown' ? script_js_1.Script.decode(to.script) : undefined,
184
+ decode: (to) => to.type === 'unknown' ? script_ts_1.Script.decode(to.script) : undefined,
185
185
  };
186
186
  // /Payments
187
187
  const OutScripts = [
@@ -202,7 +202,7 @@ const OutScripts = [
202
202
  // - removeOutScript
203
203
  // - We can do that as log we modify array in-place
204
204
  // - Actually is very hard, since there is sign/finalize logic
205
- const _OutScript = P.apply(script_js_1.Script, P.coders.match(OutScripts));
205
+ const _OutScript = P.apply(script_ts_1.Script, P.coders.match(OutScripts));
206
206
  // We can validate this once, because of packed & coders
207
207
  exports.OutScript = P.validate(_OutScript, (i) => {
208
208
  if (i.type === 'pk' && !isValidPubkey(i.pubkey, u.PubT.ecdsa))
@@ -281,18 +281,14 @@ function uniqPubkey(pubkeys) {
281
281
  map[key] = true;
282
282
  }
283
283
  }
284
- // @ts-ignore
285
- const p2pk = (pubkey, network = utils_js_1.NETWORK) => {
284
+ const p2pk = (pubkey, _network = utils_ts_1.NETWORK) => {
286
285
  // network is unused
287
286
  if (!isValidPubkey(pubkey, u.PubT.ecdsa))
288
287
  throw new Error('P2PK: invalid publicKey');
289
- return {
290
- type: 'pk',
291
- script: exports.OutScript.encode({ type: 'pk', pubkey }),
292
- };
288
+ return { type: 'pk', script: exports.OutScript.encode({ type: 'pk', pubkey }) };
293
289
  };
294
290
  exports.p2pk = p2pk;
295
- const p2pkh = (publicKey, network = utils_js_1.NETWORK) => {
291
+ const p2pkh = (publicKey, network = utils_ts_1.NETWORK) => {
296
292
  if (!isValidPubkey(publicKey, u.PubT.ecdsa))
297
293
  throw new Error('P2PKH: invalid publicKey');
298
294
  const hash = u.hash160(publicKey);
@@ -300,10 +296,11 @@ const p2pkh = (publicKey, network = utils_js_1.NETWORK) => {
300
296
  type: 'pkh',
301
297
  script: exports.OutScript.encode({ type: 'pkh', hash }),
302
298
  address: Address(network).encode({ type: 'pkh', hash }),
299
+ hash,
303
300
  };
304
301
  };
305
302
  exports.p2pkh = p2pkh;
306
- const p2sh = (child, network = utils_js_1.NETWORK) => {
303
+ const p2sh = (child, network = utils_ts_1.NETWORK) => {
307
304
  // It is already tested inside noble-hashes and checkScript
308
305
  const cs = child.script;
309
306
  if (!u.isBytes(cs))
@@ -311,18 +308,28 @@ const p2sh = (child, network = utils_js_1.NETWORK) => {
311
308
  const hash = u.hash160(cs);
312
309
  const script = exports.OutScript.encode({ type: 'sh', hash });
313
310
  checkScript(script, cs, child.witnessScript);
314
- const res = {
315
- type: 'sh',
316
- redeemScript: cs,
317
- script: exports.OutScript.encode({ type: 'sh', hash }),
318
- address: Address(network).encode({ type: 'sh', hash }),
319
- };
320
- if (child.witnessScript)
321
- res.witnessScript = child.witnessScript;
322
- return res;
311
+ if (child.witnessScript) {
312
+ return {
313
+ type: 'sh',
314
+ redeemScript: cs,
315
+ script: exports.OutScript.encode({ type: 'sh', hash }),
316
+ address: Address(network).encode({ type: 'sh', hash }),
317
+ hash,
318
+ witnessScript: child.witnessScript,
319
+ };
320
+ }
321
+ else {
322
+ return {
323
+ type: 'sh',
324
+ redeemScript: cs,
325
+ script: exports.OutScript.encode({ type: 'sh', hash }),
326
+ address: Address(network).encode({ type: 'sh', hash }),
327
+ hash,
328
+ };
329
+ }
323
330
  };
324
331
  exports.p2sh = p2sh;
325
- const p2wsh = (child, network = utils_js_1.NETWORK) => {
332
+ const p2wsh = (child, network = utils_ts_1.NETWORK) => {
326
333
  const cs = child.script;
327
334
  if (!u.isBytes(cs))
328
335
  throw new Error(`Wrong script: ${typeof cs}, expected Uint8Array`);
@@ -334,10 +341,11 @@ const p2wsh = (child, network = utils_js_1.NETWORK) => {
334
341
  witnessScript: cs,
335
342
  script: exports.OutScript.encode({ type: 'wsh', hash }),
336
343
  address: Address(network).encode({ type: 'wsh', hash }),
344
+ hash,
337
345
  };
338
346
  };
339
347
  exports.p2wsh = p2wsh;
340
- const p2wpkh = (publicKey, network = utils_js_1.NETWORK) => {
348
+ const p2wpkh = (publicKey, network = utils_ts_1.NETWORK) => {
341
349
  if (!isValidPubkey(publicKey, u.PubT.ecdsa))
342
350
  throw new Error('P2WPKH: invalid publicKey');
343
351
  if (publicKey.length === 65)
@@ -347,13 +355,17 @@ const p2wpkh = (publicKey, network = utils_js_1.NETWORK) => {
347
355
  type: 'wpkh',
348
356
  script: exports.OutScript.encode({ type: 'wpkh', hash }),
349
357
  address: Address(network).encode({ type: 'wpkh', hash }),
358
+ hash,
350
359
  };
351
360
  };
352
361
  exports.p2wpkh = p2wpkh;
353
362
  const p2ms = (m, pubkeys, allowSamePubkeys = false) => {
354
363
  if (!allowSamePubkeys)
355
364
  uniqPubkey(pubkeys);
356
- return { type: 'ms', script: exports.OutScript.encode({ type: 'ms', pubkeys, m }) };
365
+ return {
366
+ type: 'ms',
367
+ script: exports.OutScript.encode({ type: 'ms', pubkeys, m }),
368
+ };
357
369
  };
358
370
  exports.p2ms = p2ms;
359
371
  function checkTaprootScript(script, internalPubKey, allowUnknownOutputs = false, customScripts) {
@@ -362,7 +374,7 @@ function checkTaprootScript(script, internalPubKey, allowUnknownOutputs = false,
362
374
  // NOTE: this check should be before allowUnknownOutputs, otherwise it will
363
375
  // disable custom. All custom scripts for taproot should have prefix 'tr_'
364
376
  if (customScripts) {
365
- const cs = P.apply(script_js_1.Script, P.coders.match(customScripts));
377
+ const cs = P.apply(script_ts_1.Script, P.coders.match(customScripts));
366
378
  const c = cs.decode(script);
367
379
  if (c !== undefined) {
368
380
  if (typeof c.type !== 'string' || !c.type.startsWith('tr_'))
@@ -477,12 +489,9 @@ function taprootHashTree(tree, internalPubKey, allowUnknownOutputs = false, cust
477
489
  return { type: 'branch', left, right, hash: u.tagSchnorr('TapBranch', lH, rH) };
478
490
  }
479
491
  exports.TAP_LEAF_VERSION = 0xc0;
480
- const tapLeafHash = (script, version = exports.TAP_LEAF_VERSION) => u.tagSchnorr('TapLeaf', new Uint8Array([version]), script_js_1.VarBytes.encode(script));
492
+ const tapLeafHash = (script, version = exports.TAP_LEAF_VERSION) => u.tagSchnorr('TapLeaf', new Uint8Array([version]), script_ts_1.VarBytes.encode(script));
481
493
  exports.tapLeafHash = tapLeafHash;
482
- // Works as key OR tree.
483
- // If we only have tree, need to add unspendable key, otherwise
484
- // complex multisig wallet can be spent by owner of key only. See TAPROOT_UNSPENDABLE_KEY
485
- function p2tr(internalPubKey, tree, network = utils_js_1.NETWORK, allowUnknownOutputs = false, customScripts) {
494
+ function p2tr(internalPubKey, tree, network = utils_ts_1.NETWORK, allowUnknownOutputs = false, customScripts) {
486
495
  // Unspendable
487
496
  if (!internalPubKey && !tree)
488
497
  throw new Error('p2tr: should have pubKey or scriptTree (or both)');
@@ -491,46 +500,46 @@ function p2tr(internalPubKey, tree, network = utils_js_1.NETWORK, allowUnknownOu
491
500
  : internalPubKey || u.TAPROOT_UNSPENDABLE_KEY;
492
501
  if (!isValidPubkey(pubKey, u.PubT.schnorr))
493
502
  throw new Error('p2tr: non-schnorr pubkey');
494
- let hashedTree = tree
495
- ? taprootAddPath(taprootHashTree(tree, pubKey, allowUnknownOutputs, customScripts))
496
- : undefined;
497
- const tapMerkleRoot = hashedTree ? hashedTree.hash : undefined;
498
- const [tweakedPubkey, parity] = u.taprootTweakPubkey(pubKey, tapMerkleRoot || P.EMPTY);
499
- let leaves;
500
- if (hashedTree) {
501
- leaves = taprootWalkTree(hashedTree).map((l) => ({
503
+ if (tree) {
504
+ let hashedTree = taprootAddPath(taprootHashTree(tree, pubKey, allowUnknownOutputs, customScripts));
505
+ const tapMerkleRoot = hashedTree.hash;
506
+ const [tweakedPubkey, parity] = u.taprootTweakPubkey(pubKey, tapMerkleRoot);
507
+ const leaves = taprootWalkTree(hashedTree).map((l) => ({
502
508
  ...l,
503
- controlBlock: psbt_js_1.TaprootControlBlock.encode({
509
+ controlBlock: psbt_ts_1.TaprootControlBlock.encode({
504
510
  version: (l.version || exports.TAP_LEAF_VERSION) + parity,
505
511
  internalKey: pubKey,
506
512
  merklePath: l.path,
507
513
  }),
508
514
  }));
515
+ return {
516
+ type: 'tr',
517
+ script: exports.OutScript.encode({ type: 'tr', pubkey: tweakedPubkey }),
518
+ address: Address(network).encode({ type: 'tr', pubkey: tweakedPubkey }),
519
+ // For tests
520
+ tweakedPubkey,
521
+ // PSBT stuff
522
+ tapInternalKey: pubKey,
523
+ leaves,
524
+ tapLeafScript: leaves.map((l) => [
525
+ psbt_ts_1.TaprootControlBlock.decode(l.controlBlock),
526
+ u.concatBytes(l.script, new Uint8Array([l.version || exports.TAP_LEAF_VERSION])),
527
+ ]),
528
+ tapMerkleRoot,
529
+ };
509
530
  }
510
- let tapLeafScript;
511
- if (leaves) {
512
- tapLeafScript = leaves.map((l) => [
513
- psbt_js_1.TaprootControlBlock.decode(l.controlBlock),
514
- u.concatBytes(l.script, new Uint8Array([l.version || exports.TAP_LEAF_VERSION])),
515
- ]);
531
+ else {
532
+ const tweakedPubkey = u.taprootTweakPubkey(pubKey, P.EMPTY)[0];
533
+ return {
534
+ type: 'tr',
535
+ script: exports.OutScript.encode({ type: 'tr', pubkey: tweakedPubkey }),
536
+ address: Address(network).encode({ type: 'tr', pubkey: tweakedPubkey }),
537
+ // For tests
538
+ tweakedPubkey,
539
+ // PSBT stuff
540
+ tapInternalKey: pubKey,
541
+ };
516
542
  }
517
- const res = {
518
- type: 'tr',
519
- script: exports.OutScript.encode({ type: 'tr', pubkey: tweakedPubkey }),
520
- address: Address(network).encode({ type: 'tr', pubkey: tweakedPubkey }),
521
- // For tests
522
- tweakedPubkey,
523
- // PSBT stuff
524
- tapInternalKey: pubKey,
525
- };
526
- // Just in case someone would want to select a specific script
527
- if (leaves)
528
- res.leaves = leaves;
529
- if (tapLeafScript)
530
- res.tapLeafScript = tapLeafScript;
531
- if (tapMerkleRoot)
532
- res.tapMerkleRoot = tapMerkleRoot;
533
- return res;
534
543
  }
535
544
  // Returns all combinations of size M from lst
536
545
  function combinations(m, list) {
@@ -566,11 +575,6 @@ function combinations(m, list) {
566
575
  }
567
576
  return res;
568
577
  }
569
- /**
570
- * M-of-N multi-leaf wallet via p2tr_ns. If m == n, single script is emitted.
571
- * Takes O(n^2) if m != n. 99-of-100 is ok, 5-of-100 is not.
572
- * `2-of-[A,B,C] => [A,B] | [A,C] | [B,C]`
573
- */
574
578
  const p2tr_ns = (m, pubkeys, allowSamePubkeys = false) => {
575
579
  if (!allowSamePubkeys)
576
580
  uniqPubkey(pubkeys);
@@ -580,7 +584,6 @@ const p2tr_ns = (m, pubkeys, allowSamePubkeys = false) => {
580
584
  }));
581
585
  };
582
586
  exports.p2tr_ns = p2tr_ns;
583
- // Taproot public key (case of p2tr_ns)
584
587
  const p2tr_pk = (pubkey) => (0, exports.p2tr_ns)(1, [pubkey], undefined)[0];
585
588
  exports.p2tr_pk = p2tr_pk;
586
589
  function p2tr_ms(m, pubkeys, allowSamePubkeys = false) {
@@ -592,7 +595,7 @@ function p2tr_ms(m, pubkeys, allowSamePubkeys = false) {
592
595
  };
593
596
  }
594
597
  // Simple pubkey address, without complex scripts
595
- function getAddress(type, privKey, network = utils_js_1.NETWORK) {
598
+ function getAddress(type, privKey, network = utils_ts_1.NETWORK) {
596
599
  if (type === 'tr') {
597
600
  return p2tr(u.pubSchnorr(privKey), undefined, network).address;
598
601
  }
@@ -605,11 +608,11 @@ function getAddress(type, privKey, network = utils_js_1.NETWORK) {
605
608
  }
606
609
  const _sortPubkeys = (pubkeys) => Array.from(pubkeys).sort(u.compareBytes);
607
610
  exports._sortPubkeys = _sortPubkeys;
608
- function multisig(m, pubkeys, sorted = false, witness = false, network = utils_js_1.NETWORK) {
611
+ function multisig(m, pubkeys, sorted = false, witness = false, network = utils_ts_1.NETWORK) {
609
612
  const ms = (0, exports.p2ms)(m, sorted ? (0, exports._sortPubkeys)(pubkeys) : pubkeys);
610
613
  return witness ? (0, exports.p2wsh)(ms, network) : (0, exports.p2sh)(ms, network);
611
614
  }
612
- function sortedMultisig(m, pubkeys, witness = false, network = utils_js_1.NETWORK) {
615
+ function sortedMultisig(m, pubkeys, witness = false, network = utils_ts_1.NETWORK) {
613
616
  return multisig(m, pubkeys, true, witness, network);
614
617
  }
615
618
  const base58check = (0, base_1.createBase58check)(u.sha256);
@@ -621,7 +624,7 @@ function validateWitness(version, data) {
621
624
  if (version === 0 && !(data.length === 20 || data.length === 32))
622
625
  throw new Error('Witness: invalid length for version');
623
626
  }
624
- function programToWitness(version, data, network = utils_js_1.NETWORK) {
627
+ function programToWitness(version, data, network = utils_ts_1.NETWORK) {
625
628
  validateWitness(version, data);
626
629
  const coder = version === 0 ? base_1.bech32 : base_1.bech32m;
627
630
  return coder.encode(network.bech32, [version].concat(coder.toWords(data)));
@@ -629,7 +632,7 @@ function programToWitness(version, data, network = utils_js_1.NETWORK) {
629
632
  function formatKey(hashed, prefix) {
630
633
  return base58check.encode(u.concatBytes(Uint8Array.from(prefix), hashed));
631
634
  }
632
- function WIF(network = utils_js_1.NETWORK) {
635
+ function WIF(network = utils_ts_1.NETWORK) {
633
636
  return {
634
637
  encode(privKey) {
635
638
  const compressed = u.concatBytes(privKey, new Uint8Array([0x01]));
@@ -650,7 +653,7 @@ function WIF(network = utils_js_1.NETWORK) {
650
653
  };
651
654
  }
652
655
  // Returns OutType, which can be used to create outscript
653
- function Address(network = utils_js_1.NETWORK) {
656
+ function Address(network = utils_ts_1.NETWORK) {
654
657
  return {
655
658
  encode(from) {
656
659
  const { type } = from;