@bsv/sdk 1.1.13 → 1.1.15

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 (158) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/compat/BIP39.js +272 -0
  3. package/dist/cjs/src/compat/BIP39.js.map +1 -0
  4. package/dist/cjs/src/index.js +5 -0
  5. package/dist/cjs/src/index.js.map +1 -0
  6. package/dist/cjs/src/primitives/Polynomial.js +81 -0
  7. package/dist/cjs/src/primitives/Polynomial.js.map +1 -0
  8. package/dist/cjs/src/primitives/PrivateKey.js +165 -0
  9. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  10. package/dist/cjs/src/primitives/index.js +5 -1
  11. package/dist/cjs/src/primitives/index.js.map +1 -1
  12. package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
  13. package/dist/cjs/src/script/templates/P2PKHT.js +99 -0
  14. package/dist/cjs/src/script/templates/P2PKHT.js.map +1 -0
  15. package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
  16. package/dist/cjs/src/totp/converters.js +14 -0
  17. package/dist/cjs/src/totp/converters.js.map +1 -0
  18. package/dist/cjs/src/totp/pike-totp.js +75 -0
  19. package/dist/cjs/src/totp/pike-totp.js.map +1 -0
  20. package/dist/cjs/src/totp/types.js +3 -0
  21. package/dist/cjs/src/totp/types.js.map +1 -0
  22. package/dist/cjs/src/transaction/broadcasters/ARC.js +4 -4
  23. package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
  24. package/dist/cjs/src/transaction/broadcasters/BRC22.js +25 -0
  25. package/dist/cjs/src/transaction/broadcasters/BRC22.js.map +1 -0
  26. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  27. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +3 -3
  28. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  29. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
  30. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +2 -2
  31. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  32. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  33. package/dist/cjs/src/transaction/http/DefaultHttpClient.js +2 -2
  34. package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
  35. package/dist/cjs/src/transaction/http/FetchHttpClient.js +2 -2
  36. package/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -1
  37. package/dist/cjs/src/transaction/http/NodejsHttpClient.js +2 -2
  38. package/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -1
  39. package/dist/cjs/src/transaction/http/index.js.map +1 -1
  40. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  41. package/dist/esm/src/compat/BIP39.js +272 -0
  42. package/dist/esm/src/compat/BIP39.js.map +1 -0
  43. package/dist/esm/src/primitives/Polynomial.js +77 -0
  44. package/dist/esm/src/primitives/Polynomial.js.map +1 -0
  45. package/dist/esm/src/primitives/PrivateKey.js +143 -0
  46. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  47. package/dist/esm/src/primitives/index.js +2 -1
  48. package/dist/esm/src/primitives/index.js.map +1 -1
  49. package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
  50. package/dist/esm/src/script/templates/P2PKHT.js +96 -0
  51. package/dist/esm/src/script/templates/P2PKHT.js.map +1 -0
  52. package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
  53. package/dist/esm/src/totp/converters.js +9 -0
  54. package/dist/esm/src/totp/converters.js.map +1 -0
  55. package/dist/esm/src/totp/pike-totp.js +67 -0
  56. package/dist/esm/src/totp/pike-totp.js.map +1 -0
  57. package/dist/esm/src/totp/types.js +2 -0
  58. package/dist/esm/src/totp/types.js.map +1 -0
  59. package/dist/esm/src/transaction/broadcasters/ARC.js +7 -7
  60. package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -1
  61. package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js +1 -1
  62. package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  63. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +4 -4
  64. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  65. package/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js +1 -1
  66. package/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
  67. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
  68. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  69. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  70. package/dist/esm/src/transaction/http/DefaultHttpClient.js +2 -2
  71. package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
  72. package/dist/esm/src/transaction/http/FetchHttpClient.js +2 -2
  73. package/dist/esm/src/transaction/http/FetchHttpClient.js.map +1 -1
  74. package/dist/esm/src/transaction/http/NodejsHttpClient.js +2 -2
  75. package/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -1
  76. package/dist/esm/src/transaction/http/index.js.map +1 -1
  77. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  78. package/dist/types/src/compat/BIP39.d.ts +132 -0
  79. package/dist/types/src/compat/BIP39.d.ts.map +1 -0
  80. package/dist/types/src/primitives/Polynomial.d.ts +32 -0
  81. package/dist/types/src/primitives/Polynomial.d.ts.map +1 -0
  82. package/dist/types/src/primitives/PrivateKey.d.ts +72 -0
  83. package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
  84. package/dist/types/src/primitives/index.d.ts +2 -1
  85. package/dist/types/src/primitives/index.d.ts.map +1 -1
  86. package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -1
  87. package/dist/types/src/script/templates/P2PKHT.d.ts +37 -0
  88. package/dist/types/src/script/templates/P2PKHT.d.ts.map +1 -0
  89. package/dist/types/src/totp/converters.d.ts +3 -0
  90. package/dist/types/src/totp/converters.d.ts.map +1 -0
  91. package/dist/types/src/totp/pike-totp.d.ts +25 -0
  92. package/dist/types/src/totp/pike-totp.d.ts.map +1 -0
  93. package/dist/types/src/totp/types.d.ts +11 -0
  94. package/dist/types/src/totp/types.d.ts.map +1 -0
  95. package/dist/types/src/transaction/broadcasters/ARC.d.ts +1 -1
  96. package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -1
  97. package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts +1 -1
  98. package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts.map +1 -1
  99. package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts +1 -1
  100. package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts.map +1 -1
  101. package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts +1 -1
  102. package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts.map +1 -1
  103. package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts +2 -2
  104. package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -1
  105. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +1 -1
  106. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts.map +1 -1
  107. package/dist/types/src/transaction/http/FetchHttpClient.d.ts +7 -9
  108. package/dist/types/src/transaction/http/FetchHttpClient.d.ts.map +1 -1
  109. package/dist/types/src/transaction/http/HttpClient.d.ts +5 -5
  110. package/dist/types/src/transaction/http/HttpClient.d.ts.map +1 -1
  111. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts +5 -6
  112. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts.map +1 -1
  113. package/dist/types/src/transaction/http/index.d.ts.map +1 -1
  114. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  115. package/docs/primitives.md +231 -16
  116. package/docs/transaction.md +38 -37
  117. package/package.json +1 -1
  118. package/src/compat/__tests/BSM.test.ts +37 -37
  119. package/src/compat/__tests/ECIES.test.ts +71 -71
  120. package/src/compat/__tests/HD.test.ts +362 -362
  121. package/src/compat/__tests/Mnemonic.test.ts +147 -148
  122. package/src/compat/__tests/Mnemonic.vectors.ts +170 -170
  123. package/src/messages/__tests/EncryptedMessage.test.ts +16 -16
  124. package/src/primitives/Point.ts +29 -10
  125. package/src/primitives/Polynomial.ts +89 -0
  126. package/src/primitives/PrivateKey.ts +147 -1
  127. package/src/primitives/PublicKey.ts +17 -2
  128. package/src/primitives/__tests/AESGCM.test.ts +20 -20
  129. package/src/primitives/__tests/Hash.test.ts +2 -2
  130. package/src/primitives/__tests/PBKDF2.vectors.ts +93 -93
  131. package/src/primitives/__tests/PrivateKey.split.test.ts +70 -0
  132. package/src/primitives/__tests/PublicKey.test.ts +14 -1
  133. package/src/primitives/__tests/bug-31.test.ts +24 -26
  134. package/src/primitives/__tests/utils.test.ts +13 -13
  135. package/src/primitives/index.ts +2 -1
  136. package/src/script/__tests/Script.test.ts +1 -1
  137. package/src/script/__tests/SpendComplex.test.ts +6 -6
  138. package/src/script/__tests/script.invalid.vectors.ts +1464 -1464
  139. package/src/script/__tests/script.valid.vectors.ts +1962 -1962
  140. package/src/script/__tests/spend.valid.vectors.ts +1369 -1369
  141. package/src/script/templates/P2PKH.ts +6 -6
  142. package/src/script/templates/RPuzzle.ts +1 -1
  143. package/src/transaction/__tests/Transaction.test.ts +5 -5
  144. package/src/transaction/__tests/bump.invalid.vectors.ts +1 -1
  145. package/src/transaction/__tests/bump.valid.vectors.ts +3 -3
  146. package/src/transaction/broadcasters/ARC.ts +20 -21
  147. package/src/transaction/broadcasters/DefaultBroadcaster.ts +3 -3
  148. package/src/transaction/broadcasters/WhatsOnChainBroadcaster.ts +10 -10
  149. package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +7 -10
  150. package/src/transaction/chaintrackers/DefaultChainTracker.ts +3 -3
  151. package/src/transaction/chaintrackers/WhatsOnChain.ts +10 -12
  152. package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +13 -17
  153. package/src/transaction/fee-models/SatoshisPerKilobyte.ts +2 -2
  154. package/src/transaction/http/DefaultHttpClient.ts +13 -13
  155. package/src/transaction/http/FetchHttpClient.ts +14 -16
  156. package/src/transaction/http/HttpClient.ts +22 -23
  157. package/src/transaction/http/NodejsHttpClient.ts +23 -25
  158. package/src/transaction/http/index.ts +6 -6
