@btc-vision/bitcoin 6.5.5 → 7.0.0-alpha.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 (457) hide show
  1. package/AUDIT/README.md +9 -0
  2. package/HOW_TO_WRITE_GOOD_CODE.md +2436 -0
  3. package/SECURITY.md +27 -0
  4. package/benchmark/psbt-2000-inputs.bench.ts +178 -0
  5. package/benchmark/signing.bench.ts +147 -0
  6. package/browser/address.d.ts +56 -9
  7. package/browser/address.d.ts.map +1 -0
  8. package/browser/bech32utils.d.ts +9 -1
  9. package/browser/bech32utils.d.ts.map +1 -0
  10. package/browser/bip66.d.ts +11 -6
  11. package/browser/bip66.d.ts.map +1 -0
  12. package/browser/block.d.ts +117 -11
  13. package/browser/block.d.ts.map +1 -0
  14. package/browser/branded.d.ts +20 -0
  15. package/browser/branded.d.ts.map +1 -0
  16. package/browser/crypto/crypto.d.ts +1 -0
  17. package/browser/crypto/crypto.d.ts.map +1 -0
  18. package/browser/crypto.d.ts +46 -7
  19. package/browser/crypto.d.ts.map +1 -0
  20. package/browser/ecc/context.d.ts +129 -0
  21. package/browser/ecc/context.d.ts.map +1 -0
  22. package/browser/ecc/index.d.ts +11 -0
  23. package/browser/ecc/index.d.ts.map +1 -0
  24. package/browser/ecc/types.d.ts +128 -0
  25. package/browser/ecc/types.d.ts.map +1 -0
  26. package/browser/ecpair.d.ts +99 -0
  27. package/browser/errors.d.ts +124 -0
  28. package/browser/errors.d.ts.map +1 -0
  29. package/browser/index.d.ts +32 -5
  30. package/browser/index.d.ts.map +1 -0
  31. package/browser/index.js +12482 -101
  32. package/browser/io/BinaryReader.d.ts +276 -0
  33. package/browser/io/BinaryReader.d.ts.map +1 -0
  34. package/browser/io/BinaryWriter.d.ts +391 -0
  35. package/browser/io/BinaryWriter.d.ts.map +1 -0
  36. package/browser/io/MemoryPool.d.ts +220 -0
  37. package/browser/io/MemoryPool.d.ts.map +1 -0
  38. package/browser/io/base64.d.ts +13 -0
  39. package/browser/io/base64.d.ts.map +1 -0
  40. package/browser/io/hex.d.ts +67 -0
  41. package/browser/io/hex.d.ts.map +1 -0
  42. package/browser/io/index.d.ts +17 -0
  43. package/browser/io/index.d.ts.map +1 -0
  44. package/browser/io/utils.d.ts +199 -0
  45. package/browser/io/utils.d.ts.map +1 -0
  46. package/browser/merkle.d.ts +10 -1
  47. package/browser/merkle.d.ts.map +1 -0
  48. package/browser/networks.d.ts +70 -9
  49. package/browser/networks.d.ts.map +1 -0
  50. package/browser/opcodes.d.ts +1 -0
  51. package/browser/opcodes.d.ts.map +1 -0
  52. package/browser/payments/bip341.d.ts +35 -9
  53. package/browser/payments/bip341.d.ts.map +1 -0
  54. package/browser/payments/embed.d.ts +112 -1
  55. package/browser/payments/embed.d.ts.map +1 -0
  56. package/browser/payments/index.d.ts +17 -10
  57. package/browser/payments/index.d.ts.map +1 -0
  58. package/browser/payments/p2ms.d.ts +150 -0
  59. package/browser/payments/p2ms.d.ts.map +1 -0
  60. package/browser/payments/p2op.d.ts +150 -24
  61. package/browser/payments/p2op.d.ts.map +1 -0
  62. package/browser/payments/p2pk.d.ts +154 -1
  63. package/browser/payments/p2pk.d.ts.map +1 -0
  64. package/browser/payments/p2pkh.d.ts +176 -1
  65. package/browser/payments/p2pkh.d.ts.map +1 -0
  66. package/browser/payments/p2sh.d.ts +150 -1
  67. package/browser/payments/p2sh.d.ts.map +1 -0
  68. package/browser/payments/p2tr.d.ts +185 -1
  69. package/browser/payments/p2tr.d.ts.map +1 -0
  70. package/browser/payments/p2wpkh.d.ts +161 -1
  71. package/browser/payments/p2wpkh.d.ts.map +1 -0
  72. package/browser/payments/p2wsh.d.ts +146 -1
  73. package/browser/payments/p2wsh.d.ts.map +1 -0
  74. package/browser/payments/types.d.ts +94 -64
  75. package/browser/payments/types.d.ts.map +1 -0
  76. package/browser/psbt/bip371.d.ts +34 -8
  77. package/browser/psbt/bip371.d.ts.map +1 -0
  78. package/browser/psbt/psbtutils.d.ts +56 -16
  79. package/browser/psbt/psbtutils.d.ts.map +1 -0
  80. package/browser/psbt/types.d.ts +245 -0
  81. package/browser/psbt/types.d.ts.map +1 -0
  82. package/browser/psbt/utils.d.ts +64 -0
  83. package/browser/psbt/utils.d.ts.map +1 -0
  84. package/browser/psbt/validation.d.ts +84 -0
  85. package/browser/psbt/validation.d.ts.map +1 -0
  86. package/browser/psbt.d.ts +82 -118
  87. package/browser/psbt.d.ts.map +1 -0
  88. package/browser/pubkey.d.ts +27 -6
  89. package/browser/pubkey.d.ts.map +1 -0
  90. package/browser/push_data.d.ts +24 -2
  91. package/browser/push_data.d.ts.map +1 -0
  92. package/browser/script.d.ts +33 -8
  93. package/browser/script.d.ts.map +1 -0
  94. package/browser/script_number.d.ts +17 -0
  95. package/browser/script_number.d.ts.map +1 -0
  96. package/browser/script_signature.d.ts +23 -5
  97. package/browser/script_signature.d.ts.map +1 -0
  98. package/browser/transaction.d.ts +160 -18
  99. package/browser/transaction.d.ts.map +1 -0
  100. package/browser/types.d.ts +36 -38
  101. package/browser/types.d.ts.map +1 -0
  102. package/browser/workers/WorkerSigningPool.d.ts +143 -0
  103. package/browser/workers/WorkerSigningPool.d.ts.map +1 -0
  104. package/browser/workers/WorkerSigningPool.node.d.ts +116 -0
  105. package/browser/workers/WorkerSigningPool.node.d.ts.map +1 -0
  106. package/browser/workers/ecc-bundle.d.ts +25 -0
  107. package/browser/workers/ecc-bundle.d.ts.map +1 -0
  108. package/browser/workers/index.d.ts +91 -0
  109. package/browser/workers/index.d.ts.map +1 -0
  110. package/browser/workers/psbt-parallel.d.ts +88 -0
  111. package/browser/workers/psbt-parallel.d.ts.map +1 -0
  112. package/browser/workers/signing-worker.d.ts +37 -0
  113. package/browser/workers/signing-worker.d.ts.map +1 -0
  114. package/browser/workers/types.d.ts +365 -0
  115. package/browser/workers/types.d.ts.map +1 -0
  116. package/build/address.d.ts +57 -10
  117. package/build/address.d.ts.map +1 -0
  118. package/build/address.js +80 -24
  119. package/build/address.js.map +1 -0
  120. package/build/bech32utils.d.ts +9 -1
  121. package/build/bech32utils.d.ts.map +1 -0
  122. package/build/bech32utils.js +10 -2
  123. package/build/bech32utils.js.map +1 -0
  124. package/build/bip66.d.ts +11 -6
  125. package/build/bip66.d.ts.map +1 -0
  126. package/build/bip66.js +32 -3
  127. package/build/bip66.js.map +1 -0
  128. package/build/block.d.ts +117 -11
  129. package/build/block.d.ts.map +1 -0
  130. package/build/block.js +204 -72
  131. package/build/block.js.map +1 -0
  132. package/build/branded.d.ts +20 -0
  133. package/build/branded.d.ts.map +1 -0
  134. package/build/branded.js +7 -0
  135. package/build/branded.js.map +1 -0
  136. package/build/crypto/crypto.d.ts +1 -0
  137. package/build/crypto/crypto.d.ts.map +1 -0
  138. package/build/crypto/crypto.js +1 -0
  139. package/build/crypto/crypto.js.map +1 -0
  140. package/build/crypto.d.ts +46 -7
  141. package/build/crypto.d.ts.map +1 -0
  142. package/build/crypto.js +65 -20
  143. package/build/crypto.js.map +1 -0
  144. package/build/ecc/context.d.ts +135 -0
  145. package/build/ecc/context.d.ts.map +1 -0
  146. package/build/ecc/context.js +232 -0
  147. package/build/ecc/context.js.map +1 -0
  148. package/build/ecc/index.d.ts +11 -0
  149. package/build/ecc/index.d.ts.map +1 -0
  150. package/build/ecc/index.js +11 -0
  151. package/build/ecc/index.js.map +1 -0
  152. package/build/ecc/types.d.ts +134 -0
  153. package/build/ecc/types.d.ts.map +1 -0
  154. package/build/ecc/types.js +8 -0
  155. package/build/ecc/types.js.map +1 -0
  156. package/build/errors.d.ts +124 -0
  157. package/build/errors.d.ts.map +1 -0
  158. package/build/errors.js +155 -0
  159. package/build/errors.js.map +1 -0
  160. package/build/index.d.ts +32 -5
  161. package/build/index.d.ts.map +1 -0
  162. package/build/index.js +26 -3
  163. package/build/index.js.map +1 -0
  164. package/build/io/BinaryReader.d.ts +276 -0
  165. package/build/io/BinaryReader.d.ts.map +1 -0
  166. package/build/io/BinaryReader.js +425 -0
  167. package/build/io/BinaryReader.js.map +1 -0
  168. package/build/io/BinaryWriter.d.ts +391 -0
  169. package/build/io/BinaryWriter.d.ts.map +1 -0
  170. package/build/io/BinaryWriter.js +611 -0
  171. package/build/io/BinaryWriter.js.map +1 -0
  172. package/build/io/MemoryPool.d.ts +220 -0
  173. package/build/io/MemoryPool.d.ts.map +1 -0
  174. package/build/io/MemoryPool.js +309 -0
  175. package/build/io/MemoryPool.js.map +1 -0
  176. package/build/io/base64.d.ts +13 -0
  177. package/build/io/base64.d.ts.map +1 -0
  178. package/build/io/base64.js +20 -0
  179. package/build/io/base64.js.map +1 -0
  180. package/build/io/hex.d.ts +67 -0
  181. package/build/io/hex.d.ts.map +1 -0
  182. package/build/io/hex.js +138 -0
  183. package/build/io/hex.js.map +1 -0
  184. package/build/io/index.d.ts +17 -0
  185. package/build/io/index.d.ts.map +1 -0
  186. package/build/io/index.js +23 -0
  187. package/build/io/index.js.map +1 -0
  188. package/build/io/utils.d.ts +199 -0
  189. package/build/io/utils.d.ts.map +1 -0
  190. package/build/io/utils.js +271 -0
  191. package/build/io/utils.js.map +1 -0
  192. package/build/merkle.d.ts +10 -1
  193. package/build/merkle.d.ts.map +1 -0
  194. package/build/merkle.js +12 -1
  195. package/build/merkle.js.map +1 -0
  196. package/build/networks.d.ts +70 -9
  197. package/build/networks.d.ts.map +1 -0
  198. package/build/networks.js +90 -4
  199. package/build/networks.js.map +1 -0
  200. package/build/opcodes.d.ts +1 -0
  201. package/build/opcodes.d.ts.map +1 -0
  202. package/build/opcodes.js +1 -0
  203. package/build/opcodes.js.map +1 -0
  204. package/build/payments/bip341.d.ts +36 -9
  205. package/build/payments/bip341.d.ts.map +1 -0
  206. package/build/payments/bip341.js +35 -15
  207. package/build/payments/bip341.js.map +1 -0
  208. package/build/payments/embed.d.ts +120 -1
  209. package/build/payments/embed.d.ts.map +1 -0
  210. package/build/payments/embed.js +215 -34
  211. package/build/payments/embed.js.map +1 -0
  212. package/build/payments/index.d.ts +17 -10
  213. package/build/payments/index.d.ts.map +1 -0
  214. package/build/payments/index.js +20 -10
  215. package/build/payments/index.js.map +1 -0
  216. package/build/payments/p2ms.d.ts +159 -1
  217. package/build/payments/p2ms.d.ts.map +1 -0
  218. package/build/payments/p2ms.js +427 -108
  219. package/build/payments/p2ms.js.map +1 -0
  220. package/build/payments/p2op.d.ts +158 -24
  221. package/build/payments/p2op.d.ts.map +1 -0
  222. package/build/payments/p2op.js +379 -93
  223. package/build/payments/p2op.js.map +1 -0
  224. package/build/payments/p2pk.d.ts +162 -1
  225. package/build/payments/p2pk.d.ts.map +1 -0
  226. package/build/payments/p2pk.js +327 -58
  227. package/build/payments/p2pk.js.map +1 -0
  228. package/build/payments/p2pkh.d.ts +185 -1
  229. package/build/payments/p2pkh.d.ts.map +1 -0
  230. package/build/payments/p2pkh.js +467 -114
  231. package/build/payments/p2pkh.js.map +1 -0
  232. package/build/payments/p2sh.d.ts +159 -1
  233. package/build/payments/p2sh.d.ts.map +1 -0
  234. package/build/payments/p2sh.js +500 -152
  235. package/build/payments/p2sh.js.map +1 -0
  236. package/build/payments/p2tr.d.ts +193 -1
  237. package/build/payments/p2tr.d.ts.map +1 -0
  238. package/build/payments/p2tr.js +592 -174
  239. package/build/payments/p2tr.js.map +1 -0
  240. package/build/payments/p2wpkh.d.ts +170 -1
  241. package/build/payments/p2wpkh.d.ts.map +1 -0
  242. package/build/payments/p2wpkh.js +429 -104
  243. package/build/payments/p2wpkh.js.map +1 -0
  244. package/build/payments/p2wsh.d.ts +155 -1
  245. package/build/payments/p2wsh.d.ts.map +1 -0
  246. package/build/payments/p2wsh.js +466 -144
  247. package/build/payments/p2wsh.js.map +1 -0
  248. package/build/payments/types.d.ts +98 -64
  249. package/build/payments/types.d.ts.map +1 -0
  250. package/build/payments/types.js +17 -13
  251. package/build/payments/types.js.map +1 -0
  252. package/build/psbt/bip371.d.ts +35 -9
  253. package/build/psbt/bip371.d.ts.map +1 -0
  254. package/build/psbt/bip371.js +113 -28
  255. package/build/psbt/bip371.js.map +1 -0
  256. package/build/psbt/psbtutils.d.ts +56 -16
  257. package/build/psbt/psbtutils.d.ts.map +1 -0
  258. package/build/psbt/psbtutils.js +71 -16
  259. package/build/psbt/psbtutils.js.map +1 -0
  260. package/build/psbt/types.d.ts +249 -0
  261. package/build/psbt/types.d.ts.map +1 -0
  262. package/build/psbt/types.js +6 -0
  263. package/build/psbt/types.js.map +1 -0
  264. package/build/psbt/utils.d.ts +68 -0
  265. package/build/psbt/utils.d.ts.map +1 -0
  266. package/build/psbt/utils.js +171 -0
  267. package/build/psbt/utils.js.map +1 -0
  268. package/build/psbt/validation.d.ts +88 -0
  269. package/build/psbt/validation.d.ts.map +1 -0
  270. package/build/psbt/validation.js +149 -0
  271. package/build/psbt/validation.js.map +1 -0
  272. package/build/psbt.d.ts +84 -120
  273. package/build/psbt.d.ts.map +1 -0
  274. package/build/psbt.js +411 -412
  275. package/build/psbt.js.map +1 -0
  276. package/build/pubkey.d.ts +27 -6
  277. package/build/pubkey.d.ts.map +1 -0
  278. package/build/pubkey.js +37 -13
  279. package/build/pubkey.js.map +1 -0
  280. package/build/push_data.d.ts +24 -2
  281. package/build/push_data.d.ts.map +1 -0
  282. package/build/push_data.js +44 -12
  283. package/build/push_data.js.map +1 -0
  284. package/build/script.d.ts +33 -8
  285. package/build/script.d.ts.map +1 -0
  286. package/build/script.js +100 -36
  287. package/build/script.js.map +1 -0
  288. package/build/script_number.d.ts +17 -0
  289. package/build/script_number.d.ts.map +1 -0
  290. package/build/script_number.js +19 -0
  291. package/build/script_number.js.map +1 -0
  292. package/build/script_signature.d.ts +23 -5
  293. package/build/script_signature.d.ts.map +1 -0
  294. package/build/script_signature.js +48 -15
  295. package/build/script_signature.js.map +1 -0
  296. package/build/transaction.d.ts +160 -18
  297. package/build/transaction.d.ts.map +1 -0
  298. package/build/transaction.js +443 -176
  299. package/build/transaction.js.map +1 -0
  300. package/build/tsconfig.build.tsbuildinfo +1 -0
  301. package/build/types.d.ts +36 -38
  302. package/build/types.d.ts.map +1 -0
  303. package/build/types.js +175 -57
  304. package/build/types.js.map +1 -0
  305. package/build/workers/WorkerSigningPool.d.ts +174 -0
  306. package/build/workers/WorkerSigningPool.d.ts.map +1 -0
  307. package/build/workers/WorkerSigningPool.js +553 -0
  308. package/build/workers/WorkerSigningPool.js.map +1 -0
  309. package/build/workers/WorkerSigningPool.node.d.ts +124 -0
  310. package/build/workers/WorkerSigningPool.node.d.ts.map +1 -0
  311. package/build/workers/WorkerSigningPool.node.js +753 -0
  312. package/build/workers/WorkerSigningPool.node.js.map +1 -0
  313. package/build/workers/ecc-bundle.d.ts +25 -0
  314. package/build/workers/ecc-bundle.d.ts.map +1 -0
  315. package/build/workers/ecc-bundle.js +25 -0
  316. package/build/workers/ecc-bundle.js.map +1 -0
  317. package/build/workers/index.d.ts +91 -0
  318. package/build/workers/index.d.ts.map +1 -0
  319. package/build/workers/index.js +114 -0
  320. package/build/workers/index.js.map +1 -0
  321. package/build/workers/psbt-parallel.d.ts +117 -0
  322. package/build/workers/psbt-parallel.d.ts.map +1 -0
  323. package/build/workers/psbt-parallel.js +233 -0
  324. package/build/workers/psbt-parallel.js.map +1 -0
  325. package/build/workers/signing-worker.d.ts +37 -0
  326. package/build/workers/signing-worker.d.ts.map +1 -0
  327. package/build/workers/signing-worker.js +350 -0
  328. package/build/workers/signing-worker.js.map +1 -0
  329. package/build/workers/types.d.ts +365 -0
  330. package/build/workers/types.d.ts.map +1 -0
  331. package/build/workers/types.js +60 -0
  332. package/build/workers/types.js.map +1 -0
  333. package/package.json +83 -25
  334. package/scripts/bundle-ecc.ts +111 -0
  335. package/src/address.ts +81 -44
  336. package/src/bech32utils.ts +3 -3
  337. package/src/bip66.ts +34 -24
  338. package/src/block.ts +196 -84
  339. package/src/branded.ts +18 -0
  340. package/src/crypto.ts +64 -26
  341. package/src/ecc/context.ts +277 -0
  342. package/src/ecc/index.ts +14 -0
  343. package/src/ecc/types.ts +154 -0
  344. package/src/ecpair.d.ts +99 -0
  345. package/src/errors.ts +163 -0
  346. package/src/index.ts +113 -9
  347. package/src/io/BinaryReader.ts +461 -0
  348. package/src/io/BinaryWriter.ts +696 -0
  349. package/src/io/MemoryPool.ts +343 -0
  350. package/src/io/base64.ts +20 -0
  351. package/src/io/hex.ts +155 -0
  352. package/src/io/index.ts +41 -0
  353. package/src/io/utils.ts +283 -0
  354. package/src/merkle.ts +14 -9
  355. package/src/networks.ts +9 -9
  356. package/src/payments/bip341.ts +34 -33
  357. package/src/payments/embed.ts +244 -41
  358. package/src/payments/index.ts +12 -10
  359. package/src/payments/p2ms.ts +490 -118
  360. package/src/payments/p2op.ts +431 -133
  361. package/src/payments/p2pk.ts +370 -72
  362. package/src/payments/p2pkh.ts +524 -130
  363. package/src/payments/p2sh.ts +572 -172
  364. package/src/payments/p2tr.ts +686 -194
  365. package/src/payments/p2wpkh.ts +484 -107
  366. package/src/payments/p2wsh.ts +526 -164
  367. package/src/payments/types.ts +80 -66
  368. package/src/psbt/bip371.ts +68 -51
  369. package/src/psbt/psbtutils.ts +39 -40
  370. package/src/psbt/types.ts +331 -0
  371. package/src/psbt/utils.ts +188 -0
  372. package/src/psbt/validation.ts +192 -0
  373. package/src/psbt.ts +566 -809
  374. package/src/pubkey.ts +24 -25
  375. package/src/push_data.ts +18 -16
  376. package/src/script.ts +82 -64
  377. package/src/script_number.ts +6 -6
  378. package/src/script_signature.ts +33 -36
  379. package/src/transaction.ts +458 -238
  380. package/src/types.ts +231 -100
  381. package/src/workers/WorkerSigningPool.node.ts +887 -0
  382. package/src/workers/WorkerSigningPool.ts +670 -0
  383. package/src/workers/ecc-bundle.ts +26 -0
  384. package/src/workers/index.ts +165 -0
  385. package/src/workers/psbt-parallel.ts +332 -0
  386. package/src/workers/signing-worker.ts +353 -0
  387. package/src/workers/types.ts +413 -0
  388. package/test/address.spec.ts +9 -6
  389. package/test/bitcoin.core.spec.ts +16 -17
  390. package/test/block.spec.ts +8 -7
  391. package/test/bufferutils.spec.ts +228 -214
  392. package/test/crypto.spec.ts +19 -11
  393. package/test/fixtures/p2pk.json +0 -8
  394. package/test/fixtures/p2pkh.json +1 -1
  395. package/test/fixtures/p2sh.json +1 -1
  396. package/test/fixtures/script.json +1 -1
  397. package/test/fixtures/transaction.json +2 -2
  398. package/test/integration/_regtest.ts +25 -0
  399. package/test/integration/addresses.spec.ts +4 -3
  400. package/test/integration/bip32.spec.ts +2 -1
  401. package/test/integration/blocks.spec.ts +1 -1
  402. package/test/integration/cltv.spec.ts +18 -16
  403. package/test/integration/csv.spec.ts +37 -64
  404. package/test/integration/payments.spec.ts +5 -3
  405. package/test/integration/taproot.spec.ts +76 -83
  406. package/test/integration/transactions.spec.ts +38 -35
  407. package/test/payments.spec.ts +35 -13
  408. package/test/payments.utils.ts +17 -16
  409. package/test/psbt.spec.ts +111 -100
  410. package/test/script.spec.ts +11 -10
  411. package/test/script_signature.spec.ts +9 -11
  412. package/test/taproot-cache.spec.ts +694 -0
  413. package/test/transaction.spec.ts +32 -40
  414. package/test/types.spec.ts +74 -29
  415. package/test/workers-pool.spec.ts +963 -0
  416. package/test/workers-signing.spec.ts +635 -0
  417. package/test/workers.spec.ts +1390 -0
  418. package/tsconfig.base.json +34 -18
  419. package/tsconfig.browser.json +15 -0
  420. package/tsconfig.build.json +5 -0
  421. package/tsconfig.json +5 -14
  422. package/vite.config.browser.ts +3 -42
  423. package/vitest.config.integration.ts +11 -0
  424. package/browser/bufferutils.d.ts +0 -34
  425. package/browser/chunks/crypto-BhCpKpek.js +0 -2033
  426. package/browser/chunks/payments-yjA0Evsv.js +0 -1089
  427. package/browser/chunks/psbt-URK2hBFc.js +0 -4039
  428. package/browser/chunks/script-DyPItFEl.js +0 -318
  429. package/browser/chunks/transaction-C_UbhMGn.js +0 -432
  430. package/browser/chunks/utils-DNZi-T5W.js +0 -761
  431. package/browser/ecc_lib.d.ts +0 -3
  432. package/browser/hooks/AdvancedSignatureManager.d.ts +0 -16
  433. package/browser/hooks/HookedSigner.d.ts +0 -4
  434. package/browser/hooks/SignatureManager.d.ts +0 -13
  435. package/browser/payments/lazy.d.ts +0 -2
  436. package/browser/typeforce.d.ts +0 -38
  437. package/build/bufferutils.d.ts +0 -34
  438. package/build/bufferutils.js +0 -141
  439. package/build/ecc_lib.d.ts +0 -3
  440. package/build/ecc_lib.js +0 -61
  441. package/build/hooks/AdvancedSignatureManager.d.ts +0 -16
  442. package/build/hooks/AdvancedSignatureManager.js +0 -52
  443. package/build/hooks/HookedSigner.d.ts +0 -4
  444. package/build/hooks/HookedSigner.js +0 -64
  445. package/build/hooks/SignatureManager.d.ts +0 -13
  446. package/build/hooks/SignatureManager.js +0 -45
  447. package/build/payments/lazy.d.ts +0 -2
  448. package/build/payments/lazy.js +0 -28
  449. package/build/tsconfig.tsbuildinfo +0 -1
  450. package/src/bufferutils.ts +0 -188
  451. package/src/ecc_lib.ts +0 -94
  452. package/src/hooks/AdvancedSignatureManager.ts +0 -104
  453. package/src/hooks/HookedSigner.ts +0 -108
  454. package/src/hooks/SignatureManager.ts +0 -84
  455. package/src/payments/lazy.ts +0 -28
  456. package/src/typeforce.d.ts +0 -38
  457. package/tsconfig.webpack.json +0 -18
