@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,134 @@
1
+ /**
2
+ * ECC (Elliptic Curve Cryptography) type definitions.
3
+ * Defines interfaces for secp256k1 operations used in Taproot and signatures.
4
+ *
5
+ * @packageDocumentation
6
+ */
7
+ import type { Bytes32, PrivateKey, PublicKey, Signature, SchnorrSignature, XOnlyPublicKey } from '../branded.js';
8
+ /**
9
+ * Parity of the y-coordinate for an x-only public key.
10
+ * - 0: even y-coordinate
11
+ * - 1: odd y-coordinate
12
+ */
13
+ export type Parity = 0 | 1;
14
+ /**
15
+ * Result of x-only point addition with tweak.
16
+ */
17
+ export interface XOnlyPointAddTweakResult {
18
+ /** Parity of the resulting y-coordinate (0 = even, 1 = odd) */
19
+ readonly parity: Parity;
20
+ /** The resulting x-only public key */
21
+ readonly xOnlyPubkey: XOnlyPublicKey;
22
+ }
23
+ /**
24
+ * Interface for the ECC library used by this library.
25
+ * This is compatible with tiny-secp256k1 and @noble/secp256k1.
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * import { EccLib, initEccLib } from '@btc-vision/bitcoin';
30
+ * import * as secp256k1 from 'tiny-secp256k1';
31
+ *
32
+ * // tiny-secp256k1 implements EccLib
33
+ * const ecc: EccLib = secp256k1;
34
+ * initEccLib(ecc);
35
+ * ```
36
+ */
37
+ export interface EccLib {
38
+ /**
39
+ * Checks if a 32-byte value is a valid x-only public key.
40
+ *
41
+ * @param p - 32-byte x-coordinate
42
+ * @returns True if the point is valid on the secp256k1 curve
43
+ */
44
+ isXOnlyPoint(p: Uint8Array): boolean;
45
+ /**
46
+ * Adds a tweak to an x-only public key.
47
+ *
48
+ * @param p - 32-byte x-only public key
49
+ * @param tweak - 32-byte scalar to add
50
+ * @returns The tweaked public key with parity, or null if result is invalid
51
+ */
52
+ xOnlyPointAddTweak(p: XOnlyPublicKey, tweak: Bytes32): XOnlyPointAddTweakResult | null;
53
+ /**
54
+ * Signs a 32-byte message hash with a private key (ECDSA).
55
+ * Optional - only needed for signing operations.
56
+ *
57
+ * @param hash - 32-byte message hash
58
+ * @param privateKey - 32-byte private key
59
+ * @returns DER-encoded signature
60
+ */
61
+ sign?(hash: Bytes32, privateKey: PrivateKey): Signature;
62
+ /**
63
+ * Signs a 32-byte message hash with a private key (Schnorr/BIP340).
64
+ * Optional - only needed for Taproot key-path signing.
65
+ *
66
+ * @param hash - 32-byte message hash
67
+ * @param privateKey - 32-byte private key
68
+ * @returns 64-byte Schnorr signature
69
+ */
70
+ signSchnorr?(hash: Bytes32, privateKey: PrivateKey): SchnorrSignature;
71
+ /**
72
+ * Verifies an ECDSA signature.
73
+ * Optional - only needed for signature verification.
74
+ *
75
+ * @param hash - 32-byte message hash
76
+ * @param publicKey - 33 or 65-byte public key
77
+ * @param signature - DER-encoded signature
78
+ * @returns True if signature is valid
79
+ */
80
+ verify?(hash: Bytes32, publicKey: PublicKey, signature: Signature): boolean;
81
+ /**
82
+ * Verifies a Schnorr/BIP340 signature.
83
+ * Optional - only needed for Taproot signature verification.
84
+ *
85
+ * @param hash - 32-byte message hash
86
+ * @param publicKey - 32-byte x-only public key
87
+ * @param signature - 64-byte Schnorr signature
88
+ * @returns True if signature is valid
89
+ */
90
+ verifySchnorr?(hash: Bytes32, publicKey: XOnlyPublicKey, signature: SchnorrSignature): boolean;
91
+ /**
92
+ * Derives a public key from a private key.
93
+ * Optional - only needed for key derivation.
94
+ *
95
+ * @param privateKey - 32-byte private key
96
+ * @param compressed - Whether to return compressed (33-byte) or uncompressed (65-byte)
97
+ * @returns The public key, or null if private key is invalid
98
+ */
99
+ pointFromScalar?(privateKey: PrivateKey, compressed?: boolean): PublicKey | null;
100
+ /**
101
+ * Computes the x-only public key from a private key.
102
+ * Optional - only needed for Taproot key derivation.
103
+ *
104
+ * @param privateKey - 32-byte private key
105
+ * @returns 32-byte x-only public key, or null if private key is invalid
106
+ */
107
+ xOnlyPointFromScalar?(privateKey: PrivateKey): XOnlyPublicKey | null;
108
+ /**
109
+ * Converts a full public key to x-only format.
110
+ * Optional - only needed when working with x-only keys.
111
+ *
112
+ * @param pubkey - 33 or 65-byte public key
113
+ * @returns 32-byte x-only public key
114
+ */
115
+ xOnlyPointFromPoint?(pubkey: PublicKey): XOnlyPublicKey;
116
+ /**
117
+ * Adds a scalar to a private key.
118
+ * Optional - only needed for key tweaking.
119
+ *
120
+ * @param privateKey - 32-byte private key
121
+ * @param tweak - 32-byte scalar to add
122
+ * @returns The tweaked private key, or null if result is invalid
123
+ */
124
+ privateAdd?(privateKey: PrivateKey, tweak: Bytes32): PrivateKey | null;
125
+ /**
126
+ * Negates a private key.
127
+ * Optional - only needed for Taproot parity handling.
128
+ *
129
+ * @param privateKey - 32-byte private key
130
+ * @returns The negated private key
131
+ */
132
+ privateNegate?(privateKey: PrivateKey): PrivateKey;
133
+ }
134
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ecc/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,EACjB,MAAM,eAAe,CAAC;AAEvB;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sCAAsC;IACtC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;CACxC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,MAAM;IACnB;;;;;OAKG;IACH,YAAY,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAErC;;;;;;OAMG;IACH,kBAAkB,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,wBAAwB,GAAG,IAAI,CAAC;IAEvF;;;;;;;OAOG;IACH,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;IAExD;;;;;;;OAOG;IACH,WAAW,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,gBAAgB,CAAC;IAEtE;;;;;;;;OAQG;IACH,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC;IAE5E;;;;;;;;OAQG;IACH,aAAa,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC;IAE/F;;;;;;;OAOG;IACH,eAAe,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IAEjF;;;;;;OAMG;IACH,oBAAoB,CAAC,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAAC;IAErE;;;;;;OAMG;IACH,mBAAmB,CAAC,CAAC,MAAM,EAAE,SAAS,GAAG,cAAc,CAAC;IAExD;;;;;;;OAOG;IACH,UAAU,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC;IAEvE;;;;;;OAMG;IACH,aAAa,CAAC,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC;CACtD"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * ECC (Elliptic Curve Cryptography) type definitions.
3
+ * Defines interfaces for secp256k1 operations used in Taproot and signatures.
4
+ *
5
+ * @packageDocumentation
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ecc/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Custom error types for the Bitcoin library.
3
+ * @packageDocumentation
4
+ */
5
+ /**
6
+ * Base error class for all Bitcoin-related errors.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { BitcoinError } from '@btc-vision/bitcoin';
11
+ *
12
+ * if (error instanceof BitcoinError) {
13
+ * console.log('Bitcoin library error:', error.message);
14
+ * }
15
+ * ```
16
+ */
17
+ export declare class BitcoinError extends Error {
18
+ constructor(message: string);
19
+ }
20
+ /**
21
+ * Error thrown when input validation fails.
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * import { ValidationError } from '@btc-vision/bitcoin';
26
+ *
27
+ * throw new ValidationError('Invalid public key length');
28
+ * ```
29
+ */
30
+ export declare class ValidationError extends BitcoinError {
31
+ constructor(message: string);
32
+ }
33
+ /**
34
+ * Error thrown when an invalid input is provided to a transaction.
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * import { InvalidInputError } from '@btc-vision/bitcoin';
39
+ *
40
+ * throw new InvalidInputError('Input index out of range');
41
+ * ```
42
+ */
43
+ export declare class InvalidInputError extends BitcoinError {
44
+ constructor(message: string);
45
+ }
46
+ /**
47
+ * Error thrown when an invalid output is provided to a transaction.
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * import { InvalidOutputError } from '@btc-vision/bitcoin';
52
+ *
53
+ * throw new InvalidOutputError('Output value exceeds maximum');
54
+ * ```
55
+ */
56
+ export declare class InvalidOutputError extends BitcoinError {
57
+ constructor(message: string);
58
+ }
59
+ /**
60
+ * Error thrown when a script operation fails.
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * import { ScriptError } from '@btc-vision/bitcoin';
65
+ *
66
+ * throw new ScriptError('Failed to decompile script');
67
+ * ```
68
+ */
69
+ export declare class ScriptError extends BitcoinError {
70
+ constructor(message: string);
71
+ }
72
+ /**
73
+ * Error thrown when a PSBT operation fails.
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * import { PsbtError } from '@btc-vision/bitcoin';
78
+ *
79
+ * throw new PsbtError('Cannot finalize unsigned input');
80
+ * ```
81
+ */
82
+ export declare class PsbtError extends BitcoinError {
83
+ constructor(message: string);
84
+ }
85
+ /**
86
+ * Error thrown when ECC library is not initialized.
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * import { EccError } from '@btc-vision/bitcoin';
91
+ *
92
+ * throw new EccError('ECC library must be initialized before use');
93
+ * ```
94
+ */
95
+ export declare class EccError extends BitcoinError {
96
+ constructor(message: string);
97
+ }
98
+ /**
99
+ * Error thrown when address encoding/decoding fails.
100
+ *
101
+ * @example
102
+ * ```typescript
103
+ * import { AddressError } from '@btc-vision/bitcoin';
104
+ *
105
+ * throw new AddressError('Invalid address checksum');
106
+ * ```
107
+ */
108
+ export declare class AddressError extends BitcoinError {
109
+ constructor(message: string);
110
+ }
111
+ /**
112
+ * Error thrown when signature operations fail.
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * import { SignatureError } from '@btc-vision/bitcoin';
117
+ *
118
+ * throw new SignatureError('Invalid signature format');
119
+ * ```
120
+ */
121
+ export declare class SignatureError extends BitcoinError {
122
+ constructor(message: string);
123
+ }
124
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;GAWG;AACH,qBAAa,YAAa,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM;CAQ9B;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAgB,SAAQ,YAAY;gBACjC,OAAO,EAAE,MAAM;CAI9B;AAED;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;gBACnC,OAAO,EAAE,MAAM;CAI9B;AAED;;;;;;;;;GASG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;gBACpC,OAAO,EAAE,MAAM;CAI9B;AAED;;;;;;;;;GASG;AACH,qBAAa,WAAY,SAAQ,YAAY;gBAC7B,OAAO,EAAE,MAAM;CAI9B;AAED;;;;;;;;;GASG;AACH,qBAAa,SAAU,SAAQ,YAAY;gBAC3B,OAAO,EAAE,MAAM;CAI9B;AAED;;;;;;;;;GASG;AACH,qBAAa,QAAS,SAAQ,YAAY;gBAC1B,OAAO,EAAE,MAAM;CAI9B;AAED;;;;;;;;;GASG;AACH,qBAAa,YAAa,SAAQ,YAAY;gBAC9B,OAAO,EAAE,MAAM;CAI9B;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,YAAY;gBAChC,OAAO,EAAE,MAAM;CAI9B"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Custom error types for the Bitcoin library.
3
+ * @packageDocumentation
4
+ */
5
+ /**
6
+ * Base error class for all Bitcoin-related errors.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { BitcoinError } from '@btc-vision/bitcoin';
11
+ *
12
+ * if (error instanceof BitcoinError) {
13
+ * console.log('Bitcoin library error:', error.message);
14
+ * }
15
+ * ```
16
+ */
17
+ export class BitcoinError extends Error {
18
+ constructor(message) {
19
+ super(message);
20
+ this.name = 'BitcoinError';
21
+ // Maintains proper stack trace for where error was thrown (V8 engines)
22
+ if (Error.captureStackTrace) {
23
+ Error.captureStackTrace(this, BitcoinError);
24
+ }
25
+ }
26
+ }
27
+ /**
28
+ * Error thrown when input validation fails.
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * import { ValidationError } from '@btc-vision/bitcoin';
33
+ *
34
+ * throw new ValidationError('Invalid public key length');
35
+ * ```
36
+ */
37
+ export class ValidationError extends BitcoinError {
38
+ constructor(message) {
39
+ super(message);
40
+ this.name = 'ValidationError';
41
+ }
42
+ }
43
+ /**
44
+ * Error thrown when an invalid input is provided to a transaction.
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * import { InvalidInputError } from '@btc-vision/bitcoin';
49
+ *
50
+ * throw new InvalidInputError('Input index out of range');
51
+ * ```
52
+ */
53
+ export class InvalidInputError extends BitcoinError {
54
+ constructor(message) {
55
+ super(message);
56
+ this.name = 'InvalidInputError';
57
+ }
58
+ }
59
+ /**
60
+ * Error thrown when an invalid output is provided to a transaction.
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * import { InvalidOutputError } from '@btc-vision/bitcoin';
65
+ *
66
+ * throw new InvalidOutputError('Output value exceeds maximum');
67
+ * ```
68
+ */
69
+ export class InvalidOutputError extends BitcoinError {
70
+ constructor(message) {
71
+ super(message);
72
+ this.name = 'InvalidOutputError';
73
+ }
74
+ }
75
+ /**
76
+ * Error thrown when a script operation fails.
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * import { ScriptError } from '@btc-vision/bitcoin';
81
+ *
82
+ * throw new ScriptError('Failed to decompile script');
83
+ * ```
84
+ */
85
+ export class ScriptError extends BitcoinError {
86
+ constructor(message) {
87
+ super(message);
88
+ this.name = 'ScriptError';
89
+ }
90
+ }
91
+ /**
92
+ * Error thrown when a PSBT operation fails.
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * import { PsbtError } from '@btc-vision/bitcoin';
97
+ *
98
+ * throw new PsbtError('Cannot finalize unsigned input');
99
+ * ```
100
+ */
101
+ export class PsbtError extends BitcoinError {
102
+ constructor(message) {
103
+ super(message);
104
+ this.name = 'PsbtError';
105
+ }
106
+ }
107
+ /**
108
+ * Error thrown when ECC library is not initialized.
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * import { EccError } from '@btc-vision/bitcoin';
113
+ *
114
+ * throw new EccError('ECC library must be initialized before use');
115
+ * ```
116
+ */
117
+ export class EccError extends BitcoinError {
118
+ constructor(message) {
119
+ super(message);
120
+ this.name = 'EccError';
121
+ }
122
+ }
123
+ /**
124
+ * Error thrown when address encoding/decoding fails.
125
+ *
126
+ * @example
127
+ * ```typescript
128
+ * import { AddressError } from '@btc-vision/bitcoin';
129
+ *
130
+ * throw new AddressError('Invalid address checksum');
131
+ * ```
132
+ */
133
+ export class AddressError extends BitcoinError {
134
+ constructor(message) {
135
+ super(message);
136
+ this.name = 'AddressError';
137
+ }
138
+ }
139
+ /**
140
+ * Error thrown when signature operations fail.
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * import { SignatureError } from '@btc-vision/bitcoin';
145
+ *
146
+ * throw new SignatureError('Invalid signature format');
147
+ * ```
148
+ */
149
+ export class SignatureError extends BitcoinError {
150
+ constructor(message) {
151
+ super(message);
152
+ this.name = 'SignatureError';
153
+ }
154
+ }
155
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IACnC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,uEAAuE;QACvE,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC1B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;CACJ;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC7C,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAClC,CAAC;CACJ;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IAC/C,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IACpC,CAAC;CACJ;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAChD,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACrC,CAAC;CACJ;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,WAAY,SAAQ,YAAY;IACzC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC9B,CAAC;CACJ;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,SAAU,SAAQ,YAAY;IACvC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC5B,CAAC;CACJ;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,QAAS,SAAQ,YAAY;IACtC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IAC3B,CAAC;CACJ;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,YAAa,SAAQ,YAAY;IAC1C,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC/B,CAAC;CACJ;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,cAAe,SAAQ,YAAY;IAC5C,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IACjC,CAAC;CACJ"}
package/build/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { PsbtInput as _PsbtInput, PsbtInputUpdate as _PsbtInputUpdate, PsbtOutput as _PsbtOutput, TapBip32Derivation as _TapBip32Derivation, TapInternalKey as _TapInternalKey, TapKeySig as _TapKeySig, TapLeaf as _TapLeaf, TapLeafScript as _TapLeafScript, TapMerkleRoot as _TapMerkleRoot, TapScriptSig as _TapScriptSig, TapTree as _TapTree } from 'bip174/src/lib/interfaces.js';
1
+ import type { PsbtInput as _PsbtInput, PsbtInputUpdate as _PsbtInputUpdate, PsbtOutput as _PsbtOutput, TapBip32Derivation as _TapBip32Derivation, TapInternalKey as _TapInternalKey, TapKeySig as _TapKeySig, TapLeaf as _TapLeaf, TapLeafScript as _TapLeafScript, TapMerkleRoot as _TapMerkleRoot, TapScriptSig as _TapScriptSig, TapTree as _TapTree } from 'bip174';
2
2
  import * as networks from './networks.js';
