@bsv/wallet-toolbox-mobile 1.5.21 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (438) hide show
  1. package/out/src/CWIStyleWalletManager.js +1 -1
  2. package/out/src/CWIStyleWalletManager.js.map +1 -1
  3. package/out/src/Setup.d.ts +267 -0
  4. package/out/src/Setup.d.ts.map +1 -0
  5. package/out/src/Setup.js +408 -0
  6. package/out/src/Setup.js.map +1 -0
  7. package/out/src/SetupClient.d.ts +9 -5
  8. package/out/src/SetupClient.d.ts.map +1 -1
  9. package/out/src/SetupClient.js +21 -15
  10. package/out/src/SetupClient.js.map +1 -1
  11. package/out/src/SetupWallet.d.ts +9 -6
  12. package/out/src/SetupWallet.d.ts.map +1 -1
  13. package/out/src/Wallet.d.ts +19 -15
  14. package/out/src/Wallet.d.ts.map +1 -1
  15. package/out/src/Wallet.js +59 -90
  16. package/out/src/Wallet.js.map +1 -1
  17. package/out/src/index.client.d.ts +11 -10
  18. package/out/src/index.client.d.ts.map +1 -1
  19. package/out/src/index.client.js +11 -10
  20. package/out/src/index.client.js.map +1 -1
  21. package/out/src/index.mobile.d.ts +11 -10
  22. package/out/src/index.mobile.d.ts.map +1 -1
  23. package/out/src/index.mobile.js +11 -10
  24. package/out/src/index.mobile.js.map +1 -1
  25. package/out/src/monitor/Monitor.d.ts +14 -12
  26. package/out/src/monitor/Monitor.d.ts.map +1 -1
  27. package/out/src/monitor/Monitor.js +11 -43
  28. package/out/src/monitor/Monitor.js.map +1 -1
  29. package/out/src/monitor/tasks/TaskCheckForProofs.js +3 -2
  30. package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
  31. package/out/src/monitor/tasks/TaskNewHeader.d.ts +16 -1
  32. package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
  33. package/out/src/monitor/tasks/TaskNewHeader.js +22 -1
  34. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  35. package/out/src/monitor/tasks/TaskSendWaiting.d.ts +1 -1
  36. package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
  37. package/out/src/monitor/tasks/TaskSendWaiting.js +5 -5
  38. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  39. package/out/src/sdk/WalletServices.interfaces.d.ts +1 -1
  40. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  41. package/out/src/sdk/validationHelpers.d.ts +4 -5
  42. package/out/src/sdk/validationHelpers.d.ts.map +1 -1
  43. package/out/src/sdk/validationHelpers.js +47 -47
  44. package/out/src/sdk/validationHelpers.js.map +1 -1
  45. package/out/src/services/Services.d.ts +25 -24
  46. package/out/src/services/Services.d.ts.map +1 -1
  47. package/out/src/services/Services.js +38 -35
  48. package/out/src/services/Services.js.map +1 -1
  49. package/out/src/services/chaintracker/BHServiceClient.d.ts +11 -6
  50. package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
  51. package/out/src/services/chaintracker/BHServiceClient.js +14 -3
  52. package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
  53. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +2 -2
  54. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  55. package/out/src/services/chaintracker/ChaintracksChainTracker.js +6 -4
  56. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  57. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts +2 -45
  58. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
  59. package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
  60. package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.d.ts +75 -0
  61. package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.d.ts.map +1 -0
  62. package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.js +3 -0
  63. package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.js.map +1 -0
  64. package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts +81 -0
  65. package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts.map +1 -0
  66. package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.js +3 -0
  67. package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.js.map +1 -0
  68. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts +54 -0
  69. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts.map +1 -0
  70. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.js +3 -0
  71. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.js.map +1 -0
  72. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +163 -0
  73. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -0
  74. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.js +3 -0
  75. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.js.map +1 -0
  76. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +8 -0
  77. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +1 -0
  78. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.js +3 -0
  79. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.js.map +1 -0
  80. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.d.ts +55 -0
  81. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.d.ts.map +1 -0
  82. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.js +3 -0
  83. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.js.map +1 -0
  84. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +317 -0
  85. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +1 -0
  86. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.js +3 -0
  87. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.js.map +1 -0
  88. package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.d.ts +19 -0
  89. package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.d.ts.map +1 -0
  90. package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.js +3 -0
  91. package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.js.map +1 -0
  92. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +100 -0
  93. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -0
  94. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +515 -0
  95. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -0
  96. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts +30 -0
  97. package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -0
  98. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +149 -0
  99. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -0
  100. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +11 -9
  101. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
  102. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +26 -15
  103. package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
  104. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts +60 -0
  105. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -0
  106. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +119 -0
  107. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -0
  108. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts +76 -0
  109. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -0
  110. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +115 -0
  111. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -0
  112. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts +13 -0
  113. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +1 -0
  114. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js +20 -0
  115. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +1 -0
  116. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts +62 -0
  117. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -0
  118. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +60 -0
  119. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -0
  120. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts +23 -0
  121. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +1 -0
  122. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js +57 -0
  123. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -0
  124. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts +61 -0
  125. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -0
  126. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +40 -0
  127. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -0
  128. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts +51 -0
  129. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -0
  130. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +68 -0
  131. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -0
  132. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts +16 -0
  133. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +1 -0
  134. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js +53 -0
  135. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -0
  136. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +171 -0
  137. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -0
  138. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +502 -0
  139. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -0
  140. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +88 -0
  141. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -0
  142. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +119 -0
  143. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -0
  144. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts +22 -0
  145. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -0
  146. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +67 -0
  147. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -0
  148. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +68 -0
  149. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -0
  150. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +253 -0
  151. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -0
  152. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +41 -0
  153. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -0
  154. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +325 -0
  155. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -0
  156. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts +4 -0
  157. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -0
  158. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +24 -0
  159. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -0
  160. package/out/src/services/chaintracker/chaintracks/index.client.d.ts +31 -0
  161. package/out/src/services/chaintracker/chaintracks/index.client.d.ts.map +1 -0
  162. package/out/src/services/chaintracker/chaintracks/index.client.js +69 -0
  163. package/out/src/services/chaintracker/chaintracks/index.client.js.map +1 -0
  164. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +142 -0
  165. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -0
  166. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +814 -0
  167. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -0
  168. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts +78 -0
  169. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -0
  170. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +261 -0
  171. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -0
  172. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +129 -0
  173. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -0
  174. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +145 -0
  175. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -0
  176. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +10 -0
  177. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -0
  178. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +47 -0
  179. package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -0
  180. package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts +72 -0
  181. package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -0
  182. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js +119 -0
  183. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -0
  184. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +14 -0
  185. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -0
  186. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +88 -0
  187. package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -0
  188. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +41 -22
  189. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  190. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +125 -72
  191. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  192. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts +5 -0
  193. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -0
  194. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +385 -0
  195. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -0
  196. package/out/src/services/chaintracker/index.client.d.ts +4 -0
  197. package/out/src/services/chaintracker/index.client.d.ts.map +1 -0
  198. package/out/src/services/chaintracker/{index.js → index.client.js} +2 -2
  199. package/out/src/services/chaintracker/index.client.js.map +1 -0
  200. package/out/src/services/createDefaultWalletServicesOptions.d.ts +5 -4
  201. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  202. package/out/src/services/createDefaultWalletServicesOptions.js +4 -4
  203. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  204. package/out/src/services/providers/ARC.d.ts +3 -3
  205. package/out/src/services/providers/ARC.d.ts.map +1 -1
  206. package/out/src/services/providers/ARC.js +4 -3
  207. package/out/src/services/providers/ARC.js.map +1 -1
  208. package/out/src/services/providers/Bitails.d.ts +7 -6
  209. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  210. package/out/src/services/providers/Bitails.js +7 -5
  211. package/out/src/services/providers/Bitails.js.map +1 -1
  212. package/out/src/services/providers/WhatsOnChain.d.ts +76 -17
  213. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  214. package/out/src/services/providers/WhatsOnChain.js +241 -143
  215. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  216. package/out/src/services/providers/{echangeRates.d.ts → exchangeRates.d.ts} +4 -4
  217. package/out/src/services/providers/exchangeRates.d.ts.map +1 -0
  218. package/out/src/services/providers/{echangeRates.js → exchangeRates.js} +9 -9
  219. package/out/src/services/providers/exchangeRates.js.map +1 -0
  220. package/out/src/signer/WalletSigner.d.ts +3 -3
  221. package/out/src/signer/WalletSigner.d.ts.map +1 -1
  222. package/out/src/signer/WalletSigner.js.map +1 -1
  223. package/out/src/signer/methods/acquireDirectCertificate.d.ts +4 -2
  224. package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +1 -1
  225. package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
  226. package/out/src/signer/methods/buildSignableTransaction.d.ts +9 -3
  227. package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
  228. package/out/src/signer/methods/buildSignableTransaction.js +27 -11
  229. package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
  230. package/out/src/signer/methods/completeSignedTransaction.d.ts.map +1 -1
  231. package/out/src/signer/methods/completeSignedTransaction.js +15 -13
  232. package/out/src/signer/methods/completeSignedTransaction.js.map +1 -1
  233. package/out/src/signer/methods/createAction.d.ts +5 -9
  234. package/out/src/signer/methods/createAction.d.ts.map +1 -1
  235. package/out/src/signer/methods/createAction.js +6 -22
  236. package/out/src/signer/methods/createAction.js.map +1 -1
  237. package/out/src/signer/methods/internalizeAction.d.ts +3 -2
  238. package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
  239. package/out/src/signer/methods/internalizeAction.js +9 -8
  240. package/out/src/signer/methods/internalizeAction.js.map +1 -1
  241. package/out/src/signer/methods/proveCertificate.d.ts +4 -2
  242. package/out/src/signer/methods/proveCertificate.d.ts.map +1 -1
  243. package/out/src/signer/methods/proveCertificate.js +2 -2
  244. package/out/src/signer/methods/proveCertificate.js.map +1 -1
  245. package/out/src/signer/methods/signAction.d.ts +3 -3
  246. package/out/src/signer/methods/signAction.d.ts.map +1 -1
  247. package/out/src/signer/methods/signAction.js +5 -5
  248. package/out/src/signer/methods/signAction.js.map +1 -1
  249. package/out/src/storage/StorageIdb.d.ts +106 -104
  250. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  251. package/out/src/storage/StorageIdb.js +27 -60
  252. package/out/src/storage/StorageIdb.js.map +1 -1
  253. package/out/src/storage/StorageKnex.d.ts +179 -0
  254. package/out/src/storage/StorageKnex.d.ts.map +1 -0
  255. package/out/src/storage/StorageKnex.js +1215 -0
  256. package/out/src/storage/StorageKnex.js.map +1 -0
  257. package/out/src/storage/StorageProvider.d.ts +56 -47
  258. package/out/src/storage/StorageProvider.d.ts.map +1 -1
  259. package/out/src/storage/StorageProvider.js +44 -40
  260. package/out/src/storage/StorageProvider.js.map +1 -1
  261. package/out/src/storage/StorageReaderWriter.d.ts +78 -64
  262. package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
  263. package/out/src/storage/StorageReaderWriter.js +2 -2
  264. package/out/src/storage/StorageReaderWriter.js.map +1 -1
  265. package/out/src/storage/methods/ListActionsSpecOp.d.ts +6 -4
  266. package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
  267. package/out/src/storage/methods/ListActionsSpecOp.js +3 -3
  268. package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
  269. package/out/src/storage/methods/ListOutputsSpecOp.d.ts +6 -5
  270. package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
  271. package/out/src/storage/methods/ListOutputsSpecOp.js +11 -9
  272. package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
  273. package/out/src/storage/methods/createAction.d.ts +6 -4
  274. package/out/src/storage/methods/createAction.d.ts.map +1 -1
  275. package/out/src/storage/methods/createAction.js +67 -43
  276. package/out/src/storage/methods/createAction.js.map +1 -1
  277. package/out/src/storage/methods/generateChange.d.ts +2 -2
  278. package/out/src/storage/methods/generateChange.d.ts.map +1 -1
  279. package/out/src/storage/methods/generateChange.js +27 -24
  280. package/out/src/storage/methods/generateChange.js.map +1 -1
  281. package/out/src/storage/methods/getBeefForTransaction.d.ts +3 -2
  282. package/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -1
  283. package/out/src/storage/methods/getBeefForTransaction.js +10 -8
  284. package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
  285. package/out/src/storage/methods/getSyncChunk.d.ts +2 -2
  286. package/out/src/storage/methods/getSyncChunk.d.ts.map +1 -1
  287. package/out/src/storage/methods/getSyncChunk.js +6 -5
  288. package/out/src/storage/methods/getSyncChunk.js.map +1 -1
  289. package/out/src/storage/methods/internalizeAction.d.ts +3 -2
  290. package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
  291. package/out/src/storage/methods/internalizeAction.js +21 -19
  292. package/out/src/storage/methods/internalizeAction.js.map +1 -1
  293. package/out/src/storage/methods/listActionsIdb.d.ts +3 -2
  294. package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
  295. package/out/src/storage/methods/listActionsIdb.js +5 -5
  296. package/out/src/storage/methods/listActionsIdb.js.map +1 -1
  297. package/out/src/storage/methods/listActionsKnex.d.ts +6 -0
  298. package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -0
  299. package/out/src/storage/methods/listActionsKnex.js +198 -0
  300. package/out/src/storage/methods/listActionsKnex.js.map +1 -0
  301. package/out/src/storage/methods/listOutputsIdb.d.ts +3 -2
  302. package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
  303. package/out/src/storage/methods/listOutputsIdb.js +6 -5
  304. package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
  305. package/out/src/storage/methods/listOutputsKnex.d.ts +6 -0
  306. package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -0
  307. package/out/src/storage/methods/listOutputsKnex.js +241 -0
  308. package/out/src/storage/methods/listOutputsKnex.js.map +1 -0
  309. package/out/src/storage/methods/processAction.d.ts +6 -3
  310. package/out/src/storage/methods/processAction.d.ts.map +1 -1
  311. package/out/src/storage/methods/processAction.js +45 -40
  312. package/out/src/storage/methods/processAction.js.map +1 -1
  313. package/out/src/storage/methods/purgeData.d.ts +4 -0
  314. package/out/src/storage/methods/purgeData.d.ts.map +1 -0
  315. package/out/src/storage/methods/purgeData.js +207 -0
  316. package/out/src/storage/methods/purgeData.js.map +1 -0
  317. package/out/src/storage/methods/purgeDataIdb.d.ts +2 -2
  318. package/out/src/storage/methods/purgeDataIdb.d.ts.map +1 -1
  319. package/out/src/storage/methods/purgeDataIdb.js.map +1 -1
  320. package/out/src/storage/methods/reviewStatus.d.ts +20 -0
  321. package/out/src/storage/methods/reviewStatus.d.ts.map +1 -0
  322. package/out/src/storage/methods/reviewStatus.js +84 -0
  323. package/out/src/storage/methods/reviewStatus.js.map +1 -0
  324. package/out/src/storage/methods/utils.js +2 -2
  325. package/out/src/storage/methods/utils.js.map +1 -1
  326. package/out/src/storage/remoting/StorageClient.d.ts +35 -25
  327. package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
  328. package/out/src/storage/remoting/StorageClient.js +3 -3
  329. package/out/src/storage/remoting/StorageClient.js.map +1 -1
  330. package/out/src/storage/remoting/StorageMobile.d.ts +35 -25
  331. package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
  332. package/out/src/storage/remoting/StorageMobile.js +3 -3
  333. package/out/src/storage/remoting/StorageMobile.js.map +1 -1
  334. package/out/src/storage/schema/KnexMigrations.d.ts +39 -0
  335. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -0
  336. package/out/src/storage/schema/KnexMigrations.js +410 -0
  337. package/out/src/storage/schema/KnexMigrations.js.map +1 -0
  338. package/out/src/storage/schema/entities/EntityBase.d.ts +4 -3
  339. package/out/src/storage/schema/entities/EntityBase.d.ts.map +1 -1
  340. package/out/src/storage/schema/entities/EntityBase.js.map +1 -1
  341. package/out/src/storage/schema/entities/EntityCertificate.d.ts +6 -5
  342. package/out/src/storage/schema/entities/EntityCertificate.d.ts.map +1 -1
  343. package/out/src/storage/schema/entities/EntityCertificate.js +5 -5
  344. package/out/src/storage/schema/entities/EntityCertificate.js.map +1 -1
  345. package/out/src/storage/schema/entities/EntityCertificateField.d.ts +6 -5
  346. package/out/src/storage/schema/entities/EntityCertificateField.d.ts.map +1 -1
  347. package/out/src/storage/schema/entities/EntityCertificateField.js +6 -5
  348. package/out/src/storage/schema/entities/EntityCertificateField.js.map +1 -1
  349. package/out/src/storage/schema/entities/EntityCommission.d.ts +6 -5
  350. package/out/src/storage/schema/entities/EntityCommission.d.ts.map +1 -1
  351. package/out/src/storage/schema/entities/EntityCommission.js +6 -6
  352. package/out/src/storage/schema/entities/EntityCommission.js.map +1 -1
  353. package/out/src/storage/schema/entities/EntityOutput.d.ts +8 -7
  354. package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
  355. package/out/src/storage/schema/entities/EntityOutput.js +6 -6
  356. package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
  357. package/out/src/storage/schema/entities/EntityOutputBasket.d.ts +6 -5
  358. package/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +1 -1
  359. package/out/src/storage/schema/entities/EntityOutputBasket.js +6 -6
  360. package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
  361. package/out/src/storage/schema/entities/EntityOutputTag.d.ts +6 -5
  362. package/out/src/storage/schema/entities/EntityOutputTag.d.ts.map +1 -1
  363. package/out/src/storage/schema/entities/EntityOutputTag.js +5 -5
  364. package/out/src/storage/schema/entities/EntityOutputTag.js.map +1 -1
  365. package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts +6 -5
  366. package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts.map +1 -1
  367. package/out/src/storage/schema/entities/EntityOutputTagMap.js +8 -7
  368. package/out/src/storage/schema/entities/EntityOutputTagMap.js.map +1 -1
  369. package/out/src/storage/schema/entities/EntityProvenTx.d.ts +10 -7
  370. package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
  371. package/out/src/storage/schema/entities/EntityProvenTx.js +14 -12
  372. package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
  373. package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts +22 -18
  374. package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts.map +1 -1
  375. package/out/src/storage/schema/entities/EntityProvenTxReq.js +17 -15
  376. package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
  377. package/out/src/storage/schema/entities/EntitySyncState.d.ts +13 -11
  378. package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -1
  379. package/out/src/storage/schema/entities/EntitySyncState.js +39 -24
  380. package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
  381. package/out/src/storage/schema/entities/EntityTransaction.d.ts +13 -9
  382. package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +1 -1
  383. package/out/src/storage/schema/entities/EntityTransaction.js +13 -13
  384. package/out/src/storage/schema/entities/EntityTransaction.js.map +1 -1
  385. package/out/src/storage/schema/entities/EntityTxLabel.d.ts +6 -5
  386. package/out/src/storage/schema/entities/EntityTxLabel.d.ts.map +1 -1
  387. package/out/src/storage/schema/entities/EntityTxLabel.js +5 -5
  388. package/out/src/storage/schema/entities/EntityTxLabel.js.map +1 -1
  389. package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts +6 -5
  390. package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts.map +1 -1
  391. package/out/src/storage/schema/entities/EntityTxLabelMap.js +8 -7
  392. package/out/src/storage/schema/entities/EntityTxLabelMap.js.map +1 -1
  393. package/out/src/storage/schema/entities/EntityUser.d.ts +6 -5
  394. package/out/src/storage/schema/entities/EntityUser.d.ts.map +1 -1
  395. package/out/src/storage/schema/entities/EntityUser.js +8 -7
  396. package/out/src/storage/schema/entities/EntityUser.js.map +1 -1
  397. package/out/src/storage/schema/entities/MergeEntity.d.ts +6 -5
  398. package/out/src/storage/schema/entities/MergeEntity.d.ts.map +1 -1
  399. package/out/src/storage/schema/entities/MergeEntity.js +6 -5
  400. package/out/src/storage/schema/entities/MergeEntity.js.map +1 -1
  401. package/out/src/utility/ReaderUint8Array.d.ts +28 -0
  402. package/out/src/utility/ReaderUint8Array.d.ts.map +1 -0
  403. package/out/src/utility/ReaderUint8Array.js +166 -0
  404. package/out/src/utility/ReaderUint8Array.js.map +1 -0
  405. package/out/src/utility/ScriptTemplateBRC29.d.ts.map +1 -1
  406. package/out/src/utility/ScriptTemplateBRC29.js +4 -4
  407. package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
  408. package/out/src/utility/utilityHelpers.d.ts +11 -4
  409. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  410. package/out/src/utility/utilityHelpers.js +30 -9
  411. package/out/src/utility/utilityHelpers.js.map +1 -1
  412. package/out/src/utility/utilityHelpers.noBuffer.d.ts +22 -5
  413. package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
  414. package/out/src/utility/utilityHelpers.noBuffer.js +50 -9
  415. package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
  416. package/out/test/utils/TestUtilsWalletStorage.d.ts +522 -0
  417. package/out/test/utils/TestUtilsWalletStorage.d.ts.map +1 -0
  418. package/out/test/utils/TestUtilsWalletStorage.js +1956 -0
  419. package/out/test/utils/TestUtilsWalletStorage.js.map +1 -0
  420. package/out/tsconfig.mobile.tsbuildinfo +1 -1
  421. package/package.json +2 -2
  422. package/out/src/services/chaintracker/chaintracks/index.d.ts +0 -3
  423. package/out/src/services/chaintracker/chaintracks/index.d.ts.map +0 -1
  424. package/out/src/services/chaintracker/chaintracks/index.js +0 -19
  425. package/out/src/services/chaintracker/chaintracks/index.js.map +0 -1
  426. package/out/src/services/chaintracker/index.d.ts +0 -4
  427. package/out/src/services/chaintracker/index.d.ts.map +0 -1
  428. package/out/src/services/chaintracker/index.js.map +0 -1
  429. package/out/src/services/index.d.ts +0 -2
  430. package/out/src/services/index.d.ts.map +0 -1
  431. package/out/src/services/index.js +0 -18
  432. package/out/src/services/index.js.map +0 -1
  433. package/out/src/services/providers/echangeRates.d.ts.map +0 -1
  434. package/out/src/services/providers/echangeRates.js.map +0 -1
  435. package/out/src/utility/utilityHelpers.buffer.d.ts +0 -18
  436. package/out/src/utility/utilityHelpers.buffer.d.ts.map +0 -1
  437. package/out/src/utility/utilityHelpers.buffer.js +0 -45
  438. package/out/src/utility/utilityHelpers.buffer.js.map +0 -1
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BulkHeaderFiles = exports.BulkHeaderFileStorage = exports.BulkHeaderFileFs = exports.BulkHeaderFile = void 0;
4
+ const HeightRange_1 = require("./HeightRange");
5
+ const sdk_1 = require("@bsv/sdk");
6
+ const WERR_errors_1 = require("../../../../sdk/WERR_errors");
7
+ const utilityHelpers_noBuffer_1 = require("../../../../utility/utilityHelpers.noBuffer");
8
+ class BulkHeaderFile {
9
+ constructor(info) {
10
+ this.chain = info.chain;
11
+ this.count = info.count;
12
+ this.data = info.data;
13
+ this.fileHash = info.fileHash;
14
+ this.fileId = info.fileId;
15
+ this.fileName = info.fileName;
16
+ this.firstHeight = info.firstHeight;
17
+ this.lastChainWork = info.lastChainWork;
18
+ this.lastHash = info.lastHash;
19
+ this.prevChainWork = info.prevChainWork;
20
+ this.prevHash = info.prevHash;
21
+ this.sourceUrl = info.sourceUrl;
22
+ this.validated = info.validated;
23
+ }
24
+ get heightRange() {
25
+ return new HeightRange_1.HeightRange(this.firstHeight, this.firstHeight + this.count - 1);
26
+ }
27
+ async ensureData() {
28
+ if (!this.data)
29
+ throw new WERR_errors_1.WERR_INVALID_OPERATION(`data is undefined and no ensureData() override`);
30
+ return this.data;
31
+ }
32
+ /**
33
+ * Whenever reloading data from a backing store, validated fileHash must be re-verified
34
+ * @returns the sha256 hash of the file's data as base64 string.
35
+ */
36
+ async computeFileHash() {
37
+ if (!this.data)
38
+ throw new WERR_errors_1.WERR_INVALID_OPERATION(`requires defined data`);
39
+ return (0, utilityHelpers_noBuffer_1.asString)(sdk_1.Hash.sha256((0, utilityHelpers_noBuffer_1.asArray)(this.data)), 'base64');
40
+ }
41
+ async releaseData() {
42
+ this.data = undefined;
43
+ }
44
+ toCdnInfo() {
45
+ return {
46
+ count: this.count,
47
+ fileHash: this.fileHash,
48
+ fileName: this.fileName,
49
+ firstHeight: this.firstHeight,
50
+ lastChainWork: this.lastChainWork,
51
+ lastHash: this.lastHash,
52
+ prevChainWork: this.prevChainWork,
53
+ prevHash: this.prevHash
54
+ };
55
+ }
56
+ toStorageInfo() {
57
+ return {
58
+ count: this.count,
59
+ fileHash: this.fileHash,
60
+ fileName: this.fileName,
61
+ firstHeight: this.firstHeight,
62
+ lastChainWork: this.lastChainWork,
63
+ lastHash: this.lastHash,
64
+ prevChainWork: this.prevChainWork,
65
+ prevHash: this.prevHash,
66
+ chain: this.chain,
67
+ validated: this.validated,
68
+ sourceUrl: this.sourceUrl,
69
+ fileId: this.fileId
70
+ };
71
+ }
72
+ }
73
+ exports.BulkHeaderFile = BulkHeaderFile;
74
+ class BulkHeaderFileFs extends BulkHeaderFile {
75
+ constructor(info, fs, rootFolder) {
76
+ super(info);
77
+ this.fs = fs;
78
+ this.rootFolder = rootFolder;
79
+ }
80
+ async readDataFromFile(length, offset) {
81
+ if (this.data) {
82
+ return this.data.slice(offset, offset + length);
83
+ }
84
+ const f = await this.fs.openReadableFile(this.fs.pathJoin(this.rootFolder, this.fileName));
85
+ try {
86
+ const buffer = await f.read(length, offset);
87
+ return buffer;
88
+ }
89
+ finally {
90
+ await f.close();
91
+ }
92
+ }
93
+ async ensureData() {
94
+ if (this.data)
95
+ return this.data;
96
+ this.data = await this.readDataFromFile(this.count * 80, 0);
97
+ if (!this.data)
98
+ throw new WERR_errors_1.WERR_INVALID_OPERATION(`failed to read data for ${this.fileName}`);
99
+ if (this.validated) {
100
+ const hash = await this.computeFileHash();
101
+ if (hash !== this.fileHash)
102
+ throw new WERR_errors_1.WERR_INVALID_OPERATION(`BACKING FILE DATA CORRUPTION: invalid fileHash for ${this.fileName}`);
103
+ }
104
+ return this.data;
105
+ }
106
+ }
107
+ exports.BulkHeaderFileFs = BulkHeaderFileFs;
108
+ class BulkHeaderFileStorage extends BulkHeaderFile {
109
+ constructor(info, storage, fetch) {
110
+ super(info);
111
+ this.storage = storage;
112
+ this.fetch = fetch;
113
+ }
114
+ async readDataFromFile(length, offset) {
115
+ return (await this.ensureData()).slice(offset, offset + length);
116
+ }
117
+ async ensureData() {
118
+ if (this.data)
119
+ return this.data;
120
+ if (!this.sourceUrl) {
121
+ throw new WERR_errors_1.WERR_INVALID_PARAMETER('sourceUrl', 'defined. Or data must be defined.');
122
+ }
123
+ const url = this.fetch.pathJoin(this.sourceUrl, this.fileName);
124
+ this.data = await this.fetch.download(url);
125
+ if (!this.data)
126
+ throw new WERR_errors_1.WERR_INVALID_OPERATION(`failed to download data from ${url}`);
127
+ if (this.validated) {
128
+ const hash = await this.computeFileHash();
129
+ if (hash !== this.fileHash)
130
+ throw new WERR_errors_1.WERR_INVALID_OPERATION(`BACKING DOWNLOAD DATA CORRUPTION: invalid fileHash for ${this.fileName}`);
131
+ }
132
+ return this.data;
133
+ }
134
+ }
135
+ exports.BulkHeaderFileStorage = BulkHeaderFileStorage;
136
+ class BulkHeaderFiles {
137
+ constructor(rootFolder, jsonFilename, files, headersPerFile) {
138
+ this.rootFolder = rootFolder;
139
+ this.jsonFilename = jsonFilename;
140
+ this.files = files;
141
+ this.headersPerFile = headersPerFile;
142
+ }
143
+ }
144
+ exports.BulkHeaderFiles = BulkHeaderFiles;
145
+ //# sourceMappingURL=BulkHeaderFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BulkHeaderFile.js","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/util/BulkHeaderFile.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAI3C,kCAA+B;AAE/B,6DAA4F;AAC5F,yFAA+E;AA2D/E,MAAsB,cAAc;IAelC,YAAY,IAAwB;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;IACjC,CAAC;IAID,IAAI,WAAW;QACb,OAAO,IAAI,yBAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IAC7E,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,oCAAsB,CAAC,gDAAgD,CAAC,CAAA;QAClG,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,oCAAsB,CAAC,uBAAuB,CAAC,CAAA;QACzE,OAAO,IAAA,kCAAQ,EAAC,UAAI,CAAC,MAAM,CAAC,IAAA,iCAAO,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACvB,CAAC;IAED,SAAS;QACP,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAA;IACH,CAAC;IAED,aAAa;QACX,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAA;IACH,CAAC;CACF;AApFD,wCAoFC;AAED,MAAa,gBAAiB,SAAQ,cAAc;IAClD,YACE,IAAwB,EACjB,EAAoB,EACpB,UAAkB;QAEzB,KAAK,CAAC,IAAI,CAAC,CAAA;QAHJ,OAAE,GAAF,EAAE,CAAkB;QACpB,eAAU,GAAV,UAAU,CAAQ;IAG3B,CAAC;IAEQ,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,MAAc;QAC5D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;QACjD,CAAC;QACD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC1F,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC3C,OAAO,MAAM,CAAA;QACf,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;QACjB,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,UAAU;QACvB,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAA;QAC/B,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;QAC3D,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,oCAAsB,CAAC,2BAA2B,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5F,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;YACzC,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ;gBACxB,MAAM,IAAI,oCAAsB,CAAC,sDAAsD,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC3G,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;CACF;AAjCD,4CAiCC;AAED,MAAa,qBAAsB,SAAQ,cAAc;IACvD,YACE,IAAwB,EACjB,OAA+B,EAC/B,KAA0B;QAEjC,KAAK,CAAC,IAAI,CAAC,CAAA;QAHJ,YAAO,GAAP,OAAO,CAAwB;QAC/B,UAAK,GAAL,KAAK,CAAqB;IAGnC,CAAC;IAEQ,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,MAAc;QAC5D,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;IACjE,CAAC;IAEQ,KAAK,CAAC,UAAU;QACvB,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAA;QAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,oCAAsB,CAAC,WAAW,EAAE,mCAAmC,CAAC,CAAA;QACpF,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC/D,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC1C,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,oCAAsB,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAA;QACvF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;YACzC,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ;gBACxB,MAAM,IAAI,oCAAsB,CAAC,0DAA0D,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC/G,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;CACF;AA5BD,sDA4BC;AAwBD,MAAsB,eAAe;IACnC,YACS,UAAkB,EAClB,YAAoB,EACpB,KAA2B,EAC3B,cAAsB;QAHtB,eAAU,GAAV,UAAU,CAAQ;QAClB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,UAAK,GAAL,KAAK,CAAsB;QAC3B,mBAAc,GAAd,cAAc,CAAQ;IAC5B,CAAC;CACL;AAPD,0CAOC"}
@@ -0,0 +1,10 @@
1
+ import { HttpClient } from '@bsv/sdk';
2
+ import { ChaintracksFetchApi } from '../Api/ChaintracksFetchApi';
3
+ export declare class ChaintracksFetch implements ChaintracksFetchApi {
4
+ httpClient: HttpClient;
5
+ constructor();
6
+ download(url: string): Promise<Uint8Array>;
7
+ fetchJson<R>(url: string): Promise<R>;
8
+ pathJoin(baseUrl: string, subpath: string): string;
9
+ }
10
+ //# sourceMappingURL=ChaintracksFetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChaintracksFetch.d.ts","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/util/ChaintracksFetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,UAAU,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,qBAAa,gBAAiB,YAAW,mBAAmB;IAC1D,UAAU,EAAE,UAAU,CAAsB;;IAItC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiB1C,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAe3C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;CAQnD"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChaintracksFetch = void 0;
4
+ const sdk_1 = require("@bsv/sdk");
5
+ class ChaintracksFetch {
6
+ constructor() {
7
+ this.httpClient = (0, sdk_1.defaultHttpClient)();
8
+ }
9
+ async download(url) {
10
+ const response = await fetch(url, {
11
+ method: 'GET',
12
+ headers: {
13
+ 'Content-Type': 'application/octet-stream'
14
+ }
15
+ });
16
+ if (!response.ok) {
17
+ throw new Error(`Failed to download from ${url}: ${response.statusText}`);
18
+ }
19
+ const data = await response.arrayBuffer();
20
+ return new Uint8Array(data);
21
+ }
22
+ async fetchJson(url) {
23
+ const requestJsonOptions = {
24
+ method: 'GET',
25
+ headers: {
26
+ Accept: 'application/json'
27
+ }
28
+ };
29
+ const response = await fetch(url, requestJsonOptions);
30
+ if (!response.ok) {
31
+ throw new Error(`Failed to fetch JSON from ${url}: ${response.statusText}`);
32
+ }
33
+ const json = (await response.json());
34
+ return json;
35
+ }
36
+ pathJoin(baseUrl, subpath) {
37
+ // Ensure the subpath doesn't start with a slash to avoid issues
38
+ const cleanSubpath = subpath.replace(/^\/+/, '');
39
+ if (!baseUrl.endsWith('/'))
40
+ baseUrl += '/';
41
+ // Create a new URL object and append the subpath
42
+ const url = new URL(cleanSubpath, baseUrl);
43
+ return url.toString();
44
+ }
45
+ }
46
+ exports.ChaintracksFetch = ChaintracksFetch;
47
+ //# sourceMappingURL=ChaintracksFetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChaintracksFetch.js","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/util/ChaintracksFetch.ts"],"names":[],"mappings":";;;AAAA,kCAAwD;AAGxD,MAAa,gBAAgB;IAG3B;QAFA,eAAU,GAAe,IAAA,uBAAiB,GAAE,CAAA;IAE7B,CAAC;IAEhB,KAAK,CAAC,QAAQ,CAAC,GAAW;QACxB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,0BAA0B;aAC3C;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;QAC3E,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAA;QAEzC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,SAAS,CAAI,GAAW;QAC5B,MAAM,kBAAkB,GAAG;YACzB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;aAC3B;SACF,CAAA;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAA;QACrD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;QAC7E,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAA;QACzC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ,CAAC,OAAe,EAAE,OAAe;QACvC,gEAAgE;QAChE,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAChD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,GAAG,CAAA;QAC1C,iDAAiD;QACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;QAC1C,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;IACvB,CAAC;CACF;AA7CD,4CA6CC"}
@@ -0,0 +1,72 @@
1
+ import { BlockHeader } from '../../../../sdk/WalletServices.interfaces';
2
+ export interface HeightRangeApi {
3
+ minHeight: number;
4
+ maxHeight: number;
5
+ }
6
+ export interface HeightRanges {
7
+ bulk: HeightRange;
8
+ live: HeightRange;
9
+ }
10
+ export declare class HeightRange implements HeightRangeApi {
11
+ minHeight: number;
12
+ maxHeight: number;
13
+ constructor(minHeight: number, maxHeight: number);
14
+ static readonly empty: HeightRange;
15
+ /**
16
+ * @param headers
17
+ * @returns range of height values from the given headers, or the empty range if there are no headers.
18
+ */
19
+ static from(headers: BlockHeader[]): HeightRange;
20
+ get length(): number;
21
+ get isEmpty(): boolean;
22
+ toString(): string;
23
+ /**
24
+ * @param range HeightRange or single height value.
25
+ * @returns true if `range` is entirely within this range.
26
+ */
27
+ contains(range: HeightRange | number): boolean;
28
+ /**
29
+ * Return the intersection with another height range.
30
+ *
31
+ * Intersection with an empty range is always empty.
32
+ *
33
+ * The result is always a single, possibly empty, range.
34
+ * @param range
35
+ * @returns
36
+ */
37
+ intersect(range: HeightRange): HeightRange;
38
+ /**
39
+ * Return the union with another height range.
40
+ *
41
+ * Only valid if the two ranges overlap or touch, or one is empty.
42
+ *
43
+ * Throws an error if the union would create two disjoint ranges.
44
+ *
45
+ * @param range
46
+ * @returns
47
+ */
48
+ union(range: HeightRange): HeightRange;
49
+ /**
50
+ * Returns `range` subtracted from this range.
51
+ *
52
+ * Throws an error if the subtraction would create two disjoint ranges.
53
+ *
54
+ * @param range
55
+ * @returns
56
+ */
57
+ subtract(range: HeightRange): HeightRange;
58
+ /**
59
+ * If `range` is not empty and this is not empty, returns a new range minHeight
60
+ * replaced by to range.maxHeight + 1.
61
+ *
62
+ * Otherwise returns a copy of this range.
63
+ *
64
+ * This returns the portion of this range that is strictly above `range`.
65
+ */
66
+ above(range: HeightRange): HeightRange;
67
+ /**
68
+ * Return a copy of this range.
69
+ */
70
+ copy(): HeightRange;
71
+ }
72
+ //# sourceMappingURL=HeightRange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeightRange.d.ts","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/util/HeightRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAA;AAEvE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,qBAAa,WAAY,YAAW,cAAc;IAEvC,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;gBADjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM;IAG1B,MAAM,CAAC,QAAQ,CAAC,KAAK,cAAyB;IAE9C;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,WAAW;IAOhD,IAAI,MAAM,WAET;IAED,IAAI,OAAO,YAEV;IAED,QAAQ,IAAI,MAAM;IAIlB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAOpC;;;;;;;;OAQG;IACH,SAAS,CAAC,KAAK,EAAE,WAAW;IAI5B;;;;;;;;;OASG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW;IAQxB;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW;IAmB3B;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW;IAKxB;;OAEG;IACH,IAAI,IAAI,WAAW;CAGpB"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HeightRange = void 0;
4
+ class HeightRange {
5
+ constructor(minHeight, maxHeight) {
6
+ this.minHeight = minHeight;
7
+ this.maxHeight = maxHeight;
8
+ }
9
+ /**
10
+ * @param headers
11
+ * @returns range of height values from the given headers, or the empty range if there are no headers.
12
+ */
13
+ static from(headers) {
14
+ if (headers.length === 0)
15
+ return HeightRange.empty;
16
+ const minHeight = headers.reduce((min, h) => Math.min(min, h.height), headers[0].height);
17
+ const maxHeight = headers.reduce((max, h) => Math.max(max, h.height), headers[0].height);
18
+ return new HeightRange(minHeight, maxHeight);
19
+ }
20
+ get length() {
21
+ return Math.max(0, this.maxHeight - this.minHeight + 1);
22
+ }
23
+ get isEmpty() {
24
+ return this.minHeight > this.maxHeight;
25
+ }
26
+ toString() {
27
+ return this.isEmpty ? '<empty>' : `${this.minHeight}-${this.maxHeight}`;
28
+ }
29
+ /**
30
+ * @param range HeightRange or single height value.
31
+ * @returns true if `range` is entirely within this range.
32
+ */
33
+ contains(range) {
34
+ if (typeof range === 'number') {
35
+ return this.minHeight <= range && this.maxHeight >= range;
36
+ }
37
+ return this.minHeight <= range.minHeight && this.maxHeight >= range.maxHeight;
38
+ }
39
+ /**
40
+ * Return the intersection with another height range.
41
+ *
42
+ * Intersection with an empty range is always empty.
43
+ *
44
+ * The result is always a single, possibly empty, range.
45
+ * @param range
46
+ * @returns
47
+ */
48
+ intersect(range) {
49
+ return new HeightRange(Math.max(this.minHeight, range.minHeight), Math.min(this.maxHeight, range.maxHeight));
50
+ }
51
+ /**
52
+ * Return the union with another height range.
53
+ *
54
+ * Only valid if the two ranges overlap or touch, or one is empty.
55
+ *
56
+ * Throws an error if the union would create two disjoint ranges.
57
+ *
58
+ * @param range
59
+ * @returns
60
+ */
61
+ union(range) {
62
+ if (this.isEmpty)
63
+ return range.copy();
64
+ if (range.isEmpty)
65
+ return this.copy();
66
+ if (this.maxHeight + 1 < range.minHeight || range.maxHeight + 1 < this.minHeight)
67
+ throw new Error('Union of ranges with a gap between them is not supported.');
68
+ return new HeightRange(Math.min(this.minHeight, range.minHeight), Math.max(this.maxHeight, range.maxHeight));
69
+ }
70
+ /**
71
+ * Returns `range` subtracted from this range.
72
+ *
73
+ * Throws an error if the subtraction would create two disjoint ranges.
74
+ *
75
+ * @param range
76
+ * @returns
77
+ */
78
+ subtract(range) {
79
+ if (this.isEmpty || range.isEmpty)
80
+ return this.copy();
81
+ if (this.minHeight < range.minHeight && this.maxHeight > range.maxHeight)
82
+ throw new Error('Subtraction of range that creates two disjoint ranges is not supported.');
83
+ if (range.maxHeight < this.minHeight || range.minHeight > this.maxHeight)
84
+ // Leave untouched. Subtracted is either all lower or all higher.
85
+ return this.copy();
86
+ if (range.minHeight <= this.minHeight && range.maxHeight < this.maxHeight)
87
+ // Remove a chunk on the low side.
88
+ return new HeightRange(range.maxHeight + 1, this.maxHeight);
89
+ if (range.minHeight <= this.minHeight && range.maxHeight >= this.maxHeight)
90
+ // Remove the whole thing
91
+ return new HeightRange(this.minHeight, this.minHeight - 1); // empty
92
+ if (range.minHeight <= this.maxHeight && range.maxHeight >= this.maxHeight)
93
+ // Remove a chunk on the high side.
94
+ return new HeightRange(this.minHeight, range.minHeight - 1);
95
+ throw new Error('All cases should have been handled :-) .');
96
+ }
97
+ /**
98
+ * If `range` is not empty and this is not empty, returns a new range minHeight
99
+ * replaced by to range.maxHeight + 1.
100
+ *
101
+ * Otherwise returns a copy of this range.
102
+ *
103
+ * This returns the portion of this range that is strictly above `range`.
104
+ */
105
+ above(range) {
106
+ if (range.isEmpty || this.isEmpty)
107
+ return this.copy();
108
+ return new HeightRange(range.maxHeight + 1, this.maxHeight);
109
+ }
110
+ /**
111
+ * Return a copy of this range.
112
+ */
113
+ copy() {
114
+ return new HeightRange(this.minHeight, this.maxHeight);
115
+ }
116
+ }
117
+ exports.HeightRange = HeightRange;
118
+ HeightRange.empty = new HeightRange(0, -1);
119
+ //# sourceMappingURL=HeightRange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeightRange.js","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/util/HeightRange.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * A reader-writer lock to manage concurrent access.
3
+ * Allows multiple readers or one writer at a time.
4
+ */
5
+ export declare class SingleWriterMultiReaderLock {
6
+ private readers;
7
+ private writerActive;
8
+ private readerQueue;
9
+ private writerQueue;
10
+ private checkQueues;
11
+ withReadLock<T>(fn: () => Promise<T>): Promise<T>;
12
+ withWriteLock<T>(fn: () => Promise<T>): Promise<T>;
13
+ }
14
+ //# sourceMappingURL=SingleWriterMultiReaderLock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SingleWriterMultiReaderLock.d.ts","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,WAAW,CAAwB;IAE3C,OAAO,CAAC,WAAW;IAeb,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA0BjD,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAwBzD"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SingleWriterMultiReaderLock = void 0;
4
+ /**
5
+ * A reader-writer lock to manage concurrent access.
6
+ * Allows multiple readers or one writer at a time.
7
+ */
8
+ class SingleWriterMultiReaderLock {
9
+ constructor() {
10
+ this.readers = 0;
11
+ this.writerActive = false;
12
+ this.readerQueue = [];
13
+ this.writerQueue = [];
14
+ }
15
+ checkQueues() {
16
+ if (this.writerActive || this.readers > 0)
17
+ return;
18
+ if (this.writerQueue.length > 0) {
19
+ // If there are waiting writers and no active readers or writers, start the next writer
20
+ const resolve = this.writerQueue.shift();
21
+ resolve();
22
+ }
23
+ else if (this.readerQueue.length > 0) {
24
+ // If there are waiting readers and no waiting writers, start all readers
25
+ const readers = this.readerQueue.splice(0);
26
+ for (const resolve of readers) {
27
+ resolve();
28
+ }
29
+ }
30
+ }
31
+ async withReadLock(fn) {
32
+ if (!this.writerActive && this.writerQueue.length === 0) {
33
+ // Fast path: no active writer or waiting writers, proceed immediately
34
+ this.readers++;
35
+ try {
36
+ return await fn();
37
+ }
38
+ finally {
39
+ this.readers--;
40
+ this.checkQueues();
41
+ }
42
+ }
43
+ else {
44
+ // Queue the reader until writers are done
45
+ const promise = new Promise(resolve => {
46
+ this.readerQueue.push(resolve);
47
+ });
48
+ await promise;
49
+ this.readers++;
50
+ try {
51
+ return await fn();
52
+ }
53
+ finally {
54
+ this.readers--;
55
+ this.checkQueues();
56
+ }
57
+ }
58
+ }
59
+ async withWriteLock(fn) {
60
+ if (!this.writerActive && this.readers === 0) {
61
+ // Fast path: no active writer or readers, proceed immediately
62
+ this.writerActive = true;
63
+ try {
64
+ return await fn();
65
+ }
66
+ finally {
67
+ this.writerActive = false;
68
+ this.checkQueues();
69
+ }
70
+ }
71
+ else {
72
+ const promise = new Promise(resolve => {
73
+ this.writerQueue.push(resolve);
74
+ });
75
+ await promise;
76
+ this.writerActive = true;
77
+ try {
78
+ return await fn();
79
+ }
80
+ finally {
81
+ this.writerActive = false;
82
+ this.checkQueues();
83
+ }
84
+ }
85
+ }
86
+ }
87
+ exports.SingleWriterMultiReaderLock = SingleWriterMultiReaderLock;
88
+ //# sourceMappingURL=SingleWriterMultiReaderLock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SingleWriterMultiReaderLock.js","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,2BAA2B;IAAxC;QACU,YAAO,GAAW,CAAC,CAAA;QACnB,iBAAY,GAAY,KAAK,CAAA;QAC7B,gBAAW,GAAsB,EAAE,CAAA;QACnC,gBAAW,GAAsB,EAAE,CAAA;IAmE7C,CAAC;IAjES,WAAW;QACjB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC;YAAE,OAAM;QACjD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,uFAAuF;YACvF,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAG,CAAA;YACzC,OAAO,EAAE,CAAA;QACX,CAAC;aAAM,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,yEAAyE;YACzE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YAC1C,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;gBAC9B,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAI,EAAoB;QACxC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxD,sEAAsE;YACtE,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,EAAE,CAAA;YACnB,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,IAAI,CAAC,WAAW,EAAE,CAAA;YACpB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,0CAA0C;YAC1C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gBAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAChC,CAAC,CAAC,CAAA;YACF,MAAM,OAAO,CAAA;YACb,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,EAAE,CAAA;YACnB,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,IAAI,CAAC,WAAW,EAAE,CAAA;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAI,EAAoB;QACzC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YAC7C,8DAA8D;YAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;YACxB,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,EAAE,CAAA;YACnB,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;gBACzB,IAAI,CAAC,WAAW,EAAE,CAAA;YACpB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gBAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAChC,CAAC,CAAC,CAAA;YACF,MAAM,OAAO,CAAA;YACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;YACxB,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,EAAE,CAAA;YACnB,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;gBACzB,IAAI,CAAC,WAAW,EAAE,CAAA;YACpB,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAvED,kEAuEC"}
@@ -1,12 +1,28 @@
1
1
  import { BigNumber } from '@bsv/sdk';
