@bsv/wallet-toolbox 1.6.4 → 1.6.5

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 (240) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/docs/client.md +402 -313
  3. package/docs/monitor.md +4 -4
  4. package/docs/services.md +118 -133
  5. package/docs/wallet.md +402 -313
  6. package/mobile/out/src/monitor/Monitor.d.ts +3 -3
  7. package/mobile/out/src/monitor/Monitor.d.ts.map +1 -1
  8. package/mobile/out/src/monitor/Monitor.js.map +1 -1
  9. package/mobile/out/src/sdk/WalletServices.interfaces.d.ts +88 -2
  10. package/mobile/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  11. package/mobile/out/src/services/Services.js +1 -1
  12. package/mobile/out/src/services/Services.js.map +1 -1
  13. package/mobile/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +3 -3
  14. package/mobile/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  15. package/mobile/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  16. package/mobile/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.d.ts +1 -6
  17. package/mobile/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.d.ts.map +1 -1
  18. package/mobile/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts +1 -1
  19. package/mobile/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts.map +1 -1
  20. package/mobile/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts +2 -2
  21. package/mobile/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts.map +1 -1
  22. package/mobile/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +33 -16
  23. package/mobile/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +1 -1
  24. package/mobile/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.d.ts +1 -1
  25. package/mobile/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.d.ts.map +1 -1
  26. package/mobile/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +1 -1
  27. package/mobile/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  28. package/mobile/out/src/services/chaintracker/chaintracks/Chaintracks.js +15 -11
  29. package/mobile/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  30. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts +2 -2
  31. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -1
  32. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +4 -4
  33. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
  34. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +1 -1
  35. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  36. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
  37. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +2 -3
  38. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  39. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts +2 -1
  40. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -1
  41. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +3 -1
  42. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
  43. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +1 -1
  44. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
  45. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +2 -2
  46. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  47. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +4 -5
  48. package/mobile/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  49. package/mobile/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts +2 -1
  50. package/mobile/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -1
  51. package/mobile/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +2 -1
  52. package/mobile/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
  53. package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +7 -7
  54. package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
  55. package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +42 -5
  56. package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  57. package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +3 -7
  58. package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  59. package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +63 -130
  60. package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  61. package/mobile/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +2 -1
  62. package/mobile/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  63. package/mobile/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +19 -7
  64. package/mobile/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  65. package/mobile/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts +1 -1
  66. package/mobile/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
  67. package/mobile/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
  68. package/mobile/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +2 -2
  69. package/mobile/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
  70. package/mobile/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +2 -2
  71. package/mobile/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  72. package/mobile/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -1
  73. package/mobile/out/src/services/chaintracker/chaintracks/util/HeightRange.js +4 -1
  74. package/mobile/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
  75. package/mobile/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
  76. package/mobile/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +26 -11
  77. package/mobile/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  78. package/mobile/out/src/services/createDefaultWalletServicesOptions.d.ts +2 -1
  79. package/mobile/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  80. package/mobile/out/src/services/createDefaultWalletServicesOptions.js +19 -17
  81. package/mobile/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  82. package/mobile/package-lock.json +2 -2
  83. package/mobile/package.json +1 -1
  84. package/out/src/monitor/Monitor.d.ts +3 -3
  85. package/out/src/monitor/Monitor.d.ts.map +1 -1
  86. package/out/src/monitor/Monitor.js.map +1 -1
  87. package/out/src/sdk/WalletServices.interfaces.d.ts +88 -2
  88. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  89. package/out/src/services/Services.js +1 -1
  90. package/out/src/services/Services.js.map +1 -1
  91. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +3 -3
  92. package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
  93. package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
  94. package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.d.ts +1 -6
  95. package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.d.ts.map +1 -1
  96. package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts +1 -1
  97. package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts.map +1 -1
  98. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts +2 -2
  99. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts.map +1 -1
  100. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +33 -16
  101. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +1 -1
  102. package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.d.ts +1 -1
  103. package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.d.ts.map +1 -1
  104. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +1 -1
  105. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  106. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +15 -11
  107. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  108. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts +2 -2
  109. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -1
  110. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +4 -4
  111. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
  112. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +1 -1
  113. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
  114. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
  115. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +2 -3
  116. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
  117. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +1 -1
  118. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js +1 -1
  119. package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -1
  120. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts +2 -1
  121. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -1
  122. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +3 -1
  123. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
  124. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +1 -1
  125. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
  126. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +1 -1
  127. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js +3 -3
  128. package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -1
  129. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +2 -2
  130. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  131. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +4 -5
  132. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  133. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.js +1 -1
  134. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.js.map +1 -1
  135. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.js +1 -1
  136. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.js.map +1 -1
  137. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts +2 -1
  138. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -1
  139. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +2 -1
  140. package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
  141. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts.map +1 -1
  142. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js +4 -3
  143. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
  144. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +7 -7
  145. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
  146. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +42 -5
  147. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
  148. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +91 -0
  149. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -0
  150. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +448 -0
  151. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -0
  152. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts +3 -29
  153. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
  154. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +61 -137
  155. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
  156. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +3 -7
  157. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  158. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +63 -130
  159. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  160. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.d.ts +2 -0
  161. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.d.ts.map +1 -0
  162. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.js +81 -0
  163. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.js.map +1 -0
  164. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js +12 -1
  165. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js.map +1 -1
  166. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.d.ts +2 -0
  167. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.d.ts.map +1 -0
  168. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.js +50 -0
  169. package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.js.map +1 -0
  170. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts +12 -0
  171. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -0
  172. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +83 -0
  173. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -0
  174. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +2 -1
  175. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
  176. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +19 -7
  177. package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
  178. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts +1 -1
  179. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
  180. package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
  181. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +2 -2
  182. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
  183. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +2 -2
  184. package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
  185. package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -1
  186. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js +4 -1
  187. package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
  188. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
  189. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +26 -11
  190. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  191. package/out/src/services/createDefaultWalletServicesOptions.d.ts +2 -1
  192. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  193. package/out/src/services/createDefaultWalletServicesOptions.js +19 -17
  194. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  195. package/out/src/services/providers/__tests/exchangeRates.test.d.ts +2 -0
  196. package/out/src/services/providers/__tests/exchangeRates.test.d.ts.map +1 -0
  197. package/out/src/services/providers/__tests/exchangeRates.test.js +19 -0
  198. package/out/src/services/providers/__tests/exchangeRates.test.js.map +1 -0
  199. package/out/test/Wallet/support/operations.man.test.js +1 -1
  200. package/out/test/Wallet/support/operations.man.test.js.map +1 -1
  201. package/out/tsconfig.all.tsbuildinfo +1 -1
  202. package/package.json +1 -1
  203. package/src/monitor/Monitor.ts +3 -3
  204. package/src/sdk/WalletServices.interfaces.ts +88 -1
  205. package/src/services/Services.ts +1 -1
  206. package/src/services/chaintracker/ChaintracksChainTracker.ts +3 -2
  207. package/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.ts +1 -7
  208. package/src/services/chaintracker/chaintracks/Api/BulkStorageApi.ts +1 -1
  209. package/src/services/chaintracker/chaintracks/Api/ChaintracksApi.ts +2 -2
  210. package/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.ts +39 -14
  211. package/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.ts +1 -1
  212. package/src/services/chaintracker/chaintracks/Chaintracks.ts +16 -11
  213. package/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.ts +4 -5
  214. package/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.ts +1 -1
  215. package/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.ts +2 -3
  216. package/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.ts +1 -0
  217. package/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.ts +3 -1
  218. package/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.ts +1 -1
  219. package/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.ts +10 -3
  220. package/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.ts +6 -4
  221. package/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.ts +1 -1
  222. package/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.ts +1 -1
  223. package/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.ts +2 -1
  224. package/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.ts +4 -3
  225. package/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.ts +60 -11
  226. package/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.ts +557 -0
  227. package/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.ts +80 -179
  228. package/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.ts +63 -133
  229. package/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.ts +102 -0
  230. package/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.ts +14 -1
  231. package/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.ts +61 -0
  232. package/src/services/chaintracker/chaintracks/createIdbChaintracks.ts +111 -0
  233. package/src/services/chaintracker/chaintracks/util/BulkFileDataManager.ts +20 -11
  234. package/src/services/chaintracker/chaintracks/util/BulkFilesReader.ts +1 -1
  235. package/src/services/chaintracker/chaintracks/util/BulkHeaderFile.ts +3 -3
  236. package/src/services/chaintracker/chaintracks/util/HeightRange.ts +4 -1
  237. package/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.ts +26 -11
  238. package/src/services/createDefaultWalletServicesOptions.ts +25 -18
  239. package/src/services/providers/__tests/exchangeRates.test.ts +18 -0
  240. package/test/Wallet/support/operations.man.test.ts +1 -1
