@bsv/sdk 1.0.26 → 1.0.29

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 (329) hide show
  1. package/package.json +1 -1
  2. package/dist/cjs/mod.js +0 -25
  3. package/dist/cjs/mod.js.map +0 -1
  4. package/dist/cjs/package.json +0 -49
  5. package/dist/cjs/src/compat/BSM.js +0 -77
  6. package/dist/cjs/src/compat/BSM.js.map +0 -1
  7. package/dist/cjs/src/compat/ECIES.js +0 -512
  8. package/dist/cjs/src/compat/ECIES.js.map +0 -1
  9. package/dist/cjs/src/compat/HD.js +0 -344
  10. package/dist/cjs/src/compat/HD.js.map +0 -1
  11. package/dist/cjs/src/compat/Mnemonic.js +0 -298
  12. package/dist/cjs/src/compat/Mnemonic.js.map +0 -1
  13. package/dist/cjs/src/compat/bip-39-wordlist-en.js +0 -2057
  14. package/dist/cjs/src/compat/bip-39-wordlist-en.js.map +0 -1
  15. package/dist/cjs/src/compat/index.js +0 -37
  16. package/dist/cjs/src/compat/index.js.map +0 -1
  17. package/dist/cjs/src/messages/EncryptedMessage.js +0 -69
  18. package/dist/cjs/src/messages/EncryptedMessage.js.map +0 -1
  19. package/dist/cjs/src/messages/SignedMessage.js +0 -85
  20. package/dist/cjs/src/messages/SignedMessage.js.map +0 -1
  21. package/dist/cjs/src/messages/index.js +0 -29
  22. package/dist/cjs/src/messages/index.js.map +0 -1
  23. package/dist/cjs/src/primitives/AESGCM.js +0 -384
  24. package/dist/cjs/src/primitives/AESGCM.js.map +0 -1
  25. package/dist/cjs/src/primitives/BasePoint.js +0 -19
  26. package/dist/cjs/src/primitives/BasePoint.js.map +0 -1
  27. package/dist/cjs/src/primitives/BigNumber.js +0 -4272
  28. package/dist/cjs/src/primitives/BigNumber.js.map +0 -1
  29. package/dist/cjs/src/primitives/Curve.js +0 -1126
  30. package/dist/cjs/src/primitives/Curve.js.map +0 -1
  31. package/dist/cjs/src/primitives/DRBG.js +0 -99
  32. package/dist/cjs/src/primitives/DRBG.js.map +0 -1
  33. package/dist/cjs/src/primitives/ECDSA.js +0 -169
  34. package/dist/cjs/src/primitives/ECDSA.js.map +0 -1
  35. package/dist/cjs/src/primitives/Hash.js +0 -1387
  36. package/dist/cjs/src/primitives/Hash.js.map +0 -1
  37. package/dist/cjs/src/primitives/JacobianPoint.js +0 -400
  38. package/dist/cjs/src/primitives/JacobianPoint.js.map +0 -1
  39. package/dist/cjs/src/primitives/K256.js +0 -111
  40. package/dist/cjs/src/primitives/K256.js.map +0 -1
  41. package/dist/cjs/src/primitives/Mersenne.js +0 -118
  42. package/dist/cjs/src/primitives/Mersenne.js.map +0 -1
  43. package/dist/cjs/src/primitives/MontgomoryMethod.js +0 -150
  44. package/dist/cjs/src/primitives/MontgomoryMethod.js.map +0 -1
  45. package/dist/cjs/src/primitives/Point.js +0 -819
  46. package/dist/cjs/src/primitives/Point.js.map +0 -1
  47. package/dist/cjs/src/primitives/PrivateKey.js +0 -246
  48. package/dist/cjs/src/primitives/PrivateKey.js.map +0 -1
  49. package/dist/cjs/src/primitives/PublicKey.js +0 -168
  50. package/dist/cjs/src/primitives/PublicKey.js.map +0 -1
  51. package/dist/cjs/src/primitives/Random.js +0 -57
  52. package/dist/cjs/src/primitives/Random.js.map +0 -1
  53. package/dist/cjs/src/primitives/ReductionContext.js +0 -490
  54. package/dist/cjs/src/primitives/ReductionContext.js.map +0 -1
  55. package/dist/cjs/src/primitives/Signature.js +0 -357
  56. package/dist/cjs/src/primitives/Signature.js.map +0 -1
  57. package/dist/cjs/src/primitives/SymmetricKey.js +0 -82
  58. package/dist/cjs/src/primitives/SymmetricKey.js.map +0 -1
  59. package/dist/cjs/src/primitives/TransactionSignature.js +0 -172
  60. package/dist/cjs/src/primitives/TransactionSignature.js.map +0 -1
  61. package/dist/cjs/src/primitives/index.js +0 -51
  62. package/dist/cjs/src/primitives/index.js.map +0 -1
  63. package/dist/cjs/src/primitives/utils.js +0 -624
  64. package/dist/cjs/src/primitives/utils.js.map +0 -1
  65. package/dist/cjs/src/script/LockingScript.js +0 -35
  66. package/dist/cjs/src/script/LockingScript.js.map +0 -1
  67. package/dist/cjs/src/script/OP.js +0 -207
  68. package/dist/cjs/src/script/OP.js.map +0 -1
  69. package/dist/cjs/src/script/Script.js +0 -435
  70. package/dist/cjs/src/script/Script.js.map +0 -1
  71. package/dist/cjs/src/script/ScriptChunk.js +0 -3
  72. package/dist/cjs/src/script/ScriptChunk.js.map +0 -1
  73. package/dist/cjs/src/script/ScriptTemplate.js +0 -3
  74. package/dist/cjs/src/script/ScriptTemplate.js.map +0 -1
  75. package/dist/cjs/src/script/Spend.js +0 -1252
  76. package/dist/cjs/src/script/Spend.js.map +0 -1
  77. package/dist/cjs/src/script/UnlockingScript.js +0 -35
  78. package/dist/cjs/src/script/UnlockingScript.js.map +0 -1
  79. package/dist/cjs/src/script/index.js +0 -32
  80. package/dist/cjs/src/script/index.js.map +0 -1
  81. package/dist/cjs/src/script/templates/P2PKH.js +0 -120
  82. package/dist/cjs/src/script/templates/P2PKH.js.map +0 -1
  83. package/dist/cjs/src/script/templates/RPuzzle.js +0 -125
  84. package/dist/cjs/src/script/templates/RPuzzle.js.map +0 -1
  85. package/dist/cjs/src/script/templates/index.js +0 -11
  86. package/dist/cjs/src/script/templates/index.js.map +0 -1
  87. package/dist/cjs/src/transaction/Broadcaster.js +0 -3
  88. package/dist/cjs/src/transaction/Broadcaster.js.map +0 -1
  89. package/dist/cjs/src/transaction/ChainTracker.js +0 -3
  90. package/dist/cjs/src/transaction/ChainTracker.js.map +0 -1
  91. package/dist/cjs/src/transaction/FeeModel.js +0 -3
  92. package/dist/cjs/src/transaction/FeeModel.js.map +0 -1
  93. package/dist/cjs/src/transaction/MerklePath.js +0 -239
  94. package/dist/cjs/src/transaction/MerklePath.js.map +0 -1
  95. package/dist/cjs/src/transaction/Transaction.js +0 -616
  96. package/dist/cjs/src/transaction/Transaction.js.map +0 -1
  97. package/dist/cjs/src/transaction/TransactionInput.js +0 -3
  98. package/dist/cjs/src/transaction/TransactionInput.js.map +0 -1
  99. package/dist/cjs/src/transaction/TransactionOutput.js +0 -3
  100. package/dist/cjs/src/transaction/TransactionOutput.js.map +0 -1
  101. package/dist/cjs/src/transaction/broadcasters/ARC.js +0 -112
  102. package/dist/cjs/src/transaction/broadcasters/ARC.js.map +0 -1
  103. package/dist/cjs/src/transaction/broadcasters/index.js +0 -9
  104. package/dist/cjs/src/transaction/broadcasters/index.js.map +0 -1
  105. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js +0 -69
  106. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +0 -1
  107. package/dist/cjs/src/transaction/fee-models/index.js +0 -9
  108. package/dist/cjs/src/transaction/fee-models/index.js.map +0 -1
  109. package/dist/cjs/src/transaction/index.js +0 -11
  110. package/dist/cjs/src/transaction/index.js.map +0 -1
  111. package/dist/cjs/tsconfig.cjs.tsbuildinfo +0 -1
  112. package/dist/esm/mod.js +0 -9
  113. package/dist/esm/mod.js.map +0 -1
  114. package/dist/esm/src/compat/BSM.js +0 -45
  115. package/dist/esm/src/compat/BSM.js.map +0 -1
  116. package/dist/esm/src/compat/ECIES.js +0 -483
  117. package/dist/esm/src/compat/ECIES.js.map +0 -1
  118. package/dist/esm/src/compat/HD.js +0 -322
  119. package/dist/esm/src/compat/HD.js.map +0 -1
  120. package/dist/esm/src/compat/Mnemonic.js +0 -272
  121. package/dist/esm/src/compat/Mnemonic.js.map +0 -1
  122. package/dist/esm/src/compat/bip-39-wordlist-en.js +0 -2054
  123. package/dist/esm/src/compat/bip-39-wordlist-en.js.map +0 -1
  124. package/dist/esm/src/compat/index.js +0 -5
  125. package/dist/esm/src/compat/index.js.map +0 -1
  126. package/dist/esm/src/messages/EncryptedMessage.js +0 -61
  127. package/dist/esm/src/messages/EncryptedMessage.js.map +0 -1
  128. package/dist/esm/src/messages/SignedMessage.js +0 -77
  129. package/dist/esm/src/messages/SignedMessage.js.map +0 -1
  130. package/dist/esm/src/messages/index.js +0 -3
  131. package/dist/esm/src/messages/index.js.map +0 -1
  132. package/dist/esm/src/primitives/AESGCM.js +0 -371
  133. package/dist/esm/src/primitives/AESGCM.js.map +0 -1
  134. package/dist/esm/src/primitives/BasePoint.js +0 -16
  135. package/dist/esm/src/primitives/BasePoint.js.map +0 -1
  136. package/dist/esm/src/primitives/BigNumber.js +0 -4307
  137. package/dist/esm/src/primitives/BigNumber.js.map +0 -1
  138. package/dist/esm/src/primitives/Curve.js +0 -1141
  139. package/dist/esm/src/primitives/Curve.js.map +0 -1
  140. package/dist/esm/src/primitives/DRBG.js +0 -98
  141. package/dist/esm/src/primitives/DRBG.js.map +0 -1
  142. package/dist/esm/src/primitives/ECDSA.js +0 -161
  143. package/dist/esm/src/primitives/ECDSA.js.map +0 -1
  144. package/dist/esm/src/primitives/Hash.js +0 -1391
  145. package/dist/esm/src/primitives/Hash.js.map +0 -1
  146. package/dist/esm/src/primitives/JacobianPoint.js +0 -398
  147. package/dist/esm/src/primitives/JacobianPoint.js.map +0 -1
  148. package/dist/esm/src/primitives/K256.js +0 -105
  149. package/dist/esm/src/primitives/K256.js.map +0 -1
  150. package/dist/esm/src/primitives/Mersenne.js +0 -117
  151. package/dist/esm/src/primitives/Mersenne.js.map +0 -1
  152. package/dist/esm/src/primitives/MontgomoryMethod.js +0 -149
  153. package/dist/esm/src/primitives/MontgomoryMethod.js.map +0 -1
  154. package/dist/esm/src/primitives/Point.js +0 -816
  155. package/dist/esm/src/primitives/Point.js.map +0 -1
  156. package/dist/esm/src/primitives/PrivateKey.js +0 -240
  157. package/dist/esm/src/primitives/PrivateKey.js.map +0 -1
  158. package/dist/esm/src/primitives/PublicKey.js +0 -162
  159. package/dist/esm/src/primitives/PublicKey.js.map +0 -1
  160. package/dist/esm/src/primitives/Random.js +0 -56
  161. package/dist/esm/src/primitives/Random.js.map +0 -1
  162. package/dist/esm/src/primitives/ReductionContext.js +0 -486
  163. package/dist/esm/src/primitives/ReductionContext.js.map +0 -1
  164. package/dist/esm/src/primitives/Signature.js +0 -360
  165. package/dist/esm/src/primitives/Signature.js.map +0 -1
  166. package/dist/esm/src/primitives/SymmetricKey.js +0 -76
  167. package/dist/esm/src/primitives/SymmetricKey.js.map +0 -1
  168. package/dist/esm/src/primitives/TransactionSignature.js +0 -144
  169. package/dist/esm/src/primitives/TransactionSignature.js.map +0 -1
  170. package/dist/esm/src/primitives/index.js +0 -13
  171. package/dist/esm/src/primitives/index.js.map +0 -1
  172. package/dist/esm/src/primitives/utils.js +0 -609
  173. package/dist/esm/src/primitives/utils.js.map +0 -1
  174. package/dist/esm/src/script/LockingScript.js +0 -29
  175. package/dist/esm/src/script/LockingScript.js.map +0 -1
  176. package/dist/esm/src/script/OP.js +0 -205
  177. package/dist/esm/src/script/OP.js.map +0 -1
  178. package/dist/esm/src/script/Script.js +0 -430
  179. package/dist/esm/src/script/Script.js.map +0 -1
  180. package/dist/esm/src/script/ScriptChunk.js +0 -2
  181. package/dist/esm/src/script/ScriptChunk.js.map +0 -1
  182. package/dist/esm/src/script/ScriptTemplate.js +0 -2
  183. package/dist/esm/src/script/ScriptTemplate.js.map +0 -1
  184. package/dist/esm/src/script/Spend.js +0 -1240
  185. package/dist/esm/src/script/Spend.js.map +0 -1
  186. package/dist/esm/src/script/UnlockingScript.js +0 -29
  187. package/dist/esm/src/script/UnlockingScript.js.map +0 -1
  188. package/dist/esm/src/script/index.js +0 -7
  189. package/dist/esm/src/script/index.js.map +0 -1
  190. package/dist/esm/src/script/templates/P2PKH.js +0 -113
  191. package/dist/esm/src/script/templates/P2PKH.js.map +0 -1
  192. package/dist/esm/src/script/templates/RPuzzle.js +0 -119
  193. package/dist/esm/src/script/templates/RPuzzle.js.map +0 -1
  194. package/dist/esm/src/script/templates/index.js +0 -3
  195. package/dist/esm/src/script/templates/index.js.map +0 -1
  196. package/dist/esm/src/transaction/Broadcaster.js +0 -2
  197. package/dist/esm/src/transaction/Broadcaster.js.map +0 -1
  198. package/dist/esm/src/transaction/ChainTracker.js +0 -2
  199. package/dist/esm/src/transaction/ChainTracker.js.map +0 -1
  200. package/dist/esm/src/transaction/FeeModel.js +0 -2
  201. package/dist/esm/src/transaction/FeeModel.js.map +0 -1
  202. package/dist/esm/src/transaction/MerklePath.js +0 -237
  203. package/dist/esm/src/transaction/MerklePath.js.map +0 -1
  204. package/dist/esm/src/transaction/Transaction.js +0 -617
  205. package/dist/esm/src/transaction/Transaction.js.map +0 -1
  206. package/dist/esm/src/transaction/TransactionInput.js +0 -2
  207. package/dist/esm/src/transaction/TransactionInput.js.map +0 -1
  208. package/dist/esm/src/transaction/TransactionOutput.js +0 -2
  209. package/dist/esm/src/transaction/TransactionOutput.js.map +0 -1
  210. package/dist/esm/src/transaction/broadcasters/ARC.js +0 -111
  211. package/dist/esm/src/transaction/broadcasters/ARC.js.map +0 -1
  212. package/dist/esm/src/transaction/broadcasters/index.js +0 -2
  213. package/dist/esm/src/transaction/broadcasters/index.js.map +0 -1
  214. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js +0 -71
  215. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +0 -1
  216. package/dist/esm/src/transaction/fee-models/index.js +0 -2
  217. package/dist/esm/src/transaction/fee-models/index.js.map +0 -1
  218. package/dist/esm/src/transaction/index.js +0 -3
  219. package/dist/esm/src/transaction/index.js.map +0 -1
  220. package/dist/esm/tsconfig.esm.tsbuildinfo +0 -1
  221. package/dist/types/mod.d.ts +0 -9
  222. package/dist/types/mod.d.ts.map +0 -1
  223. package/dist/types/src/compat/BSM.d.ts +0 -28
  224. package/dist/types/src/compat/BSM.d.ts.map +0 -1
  225. package/dist/types/src/compat/ECIES.d.ts +0 -62
  226. package/dist/types/src/compat/ECIES.d.ts.map +0 -1
  227. package/dist/types/src/compat/HD.d.ts +0 -131
  228. package/dist/types/src/compat/HD.d.ts.map +0 -1
  229. package/dist/types/src/compat/Mnemonic.d.ts +0 -132
  230. package/dist/types/src/compat/Mnemonic.d.ts.map +0 -1
  231. package/dist/types/src/compat/bip-39-wordlist-en.d.ts +0 -5
  232. package/dist/types/src/compat/bip-39-wordlist-en.d.ts.map +0 -1
  233. package/dist/types/src/compat/index.d.ts +0 -5
  234. package/dist/types/src/compat/index.d.ts.map +0 -1
  235. package/dist/types/src/messages/EncryptedMessage.d.ts +0 -20
  236. package/dist/types/src/messages/EncryptedMessage.d.ts.map +0 -1
  237. package/dist/types/src/messages/SignedMessage.d.ts +0 -21
  238. package/dist/types/src/messages/SignedMessage.d.ts.map +0 -1
  239. package/dist/types/src/messages/index.d.ts +0 -3
  240. package/dist/types/src/messages/index.d.ts.map +0 -1
  241. package/dist/types/src/primitives/AESGCM.d.ts +0 -14
  242. package/dist/types/src/primitives/AESGCM.d.ts.map +0 -1
  243. package/dist/types/src/primitives/BasePoint.d.ts +0 -22
  244. package/dist/types/src/primitives/BasePoint.d.ts.map +0 -1
  245. package/dist/types/src/primitives/BigNumber.d.ts +0 -1895
  246. package/dist/types/src/primitives/BigNumber.d.ts.map +0 -1
  247. package/dist/types/src/primitives/Curve.d.ts +0 -55
  248. package/dist/types/src/primitives/Curve.d.ts.map +0 -1
  249. package/dist/types/src/primitives/DRBG.d.ts +0 -54
  250. package/dist/types/src/primitives/DRBG.d.ts.map +0 -1
  251. package/dist/types/src/primitives/ECDSA.d.ts +0 -39
  252. package/dist/types/src/primitives/ECDSA.d.ts.map +0 -1
  253. package/dist/types/src/primitives/Hash.d.ts +0 -450
  254. package/dist/types/src/primitives/Hash.d.ts.map +0 -1
  255. package/dist/types/src/primitives/JacobianPoint.d.ts +0 -164
  256. package/dist/types/src/primitives/JacobianPoint.d.ts.map +0 -1
  257. package/dist/types/src/primitives/K256.d.ts +0 -53
  258. package/dist/types/src/primitives/K256.d.ts.map +0 -1
  259. package/dist/types/src/primitives/Mersenne.d.ts +0 -72
  260. package/dist/types/src/primitives/Mersenne.d.ts.map +0 -1
  261. package/dist/types/src/primitives/MontgomoryMethod.d.ts +0 -96
  262. package/dist/types/src/primitives/MontgomoryMethod.d.ts.map +0 -1
  263. package/dist/types/src/primitives/Point.d.ts +0 -303
  264. package/dist/types/src/primitives/Point.d.ts.map +0 -1
  265. package/dist/types/src/primitives/PrivateKey.d.ts +0 -174
  266. package/dist/types/src/primitives/PrivateKey.d.ts.map +0 -1
  267. package/dist/types/src/primitives/PublicKey.d.ts +0 -120
  268. package/dist/types/src/primitives/PublicKey.d.ts.map +0 -1
  269. package/dist/types/src/primitives/Random.d.ts +0 -14
  270. package/dist/types/src/primitives/Random.d.ts.map +0 -1
  271. package/dist/types/src/primitives/ReductionContext.d.ts +0 -308
  272. package/dist/types/src/primitives/ReductionContext.d.ts.map +0 -1
  273. package/dist/types/src/primitives/Signature.d.ts +0 -162
  274. package/dist/types/src/primitives/Signature.d.ts.map +0 -1
  275. package/dist/types/src/primitives/SymmetricKey.d.ts +0 -55
  276. package/dist/types/src/primitives/SymmetricKey.d.ts.map +0 -1
  277. package/dist/types/src/primitives/TransactionSignature.d.ts +0 -36
  278. package/dist/types/src/primitives/TransactionSignature.d.ts.map +0 -1
  279. package/dist/types/src/primitives/index.d.ts +0 -13
  280. package/dist/types/src/primitives/index.d.ts.map +0 -1
  281. package/dist/types/src/primitives/utils.d.ts +0 -124
  282. package/dist/types/src/primitives/utils.d.ts.map +0 -1
  283. package/dist/types/src/script/LockingScript.d.ts +0 -25
  284. package/dist/types/src/script/LockingScript.d.ts.map +0 -1
  285. package/dist/types/src/script/OP.d.ts +0 -193
  286. package/dist/types/src/script/OP.d.ts.map +0 -1
  287. package/dist/types/src/script/Script.d.ts +0 -148
  288. package/dist/types/src/script/Script.d.ts.map +0 -1
  289. package/dist/types/src/script/ScriptChunk.d.ts +0 -8
  290. package/dist/types/src/script/ScriptChunk.d.ts.map +0 -1
  291. package/dist/types/src/script/ScriptTemplate.d.ts +0 -33
  292. package/dist/types/src/script/ScriptTemplate.d.ts.map +0 -1
  293. package/dist/types/src/script/Spend.d.ts +0 -103
  294. package/dist/types/src/script/Spend.d.ts.map +0 -1
  295. package/dist/types/src/script/UnlockingScript.d.ts +0 -25
  296. package/dist/types/src/script/UnlockingScript.d.ts.map +0 -1
  297. package/dist/types/src/script/index.d.ts +0 -8
  298. package/dist/types/src/script/index.d.ts.map +0 -1
  299. package/dist/types/src/script/templates/P2PKH.d.ts +0 -40
  300. package/dist/types/src/script/templates/P2PKH.d.ts.map +0 -1
  301. package/dist/types/src/script/templates/RPuzzle.d.ts +0 -47
  302. package/dist/types/src/script/templates/RPuzzle.d.ts.map +0 -1
  303. package/dist/types/src/script/templates/index.d.ts +0 -3
  304. package/dist/types/src/script/templates/index.d.ts.map +0 -1
  305. package/dist/types/src/transaction/Broadcaster.d.ts +0 -39
  306. package/dist/types/src/transaction/Broadcaster.d.ts.map +0 -1
  307. package/dist/types/src/transaction/ChainTracker.d.ts +0 -23
  308. package/dist/types/src/transaction/ChainTracker.d.ts.map +0 -1
  309. package/dist/types/src/transaction/FeeModel.d.ts +0 -12
  310. package/dist/types/src/transaction/FeeModel.d.ts.map +0 -1
  311. package/dist/types/src/transaction/MerklePath.d.ts +0 -91
  312. package/dist/types/src/transaction/MerklePath.d.ts.map +0 -1
  313. package/dist/types/src/transaction/Transaction.d.ts +0 -215
  314. package/dist/types/src/transaction/Transaction.d.ts.map +0 -1
  315. package/dist/types/src/transaction/TransactionInput.d.ts +0 -63
  316. package/dist/types/src/transaction/TransactionInput.d.ts.map +0 -1
  317. package/dist/types/src/transaction/TransactionOutput.d.ts +0 -36
  318. package/dist/types/src/transaction/TransactionOutput.d.ts.map +0 -1
  319. package/dist/types/src/transaction/broadcasters/ARC.d.ts +0 -28
  320. package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +0 -1
  321. package/dist/types/src/transaction/broadcasters/index.d.ts +0 -2
  322. package/dist/types/src/transaction/broadcasters/index.d.ts.map +0 -1
  323. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts +0 -26
  324. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +0 -1
  325. package/dist/types/src/transaction/fee-models/index.d.ts +0 -2
  326. package/dist/types/src/transaction/fee-models/index.d.ts.map +0 -1
  327. package/dist/types/src/transaction/index.d.ts +0 -7
  328. package/dist/types/src/transaction/index.d.ts.map +0 -1
  329. package/dist/types/tsconfig.types.tsbuildinfo +0 -1