2
- import { BaseBlockHeader, BlockHeader } from '../Api/BlockHeaderApi';
3
2
  import { Chain } from '../../../../sdk/types';
3
+ import { ChaintracksFsApi } from '../Api/ChaintracksFsApi';
4
+ import { BulkHeaderFileInfo } from './BulkHeaderFile';
5
+ import { ChaintracksFetchApi } from '../Api/ChaintracksFetchApi';
6
+ import { BaseBlockHeader, BlockHeader } from '../../../../sdk/WalletServices.interfaces';
4
7
  /**
5
8
  * Computes sha256 hash of file contents read as bytes with no encoding.
6
9
  * @param filepath Full filepath to file.
7
- * @param bufferSize Optional read buffer size to use. Defaults to 80,000 bytes.
10
+ * @param bufferSize Optional read buffer size to use. Defaults to 80,000 bytes. Currently ignored.
8
11
  * @returns `{hash, length}` where `hash` is base64 string form of file hash and `length` is file length in bytes.
9
12
  */
13
+ export declare function sha256HashOfBinaryFile(fs: ChaintracksFsApi, filepath: string, bufferSize?: number): Promise<{
14
+ hash: string;
15
+ length: number;
16
+ }>;
17
+ /**
18
+ * Validates the contents of a bulk header file.
19
+ * @param bf BulkHeaderFileInfo containing `data` to validate.
20
+ * @param prevHash Required previous header hash.
21
+ * @param prevChainWork Required previous chain work.
22
+ * @param fetch Optional ChaintracksFetchApi instance for fetching data.
23
+ * @returns Validated BulkHeaderFileInfo with `validated` set to true.
24
+ */
25
+ export declare function validateBulkFileData(bf: BulkHeaderFileInfo, prevHash: string, prevChainWork: string, fetch?: ChaintracksFetchApi): Promise<BulkHeaderFileInfo>;
10
26
  /**
11
27
  * Validate headers contained in an array of bytes. The headers must be consecutive block headers, 80 bytes long,
12
28
  * where the hash of each header equals the previousHash of the following header.
@@ -16,7 +32,16 @@ import { Chain } from '../../../../sdk/types';
16
32
  * @param count Optional number of headers to validate. Validates to end of buffer if missing.
17
33
  * @returns Header hash of last header validated or previousHash if there where none.
18
34
  */
