@btc-vision/bitcoin 6.3.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 (69) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +201 -0
  3. package/package.json +95 -0
  4. package/src/address.d.ts +42 -0
  5. package/src/address.js +191 -0
  6. package/src/bip66.d.ts +7 -0
  7. package/src/bip66.js +103 -0
  8. package/src/block.d.ts +30 -0
  9. package/src/block.js +224 -0
  10. package/src/bufferutils.d.ts +54 -0
  11. package/src/bufferutils.js +182 -0
  12. package/src/crypto.d.ts +18 -0
  13. package/src/crypto.js +128 -0
  14. package/src/ecc_lib.d.ts +17 -0
  15. package/src/ecc_lib.js +122 -0
  16. package/src/hooks/AdvancedSignatureManager.d.ts +44 -0
  17. package/src/hooks/AdvancedSignatureManager.js +88 -0
  18. package/src/hooks/HookedSigner.d.ts +4 -0
  19. package/src/hooks/HookedSigner.js +90 -0
  20. package/src/hooks/SignatureManager.d.ts +35 -0
  21. package/src/hooks/SignatureManager.js +72 -0
  22. package/src/index.d.ts +42 -0
  23. package/src/index.js +87 -0
  24. package/src/merkle.d.ts +10 -0
  25. package/src/merkle.js +30 -0
  26. package/src/networks.d.ts +29 -0
  27. package/src/networks.js +71 -0
  28. package/src/ops.d.ts +126 -0
  29. package/src/ops.js +131 -0
  30. package/src/payments/bip341.d.ts +49 -0
  31. package/src/payments/bip341.js +124 -0
  32. package/src/payments/embed.d.ts +9 -0
  33. package/src/payments/embed.js +54 -0
  34. package/src/payments/index.d.ts +48 -0
  35. package/src/payments/index.js +69 -0
  36. package/src/payments/lazy.d.ts +2 -0
  37. package/src/payments/lazy.js +32 -0
  38. package/src/payments/p2ms.d.ts +9 -0
  39. package/src/payments/p2ms.js +158 -0
  40. package/src/payments/p2pk.d.ts +10 -0
  41. package/src/payments/p2pk.js +82 -0
  42. package/src/payments/p2pkh.d.ts +10 -0
  43. package/src/payments/p2pkh.js +143 -0
  44. package/src/payments/p2sh.d.ts +10 -0
  45. package/src/payments/p2sh.js +204 -0
  46. package/src/payments/p2tr.d.ts +10 -0
  47. package/src/payments/p2tr.js +315 -0
  48. package/src/payments/p2wpkh.d.ts +10 -0
  49. package/src/payments/p2wpkh.js +146 -0
  50. package/src/payments/p2wsh.d.ts +10 -0
  51. package/src/payments/p2wsh.js +226 -0
  52. package/src/psbt/bip371.d.ts +42 -0
  53. package/src/psbt/bip371.js +424 -0
  54. package/src/psbt/psbtutils.d.ts +64 -0
  55. package/src/psbt/psbtutils.js +191 -0
  56. package/src/psbt.d.ts +235 -0
  57. package/src/psbt.js +1825 -0
  58. package/src/push_data.d.ts +29 -0
  59. package/src/push_data.js +83 -0
  60. package/src/script.d.ts +42 -0
  61. package/src/script.js +231 -0
  62. package/src/script_number.d.ts +19 -0
  63. package/src/script_number.js +78 -0
  64. package/src/script_signature.d.ts +21 -0
  65. package/src/script_signature.js +79 -0
  66. package/src/transaction.d.ts +60 -0
  67. package/src/transaction.js +571 -0
  68. package/src/types.d.ts +54 -0
  69. package/src/types.js +106 -0