@@ -0,0 +1,220 @@
1
+ /**
2
+ * Memory pool using SharedArrayBuffer for zero-allocation operations.
3
+ *
4
+ * Provides thread-safe memory allocation using Atomics for concurrent access.
5
+ * Ideal for parsing operations where temporary buffers are needed.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ /**
10
+ * Thread-safe memory pool using SharedArrayBuffer.
11
+ *
12
+ * Allocates memory from a pre-allocated SharedArrayBuffer pool,
13
+ * eliminating garbage collection pressure from repeated allocations.
14
+ *
15
+ * Uses Atomics for thread-safe allocation when used with Workers.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * import { MemoryPool } from '@btc-vision/bitcoin';
20
+ *
21
+ * // Create a 1MB pool
22
+ * const pool = new MemoryPool(1024 * 1024);
23
+ *
24
+ * // Allocate memory for transaction parsing
25
+ * const txBuffer = pool.alloc(500);
26
+ * // ... use txBuffer ...
27
+ *
28
+ * // Reset pool when done (all allocations become invalid)
29
+ * pool.reset();
30
+ * ```
31
+ */
32
+ export declare class MemoryPool {
33
+ #private;
34
+ /**
35
+ * Creates a new MemoryPool.
36
+ *
37
+ * @param size - Size of the pool in bytes (default 4MB)
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * import { MemoryPool } from '@btc-vision/bitcoin';
42
+ *
43
+ * // 4MB pool (default)
44
+ * const pool = new MemoryPool();
45
+ *
46
+ * // 16MB pool
47
+ * const largePool = new MemoryPool(16 * 1024 * 1024);
48
+ * ```
49
+ */
50
+ constructor(size?: number);
51
+ /**
52
+ * Creates a MemoryPool from an existing SharedArrayBuffer.
53
+ *
54
+ * Useful for sharing a pool between Workers.
55
+ *
56
+ * @param buffer - Existing SharedArrayBuffer
57
+ * @returns A new MemoryPool instance wrapping the buffer
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * // Main thread
62
+ * const pool = new MemoryPool(1024 * 1024);
63
+ * worker.postMessage({ buffer: pool.sharedBuffer });
64
+ *
65
+ * // Worker thread
66
+ * self.onmessage = (e) => {
67
+ * const pool = MemoryPool.fromSharedBuffer(e.data.buffer);
68
+ * const mem = pool.alloc(100);
69
+ * };
70
+ * ```
71
+ */
72
+ static fromSharedBuffer(buffer: SharedArrayBuffer): MemoryPool;
73
+ /**
74
+ * Total capacity of the pool in bytes.
75
+ */
76
+ get capacity(): number;
77
+ /**
78
+ * Current allocation offset (bytes used).
79
+ *
80
+ * Uses Atomics for thread-safe reading.
81
+ */
82
+ get used(): number;
83
+ /**
84
+ * Remaining available bytes.
85
+ */
86
+ get available(): number;
87
+ /**
88
+ * The underlying SharedArrayBuffer.
89
+ *
90
+ * Can be transferred to Workers for shared memory access.
91
+ */
92
+ get sharedBuffer(): SharedArrayBuffer;
93
+ /**
94
+ * Allocates memory from the pool.
95
+ *
96
+ * Thread-safe using Atomics.add for concurrent access.
97
+ *
98
+ * @param size - Number of bytes to allocate
99
+ * @returns Uint8Array view into the pool
100
+ * @throws RangeError if pool is exhausted
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * const pool = new MemoryPool(1024);
105
+ * const buf1 = pool.alloc(100); // First 100 bytes
106
+ * const buf2 = pool.alloc(200); // Next 200 bytes
107
+ * ```
108
+ */
109
+ alloc(size: number): Uint8Array;
110
+ /**
111
+ * Allocates memory and fills it with zeros.
112
+ *
113
+ * @param size - Number of bytes to allocate
114
+ * @returns Uint8Array view into the pool, filled with zeros
115
+ * @throws RangeError if pool is exhausted
116
+ */
117
+ allocZeroed(size: number): Uint8Array;
118
+ /**
119
+ * Allocates memory for a specific typed array.
120
+ *
121
+ * @param length - Number of elements
122
+ * @param bytesPerElement - Size of each element in bytes
123
+ * @returns Uint8Array view (use constructor of target type on underlying buffer)
124
+ * @throws RangeError if pool is exhausted
125
+ *
126
+ * @example
127
+ * ```typescript
128
+ * const pool = new MemoryPool(1024);
129
+ * const bytes = pool.allocTyped(10, 4); // 40 bytes for 10 Uint32
130
+ * const u32View = new Uint32Array(bytes.buffer, bytes.byteOffset, 10);
131
+ * ```
132
+ */
133
+ allocTyped(length: number, bytesPerElement: number): Uint8Array;
134
+ /**
135
+ * Resets the pool, making all memory available again.
136
+ *
137
+ * WARNING: All previously allocated views become invalid.
138
+ * Only call when you're sure no references are held.
139
+ *
140
+ * Thread-safe using Atomics.store.
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * const pool = new MemoryPool(1024);
145
+ * const buf = pool.alloc(100);
146
+ * // ... use buf ...
147
+ * pool.reset(); // buf is now invalid!
148
+ * ```
149
+ */
150
+ reset(): void;
151
+ /**
152
+ * Checks if the pool can accommodate an allocation.
153
+ *
154
+ * @param size - Number of bytes needed
155
+ * @returns True if allocation would succeed
156
+ */
157
+ canAlloc(size: number): boolean;
158
+ }
159
+ /**
160
+ * Non-shared memory pool using regular ArrayBuffer.
161
+ *
162
+ * Use when SharedArrayBuffer is not available (e.g., browsers without
163
+ * proper COOP/COEP headers) or when thread-safety is not needed.
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * import { SimpleMemoryPool } from '@btc-vision/bitcoin';
168
+ *
169
+ * const pool = new SimpleMemoryPool(1024 * 1024);
170
+ * const buf = pool.alloc(100);
171
+ * ```
172
+ */
173
+ export declare class SimpleMemoryPool {
174
+ #private;
175
+ /**
176
+ * Creates a new SimpleMemoryPool.
177
+ *
178
+ * @param size - Size of the pool in bytes
179
+ */
180
+ constructor(size: number);
181
+ /**
182
+ * Total capacity of the pool in bytes.
183
+ */
184
+ get capacity(): number;
185
+ /**
186
+ * Current allocation offset (bytes used).
187
+ */
188
+ get used(): number;
189
+ /**
190
+ * Remaining available bytes.
191
+ */
192
+ get available(): number;
193
+ /**
194
+ * Allocates memory from the pool.
195
+ *
196
+ * @param size - Number of bytes to allocate
197
+ * @returns Uint8Array view into the pool
198
+ * @throws RangeError if pool is exhausted
199
+ */
200
+ alloc(size: number): Uint8Array;
201
+ /**
202
+ * Allocates memory and fills it with zeros.
203
+ *
204
+ * @param size - Number of bytes to allocate
205
+ * @returns Uint8Array view into the pool, filled with zeros
206
+ */
207
+ allocZeroed(size: number): Uint8Array;
208
+ /**
209
+ * Resets the pool, making all memory available again.
210
+ */
211
+ reset(): void;
212
+ /**
213
+ * Checks if the pool can accommodate an allocation.
214
+ *
215
+ * @param size - Number of bytes needed
216
+ * @returns True if allocation would succeed
217
+ */
218
+ canAlloc(size: number): boolean;
219
+ }
220
+ //# sourceMappingURL=MemoryPool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryPool.d.ts","sourceRoot":"","sources":["../../src/io/MemoryPool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,UAAU;;IAsBnB;;;;;;;;;;;;;;;OAeG;gBACgB,IAAI,GAAE,MAAwB;IASjD;;;;;;;;;;;;;;;;;;;;OAoBG;WACW,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,UAAU;IAarE;;OAEG;IACH,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED;;;;OAIG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED;;;;OAIG;IACH,IAAW,YAAY,IAAI,iBAAiB,CAE3C;IAED;;;;;;;;;;;;;;;OAeG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAmBtC;;;;;;OAMG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAM5C;;;;;;;;;;;;;;OAcG;IACI,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,UAAU;IAItE;;;;;;;;;;;;;;;OAeG;IACI,KAAK,IAAI,IAAI;IAIpB;;;;;OAKG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGzC;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAgB;;IAIzB;;;;OAIG;gBACgB,IAAI,EAAE,MAAM;IAI/B;;OAEG;IACH,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED;;;;;;OAMG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAgBtC;;;;;OAKG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAM5C;;OAEG;IACI,KAAK,IAAI,IAAI;IAIpB;;;;;OAKG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGzC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Base64 encoding and decoding utilities.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ /**
7
+ * Decodes a base64 string to a Uint8Array.
8
+ *
9
+ * @param base64 - The base64-encoded string to decode
10
+ * @returns Uint8Array containing the decoded bytes
11
+ */
12
+ export declare function fromBase64(base64: string): Uint8Array;
13
+ //# sourceMappingURL=base64.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../src/io/base64.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAOrD"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Hex encoding and decoding utilities.
3
+ *
4
+ * Direct implementations with zero dependencies and no wrappers.
5
+ * Optimized for performance with lookup tables.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ /**
10
+ * Converts a Uint8Array to a lowercase hex string.
11
+ *
12
+ * @param bytes - The byte array to convert
13
+ * @returns Lowercase hex string representation
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * import { toHex } from '@btc-vision/bitcoin';
18
+ *
19
+ * const bytes = new Uint8Array([0xde, 0xad, 0xbe, 0xef]);
20
+ * const hex = toHex(bytes);
21
+ * console.log(hex); // 'deadbeef'
22
+ * ```
23
+ */
24
+ export declare function toHex(bytes: Uint8Array): string;
25
+ /**
26
+ * Converts a hex string to a Uint8Array.
27
+ *
28
+ * Accepts hex strings with or without '0x' prefix.
29
+ * Case-insensitive (accepts both 'DEADBEEF' and 'deadbeef').
30
+ *
31
+ * @param hex - The hex string to convert
32
+ * @returns Uint8Array containing the decoded bytes
33
+ * @throws TypeError if hex string has odd length
34
+ * @throws TypeError if hex string contains invalid characters
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * import { fromHex, toHex } from '@btc-vision/bitcoin';
39
+ *
40
+ * const bytes = fromHex('deadbeef');
41
+ * console.log(bytes); // Uint8Array [222, 173, 190, 239]
42
+ *
43
+ * // Also works with 0x prefix
44
+ * const bytes2 = fromHex('0xCAFEBABE');
45
+ * console.log(toHex(bytes2)); // 'cafebabe'
46
+ * ```
47
+ */
48
+ export declare function fromHex(hex: string): Uint8Array;
49
+ /**
50
+ * Checks if a string is valid hexadecimal.
51
+ *
52
+ * @param value - The string to check
53
+ * @returns True if the string is valid hex (even length, valid chars)
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * import { isHex } from '@btc-vision/bitcoin';
58
+ *
59
+ * isHex('deadbeef'); // true
60
+ * isHex('0xdeadbeef'); // true
61
+ * isHex('DEADBEEF'); // true
62
+ * isHex('deadbee'); // false (odd length)
63
+ * isHex('deadbeeg'); // false (invalid char)
64
+ * ```
65
+ */
66
+ export declare function isHex(value: string): boolean;
67
+ //# sourceMappingURL=hex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hex.d.ts","sourceRoot":"","sources":["../../src/io/hex.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA0BH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAM/C;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAsC/C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAkB5C"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * High-performance binary I/O module.
3
+ *
4
+ * This module provides efficient binary reading and writing with
5
+ * zero-allocation operations through stateful DataView instances.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ import * as varuint from 'varuint-bitcoin';
10
+ export { BinaryReader } from './BinaryReader.js';
11
+ export { BinaryWriter, GrowableBinaryWriter } from './BinaryWriter.js';
12
+ export { toHex, fromHex, isHex } from './hex.js';
13
+ export { fromBase64 } from './base64.js';
14
+ export { concat, equals, compare, isZero, clone, reverse, reverseCopy, alloc, xor, fromUtf8, toUtf8, } from './utils.js';
15
+ export { MemoryPool, SimpleMemoryPool } from './MemoryPool.js';
16
+ export { varuint };
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/io/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EACH,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,WAAW,EACX,KAAK,EACL,GAAG,EACH,QAAQ,EACR,MAAM,GACT,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Pure utility functions for Uint8Array operations.
3
+ *
4
+ * No DataView allocations. No wrappers.
5
+ * Optimized for performance with minimal allocations.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ /**
10
+ * Concatenates multiple Uint8Arrays into a single Uint8Array.
11
+ *
12
+ * Allocates exactly once for the result array.
13
+ *
14
+ * @param arrays - Arrays to concatenate
15
+ * @returns A new Uint8Array containing all input arrays
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * import { concat, fromHex } from '@btc-vision/bitcoin';
20
+ *
21
+ * const a = fromHex('deadbeef');
22
+ * const b = fromHex('cafebabe');
23
+ * const result = concat([a, b]);
24
+ * // result contains deadbeefcafebabe
25
+ * ```
26
+ */
27
+ export declare function concat(arrays: readonly Uint8Array[]): Uint8Array;
28
+ /**
29
+ * Checks if two Uint8Arrays have identical contents.
30
+ *
31
+ * @param a - First array
32
+ * @param b - Second array
33
+ * @returns True if arrays have the same length and contents
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * import { equals, fromHex } from '@btc-vision/bitcoin';
38
+ *
39
+ * const a = fromHex('deadbeef');
40
+ * const b = fromHex('deadbeef');
41
+ * const c = fromHex('cafebabe');
42
+ *
43
+ * equals(a, b); // true
44
+ * equals(a, c); // false
45
+ * ```
46
+ */
47
+ export declare function equals(a: Uint8Array, b: Uint8Array): boolean;
48
+ /**
49
+ * Compares two Uint8Arrays lexicographically.
50
+ *
51
+ * @param a - First array
52
+ * @param b - Second array
53
+ * @returns Negative if a < b, positive if a > b, 0 if equal
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * import { compare, fromHex } from '@btc-vision/bitcoin';
58
+ *
59
+ * const a = fromHex('0001');
60
+ * const b = fromHex('0002');
61
+ *
62
+ * compare(a, b); // -1 (a < b)
63
+ * compare(b, a); // 1 (b > a)
64
+ * compare(a, a); // 0 (equal)
65
+ * ```
66
+ */
67
+ export declare function compare(a: Uint8Array, b: Uint8Array): number;
68
+ /**
69
+ * Checks if a Uint8Array contains only zero bytes.
70
+ *
71
+ * @param bytes - Array to check
72
+ * @returns True if all bytes are zero
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * import { isZero } from '@btc-vision/bitcoin';
77
+ *
78
+ * isZero(new Uint8Array(32)); // true
79
+ * isZero(new Uint8Array([0, 0, 1])); // false
80
+ * ```
81
+ */
82
+ export declare function isZero(bytes: Uint8Array): boolean;
83
+ /**
84
+ * Creates a copy of a Uint8Array.
85
+ *
86
+ * @param bytes - Array to clone
87
+ * @returns A new Uint8Array with the same contents
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * import { clone, fromHex } from '@btc-vision/bitcoin';
92
+ *
93
+ * const original = fromHex('deadbeef');
94
+ * const copy = clone(original);
95
+ * copy[0] = 0; // Modifying copy doesn't affect original
96
+ * ```
97
+ */
98
+ export declare function clone(bytes: Uint8Array): Uint8Array;
99
+ /**
100
+ * Reverses a Uint8Array in place.
101
+ *
102
+ * @param bytes - Array to reverse
103
+ * @returns The same array, reversed
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * import { reverse, fromHex, toHex } from '@btc-vision/bitcoin';
108
+ *
109
+ * const bytes = fromHex('01020304');
110
+ * reverse(bytes);
111
+ * toHex(bytes); // '04030201'
112
+ * ```
113
+ */
114
+ export declare function reverse(bytes: Uint8Array): Uint8Array;
115
+ /**
116
+ * Creates a reversed copy of a Uint8Array.
117
+ *
118
+ * @param bytes - Array to copy and reverse
119
+ * @returns A new reversed Uint8Array
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * import { reverseCopy, fromHex, toHex } from '@btc-vision/bitcoin';
124
+ *
125
+ * const bytes = fromHex('01020304');
126
+ * const reversed = reverseCopy(bytes);
127
+ * toHex(reversed); // '04030201'
128
+ * toHex(bytes); // '01020304' (original unchanged)
129
+ * ```
130
+ */
131
+ export declare function reverseCopy(bytes: Uint8Array): Uint8Array;
132
+ /**
133
+ * Allocates a new Uint8Array of the specified size.
134
+ *
135
+ * @param size - Number of bytes to allocate
136
+ * @param fill - Optional fill value (default 0)
137
+ * @returns A new Uint8Array filled with the specified value
138
+ *
139
+ * @example
140
+ * ```typescript
141
+ * import { alloc, toHex } from '@btc-vision/bitcoin';
142
+ *
143
+ * const zeros = alloc(4); // 4 zero bytes
144
+ * const ones = alloc(4, 0xff); // 4 bytes of 0xff
145
+ * toHex(ones); // 'ffffffff'
146
+ * ```
147
+ */
148
+ export declare function alloc(size: number, fill?: number): Uint8Array;
149
+ /**
150
+ * XORs two Uint8Arrays together.
151
+ *
152
+ * @param a - First array
153
+ * @param b - Second array
154
+ * @returns A new Uint8Array with the XOR result
155
+ * @throws TypeError if arrays have different lengths
156
+ *
157
+ * @example
158
+ * ```typescript
159
+ * import { xor, fromHex, toHex } from '@btc-vision/bitcoin';
160
+ *
161
+ * const a = fromHex('ff00ff00');
162
+ * const b = fromHex('0f0f0f0f');
163
+ * const result = xor(a, b);
164
+ * toHex(result); // 'f00ff00f'
165
+ * ```
166
+ */
167
+ export declare function xor(a: Uint8Array, b: Uint8Array): Uint8Array;
168
+ /**
169
+ * Creates a Uint8Array from a UTF-8 string.
170
+ *
171
+ * @param str - String to encode
172
+ * @returns Uint8Array containing UTF-8 encoded bytes
173
+ *
174
+ * @example
175
+ * ```typescript
176
+ * import { fromUtf8, toHex } from '@btc-vision/bitcoin';
177
+ *
178
+ * const bytes = fromUtf8('hello');
179
+ * toHex(bytes); // '68656c6c6f'
180
+ * ```
181
+ */
182
+ export declare function fromUtf8(str: string): Uint8Array;
183
+ /**
184
+ * Decodes a Uint8Array to a UTF-8 string.
185
+ *
186
+ * @param bytes - Uint8Array to decode
187
+ * @returns Decoded string
188
+ *
189
+ * @example
190
+ * ```typescript
191
+ * import { toUtf8, fromHex } from '@btc-vision/bitcoin';
192
+ *
193
+ * const bytes = fromHex('68656c6c6f');
194
+ * const str = toUtf8(bytes);
195
+ * // str is 'hello'
196
+ * ```
197
+ */
198
+ export declare function toUtf8(bytes: Uint8Array): string;
199
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/io/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,CAehE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAU5D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,CAS5D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAOjD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAKnD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAGrD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAMzD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,GAAG,UAAU,CAMhE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,UAAU,CAS5D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAEhD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEhD"}
@@ -1 +1,10 @@
1
- export declare function fastMerkleRoot(values: Buffer[], digestFn: (b: Buffer) => Buffer): Buffer;
1
+ /**
2
+ * Calculates the Merkle root of an array of Uint8Arrays using a specified digest function.
3
+ *
4
+ * @param values - The array of Uint8Arrays.
5
+ * @param digestFn - The digest function used to calculate the hash of the concatenated arrays.
6
+ * @returns The Merkle root as a Uint8Array.
7
+ * @throws {TypeError} If the values parameter is not an array or the digestFn parameter is not a function.
8
+ */
9
+ export declare function fastMerkleRoot(values: Uint8Array[], digestFn: (b: Uint8Array) => Uint8Array): Uint8Array;
10
+ //# sourceMappingURL=merkle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merkle.d.ts","sourceRoot":"","sources":["../src/merkle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC1B,MAAM,EAAE,UAAU,EAAE,EACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,UAAU,GACxC,UAAU,CAwBZ"}
@@ -1,24 +1,85 @@
1
+ /**
2
+ * Represents a Bitcoin network configuration,including messagePrefix, bech32, bip32, pubKeyHash, scriptHash, wif.
3
+ * Support bitcoin、bitcoin testnet and bitcoin regtest.
4
+ * @packageDocumentation
5
+ */
1
6
  export interface Bip32 {
2
- public: number;
3
- private: number;
7
+ readonly public: number;
8
+ readonly private: number;
4
9
  }