@@ -5,6 +5,57 @@ import { sign, verify } from './ECDSA.js';
5
5
  import { sha256, sha256hmac } from './Hash.js';
6
6
  import Random from './Random.js';
7
7
  import { fromBase58Check, toArray, toBase58Check } from './utils.js';
8
+ import Polynomial, { PointInFiniteField } from './Polynomial.js';
9
+ /**
10
+ * @class KeyShares
11
+ *
12
+ * This class is used to store the shares of a private key.
13
+ *
14
+ * @param shares - An array of shares
15
+ * @param threshold - The number of shares required to recombine the private key
16
+ *
17
+ * @returns KeyShares
18
+ *
19
+ * @example
20
+ * const key = PrivateKey.fromShares(shares)
21
+ *
22
+ */
23
+ export class KeyShares {
24
+ points;
25
+ threshold;
26
+ integrity;
27
+ constructor(points, threshold, integrity) {
28
+ this.points = points;
29
+ this.threshold = threshold;
30
+ this.integrity = integrity;
31
+ }
32
+ static fromBackupFormat(shares) {
33
+ let threshold = 0;
34
+ let integrity = '';
35
+ const points = shares.map((share, idx) => {
36
+ const shareParts = share.split('.');
37
+ if (shareParts.length !== 4)
38
+ throw Error('Invalid share format in share ' + idx + '. Expected format: "x.y.t.i" - received ' + share);
39
+ const [x, y, t, i] = shareParts;
40
+ if (!t)
41
+ throw Error('Threshold not found in share ' + idx);
42
+ if (!i)
43
+ throw Error('Integrity not found in share ' + idx);
44
+ const tInt = parseInt(t);
45
+ if (idx !== 0 && threshold !== tInt)
46
+ throw Error('Threshold mismatch in share ' + idx);
47
+ if (idx !== 0 && integrity !== i)
48
+ throw Error('Integrity mismatch in share ' + idx);
49
+ threshold = tInt;
50
+ integrity = i;
51
+ return PointInFiniteField.fromString([x, y].join('.'));
52
+ });
53
+ return new KeyShares(points, threshold, integrity);
54
+ }
55
+ toBackupFormat() {
56
+ return this.points.map(share => share.toString() + '.' + this.threshold + '.' + this.integrity);
57
+ }
58
+ }
8
59
  /**
9
60
  * Represents a Private Key, which is a secret that can be used to generate signatures in a cryptographic system.
10
61
  *
@@ -238,5 +289,97 @@ export default class PrivateKey extends BigNumber {
238
289
  const curve = new Curve();
239
290
  return new PrivateKey(this.add(new BigNumber(hmac)).mod(curve.n).toArray());
240
291
  }
292
+ /**
293
+ * Splits the private key into shares using Shamir's Secret Sharing Scheme.
294
+ *
295
+ * @param threshold The minimum number of shares required to reconstruct the private key.
296
+ * @param totalShares The total number of shares to generate.
297
+ * @param prime The prime number to be used in Shamir's Secret Sharing Scheme.
298
+ * @returns An array of shares.
299
+ *
300
+ * @example
301
+ * const key = PrivateKey.fromRandom()
302
+ * const shares = key.toKeyShares(2, 5)
303
+ */
304
+ toKeyShares(threshold, totalShares) {
305
+ if (typeof threshold !== 'number' || typeof totalShares !== 'number')
306
+ throw new Error('threshold and totalShares must be numbers');
307
+ if (threshold < 2)
308
+ throw new Error('threshold must be at least 2');
309
+ if (totalShares < 2)
310
+ throw new Error('totalShares must be at least 2');
311
+ if (threshold > totalShares)
312
+ throw new Error('threshold should be less than or equal to totalShares');
313
+ const poly = Polynomial.fromPrivateKey(this, threshold);
314
+ const points = [];
315
+ for (let i = 0; i < totalShares; i++) {
316
+ const x = new BigNumber(PrivateKey.fromRandom().toArray());
317
+ const y = poly.valueAt(x);
318
+ points.push(new PointInFiniteField(x, y));
319
+ }
320
+ const integrity = this.toPublicKey().toHash('hex').slice(0, 8);
321
+ return new KeyShares(points, threshold, integrity);
322
+ }
323
+ /**
324
+ * @method toBackupShares
325
+ *
326
+ * Creates a backup of the private key by splitting it into shares.
327
+ *
328
+ *
329
+ * @param threshold The number of shares which will be required to reconstruct the private key.
330
+ * @param totalShares The number of shares to generate for distribution.
331
+ * @returns
332
+ */
333
+ toBackupShares(threshold, totalShares) {
334
+ return this.toKeyShares(threshold, totalShares).toBackupFormat();
335
+ }
336
+ /**
337
+ *
338
+ * @method fromBackupShares
339
+ *
340
+ * Creates a private key from backup shares.
341
+ *
342
+ * @param shares
343
+ * @returns PrivateKey
344
+ */
345
+ static fromBackupShares(shares) {
346
+ return PrivateKey.fromKeyShares(KeyShares.fromBackupFormat(shares));
347
+ }
348
+ /**
349
+ * Combines shares to reconstruct the private key.
350
+ *
351
+ * @param shares An array of points (shares) to be used to reconstruct the private key.
352
+ * @param threshold The minimum number of shares required to reconstruct the private key.
353
+ *
354
+ * @returns The reconstructed private key.
355
+ *
356
+ * @example
357
+ * const share1 = '2NWeap6SDBTL5jVnvk9yUxyfLqNrDs2Bw85KNDfLJwRT.4yLtSm327NApsbuP7QXVW3CWDuBRgmS6rRiFkAkTukic'
358
+ * const share2 = '7NbgGA8iAsxg2s6mBLkLFtGKQrnc4aCbooHJJV31cWs4.GUgXtudthawE3Eevc1waT3Atr1Ft7j1XxdUguVo3B7x3'
359
+ * const reconstructedKey = PrivateKey.fromKeyShares({ shares: [share1, share2], threshold: 2, integrity: '23409547' })
360
+ *
361
+ **/
362
+ static fromKeyShares(keyShares) {
363
+ const { points, threshold, integrity } = keyShares;
364
+ if (threshold < 2 || threshold > 99)
365
+ throw new Error('threshold should be between 2 and 99');
366
+ if (points.length < threshold)
367
+ throw new Error(`At least ${threshold} shares are required to reconstruct the private key`);
368
+ // check to see if two points have the same x value
369
+ for (let i = 0; i < threshold; i++) {
370
+ for (let j = i + 1; j < threshold; j++) {
371
+ if (points[i].x.eq(points[j].x)) {
372
+ throw new Error('Duplicate share detected, each must be unique.');
373
+ }
374
+ }
375
+ }
376
+ const poly = new Polynomial(points, threshold);
377
+ const privateKey = new PrivateKey(poly.valueAt(new BigNumber(0)).toArray());
378
+ const integrityHash = privateKey.toPublicKey().toHash('hex').slice(0, 8);
379
+ if (integrityHash !== integrity) {
380
+ throw new Error('Integrity hash mismatch');
381
+ }
382
+ return privateKey;
383
+ }
241
384
  }