package/src/types.js ADDED
@@ -0,0 +1,106 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
+ exports.oneOf =
4
+ exports.Null =
5
+ exports.BufferN =
6
+ exports.Function =
7
+ exports.UInt32 =
8
+ exports.UInt8 =
9
+ exports.tuple =
10
+ exports.maybe =
11
+ exports.Hex =
12
+ exports.Buffer =
13
+ exports.String =
14
+ exports.Boolean =
15
+ exports.Array =
16
+ exports.Number =
17
+ exports.Hash256bit =
18
+ exports.Hash160bit =
19
+ exports.Buffer256bit =
20
+ exports.isTaptree =
21
+ exports.isTapleaf =
22
+ exports.TAPLEAF_VERSION_MASK =
23
+ exports.Satoshi =
24
+ exports.isPoint =
25
+ exports.stacksEqual =
26
+ exports.typeforce =
27
+ void 0;
28
+ const buffer_1 = require('buffer');
29
+ exports.typeforce = require('typeforce');
30
+ const ZERO32 = buffer_1.Buffer.alloc(32, 0);
31
+ const EC_P = buffer_1.Buffer.from(
32
+ 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f',
33
+ 'hex',
34
+ );
35
+ /**
36
+ * Checks if two arrays of Buffers are equal.
37
+ * @param a - The first array of Buffers.
38
+ * @param b - The second array of Buffers.
39
+ * @returns True if the arrays are equal, false otherwise.
40
+ */
41
+ function stacksEqual(a, b) {
42
+ if (a.length !== b.length) return false;
43
+ return a.every((x, i) => {
44
+ return x.equals(b[i]);
45
+ });
46
+ }
47
+ exports.stacksEqual = stacksEqual;
48
+ /**
49
+ * Checks if the given value is a valid elliptic curve point.
50
+ * @param p - The value to check.
51
+ * @returns True if the value is a valid elliptic curve point, false otherwise.
52
+ */
53
+ function isPoint(p) {
54
+ if (!buffer_1.Buffer.isBuffer(p)) return false;
55
+ if (p.length < 33) return false;
56
+ const t = p[0];
57
+ const x = p.slice(1, 33);
58
+ if (x.compare(ZERO32) === 0) return false;
59
+ if (x.compare(EC_P) >= 0) return false;
60
+ if ((t === 0x02 || t === 0x03) && p.length === 33) {
61
+ return true;
62
+ }
63
+ const y = p.slice(33);
64
+ if (y.compare(ZERO32) === 0) return false;
65
+ if (y.compare(EC_P) >= 0) return false;
66
+ if (t === 0x04 && p.length === 65) return true;
67
+ return false;
68
+ }
69
+ exports.isPoint = isPoint;
70
+ const SATOSHI_MAX = 21 * 1e14;
71
+ function Satoshi(value) {
72
+ return exports.typeforce.UInt53(value) && value <= SATOSHI_MAX;
73
+ }
74
+ exports.Satoshi = Satoshi;
75
+ exports.TAPLEAF_VERSION_MASK = 0xfe;
76
+ function isTapleaf(o) {
77
+ if (!o || !('output' in o)) return false;
78
+ if (!buffer_1.Buffer.isBuffer(o.output)) return false;
79
+ if (o.version !== undefined)
80
+ return (o.version & exports.TAPLEAF_VERSION_MASK) === o.version;
81
+ return true;
82
+ }
83
+ exports.isTapleaf = isTapleaf;
84
+ function isTaptree(scriptTree) {
85
+ if (!(0, exports.Array)(scriptTree)) return isTapleaf(scriptTree);
86
+ if (scriptTree.length !== 2) return false;
87
+ return scriptTree.every(t => isTaptree(t));
88
+ }
89
+ exports.isTaptree = isTaptree;
90
+ exports.Buffer256bit = exports.typeforce.BufferN(32);
91
+ exports.Hash160bit = exports.typeforce.BufferN(20);
92
+ exports.Hash256bit = exports.typeforce.BufferN(32);
93
+ exports.Number = exports.typeforce.Number;
94
+ exports.Array = exports.typeforce.Array;
95
+ exports.Boolean = exports.typeforce.Boolean;
96
+ exports.String = exports.typeforce.String;
97
+ exports.Buffer = exports.typeforce.Buffer;
98
+ exports.Hex = exports.typeforce.Hex;
99
+ exports.maybe = exports.typeforce.maybe;
100
+ exports.tuple = exports.typeforce.tuple;
101
+ exports.UInt8 = exports.typeforce.UInt8;
102
+ exports.UInt32 = exports.typeforce.UInt32;
103
+ exports.Function = exports.typeforce.Function;
104
+ exports.BufferN = exports.typeforce.BufferN;
105
+ exports.Null = exports.typeforce.Null;
106
+ exports.oneOf = exports.typeforce.oneOf;