@scure/btc-signer 1.8.1 → 2.0.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 (87) hide show
  1. package/README.md +8 -5
  2. package/index.js +17 -61
  3. package/index.js.map +1 -1
  4. package/musig2.d.ts +2 -2
  5. package/musig2.d.ts.map +1 -1
  6. package/musig2.js +93 -90
  7. package/musig2.js.map +1 -1
  8. package/p2p.d.ts +7 -8
  9. package/p2p.d.ts.map +1 -1
  10. package/p2p.js +32 -38
  11. package/p2p.js.map +1 -1
  12. package/package.json +33 -103
  13. package/payment.js +73 -96
  14. package/payment.js.map +1 -1
  15. package/psbt.d.ts +224 -224
  16. package/psbt.d.ts.map +1 -1
  17. package/psbt.js +58 -63
  18. package/psbt.js.map +1 -1
  19. package/script.d.ts +125 -120
  20. package/script.d.ts.map +1 -1
  21. package/script.js +46 -146
  22. package/script.js.map +1 -1
  23. package/src/musig2.ts +43 -50
  24. package/src/p2p.ts +28 -40
  25. package/src/psbt.ts +7 -7
  26. package/src/script.ts +29 -26
  27. package/src/transaction.ts +21 -21
  28. package/src/utils.ts +41 -22
  29. package/transaction.d.ts +22 -28
  30. package/transaction.d.ts.map +1 -1
  31. package/transaction.js +134 -151
  32. package/transaction.js.map +1 -1
  33. package/utils.d.ts +11 -5
  34. package/utils.d.ts.map +1 -1
  35. package/utils.js +60 -62
  36. package/utils.js.map +1 -1
  37. package/utxo.d.ts +45 -45
  38. package/utxo.d.ts.map +1 -1
  39. package/utxo.js +62 -58
  40. package/utxo.js.map +1 -1
  41. package/_type_test.d.ts +0 -2
  42. package/_type_test.d.ts.map +0 -1
  43. package/_type_test.js +0 -59
  44. package/_type_test.js.map +0 -1
  45. package/esm/_type_test.d.ts +0 -2
  46. package/esm/_type_test.d.ts.map +0 -1
  47. package/esm/_type_test.js +0 -57
  48. package/esm/_type_test.js.map +0 -1
  49. package/esm/index.d.ts +0 -22
  50. package/esm/index.d.ts.map +0 -1
  51. package/esm/index.js +0 -22
  52. package/esm/index.js.map +0 -1
  53. package/esm/musig2.d.ts +0 -148
  54. package/esm/musig2.d.ts.map +0 -1
  55. package/esm/musig2.js +0 -404
  56. package/esm/musig2.js.map +0 -1
  57. package/esm/p2p.d.ts +0 -38
  58. package/esm/p2p.d.ts.map +0 -1
  59. package/esm/p2p.js +0 -156
  60. package/esm/p2p.js.map +0 -1
  61. package/esm/package.json +0 -1
  62. package/esm/payment.d.ts +0 -200
  63. package/esm/payment.d.ts.map +0 -1
  64. package/esm/payment.js +0 -697
  65. package/esm/payment.js.map +0 -1
  66. package/esm/psbt.d.ts +0 -820
  67. package/esm/psbt.d.ts.map +0 -1
  68. package/esm/psbt.js +0 -409
  69. package/esm/psbt.js.map +0 -1
  70. package/esm/script.d.ts +0 -170
  71. package/esm/script.d.ts.map +0 -1
  72. package/esm/script.js +0 -356
  73. package/esm/script.js.map +0 -1
  74. package/esm/transaction.d.ts +0 -172
  75. package/esm/transaction.d.ts.map +0 -1
  76. package/esm/transaction.js +0 -1185
  77. package/esm/transaction.js.map +0 -1
  78. package/esm/utils.d.ts +0 -35
  79. package/esm/utils.d.ts.map +0 -1
  80. package/esm/utils.js +0 -118
  81. package/esm/utils.js.map +0 -1
  82. package/esm/utxo.d.ts +0 -198
  83. package/esm/utxo.d.ts.map +0 -1
  84. package/esm/utxo.js +0 -461
  85. package/esm/utxo.js.map +0 -1
  86. package/src/_type_test.ts +0 -69
  87. package/src/package.json +0 -3