19
- export declare function validateBufferOfHeaders(buffer: number[], previousHash: string, offset?: number, count?: number): string;
35
+ export declare function validateBufferOfHeaders(buffer: Uint8Array, previousHash: string, offset?: number, count?: number, previousChainWork?: string): {
36
+ lastHeaderHash: string;
37
+ lastChainWork: string | undefined;
38
+ };
39
+ /**
40
+ * Verifies that buffer begins with valid genesis block header for the specified chain.
41
+ * @param buffer
42
+ * @param chain
43
+ */
44
+ export declare function validateGenesisHeader(buffer: Uint8Array, chain: Chain): void;
20
45
  /**
21
46
  * @param work chainWork as a BigNumber
22
47
  * @returns Converted chainWork value from BN to hex string of 32 bytes.
@@ -48,16 +73,8 @@ export declare function convertBitsToTarget(bits: number | number[]): BigNumber;
48
73
  * @returns 32 byte Buffer with "chainWork" value
49
74
  */
50
75
  export declare function convertBitsToWork(bits: number | number[]): string;
51
- export declare function deserializeBaseBlockHeaders(buffer: number[], offset?: number, count?: number | undefined): BaseBlockHeader[];
52
- export declare function deserializeBlockHeaders(firstHeight: number, buffer: number[], offset?: number, count?: number | undefined): BlockHeader[];
53
- /**
54
- * Extract an array of block hashes and of merkleRoots from a buffer of serialized block headers.
55
- * @param buffer
56
- */
57
- export declare function extractHashesAndRoots(buffer: Buffer): {
58
- hashes: Buffer[];
59
- merkleRoots: Buffer[];
60
- };
76
+ export declare function deserializeBaseBlockHeaders(buffer: number[] | Uint8Array, offset?: number, count?: number | undefined): BaseBlockHeader[];
77
+ export declare function deserializeBlockHeaders(firstHeight: number, buffer: number[] | Uint8Array, offset?: number, count?: number | undefined): BlockHeader[];
61
78
  /**
62
79
  * Given a block header, ensures that its format is correct. This does not
63
80
  * check its difficulty or validity relative to the chain of headers.
@@ -88,7 +105,7 @@ export declare function validateHeaderDifficulty(hash: Buffer, bits: number): bo
88
105
  * @returns doule sha256 hash of header bytes reversed
89
106
  * @publicbody
90
107
  */
