@btc-vision/bitcoin 6.5.6 → 7.0.0-alpha.1

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 (456) hide show
  1. package/HOW_TO_WRITE_GOOD_CODE.md +2436 -0
  2. package/benchmark/psbt-2000-inputs.bench.ts +178 -0
  3. package/benchmark/signing.bench.ts +147 -0
  4. package/browser/address.d.ts +57 -10
  5. package/browser/address.d.ts.map +1 -0
  6. package/browser/bech32utils.d.ts +9 -1
  7. package/browser/bech32utils.d.ts.map +1 -0
  8. package/browser/bip66.d.ts +11 -6
  9. package/browser/bip66.d.ts.map +1 -0
  10. package/browser/block.d.ts +117 -11
  11. package/browser/block.d.ts.map +1 -0
  12. package/browser/branded.d.ts +20 -0
  13. package/browser/branded.d.ts.map +1 -0
  14. package/browser/crypto/crypto.d.ts +1 -0
  15. package/browser/crypto/crypto.d.ts.map +1 -0
  16. package/browser/crypto.d.ts +46 -7
  17. package/browser/crypto.d.ts.map +1 -0
  18. package/browser/ecc/context.d.ts +129 -0
  19. package/browser/ecc/context.d.ts.map +1 -0
  20. package/browser/ecc/index.d.ts +11 -0
  21. package/browser/ecc/index.d.ts.map +1 -0
  22. package/browser/ecc/types.d.ts +128 -0
  23. package/browser/ecc/types.d.ts.map +1 -0
  24. package/browser/ecpair.d.ts +99 -0
  25. package/browser/errors.d.ts +124 -0
  26. package/browser/errors.d.ts.map +1 -0
  27. package/browser/index.d.ts +32 -5
  28. package/browser/index.d.ts.map +1 -0
  29. package/browser/index.js +12477 -101
  30. package/browser/io/BinaryReader.d.ts +276 -0
  31. package/browser/io/BinaryReader.d.ts.map +1 -0
  32. package/browser/io/BinaryWriter.d.ts +391 -0
  33. package/browser/io/BinaryWriter.d.ts.map +1 -0
  34. package/browser/io/MemoryPool.d.ts +220 -0
  35. package/browser/io/MemoryPool.d.ts.map +1 -0
  36. package/browser/io/base64.d.ts +13 -0
  37. package/browser/io/base64.d.ts.map +1 -0
  38. package/browser/io/hex.d.ts +67 -0
  39. package/browser/io/hex.d.ts.map +1 -0
  40. package/browser/io/index.d.ts +17 -0
  41. package/browser/io/index.d.ts.map +1 -0
  42. package/browser/io/utils.d.ts +199 -0
  43. package/browser/io/utils.d.ts.map +1 -0
  44. package/browser/merkle.d.ts +10 -1
  45. package/browser/merkle.d.ts.map +1 -0
  46. package/browser/networks.d.ts +70 -9
  47. package/browser/networks.d.ts.map +1 -0
  48. package/browser/opcodes.d.ts +1 -0
  49. package/browser/opcodes.d.ts.map +1 -0
  50. package/browser/payments/bip341.d.ts +35 -9
  51. package/browser/payments/bip341.d.ts.map +1 -0
  52. package/browser/payments/embed.d.ts +112 -1
  53. package/browser/payments/embed.d.ts.map +1 -0
  54. package/browser/payments/index.d.ts +17 -10
  55. package/browser/payments/index.d.ts.map +1 -0
  56. package/browser/payments/p2ms.d.ts +150 -0
  57. package/browser/payments/p2ms.d.ts.map +1 -0
  58. package/browser/payments/p2op.d.ts +150 -24
  59. package/browser/payments/p2op.d.ts.map +1 -0
  60. package/browser/payments/p2pk.d.ts +154 -1
  61. package/browser/payments/p2pk.d.ts.map +1 -0
  62. package/browser/payments/p2pkh.d.ts +176 -1
  63. package/browser/payments/p2pkh.d.ts.map +1 -0
  64. package/browser/payments/p2sh.d.ts +150 -1
  65. package/browser/payments/p2sh.d.ts.map +1 -0
  66. package/browser/payments/p2tr.d.ts +185 -1
  67. package/browser/payments/p2tr.d.ts.map +1 -0
  68. package/browser/payments/p2wpkh.d.ts +161 -1
  69. package/browser/payments/p2wpkh.d.ts.map +1 -0
  70. package/browser/payments/p2wsh.d.ts +146 -1
  71. package/browser/payments/p2wsh.d.ts.map +1 -0
  72. package/browser/payments/types.d.ts +94 -64
  73. package/browser/payments/types.d.ts.map +1 -0
  74. package/browser/psbt/bip371.d.ts +34 -8
  75. package/browser/psbt/bip371.d.ts.map +1 -0
  76. package/browser/psbt/psbtutils.d.ts +56 -16
  77. package/browser/psbt/psbtutils.d.ts.map +1 -0
  78. package/browser/psbt/types.d.ts +245 -0
  79. package/browser/psbt/types.d.ts.map +1 -0
  80. package/browser/psbt/utils.d.ts +64 -0
  81. package/browser/psbt/utils.d.ts.map +1 -0
  82. package/browser/psbt/validation.d.ts +84 -0
  83. package/browser/psbt/validation.d.ts.map +1 -0
  84. package/browser/psbt.d.ts +82 -118
  85. package/browser/psbt.d.ts.map +1 -0
  86. package/browser/pubkey.d.ts +27 -6
  87. package/browser/pubkey.d.ts.map +1 -0
  88. package/browser/push_data.d.ts +24 -2
  89. package/browser/push_data.d.ts.map +1 -0
  90. package/browser/script.d.ts +33 -8
  91. package/browser/script.d.ts.map +1 -0
  92. package/browser/script_number.d.ts +17 -0
  93. package/browser/script_number.d.ts.map +1 -0
  94. package/browser/script_signature.d.ts +23 -5
  95. package/browser/script_signature.d.ts.map +1 -0
  96. package/browser/transaction.d.ts +160 -18
  97. package/browser/transaction.d.ts.map +1 -0
  98. package/browser/types.d.ts +36 -38
  99. package/browser/types.d.ts.map +1 -0
  100. package/browser/workers/WorkerSigningPool.d.ts +143 -0
  101. package/browser/workers/WorkerSigningPool.d.ts.map +1 -0
  102. package/browser/workers/WorkerSigningPool.node.d.ts +116 -0
  103. package/browser/workers/WorkerSigningPool.node.d.ts.map +1 -0
  104. package/browser/workers/ecc-bundle.d.ts +25 -0
  105. package/browser/workers/ecc-bundle.d.ts.map +1 -0
  106. package/browser/workers/index.d.ts +91 -0
  107. package/browser/workers/index.d.ts.map +1 -0
  108. package/browser/workers/psbt-parallel.d.ts +88 -0
  109. package/browser/workers/psbt-parallel.d.ts.map +1 -0
  110. package/browser/workers/signing-worker.d.ts +37 -0
  111. package/browser/workers/signing-worker.d.ts.map +1 -0
  112. package/browser/workers/types.d.ts +365 -0
  113. package/browser/workers/types.d.ts.map +1 -0
  114. package/build/address.d.ts +58 -11
  115. package/build/address.d.ts.map +1 -0
  116. package/build/address.js +82 -25
  117. package/build/address.js.map +1 -0
  118. package/build/bech32utils.d.ts +9 -1
  119. package/build/bech32utils.d.ts.map +1 -0
  120. package/build/bech32utils.js +10 -2
  121. package/build/bech32utils.js.map +1 -0
  122. package/build/bip66.d.ts +11 -6
  123. package/build/bip66.d.ts.map +1 -0
  124. package/build/bip66.js +32 -3
  125. package/build/bip66.js.map +1 -0
  126. package/build/block.d.ts +117 -11
  127. package/build/block.d.ts.map +1 -0
  128. package/build/block.js +202 -72
  129. package/build/block.js.map +1 -0
  130. package/build/branded.d.ts +20 -0
  131. package/build/branded.d.ts.map +1 -0
  132. package/build/branded.js +7 -0
  133. package/build/branded.js.map +1 -0
  134. package/build/crypto/crypto.d.ts +1 -0
  135. package/build/crypto/crypto.d.ts.map +1 -0
  136. package/build/crypto/crypto.js +1 -0
  137. package/build/crypto/crypto.js.map +1 -0
  138. package/build/crypto.d.ts +46 -7
  139. package/build/crypto.d.ts.map +1 -0
  140. package/build/crypto.js +65 -20
  141. package/build/crypto.js.map +1 -0
  142. package/build/ecc/context.d.ts +135 -0
  143. package/build/ecc/context.d.ts.map +1 -0
  144. package/build/ecc/context.js +232 -0
  145. package/build/ecc/context.js.map +1 -0
  146. package/build/ecc/index.d.ts +11 -0
  147. package/build/ecc/index.d.ts.map +1 -0
  148. package/build/ecc/index.js +11 -0
  149. package/build/ecc/index.js.map +1 -0
  150. package/build/ecc/types.d.ts +134 -0
  151. package/build/ecc/types.d.ts.map +1 -0
  152. package/build/ecc/types.js +8 -0
  153. package/build/ecc/types.js.map +1 -0
  154. package/build/errors.d.ts +124 -0
  155. package/build/errors.d.ts.map +1 -0
  156. package/build/errors.js +155 -0
  157. package/build/errors.js.map +1 -0
  158. package/build/index.d.ts +32 -5
  159. package/build/index.d.ts.map +1 -0
  160. package/build/index.js +26 -3
  161. package/build/index.js.map +1 -0
  162. package/build/io/BinaryReader.d.ts +276 -0
  163. package/build/io/BinaryReader.d.ts.map +1 -0
  164. package/build/io/BinaryReader.js +425 -0
  165. package/build/io/BinaryReader.js.map +1 -0
  166. package/build/io/BinaryWriter.d.ts +391 -0
  167. package/build/io/BinaryWriter.d.ts.map +1 -0
  168. package/build/io/BinaryWriter.js +611 -0
  169. package/build/io/BinaryWriter.js.map +1 -0
  170. package/build/io/MemoryPool.d.ts +220 -0
  171. package/build/io/MemoryPool.d.ts.map +1 -0
  172. package/build/io/MemoryPool.js +309 -0
  173. package/build/io/MemoryPool.js.map +1 -0
  174. package/build/io/base64.d.ts +13 -0
  175. package/build/io/base64.d.ts.map +1 -0
  176. package/build/io/base64.js +20 -0
  177. package/build/io/base64.js.map +1 -0
  178. package/build/io/hex.d.ts +67 -0
  179. package/build/io/hex.d.ts.map +1 -0
  180. package/build/io/hex.js +138 -0
  181. package/build/io/hex.js.map +1 -0
  182. package/build/io/index.d.ts +17 -0
  183. package/build/io/index.d.ts.map +1 -0
  184. package/build/io/index.js +23 -0
  185. package/build/io/index.js.map +1 -0
  186. package/build/io/utils.d.ts +199 -0
  187. package/build/io/utils.d.ts.map +1 -0
  188. package/build/io/utils.js +271 -0
  189. package/build/io/utils.js.map +1 -0
  190. package/build/merkle.d.ts +10 -1
  191. package/build/merkle.d.ts.map +1 -0
  192. package/build/merkle.js +12 -1
  193. package/build/merkle.js.map +1 -0
  194. package/build/networks.d.ts +70 -9
  195. package/build/networks.d.ts.map +1 -0
  196. package/build/networks.js +90 -4
  197. package/build/networks.js.map +1 -0
  198. package/build/opcodes.d.ts +1 -0
  199. package/build/opcodes.d.ts.map +1 -0
  200. package/build/opcodes.js +1 -0
  201. package/build/opcodes.js.map +1 -0
  202. package/build/payments/bip341.d.ts +35 -9
  203. package/build/payments/bip341.d.ts.map +1 -0
  204. package/build/payments/bip341.js +34 -15
  205. package/build/payments/bip341.js.map +1 -0
  206. package/build/payments/embed.d.ts +120 -1
  207. package/build/payments/embed.d.ts.map +1 -0
  208. package/build/payments/embed.js +215 -34
  209. package/build/payments/embed.js.map +1 -0
  210. package/build/payments/index.d.ts +17 -10
  211. package/build/payments/index.d.ts.map +1 -0
  212. package/build/payments/index.js +20 -10
  213. package/build/payments/index.js.map +1 -0
  214. package/build/payments/p2ms.d.ts +159 -1
  215. package/build/payments/p2ms.d.ts.map +1 -0
  216. package/build/payments/p2ms.js +427 -108
  217. package/build/payments/p2ms.js.map +1 -0
  218. package/build/payments/p2op.d.ts +158 -24
  219. package/build/payments/p2op.d.ts.map +1 -0
  220. package/build/payments/p2op.js +379 -93
  221. package/build/payments/p2op.js.map +1 -0
  222. package/build/payments/p2pk.d.ts +162 -1
  223. package/build/payments/p2pk.d.ts.map +1 -0
  224. package/build/payments/p2pk.js +327 -58
  225. package/build/payments/p2pk.js.map +1 -0
  226. package/build/payments/p2pkh.d.ts +185 -1
  227. package/build/payments/p2pkh.d.ts.map +1 -0
  228. package/build/payments/p2pkh.js +467 -114
  229. package/build/payments/p2pkh.js.map +1 -0
  230. package/build/payments/p2sh.d.ts +159 -1
  231. package/build/payments/p2sh.d.ts.map +1 -0
  232. package/build/payments/p2sh.js +500 -150
  233. package/build/payments/p2sh.js.map +1 -0
  234. package/build/payments/p2tr.d.ts +193 -1
  235. package/build/payments/p2tr.d.ts.map +1 -0
  236. package/build/payments/p2tr.js +592 -174
  237. package/build/payments/p2tr.js.map +1 -0
  238. package/build/payments/p2wpkh.d.ts +170 -1
  239. package/build/payments/p2wpkh.d.ts.map +1 -0
  240. package/build/payments/p2wpkh.js +428 -103
  241. package/build/payments/p2wpkh.js.map +1 -0
  242. package/build/payments/p2wsh.d.ts +155 -1
  243. package/build/payments/p2wsh.d.ts.map +1 -0
  244. package/build/payments/p2wsh.js +465 -143
  245. package/build/payments/p2wsh.js.map +1 -0
  246. package/build/payments/types.d.ts +98 -64
  247. package/build/payments/types.d.ts.map +1 -0
  248. package/build/payments/types.js +17 -13
  249. package/build/payments/types.js.map +1 -0
  250. package/build/psbt/bip371.d.ts +35 -9
  251. package/build/psbt/bip371.d.ts.map +1 -0
  252. package/build/psbt/bip371.js +117 -28
  253. package/build/psbt/bip371.js.map +1 -0
  254. package/build/psbt/psbtutils.d.ts +56 -16
  255. package/build/psbt/psbtutils.d.ts.map +1 -0
  256. package/build/psbt/psbtutils.js +71 -16
  257. package/build/psbt/psbtutils.js.map +1 -0
  258. package/build/psbt/types.d.ts +249 -0
  259. package/build/psbt/types.d.ts.map +1 -0
  260. package/build/psbt/types.js +6 -0
  261. package/build/psbt/types.js.map +1 -0
  262. package/build/psbt/utils.d.ts +68 -0
  263. package/build/psbt/utils.d.ts.map +1 -0
  264. package/build/psbt/utils.js +171 -0
  265. package/build/psbt/utils.js.map +1 -0
  266. package/build/psbt/validation.d.ts +88 -0
  267. package/build/psbt/validation.d.ts.map +1 -0
  268. package/build/psbt/validation.js +149 -0
  269. package/build/psbt/validation.js.map +1 -0
  270. package/build/psbt.d.ts +84 -120
  271. package/build/psbt.d.ts.map +1 -0
  272. package/build/psbt.js +406 -413
  273. package/build/psbt.js.map +1 -0
  274. package/build/pubkey.d.ts +27 -6
  275. package/build/pubkey.d.ts.map +1 -0
  276. package/build/pubkey.js +36 -12
  277. package/build/pubkey.js.map +1 -0
  278. package/build/push_data.d.ts +24 -2
  279. package/build/push_data.d.ts.map +1 -0
  280. package/build/push_data.js +44 -12
  281. package/build/push_data.js.map +1 -0
  282. package/build/script.d.ts +33 -8
  283. package/build/script.d.ts.map +1 -0
  284. package/build/script.js +101 -37
  285. package/build/script.js.map +1 -0
  286. package/build/script_number.d.ts +17 -0
  287. package/build/script_number.d.ts.map +1 -0
  288. package/build/script_number.js +19 -0
  289. package/build/script_number.js.map +1 -0
  290. package/build/script_signature.d.ts +23 -5
  291. package/build/script_signature.d.ts.map +1 -0
  292. package/build/script_signature.js +48 -15
  293. package/build/script_signature.js.map +1 -0
  294. package/build/transaction.d.ts +160 -18
  295. package/build/transaction.d.ts.map +1 -0
  296. package/build/transaction.js +443 -176
  297. package/build/transaction.js.map +1 -0
  298. package/build/tsconfig.build.tsbuildinfo +1 -0
  299. package/build/types.d.ts +36 -38
  300. package/build/types.d.ts.map +1 -0
  301. package/build/types.js +169 -57
  302. package/build/types.js.map +1 -0
  303. package/build/workers/WorkerSigningPool.d.ts +174 -0
  304. package/build/workers/WorkerSigningPool.d.ts.map +1 -0
  305. package/build/workers/WorkerSigningPool.js +553 -0
  306. package/build/workers/WorkerSigningPool.js.map +1 -0
  307. package/build/workers/WorkerSigningPool.node.d.ts +124 -0
  308. package/build/workers/WorkerSigningPool.node.d.ts.map +1 -0
  309. package/build/workers/WorkerSigningPool.node.js +753 -0
  310. package/build/workers/WorkerSigningPool.node.js.map +1 -0
  311. package/build/workers/ecc-bundle.d.ts +25 -0
  312. package/build/workers/ecc-bundle.d.ts.map +1 -0
  313. package/build/workers/ecc-bundle.js +25 -0
  314. package/build/workers/ecc-bundle.js.map +1 -0
  315. package/build/workers/index.d.ts +91 -0
  316. package/build/workers/index.d.ts.map +1 -0
  317. package/build/workers/index.js +114 -0
  318. package/build/workers/index.js.map +1 -0
  319. package/build/workers/psbt-parallel.d.ts +117 -0
  320. package/build/workers/psbt-parallel.d.ts.map +1 -0
  321. package/build/workers/psbt-parallel.js +233 -0
  322. package/build/workers/psbt-parallel.js.map +1 -0
  323. package/build/workers/signing-worker.d.ts +37 -0
  324. package/build/workers/signing-worker.d.ts.map +1 -0
  325. package/build/workers/signing-worker.js +350 -0
  326. package/build/workers/signing-worker.js.map +1 -0
  327. package/build/workers/types.d.ts +365 -0
  328. package/build/workers/types.d.ts.map +1 -0
  329. package/build/workers/types.js +60 -0
  330. package/build/workers/types.js.map +1 -0
  331. package/package.json +68 -9
  332. package/scripts/bundle-ecc.ts +111 -0
  333. package/src/address.ts +91 -45
  334. package/src/bech32utils.ts +3 -3
  335. package/src/bip66.ts +34 -24
  336. package/src/block.ts +205 -86
  337. package/src/branded.ts +18 -0
  338. package/src/crypto.ts +64 -26
  339. package/src/ecc/context.ts +280 -0
  340. package/src/ecc/index.ts +14 -0
  341. package/src/ecc/types.ts +147 -0
  342. package/src/ecpair.d.ts +99 -0
  343. package/src/errors.ts +163 -0
  344. package/src/index.ts +112 -9
  345. package/src/io/BinaryReader.ts +461 -0
  346. package/src/io/BinaryWriter.ts +696 -0
  347. package/src/io/MemoryPool.ts +343 -0
  348. package/src/io/base64.ts +20 -0
  349. package/src/io/hex.ts +155 -0
  350. package/src/io/index.ts +41 -0
  351. package/src/io/utils.ts +283 -0
  352. package/src/merkle.ts +14 -9
  353. package/src/networks.ts +9 -9
  354. package/src/payments/bip341.ts +32 -33
  355. package/src/payments/embed.ts +244 -41
  356. package/src/payments/index.ts +12 -10
  357. package/src/payments/p2ms.ts +497 -118
  358. package/src/payments/p2op.ts +432 -134
  359. package/src/payments/p2pk.ts +370 -72
  360. package/src/payments/p2pkh.ts +524 -130
  361. package/src/payments/p2sh.ts +572 -169
  362. package/src/payments/p2tr.ts +686 -194
  363. package/src/payments/p2wpkh.ts +482 -105
  364. package/src/payments/p2wsh.ts +524 -162
  365. package/src/payments/types.ts +80 -66
  366. package/src/psbt/bip371.ts +72 -51
  367. package/src/psbt/psbtutils.ts +39 -40
  368. package/src/psbt/types.ts +324 -0
  369. package/src/psbt/utils.ts +188 -0
  370. package/src/psbt/validation.ts +185 -0
  371. package/src/psbt.ts +608 -827
  372. package/src/pubkey.ts +22 -23
  373. package/src/push_data.ts +18 -16
  374. package/src/script.ts +81 -66
  375. package/src/script_number.ts +6 -6
  376. package/src/script_signature.ts +33 -36
  377. package/src/transaction.ts +462 -239
  378. package/src/types.ts +229 -100
  379. package/src/workers/WorkerSigningPool.node.ts +887 -0
  380. package/src/workers/WorkerSigningPool.ts +666 -0
  381. package/src/workers/ecc-bundle.ts +26 -0
  382. package/src/workers/index.ts +165 -0
  383. package/src/workers/psbt-parallel.ts +327 -0
  384. package/src/workers/signing-worker.ts +353 -0
  385. package/src/workers/types.ts +417 -0
  386. package/test/address.spec.ts +9 -6
  387. package/test/bitcoin.core.spec.ts +16 -17
  388. package/test/block.spec.ts +8 -7
  389. package/test/bufferutils.spec.ts +228 -214
  390. package/test/crypto.spec.ts +19 -11
  391. package/test/fixtures/p2pk.json +0 -8
  392. package/test/fixtures/p2pkh.json +1 -1
  393. package/test/fixtures/p2sh.json +1 -1
  394. package/test/fixtures/script.json +1 -1
  395. package/test/fixtures/transaction.json +2 -2
  396. package/test/integration/_regtest.ts +25 -0
  397. package/test/integration/addresses.spec.ts +4 -3
  398. package/test/integration/bip32.spec.ts +2 -1
  399. package/test/integration/blocks.spec.ts +1 -1
  400. package/test/integration/cltv.spec.ts +18 -16
  401. package/test/integration/csv.spec.ts +37 -64
  402. package/test/integration/payments.spec.ts +5 -3
  403. package/test/integration/taproot.spec.ts +76 -83
  404. package/test/integration/transactions.spec.ts +38 -35
  405. package/test/payments.spec.ts +35 -13
  406. package/test/payments.utils.ts +17 -16
  407. package/test/psbt.spec.ts +111 -100
  408. package/test/script.spec.ts +11 -10
  409. package/test/script_signature.spec.ts +9 -11
  410. package/test/taproot-cache.spec.ts +694 -0
  411. package/test/transaction.spec.ts +32 -40
  412. package/test/types.spec.ts +74 -29
  413. package/test/workers-pool.spec.ts +963 -0
  414. package/test/workers-signing.spec.ts +635 -0
  415. package/test/workers.spec.ts +1390 -0
  416. package/tsconfig.base.json +34 -18
  417. package/tsconfig.browser.json +15 -0
  418. package/tsconfig.build.json +5 -0
  419. package/tsconfig.json +5 -14
  420. package/typedoc.json +29 -0
  421. package/vite.config.browser.ts +3 -42
  422. package/vitest.config.integration.ts +2 -0
  423. package/browser/bufferutils.d.ts +0 -34
  424. package/browser/chunks/crypto-BhCpKpek.js +0 -2033
  425. package/browser/chunks/payments-B1wlSccx.js +0 -1089
  426. package/browser/chunks/psbt-BCNk7JUx.js +0 -4055
  427. package/browser/chunks/script-DyPItFEl.js +0 -318
  428. package/browser/chunks/transaction-C_UbhMGn.js +0 -432
  429. package/browser/chunks/utils-DNZi-T5W.js +0 -761
  430. package/browser/ecc_lib.d.ts +0 -3
  431. package/browser/hooks/AdvancedSignatureManager.d.ts +0 -16
  432. package/browser/hooks/HookedSigner.d.ts +0 -4
  433. package/browser/hooks/SignatureManager.d.ts +0 -13
  434. package/browser/payments/lazy.d.ts +0 -2
  435. package/browser/typeforce.d.ts +0 -38
  436. package/build/bufferutils.d.ts +0 -34
  437. package/build/bufferutils.js +0 -141
  438. package/build/ecc_lib.d.ts +0 -3
  439. package/build/ecc_lib.js +0 -61
  440. package/build/hooks/AdvancedSignatureManager.d.ts +0 -16
  441. package/build/hooks/AdvancedSignatureManager.js +0 -52
  442. package/build/hooks/HookedSigner.d.ts +0 -4
  443. package/build/hooks/HookedSigner.js +0 -64
  444. package/build/hooks/SignatureManager.d.ts +0 -13
  445. package/build/hooks/SignatureManager.js +0 -45
  446. package/build/payments/lazy.d.ts +0 -2
  447. package/build/payments/lazy.js +0 -28
  448. package/build/tsconfig.tsbuildinfo +0 -1
  449. package/src/bufferutils.ts +0 -188
  450. package/src/ecc_lib.ts +0 -94
  451. package/src/hooks/AdvancedSignatureManager.ts +0 -104
  452. package/src/hooks/HookedSigner.ts +0 -108
  453. package/src/hooks/SignatureManager.ts +0 -84
  454. package/src/payments/lazy.ts +0 -28
  455. package/src/typeforce.d.ts +0 -38
  456. package/tsconfig.webpack.json +0 -18