package/payment.js CHANGED
@@ -1,32 +1,19 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports._sortPubkeys = exports.p2tr_pk = exports.p2tr_ns = exports.tapLeafHash = exports.TAP_LEAF_VERSION = exports.p2ms = exports.p2wpkh = exports.p2wsh = exports.p2sh = exports.p2pkh = exports.p2pk = exports.OutScript = void 0;
4
- exports.checkScript = checkScript;
5
- exports.taprootListToTree = taprootListToTree;
6
- exports.p2tr = p2tr;
7
- exports.combinations = combinations;
8
- exports.p2tr_ms = p2tr_ms;
9
- exports.getAddress = getAddress;
10
- exports.multisig = multisig;
11
- exports.sortedMultisig = sortedMultisig;
12
- exports.WIF = WIF;
13
- exports.Address = Address;
14
- const base_1 = require("@scure/base");
15
- const P = require("micro-packed");
16
- const psbt_ts_1 = require("./psbt.js");
17
- const script_ts_1 = require("./script.js");
18
- const u = require("./utils.js");
19
- const utils_ts_1 = require("./utils.js");
1
+ import { bech32, bech32m, createBase58check, hex } from '@scure/base';
2
+ import * as P from 'micro-packed';
3
+ import { TaprootControlBlock } from "./psbt.js";
4
+ import { OpToNum, Script, VarBytes } from "./script.js";
5
+ import * as u from "./utils.js";
6
+ import { NETWORK } from "./utils.js";
20
7
  const OutP2A = {
21
8
  encode(from) {
22
- if (from.length !== 2 || from[0] !== 1 || !u.isBytes(from[1]) || base_1.hex.encode(from[1]) !== '4e73')
9
+ if (from.length !== 2 || from[0] !== 1 || !u.isBytes(from[1]) || hex.encode(from[1]) !== '4e73')
23
10
  return;
24
- return { type: 'p2a', script: script_ts_1.Script.encode(from) };
11
+ return { type: 'p2a', script: Script.encode(from) };
25
12
  },
26
13
  decode: (to) => {
27
14
  if (to.type !== 'p2a')
28
15
  return;
29
- return [1, base_1.hex.decode('4e73')];
16
+ return [1, hex.decode('4e73')];
30
17
  },
31
18
  };
