@btc-vision/bitcoin 6.3.0 → 6.3.2

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 (260) hide show
  1. package/.babelrc +4 -0
  2. package/.gitattributes +2 -0
  3. package/.nyc_output/6368a5b2-daa5-4821-8ed0-b742d6fc7eab.json +1 -0
  4. package/.nyc_output/processinfo/6368a5b2-daa5-4821-8ed0-b742d6fc7eab.json +1 -0
  5. package/.nyc_output/processinfo/index.json +1 -0
  6. package/.prettierrc.json +12 -0
  7. package/CHANGELOG.md +403 -0
  8. package/CONTRIBUTING.md +83 -0
  9. package/browser/address.d.ts +16 -0
  10. package/{src → browser}/bip66.d.ts +6 -7
  11. package/{src → browser}/block.d.ts +29 -30
  12. package/{src → browser}/bufferutils.d.ts +34 -54
  13. package/browser/crypto/crypto.d.ts +1 -0
  14. package/{src → browser}/crypto.d.ts +13 -18
  15. package/browser/ecc_lib.d.ts +3 -0
  16. package/browser/hooks/AdvancedSignatureManager.d.ts +16 -0
  17. package/{src → browser}/hooks/HookedSigner.d.ts +4 -4
  18. package/browser/hooks/SignatureManager.d.ts +13 -0
  19. package/browser/index.d.ts +58 -0
  20. package/browser/index.js +2 -0
  21. package/browser/index.js.LICENSE.txt +14 -0
  22. package/browser/merkle.d.ts +1 -0
  23. package/browser/networks.d.ts +23 -0
  24. package/{src → browser}/ops.d.ts +126 -126
  25. package/browser/payments/bip341.d.ts +23 -0
  26. package/browser/payments/embed.d.ts +2 -0
  27. package/browser/payments/index.d.ts +41 -0
  28. package/{src → browser}/payments/lazy.d.ts +2 -2
  29. package/browser/payments/p2ms.d.ts +2 -0
  30. package/browser/payments/p2pk.d.ts +2 -0
  31. package/browser/payments/p2pkh.d.ts +2 -0
  32. package/browser/payments/p2sh.d.ts +2 -0
  33. package/browser/payments/p2tr.d.ts +2 -0
  34. package/browser/payments/p2wpkh.d.ts +2 -0
  35. package/browser/payments/p2wsh.d.ts +2 -0
  36. package/browser/psbt/bip371.d.ts +16 -0
  37. package/browser/psbt/psbtutils.d.ts +26 -0
  38. package/{src → browser}/psbt.d.ts +167 -235
  39. package/browser/push_data.d.ts +7 -0
  40. package/browser/script.d.ts +17 -0
  41. package/browser/script_number.d.ts +2 -0
  42. package/browser/script_signature.d.ts +7 -0
  43. package/{src → browser}/transaction.d.ts +48 -60
  44. package/{src → browser}/types.d.ts +37 -54
  45. package/build/address.d.ts +16 -0
  46. package/build/address.js +148 -0
  47. package/build/bip66.d.ts +6 -0
  48. package/build/bip66.js +99 -0
  49. package/build/block.d.ts +29 -0
  50. package/build/block.js +181 -0
  51. package/build/bufferutils.d.ts +34 -0
  52. package/build/bufferutils.js +141 -0
  53. package/build/crypto/crypto.d.ts +1 -0
  54. package/build/crypto/crypto.js +1 -0
  55. package/build/crypto.d.ts +13 -0
  56. package/build/crypto.js +87 -0
  57. package/build/ecc_lib.d.ts +3 -0
  58. package/build/ecc_lib.js +61 -0
  59. package/build/hooks/AdvancedSignatureManager.d.ts +16 -0
  60. package/build/hooks/AdvancedSignatureManager.js +52 -0
  61. package/build/hooks/HookedSigner.d.ts +4 -0
  62. package/build/hooks/HookedSigner.js +64 -0
  63. package/build/hooks/SignatureManager.d.ts +13 -0
  64. package/build/hooks/SignatureManager.js +45 -0
  65. package/build/index.d.ts +58 -0
  66. package/build/index.js +32 -0
  67. package/build/merkle.d.ts +1 -0
  68. package/build/merkle.js +19 -0
  69. package/build/networks.d.ts +23 -0
  70. package/build/networks.js +121 -0
  71. package/build/ops.d.ts +126 -0
  72. package/{src → build}/ops.js +127 -131
  73. package/build/payments/bip341.d.ts +23 -0
  74. package/build/payments/bip341.js +82 -0
  75. package/build/payments/embed.d.ts +2 -0
  76. package/build/payments/embed.js +39 -0
  77. package/build/payments/index.d.ts +41 -0
  78. package/build/payments/index.js +10 -0
  79. package/build/payments/lazy.d.ts +2 -0
  80. package/{src → build}/payments/lazy.js +28 -32
  81. package/build/payments/p2ms.d.ts +2 -0
  82. package/{src → build}/payments/p2ms.js +128 -158
  83. package/build/payments/p2pk.d.ts +2 -0
  84. package/build/payments/p2pk.js +68 -0
  85. package/build/payments/p2pkh.d.ts +2 -0
  86. package/build/payments/p2pkh.js +135 -0
  87. package/build/payments/p2sh.d.ts +2 -0
  88. package/build/payments/p2sh.js +175 -0
  89. package/build/payments/p2tr.d.ts +2 -0
  90. package/build/payments/p2tr.js +254 -0
  91. package/build/payments/p2wpkh.d.ts +2 -0
  92. package/build/payments/p2wpkh.js +130 -0
  93. package/build/payments/p2wsh.d.ts +2 -0
  94. package/build/payments/p2wsh.js +180 -0
  95. package/build/psbt/bip371.d.ts +16 -0
  96. package/build/psbt/bip371.js +246 -0
  97. package/build/psbt/psbtutils.d.ts +26 -0
  98. package/build/psbt/psbtutils.js +170 -0
  99. package/build/psbt.d.ts +167 -0
  100. package/build/psbt.js +1305 -0
  101. package/build/push_data.d.ts +7 -0
  102. package/build/push_data.js +57 -0
  103. package/build/script.d.ts +17 -0
  104. package/build/script.js +167 -0
  105. package/build/script_number.d.ts +2 -0
  106. package/build/script_number.js +49 -0
  107. package/build/script_signature.d.ts +7 -0
  108. package/build/script_signature.js +49 -0
  109. package/build/transaction.d.ts +48 -0
  110. package/build/transaction.js +445 -0
  111. package/build/types.d.ts +37 -0
  112. package/build/types.js +73 -0
  113. package/cjs/package.json +3 -0
  114. package/eslint.config.js +56 -0
  115. package/gulpfile.js +42 -0
  116. package/package.json +105 -50
  117. package/src/{address.js → address.ts} +93 -73
  118. package/src/{bip66.js → bip66.ts} +23 -19
  119. package/src/{block.js → block.ts} +114 -105
  120. package/src/{bufferutils.js → bufferutils.ts} +65 -67
  121. package/src/crypto/crypto-browser.js +75 -0
  122. package/src/crypto/crypto.ts +1 -0
  123. package/src/crypto.ts +108 -0
  124. package/src/{ecc_lib.js → ecc_lib.ts} +25 -53
  125. package/src/hooks/{AdvancedSignatureManager.js → AdvancedSignatureManager.ts} +34 -18
  126. package/src/hooks/HookedSigner.ts +108 -0
  127. package/src/hooks/{SignatureManager.js → SignatureManager.ts} +26 -14
  128. package/src/index.ts +86 -0
  129. package/src/{merkle.js → merkle.ts} +8 -7
  130. package/src/networks.ts +235 -0
  131. package/src/ops.ts +282 -0
  132. package/src/payments/bip341.ts +140 -0
  133. package/src/payments/embed.ts +55 -0
  134. package/src/payments/{index.d.ts → index.ts} +20 -10
  135. package/src/payments/lazy.ts +28 -0
  136. package/src/payments/p2ms.ts +150 -0
  137. package/src/payments/{p2pk.js → p2pk.ts} +32 -29
  138. package/src/payments/{p2pkh.js → p2pkh.ts} +53 -47
  139. package/src/payments/{p2sh.js → p2sh.ts} +72 -71
  140. package/src/payments/{p2tr.js → p2tr.ts} +114 -125
  141. package/src/payments/{p2wpkh.js → p2wpkh.ts} +51 -56
  142. package/src/payments/{p2wsh.js → p2wsh.ts} +69 -81
  143. package/src/psbt/{bip371.js → bip371.ts} +195 -178
  144. package/src/psbt/psbtutils.ts +299 -0
  145. package/src/{psbt.js → psbt.ts} +1048 -699
  146. package/src/{push_data.js → push_data.ts} +35 -21
  147. package/src/{script.js → script.ts} +93 -77
  148. package/src/{script_number.js → script_number.ts} +15 -21
  149. package/src/{script_signature.js → script_signature.ts} +26 -14
  150. package/src/{transaction.js → transaction.ts} +247 -167
  151. package/src/types.ts +122 -0
  152. package/test/address.spec.js +124 -0
  153. package/test/address.spec.ts +177 -0
  154. package/test/bitcoin.core.spec.js +170 -0
  155. package/test/bitcoin.core.spec.ts +234 -0
  156. package/test/block.spec.js +141 -0
  157. package/test/block.spec.ts +194 -0
  158. package/test/bufferutils.spec.js +427 -0
  159. package/test/bufferutils.spec.ts +513 -0
  160. package/test/crypto.spec.js +41 -0
  161. package/test/crypto.spec.ts +55 -0
  162. package/test/fixtures/address.json +329 -0
  163. package/test/fixtures/block.json +148 -0
  164. package/test/fixtures/bufferutils.json +102 -0
  165. package/test/fixtures/core/README.md +26 -0
  166. package/test/fixtures/core/base58_encode_decode.json +50 -0
  167. package/test/fixtures/core/base58_keys_invalid.json +152 -0
  168. package/test/fixtures/core/base58_keys_valid.json +452 -0
  169. package/test/fixtures/core/blocks.json +27 -0
  170. package/test/fixtures/core/sig_canonical.json +7 -0
  171. package/test/fixtures/core/sig_noncanonical.json +33 -0
  172. package/test/fixtures/core/sighash.json +3505 -0
  173. package/test/fixtures/core/tx_valid.json +2023 -0
  174. package/test/fixtures/crypto.json +43 -0
  175. package/test/fixtures/ecdsa.json +217 -0
  176. package/test/fixtures/ecpair.json +141 -0
  177. package/test/fixtures/embed.json +108 -0
  178. package/test/fixtures/p2ms.json +434 -0
  179. package/test/fixtures/p2pk.json +179 -0
  180. package/test/fixtures/p2pkh.json +276 -0
  181. package/test/fixtures/p2sh.json +508 -0
  182. package/test/fixtures/p2tr.json +1198 -0
  183. package/test/fixtures/p2wpkh.json +290 -0
  184. package/test/fixtures/p2wsh.json +489 -0
  185. package/test/fixtures/psbt.json +924 -0
  186. package/test/fixtures/script.json +465 -0
  187. package/test/fixtures/script_number.json +225 -0
  188. package/test/fixtures/signature.json +140 -0
  189. package/test/fixtures/transaction.json +916 -0
  190. package/test/integration/_regtest.js +7 -0
  191. package/test/integration/_regtest.ts +6 -0
  192. package/test/integration/addresses.spec.js +116 -0
  193. package/test/integration/addresses.spec.ts +154 -0
  194. package/test/integration/bip32.spec.js +85 -0
  195. package/test/integration/bip32.spec.ts +151 -0
  196. package/test/integration/blocks.spec.js +26 -0
  197. package/test/integration/blocks.spec.ts +28 -0
  198. package/test/integration/cltv.spec.js +199 -0
  199. package/test/integration/cltv.spec.ts +283 -0
  200. package/test/integration/csv.spec.js +362 -0
  201. package/test/integration/csv.spec.ts +527 -0
  202. package/test/integration/payments.spec.js +98 -0
  203. package/test/integration/payments.spec.ts +135 -0
  204. package/test/integration/taproot.spec.js +532 -0
  205. package/test/integration/taproot.spec.ts +707 -0
  206. package/test/integration/transactions.spec.js +561 -0
  207. package/test/integration/transactions.spec.ts +769 -0
  208. package/test/payments.spec.js +97 -0
  209. package/test/payments.spec.ts +125 -0
  210. package/test/payments.utils.js +190 -0
  211. package/test/payments.utils.ts +208 -0
  212. package/test/psbt.spec.js +1044 -0
  213. package/test/psbt.spec.ts +1414 -0
  214. package/test/script.spec.js +151 -0
  215. package/test/script.spec.ts +210 -0
  216. package/test/script_number.spec.js +24 -0
  217. package/test/script_number.spec.ts +29 -0
  218. package/test/script_signature.spec.js +52 -0
  219. package/test/script_signature.spec.ts +66 -0
  220. package/test/transaction.spec.js +269 -0
  221. package/test/transaction.spec.ts +387 -0
  222. package/test/ts-node-register.js +5 -0
  223. package/test/tsconfig.json +45 -0
  224. package/test/types.spec.js +46 -0
  225. package/test/types.spec.ts +58 -0
  226. package/tsconfig.base.json +27 -0
  227. package/tsconfig.json +19 -0
  228. package/tsconfig.webpack.json +18 -0
  229. package/webpack.config.js +79 -0
  230. package/src/address.d.ts +0 -42
  231. package/src/crypto.js +0 -128
  232. package/src/ecc_lib.d.ts +0 -17
  233. package/src/hooks/AdvancedSignatureManager.d.ts +0 -44
  234. package/src/hooks/HookedSigner.js +0 -90
  235. package/src/hooks/SignatureManager.d.ts +0 -35
  236. package/src/index.d.ts +0 -42
  237. package/src/index.js +0 -87
  238. package/src/merkle.d.ts +0 -10
  239. package/src/networks.d.ts +0 -29
  240. package/src/networks.js +0 -71
  241. package/src/payments/bip341.d.ts +0 -49
  242. package/src/payments/bip341.js +0 -124
  243. package/src/payments/embed.d.ts +0 -9
  244. package/src/payments/embed.js +0 -54
  245. package/src/payments/index.js +0 -69
  246. package/src/payments/p2ms.d.ts +0 -9
  247. package/src/payments/p2pk.d.ts +0 -10
  248. package/src/payments/p2pkh.d.ts +0 -10
  249. package/src/payments/p2sh.d.ts +0 -10
  250. package/src/payments/p2tr.d.ts +0 -10
  251. package/src/payments/p2wpkh.d.ts +0 -10
  252. package/src/payments/p2wsh.d.ts +0 -10
  253. package/src/psbt/bip371.d.ts +0 -42
  254. package/src/psbt/psbtutils.d.ts +0 -64
  255. package/src/psbt/psbtutils.js +0 -191
  256. package/src/push_data.d.ts +0 -29
  257. package/src/script.d.ts +0 -42
  258. package/src/script_number.d.ts +0 -19
  259. package/src/script_signature.d.ts +0 -21
  260. package/src/types.js +0 -106