5
10
  export interface Network {
6
- wif: number;
7
- bip32: Bip32;
8
- messagePrefix: string;
9
- bech32: string;
10
- bech32Opnet?: string;
11
- pubKeyHash: number;
12
- scriptHash: number;
11
+ readonly wif: number;
12
+ readonly bip32: Bip32;
13
+ readonly messagePrefix: string;
14
+ readonly bech32: string;
15
+ readonly bech32Opnet?: string;
16
+ readonly pubKeyHash: number;
17
+ readonly scriptHash: number;
13
18
  }
19
+ /**
20
+ * Represents the Bitcoin network configuration.
21
+ */
14
22
  export declare const bitcoin: Network;
23
+ /**
24
+ * Represents the regtest network configuration.
25
+ */
15
26
  export declare const regtest: Network;
27
+ /**
28
+ * Represents the testnet network configuration.
29
+ */
16
30
  export declare const testnet: Network;
31
+ /**
32
+ * Represents the Dogecoin mainnet configuration.
33
+ *
34
+ * Prefixes from:
35
+ * - P2PKH: 0x1e (30 decimal) - addresses start with 'D'
36
+ * - P2SH: 0x16 (22 decimal) - addresses often start with '9' or 'A'
37
+ * - WIF: 0x9e (158 decimal)
38
+ * - BIP32:
39
+ * - public: 0x02facafd
40
+ * - private: 0x02fac398
41
+ * Message prefix:
42
+ * - Dogecoin uses "\x19Dogecoin Signed Message:\n"
43
+ */
17
44
  export declare const dogecoin: Network;