32
19
  function isValidPubkey(pub, type) {
@@ -151,7 +138,7 @@ const OutTRMS = {
151
138
  if (from[last] !== 'NUMEQUAL' || from[1] !== 'CHECKSIG')
152
139
  return;
153
140
  const pubkeys = [];
154
- const m = (0, script_ts_1.OpToNum)(from[last - 1]);
141
+ const m = OpToNum(from[last - 1]);
155
142
  if (typeof m !== 'number')
156
143
  return;
157
144
  for (let i = 0; i < last - 1; i++) {
@@ -179,9 +166,9 @@ const OutTRMS = {
179
166
  };
180
167
  const OutUnknown = {
181
168
  encode(from) {
182
- return { type: 'unknown', script: script_ts_1.Script.encode(from) };
169
+ return { type: 'unknown', script: Script.encode(from) };
183
170
  },
184
- decode: (to) => to.type === 'unknown' ? script_ts_1.Script.decode(to.script) : undefined,
171
+ decode: (to) => to.type === 'unknown' ? Script.decode(to.script) : undefined,
185
172
  };
186
173
  // /Payments
187
174
  const OutScripts = [
@@ -202,9 +189,9 @@ const OutScripts = [
202
189
  // - removeOutScript
203
190
  // - We can do that as log we modify array in-place
204
191
  // - Actually is very hard, since there is sign/finalize logic
205
- const _OutScript = P.apply(script_ts_1.Script, P.coders.match(OutScripts));
192
+ const _OutScript = P.apply(Script, P.coders.match(OutScripts));
206
193
  // We can validate this once, because of packed & coders
207
- exports.OutScript = P.validate(_OutScript, (i) => {
194
+ export const OutScript = P.validate(_OutScript, (i) => {
208
195
  if (i.type === 'pk' && !isValidPubkey(i.pubkey, u.PubT.ecdsa))
209
196
  throw new Error('OutScript/pk: wrong key');
210
197
  if ((i.type === 'pkh' || i.type === 'sh' || i.type === 'wpkh') &&
@@ -241,22 +228,22 @@ exports.OutScript = P.validate(_OutScript, (i) => {
241
228
  function checkWSH(s, witnessScript) {
242
229
  if (!u.equalBytes(s.hash, u.sha256(witnessScript)))
243
230
  throw new Error('checkScript: wsh wrong witnessScript hash');
244
- const w = exports.OutScript.decode(witnessScript);
231
+ const w = OutScript.decode(witnessScript);
245
232
  if (w.type === 'tr' || w.type === 'tr_ns' || w.type === 'tr_ms')
246
233
  throw new Error(`checkScript: P2${w.type} cannot be wrapped in P2SH`);
247
234
  if (w.type === 'wpkh' || w.type === 'sh')
248
235
  throw new Error(`checkScript: P2${w.type} cannot be wrapped in P2WSH`);
249
236
  }
250
- function checkScript(script, redeemScript, witnessScript) {
237
+ export function checkScript(script, redeemScript, witnessScript) {
251
238
  if (script) {
252
- const s = exports.OutScript.decode(script);
239
+ const s = OutScript.decode(script);
253
240
  // ms||pk maybe work, but there will be no address, hard to spend
254
241
  if (s.type === 'tr_ns' || s.type === 'tr_ms' || s.type === 'ms' || s.type == 'pk')
255
242
  throw new Error(`checkScript: non-wrapped ${s.type}`);
256
243
  if (s.type === 'sh' && redeemScript) {
257
244
  if (!u.equalBytes(s.hash, u.hash160(redeemScript)))
258
245
  throw new Error('checkScript: sh wrong redeemScript hash');
259
- const r = exports.OutScript.decode(redeemScript);
246
+ const r = OutScript.decode(redeemScript);
260
247
  if (r.type === 'tr' || r.type === 'tr_ns' || r.type === 'tr_ms')
261
248
  throw new Error(`checkScript: P2${r.type} cannot be wrapped in P2SH`);
262
249
  // Not sure if this unspendable, but we cannot represent this via PSBT
@@ -267,7 +254,7 @@ function checkScript(script, redeemScript, witnessScript) {
267
254
  checkWSH(s, witnessScript);
268
255
  }
269
256
  if (redeemScript) {
270
- const r = exports.OutScript.decode(redeemScript);
257
+ const r = OutScript.decode(redeemScript);
271
258
  if (r.type === 'wsh' && witnessScript)
272
259
  checkWSH(r, witnessScript);
273
260
  }
@@ -275,44 +262,42 @@ function checkScript(script, redeemScript, witnessScript) {
275
262
  function uniqPubkey(pubkeys) {
276
263
  const map = {};
277
264
  for (const pub of pubkeys) {
278
- const key = base_1.hex.encode(pub);
265
+ const key = hex.encode(pub);
279
266
  if (map[key])
280
- throw new Error(`Multisig: non-uniq pubkey: ${pubkeys.map(base_1.hex.encode)}`);
267
+ throw new Error(`Multisig: non-uniq pubkey: ${pubkeys.map(hex.encode)}`);
281
268
  map[key] = true;
282
269
  }
283
270
  }
284
- const p2pk = (pubkey, _network = utils_ts_1.NETWORK) => {
271
+ export const p2pk = (pubkey, _network = NETWORK) => {
285
272
  // network is unused
286
273
  if (!isValidPubkey(pubkey, u.PubT.ecdsa))
287
274
  throw new Error('P2PK: invalid publicKey');
288
- return { type: 'pk', script: exports.OutScript.encode({ type: 'pk', pubkey }) };
275
+ return { type: 'pk', script: OutScript.encode({ type: 'pk', pubkey }) };
289
276
  };
290
- exports.p2pk = p2pk;
291
- const p2pkh = (publicKey, network = utils_ts_1.NETWORK) => {
277
+ export const p2pkh = (publicKey, network = NETWORK) => {
292
278
  if (!isValidPubkey(publicKey, u.PubT.ecdsa))
293
279
  throw new Error('P2PKH: invalid publicKey');
294
280
  const hash = u.hash160(publicKey);
295
281
  return {
296
282
  type: 'pkh',
297
- script: exports.OutScript.encode({ type: 'pkh', hash }),
283
+ script: OutScript.encode({ type: 'pkh', hash }),
298
284
  address: Address(network).encode({ type: 'pkh', hash }),
299
285
  hash,
300
286
  };
301
287
  };
302
- exports.p2pkh = p2pkh;
303
- const p2sh = (child, network = utils_ts_1.NETWORK) => {
288
+ export const p2sh = (child, network = NETWORK) => {
304
289
  // It is already tested inside noble-hashes and checkScript
305
290
  const cs = child.script;
306
291
  if (!u.isBytes(cs))
307
292
  throw new Error(`Wrong script: ${typeof child.script}, expected Uint8Array`);
308
293
  const hash = u.hash160(cs);
309
- const script = exports.OutScript.encode({ type: 'sh', hash });
294
+ const script = OutScript.encode({ type: 'sh', hash });
310
295
  checkScript(script, cs, child.witnessScript);
311
296
  if (child.witnessScript) {
312
297
  return {
313
298
  type: 'sh',
314
299
  redeemScript: cs,
315
- script: exports.OutScript.encode({ type: 'sh', hash }),
300
+ script: OutScript.encode({ type: 'sh', hash }),
316
301
  address: Address(network).encode({ type: 'sh', hash }),
317
302
  hash,
318
303
  witnessScript: child.witnessScript,
@@ -322,30 +307,28 @@ const p2sh = (child, network = utils_ts_1.NETWORK) => {
322
307
  return {
323
308
  type: 'sh',
324
309
  redeemScript: cs,
325
- script: exports.OutScript.encode({ type: 'sh', hash }),
310
+ script: OutScript.encode({ type: 'sh', hash }),
326
311
  address: Address(network).encode({ type: 'sh', hash }),
327
312
  hash,
328
313
  };
329
314
  }
330
315
  };
331
- exports.p2sh = p2sh;
332
- const p2wsh = (child, network = utils_ts_1.NETWORK) => {
316
+ export const p2wsh = (child, network = NETWORK) => {
333
317
  const cs = child.script;
334
318
  if (!u.isBytes(cs))
335
319
  throw new Error(`Wrong script: ${typeof cs}, expected Uint8Array`);
336
320
  const hash = u.sha256(cs);
337
- const script = exports.OutScript.encode({ type: 'wsh', hash });
321
+ const script = OutScript.encode({ type: 'wsh', hash });
338
322
  checkScript(script, undefined, cs);
339
323
  return {
340
324
  type: 'wsh',
341
325
  witnessScript: cs,
342
- script: exports.OutScript.encode({ type: 'wsh', hash }),
326
+ script: OutScript.encode({ type: 'wsh', hash }),
343
327
  address: Address(network).encode({ type: 'wsh', hash }),
344
328
  hash,
345
329
  };
346
330
  };
347
- exports.p2wsh = p2wsh;
348
- const p2wpkh = (publicKey, network = utils_ts_1.NETWORK) => {
331
+ export const p2wpkh = (publicKey, network = NETWORK) => {
349
332
  if (!isValidPubkey(publicKey, u.PubT.ecdsa))
350
333
  throw new Error('P2WPKH: invalid publicKey');
351
334
  if (publicKey.length === 65)
@@ -353,28 +336,26 @@ const p2wpkh = (publicKey, network = utils_ts_1.NETWORK) => {
353
336
  const hash = u.hash160(publicKey);
354
337
  return {
355
338
  type: 'wpkh',
356
- script: exports.OutScript.encode({ type: 'wpkh', hash }),
339
+ script: OutScript.encode({ type: 'wpkh', hash }),
357
340
  address: Address(network).encode({ type: 'wpkh', hash }),
358
341
  hash,
359
342
  };
360
343
  };
361
- exports.p2wpkh = p2wpkh;
362
- const p2ms = (m, pubkeys, allowSamePubkeys = false) => {
344
+ export const p2ms = (m, pubkeys, allowSamePubkeys = false) => {
363
345
  if (!allowSamePubkeys)
364
346
  uniqPubkey(pubkeys);
365
347
  return {
366
348
  type: 'ms',
367
- script: exports.OutScript.encode({ type: 'ms', pubkeys, m }),
349
+ script: OutScript.encode({ type: 'ms', pubkeys, m }),
368
350
  };
369
351
  };
370
- exports.p2ms = p2ms;
371
352
  function checkTaprootScript(script, internalPubKey, allowUnknownOutputs = false, customScripts) {
372
- const out = exports.OutScript.decode(script);
353
+ const out = OutScript.decode(script);
373
354
  if (out.type === 'unknown') {
374
355
  // NOTE: this check should be before allowUnknownOutputs, otherwise it will
375
356
  // disable custom. All custom scripts for taproot should have prefix 'tr_'
376
357
  if (customScripts) {
377
- const cs = P.apply(script_ts_1.Script, P.coders.match(customScripts));
358
+ const cs = P.apply(Script, P.coders.match(customScripts));
378
359
  const c = cs.decode(script);
379
360
  if (c !== undefined) {
380
361
  if (typeof c.type !== 'string' || !c.type.startsWith('tr_'))
@@ -406,7 +387,7 @@ function checkTaprootScript(script, internalPubKey, allowUnknownOutputs = false,
406
387
  }
407
388
  }
408
389
  // Helper for generating binary tree from list, with weights
409
- function taprootListToTree(taprootList) {
390
+ export function taprootListToTree(taprootList) {
410
391
  // Clone input in order to not corrupt it
411
392
  const lst = Array.from(taprootList);
412
393
  // We have at least 2 elements => can create branch
@@ -462,7 +443,7 @@ function taprootHashTree(tree, internalPubKey, allowUnknownOutputs = false, cust
462
443
  // Earliest tree walk where we can validate tapScripts
463
444
  if (tree.tapLeafScript || (tree.tapMerkleRoot && !u.equalBytes(tree.tapMerkleRoot, P.EMPTY)))
464
445
  throw new Error('P2TR: tapRoot leafScript cannot have tree');
465
- const script = typeof leafScript === 'string' ? base_1.hex.decode(leafScript) : leafScript;
446
+ const script = typeof leafScript === 'string' ? hex.decode(leafScript) : leafScript;
466
447
  if (!u.isBytes(script))
467
448
  throw new Error(`checkScript: wrong script type=${script}`);
468
449
  checkTaprootScript(script, internalPubKey, allowUnknownOutputs, customScripts);
@@ -470,7 +451,7 @@ function taprootHashTree(tree, internalPubKey, allowUnknownOutputs = false, cust
470
451
  type: 'leaf',
471
452
  version,
472
453
  script,
473
- hash: (0, exports.tapLeafHash)(script, version),
454
+ hash: tapLeafHash(script, version),
474
455
  };
475
456
  }
476
457
  // If tree / branch is not binary tree, convert it
@@ -488,15 +469,14 @@ function taprootHashTree(tree, internalPubKey, allowUnknownOutputs = false, cust
488
469
  [lH, rH] = [rH, lH];
489
470
  return { type: 'branch', left, right, hash: u.tagSchnorr('TapBranch', lH, rH) };
490
471
  }
491
- exports.TAP_LEAF_VERSION = 0xc0;
492
- const tapLeafHash = (script, version = exports.TAP_LEAF_VERSION) => u.tagSchnorr('TapLeaf', new Uint8Array([version]), script_ts_1.VarBytes.encode(script));
493
- exports.tapLeafHash = tapLeafHash;
494
- function p2tr(internalPubKey, tree, network = utils_ts_1.NETWORK, allowUnknownOutputs = false, customScripts) {
472
+ export const TAP_LEAF_VERSION = 0xc0;
473
+ export const tapLeafHash = (script, version = TAP_LEAF_VERSION) => u.tagSchnorr('TapLeaf', new Uint8Array([version]), VarBytes.encode(script));
474
+ export function p2tr(internalPubKey, tree, network = NETWORK, allowUnknownOutputs = false, customScripts) {
495
475
  // Unspendable
496
476
  if (!internalPubKey && !tree)
497
477
  throw new Error('p2tr: should have pubKey or scriptTree (or both)');
498
478
  const pubKey = typeof internalPubKey === 'string'
499
- ? base_1.hex.decode(internalPubKey)
479
+ ? hex.decode(internalPubKey)
500
480
  : internalPubKey || u.TAPROOT_UNSPENDABLE_KEY;
501
481
  if (!isValidPubkey(pubKey, u.PubT.schnorr))
502
482
  throw new Error('p2tr: non-schnorr pubkey');
@@ -506,15 +486,15 @@ function p2tr(internalPubKey, tree, network = utils_ts_1.NETWORK, allowUnknownOu
506
486
  const [tweakedPubkey, parity] = u.taprootTweakPubkey(pubKey, tapMerkleRoot);
507
487
  const leaves = taprootWalkTree(hashedTree).map((l) => ({
508
488
  ...l,
509
- controlBlock: psbt_ts_1.TaprootControlBlock.encode({
510
- version: (l.version || exports.TAP_LEAF_VERSION) + parity,
489
+ controlBlock: TaprootControlBlock.encode({
490
+ version: (l.version || TAP_LEAF_VERSION) + parity,
511
491
  internalKey: pubKey,
512
492
  merklePath: l.path,
513
493
  }),
514
494
  }));
515
495
  return {
516
496
  type: 'tr',
517
- script: exports.OutScript.encode({ type: 'tr', pubkey: tweakedPubkey }),
497
+ script: OutScript.encode({ type: 'tr', pubkey: tweakedPubkey }),
518
498
  address: Address(network).encode({ type: 'tr', pubkey: tweakedPubkey }),
519
499
  // For tests
520
500
  tweakedPubkey,
@@ -522,8 +502,8 @@ function p2tr(internalPubKey, tree, network = utils_ts_1.NETWORK, allowUnknownOu
522
502
  tapInternalKey: pubKey,
523
503
  leaves,
524
504
  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])),
505
+ TaprootControlBlock.decode(l.controlBlock),
506
+ u.concatBytes(l.script, new Uint8Array([l.version || TAP_LEAF_VERSION])),
527
507
  ]),
528
508
  tapMerkleRoot,
529
509
  };
@@ -532,7 +512,7 @@ function p2tr(internalPubKey, tree, network = utils_ts_1.NETWORK, allowUnknownOu
532
512
  const tweakedPubkey = u.taprootTweakPubkey(pubKey, P.EMPTY)[0];
533
513
  return {
534
514
  type: 'tr',
535
- script: exports.OutScript.encode({ type: 'tr', pubkey: tweakedPubkey }),
515
+ script: OutScript.encode({ type: 'tr', pubkey: tweakedPubkey }),
536
516
  address: Address(network).encode({ type: 'tr', pubkey: tweakedPubkey }),
537
517
  // For tests
538
518
  tweakedPubkey,
@@ -542,7 +522,7 @@ function p2tr(internalPubKey, tree, network = utils_ts_1.NETWORK, allowUnknownOu
542
522
  }
543
523
  }
544
524
  // Returns all combinations of size M from lst
545
- function combinations(m, list) {
525
+ export function combinations(m, list) {
546
526
  const res = [];
547
527
  if (!Array.isArray(list))
548
528
  throw new Error('combinations: lst arg should be array');
@@ -575,47 +555,44 @@ function combinations(m, list) {
575
555
  }
576
556
  return res;
577
557
  }
578
- const p2tr_ns = (m, pubkeys, allowSamePubkeys = false) => {
558
+ export const p2tr_ns = (m, pubkeys, allowSamePubkeys = false) => {
579
559
  if (!allowSamePubkeys)
580
560
  uniqPubkey(pubkeys);
581
561
  return combinations(m, pubkeys).map((i) => ({
582
562
  type: 'tr_ns',
583
- script: exports.OutScript.encode({ type: 'tr_ns', pubkeys: i }),
563
+ script: OutScript.encode({ type: 'tr_ns', pubkeys: i }),
584
564
  }));
585
565
  };
586
- exports.p2tr_ns = p2tr_ns;
587
- const p2tr_pk = (pubkey) => (0, exports.p2tr_ns)(1, [pubkey], undefined)[0];
588
- exports.p2tr_pk = p2tr_pk;
589
- function p2tr_ms(m, pubkeys, allowSamePubkeys = false) {
566
+ export const p2tr_pk = (pubkey) => p2tr_ns(1, [pubkey], undefined)[0];
567
+ export function p2tr_ms(m, pubkeys, allowSamePubkeys = false) {
590
568
  if (!allowSamePubkeys)
591
569
  uniqPubkey(pubkeys);
592
570
  return {
593
571
  type: 'tr_ms',
594
- script: exports.OutScript.encode({ type: 'tr_ms', pubkeys, m }),
572
+ script: OutScript.encode({ type: 'tr_ms', pubkeys, m }),
595
573
  };
596
574
  }
597
575
  // Simple pubkey address, without complex scripts
598
- function getAddress(type, privKey, network = utils_ts_1.NETWORK) {
576
+ export function getAddress(type, privKey, network = NETWORK) {
599
577
  if (type === 'tr') {
600
578
  return p2tr(u.pubSchnorr(privKey), undefined, network).address;
601
579
  }
602
580
  const pubKey = u.pubECDSA(privKey);
603
581
  if (type === 'pkh')
604
- return (0, exports.p2pkh)(pubKey, network).address;
582
+ return p2pkh(pubKey, network).address;
605
583
  if (type === 'wpkh')
606
- return (0, exports.p2wpkh)(pubKey, network).address;
584
+ return p2wpkh(pubKey, network).address;
607
585
  throw new Error(`getAddress: unknown type=${type}`);
608
586
  }
609
- const _sortPubkeys = (pubkeys) => Array.from(pubkeys).sort(u.compareBytes);
610
- exports._sortPubkeys = _sortPubkeys;
611
- function multisig(m, pubkeys, sorted = false, witness = false, network = utils_ts_1.NETWORK) {
612
- const ms = (0, exports.p2ms)(m, sorted ? (0, exports._sortPubkeys)(pubkeys) : pubkeys);
613
- return witness ? (0, exports.p2wsh)(ms, network) : (0, exports.p2sh)(ms, network);
587
+ export const _sortPubkeys = (pubkeys) => Array.from(pubkeys).sort(u.compareBytes);
588
+ export function multisig(m, pubkeys, sorted = false, witness = false, network = NETWORK) {
589
+ const ms = p2ms(m, sorted ? _sortPubkeys(pubkeys) : pubkeys);
590
+ return witness ? p2wsh(ms, network) : p2sh(ms, network);
614
591
  }
615
- function sortedMultisig(m, pubkeys, witness = false, network = utils_ts_1.NETWORK) {
592
+ export function sortedMultisig(m, pubkeys, witness = false, network = NETWORK) {
616
593
  return multisig(m, pubkeys, true, witness, network);
617
594
  }
618
- const base58check = (0, base_1.createBase58check)(u.sha256);
595
+ const base58check = createBase58check(u.sha256);
619
596
  function validateWitness(version, data) {
620
597
  if (data.length < 2 || data.length > 40)
621
598
  throw new Error('Witness: invalid length');
@@ -624,15 +601,15 @@ function validateWitness(version, data) {
624
601
  if (version === 0 && !(data.length === 20 || data.length === 32))
625
602
  throw new Error('Witness: invalid length for version');
626
603
  }
627
- function programToWitness(version, data, network = utils_ts_1.NETWORK) {
604
+ function programToWitness(version, data, network = NETWORK) {
628
605
  validateWitness(version, data);
629
- const coder = version === 0 ? base_1.bech32 : base_1.bech32m;
606
+ const coder = version === 0 ? bech32 : bech32m;
630
607
  return coder.encode(network.bech32, [version].concat(coder.toWords(data)));
631
608
  }
632
609
  function formatKey(hashed, prefix) {
633
610
  return base58check.encode(u.concatBytes(Uint8Array.from(prefix), hashed));
634
611
  }
635
- function WIF(network = utils_ts_1.NETWORK) {
612
+ export function WIF(network = NETWORK) {
636
613
  return {
637
614
  encode(privKey) {
638
615
  const compressed = u.concatBytes(privKey, new Uint8Array([0x01]));
@@ -653,7 +630,7 @@ function WIF(network = utils_ts_1.NETWORK) {
653
630
  };
654
631
  }
655
632
  // Returns OutType, which can be used to create outscript
656
- function Address(network = utils_ts_1.NETWORK) {
633
+ export function Address(network = NETWORK) {
657
634
  return {
658
635
  encode(from) {
659
636
  const { type } = from;
@@ -676,20 +653,20 @@ function Address(network = utils_ts_1.NETWORK) {
676
653
  if (network.bech32 && address.toLowerCase().startsWith(`${network.bech32}1`)) {
677
654
  let res;
678
655
  try {
679
- res = base_1.bech32.decode(address);
656
+ res = bech32.decode(address);
680
657
  if (res.words[0] !== 0)
681
658
  throw new Error(`bech32: wrong version=${res.words[0]}`);
682
659
  }
683
660
  catch (_) {
684
661
  // Starting from version 1 it is decoded as bech32m
685
- res = base_1.bech32m.decode(address);
662
+ res = bech32m.decode(address);
686
663
  if (res.words[0] === 0)
687
664
  throw new Error(`bech32m: wrong version=${res.words[0]}`);
688
665
  }
689
666
  if (res.prefix !== network.bech32)
690
667
  throw new Error(`wrong bech32 prefix=${res.prefix}`);
691
668
  const [version, ...program] = res.words;
692
- const data = base_1.bech32.fromWords(program);
669
+ const data = bech32.fromWords(program);
693
670
  validateWitness(version, data);
694
671
  if (version === 0 && data.length === 32)
695
672
  return { type: 'wsh', hash: data };
package/payment.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"payment.js","sourceRoot":"","sources":["src/payment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payment.js","sourceRoot":"","sources":["src/payment.ts"],"names":[],"mappings":"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"}