@@ -1,126 +1,126 @@
1
- export interface Opcodes {
2
- OP_FALSE: number;
3
- OP_0: number;
4
- OP_PUSHDATA1: number;
5
- OP_PUSHDATA2: number;
6
- OP_PUSHDATA4: number;
7
- OP_1NEGATE: number;
8
- OP_RESERVED: number;
9
- OP_TRUE: number;
10
- OP_1: number;
11
- OP_2: number;
12
- OP_3: number;
13
- OP_4: number;
14
- OP_5: number;
15
- OP_6: number;
16
- OP_7: number;
17
- OP_8: number;
18
- OP_9: number;
19
- OP_10: number;
20
- OP_11: number;
21
- OP_12: number;
22
- OP_13: number;
23
- OP_14: number;
24
- OP_15: number;
25
- OP_16: number;
26
- OP_NOP: number;
27
- OP_VER: number;
28
- OP_IF: number;
29
- OP_NOTIF: number;
30
- OP_VERIF: number;
31
- OP_VERNOTIF: number;
32
- OP_ELSE: number;
33
- OP_ENDIF: number;
34
- OP_VERIFY: number;
35
- OP_RETURN: number;
36
- OP_TOALTSTACK: number;
37
- OP_FROMALTSTACK: number;
38
- OP_2DROP: number;
39
- OP_2DUP: number;
40
- OP_3DUP: number;
41
- OP_2OVER: number;
42
- OP_2ROT: number;
43
- OP_2SWAP: number;
44
- OP_IFDUP: number;
45
- OP_DEPTH: number;
46
- OP_DROP: number;
47
- OP_DUP: number;
48
- OP_NIP: number;
49
- OP_OVER: number;
50
- OP_PICK: number;
51
- OP_ROLL: number;
52
- OP_ROT: number;
53
- OP_SWAP: number;
54
- OP_TUCK: number;
55
- OP_CAT: number;
56
- OP_SUBSTR: number;
57
- OP_LEFT: number;
58
- OP_RIGHT: number;
59
- OP_SIZE: number;
60
- OP_INVERT: number;
61
- OP_AND: number;
62
- OP_OR: number;
63
- OP_XOR: number;
64
- OP_EQUAL: number;
65
- OP_EQUALVERIFY: number;
66
- OP_RESERVED1: number;
67
- OP_RESERVED2: number;
68
- OP_1ADD: number;
69
- OP_1SUB: number;
70
- OP_2MUL: number;
71
- OP_2DIV: number;
72
- OP_NEGATE: number;
73
- OP_ABS: number;
74
- OP_NOT: number;
75
- OP_0NOTEQUAL: number;
76
- OP_ADD: number;
77
- OP_SUB: number;
78
- OP_MUL: number;
79
- OP_DIV: number;
80
- OP_MOD: number;
81
- OP_LSHIFT: number;
82
- OP_RSHIFT: number;
83
- OP_BOOLAND: number;
84
- OP_BOOLOR: number;
85
- OP_NUMEQUAL: number;
86
- OP_NUMEQUALVERIFY: number;
87
- OP_NUMNOTEQUAL: number;
88
- OP_LESSTHAN: number;
89
- OP_GREATERTHAN: number;
90
- OP_LESSTHANOREQUAL: number;
91
- OP_GREATERTHANOREQUAL: number;
92
- OP_MIN: number;
93
- OP_MAX: number;
94
- OP_WITHIN: number;
95
- OP_RIPEMD160: number;
96
- OP_SHA1: number;
97
- OP_SHA256: number;
98
- OP_HASH160: number;
99
- OP_HASH256: number;
100
- OP_CODESEPARATOR: number;
101
- OP_CHECKSIG: number;
102
- OP_CHECKSIGVERIFY: number;
103
- OP_CHECKMULTISIG: number;
104
- OP_CHECKMULTISIGVERIFY: number;
105
- OP_CHECKLOCKTIMEVERIFY: number;
106
- OP_CHECKSEQUENCEVERIFY: number;
107
- OP_CHECKSIGADD: number;
108
- OP_NOP1: number;
109
- OP_NOP2: number;
110
- OP_NOP3: number;
111
- OP_NOP4: number;
112
- OP_NOP5: number;
113
- OP_NOP6: number;
114
- OP_NOP7: number;
115
- OP_NOP8: number;
116
- OP_NOP9: number;
117
- OP_NOP10: number;
118
- OP_PUBKEYHASH: number;
119
- OP_PUBKEY: number;
120
- OP_INVALIDOPCODE: number;
121
- }
122
- declare const OPS: Opcodes;
123
- declare const REVERSE_OPS: {
124
- [key: number]: string;
125
- };
126
- export { OPS, REVERSE_OPS };
1
+ export interface Opcodes {
2
+ OP_FALSE: number;
3
+ OP_0: number;
4
+ OP_PUSHDATA1: number;
5
+ OP_PUSHDATA2: number;
6
+ OP_PUSHDATA4: number;
7
+ OP_1NEGATE: number;
8
+ OP_RESERVED: number;
9
+ OP_TRUE: number;
10
+ OP_1: number;
11
+ OP_2: number;
12
+ OP_3: number;
13
+ OP_4: number;
14
+ OP_5: number;
15
+ OP_6: number;
16
+ OP_7: number;
17
+ OP_8: number;
18
+ OP_9: number;
19
+ OP_10: number;
20
+ OP_11: number;
21
+ OP_12: number;
22
+ OP_13: number;
23
+ OP_14: number;
24
+ OP_15: number;
25
+ OP_16: number;
26
+ OP_NOP: number;
27
+ OP_VER: number;
28
+ OP_IF: number;
29
+ OP_NOTIF: number;
30
+ OP_VERIF: number;
31
+ OP_VERNOTIF: number;
32
+ OP_ELSE: number;
33
+ OP_ENDIF: number;
34
+ OP_VERIFY: number;
35
+ OP_RETURN: number;
36
+ OP_TOALTSTACK: number;
37
+ OP_FROMALTSTACK: number;
38
+ OP_2DROP: number;
39
+ OP_2DUP: number;
40
+ OP_3DUP: number;
41
+ OP_2OVER: number;
42
+ OP_2ROT: number;
43
+ OP_2SWAP: number;
44
+ OP_IFDUP: number;
45
+ OP_DEPTH: number;
46
+ OP_DROP: number;
47
+ OP_DUP: number;
48
+ OP_NIP: number;
49
+ OP_OVER: number;
50
+ OP_PICK: number;
51
+ OP_ROLL: number;
52
+ OP_ROT: number;
53
+ OP_SWAP: number;
54
+ OP_TUCK: number;
55
+ OP_CAT: number;
56
+ OP_SUBSTR: number;
57
+ OP_LEFT: number;
58
+ OP_RIGHT: number;
59
+ OP_SIZE: number;
60
+ OP_INVERT: number;
61
+ OP_AND: number;
62
+ OP_OR: number;
63
+ OP_XOR: number;
64
+ OP_EQUAL: number;
65
+ OP_EQUALVERIFY: number;
66
+ OP_RESERVED1: number;
67
+ OP_RESERVED2: number;
68
+ OP_1ADD: number;
69
+ OP_1SUB: number;
70
+ OP_2MUL: number;
71
+ OP_2DIV: number;
72
+ OP_NEGATE: number;
73
+ OP_ABS: number;
74
+ OP_NOT: number;
75
+ OP_0NOTEQUAL: number;
76
+ OP_ADD: number;
77
+ OP_SUB: number;
78
+ OP_MUL: number;
79
+ OP_DIV: number;
80
+ OP_MOD: number;
81
+ OP_LSHIFT: number;
82
+ OP_RSHIFT: number;
83
+ OP_BOOLAND: number;
84
+ OP_BOOLOR: number;
85
+ OP_NUMEQUAL: number;
86
+ OP_NUMEQUALVERIFY: number;
87
+ OP_NUMNOTEQUAL: number;
88
+ OP_LESSTHAN: number;
89
+ OP_GREATERTHAN: number;
90
+ OP_LESSTHANOREQUAL: number;
91
+ OP_GREATERTHANOREQUAL: number;
92
+ OP_MIN: number;
93
+ OP_MAX: number;
94
+ OP_WITHIN: number;
95
+ OP_RIPEMD160: number;
96
+ OP_SHA1: number;
97
+ OP_SHA256: number;
98
+ OP_HASH160: number;
99
+ OP_HASH256: number;
100
+ OP_CODESEPARATOR: number;
101
+ OP_CHECKSIG: number;
102
+ OP_CHECKSIGVERIFY: number;
103
+ OP_CHECKMULTISIG: number;
104
+ OP_CHECKMULTISIGVERIFY: number;
105
+ OP_CHECKLOCKTIMEVERIFY: number;
106
+ OP_CHECKSEQUENCEVERIFY: number;
107
+ OP_CHECKSIGADD: number;
108
+ OP_NOP1: number;
109
+ OP_NOP2: number;
110
+ OP_NOP3: number;
111
+ OP_NOP4: number;
112
+ OP_NOP5: number;
113
+ OP_NOP6: number;
114
+ OP_NOP7: number;
115
+ OP_NOP8: number;
116
+ OP_NOP9: number;
117
+ OP_NOP10: number;
118
+ OP_PUBKEYHASH: number;
119
+ OP_PUBKEY: number;
120
+ OP_INVALIDOPCODE: number;
121
+ }
122
+ declare const OPS: Opcodes;
123
+ declare const REVERSE_OPS: {
124
+ [key: number]: string;
125
+ };
126
+ export { OPS, REVERSE_OPS };
@@ -0,0 +1,23 @@
1
+ import { Tapleaf, Taptree } from '../types.js';
2
+ export declare const LEAF_VERSION_TAPSCRIPT = 192;
3
+ export declare const MAX_TAPTREE_DEPTH = 128;
4
+ interface HashLeaf {
5
+ hash: Buffer;
6
+ }
7
+ interface HashBranch {
8
+ hash: Buffer;
9
+ left: HashTree;
10
+ right: HashTree;
11
+ }
12
+ interface TweakedPublicKey {
13
+ parity: number;
14
+ x: Buffer;
15
+ }
16
+ export type HashTree = HashLeaf | HashBranch;
17
+ export declare function rootHashFromPath(controlBlock: Buffer, leafHash: Buffer): Buffer;
18
+ export declare function toHashTree(scriptTree: Taptree): HashTree;
19
+ export declare function findScriptPath(node: HashTree, hash: Buffer): Buffer[] | undefined;
20
+ export declare function tapleafHash(leaf: Tapleaf): Buffer;
21
+ export declare function tapTweakHash(pubKey: Buffer, h: Buffer | undefined): Buffer;
22
+ export declare function tweakKey(pubKey: Buffer, h: Buffer | undefined): TweakedPublicKey | null;
23
+ export {};
@@ -0,0 +1,2 @@
1
+ import { Payment, PaymentOpts } from './index.js';
2
+ export declare function p2data(a: Payment, opts?: PaymentOpts): Payment;
@@ -0,0 +1,41 @@
1
+ import { Network } from '../networks';
2
+ import { Taptree } from '../types';
3
+ export * from './bip341.js';
4
+ export * from './embed.js';
5
+ export * from './lazy.js';
6
+ export * from './p2ms.js';
7
+ export * from './p2pk.js';
8
+ export * from './p2pkh.js';
9
+ export * from './p2sh.js';
10
+ export * from './p2tr.js';
11
+ export * from './p2wpkh.js';
12
+ export * from './p2wsh.js';
13
+ export interface Payment {
14
+ name?: string;
15
+ network?: Network;
16
+ output?: Buffer;
17
+ data?: Buffer[];
18
+ m?: number;
19
+ n?: number;
20
+ pubkeys?: Buffer[];
21
+ input?: Buffer;
22
+ signatures?: Buffer[];
23
+ internalPubkey?: Buffer;
24
+ pubkey?: Buffer;
25
+ signature?: Buffer;
26
+ address?: string;
27
+ hash?: Buffer;
28
+ redeem?: Payment;
29
+ redeemVersion?: number;
30
+ scriptTree?: Taptree;
31
+ witness?: Buffer[];
32
+ }
33
+ export type PaymentCreator = (a: Payment, opts?: PaymentOpts) => Payment;
34
+ export type PaymentFunction = () => Payment;
35
+ export interface PaymentOpts {
36
+ validate?: boolean;
37
+ allowIncomplete?: boolean;
38
+ }
39
+ export type StackElement = Buffer | number;
40
+ export type Stack = StackElement[];
41
+ export type StackFunction = () => Stack;
@@ -1,2 +1,2 @@
1
- export declare function prop(object: {}, name: string, f: () => any): void;
2
- export declare function value<T>(f: () => T): () => T;
1
+ export declare function prop(object: {}, name: string, f: () => any): void;
2
+ export declare function value<T>(f: () => T): () => T;
@@ -0,0 +1,2 @@
1
+ import { Payment, PaymentOpts } from './index.js';
2
+ export declare function p2ms(a: Payment, opts?: PaymentOpts): Payment;
@@ -0,0 +1,2 @@
1
+ import { Payment, PaymentOpts } from './index.js';
2
+ export declare function p2pk(a: Payment, opts?: PaymentOpts): Payment;
@@ -0,0 +1,2 @@
1
+ import { Payment, PaymentOpts } from './index.js';
2
+ export declare function p2pkh(a: Payment, opts?: PaymentOpts): Payment;
@@ -0,0 +1,2 @@
1
+ import { Payment, PaymentOpts } from './index.js';
2
+ export declare function p2sh(a: Payment, opts?: PaymentOpts): Payment;
@@ -0,0 +1,2 @@
1
+ import { Payment, PaymentOpts } from './index.js';
2
+ export declare function p2tr(a: Payment, opts?: PaymentOpts): Payment;
@@ -0,0 +1,2 @@
1
+ import { Payment, PaymentOpts } from './index.js';
2
+ export declare function p2wpkh(a: Payment, opts?: PaymentOpts): Payment;
@@ -0,0 +1,2 @@
1
+ import { Payment, PaymentOpts } from './index.js';
2
+ export declare function p2wsh(a: Payment, opts?: PaymentOpts): Payment;
@@ -0,0 +1,16 @@
1
+ import { PsbtInput, PsbtOutput, TapLeaf } from 'bip174/src/lib/interfaces.js';
2
+ import { Taptree } from '../types.js';
3
+ export declare const toXOnly: (pubKey: Buffer | Uint8Array) => Buffer;
4
+ export declare function tapScriptFinalizer(inputIndex: number, input: PsbtInput, tapLeafHashToFinalize?: Buffer): {
5
+ finalScriptWitness: Buffer | undefined;
6
+ };
7
+ export declare function serializeTaprootSignature(sig: Buffer, sighashType?: number): Buffer;
8
+ export declare function isTaprootInput(input: PsbtInput): boolean;
9
+ export declare function isTaprootOutput(output: PsbtOutput, script?: Buffer): boolean;
10
+ export declare function checkTaprootInputFields(inputData: PsbtInput, newInputData: PsbtInput, action: string): void;
11
+ export declare function checkTaprootOutputFields(outputData: PsbtOutput, newOutputData: PsbtOutput, action: string): void;
12
+ export declare function tweakInternalPubKey(inputIndex: number, input: PsbtInput): Buffer;
13
+ export declare function tapTreeToList(tree: Taptree): TapLeaf[];
14
+ export declare function tapTreeFromList(leaves?: TapLeaf[]): Taptree;
15
+ export declare function checkTaprootInputForSigs(input: PsbtInput, action: string): boolean;
16
+ export declare function getTapKeySigFromWitness(finalScriptWitness?: Buffer): Buffer | undefined;
@@ -0,0 +1,26 @@
1
+ import { PartialSig, PsbtInput } from 'bip174/src/lib/interfaces.js';
2
+ export declare const isP2MS: (script: Buffer) => boolean;
3
+ export declare const isP2PK: (script: Buffer) => boolean;
4
+ export declare const isP2PKH: (script: Buffer) => boolean;
5
+ export declare const isP2WPKH: (script: Buffer) => boolean;
6
+ export declare const isP2WSHScript: (script: Buffer) => boolean;
7
+ export declare const isP2SHScript: (script: Buffer) => boolean;
8
+ export declare const isP2TR: (script: Buffer) => boolean;
9
+ export declare function witnessStackToScriptWitness(witness: Buffer[]): Buffer;
10
+ export interface UncompressedPublicKey {
11
+ hybrid: Buffer;
12
+ uncompressed: Buffer;
13
+ }
14
+ export declare function decompressPublicKey(realPubKey: Uint8Array | Buffer): UncompressedPublicKey;
15
+ export declare function bigIntTo32Bytes(num: bigint): Buffer;
16
+ export declare function pubkeysMatch(a: Buffer, b: Buffer): boolean;
17
+ export declare function pubkeyPositionInScript(pubkey: Buffer, script: Buffer): number;
18
+ export declare function pubkeyInScript(pubkey: Buffer, script: Buffer): boolean;
19
+ export declare function checkInputForSig(input: PsbtInput, action: string): boolean;
20
+ type SignatureDecodeFunc = (buffer: Buffer) => {
21
+ signature: Buffer;
22
+ hashType: number;
23
+ };
24
+ export declare function signatureBlocksAction(signature: Buffer, signatureDecodeFn: SignatureDecodeFunc, action: string): boolean;
25
+ export declare function getPsigsFromInputFinalScripts(input: PsbtInput): PartialSig[];
26
+ export {};