91
- export declare function blockHash(header: BaseBlockHeader | number[]): string;
108
+ export declare function blockHash(header: BaseBlockHeader | number[] | Uint8Array): string;
92
109
  /**
93
110
  * Serializes a block header as an 80 byte Buffer.
94
111
  * The exact serialized format is defined in the Bitcoin White Paper
@@ -97,12 +114,14 @@ export declare function blockHash(header: BaseBlockHeader | number[]): string;
97
114
  * @returns 80 byte Buffer
98
115
  * @publicbody
99
116
  */
100
- export declare function serializeBlockHeader(header: BaseBlockHeader, buffer?: number[], offset?: number): number[];
117
+ export declare function serializeBaseBlockHeader(header: BaseBlockHeader, buffer?: number[], offset?: number): number[];
118
+ export declare function serializeBaseBlockHeaders(headers: BlockHeader[]): Uint8Array;
101
119
  /**
102
- * Deserialize a block header from an 80 byte buffer
120
+ * Deserialize a BaseBlockHeader from an 80 byte buffer
103
121
  * @publicbody
104
122
  */
105
- export declare function deserializeBlockHeader(buffer: number[], offset?: number): BaseBlockHeader;
123
+ export declare function deserializeBaseBlockHeader(buffer: number[] | Uint8Array, offset?: number): BaseBlockHeader;
124
+ export declare function deserializeBlockHeader(buffer: number[] | Uint8Array, offset: number | undefined, height: number): BlockHeader;
106
125
  /**
107
126
  * Returns the genesis block for the specified chain.
108
127
  * @publicbody
@@ -126,15 +145,15 @@ export declare function swapByteOrder(buffer: number[]): number[];
126
145
  * @publicbody
127
146
  */