242
385
  //# sourceMappingURL=PrivateKey.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateKey.js","sourceRoot":"","sources":["../../../../src/primitives/PrivateKey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PrivateKey.js","sourceRoot":"","sources":["../../../../src/primitives/PrivateKey.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,12 @@ export { default as Curve } from './Curve.js';
3
3
  export { default as Point } from './Point.js';
4
4
  export { default as PublicKey } from './PublicKey.js';
5
5
  export { default as Signature } from './Signature.js';
6
- export { default as PrivateKey } from './PrivateKey.js';
6
+ export { default as PrivateKey, KeyShares } from './PrivateKey.js';
7
7
  export { default as SymmetricKey } from './SymmetricKey.js';
8
8
  export * as ECDSA from './ECDSA.js';
9
9
  export * as Utils from './utils.js';
10
10
  export * as Hash from './Hash.js';
11
11
  export { default as Random } from './Random.js';
12
12
  export { default as TransactionSignature } from './TransactionSignature.js';
13
+ export { default as Polynomial, PointInFiniteField } from './Polynomial.js';
13
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/primitives/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/primitives/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAC3E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"P2PKH.js","sourceRoot":"","sources":["../../../../../src/script/templates/P2PKH.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"P2PKH.js","sourceRoot":"","sources":["../../../../../src/script/templates/P2PKH.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import OP from '../OP.js';
2
+ import LockingScript from '../LockingScript.js';
3
+ import UnlockingScript from '../UnlockingScript.js';
4
+ import TransactionSignature from '../../primitives/TransactionSignature.js';
5
+ import { sha256 } from '../../primitives/Hash.js';
6
+ import { toArray } from '../../primitives/utils.js';
7
+ /**
8
+ * P2PKH (Pay To Public Key Hash) class implementing ScriptTemplate.
9
+ *
10
+ * This class provides methods to create Pay To Public Key Hash locking and unlocking scripts, including the unlocking of P2PKH UTXOs with the private key.
11
+ */
12
+ export default class P2PKHT {
13
+ /**
14
+ * Creates a P2PKH locking script for a given public key hash.
15
+ *
16
+ * @param {number[]} pubkeyhash - An array representing the public key hash.
17
+ * @returns {LockingScript} - A P2PKH locking script.
18
+ */
19
+ lock(pubkeyhash) {
20
+ const time = toArray(Date.now().toString());
21
+ return new LockingScript([
22
+ { op: time.length, data: time },
23
+ { op: OP.OP_DROP },
24
+ { op: OP.OP_DUP },
25
+ { op: OP.OP_HASH160 },
26
+ { op: pubkeyhash.length, data: pubkeyhash },
27
+ { op: OP.OP_EQUALVERIFY },
28
+ { op: OP.OP_CHECKSIG }
29
+ ]);
30
+ }
31
+ /**
32
+ * Creates a function that generates a P2PKH unlocking script along with its signature and length estimation.
33
+ *
34
+ * The returned object contains:
35
+ * 1. `sign` - A function that, when invoked with a transaction and an input index,
36
+ * produces an unlocking script suitable for a P2PKH locked output.
37
+ * 2. `estimateLength` - A function that returns the estimated length of the unlocking script in bytes.
38
+ *
39
+ * @param {PrivateKey} privateKey - The private key used for signing the transaction.
40
+ * @param {'all'|'none'|'single'} signOutputs - The signature scope for outputs.
41
+ * @param {boolean} anyoneCanPay - Flag indicating if the signature allows for other inputs to be added later.
42
+ * @returns {Object} - An object containing the `sign` and `estimateLength` functions.
43
+ */
44
+ unlock(privateKey, signOutputs = 'all', anyoneCanPay = false) {
45
+ return {
46
+ sign: async (tx, inputIndex) => {
47
+ let signatureScope = TransactionSignature.SIGHASH_FORKID;
48
+ if (signOutputs === 'all') {
49
+ signatureScope |= TransactionSignature.SIGHASH_ALL;
50
+ }
51
+ if (signOutputs === 'none') {
52
+ signatureScope |= TransactionSignature.SIGHASH_NONE;
53
+ }
54
+ if (signOutputs === 'single') {
55
+ signatureScope |= TransactionSignature.SIGHASH_SINGLE;
56
+ }
57
+ if (anyoneCanPay) {
58
+ signatureScope |= TransactionSignature.SIGHASH_ANYONECANPAY;
59
+ }
60
+ const otherInputs = [...tx.inputs];
61
+ const [input] = otherInputs.splice(inputIndex, 1);
62
+ if (typeof input.sourceTransaction !== 'object') {
63
+ // Question: Should the library support use-cases where the source transaction is not provided? This is to say, is it ever acceptable for someone to sign an input spending some output from a transaction they have not provided? Some elements (such as the satoshi value and output script) are always required. A merkle proof is also always required, and verifying it (while also verifying that the claimed output is contained within the claimed transaction) is also always required. This seems to require the entire input transaction.
64
+ throw new Error('The source transaction is needed for transaction signing.');
65
+ }
66
+ const preimage = TransactionSignature.format({
67
+ sourceTXID: input.sourceTransaction.id('hex'),
68
+ sourceOutputIndex: input.sourceOutputIndex,
69
+ sourceSatoshis: input.sourceTransaction.outputs[input.sourceOutputIndex].satoshis,
70
+ transactionVersion: tx.version,
71
+ otherInputs,
72
+ inputIndex,
73
+ outputs: tx.outputs,
74
+ inputSequence: input.sequence,
75
+ subscript: input.sourceTransaction.outputs[input.sourceOutputIndex].lockingScript,
76
+ lockTime: tx.lockTime,
77
+ scope: signatureScope
78
+ });
79
+ const rawSignature = privateKey.sign(sha256(preimage));
80
+ const sig = new TransactionSignature(rawSignature.r, rawSignature.s, signatureScope);
81
+ const sigForScript = sig.toChecksigFormat();
82
+ const pubkeyForScript = privateKey.toPublicKey().encode(true);
83
+ return new UnlockingScript([
84
+ { op: sigForScript.length, data: sigForScript },
85
+ { op: pubkeyForScript.length, data: pubkeyForScript }
86
+ ]);
87
+ },
88
+ estimateLength: async () => {
89
+ // public key (1+33) + signature (1+71)
90
+ // Note: We add 1 to each element's length because of the associated OP_PUSH
91
+ return 106;
92
+ }
93
+ };
94
+ }
95
+ }
96
+ //# sourceMappingURL=P2PKHT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"P2PKHT.js","sourceRoot":"","sources":["../../../../../src/script/templates/P2PKHT.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RPuzzle.js","sourceRoot":"","sources":["../../../../../src/script/templates/RPuzzle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RPuzzle.js","sourceRoot":"","sources":["../../../../../src/script/templates/RPuzzle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export const hex2dec = (hex) => {
2
+ return parseInt(hex, 16);
3
+ };
4
+ export const dec2hex = (dec) => {
5
+ const rounded = Math.round(dec);
6
+ const prefix = rounded <= 0xf ? '0' : ''; // ensure that single-digit numbers are padded with a leading zero
7
+ return prefix + rounded.toString(16);
8
+ };
9
+ //# sourceMappingURL=converters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../../../src/totp/converters.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAU,EAAE;IAC7C,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAU,EAAE;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC/B,MAAM,MAAM,GAAG,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA,CAAC,kEAAkE;IAC3G,OAAO,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AACtC,CAAC,CAAA"}
@@ -0,0 +1,67 @@
1
+ import HD from '../compat/HD.js';
2
+ import PublicKey from '../primitives/PublicKey.js';
3
+ import { TOTP } from './totp.js';
4
+ import { hexToUint8Array } from './converters.js';
5
+ /*
6
+ Basic flow:
7
+ Alice generates passcodeForBob with (sharedSecret+(contact.Paymail as bobPaymail))
8
+ Alice sends passcodeForBob to Bob (e.g. via email)
9
+ Bob validates passcodeForBob with (sharedSecret+(requesterPaymail as bobPaymail))
10
+ The (sharedSecret+paymail) is a "directedSecret". This ensures that passcodeForBob-from-Alice != passcodeForAlice-from-Bob.
11
+ The flow looks the same for Bob generating passcodeForAlice.
12
+ */
13
+ /**
14
+ * Generates a TOTP for a given contact
15
+ *
16
+ * @param clientXPriv - The client xpriv
17
+ * @param contact - The Contact
18
+ * @param period - The TOTP period (default: 30)
19
+ * @param digits - The number of TOTP digits (default: 2)
20
+ * @returns The generated TOTP as a string
21
+ */
22
+ export const generateTotpForContact = (clientXPriv, contact, period, digits) => {
23
+ const sharedSecret = makeSharedSecret(contact, clientXPriv);
24
+ const secret = directedSecret(sharedSecret, contact.paymail);
25
+ return TOTP.generate(secret, getTotpOps(period, digits));
26
+ };
27
+ /**
28
+ * Validates a TOTP for a given contact
29
+ *
30
+ * @param clientXPriv - The client xpriv
31
+ * @param contact - The Contact
32
+ * @param passcode - The TOTP passcode to validate
33
+ * @param requesterPaymail - The paymail of the requester
34
+ * @param period - The TOTP period (default: 30)
35
+ * @param digits - The number of TOTP digits (default: 2)
36
+ * @returns A boolean indicating whether the TOTP is valid
37
+ */
38
+ export const validateTotpForContact = (clientXPriv, contact, passcode, requesterPaymail, period, digits) => {
39
+ const sharedSecret = makeSharedSecret(contact, clientXPriv);
40
+ const secret = directedSecret(sharedSecret, requesterPaymail);
41
+ return TOTP.validate(secret, passcode, getTotpOps(period, digits));
42
+ };
43
+ const getTotpOps = (period, digits) => ({
44
+ digits,
45
+ period,
46
+ algorithm: 'SHA-1'
47
+ });
48
+ const makeSharedSecret = (contact, clientXPriv) => {
49
+ const xprivKey = HD.fromString(clientXPriv.toString());
50
+ const pubKey = PublicKey.fromString(contact.pubKey);
51
+ // PKI derivation path: m/0/0/0
52
+ // NOTICE: we currently do not support PKI rotation; however, adjustments will be made if and when we decide to implement it
53
+ const hd = xprivKey.derive('m/0/0/0');
54
+ const privKey = hd.privKey;
55
+ const ss = privKey.deriveSharedSecret(pubKey);
56
+ return ss.getX().toHex(32);
57
+ };
58
+ const directedSecret = (sharedSecret, paymail) => {
59
+ const paymailEncoded = Uint8Array.from(paymail, (c) => c.charCodeAt(0));
60
+ const sharedSecretEncoded = hexToUint8Array(sharedSecret);
61
+ // Concatenate sharedSecretEncoded and paymailEncoded
62
+ const concatenated = new Uint8Array(sharedSecretEncoded.length + paymailEncoded.length);
63
+ concatenated.set(sharedSecretEncoded, 0);
64
+ concatenated.set(paymailEncoded, sharedSecretEncoded.length);
65
+ return concatenated;
66
+ };
67
+ //# sourceMappingURL=pike-totp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pike-totp.js","sourceRoot":"","sources":["../../../../src/totp/pike-totp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAChC,OAAO,SAAS,MAAM,4BAA4B,CAAA;AAElD,OAAO,EAAE,IAAI,EAAe,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD;;;;;;;EAOE;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,WAAe,EACf,OAAgB,EAChB,MAAc,EACd,MAAc,EACN,EAAE;IACV,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IAC3D,MAAM,MAAM,GAAG,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IAE5D,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAC1D,CAAC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,WAAe,EACf,OAAgB,EAChB,QAAgB,EAChB,gBAAwB,EACxB,MAAc,EACd,MAAc,EACL,EAAE;IACX,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IAC3D,MAAM,MAAM,GAAG,cAAc,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAA;IAE7D,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AACpE,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,MAAc,EAAe,EAAE,CAAC,CAAC;IACnE,MAAM;IACN,MAAM;IACN,SAAS,EAAE,OAAO;CACnB,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAAE,WAAe,EAAE,EAAE;IAC7D,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAA;IAEtD,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAEnD,+BAA+B;IAC/B,4HAA4H;IAC5H,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAA;IAC1B,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC7C,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,YAAoB,EAAE,OAAe,EAAc,EAAE;IAC3E,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACvE,MAAM,mBAAmB,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAEzD,qDAAqD;IACrD,MAAM,YAAY,GAAG,IAAI,UAAU,CACjC,mBAAmB,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CACnD,CAAA;IACD,YAAY,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAA;IACxC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAE5D,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/totp/types.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
- import { defaultHttpClient } from "../http/DefaultHttpClient.js";
2
- import Random from "../../primitives/Random.js";
3
- import { toHex } from "../../primitives/utils.js";
1
+ import { defaultHttpClient } from '../http/DefaultHttpClient.js';
2
+ import Random from '../../primitives/Random.js';
3
+ import { toHex } from '../../primitives/utils.js';
4
4
  function defaultDeploymentId() {
5
5
  return `ts-sdk-${toHex(Random(16))}`;
6
6
  }
