@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
package/build/psbt.d.ts CHANGED
@@ -1,34 +1,58 @@
1
- import { Psbt as PsbtBase } from 'bip174';
2
- import { KeyValue, PartialSig, PsbtGlobal, PsbtGlobalUpdate, PsbtInput, PsbtInputUpdate, PsbtOutput, PsbtOutputUpdate } from 'bip174/src/lib/interfaces.js';
3
- import { BIP32Interface } from '@btc-vision/bip32';
4
- import { ECPairInterface } from 'ecpair';
5
- import { Network } from './networks.js';
1
+ import type { KeyValue, PartialSig, PsbtGlobalUpdate, PsbtInput, PsbtInputUpdate, PsbtOutputUpdate } from 'bip174';
2
+ import type { BIP32Interface } from '@btc-vision/bip32';
3
+ import type { ECPairInterface } from 'ecpair';
6
4
  import { Transaction } from './transaction.js';
7
- export interface TransactionInput {
8
- hash: string | Buffer;
9
- index: number;
10
- sequence?: number;
11
- }
12
- export interface PsbtTxInput extends TransactionInput {
13
- hash: Buffer;
14
- }
15
- export interface TransactionOutput {
16
- script: Buffer;
17
- value: number;
18
- }
19
- export interface PsbtTxOutput extends TransactionOutput {
20
- address: string | undefined;
21
- }
22
- export type ValidateSigFunction = (pubkey: Buffer, msghash: Buffer, signature: Buffer) => boolean;
23
- export interface PsbtBaseExtended extends Omit<PsbtBase, 'inputs'> {
24
- inputs: PsbtInput[];
25
- globalMap: PsbtGlobal;
26
- }
5
+ import type { Bytes32, PublicKey, Script } from './types.js';
6
+ export type { TransactionInput, PsbtTxInput, TransactionOutput, PsbtTxOutput, ValidateSigFunction, PsbtBaseExtended, PsbtOptsOptional, PsbtOpts, PsbtInputExtended, PsbtOutputExtended, PsbtOutputExtendedAddress, PsbtOutputExtendedScript, HDSigner, HDSignerAsync, SignerAlternative, Signer, SignerAsync, TaprootHashCheckSigner, PsbtCache, TxCacheNumberKey, ScriptType, AllScriptType, GetScriptReturn, FinalScriptsFunc, FinalTaprootScriptsFunc, } from './psbt/types.js';
7
+ import type { PsbtTxInput, PsbtTxOutput, PsbtBaseExtended, PsbtOptsOptional, PsbtOpts, PsbtInputExtended, PsbtOutputExtended, HDSigner, HDSignerAsync, SignerAlternative, Signer, SignerAsync, TaprootHashCheckSigner, PsbtCache, AllScriptType, FinalScriptsFunc, FinalTaprootScriptsFunc, ValidateSigFunction } from './psbt/types.js';
8
+ /**
9
+ * Psbt class can parse and generate a PSBT binary based off of the BIP174.
10
+ * There are 6 roles that this class fulfills. (Explained in BIP174)
11
+ *
12
+ * Creator: This can be done with `new Psbt()`
13
+ *
14
+ * Updater: This can be done with `psbt.addInput(input)`, `psbt.addInputs(inputs)`,
15
+ * `psbt.addOutput(output)`, `psbt.addOutputs(outputs)` when you are looking to
16
+ * add new inputs and outputs to the PSBT, and `psbt.updateGlobal(itemObject)`,
17
+ * `psbt.updateInput(itemObject)`, `psbt.updateOutput(itemObject)`
18
+ * addInput requires hash: Uint8Array | string; and index: number; as attributes
19
+ * and can also include any attributes that are used in updateInput method.
20
+ * addOutput requires script: Uint8Array; and value: bigint; and likewise can include
21
+ * data for updateOutput.
22
+ * For a list of what attributes should be what types. Check the bip174 library.
23
+ * Also, check the integration tests for some examples of usage.
24
+ *
25
+ * Signer: There are a few methods. signAllInputs and signAllInputsAsync, which will search all input
26
+ * information for your pubkey or pubkeyhash, and only sign inputs where it finds
27
+ * your info. Or you can explicitly sign a specific input with signInput and
28
+ * signInputAsync. For the async methods you can create a SignerAsync object
29
+ * and use something like a hardware wallet to sign with. (You must implement this)
30
+ *
31
+ * Combiner: psbts can be combined easily with `psbt.combine(psbt2, psbt3, psbt4 ...)`
32
+ * the psbt calling combine will always have precedence when a conflict occurs.
33
+ * Combine checks if the internal bitcoin transaction is the same, so be sure that
34
+ * all sequences, version, locktime, etc. are the same before combining.
35
+ *
36
+ * Input Finalizer: This role is fairly important. Not only does it need to construct
37
+ * the input scriptSigs and witnesses, but it SHOULD verify the signatures etc.
38
+ * Before running `psbt.finalizeAllInputs()` please run `psbt.validateSignaturesOfAllInputs()`
39
+ * Running any finalize method will delete any data in the input(s) that are no longer
40
+ * needed due to the finalized scripts containing the information.
41
+ *
42
+ * Transaction Extractor: This role will perform some checks before returning a
43
+ * Transaction object. Such as fee rate not being larger than maximumFeeRate etc.
44
+ */
45
+ /**
46
+ * Psbt class can parse and generate a PSBT binary based off of the BIP174.
47
+ */
27
48
  export declare class Psbt {
49
+ #private;
28
50
  data: PsbtBaseExtended;
29
- private readonly __CACHE;
30
- private readonly opts;
31
51
  constructor(opts?: PsbtOptsOptional, data?: PsbtBaseExtended);
52
+ /** @internal - Exposed for testing. Do not use in production code. */
53
+ get __CACHE(): PsbtCache;
54
+ /** @internal - Exposed for testing. Do not use in production code. */
55
+ get opts(): PsbtOpts;
32
56
  get inputCount(): number;
33
57
  get version(): number;
34
58
  set version(version: number);
@@ -38,7 +62,7 @@ export declare class Psbt {
38
62
  get txOutputs(): PsbtTxOutput[];
39
63
  static fromBase64(data: string, opts?: PsbtOptsOptional): Psbt;
40
64
  static fromHex(data: string, opts?: PsbtOptsOptional): Psbt;
41
- static fromBuffer(buffer: Buffer, opts?: PsbtOptsOptional): Psbt;
65
+ static fromBuffer(buffer: Uint8Array, opts?: PsbtOptsOptional): Psbt;
42
66
  combine(...those: Psbt[]): this;
43
67
  clone(): Psbt;
44
68
  setMaximumFeeRate(satoshiPerByte: number): void;
@@ -48,32 +72,43 @@ export declare class Psbt {
48
72
  setInputSequence(inputIndex: number, sequence: number): this;
49
73
  addInputs(inputDatas: PsbtInputExtended[], checkPartialSigs?: boolean): this;
50
74
  addInput(inputData: PsbtInputExtended, checkPartialSigs?: boolean): this;
51
- addOutputs(outputDatas: PsbtOutputExtended[]): this;
52
- addOutput(outputData: PsbtOutputExtended): this;
75
+ addOutputs(outputDatas: PsbtOutputExtended[], checkPartialSigs?: boolean): this;
76
+ /**
77
+ * Add an output to the PSBT.
78
+ *
79
+ * **PERFORMANCE WARNING:** Passing an `address` string is ~10x slower than passing
80
+ * a `script` directly due to address parsing overhead (bech32 decode, etc.).
81
+ * For high-performance use cases with many outputs, pre-compute the script using
82
+ * `toOutputScript(address, network)` and pass `{ script, value }` instead.
83
+ *
84
+ * @param outputData - Output data with either `address` or `script`, and `value`
85
+ * @param checkPartialSigs - Whether to check for existing signatures (default: true)
86
+ */
87
+ addOutput(outputData: PsbtOutputExtended, checkPartialSigs?: boolean): this;
53
88
  extractTransaction(disableFeeCheck?: boolean, disableOutputChecks?: boolean): Transaction;
54
89
  getFeeRate(disableOutputChecks?: boolean): number;
55
90
  getFee(disableOutputChecks?: boolean): number;
56
91
  finalizeAllInputs(): this;
57
92
  finalizeInput(inputIndex: number, finalScriptsFunc?: FinalScriptsFunc | FinalTaprootScriptsFunc, canRunChecks?: boolean): this;
58
- finalizeTaprootInput(inputIndex: number, tapLeafHashToFinalize?: Buffer, finalScriptsFunc?: FinalTaprootScriptsFunc): this;
93
+ finalizeTaprootInput(inputIndex: number, tapLeafHashToFinalize?: Bytes32, finalScriptsFunc?: FinalTaprootScriptsFunc): this;
59
94
  getInputType(inputIndex: number): AllScriptType;
60
- inputHasPubkey(inputIndex: number, pubkey: Buffer): boolean;
95
+ inputHasPubkey(inputIndex: number, pubkey: PublicKey): boolean;
61
96
  inputHasHDKey(inputIndex: number, root: HDSigner): boolean;
62
- outputHasPubkey(outputIndex: number, pubkey: Buffer): boolean;
97
+ outputHasPubkey(outputIndex: number, pubkey: PublicKey): boolean;
63
98
  outputHasHDKey(outputIndex: number, root: HDSigner): boolean;
64
99
  validateSignaturesOfAllInputs(validator: ValidateSigFunction): boolean;
65
- validateSignaturesOfInput(inputIndex: number, validator: ValidateSigFunction, pubkey?: Buffer): boolean;
100
+ validateSignaturesOfInput(inputIndex: number, validator: ValidateSigFunction, pubkey?: PublicKey): boolean;
66
101
  signAllInputsHD(hdKeyPair: HDSigner, sighashTypes?: number[]): this;
67
102
  signAllInputsHDAsync(hdKeyPair: HDSigner | HDSignerAsync, sighashTypes?: number[]): Promise<void>;
68
103
  signInputHD(inputIndex: number, hdKeyPair: HDSigner, sighashTypes?: number[]): this;
69
104
  signInputHDAsync(inputIndex: number, hdKeyPair: HDSigner | HDSignerAsync, sighashTypes?: number[]): Promise<void>;
70
105
  signAllInputs(keyPair: Signer | SignerAlternative | BIP32Interface | ECPairInterface, sighashTypes?: number[]): this;
71
106
  signAllInputsAsync(keyPair: Signer | SignerAlternative | SignerAsync | BIP32Interface | ECPairInterface, sighashTypes?: number[]): Promise<void>;
72
- signInput(inputIndex: number, keyPair: Signer | SignerAlternative | BIP32Interface | ECPairInterface, sighashTypes?: number[]): this;
73
- signTaprootInput(inputIndex: number, keyPair: Signer | SignerAlternative | BIP32Interface | ECPairInterface, tapLeafHashToSign?: Buffer, sighashTypes?: number[]): this;
74
- signInputAsync(inputIndex: number, keyPair: Signer | SignerAlternative | SignerAsync | BIP32Interface | ECPairInterface, sighashTypes?: number[]): Promise<void>;
75
- signTaprootInputAsync(inputIndex: number, keyPair: Signer | SignerAlternative | SignerAsync | BIP32Interface | ECPairInterface, tapLeafHash?: Buffer, sighashTypes?: number[]): Promise<void>;
76
- toBuffer(): Buffer;
107
+ signInput(inputIndex: number, keyPair: Signer | SignerAlternative | HDSigner | BIP32Interface | ECPairInterface, sighashTypes?: number[]): this;
108
+ signTaprootInput(inputIndex: number, keyPair: Signer | SignerAlternative | HDSigner | BIP32Interface | ECPairInterface, tapLeafHashToSign?: Uint8Array, sighashTypes?: number[]): this;
109
+ signInputAsync(inputIndex: number, keyPair: Signer | SignerAlternative | SignerAsync | HDSigner | HDSignerAsync | BIP32Interface | ECPairInterface, sighashTypes?: number[]): Promise<void>;
110
+ signTaprootInputAsync(inputIndex: number, keyPair: Signer | SignerAlternative | SignerAsync | HDSigner | HDSignerAsync | BIP32Interface | ECPairInterface, tapLeafHash?: Uint8Array, sighashTypes?: number[]): Promise<void>;
111
+ toBuffer(): Uint8Array;
77
112
  toHex(): string;
78
113
  toBase64(): string;
79
114
  updateGlobal(updateData: PsbtGlobalUpdate): this;
@@ -83,88 +118,17 @@ export declare class Psbt {
83
118
  addUnknownKeyValToInput(inputIndex: number, keyVal: KeyValue): this;
84
119
  addUnknownKeyValToOutput(outputIndex: number, keyVal: KeyValue): this;
85
120
  clearFinalizedInput(inputIndex: number): this;
86
- checkTaprootHashesForSig(inputIndex: number, input: PsbtInput, keyPair: Signer | SignerAlternative | SignerAsync | BIP32Interface | ECPairInterface, tapLeafHashToSign?: Buffer, allowedSighashTypes?: number[]): {
87
- hash: Buffer;
88
- leafHash?: Buffer;
121
+ checkTaprootHashesForSig(inputIndex: number, input: PsbtInput, keyPair: Signer | SignerAlternative | SignerAsync | HDSigner | HDSignerAsync | TaprootHashCheckSigner | BIP32Interface | ECPairInterface, tapLeafHashToSign?: Uint8Array, allowedSighashTypes?: number[]): {
122
+ hash: Bytes32;
123
+ leafHash?: Bytes32;
89
124
  }[];
90
- private _finalizeInput;
91
- private _finalizeTaprootInput;
92
- private _validateSignaturesOfInput;
93
- private validateSignaturesOfTaprootInput;
94
- private _signInput;
95
- private _signTaprootInput;
96
- private _signInputAsync;
97
- private _signTaprootInputAsync;
98
- }
99
- export interface PsbtOptsOptional {
100
- network?: Network;
101
- maximumFeeRate?: number;
102
- version?: 1 | 2 | 3;
103
- }
104
- export interface PsbtOpts {
105
- network: Network;
106
- maximumFeeRate: number;
107
- }
108
- export interface PsbtInputExtended extends PsbtInput, TransactionInput {
109
- isPayToAnchor?: boolean;
110
- }
111
- export type PsbtOutputExtended = PsbtOutputExtendedAddress | PsbtOutputExtendedScript;
112
- export interface PsbtOutputExtendedAddress extends PsbtOutput {
113
- address: string;
114
- value: number;
115
125
  }
116
- export interface PsbtOutputExtendedScript extends PsbtOutput {
117
- script: Buffer;
118
- value: number;
119
- }
120
- interface HDSignerBase {
121
- publicKey: Buffer;
122
- fingerprint: Buffer;
123
- }
124
- export interface HDSigner extends HDSignerBase {
125
- derivePath(path: string): HDSigner;
126
- sign(hash: Buffer): Buffer;
127
- }
128
- export interface HDSignerAsync extends HDSignerBase {
129
- derivePath(path: string): HDSignerAsync;
130
- sign(hash: Buffer): Promise<Buffer>;
131
- }
132
- export interface SignerAlternative {
133
- publicKey: Buffer;
134
- lowR: boolean;
135
- sign(hash: Buffer, lowR?: boolean): Buffer;
136
- verify(hash: Buffer, signature: Buffer): boolean;
137
- signSchnorr(hash: Buffer): Buffer;
138
- verifySchnorr(hash: Buffer, signature: Buffer): boolean;
139
- }
140
- export interface Signer {
141
- publicKey: Buffer;
142
- network?: Network;
143
- sign(hash: Buffer, lowR?: boolean): Buffer;
144
- signSchnorr?(hash: Buffer): Buffer;
145
- getPublicKey?(): Buffer;
146
- }
147
- export interface SignerAsync {
148
- publicKey: Buffer;
149
- network?: Network;
150
- sign(hash: Buffer, lowR?: boolean): Promise<Buffer>;
151
- signSchnorr?(hash: Buffer): Promise<Buffer>;
152
- getPublicKey?(): Buffer;
153
- }
154
- type FinalScriptsFunc = (inputIndex: number, input: PsbtInput, script: Buffer, isSegwit: boolean, isP2SH: boolean, isP2WSH: boolean, canRunChecks: boolean) => {
155
- finalScriptSig: Buffer | undefined;
156
- finalScriptWitness: Buffer | undefined;
157
- };
158
- type FinalTaprootScriptsFunc = (inputIndex: number, input: PsbtInput, tapLeafHashToFinalize?: Buffer) => {
159
- finalScriptWitness: Buffer | undefined;
160
- };
161
- export declare function getFinalScripts(inputIndex: number, input: PsbtInput, script: Buffer, isSegwit: boolean, isP2SH: boolean, isP2WSH: boolean, canRunChecks?: boolean, solution?: Buffer[]): {
162
- finalScriptSig: Buffer | undefined;
163
- finalScriptWitness: Buffer | undefined;
126
+ export declare function getFinalScripts(inputIndex: number, input: PsbtInput, script: Script, isSegwit: boolean, isP2SH: boolean, isP2WSH: boolean, canRunChecks?: boolean, solution?: Uint8Array[]): {
127
+ finalScriptSig: Script | undefined;
128
+ finalScriptWitness: Uint8Array | undefined;
164
129
  };
165
- export declare function prepareFinalScripts(script: Buffer, scriptType: string, partialSig: PartialSig[], isSegwit: boolean, isP2SH: boolean, isP2WSH: boolean, solution?: Buffer[]): {
166
- finalScriptSig: Buffer | undefined;
167
- finalScriptWitness: Buffer | undefined;
130
+ export declare function prepareFinalScripts(script: Uint8Array, scriptType: string, partialSig: PartialSig[], isSegwit: boolean, isP2SH: boolean, isP2WSH: boolean, solution?: Uint8Array[]): {
131
+ finalScriptSig: Script | undefined;
132
+ finalScriptWitness: Uint8Array | undefined;
168
133
  };
169
- type AllScriptType = 'witnesspubkeyhash' | 'pubkeyhash' | 'multisig' | 'pubkey' | 'nonstandard' | 'p2sh-witnesspubkeyhash' | 'p2sh-pubkeyhash' | 'p2sh-multisig' | 'p2sh-pubkey' | 'p2sh-nonstandard' | 'p2wsh-pubkeyhash' | 'p2wsh-multisig' | 'p2wsh-pubkey' | 'p2wsh-nonstandard' | 'p2sh-p2wsh-pubkeyhash' | 'p2sh-p2wsh-multisig' | 'p2sh-p2wsh-pubkey' | 'p2sh-p2wsh-nonstandard';
170
- export {};
134
+ //# sourceMappingURL=psbt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../src/psbt.ts"],"names":[],"mappings":"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"}