3
3
  import * as address from './address.js';
4
4
  import * as payments from './payments/index.js';
@@ -11,12 +11,18 @@ export * as networks from './networks.js';
11
11
  export * as payments from './payments/index.js';
12
12
  export * as script from './script.js';
13
13
  export { Block } from './block.js';
14
+ /** @hidden */
14
15
  export * from './crypto.js';
15
16
  export * from './psbt.js';
17
+ /** @hidden */
16
18
  export { opcodes } from './opcodes.js';
17
19
  export { Transaction } from './transaction.js';
20
+ export type { TaprootHashCache } from './transaction.js';
21
+ /** @hidden */
18
22
  export type { Network } from './networks.js';
19
- export { initEccLib } from './ecc_lib.js';
23
+ /** @hidden */
24
+ export { initEccLib, getEccLib, EccContext } from './ecc/context.js';
25
+ export type { EccLib } from './ecc/types.js';
20
26
  export { PaymentType } from './payments/index.js';
21
27
  export type { Payment, PaymentCreator, PaymentOpts, P2WSHPayment, P2PKPayment, BasePayment, P2SHPayment, P2TRPayment, P2WPKHPayment, P2PKHPayment, P2MSPayment, EmbedPayment, P2OPPayment, P2OPPaymentParams, } from './payments/index.js';