128
147
  export declare function convertUint32ToBuffer(n: number, littleEndian?: boolean): number[];
129
- export declare function writeUInt32LE(n: number, a: number[], offset: number): number;
130
- export declare function writeUInt32BE(n: number, a: number[], offset: number): number;
131
- export declare function readUInt32LE(a: number[], offset: number): number;
132
- export declare function readUInt32BE(a: number[], offset: number): number;
148
+ export declare function writeUInt32LE(n: number, a: number[] | Uint8Array, offset: number): number;
149
+ export declare function writeUInt32BE(n: number, a: number[] | Uint8Array, offset: number): number;
150
+ export declare function readUInt32LE(a: number[] | Uint8Array, offset: number): number;
151
+ export declare function readUInt32BE(a: number[] | Uint8Array, offset: number): number;
133
152
  /**
134
153
  * @param buffer four byte buffer with Uint32 number encoded
135
154
  * @param littleEndian true for little-endian byte order in Buffer
136
155
  * @returns a number value in the Uint32 value range
137
156
  * @publicbody
138
157
  */
139
- export declare function convertBufferToUint32(buffer: number[], littleEndian?: boolean): number;
158
+ export declare function convertBufferToUint32(buffer: number[] | Uint8Array, littleEndian?: boolean): number;
140
159
  //# sourceMappingURL=blockHeaderUtilities.d.ts.map