@@ -1,432 +0,0 @@
1
- import { B as c, b as U, s as N, t as $ } from "./crypto-BhCpKpek.js";
2
- import { B as z, g as K, h as D, a as C, j as b, m as P, k as _, N as Q, S as W, e as v, l as V, n as A, r as M, F as J, o as x, f as tt } from "./utils-DNZi-T5W.js";
3
- import { d as et, c as st, o as it } from "./script-DyPItFEl.js";
4
- const { typeforce: p } = K;
5
- function I(l) {
6
- const t = l.length;
7
- return v(t) + t;
8
- }
9
- function rt(l) {
10
- const t = l.length;
11
- return v(t) + l.reduce((e, s) => e + I(s), 0);
12
- }
13
- const d = c.allocUnsafe(0), F = [], k = c.from(
14
- "0000000000000000000000000000000000000000000000000000000000000000",
15
- "hex"
16
- ), T = c.from(
17
- "0000000000000000000000000000000000000000000000000000000000000001",
18
- "hex"
19
- ), nt = c.from("ffffffffffffffff", "hex"), ot = {
20
- script: d,
21
- valueBuffer: nt
22
- };
23
- function ht(l) {
24
- return "value" in l;
25
- }
26
- class o {
27
- constructor() {
28
- this.version = 1, this.locktime = 0, this.ins = [], this.outs = [];
29
- }
30
- static {
31
- this.DEFAULT_SEQUENCE = 4294967295;
32
- }
33
- static {
34
- this.SIGHASH_DEFAULT = 0;
35
- }
36
- static {
37
- this.SIGHASH_ALL = 1;
38
- }
39
- static {
40
- this.SIGHASH_NONE = 2;
41
- }
42
- static {
43
- this.SIGHASH_SINGLE = 3;
44
- }
45
- static {
46
- this.SIGHASH_ANYONECANPAY = 128;
47
- }
48
- static {
49
- this.SIGHASH_OUTPUT_MASK = 3;
50
- }
51
- static {
52
- this.SIGHASH_INPUT_MASK = 128;
53
- }
54
- static {
55
- this.ADVANCED_TRANSACTION_MARKER = 0;
56
- }
57
- static {
58
- this.ADVANCED_TRANSACTION_FLAG = 1;
59
- }
60
- static {
61
- this.TRUC_VERSION = 3;
62
- }
63
- static {
64
- this.TRUC_MAX_VSIZE = 1e4;
65
- }
66
- static {
67
- this.TRUC_CHILD_MAX_VSIZE = 1e3;
68
- }
69
- static fromBuffer(t, e) {
70
- const s = new z(t), i = new o();
71
- i.version = s.readInt32();
72
- const n = s.readUInt8(), r = s.readUInt8();
73
- let f = !1;
74
- n === o.ADVANCED_TRANSACTION_MARKER && r === o.ADVANCED_TRANSACTION_FLAG ? f = !0 : s.offset -= 2;
75
- const u = s.readVarInt();
76
- for (let S = 0; S < u; ++S) {
77
- const m = s.readSlice(32), E = s.readUInt32(), y = s.readVarSlice(), L = s.readUInt32();
78
- i.ins.push({
79
- hash: m,
80
- index: E,
81
- script: y,
82
- sequence: L,
83
- witness: F
84
- });
85
- }
86
- const g = s.readVarInt();
87
- for (let S = 0; S < g; ++S)
88
- i.outs.push({
89
- value: s.readUInt64(),
90
- script: s.readVarSlice()
91
- });
92
- if (f) {
93
- for (let S = 0; S < u; ++S)
94
- i.ins[S].witness = s.readVector();
95
- if (!i.hasWitnesses()) throw new Error("Transaction has superfluous witness data");
96
- }
97
- if (i.locktime = s.readUInt32(), e) return i;
98
- if (s.offset !== t.length)
99
- throw new Error("Transaction has unexpected data");
100
- return i;
101
- }
102
- static fromHex(t) {
103
- return o.fromBuffer(c.from(t, "hex"), !1);
104
- }
105
- static isCoinbaseHash(t) {
106
- p(D, t);
107
- for (let e = 0; e < 32; ++e)
108
- if (t[e] !== 0) return !1;
109
- return !0;
110
- }
111
- isCoinbase() {
112
- return this.ins.length === 1 && o.isCoinbaseHash(this.ins[0].hash);
113
- }
114
- addInput(t, e, s, i) {
115
- return p(
116
- C(
117
- D,
118
- b,
119
- P(b),
120
- P(_)
121
- ),
122
- [t, e, s, i]
123
- ), Q(s) && (s = o.DEFAULT_SEQUENCE), this.ins.push({
124
- hash: t,
125
- index: e,
126
- script: i || d,
127
- sequence: s,
128
- witness: F
129
- }) - 1;
130
- }
131
- addOutput(t, e) {
132
- return p(C(_, W), [t, e]), this.outs.push({
133
- script: t,
134
- value: e
135
- }) - 1;
136
- }
137
- hasWitnesses() {
138
- return this.ins.some((t) => t.witness.length !== 0);
139
- }
140
- weight() {
141
- const t = this.byteLength(!1), e = this.byteLength(!0);
142
- return t * 3 + e;
143
- }
144
- virtualSize() {
145
- return Math.ceil(this.weight() / 4);
146
- }
147
- byteLength(t = !0) {
148
- const e = t && this.hasWitnesses();
149
- return (e ? 10 : 8) + v(this.ins.length) + v(this.outs.length) + this.ins.reduce((s, i) => s + 40 + I(i.script), 0) + this.outs.reduce((s, i) => s + 8 + I(i.script), 0) + (e ? this.ins.reduce((s, i) => s + rt(i.witness), 0) : 0);
150
- }
151
- clone() {
152
- const t = new o();
153
- return t.version = this.version, t.locktime = this.locktime, t.ins = this.ins.map((e) => ({
154
- hash: e.hash,
155
- index: e.index,
156
- script: e.script,
157
- sequence: e.sequence,
158
- witness: e.witness
159
- })), t.outs = this.outs.map((e) => ({
160
- script: e.script,
161
- value: e.value
162
- })), t;
163
- }
164
- /**
165
- * Hash transaction for signing a specific input.
166
- *
167
- * Bitcoin uses a different hash for each signed transaction input.
168
- * This method copies the transaction, makes the necessary changes based on the
169
- * hashType, and then hashes the result.
170
- * This hash can then be used to sign the provided transaction input.
171
- */
172
- hashForSignature(t, e, s) {
173
- if (p(C(
174
- b,
175
- _,
176
- /* types.UInt8 */
177
- V
178
- ), [
179
- t,
180
- e,
181
- s
182
- ]), t >= this.ins.length) return T;
183
- const i = et(e);
184
- if (!i) throw new Error("Could not decompile prevOutScript");
185
- const n = st(
186
- i.filter((u) => u !== it.OP_CODESEPARATOR)
187
- ), r = this.clone();
188
- if ((s & 31) === o.SIGHASH_NONE)
189
- r.outs = [], r.ins.forEach((u, g) => {
190
- g !== t && (u.sequence = 0);
191
- });
192
- else if ((s & 31) === o.SIGHASH_SINGLE) {
193
- if (t >= this.outs.length) return T;
194
- r.outs.length = t + 1;
195
- for (let u = 0; u < t; u++)
196
- r.outs[u] = ot;
197
- r.ins.forEach((u, g) => {
198
- g !== t && (u.sequence = 0);
199
- });
200
- }
201
- s & o.SIGHASH_ANYONECANPAY ? (r.ins = [r.ins[t]], r.ins[0].script = n) : (r.ins.forEach((u) => {
202
- u.script = d;
203
- }), r.ins[t].script = n);
204
- const f = c.allocUnsafe(r.byteLength(!1) + 4);
205
- return f.writeInt32LE(s, f.length - 4), r.__toBuffer(f, 0, !1), U(f);
206
- }
207
- hashForWitnessV1(t, e, s, i, n, r) {
208
- if (p(
209
- C(
210
- b,
211
- p.arrayOf(_),
212
- p.arrayOf(W),
213
- b
214
- ),
215
- [t, e, s, i]
216
- ), s.length !== this.ins.length || e.length !== this.ins.length)
217
- throw new Error("Must supply prevout script and value for all inputs");
218
- const f = i === o.SIGHASH_DEFAULT ? o.SIGHASH_ALL : i & o.SIGHASH_OUTPUT_MASK, g = (i & o.SIGHASH_INPUT_MASK) === o.SIGHASH_ANYONECANPAY, S = f === o.SIGHASH_NONE, m = f === o.SIGHASH_SINGLE;
219
- let E = d, y = d, L = d, O = d, G = d;
220
- if (!g) {
221
- let h = A.withCapacity(36 * this.ins.length);
222
- this.ins.forEach((w) => {
223
- h.writeSlice(w.hash), h.writeUInt32(w.index);
224
- }), E = N(h.end()), h = A.withCapacity(8 * this.ins.length), s.forEach((w) => h.writeUInt64(w)), y = N(h.end()), h = A.withCapacity(
225
- e.map(I).reduce((w, H) => w + H)
226
- ), e.forEach((w) => h.writeVarSlice(w)), L = N(h.end()), h = A.withCapacity(4 * this.ins.length), this.ins.forEach((w) => h.writeUInt32(w.sequence)), O = N(h.end());
227
- }
228
- if (S || m) {
229
- if (m && t < this.outs.length) {
230
- const h = this.outs[t], w = A.withCapacity(8 + I(h.script));
231
- w.writeUInt64(h.value), w.writeVarSlice(h.script), G = N(w.end());
232
- }
233
- } else {
234
- if (!this.outs.length)
235
- throw new Error("Add outputs to the transaction before signing.");
236
- const h = this.outs.map((H) => 8 + I(H.script)).reduce((H, Z) => H + Z), w = A.withCapacity(h);
237
- this.outs.forEach((H) => {
238
- w.writeUInt64(H.value), w.writeVarSlice(H.script);
239
- }), G = N(w.end());
240
- }
241
- const j = (n ? 2 : 0) + (r ? 1 : 0), X = 174 - (g ? 49 : 0) - (S ? 32 : 0) + (r ? 32 : 0) + (n ? 37 : 0), a = A.withCapacity(X);
242
- if (a.writeUInt8(i), a.writeInt32(this.version), a.writeUInt32(this.locktime), a.writeSlice(E), a.writeSlice(y), a.writeSlice(L), a.writeSlice(O), S || m || a.writeSlice(G), a.writeUInt8(j), g) {
243
- const h = this.ins[t];
244
- a.writeSlice(h.hash), a.writeUInt32(h.index), a.writeUInt64(s[t]), a.writeVarSlice(e[t]), a.writeUInt32(h.sequence);
245
- } else
246
- a.writeUInt32(t);
247
- if (r) {
248
- const h = A.withCapacity(I(r));
249
- h.writeVarSlice(r), a.writeSlice(N(h.end()));
250
- }
251
- return m && a.writeSlice(G), n && (a.writeSlice(n), a.writeUInt8(0), a.writeUInt32(4294967295)), $(
252
- "TapSighash",
253
- c.concat([c.from([0]), a.end()])
254
- );
255
- }
256
- hashForWitnessV0(t, e, s, i) {
257
- p(C(b, _, W, b), [
258
- t,
259
- e,
260
- s,
261
- i
262
- ]);
263
- let n = c.from([]), r, f = k, u = k, g = k;
264
- if (i & o.SIGHASH_ANYONECANPAY || (n = c.allocUnsafe(36 * this.ins.length), r = new A(n, 0), this.ins.forEach((m) => {
265
- r.writeSlice(m.hash), r.writeUInt32(m.index);
266
- }), u = U(n)), !(i & o.SIGHASH_ANYONECANPAY) && (i & 31) !== o.SIGHASH_SINGLE && (i & 31) !== o.SIGHASH_NONE && (n = c.allocUnsafe(4 * this.ins.length), r = new A(n, 0), this.ins.forEach((m) => {
267
- r.writeUInt32(m.sequence);
268
- }), g = U(n)), (i & 31) !== o.SIGHASH_SINGLE && (i & 31) !== o.SIGHASH_NONE) {
269
- const m = this.outs.reduce((E, y) => E + 8 + I(y.script), 0);
270
- n = c.allocUnsafe(m), r = new A(n, 0), this.outs.forEach((E) => {
271
- r.writeUInt64(E.value), r.writeVarSlice(E.script);
272
- }), f = U(n);
273
- } else if ((i & 31) === o.SIGHASH_SINGLE && t < this.outs.length) {
274
- const m = this.outs[t];
275
- n = c.allocUnsafe(8 + I(m.script)), r = new A(n, 0), r.writeUInt64(m.value), r.writeVarSlice(m.script), f = U(n);
276
- }
277
- n = c.allocUnsafe(156 + I(e)), r = new A(n, 0);
278
- const S = this.ins[t];
279
- return r.writeInt32(this.version), r.writeSlice(u), r.writeSlice(g), r.writeSlice(S.hash), r.writeUInt32(S.index), r.writeVarSlice(e), r.writeUInt64(s), r.writeUInt32(S.sequence), r.writeSlice(f), r.writeUInt32(this.locktime), r.writeUInt32(i), U(n);
280
- }
281
- getHash(t) {
282
- return t && this.isCoinbase() ? c.alloc(32, 0) : U(this.__toBuffer(void 0, void 0, t));
283
- }
284
- getId() {
285
- return M(this.getHash(!1)).toString("hex");
286
- }
287
- toBuffer(t, e) {
288
- return this.__toBuffer(t, e, !0);
289
- }
290
- toHex() {
291
- return this.toBuffer(void 0, void 0).toString("hex");
292
- }
293
- setInputScript(t, e) {
294
- p(C(V, _), [t, e]), this.ins[t].script = e;
295
- }
296
- setWitness(t, e) {
297
- p(C(V, [_]), [t, e]), this.ins[t].witness = e;
298
- }
299
- __toBuffer(t, e, s = !1) {
300
- t || (t = c.allocUnsafe(this.byteLength(s)));
301
- const i = new A(t, e || 0);
302
- i.writeInt32(this.version);
303
- const n = s && this.hasWitnesses();
304
- return n && (i.writeUInt8(o.ADVANCED_TRANSACTION_MARKER), i.writeUInt8(o.ADVANCED_TRANSACTION_FLAG)), i.writeVarInt(this.ins.length), this.ins.forEach((r) => {
305
- i.writeSlice(r.hash), i.writeUInt32(r.index), i.writeVarSlice(r.script), i.writeUInt32(r.sequence);
306
- }), i.writeVarInt(this.outs.length), this.outs.forEach((r) => {
307
- ht(r) ? i.writeUInt64(r.value) : i.writeSlice(r.valueBuffer), i.writeVarSlice(r.script);
308
- }), n && this.ins.forEach((r) => {
309
- i.writeVector(r.witness);
310
- }), i.writeUInt32(this.locktime), e !== void 0 ? t.subarray(e, i.offset) : t;
311
- }
312
- }
313
- const wt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
314
- __proto__: null,
315
- Transaction: o
316
- }, Symbol.toStringTag, { value: "Module" })), { typeforce: ct } = K, B = new TypeError("Cannot compute merkle root for zero transactions"), Y = new TypeError("Cannot compute witness commit for non-segwit block");
317
- class R {
318
- constructor() {
319
- this.version = 1, this.prevHash = void 0, this.merkleRoot = void 0, this.timestamp = 0, this.witnessCommit = void 0, this.bits = 0, this.nonce = 0, this.transactions = void 0;
320
- }
321
- static fromBuffer(t) {
322
- if (t.length < 80) throw new Error("Buffer too small (< 80 bytes)");
323
- const e = new z(t), s = new R();
324
- if (s.version = e.readInt32(), s.prevHash = e.readSlice(32), s.merkleRoot = e.readSlice(32), s.timestamp = e.readUInt32(), s.bits = e.readUInt32(), s.nonce = e.readUInt32(), t.length === 80) return s;
325
- const i = () => {
326
- const f = o.fromBuffer(
327
- e.buffer.subarray(e.offset),
328
- !0
329
- );
330
- return e.offset += f.byteLength(), f;
331
- }, n = e.readVarInt();
332
- s.transactions = [];
333
- for (let f = 0; f < n; ++f) {
334
- const u = i();
335
- s.transactions.push(u);
336
- }
337
- const r = s.getWitnessCommit();
338
- return r && (s.witnessCommit = r), s;
339
- }
340
- static fromHex(t) {
341
- return R.fromBuffer(c.from(t, "hex"));
342
- }
343
- static calculateTarget(t) {
344
- const e = ((t & 4278190080) >> 24) - 3, s = t & 8388607, i = c.alloc(32, 0);
345
- return i.writeUIntBE(s, 29 - e, 3), i;
346
- }
347
- static calculateMerkleRoot(t, e) {
348
- if (ct([{ getHash: J }], t), t.length === 0) throw B;
349
- if (e && !q(t)) throw Y;
350
- const s = t.map((n) => n.getHash(e)), i = x(s, U);
351
- return e ? U(c.concat([i, t[0].ins[0].witness[0]])) : i;
352
- }
353
- getWitnessCommit() {
354
- if (!q(this.transactions)) return null;
355
- const t = this.transactions[0].outs.filter(
356
- (s) => s.script.subarray(0, 6).equals(c.from("6a24aa21a9ed", "hex"))
357
- ).map((s) => s.script.subarray(6, 38));
358
- if (t.length === 0) return null;
359
- const e = t[t.length - 1];
360
- return e instanceof c && e.length === 32 ? e : null;
361
- }
362
- hasWitnessCommit() {
363
- return this.witnessCommit instanceof c && this.witnessCommit.length === 32 || this.getWitnessCommit() !== null;
364
- }
365
- hasWitness() {
366
- return at(this.transactions);
367
- }
368
- weight() {
369
- const t = this.byteLength(!1, !1), e = this.byteLength(!1, !0);
370
- return t * 3 + e;
371
- }
372
- byteLength(t, e = !0) {
373
- return t || !this.transactions ? 80 : 80 + v(this.transactions.length) + this.transactions.reduce((s, i) => s + i.byteLength(e), 0);
374
- }
375
- getHash() {
376
- return U(this.toBuffer(!0));
377
- }
378
- getId() {
379
- return M(this.getHash()).toString("hex");
380
- }
381
- getUTCDate() {
382
- const t = /* @__PURE__ */ new Date(0);
383
- return t.setUTCSeconds(this.timestamp), t;
384
- }
385
- // TODO: buffer, offset compatibility
386
- toBuffer(t) {
387
- const e = c.allocUnsafe(this.byteLength(t)), s = new A(e);
388
- if (s.writeInt32(this.version), s.writeSlice(this.prevHash), s.writeSlice(this.merkleRoot), s.writeUInt32(this.timestamp), s.writeUInt32(this.bits), s.writeUInt32(this.nonce), t || !this.transactions) return e;
389
- const i = tt(this.transactions.length, e, s.offset);
390
- return s.offset += i.bytes, this.transactions.forEach((n) => {
391
- const r = n.byteLength();
392
- n.toBuffer(e, s.offset), s.offset += r;
393
- }), e;
394
- }
395
- toHex(t) {
396
- return this.toBuffer(t).toString("hex");
397
- }
398
- checkTxRoots() {
399
- const t = this.hasWitnessCommit();
400
- return !t && this.hasWitness() ? !1 : this.__checkMerkleRoot() && (t ? this.__checkWitnessCommit() : !0);
401
- }
402
- checkProofOfWork() {
403
- const t = M(this.getHash()), e = R.calculateTarget(this.bits);
404
- return t.compare(e) <= 0;
405
- }
406
- __checkMerkleRoot() {
407
- if (!this.transactions) throw B;
408
- const t = R.calculateMerkleRoot(this.transactions);
409
- return this.merkleRoot.compare(t) === 0;
410
- }
411
- __checkWitnessCommit() {
412
- if (!this.transactions) throw B;
413
- if (!this.hasWitnessCommit()) throw Y;
414
- const t = R.calculateMerkleRoot(this.transactions, !0);
415
- return this.witnessCommit.compare(t) === 0;
416
- }
417
- }
418
- function q(l) {
419
- return l instanceof Array && l[0] && l[0].ins && l[0].ins instanceof Array && l[0].ins[0] && l[0].ins[0].witness && l[0].ins[0].witness instanceof Array && l[0].ins[0].witness.length > 0;
420
- }
421
- function at(l) {
422
- return l instanceof Array && l.some(
423
- (t) => typeof t == "object" && t.ins instanceof Array && t.ins.some(
424
- (e) => typeof e == "object" && e.witness instanceof Array && e.witness.length > 0
425
- )
426
- );
427
- }
428
- export {
429
- R as B,
430
- o as T,
431
- wt as a
432
- };