@@ -1,616 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const UnlockingScript_js_1 = __importDefault(require("../script/UnlockingScript.js"));
7
- const LockingScript_js_1 = __importDefault(require("../script/LockingScript.js"));
8
- const utils_js_1 = require("../primitives/utils.js");
9
- const Hash_js_1 = require("../primitives/Hash.js");
10
- const SatoshisPerKilobyte_js_1 = __importDefault(require("./fee-models/SatoshisPerKilobyte.js"));
11
- const MerklePath_js_1 = __importDefault(require("./MerklePath.js"));
12
- const Spend_js_1 = __importDefault(require("../script/Spend.js"));
13
- /**
14
- * Represents a complete Bitcoin transaction. This class encapsulates all the details
15
- * required for creating, signing, and processing a Bitcoin transaction, including
16
- * inputs, outputs, and various transaction-related methods.
17
- *
18
- * @class Transaction
19
- * @property {number} version - The version number of the transaction. Used to specify
20
- * which set of rules this transaction follows.
21
- * @property {TransactionInput[]} inputs - An array of TransactionInput objects, representing
22
- * the inputs for the transaction. Each input references a previous transaction's output.
23
- * @property {TransactionOutput[]} outputs - An array of TransactionOutput objects, representing
24
- * the outputs for the transaction. Each output specifies the amount of satoshis to be
25
- * transferred and the conditions under which they can be spent.
26
- * @property {number} lockTime - The lock time of the transaction. If non-zero, it specifies the
27
- * earliest time or block height at which the transaction can be added to the block chain.
28
- * @property {Record<string, any>} metadata - A key-value store for attaching additional data to
29
- * the transaction object, not included in the transaction itself. Useful for adding descriptions, internal reference numbers, or other information.
30
- * @property {MerkleProof} [merkleProof] - Optional. A merkle proof demonstrating the transaction's
31
- * inclusion in a block. Useful for transaction verification using SPV.
32
- *
33
- * @example
34
- * // Creating a new transaction
35
- * let tx = new Transaction();
36
- * tx.addInput(...);
37
- * tx.addOutput(...);
38
- * await tx.fee();
39
- * await tx.sign();
40
- * await tx.broadcast();
41
- *
42
- * @description
43
- * The Transaction class provides comprehensive
44
- * functionality to handle various aspects of transaction creation, including
45
- * adding inputs and outputs, computing fees, signing the transaction, and
46
- * generating its binary or hexadecimal representation.
47
- */
48
- class Transaction {
49
- /**
50
- * Creates a new transaction, linked to its inputs and their associated merkle paths, from a BEEF (BRC-62) structure.
51
- * @param beef A binary representation of a transaction in BEEF format.
52
- * @returns An anchored transaction, linked to its associated inputs populated with merkle paths.
53
- */
54
- static fromBEEF(beef) {
55
- const reader = new utils_js_1.Reader(beef);
56
- // Read the version
57
- const version = reader.readUInt32LE();
58
- if (version !== 4022206465) {
59
- throw new Error(`Invalid BEEF version. Expected 4022206465, received ${version}.`);
60
- }
61
- // Read the BUMPs
62
- const numberOfBUMPs = reader.readVarIntNum();
63
- const BUMPs = [];
64
- for (let i = 0; i < numberOfBUMPs; i++) {
65
- BUMPs.push(MerklePath_js_1.default.fromReader(reader));
66
- }
67
- // Read all transactions into an object
68
- // The object has keys of TXIDs and values of objects with transactions and BUMP indexes
69
- const numberOfTransactions = reader.readVarIntNum();
70
- const transactions = {};
71
- let lastTXID;
72
- for (let i = 0; i < numberOfTransactions; i++) {
73
- const tx = Transaction.fromReader(reader);
74
- const obj = { tx };
75
- const txid = tx.id('hex');
76
- if (i + 1 === numberOfTransactions) { // The last tXID is stored for later
77
- lastTXID = txid;
78
- }
79
- const hasBump = Boolean(reader.readUInt8());
80
- if (hasBump) {
81
- obj.pathIndex = reader.readVarIntNum();
82
- }
83
- transactions[txid] = obj;
84
- }
85
- // Recursive function for adding merkle proofs or input transactions
86
- const addPathOrInputs = (obj) => {
87
- if (typeof obj.pathIndex === 'number') {
88
- const path = BUMPs[obj.pathIndex];
89
- if (typeof path !== 'object') {
90
- throw new Error('Invalid merkle path index found in BEEF!');
91
- }
92
- obj.tx.merklePath = path;
93
- }
94
- else {
95
- for (let i = 0; i < obj.tx.inputs.length; i++) {
96
- const input = obj.tx.inputs[i];
97
- const sourceObj = transactions[input.sourceTXID];
98
- if (typeof sourceObj !== 'object') {
99
- throw new Error(`Reference to unknown TXID in BUMP: ${input.sourceTXID}`);
100
- }
101
- input.sourceTransaction = sourceObj.tx;
102
- addPathOrInputs(sourceObj);
103
- }
104
- }
105
- };
106
- // Read the final transaction and Add inputs and merkle proofs to the final transaction, returning it
107
- addPathOrInputs(transactions[lastTXID]);
108
- return transactions[lastTXID].tx;
109
- }
110
- /**
111
- * Since the validation of blockchain data is atomically transaction data validation,
112
- * any application seeking to validate data in output scripts must store the entire transaction as well.
113
- * Since the transaction data includes the output script data, saving a second copy of potentially
114
- * large scripts can bloat application storage requirements.
115
- *
116
- * This function efficiently parses binary transaction data to determine the offsets and lengths of each script.
117
- * This supports the efficient retreival of script data from transaction data.
118
- *
119
- * @param bin binary transaction data
120
- * @returns {
121
- * inputs: { vin: number, offset: number, length: number }[]
122
- * outputs: { vout: number, offset: number, length: number }[]
123
- * }
124
- */
125
- static parseScriptOffsets(bin) {
126
- const br = new utils_js_1.Reader(bin);
127
- const inputs = [];
128
- const outputs = [];
129
- br.pos += 4; // version
130
- const inputsLength = br.readVarIntNum();
131
- for (let i = 0; i < inputsLength; i++) {
132
- br.pos += 36; // txid and vout
133
- const scriptLength = br.readVarIntNum();
134
- inputs.push({ vin: i, offset: br.pos, length: scriptLength });
135
- br.pos += scriptLength + 4; // script and sequence
136
- }
137
- const outputsLength = br.readVarIntNum();
138
- for (let i = 0; i < outputsLength; i++) {
139
- br.pos += 8; // satoshis
140
- const scriptLength = br.readVarIntNum();
141
- outputs.push({ vout: i, offset: br.pos, length: scriptLength });
142
- br.pos += scriptLength;
143
- }
144
- return { inputs, outputs };
145
- }
146
- static fromReader(br) {
147
- const version = br.readUInt32LE();
148
- const inputsLength = br.readVarIntNum();
149
- const inputs = [];
150
- for (let i = 0; i < inputsLength; i++) {
151
- const sourceTXID = (0, utils_js_1.toHex)(br.readReverse(32));
152
- const sourceOutputIndex = br.readUInt32LE();
153
- const scriptLength = br.readVarIntNum();
154
- const scriptBin = br.read(scriptLength);
155
- const unlockingScript = UnlockingScript_js_1.default.fromBinary(scriptBin);
156
- const sequence = br.readUInt32LE();
157
- inputs.push({
158
- sourceTXID,
159
- sourceOutputIndex,
160
- unlockingScript,
161
- sequence
162
- });
163
- }
164
- const outputsLength = br.readVarIntNum();
165
- const outputs = [];
166
- for (let i = 0; i < outputsLength; i++) {
167
- const satoshis = br.readUInt64LEBn().toNumber();
168
- const scriptLength = br.readVarIntNum();
169
- const scriptBin = br.read(scriptLength);
170
- const lockingScript = LockingScript_js_1.default.fromBinary(scriptBin);
171
- outputs.push({
172
- satoshis,
173
- lockingScript
174
- });
175
- }
176
- const lockTime = br.readUInt32LE();
177
- return new Transaction(version, inputs, outputs, lockTime);
178
- }
179
- /**
180
- * Creates a Transaction instance from a binary array.
181
- *
182
- * @static
183
- * @param {number[]} bin - The binary array representation of the transaction.
184
- * @returns {Transaction} - A new Transaction instance.
185
- */
186
- static fromBinary(bin) {
187
- const br = new utils_js_1.Reader(bin);
188
- return Transaction.fromReader(br);
189
- }
190
- /**
191
- * Creates a Transaction instance from a hexadecimal string.
192
- *
193
- * @static
194
- * @param {string} hex - The hexadecimal string representation of the transaction.
195
- * @returns {Transaction} - A new Transaction instance.
196
- */
197
- static fromHex(hex) {
198
- return Transaction.fromBinary((0, utils_js_1.toArray)(hex, 'hex'));
199
- }
200
- /**
201
- * Creates a Transaction instance from a hexadecimal string encoded BEEF.
202
- *
203
- * @static
204
- * @param {string} hex - The hexadecimal string representation of the transaction BEEF.
205
- * @returns {Transaction} - A new Transaction instance.
206
- */
207
- static fromHexBEEF(hex) {
208
- return Transaction.fromBEEF((0, utils_js_1.toArray)(hex, 'hex'));
209
- }
210
- constructor(version = 1, inputs = [], outputs = [], lockTime = 0, metadata = {}, merklePath) {
211
- this.version = version;
212
- this.inputs = inputs;
213
- this.outputs = outputs;
214
- this.lockTime = lockTime;
215
- this.metadata = metadata;
216
- this.merklePath = merklePath;
217
- }
218
- /**
219
- * Adds a new input to the transaction.
220
- *
221
- * @param {TransactionInput} input - The TransactionInput object to add to the transaction.
222
- * @throws {Error} - If the input does not have a sourceTXID or sourceTransaction defined.
223
- */
224
- addInput(input) {
225
- if (typeof input.sourceTXID === 'undefined' &&
226
- typeof input.sourceTransaction === 'undefined') {
227
- throw new Error('A reference to an an input transaction is required. If the input transaction itself cannot be referenced, its TXID must still be provided.');
228
- }
229
- // If the input sequence number hasn't been set, the expectation is that it is final.
230
- if (typeof input.sequence === 'undefined') {
231
- input.sequence = 0xFFFFFFFF;
232
- }
233
- this.cachedHash = undefined;
234
- this.inputs.push(input);
235
- }
236
- /**
237
- * Adds a new output to the transaction.
238
- *
239
- * @param {TransactionOutput} output - The TransactionOutput object to add to the transaction.
240
- */
241
- addOutput(output) {
242
- this.cachedHash = undefined;
243
- this.outputs.push(output);
244
- }
245
- /**
246
- * Updates the transaction's metadata.
247
- *
248
- * @param {Record<string, any>} metadata - The metadata object to merge into the existing metadata.
249
- */
250
- updateMetadata(metadata) {
251
- this.metadata = {
252
- ...this.metadata,
253
- ...metadata
254
- };
255
- }
256
- /**
257
- * Computes fees prior to signing.
258
- * If no fee model is provided, uses a SatoshisPerKilobyte fee model that pays 10 sat/kb.
259
- *
260
- * @param model - The initialized fee model to use
261
- * @param changeDistribution - Specifies how the change should be distributed
262
- * amongst the change outputs
263
- *
264
- * TODO: Benford's law change distribution.
265
- */
266
- async fee(model, changeDistribution = 'equal') {
267
- this.cachedHash = undefined;
268
- if (typeof model === 'undefined') {
269
- model = new SatoshisPerKilobyte_js_1.default(10);
270
- }
271
- const fee = await model.computeFee(this);
272
- // change = inputs - fee - non-change outputs
273
- let change = 0;
274
- for (const input of this.inputs) {
275
- if (typeof input.sourceTransaction !== 'object') {
276
- throw new Error('Source transactions are required for all inputs during fee computation');
277
- }
278
- change += input.sourceTransaction.outputs[input.sourceOutputIndex].satoshis;
279
- }
280
- change -= fee;
281
- let changeCount = 0;
282
- for (const out of this.outputs) {
283
- if (!out.change) {
284
- change -= out.satoshis;
285
- }
286
- else {
287
- changeCount++;
288
- }
289
- }
290
- if (change <= changeCount) {
291
- // There is not enough change to distribute among the change outputs.
292
- // We'll remove all change outputs and leave the extra for the miners.
293
- for (let i = 0; i < this.outputs.length; i++) {
294
- if (this.outputs[i].change) {
295
- this.outputs.splice(i, 1);
296
- i--;
297
- }
298
- }
299
- return;
300
- }
301
- // Distribute change among change outputs
302
- if (changeDistribution === 'random') {
303
- // TODO
304
- throw new Error('Not yet implemented');
305
- }
306
- else if (changeDistribution === 'equal') {
307
- const perOutput = Math.floor(change / changeCount);
308
- for (const out of this.outputs) {
309
- if (out.change) {
310
- out.satoshis = perOutput;
311
- }
312
- }
313
- }
314
- }
315
- /**
316
- * Signs a transaction, hydrating all its unlocking scripts based on the provided script templates where they are available.
317
- */
318
- async sign() {
319
- this.cachedHash = undefined;
320
- for (const out of this.outputs) {
321
- if (typeof out.satoshis === 'undefined') {
322
- if (out.change) {
323
- throw new Error('There are still change outputs with uncomputed amounts. Use the fee() method to compute the change amounts and transaction fees prior to signing.');
324
- }
325
- else {
326
- throw new Error('One or more transaction outputs is missing an amount. Ensure all output amounts are provided before signing.');
327
- }
328
- }
329
- }
330
- const unlockingScripts = await Promise.all(this.inputs.map(async (x, i) => {
331
- if (typeof this.inputs[i].unlockingScriptTemplate === 'object') {
332
- return await this.inputs[i].unlockingScriptTemplate.sign(this, i);
333
- }
334
- else {
335
- return await Promise.resolve(undefined);
336
- }
337
- }));
338
- for (let i = 0, l = this.inputs.length; i < l; i++) {
339
- if (typeof this.inputs[i].unlockingScriptTemplate === 'object') {
340
- this.inputs[i].unlockingScript = unlockingScripts[i];
341
- }
342
- }
343
- }
344
- /**
345
- * Broadcasts a transaction.
346
- *
347
- * @param broadcaster The Broadcaster instance wwhere the transaction will be sent
348
- * @returns A BroadcastResponse or BroadcastFailure from the Broadcaster
349
- */
350
- async broadcast(broadcaster) {
351
- return await broadcaster.broadcast(this);
352
- }
353
- /**
354
- * Converts the transaction to a binary array format.
355
- *
356
- * @returns {number[]} - The binary array representation of the transaction.
357
- */
358
- toBinary() {
359
- const writer = new utils_js_1.Writer();
360
- writer.writeUInt32LE(this.version);
361
- writer.writeVarIntNum(this.inputs.length);
362
- for (const i of this.inputs) {
363
- if (typeof i.sourceTransaction !== 'undefined') {
364
- writer.write(i.sourceTransaction.hash());
365
- }
366
- else {
367
- writer.writeReverse((0, utils_js_1.toArray)(i.sourceTXID, 'hex'));
368
- }
369
- writer.writeUInt32LE(i.sourceOutputIndex);
370
- const scriptBin = i.unlockingScript.toBinary();
371
- writer.writeVarIntNum(scriptBin.length);
372
- writer.write(scriptBin);
373
- writer.writeUInt32LE(i.sequence);
374
- }
375
- writer.writeVarIntNum(this.outputs.length);
376
- for (const o of this.outputs) {
377
- writer.writeUInt64LE(o.satoshis);
378
- const scriptBin = o.lockingScript.toBinary();
379
- writer.writeVarIntNum(scriptBin.length);
380
- writer.write(scriptBin);
381
- }
382
- writer.writeUInt32LE(this.lockTime);
383
- return writer.toArray();
384
- }
385
- /**
386
- * Converts the transaction to a BRC-30 EF format.
387
- *
388
- * @returns {number[]} - The BRC-30 EF representation of the transaction.
389
- */
390
- toEF() {
391
- const writer = new utils_js_1.Writer();
392
- writer.writeUInt32LE(this.version);
393
- writer.write([0, 0, 0, 0, 0, 0xef]);
394
- writer.writeVarIntNum(this.inputs.length);
395
- for (const i of this.inputs) {
396
- if (typeof i.sourceTransaction === 'undefined') {
397
- throw new Error('All inputs must have source transactions when serializing to EF format');
398
- }
399
- writer.write(i.sourceTransaction.hash());
400
- writer.writeUInt32LE(i.sourceOutputIndex);
401
- const scriptBin = i.unlockingScript.toBinary();
402
- writer.writeVarIntNum(scriptBin.length);
403
- writer.write(scriptBin);
404
- writer.writeUInt32LE(i.sequence);
405
- writer.writeUInt64LE(i.sourceTransaction.outputs[i.sourceOutputIndex].satoshis);
406
- const lockingScriptBin = i.sourceTransaction.outputs[i.sourceOutputIndex].lockingScript.toBinary();
407
- writer.writeVarIntNum(lockingScriptBin.length);
408
- writer.write(lockingScriptBin);
409
- }
410
- writer.writeVarIntNum(this.outputs.length);
411
- for (const o of this.outputs) {
412
- writer.writeUInt64LE(o.satoshis);
413
- const scriptBin = o.lockingScript.toBinary();
414
- writer.writeVarIntNum(scriptBin.length);
415
- writer.write(scriptBin);
416
- }
417
- writer.writeUInt32LE(this.lockTime);
418
- return writer.toArray();
419
- }
420
- /**
421
- * Converts the transaction to a hexadecimal string EF.
422
- *
423
- * @returns {string} - The hexadecimal string representation of the transaction EF.
424
- */
425
- toHexEF() {
426
- return (0, utils_js_1.toHex)(this.toEF());
427
- }
428
- /**
429
- * Converts the transaction to a hexadecimal string format.
430
- *
431
- * @returns {string} - The hexadecimal string representation of the transaction.
432
- */
433
- toHex() {
434
- return (0, utils_js_1.toHex)(this.toBinary());
435
- }
436
- /**
437
- * Converts the transaction to a hexadecimal string BEEF.
438
- *
439
- * @returns {string} - The hexadecimal string representation of the transaction BEEF.
440
- */
441
- toHexBEEF() {
442
- return (0, utils_js_1.toHex)(this.toBEEF());
443
- }
444
- /**
445
- * Calculates the transaction's hash.
446
- *
447
- * @param {'hex' | undefined} enc - The encoding to use for the hash. If 'hex', returns a hexadecimal string; otherwise returns a binary array.
448
- * @returns {string | number[]} - The hash of the transaction in the specified format.
449
- */
450
- hash(enc) {
451
- let hash;
452
- if (this.cachedHash) {
453
- hash = this.cachedHash;
454
- }
455
- else {
456
- hash = (0, Hash_js_1.hash256)(this.toBinary());
457
- this.cachedHash = hash;
458
- }
459
- if (enc === 'hex') {
460
- return (0, utils_js_1.toHex)(hash);
461
- }
462
- else {
463
- return hash;
464
- }
465
- }
466
- /**
467
- * Calculates the transaction's ID.
468
- *
469
- * @param {'hex' | undefined} enc - The encoding to use for the ID. If 'hex', returns a hexadecimal string; otherwise returns a binary array.
470
- * @returns {string | number[]} - The ID of the transaction in the specified format.
471
- */
472
- id(enc) {
473
- const id = [...this.hash()];
474
- id.reverse();
475
- if (enc === 'hex') {
476
- return (0, utils_js_1.toHex)(id);
477
- }
478
- return id;
479
- }
480
- /**
481
- * Verifies the legitimacy of the Bitcoin transaction according to the rules of SPV by ensuring all the input transactions link back to valid block headers, the chain of spends for all inputs are valid, and the sum of inputs is not less than the sum of outputs.
482
- *
483
- * @param chainTracker - An instance of ChainTracker, a Bitcoin block header tracker. If the value is set to 'scripts only', headers will not be verified.
484
- *
485
- * @returns Whether the transaction is valid according to the rules of SPV.
486
- */
487
- async verify(chainTracker) {
488
- // If the transaction has a valid merkle path, verification is complete.
489
- if (typeof this.merklePath === 'object' && chainTracker !== 'scripts only') {
490
- const proofValid = await this.merklePath.verify(this.id('hex'), chainTracker);
491
- // Note that if the proof is provided but not valid, the transaction could still be verified by proving all inputs (if they are available) and checking the associated spends.
492
- if (proofValid) {
493
- return true;
494
- }
495
- }
496
- // Verify each input transaction and evaluate the spend events.
497
- // Also, keep a total of the input amounts for later.
498
- let inputTotal = 0;
499
- for (let i = 0; i < this.inputs.length; i++) {
500
- const input = this.inputs[i];
501
- if (typeof input.sourceTransaction !== 'object') {
502
- throw new Error(`Verification failed because the input at index ${i} of transaction ${this.id('hex')} is missing an associated source transaction. This source transaction is required for transaction verification because there is no merkle proof for the transaction spending a UTXO it contains.`);
503
- }
504
- if (typeof input.unlockingScript !== 'object') {
505
- throw new Error(`Verification failed because the input at index ${i} of transaction ${this.id('hex')} is missing an associated unlocking script. This script is required for transaction verification because there is no merkle proof for the transaction spending the UTXO.`);
506
- }
507
- const sourceOutput = input.sourceTransaction.outputs[input.sourceOutputIndex];
508
- inputTotal += sourceOutput.satoshis;
509
- const inputVerified = await input.sourceTransaction.verify(chainTracker);
510
- if (!inputVerified) {
511
- return false;
512
- }
513
- const otherInputs = [...this.inputs];
514
- otherInputs.splice(i, 1);
515
- const spend = new Spend_js_1.default({
516
- sourceTXID: input.sourceTransaction.id('hex'),
517
- sourceOutputIndex: input.sourceOutputIndex,
518
- lockingScript: sourceOutput.lockingScript,
519
- sourceSatoshis: sourceOutput.satoshis,
520
- transactionVersion: this.version,
521
- otherInputs,
522
- unlockingScript: input.unlockingScript,
523
- inputSequence: input.sequence,
524
- inputIndex: i,
525
- outputs: this.outputs,
526
- lockTime: this.lockTime
527
- });
528
- const spendValid = spend.validate();
529
- if (!spendValid) {
530
- return false;
531
- }
532
- }
533
- // Total the outputs to ensure they don't amount to more than the inputs
534
- let outputTotal = 0;
535
- for (const out of this.outputs) {
536
- if (typeof out.satoshis !== 'number') {
537
- throw new Error('Every output must have a defined amount during transaction verification.');
538
- }
539
- outputTotal += out.satoshis;
540
- }
541
- return outputTotal <= inputTotal;
542
- }
543
- /**
544
- * Serializes this transaction, together with its inputs and the respective merkle proofs, into the BEEF (BRC-62) format. This enables efficient verification of its compliance with the rules of SPV.
545
- *
546
- * @returns The serialized BEEF structure
547
- */
548
- toBEEF() {
549
- const writer = new utils_js_1.Writer();
550
- writer.writeUInt32LE(4022206465);
551
- const BUMPs = [];
552
- const txs = [];
553
- // Recursive function to add paths and input transactions for a TX
554
- const addPathsAndInputs = (tx) => {
555
- const obj = { tx };
556
- const hasProof = typeof tx.merklePath === 'object';
557
- if (hasProof) {
558
- let added = false;
559
- // If this proof is identical to another one previously added, we use that first. Otherwise, we try to merge it with proofs from the same block.
560
- for (let i = 0; i < BUMPs.length; i++) {
561
- if (BUMPs[i] === tx.merklePath) { // Literally the same
562
- obj.pathIndex = i;
563
- added = true;
564
- break;
565
- }
566
- if (BUMPs[i].blockHeight === tx.merklePath.blockHeight) {
567
- // Probably the same...
568
- const rootA = BUMPs[i].computeRoot();
569
- const rootB = tx.merklePath.computeRoot();
570
- if (rootA === rootB) {
571
- // Definitely the same... combine them to save space
572
- BUMPs[i].combine(tx.merklePath);
573
- obj.pathIndex = i;
574
- added = true;
575
- break;
576
- }
577
- }
578
- }
579
- // Finally, if the proof is not yet added, add a new path.
580
- if (!added) {
581
- obj.pathIndex = BUMPs.length;
582
- BUMPs.push(tx.merklePath);
583
- }
584
- }
585
- txs.unshift(obj);
586
- if (!hasProof) {
587
- for (let i = 0; i < tx.inputs.length; i++) {
588
- const input = tx.inputs[i];
589
- if (typeof input.sourceTransaction !== 'object') {
590
- throw new Error('A required source transaction is missing!');
591
- }
592
- addPathsAndInputs(input.sourceTransaction);
593
- }
594
- }
595
- };
596
- addPathsAndInputs(this);
597
- writer.writeVarIntNum(BUMPs.length);
598
- for (const b of BUMPs) {
599
- writer.write(b.toBinary());
600
- }
601
- writer.writeVarIntNum(txs.length);
602
- for (const t of txs) {
603
- writer.write(t.tx.toBinary());
604
- if (typeof t.pathIndex === 'number') {
605
- writer.writeUInt8(1);
606
- writer.writeVarIntNum(t.pathIndex);
607
- }
608
- else {
609
- writer.writeUInt8(0);
610
- }
611
- }
612
- return writer.toArray();
613
- }
614
- }
615
- exports.default = Transaction;
616
- //# sourceMappingURL=Transaction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../../../src/transaction/Transaction.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=TransactionInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TransactionInput.js","sourceRoot":"","sources":["../../../../src/transaction/TransactionInput.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=TransactionOutput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TransactionOutput.js","sourceRoot":"","sources":["../../../../src/transaction/TransactionOutput.ts"],"names":[],"mappings":""}