@@ -65,13 +65,14 @@ export class ChaintracksKnexMigrations implements MigrationSource<string> {
65
65
  table.integer('bits').unsigned().notNullable
66
66
  table.integer('nonce').unsigned().notNullable
67
67
 
68
- table.index(['hash'])
68
+ table.unique(['hash'])
69
+ table.index(['previousHeaderId'])
70
+ table.index(['height'])
69
71
  table.index(['previousHash'])
72
+ table.index(['merkleRoot'])
70
73
  table.index(['isChainTip'])
71
- table.index(['previousHeaderId'])
72
74
  table.index(['isActive'])
73
75
  table.index(['isActive', 'isChainTip'])
74
- table.index(['height'])
75
76
  })
76
77
 
77
78
  await knex.schema.createTable(bulkFilesTableName, table => {
@@ -5,10 +5,20 @@ import {
5
5
  ChaintracksStorageIngestApi,
6
6
  ChaintracksStorageQueryApi
7
7
  } from '../Api/ChaintracksStorageApi'
8
- import { BlockHeader, LiveBlockHeader } from '../Api/BlockHeaderApi'
8
+ import { BaseBlockHeader, BlockHeader, LiveBlockHeader } from '../Api/BlockHeaderApi'
9
9
  import { HeightRange } from '../util/HeightRange'
10
- import { addWork, convertBitsToWork, isMoreWork, subWork } from '../util/blockHeaderUtilities'
10
+ import {
11
+ addWork,
12
+ convertBitsToWork,
13
+ deserializeBaseBlockHeaders,
14
+ isMoreWork,
15
+ serializeBaseBlockHeaders,
16
+ subWork
17
+ } from '../util/blockHeaderUtilities'
11
18
  import { BulkFileDataManager } from '../util/BulkFileDataManager'
19
+ import { BulkFilesReaderStorage } from '../util/BulkFilesReader'
20
+ import { asArray } from '../../../../utility/utilityHelpers.noBuffer'
21
+ import { deserialize } from 'v8'
12
22
 
13
23
  /**
14
24
  * Required interface methods of a Chaintracks Storage Engine implementation.
@@ -26,6 +36,8 @@ export abstract class ChaintracksStorageBase implements ChaintracksStorageQueryA
26
36
  return options
27
37
  }
28
38
 
39
+ log: (...args: any[]) => void = () => {}
40
+
29
41
  chain: Chain
30
42
  liveHeightThreshold: number
31
43
  reorgHeightThreshold: number
@@ -45,7 +57,6 @@ export abstract class ChaintracksStorageBase implements ChaintracksStorageQueryA
45
57
  this.bulkManager =
46
58
  options.bulkFileDataManager || new BulkFileDataManager(BulkFileDataManager.createDefaultOptions(this.chain))
47
59
  }
48
-
49
60
  async shutdown(): Promise<void> {
50
61
  /* base class does notning */
51
62
  }
@@ -74,11 +85,11 @@ export abstract class ChaintracksStorageBase implements ChaintracksStorageQueryA
74
85
  abstract findLiveHeaderForHeaderId(headerId: number): Promise<LiveBlockHeader>
75
86
  abstract findLiveHeaderForHeight(height: number): Promise<LiveBlockHeader | null>
76
87
  abstract findLiveHeaderForMerkleRoot(merkleRoot: string): Promise<LiveBlockHeader | null>
77
- abstract findLiveHeightRange(): Promise<{ minHeight: number; maxHeight: number }>
88
+ abstract findLiveHeightRange(): Promise<HeightRange>
78
89
  abstract findMaxHeaderId(): Promise<number>
79
- abstract getLiveHeightRange(): Promise<HeightRange>
80
90
  abstract liveHeadersForBulk(count: number): Promise<LiveBlockHeader[]>
81
- abstract getHeaders(height: number, count: number): Promise<number[]>
91
+ abstract getLiveHeaders(range: HeightRange): Promise<LiveBlockHeader[]>
92
+
82
93
  /**
83
94
  * @param header Header to attempt to add to live storage.
84
95
  * @returns details of conditions found attempting to insert header
@@ -88,6 +99,44 @@ export abstract class ChaintracksStorageBase implements ChaintracksStorageQueryA
88
99
 
89
100
  // BASE CLASS IMPLEMENTATIONS - MAY BE OVERRIDEN
90
101
 
102
+ async getBulkHeaders(range: HeightRange): Promise<Uint8Array> {
103
+ if (range.isEmpty) return new Uint8Array()
104
+
105
+ const fetch = this.bulkManager.fetch
106
+ const reader = await BulkFilesReaderStorage.fromStorage(this, fetch, range, range.length * 80)
107
+ const data = await reader.read()
108
+ if (!data) return new Uint8Array()
109
+ return data
110
+ }
111
+
112
+ async getHeadersUint8Array(height: number, count: number): Promise<Uint8Array> {
113
+ if (count <= 0) return new Uint8Array()
114
+ const ranges = await this.getAvailableHeightRanges()
115
+ const range = new HeightRange(height, height + count - 1)
116
+ const bulkRange = ranges.bulk.intersect(range)
117
+ const liveRange = ranges.live.intersect(range)
118
+
119
+ if (liveRange.isEmpty && bulkRange.isEmpty) return new Uint8Array()
120
+
121
+ const liveHeaders = await this.getLiveHeaders(liveRange)
122
+ const liveData = serializeBaseBlockHeaders(liveHeaders)
123
+ const bulkData = await this.getBulkHeaders(bulkRange)
124
+
125
+ const data = new Uint8Array(liveData.length + bulkData.length)
126
+
127
+ if (bulkData.length > 0) data.set(bulkData, 0)
128
+
129
+ if (liveData.length > 0) data.set(liveData, bulkData.length)
130
+
131
+ return data
132
+ }
133
+
134
+ async getHeaders(height: number, count: number): Promise<BaseBlockHeader[]> {
135
+ const data = await this.getHeadersUint8Array(height, count)
136
+ const headers = deserializeBaseBlockHeaders(data)
137
+ return headers
138
+ }
139
+
91
140
  async deleteBulkBlockHeaders(): Promise<void> {
92
141
  await this.bulkManager.deleteBulkFiles()
93
142
  }
@@ -95,13 +144,13 @@ export abstract class ChaintracksStorageBase implements ChaintracksStorageQueryA
95
144
  async getAvailableHeightRanges(): Promise<{ bulk: HeightRange; live: HeightRange }> {
96
145
  await this.makeAvailable()
97
146
  const bulk = await this.bulkManager.getHeightRange()
98
- const live = await this.getLiveHeightRange()
147
+ const live = await this.findLiveHeightRange()
99
148
  if (bulk.isEmpty) {
100
149
  if (!live.isEmpty && live.minHeight !== 0)
101
150
  throw new Error('With empty bulk storage, live storage must start with genesis header.')
102
151
  } else {
103
- if (bulk.minHeight != 0) throw new Error("Bulk storage doesn't start with genesis header.")
104
- if (!live.isEmpty && bulk.maxHeight + 1 !== live.minHeight)
152
+ if (!bulk.isEmpty && bulk.minHeight != 0) throw new Error("Bulk storage doesn't start with genesis header.")
153
+ if (!live.isEmpty && !bulk.isEmpty && bulk.maxHeight + 1 !== live.minHeight)
105
154
  throw new Error('There is a gap or overlap between bulk and live header storage.')
106
155
  }
107
156
  return { bulk, live }
@@ -122,7 +171,7 @@ export abstract class ChaintracksStorageBase implements ChaintracksStorageQueryA
122
171
  this.lastActiveMinHeight = undefined
123
172
  }
124
173
  } catch (err: unknown) {
125
- console.log(err)
174
+ this.log(err)
126
175
  throw err
127
176
  }
128
177
  }
@@ -201,7 +250,7 @@ export abstract class ChaintracksStorageBase implements ChaintracksStorageQueryA
201
250
  if (!ignoreLimits && count > this.bulkMigrationChunkSize) return
202
251
 
203
252
  if (this.nowMigratingLiveToBulk) {
204
- console.log('Already migrating live to bulk.')
253
+ this.log('Already migrating live to bulk.')
205
254
  return
206
255
  }
207
256