@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,515 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Chaintracks = void 0;
4
+ const dirtyHashes_1 = require("./util/dirtyHashes");
5
+ const blockHeaderUtilities_1 = require("./util/blockHeaderUtilities");
6
+ const utilityHelpers_noBuffer_1 = require("../../../utility/utilityHelpers.noBuffer");
7
+ const HeightRange_1 = require("./util/HeightRange");
8
+ const SingleWriterMultiReaderLock_1 = require("./util/SingleWriterMultiReaderLock");
9
+ const utilityHelpers_1 = require("../../../utility/utilityHelpers");
10
+ class Chaintracks {
11
+ static createOptions(chain) {
12
+ return {
13
+ chain,
14
+ storage: undefined,
15
+ bulkIngestors: [],
16
+ liveIngestors: [],
17
+ addLiveRecursionLimit: 36,
18
+ logging: 'all',
19
+ readonly: false
20
+ };
21
+ }
22
+ constructor(options) {
23
+ this.options = options;
24
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
+ this.log = () => { };
26
+ // Collection of all long running "threads": main thread (liveHeaders consumer / monitor) and each live header ingestor.
27
+ this.promises = [];
28
+ this.callbacks = { header: [], reorg: [] };
29
+ this.baseHeaders = [];
30
+ this.liveHeaders = [];
31
+ this.addLiveRecursionLimit = 11;
32
+ this.available = false;
33
+ this.subscriberCallbacksEnabled = false;
34
+ this.stopMainThread = true;
35
+ this.lastPresentHeight = 0;
36
+ this.lastPresentHeightMsecs = 0;
37
+ this.lastPresentHeightMaxAge = 60 * 1000; // 1 minute, in milliseconds
38
+ this.lock = new SingleWriterMultiReaderLock_1.SingleWriterMultiReaderLock();
39
+ if (!options.storage)
40
+ throw new Error('storage is required.');
41
+ if (!options.bulkIngestors || options.bulkIngestors.length < 1)
42
+ throw new Error('At least one bulk ingestor is required.');
43
+ if (!options.liveIngestors || options.liveIngestors.length < 1)
44
+ throw new Error('At least one live ingestor is required.');
45
+ this.chain = options.chain;
46
+ this.readonly = options.readonly;
47
+ this.storage = options.storage;
48
+ this.bulkIngestors = options.bulkIngestors;
49
+ this.liveIngestors = options.liveIngestors;
50
+ this.addLiveRecursionLimit = options.addLiveRecursionLimit;
51
+ if (options.logging === 'all')
52
+ this.log = (...args) => console.log(new Date().toISOString(), ...args);
53
+ this.log(`New ChaintracksBase Instance Constructed ${options.chain}Net`);
54
+ }
55
+ async getChain() {
56
+ return this.chain;
57
+ }
58
+ /**
59
+ * Caches and returns most recently sourced value if less than one minute old.
60
+ * @returns the current externally available chain height (via bulk ingestors).
61
+ */
62
+ async getPresentHeight() {
63
+ const now = Date.now();
64
+ if (this.lastPresentHeight && now - this.lastPresentHeightMsecs < this.lastPresentHeightMaxAge) {
65
+ return this.lastPresentHeight;
66
+ }
67
+ const presentHeights = [];
68
+ for (const bulk of this.bulkIngestors) {
69
+ try {
70
+ const presentHeight = await bulk.getPresentHeight();
71
+ if (presentHeight)
72
+ presentHeights.push(presentHeight);
73
+ }
74
+ catch (uerr) {
75
+ console.log(uerr);
76
+ }
77
+ }
78
+ const presentHeight = presentHeights.length ? Math.max(...presentHeights) : undefined;
79
+ if (!presentHeight)
80
+ throw new Error('At least one bulk ingestor must implement getPresentHeight.');
81
+ this.lastPresentHeight = presentHeight;
82
+ this.lastPresentHeightMsecs = now;
83
+ return presentHeight;
84
+ }
85
+ async currentHeight() {
86
+ return await this.getPresentHeight();
87
+ }
88
+ async subscribeHeaders(listener) {
89
+ const ID = (0, utilityHelpers_1.randomBytesBase64)(8);
90
+ this.callbacks.header[ID] = listener;
91
+ return ID;
92
+ }
93
+ async subscribeReorgs(listener) {
94
+ const ID = (0, utilityHelpers_1.randomBytesBase64)(8);
95
+ this.callbacks.reorg[ID] = listener;
96
+ return ID;
97
+ }
98
+ async unsubscribe(subscriptionId) {
99
+ let success = true;
100
+ if (this.callbacks.header[subscriptionId])
101
+ delete this.callbacks.header[subscriptionId];
102
+ else if (this.callbacks.reorg[subscriptionId])
103
+ delete this.callbacks.reorg[subscriptionId];
104
+ else
105
+ success = false;
106
+ return success;
107
+ }
108
+ /**
109
+ * Queues a potentially new, unknown header for consideration as an addition to the chain.
110
+ * When the header is considered, if the prior header is unknown, recursive calls to the
111
+ * bulk ingestors will be attempted to resolve the linkage up to a depth of `addLiveRecursionLimit`.
112
+ *
113
+ * Headers are considered in the order they were added.
114
+ *
115
+ * @param header
116
+ */
117
+ async addHeader(header) {
118
+ this.baseHeaders.push(header);
119
+ }
120
+ /**
121
+ * If not already available, takes a writer lock to queue calls until available.
122
+ * Becoming available starts by initializing ingestors and main thread,
123
+ * and ends when main thread sets `available`.
124
+ * Note that the main thread continues running and takes additional write locks
125
+ * itself when already available.
126
+ *
127
+ * @returns when available for client requests
128
+ */
129
+ async makeAvailable() {
130
+ if (this.available)
131
+ return;
132
+ await this.lock.withWriteLock(async () => {
133
+ // Only the first call proceeds to initialize...
134
+ if (this.available)
135
+ return;
136
+ // Make sure database schema exists and is updated...
137
+ await this.storage.migrateLatest();
138
+ for (const bulkIn of this.bulkIngestors)
139
+ await bulkIn.setStorage(this.storage);
140
+ for (const liveIn of this.liveIngestors)
141
+ await liveIn.setStorage(this.storage);
142
+ // Start all live ingestors to push new headers onto liveHeaders... each long running.
143
+ for (const liveIngestor of this.liveIngestors)
144
+ this.promises.push(liveIngestor.startListening(this.liveHeaders));
145
+ // Start mai loop to shift out liveHeaders...once sync'd, will set `available` true.
146
+ this.promises.push(this.mainThreadShiftLiveHeaders());
147
+ // Wait for the main thread to finish initial sync.
148
+ while (!this.available) {
149
+ await (0, utilityHelpers_1.wait)(100);
150
+ }
151
+ });
152
+ }
153
+ async startPromises() {
154
+ if (this.promises.length > 0 || this.stopMainThread !== true)
155
+ return;
156
+ }
157
+ async destroy() {
158
+ if (!this.available)
159
+ return;
160
+ await this.lock.withWriteLock(async () => {
161
+ if (!this.available || this.stopMainThread)
162
+ return;
163
+ this.log('Shutting Down');
164
+ this.stopMainThread = true;
165
+ for (const liveIn of this.liveIngestors)
166
+ await liveIn.shutdown();
167
+ for (const bulkIn of this.bulkIngestors)
168
+ await bulkIn.shutdown();
169
+ await Promise.all(this.promises);
170
+ await this.storage.destroy();
171
+ this.available = false;
172
+ this.stopMainThread = false;
173
+ this.log('Shutdown');
174
+ });
175
+ }
176
+ async listening() {
177
+ return this.makeAvailable();
178
+ }
179
+ async isListening() {
180
+ return this.available;
181
+ }
182
+ async isSynchronized() {
183
+ await this.makeAvailable();
184
+ // TODO add synchronized flag... false while bulksyncing...
185
+ return true;
186
+ }
187
+ async findHeaderForHeight(height) {
188
+ await this.makeAvailable();
189
+ return this.lock.withReadLock(async () => this.findHeaderForHeightNoLock(height));
190
+ }
191
+ async findHeaderForHeightNoLock(height) {
192
+ return await this.storage.findHeaderForHeightOrUndefined(height);
193
+ }
194
+ async findHeaderForBlockHash(hash) {
195
+ await this.makeAvailable();
196
+ return this.lock.withReadLock(async () => this.findHeaderForBlockHashNoLock(hash));
197
+ }
198
+ async findHeaderForBlockHashNoLock(hash) {
199
+ return (await this.storage.findLiveHeaderForBlockHash(hash)) || undefined;
200
+ }
201
+ async isValidRootForHeight(root, height) {
202
+ const r = await this.findHeaderForHeight(height);
203
+ if (!r)
204
+ return false;
205
+ const isValid = root === r.merkleRoot;
206
+ return isValid;
207
+ }
208
+ async getInfo() {
209
+ await this.makeAvailable();
210
+ return this.lock.withReadLock(async () => this.getInfoNoLock());
211
+ }
212
+ async getInfoNoLock() {
213
+ const liveRange = await this.storage.getLiveHeightRange();
214
+ const info = {
215
+ chain: this.chain,
216
+ heightBulk: liveRange.minHeight - 1,
217
+ heightLive: liveRange.maxHeight,
218
+ storage: this.storage.constructor.name,
219
+ bulkIngestors: this.bulkIngestors.map(bulkIngestor => bulkIngestor.constructor.name),
220
+ liveIngestors: this.liveIngestors.map(liveIngestor => liveIngestor.constructor.name),
221
+ packages: []
222
+ };
223
+ return info;
224
+ }
225
+ async getHeaders(height, count) {
226
+ await this.makeAvailable();
227
+ return this.lock.withReadLock(async () => (0, utilityHelpers_noBuffer_1.asString)(await this.storage.getHeaders(height, count)));
228
+ }
229
+ async findChainTipHeader() {
230
+ await this.makeAvailable();
231
+ return this.lock.withReadLock(async () => await this.storage.findChainTipHeader());
232
+ }
233
+ async findChainTipHash() {
234
+ await this.makeAvailable();
235
+ return this.lock.withReadLock(async () => await this.storage.findChainTipHash());
236
+ }
237
+ async findLiveHeaderForBlockHash(hash) {
238
+ await this.makeAvailable();
239
+ const header = await this.lock.withReadLock(async () => await this.storage.findLiveHeaderForBlockHash(hash));
240
+ return header || undefined;
241
+ }
242
+ async findChainWorkForBlockHash(hash) {
243
+ const header = await this.findLiveHeaderForBlockHash(hash);
244
+ return header === null || header === void 0 ? void 0 : header.chainWork;
245
+ }
246
+ /**
247
+ * @returns true iff all headers from height zero through current chainTipHeader height can be retreived and form a valid chain.
248
+ */
249
+ async validate() {
250
+ let h = await this.findChainTipHeader();
251
+ while (h.height > 0) {
252
+ const hp = await this.findHeaderForHeight(h.height - 1);
253
+ if (!hp || hp.hash !== h.previousHash)
254
+ throw new Error(`validation fails at height ${h.height}`);
255
+ h = hp;
256
+ if (10000 * Math.floor(h.height / 10000) === h.height)
257
+ this.log(`height ${h.height}`);
258
+ }
259
+ this.log('validated');
260
+ return true;
261
+ }
262
+ async exportBulkHeaders(toFolder, toFs, sourceUrl, toHeadersPerFile, maxHeight) {
263
+ toHeadersPerFile || (toHeadersPerFile = 100000);
264
+ const bulk = this.storage.bulkManager;
265
+ await bulk.exportHeadersToFs(toFs, toHeadersPerFile, toFolder, sourceUrl, maxHeight);
266
+ }
267
+ async startListening() {
268
+ this.makeAvailable();
269
+ }
270
+ async syncBulkStorage(presentHeight, initialRanges) {
271
+ await this.lock.withWriteLock(async () => await this.syncBulkStorageNoLock(presentHeight, initialRanges));
272
+ }
273
+ async syncBulkStorageNoLock(presentHeight, initialRanges) {
274
+ let newLiveHeaders = [];
275
+ let bulkDone = false;
276
+ let before = initialRanges;
277
+ let after = before;
278
+ let added = HeightRange_1.HeightRange.empty;
279
+ let done = false;
280
+ for (; !done;) {
281
+ for (const bulk of this.bulkIngestors) {
282
+ try {
283
+ const r = await bulk.synchronize(presentHeight, before, newLiveHeaders);
284
+ newLiveHeaders = r.liveHeaders;
285
+ after = await this.storage.getAvailableHeightRanges();
286
+ added = after.bulk.above(before.bulk);
287
+ before = after;
288
+ this.log(`Bulk Ingestor: ${added.length} added with ${newLiveHeaders.length} live headers from ${bulk.constructor.name}`);
289
+ if (r.done) {
290
+ done = true;
291
+ break;
292
+ }
293
+ }
294
+ catch (uerr) {
295
+ console.log(uerr);
296
+ }
297
+ }
298
+ if (bulkDone)
299
+ break;
300
+ }
301
+ this.liveHeaders.unshift(...newLiveHeaders);
302
+ added = after.bulk.above(initialRanges.bulk);
303
+ this.log(`syncBulkStorage done
304
+ Before sync: bulk ${initialRanges.bulk}, live ${initialRanges.live}
305
+ After sync: bulk ${after.bulk}, live ${after.live}
306
+ ${added.length} headers added to bulk storage
307
+ ${this.liveHeaders.length} headers forwarded to live header storage
308
+ `);
309
+ }
310
+ async getMissingBlockHeader(hash) {
311
+ for (const live of this.liveIngestors) {
312
+ const header = await live.getHeaderByHash(hash);
313
+ if (header)
314
+ return header;
315
+ }
316
+ return undefined;
317
+ }
318
+ invalidInsertHeaderResult(ihr) {
319
+ return ihr.noActiveAncestor || ihr.noTip || ihr.badPrev;
320
+ }
321
+ async addLiveHeader(header) {
322
+ (0, blockHeaderUtilities_1.validateHeaderFormat)(header);
323
+ (0, dirtyHashes_1.validateAgainstDirtyHashes)(header.hash);
324
+ const ihr = this.available
325
+ ? await this.lock.withWriteLock(async () => await this.storage.insertHeader(header))
326
+ : await this.storage.insertHeader(header);
327
+ if (this.invalidInsertHeaderResult(ihr))
328
+ return ihr;
329
+ if (this.subscriberCallbacksEnabled && ihr.added && ihr.isActiveTip) {
330
+ // If a new active chaintip has been added, notify subscribed event listeners...
331
+ for (const id in this.callbacks.header) {
332
+ const addListener = this.callbacks.header[id];
333
+ if (addListener) {
334
+ try {
335
+ addListener(header);
336
+ }
337
+ catch (_a) {
338
+ /* ignore all errors thrown */
339
+ }
340
+ }
341
+ }
342
+ if (ihr.reorgDepth > 0 && ihr.priorTip) {
343
+ // If the new header was also a reorg, notify subscribed event listeners...
344
+ for (const id in this.callbacks.reorg) {
345
+ const reorgListener = this.callbacks.reorg[id];
346
+ if (reorgListener) {
347
+ try {
348
+ reorgListener(ihr.reorgDepth, ihr.priorTip, header);
349
+ }
350
+ catch (_b) {
351
+ /* ignore all errors thrown */
352
+ }
353
+ }
354
+ }
355
+ }
356
+ }
357
+ return ihr;
358
+ }
359
+ /**
360
+ * Long running method terminated by setting `stopMainThread` false.
361
+ *
362
+ * The promise returned by this method is held in the `promises` array.
363
+ *
364
+ * When synchronized (bulk and live storage is valid up to most recent presentHeight),
365
+ * this method will process headers from `baseHeaders` and `liveHeaders` arrays to extend the chain of headers.
366
+ *
367
+ * If a significant gap is detected between bulk+live and presentHeight, `syncBulkStorage` is called to re-establish sync.
368
+ *
369
+ * Periodically CDN bulk ingestor is invoked to check if incremental headers can be migrated to CDN backed files.
370
+ */
371
+ async mainThreadShiftLiveHeaders() {
372
+ this.stopMainThread = false;
373
+ let lastSyncCheck = Date.now();
374
+ let lastBulkSync = Date.now();
375
+ const cdnSyncRepeatMsecs = 24 * 60 * 60 * 1000; // 24 hours
376
+ const syncCheckRepeatMsecs = 30 * 60 * 1000; // 30 minutes
377
+ while (!this.stopMainThread) {
378
+ // Review the need for bulk sync...
379
+ const now = Date.now();
380
+ lastSyncCheck = now;
381
+ const presentHeight = await this.getPresentHeight();
382
+ const before = await this.storage.getAvailableHeightRanges();
383
+ // Skip bulk sync if within less than half the recursion limit of present height
384
+ let skipBulkSync = !before.live.isEmpty && before.live.maxHeight >= presentHeight - this.addLiveRecursionLimit / 2;
385
+ if (skipBulkSync && now - lastSyncCheck > cdnSyncRepeatMsecs) {
386
+ // If we haven't re-synced in a long time, do it just to check for a CDN update.
387
+ skipBulkSync = false;
388
+ }
389
+ this.log(`Chaintracks Update Services: Bulk Header Sync Review
390
+ presentHeight=${presentHeight} addLiveRecursionLimit=${this.addLiveRecursionLimit}
391
+ Before synchronize: bulk ${before.bulk}, live ${before.live}
392
+ ${skipBulkSync ? 'Skipping' : 'Starting'} syncBulkStorage.
393
+ `);
394
+ if (!skipBulkSync) {
395
+ // Bring bulk storage up-to-date and (re-)initialize liveHeaders
396
+ lastBulkSync = now;
397
+ if (this.available)
398
+ // Once available, initial write lock is released, take a new one to update bulk storage.
399
+ await this.syncBulkStorage(presentHeight, before);
400
+ else
401
+ // While still not available, the makeAvailable write lock is held.
402
+ await this.syncBulkStorageNoLock(presentHeight, before);
403
+ }
404
+ let count = 0;
405
+ let liveHeaderDupes = 0;
406
+ let needSyncCheck = false;
407
+ for (; !needSyncCheck && !this.stopMainThread;) {
408
+ let header = this.liveHeaders.shift();
409
+ if (header) {
410
+ // Process a "live" block header...
411
+ let recursions = this.addLiveRecursionLimit;
412
+ for (; !needSyncCheck && !this.stopMainThread;) {
413
+ const ihr = await this.addLiveHeader(header);
414
+ if (this.invalidInsertHeaderResult(ihr)) {
415
+ this.log(`Ignoring liveHeader ${header.height} ${header.hash} due to invalid insert result.`);
416
+ needSyncCheck = true;
417
+ }
418
+ else if (ihr.noPrev) {
419
+ // Previous header is unknown, request it by hash from the network and try adding it first...
420
+ if (recursions-- <= 0) {
421
+ // Ignore this header...
422
+ this.log(`Ignoring liveHeader ${header.height} ${header.hash} addLiveRecursionLimit=${this.addLiveRecursionLimit} exceeded.`);
423
+ needSyncCheck = true;
424
+ }
425
+ else {
426
+ const hash = header.previousHash;
427
+ const prevHeader = await this.getMissingBlockHeader(hash);
428
+ if (!prevHeader) {
429
+ this.log(`Ignoring liveHeader ${header.height} ${header.hash} failed to find previous header by hash ${(0, utilityHelpers_noBuffer_1.asString)(hash)}`);
430
+ needSyncCheck = true;
431
+ }
432
+ else {
433
+ // Switch to trying to add prevHeader, unshifting current header to try it again after prevHeader exists.
434
+ this.liveHeaders.unshift(header);
435
+ header = prevHeader;
436
+ }
437
+ }
438
+ }
439
+ else {
440
+ if (this.subscriberCallbacksEnabled)
441
+ this.log(`addLiveHeader ${header.height}${ihr.added ? ' added' : ''}${ihr.dupe ? ' dupe' : ''}${ihr.isActiveTip ? ' isActiveTip' : ''}${ihr.reorgDepth ? ' reorg depth ' + ihr.reorgDepth : ''}${ihr.noPrev ? ' noPrev' : ''}${ihr.noActiveAncestor || ihr.noTip || ihr.badPrev ? ' error' : ''}`);
442
+ if (ihr.dupe) {
443
+ liveHeaderDupes++;
444
+ }
445
+ // Header wasn't invalid and previous header is known. If it was successfully added, count it as a win.
446
+ if (ihr.added) {
447
+ count++;
448
+ }
449
+ break;
450
+ }
451
+ }
452
+ }
453
+ else {
454
+ // There are no liveHeaders currently to process, check the out-of-band baseHeaders channel (`addHeader` method called by a client).
455
+ const bheader = this.baseHeaders.shift();
456
+ if (bheader) {
457
+ const prev = await this.storage.findLiveHeaderForBlockHash(bheader.previousHash);
458
+ if (!prev) {
459
+ // Ignoring attempt to add a baseHeader with unknown previous hash, no attempt made to find previous header(s).
460
+ this.log(`Ignoring header with unknown previousHash ${bheader.previousHash} in live storage.`);
461
+ // Does not trigger a re-sync.
462
+ }
463
+ else {
464
+ const header = {
465
+ ...bheader,
466
+ height: prev.height + 1,
467
+ hash: (0, blockHeaderUtilities_1.blockHash)(bheader)
468
+ };
469
+ const ihr = await this.addLiveHeader(header);
470
+ if (this.invalidInsertHeaderResult(ihr)) {
471
+ this.log(`Ignoring invalid baseHeader ${header.height} ${header.hash}.`);
472
+ }
473
+ else {
474
+ if (this.subscriberCallbacksEnabled)
475
+ this.log(`addBaseHeader ${header.height}${ihr.added ? ' added' : ''}${ihr.dupe ? ' dupe' : ''}${ihr.isActiveTip ? ' isActiveTip' : ''}${ihr.reorgDepth ? ' reorg depth ' + ihr.reorgDepth : ''}${ihr.noPrev ? ' noPrev' : ''}${ihr.noActiveAncestor || ihr.noTip || ihr.badPrev ? ' error' : ''}`);
476
+ // baseHeader was successfully added.
477
+ if (ihr.added) {
478
+ count++;
479
+ }
480
+ }
481
+ }
482
+ }
483
+ else {
484
+ // There are no liveHeaders and no baseHeaders to add,
485
+ if (count > 0) {
486
+ if (liveHeaderDupes > 0) {
487
+ this.log(`${liveHeaderDupes} duplicate headers ignored.`);
488
+ liveHeaderDupes = 0;
489
+ }
490
+ const updated = await this.storage.getAvailableHeightRanges();
491
+ this.log(`${count} live headers added: bulk ${updated.bulk}, live ${updated.live}`);
492
+ count = 0;
493
+ }
494
+ if (!this.subscriberCallbacksEnabled) {
495
+ const live = await this.storage.getLiveHeightRange();
496
+ if (!live.isEmpty) {
497
+ this.subscriberCallbacksEnabled = true;
498
+ this.log(`listening at height of ${live.maxHeight}`);
499
+ }
500
+ }
501
+ if (!this.available) {
502
+ this.available = true;
503
+ }
504
+ needSyncCheck = Date.now() - lastSyncCheck > syncCheckRepeatMsecs;
505
+ // If we aren't going to review sync, wait before checking input queues again
506
+ if (!needSyncCheck)
507
+ await (0, utilityHelpers_1.wait)(1000);
508
+ }
509
+ }
510
+ }
511
+ }
512
+ }
513
+ }
514
+ exports.Chaintracks = Chaintracks;
515
+ //# sourceMappingURL=Chaintracks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chaintracks.js","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/Chaintracks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { Chaintracks } from './Chaintracks';
2
+ import { IncomingMessage, Server, ServerResponse } from 'http';
3
+ import { Chain } from '../../../sdk/types';
4
+ import { Services } from '../../Services';
5
+ export interface ChaintracksServiceOptions {
6
+ chain: Chain;
7
+ /**
8
+ * prepended to the path of each registered service endpoint
9
+ */
10
+ routingPrefix: string;
11
+ /**
12
+ * Defaults to default configured Chaintracks instance with NoDb storage.
13
+ */
14
+ chaintracks?: Chaintracks;
15
+ services?: Services;
16
+ port?: number;
17
+ }
18
+ export declare class ChaintracksService {
19
+ static createChaintracksServiceOptions(chain: Chain): ChaintracksServiceOptions;
20
+ chain: Chain;
21
+ options: ChaintracksServiceOptions;
22
+ port?: number;
23
+ chaintracks: Chaintracks;
24
+ services: Services;
25
+ server?: Server<typeof IncomingMessage, typeof ServerResponse>;
26
+ constructor(options: ChaintracksServiceOptions);
27
+ stopJsonRpcServer(): Promise<void>;
28
+ startJsonRpcServer(port?: number): Promise<void>;
29
+ }
30
+ //# sourceMappingURL=ChaintracksService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChaintracksService.d.ts","sourceRoot":"","sources":["../../../../../../src/services/chaintracker/chaintracks/ChaintracksService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAG9D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAMzC,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,KAAK,CAAA;IACZ;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,+BAA+B,CAAC,KAAK,EAAE,KAAK,GAAG,yBAAyB;IAQ/E,KAAK,EAAE,KAAK,CAAA;IACZ,OAAO,EAAE,yBAAyB,CAAA;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,WAAW,CAAA;IACxB,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,eAAe,EAAE,OAAO,cAAc,CAAC,CAAA;gBAElD,OAAO,EAAE,yBAAyB;IAgBxC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKlC,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA4HvD"}