@@ -64,7 +64,7 @@ export default class ARC {
64
64
  const { txid, extraInfo, txStatus } = response.data;
65
65
  return {
66
66
  status: 'success',
67
- txid: txid,
67
+ txid,
68
68
  message: `${txStatus} ${extraInfo}`
69
69
  };
70
70
  }
@@ -107,10 +107,10 @@ export default class ARC {
107
107
  requestHeaders() {
108
108
  const headers = {
109
109
  'Content-Type': 'application/json',
110
- 'XDeployment-ID': this.deploymentId,
110
+ 'XDeployment-ID': this.deploymentId
111
111
  };
112
112
  if (this.apiKey) {
113
- headers['Authorization'] = `Bearer ${this.apiKey}`;
113
+ headers.Authorization = `Bearer ${this.apiKey}`;
114
114
  }
115
115
  if (this.callbackUrl) {
116
116
  headers['X-CallbackUrl'] = this.callbackUrl;
@@ -118,7 +118,7 @@ export default class ARC {
118
118
  if (this.callbackToken) {
119
119
  headers['X-CallbackToken'] = this.callbackToken;
120
120
  }
121
- if (!!this.headers) {
121
+ if (this.headers) {
122
122
  for (const key in this.headers) {
123
123
  headers[key] = this.headers[key];
124
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ARC.js","sourceRoot":"","sources":["../../../../../src/transaction/broadcasters/ARC.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ARC.js","sourceRoot":"","sources":["../../../../../src/transaction/broadcasters/ARC.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import ARC from "./ARC.js";
1
+ import ARC from './ARC.js';
2
2
  export function defaultBroadcaster() {
3
3
  return new ARC('https://arc.taal.com');
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultBroadcaster.js","sourceRoot":"","sources":["../../../../../src/transaction/broadcasters/DefaultBroadcaster.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAAA;AACxC,CAAC"}
1
+ {"version":3,"file":"DefaultBroadcaster.js","sourceRoot":"","sources":["../../../../../src/transaction/broadcasters/DefaultBroadcaster.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,UAAU,CAAA;AAE1B,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAAA;AACxC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { defaultHttpClient } from "../http/DefaultHttpClient.js";
1
+ import { defaultHttpClient } from '../http/DefaultHttpClient.js';
2
2
  /**
3
3
  * Represents an WhatsOnChain transaction broadcaster.
4
4
  */
@@ -24,12 +24,12 @@ export default class WhatsOnChainBroadcaster {
24
24
  * @returns {Promise<BroadcastResponse | BroadcastFailure>} A promise that resolves to either a success or failure response.
25
25
  */
26
26
  async broadcast(tx) {
27
- let rawTx = tx.toHex();
27
+ const rawTx = tx.toHex();
28
28
  const requestOptions = {
29
29
  method: 'POST',
30
30
  headers: {
31
31
  'Content-Type': 'application/json',
32
- 'Accept': 'text/plain'
32
+ Accept: 'text/plain'
33
33
  },
34
34
  data: { txhex: rawTx }
35
35
  };
@@ -39,7 +39,7 @@ export default class WhatsOnChainBroadcaster {
39
39
  const txid = response.data;
40
40
  return {
41
41
  status: 'success',
42
- txid: txid,
42
+ txid,
43
43
  message: 'broadcast successful'
44
44
  };
45
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WhatsOnChainBroadcaster.js","sourceRoot":"","sources":["../../../../../src/transaction/broadcasters/WhatsOnChainBroadcaster.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,iBAAiB,EAAC,MAAM,8BAA8B,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IACjC,OAAO,CAAQ;IACP,GAAG,CAAQ;IACX,UAAU,CAAa;IAExC;;;;;OAKG;IACH,YAAY,UAAmC,MAAM,EAAE,aAAyB,iBAAiB,EAAE;QACjG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,uCAAuC,OAAO,SAAS,CAAA;QAClE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,EAAe;QAC7B,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,CAAA;QAEtB,MAAM,cAAc,GAAG;YACrB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,QAAQ,EAAE,YAAY;aACvB;YACD,IAAI,EAAE,EAAC,KAAK,EAAE,KAAK,EAAC;SACrB,CAAA;QAED,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAS,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;YAChF,IAAI,QAAQ,CAAC,EAAE,EAAE;gBACf,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;gBAC1B,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,sBAAsB;iBAChC,CAAA;aACF;iBAAM;gBACL,OAAO;oBACL,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,aAAa;oBACjD,WAAW,EAAE,QAAQ,CAAC,IAAI,IAAI,eAAe;iBAC9C,CAAA;aACF;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO;gBACL,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;oBAC5C,CAAC,CAAC,KAAK,CAAC,OAAO;oBACf,CAAC,CAAC,uBAAuB;aAC5B,CAAA;SACF;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"WhatsOnChainBroadcaster.js","sourceRoot":"","sources":["../../../../../src/transaction/broadcasters/WhatsOnChainBroadcaster.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAEhE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IACjC,OAAO,CAAQ;IACP,GAAG,CAAQ;IACX,UAAU,CAAY;IAEvC;;;;;OAKG;IACH,YAAa,UAAmC,MAAM,EAAE,aAAyB,iBAAiB,EAAE;QAClG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,uCAAuC,OAAO,SAAS,CAAA;QAClE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAE,EAAe;QAC9B,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,CAAA;QAExB,MAAM,cAAc,GAAG;YACrB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,YAAY;aACrB;YACD,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;SACvB,CAAA;QAED,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAS,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;YAChF,IAAI,QAAQ,CAAC,EAAE,EAAE;gBACf,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;gBAC1B,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,IAAI;oBACJ,OAAO,EAAE,sBAAsB;iBAChC,CAAA;aACF;iBAAM;gBACL,OAAO;oBACL,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,aAAa;oBACjD,WAAW,EAAE,QAAQ,CAAC,IAAI,IAAI,eAAe;iBAC9C,CAAA;aACF;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO;gBACL,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;oBAC5C,CAAC,CAAC,KAAK,CAAC,OAAO;oBACf,CAAC,CAAC,uBAAuB;aAC5B,CAAA;SACF;IACH,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import WhatsOnChain from "./WhatsOnChain.js";
1
+ import WhatsOnChain from './WhatsOnChain.js';
2
2
  export function defaultChainTracker() {
3
3
  return new WhatsOnChain();
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultChainTracker.js","sourceRoot":"","sources":["../../../../../src/transaction/chaintrackers/DefaultChainTracker.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAG7C,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,YAAY,EAAE,CAAA;AAC3B,CAAC"}
1
+ {"version":3,"file":"DefaultChainTracker.js","sourceRoot":"","sources":["../../../../../src/transaction/chaintrackers/DefaultChainTracker.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mBAAmB,CAAA;AAG5C,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,YAAY,EAAE,CAAA;AAC3B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { defaultHttpClient } from "../http/DefaultHttpClient.js";
1
+ import { defaultHttpClient } from '../http/DefaultHttpClient.js';
2
2
  /**
3
3
  * Represents a chain tracker based on What's On Chain .
4
4
  */
@@ -39,10 +39,10 @@ export default class WhatsOnChain {
39
39
  }
40
40
  getHeaders() {
41
41
  const headers = {
42
- 'Accept': 'application/json',
42
+ Accept: 'application/json'
43
43
  };
44
44
  if (this.apiKey) {
45
- headers['Authorization'] = this.apiKey;
45
+ headers.Authorization = this.apiKey;
46
46
  }
47
47
  return headers;
48
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WhatsOnChain.js","sourceRoot":"","sources":["../../../../../src/transaction/chaintrackers/WhatsOnChain.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,iBAAiB,EAAC,MAAM,8BAA8B,CAAC;AAc/D;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,YAAY;IACtB,OAAO,CAAQ;IACf,MAAM,CAAQ;IACN,GAAG,CAAQ;IACX,UAAU,CAAY;IAEvC;;;;;OAKG;IACH,YAAY,UAAmC,MAAM,EAAE,SAA6B,EAAE;QACpF,MAAM,EAAC,MAAM,EAAE,UAAU,EAAC,GAAG,MAAM,CAAA;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,uCAAuC,OAAO,EAAE,CAAA;QAC3D,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,iBAAiB,EAAE,CAAA;QACnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAY,EAAE,MAAc;QACrD,MAAM,cAAc,GAAG;YACrB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;SAC3B,CAAA;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAA0B,GAAG,IAAI,CAAC,GAAG,UAAU,MAAM,SAAS,EAAE,cAAc,CAAC,CAAA;QAC7H,IAAI,QAAQ,CAAC,EAAE,EAAE;YACf,MAAM,EAAE,UAAU,EAAC,GAAG,QAAQ,CAAC,IAAI,CAAA;YACnC,OAAO,UAAU,KAAK,IAAI,CAAA;SAC3B;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAClC,OAAO,KAAK,CAAA;SACb;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,yBAAyB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SAC3H;IACH,CAAC;IAEO,UAAU;QAChB,MAAM,OAAO,GAA2B;YACtC,QAAQ,EAAE,kBAAkB;SAC7B,CAAA;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;SACvC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"WhatsOnChain.js","sourceRoot":"","sources":["../../../../../src/transaction/chaintrackers/WhatsOnChain.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAchE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,YAAY;IACtB,OAAO,CAAQ;IACf,MAAM,CAAQ;IACN,GAAG,CAAQ;IACX,UAAU,CAAY;IAEvC;;;;;OAKG;IACH,YAAa,UAAmC,MAAM,EAAE,SAA6B,EAAE;QACrF,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAA;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,uCAAuC,OAAO,EAAE,CAAA;QAC3D,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,iBAAiB,EAAE,CAAA;QACnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAE,IAAY,EAAE,MAAc;QACtD,MAAM,cAAc,GAAG;YACrB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;SAC3B,CAAA;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAA0B,GAAG,IAAI,CAAC,GAAG,UAAU,MAAM,SAAS,EAAE,cAAc,CAAC,CAAA;QAC7H,IAAI,QAAQ,CAAC,EAAE,EAAE;YACf,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAA;YACpC,OAAO,UAAU,KAAK,IAAI,CAAA;SAC3B;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAClC,OAAO,KAAK,CAAA;SACb;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,yBAAyB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SAC3H;IACH,CAAC;IAEO,UAAU;QAChB,MAAM,OAAO,GAA2B;YACtC,MAAM,EAAE,kBAAkB;SAC3B,CAAA;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAA;SACpC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"SatoshisPerKilobyte.js","sourceRoot":"","sources":["../../../../../src/transaction/fee-models/SatoshisPerKilobyte.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACtC;;;OAGG;IACH,KAAK,CAAQ;IAEb;;;;OAIG;IACH,YAAY,KAAa;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,EAAe;QAC9B,MAAM,aAAa,GAAG,CAAC,CAAS,EAAU,EAAE;YAC1C,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;gBACf,OAAO,CAAC,CAAA;aACT;iBAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,CAAA;aACT;iBAAM,IAAI,CAAC,GAAG,GAAG,EAAE;gBAClB,OAAO,CAAC,CAAA;aACT;iBAAM;gBACL,OAAO,CAAC,CAAA;aACT;QACH,CAAC,CAAA;QACD,8DAA8D;QAC9D,IAAI,IAAI,GAAG,CAAC,CAAA,CAAC,UAAU;QACvB,IAAI,IAAI,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA,CAAC,mBAAmB;QAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YAC1B,IAAI,IAAI,EAAE,CAAA,CAAC,sCAAsC;YACjD,IAAI,YAAoB,CAAA;YACxB,IAAI,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ,EAAE;gBAC7C,YAAY,GAAG,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAA;aACvD;iBAAM,IAAI,OAAO,KAAK,CAAC,uBAAuB,KAAK,QAAQ,EAAE;gBAC5D,YAAY,GAAG,MAAM,KAAK,CAAC,uBAAuB,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;aACzE;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,sGAAsG,CAAC,CAAA;aACxH;YACD,IAAI,IAAI,aAAa,CAAC,YAAY,CAAC,CAAA,CAAC,0BAA0B;YAC9D,IAAI,IAAI,YAAY,CAAA,CAAC,mBAAmB;SACzC;QACD,IAAI,IAAI,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA,CAAC,oBAAoB;QAC7D,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,OAAO,EAAE;YAC5B,IAAI,IAAI,CAAC,CAAA,CAAC,WAAW;YACrB,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAA;YAClD,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA,CAAC,gBAAgB;YAC9C,IAAI,IAAI,MAAM,CAAA,CAAC,SAAS;SACzB;QACD,IAAI,IAAI,CAAC,CAAA,CAAC,YAAY;QACtB,kEAAkE;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QACjD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF"}
1
+ {"version":3,"file":"SatoshisPerKilobyte.js","sourceRoot":"","sources":["../../../../../src/transaction/fee-models/SatoshisPerKilobyte.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACtC;;;OAGG;IACH,KAAK,CAAQ;IAEb;;;;OAIG;IACH,YAAa,KAAa;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAE,EAAe;QAC/B,MAAM,aAAa,GAAG,CAAC,CAAS,EAAU,EAAE;YAC1C,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;gBACf,OAAO,CAAC,CAAA;aACT;iBAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;gBACtB,OAAO,CAAC,CAAA;aACT;iBAAM,IAAI,CAAC,GAAG,GAAG,EAAE;gBAClB,OAAO,CAAC,CAAA;aACT;iBAAM;gBACL,OAAO,CAAC,CAAA;aACT;QACH,CAAC,CAAA;QACD,8DAA8D;QAC9D,IAAI,IAAI,GAAG,CAAC,CAAA,CAAC,UAAU;QACvB,IAAI,IAAI,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA,CAAC,mBAAmB;QAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YAC1B,IAAI,IAAI,EAAE,CAAA,CAAC,sCAAsC;YACjD,IAAI,YAAoB,CAAA;YACxB,IAAI,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ,EAAE;gBAC7C,YAAY,GAAG,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAA;aACvD;iBAAM,IAAI,OAAO,KAAK,CAAC,uBAAuB,KAAK,QAAQ,EAAE;gBAC5D,YAAY,GAAG,MAAM,KAAK,CAAC,uBAAuB,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;aACzE;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,sGAAsG,CAAC,CAAA;aACxH;YACD,IAAI,IAAI,aAAa,CAAC,YAAY,CAAC,CAAA,CAAC,0BAA0B;YAC9D,IAAI,IAAI,YAAY,CAAA,CAAC,mBAAmB;SACzC;QACD,IAAI,IAAI,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA,CAAC,oBAAoB;QAC7D,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,OAAO,EAAE;YAC5B,IAAI,IAAI,CAAC,CAAA,CAAC,WAAW;YACrB,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAA;YAClD,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA,CAAC,gBAAgB;YAC9C,IAAI,IAAI,MAAM,CAAA,CAAC,SAAS;SACzB;QACD,IAAI,IAAI,CAAC,CAAA,CAAC,YAAY;QACtB,kEAAkE;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QACjD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF"}
@@ -7,9 +7,9 @@ import { FetchHttpClient } from './FetchHttpClient.js';
7
7
  */
8
8
  export function defaultHttpClient() {
9
9
  const noHttpClient = {
10
- request(..._) {
10
+ async request(..._) {
11
11
  throw new Error('No method available to perform HTTP request');
12
- },
12
+ }
13
13
  };
14
14
  if (typeof window !== 'undefined' && typeof window.fetch === 'function') {
15
15
  // Use fetch in a browser environment