45
+ /**
46
+ * Represents the Dogecoin testnet configuration.
47
+ *
48
+ * Prefixes from Dogecoin testnet chainparams:
49
+ * - P2PKH: 0x71 (113 decimal)
50
+ * - P2SH: 0xc4 (196 decimal)
51
+ * - WIF: 0xf1 (241 decimal)
52
+ * - BIP32:
53
+ * - public: 0x0432a9a8
54
+ * - private: 0x0432a243
55
+ * Message prefix:
56
+ * - Same as mainnet: "\x19Dogecoin Signed Message:\n"
57
+ */
18
58
  export declare const dogecoinTestnet: Network;
59
+ /**
60
+ * Litecoin mainnet configuration.
61
+ */
19
62
  export declare const litecoin: Network;
63
+ /**
64
+ * Litecoin testnet configuration.
65
+ */
20
66
  export declare const litecoinTestnet: Network;
67
+ /**
68
+ * Bitcoin Cash mainnet configuration (legacy).
69
+ * Note: Bitcoin Cash uses Cashaddr starting with 'q' or 'p',
70
+ * but we retain the legacy prefixes for compatibility.
71
+ */
21
72
  export declare const bitcoinCash: Network;
73
+ /**
74
+ * Bitcoin Cash testnet configuration (legacy).
75
+ */
22
76
  export declare const bitcoinCashTestnet: Network;
77
+ /**
78
+ * Dash mainnet configuration.
79
+ */
23
80
  export declare const dash: Network;
81
+ /**
82
+ * Dash testnet configuration.
83
+ */
24
84
  export declare const dashTestnet: Network;
85
+ //# sourceMappingURL=networks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networks.d.ts","sourceRoot":"","sources":["../src/networks.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH,MAAM,WAAW,KAAK;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,OAAO;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAmCrB,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAWrB,CAAC;AACF;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAWrB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,EAAE,OAWtB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,OAW7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,OAWtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,OAW7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,OAazB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAWhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,OAalB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,OAWzB,CAAC"}
@@ -123,3 +123,4 @@ export declare const opcodes: Opcodes;
123
123
  export declare const REVERSE_OPS: {
124
124
  [key: number]: string;
125
125
  };
126
+ //# sourceMappingURL=opcodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opcodes.d.ts","sourceRoot":"","sources":["../src/opcodes.ts"],"names":[],"mappings":"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"}