22
28
  export type { Stack, StackElement, StackFunction } from './types.js';
@@ -45,12 +51,32 @@ export interface PsbtInputUpdate extends _PsbtInputUpdate {
45
51
  }
46
52
  export * from './psbt/bip371.js';
47
53
  export * from './address.js';
48
- export * from './bufferutils.js';
54
+ export { toHex, fromHex, isHex, concat, equals, compare, isZero, clone, reverse, reverseCopy, alloc, xor, fromUtf8, toUtf8, MemoryPool, SimpleMemoryPool, varuint, } from './io/index.js';
49
55
  export * from './payments/bip341.js';
50
56
  export * from './psbt/psbtutils.js';
51
- export { toXOnly, decompressPublicKey, pubkeysMatch, type UncompressedPublicKey } from './pubkey.js';
57
+ export { toXOnly, decompressPublicKey, pubkeysMatch, type UncompressedPublicKey, } from './pubkey.js';
52
58
  export { TAPLEAF_VERSION_MASK } from './types.js';
53
- export type { Taptree, XOnlyPointAddTweakResult, Tapleaf, TinySecp256k1Interface, } from './types.js';
59
+ export type { Taptree, Tapleaf } from './types.js';
60
+ export type { Bytes32, Bytes20, PublicKey, XOnlyPublicKey, Satoshi, PrivateKey, Signature, SchnorrSignature, Script, } from './types.js';
61
+ export { isPrivateKey, isSchnorrSignature, isSignature, isScript, isBytes32, isBytes20, isPoint, isXOnlyPublicKey, isSatoshi, assertXOnlyPublicKey, assertPrivateKey, toBytes32, toBytes20, toSatoshi, } from './types.js';
62
+ export type { XOnlyPointAddTweakResult } from './ecc/types.js';
63
+ import { BitcoinError, ValidationError, InvalidInputError, InvalidOutputError, ScriptError, PsbtError, EccError, AddressError, SignatureError } from './errors.js';
64
+ export { BitcoinError, ValidationError, InvalidInputError, InvalidOutputError, ScriptError, PsbtError, EccError, AddressError, SignatureError, };
65
+ /** All error classes grouped as a namespace */
66
+ export declare const errors: {
67
+ readonly BitcoinError: typeof BitcoinError;
68
+ readonly ValidationError: typeof ValidationError;
69
+ readonly InvalidInputError: typeof InvalidInputError;
70
+ readonly InvalidOutputError: typeof InvalidOutputError;
71
+ readonly ScriptError: typeof ScriptError;
72
+ readonly PsbtError: typeof PsbtError;
73
+ readonly EccError: typeof EccError;
74
+ readonly AddressError: typeof AddressError;
75
+ readonly SignatureError: typeof SignatureError;
76
+ };
77
+ export * as workers from './workers/index.js';
78
+ export { WorkerSigningPool, getSigningPool, SignatureType, createSigningPool, signPsbtParallel, } from './workers/index.js';
79
+ export type { WorkerPoolConfig, SigningTask, ParallelSignerKeyPair, ParallelSigningResult, ParallelSignOptions, PsbtParallelKeyPair, } from './workers/index.js';
54
80
  declare const bitcoin: {
55
81
  networks: typeof networks;
56
82
  address: typeof address;
@@ -60,3 +86,4 @@ declare const bitcoin: {
60
86
  Transaction: typeof Transaction;
61
87
  };
62
88
  export default bitcoin;
89
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,SAAS,IAAI,UAAU,EACvB,eAAe,IAAI,gBAAgB,EACnC,UAAU,IAAI,WAAW,EACzB,kBAAkB,IAAI,mBAAmB,EACzC,cAAc,IAAI,eAAe,EACjC,SAAS,IAAI,UAAU,EACvB,OAAO,IAAI,QAAQ,EACnB,aAAa,IAAI,cAAc,EAC/B,aAAa,IAAI,cAAc,EAC/B,YAAY,IAAI,aAAa,EAC7B,OAAO,IAAI,QAAQ,EACtB,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAEhD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,cAAc;AACd,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc;AACd,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,cAAc;AACd,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrE,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EACR,OAAO,EACP,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,iBAAiB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrE,YAAY,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE7E,MAAM,WAAW,SAAU,SAAQ,UAAU;CAAG;AAEhD,MAAM,WAAW,UAAW,SAAQ,WAAW;CAAG;AAElD,MAAM,WAAW,cAAe,SAAQ,eAAe;CAAG;AAE1D,MAAM,WAAW,OAAQ,SAAQ,QAAQ;CAAG;AAE5C,MAAM,WAAW,YAAa,SAAQ,aAAa;CAAG;AAEtD,MAAM,WAAW,SAAU,SAAQ,UAAU;CAAG;AAEhD,MAAM,WAAW,OAAQ,SAAQ,QAAQ;CAAG;AAE5C,MAAM,WAAW,aAAc,SAAQ,cAAc;CAAG;AAExD,MAAM,WAAW,aAAc,SAAQ,cAAc;CAAG;AAExD,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;CAAG;AAElE,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;CAAG;AAE5D,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,OAAO,EACH,KAAK,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,WAAW,EACX,KAAK,EACL,GAAG,EACH,QAAQ,EACR,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,OAAO,GACV,MAAM,eAAe,CAAC;AACvB,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACH,OAAO,EACP,mBAAmB,EACnB,YAAY,EACZ,KAAK,qBAAqB,GAC7B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACnD,YAAY,EACR,OAAO,EACP,OAAO,EACP,SAAS,EACT,cAAc,EACd,OAAO,EACP,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,MAAM,GACT,MAAM,YAAY,CAAC;AACpB,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,QAAQ,EACR,SAAS,EACT,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,SAAS,GACZ,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAG/D,OAAO,EACH,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,EACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACH,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,GACjB,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,MAAM;;;;;;;;;;CAUT,CAAC;AAGX,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACH,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACR,gBAAgB,EAChB,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,QAAA,MAAM,OAAO;;;;;;;CAOZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
package/build/index.js CHANGED
@@ -10,19 +10,41 @@ export * as networks from './networks.js';
10
10
  export * as payments from './payments/index.js';
11
11
  export * as script from './script.js';
12
12
  export { Block } from './block.js';
13
+ /** @hidden */
13
14
  export * from './crypto.js';
14
15
  export * from './psbt.js';
16
+ /** @hidden */
15
17
  export { opcodes } from './opcodes.js';
16
18
  export { Transaction } from './transaction.js';
17
- export { initEccLib } from './ecc_lib.js';
19
+ /** @hidden */
20
+ export { initEccLib, getEccLib, EccContext } from './ecc/context.js';
18
21
  export { PaymentType } from './payments/index.js';
19
22
  export * from './psbt/bip371.js';
20
23
  export * from './address.js';
21
- export * from './bufferutils.js';
24
+ export { toHex, fromHex, isHex, concat, equals, compare, isZero, clone, reverse, reverseCopy, alloc, xor, fromUtf8, toUtf8, MemoryPool, SimpleMemoryPool, varuint, } from './io/index.js';
22
25
  export * from './payments/bip341.js';
23
26
  export * from './psbt/psbtutils.js';
24
- export { toXOnly, decompressPublicKey, pubkeysMatch } from './pubkey.js';
27
+ export { toXOnly, decompressPublicKey, pubkeysMatch, } from './pubkey.js';
25
28
  export { TAPLEAF_VERSION_MASK } from './types.js';
29
+ export { isPrivateKey, isSchnorrSignature, isSignature, isScript, isBytes32, isBytes20, isPoint, isXOnlyPublicKey, isSatoshi, assertXOnlyPublicKey, assertPrivateKey, toBytes32, toBytes20, toSatoshi, } from './types.js';
30
+ // Custom error types
31
+ import { BitcoinError, ValidationError, InvalidInputError, InvalidOutputError, ScriptError, PsbtError, EccError, AddressError, SignatureError, } from './errors.js';
32
+ export { BitcoinError, ValidationError, InvalidInputError, InvalidOutputError, ScriptError, PsbtError, EccError, AddressError, SignatureError, };
33
+ /** All error classes grouped as a namespace */
34
+ export const errors = {
35
+ BitcoinError,
36
+ ValidationError,
37
+ InvalidInputError,
38
+ InvalidOutputError,
39
+ ScriptError,
40
+ PsbtError,
41
+ EccError,
42
+ AddressError,
43
+ SignatureError,
44
+ };
45
+ // Worker-based parallel signing
46
+ export * as workers from './workers/index.js';
47
+ export { WorkerSigningPool, getSigningPool, SignatureType, createSigningPool, signPsbtParallel, } from './workers/index.js';
26
48
  const bitcoin = {
27
49
  networks,
28
50
  address,
@@ -32,3 +54,4 @@ const bitcoin = {
32
54
  Transaction,
33
55
  };
34
56
  export default bitcoin;
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAEhD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,cAAc;AACd,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc;AACd,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/C,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA0ClD,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,OAAO,EACH,KAAK,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,WAAW,EACX,KAAK,EACL,GAAG,EACH,QAAQ,EACR,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,OAAO,GACV,MAAM,eAAe,CAAC;AACvB,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACH,OAAO,EACP,mBAAmB,EACnB,YAAY,GAEf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAalD,OAAO,EACH,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,QAAQ,EACR,SAAS,EACT,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,SAAS,GACZ,MAAM,YAAY,CAAC;AAGpB,qBAAqB;AACrB,OAAO,EACH,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACH,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,GACjB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,CAAC,MAAM,MAAM,GAAG;IAClB,YAAY;IACZ,eAAe;IACf,iBAAiB;IACjB,kBAAkB;IAClB,WAAW;IACX,SAAS;IACT,QAAQ;IACR,YAAY;IACZ,cAAc;CACR,CAAC;AAEX,gCAAgC;AAChC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACH,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACnB,MAAM,oBAAoB,CAAC;AAU5B,MAAM,OAAO,GAAG;IACZ,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,MAAM;IACN,WAAW;CACd,CAAC;AAEF,eAAe,OAAO,CAAC"}