@bsv/wallet-toolbox 1.7.18 → 2.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (606) hide show
  1. package/out/src/sdk/validationHelpers.d.ts +303 -0
  2. package/out/src/sdk/validationHelpers.d.ts.map +1 -0
  3. package/out/src/sdk/validationHelpers.js +632 -0
  4. package/out/src/sdk/validationHelpers.js.map +1 -0
  5. package/package.json +9 -2
  6. package/.env.template +0 -22
  7. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -40
  8. package/.github/ISSUE_TEMPLATE/discussion.md +0 -24
  9. package/.github/pull_request_template.md +0 -22
  10. package/.github/workflows/push.yaml +0 -145
  11. package/.prettierrc +0 -10
  12. package/CONTRIBUTING.md +0 -89
  13. package/jest.config.ts +0 -25
  14. package/out/test/Wallet/StorageClient/storageClient.man.test.d.ts +0 -2
  15. package/out/test/Wallet/StorageClient/storageClient.man.test.d.ts.map +0 -1
  16. package/out/test/Wallet/StorageClient/storageClient.man.test.js +0 -64
  17. package/out/test/Wallet/StorageClient/storageClient.man.test.js.map +0 -1
  18. package/out/test/Wallet/action/internalizeAction.a.test.d.ts +0 -2
  19. package/out/test/Wallet/action/internalizeAction.a.test.d.ts.map +0 -1
  20. package/out/test/Wallet/action/internalizeAction.a.test.js +0 -243
  21. package/out/test/Wallet/action/internalizeAction.a.test.js.map +0 -1
  22. package/out/test/Wallet/certificate/acquireCertificate.test.d.ts +0 -2
  23. package/out/test/Wallet/certificate/acquireCertificate.test.d.ts.map +0 -1
  24. package/out/test/Wallet/certificate/acquireCertificate.test.js +0 -210
  25. package/out/test/Wallet/certificate/acquireCertificate.test.js.map +0 -1
  26. package/out/test/Wallet/certificate/listCertificates.test.d.ts +0 -2
  27. package/out/test/Wallet/certificate/listCertificates.test.d.ts.map +0 -1
  28. package/out/test/Wallet/certificate/listCertificates.test.js +0 -305
  29. package/out/test/Wallet/certificate/listCertificates.test.js.map +0 -1
  30. package/out/test/Wallet/get/getHeaderForHeight.test.d.ts +0 -2
  31. package/out/test/Wallet/get/getHeaderForHeight.test.d.ts.map +0 -1
  32. package/out/test/Wallet/get/getHeaderForHeight.test.js +0 -74
  33. package/out/test/Wallet/get/getHeaderForHeight.test.js.map +0 -1
  34. package/out/test/Wallet/get/getHeight.test.d.ts +0 -2
  35. package/out/test/Wallet/get/getHeight.test.d.ts.map +0 -1
  36. package/out/test/Wallet/get/getHeight.test.js +0 -48
  37. package/out/test/Wallet/get/getHeight.test.js.map +0 -1
  38. package/out/test/Wallet/get/getKnownTxids.test.d.ts +0 -2
  39. package/out/test/Wallet/get/getKnownTxids.test.d.ts.map +0 -1
  40. package/out/test/Wallet/get/getKnownTxids.test.js +0 -73
  41. package/out/test/Wallet/get/getKnownTxids.test.js.map +0 -1
  42. package/out/test/Wallet/get/getNetwork.test.d.ts +0 -2
  43. package/out/test/Wallet/get/getNetwork.test.d.ts.map +0 -1
  44. package/out/test/Wallet/get/getNetwork.test.js +0 -26
  45. package/out/test/Wallet/get/getNetwork.test.js.map +0 -1
  46. package/out/test/Wallet/get/getVersion.test.d.ts +0 -2
  47. package/out/test/Wallet/get/getVersion.test.d.ts.map +0 -1
  48. package/out/test/Wallet/get/getVersion.test.js +0 -25
  49. package/out/test/Wallet/get/getVersion.test.js.map +0 -1
  50. package/out/test/Wallet/live/walletLive.man.test.d.ts +0 -26
  51. package/out/test/Wallet/live/walletLive.man.test.d.ts.map +0 -1
  52. package/out/test/Wallet/live/walletLive.man.test.js +0 -417
  53. package/out/test/Wallet/live/walletLive.man.test.js.map +0 -1
  54. package/out/test/Wallet/local/localWallet.man.test.d.ts +0 -2
  55. package/out/test/Wallet/local/localWallet.man.test.d.ts.map +0 -1
  56. package/out/test/Wallet/local/localWallet.man.test.js +0 -83
  57. package/out/test/Wallet/local/localWallet.man.test.js.map +0 -1
  58. package/out/test/Wallet/local/localWallet2.man.test.d.ts +0 -2
  59. package/out/test/Wallet/local/localWallet2.man.test.d.ts.map +0 -1
  60. package/out/test/Wallet/local/localWallet2.man.test.js +0 -284
  61. package/out/test/Wallet/local/localWallet2.man.test.js.map +0 -1
  62. package/out/test/Wallet/signAction/mountaintop.man.test.d.ts +0 -2
  63. package/out/test/Wallet/signAction/mountaintop.man.test.d.ts.map +0 -1
  64. package/out/test/Wallet/signAction/mountaintop.man.test.js +0 -109
  65. package/out/test/Wallet/signAction/mountaintop.man.test.js.map +0 -1
  66. package/out/test/Wallet/specOps/specOps.man.test.d.ts +0 -2
  67. package/out/test/Wallet/specOps/specOps.man.test.d.ts.map +0 -1
  68. package/out/test/Wallet/specOps/specOps.man.test.js +0 -163
  69. package/out/test/Wallet/specOps/specOps.man.test.js.map +0 -1
  70. package/out/test/Wallet/support/janitor.man.test.d.ts +0 -2
  71. package/out/test/Wallet/support/janitor.man.test.d.ts.map +0 -1
  72. package/out/test/Wallet/support/janitor.man.test.js +0 -38
  73. package/out/test/Wallet/support/janitor.man.test.js.map +0 -1
  74. package/out/test/Wallet/support/operations.man.test.d.ts +0 -2
  75. package/out/test/Wallet/support/operations.man.test.d.ts.map +0 -1
  76. package/out/test/Wallet/support/operations.man.test.js +0 -370
  77. package/out/test/Wallet/support/operations.man.test.js.map +0 -1
  78. package/out/test/Wallet/support/reqErrorReview.2025.05.06.man.test.d.ts +0 -2
  79. package/out/test/Wallet/support/reqErrorReview.2025.05.06.man.test.d.ts.map +0 -1
  80. package/out/test/Wallet/support/reqErrorReview.2025.05.06.man.test.js +0 -385
  81. package/out/test/Wallet/support/reqErrorReview.2025.05.06.man.test.js.map +0 -1
  82. package/out/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.d.ts +0 -2
  83. package/out/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.d.ts.map +0 -1
  84. package/out/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.js +0 -206
  85. package/out/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.js.map +0 -1
  86. package/out/test/Wallet/sync/setActive.test.d.ts +0 -2
  87. package/out/test/Wallet/sync/setActive.test.d.ts.map +0 -1
  88. package/out/test/Wallet/sync/setActive.test.js +0 -161
  89. package/out/test/Wallet/sync/setActive.test.js.map +0 -1
  90. package/out/test/WalletClient/LocalKVStore.man.test.d.ts +0 -2
  91. package/out/test/WalletClient/LocalKVStore.man.test.d.ts.map +0 -1
  92. package/out/test/WalletClient/LocalKVStore.man.test.js +0 -99
  93. package/out/test/WalletClient/LocalKVStore.man.test.js.map +0 -1
  94. package/out/test/WalletClient/WERR.man.test.d.ts +0 -2
  95. package/out/test/WalletClient/WERR.man.test.d.ts.map +0 -1
  96. package/out/test/WalletClient/WERR.man.test.js +0 -34
  97. package/out/test/WalletClient/WERR.man.test.js.map +0 -1
  98. package/out/test/bsv-ts-sdk/LocalKVStore.test.d.ts +0 -2
  99. package/out/test/bsv-ts-sdk/LocalKVStore.test.d.ts.map +0 -1
  100. package/out/test/bsv-ts-sdk/LocalKVStore.test.js +0 -98
  101. package/out/test/bsv-ts-sdk/LocalKVStore.test.js.map +0 -1
  102. package/out/test/checkDB.d.ts +0 -4
  103. package/out/test/checkDB.d.ts.map +0 -1
  104. package/out/test/checkDB.js +0 -55
  105. package/out/test/checkDB.js.map +0 -1
  106. package/out/test/examples/backup.man.test.d.ts +0 -14
  107. package/out/test/examples/backup.man.test.d.ts.map +0 -1
  108. package/out/test/examples/backup.man.test.js +0 -59
  109. package/out/test/examples/backup.man.test.js.map +0 -1
  110. package/out/test/examples/pushdrop.test.d.ts +0 -56
  111. package/out/test/examples/pushdrop.test.d.ts.map +0 -1
  112. package/out/test/examples/pushdrop.test.js +0 -232
  113. package/out/test/examples/pushdrop.test.js.map +0 -1
  114. package/out/test/monitor/Monitor.test.d.ts +0 -2
  115. package/out/test/monitor/Monitor.test.d.ts.map +0 -1
  116. package/out/test/monitor/Monitor.test.js +0 -560
  117. package/out/test/monitor/Monitor.test.js.map +0 -1
  118. package/out/test/services/Services.test.d.ts +0 -2
  119. package/out/test/services/Services.test.d.ts.map +0 -1
  120. package/out/test/services/Services.test.js +0 -246
  121. package/out/test/services/Services.test.js.map +0 -1
  122. package/out/test/storage/KnexMigrations.test.d.ts +0 -2
  123. package/out/test/storage/KnexMigrations.test.d.ts.map +0 -1
  124. package/out/test/storage/KnexMigrations.test.js +0 -81
  125. package/out/test/storage/KnexMigrations.test.js.map +0 -1
  126. package/out/test/storage/StorageMySQLDojoReader.man.test.d.ts +0 -2
  127. package/out/test/storage/StorageMySQLDojoReader.man.test.d.ts.map +0 -1
  128. package/out/test/storage/StorageMySQLDojoReader.man.test.js +0 -86
  129. package/out/test/storage/StorageMySQLDojoReader.man.test.js.map +0 -1
  130. package/out/test/storage/count.test.d.ts +0 -2
  131. package/out/test/storage/count.test.d.ts.map +0 -1
  132. package/out/test/storage/count.test.js +0 -142
  133. package/out/test/storage/count.test.js.map +0 -1
  134. package/out/test/storage/find.test.d.ts +0 -2
  135. package/out/test/storage/find.test.d.ts.map +0 -1
  136. package/out/test/storage/find.test.js +0 -144
  137. package/out/test/storage/find.test.js.map +0 -1
  138. package/out/test/storage/findLegacy.test.d.ts +0 -2
  139. package/out/test/storage/findLegacy.test.d.ts.map +0 -1
  140. package/out/test/storage/findLegacy.test.js +0 -52
  141. package/out/test/storage/findLegacy.test.js.map +0 -1
  142. package/out/test/storage/idb/allocateChange.test.d.ts +0 -2
  143. package/out/test/storage/idb/allocateChange.test.d.ts.map +0 -1
  144. package/out/test/storage/idb/allocateChange.test.js +0 -110
  145. package/out/test/storage/idb/allocateChange.test.js.map +0 -1
  146. package/out/test/storage/idb/count.test.d.ts +0 -2
  147. package/out/test/storage/idb/count.test.d.ts.map +0 -1
  148. package/out/test/storage/idb/count.test.js +0 -129
  149. package/out/test/storage/idb/count.test.js.map +0 -1
  150. package/out/test/storage/idb/find.test.d.ts +0 -2
  151. package/out/test/storage/idb/find.test.d.ts.map +0 -1
  152. package/out/test/storage/idb/find.test.js +0 -131
  153. package/out/test/storage/idb/find.test.js.map +0 -1
  154. package/out/test/storage/idb/idbSpeed.test.d.ts +0 -2
  155. package/out/test/storage/idb/idbSpeed.test.d.ts.map +0 -1
  156. package/out/test/storage/idb/idbSpeed.test.js +0 -30
  157. package/out/test/storage/idb/idbSpeed.test.js.map +0 -1
  158. package/out/test/storage/idb/insert.test.d.ts +0 -2
  159. package/out/test/storage/idb/insert.test.d.ts.map +0 -1
  160. package/out/test/storage/idb/insert.test.js +0 -242
  161. package/out/test/storage/idb/insert.test.js.map +0 -1
  162. package/out/test/storage/idb/transactionAbort.test.d.ts +0 -2
  163. package/out/test/storage/idb/transactionAbort.test.d.ts.map +0 -1
  164. package/out/test/storage/idb/transactionAbort.test.js +0 -97
  165. package/out/test/storage/idb/transactionAbort.test.js.map +0 -1
  166. package/out/test/storage/idb/update.test.d.ts +0 -2
  167. package/out/test/storage/idb/update.test.d.ts.map +0 -1
  168. package/out/test/storage/idb/update.test.js +0 -902
  169. package/out/test/storage/idb/update.test.js.map +0 -1
  170. package/out/test/storage/insert.test.d.ts +0 -2
  171. package/out/test/storage/insert.test.d.ts.map +0 -1
  172. package/out/test/storage/insert.test.js +0 -256
  173. package/out/test/storage/insert.test.js.map +0 -1
  174. package/out/test/storage/update.test.d.ts +0 -2
  175. package/out/test/storage/update.test.d.ts.map +0 -1
  176. package/out/test/storage/update.test.js +0 -919
  177. package/out/test/storage/update.test.js.map +0 -1
  178. package/out/test/storage/update2.test.d.ts +0 -2
  179. package/out/test/storage/update2.test.d.ts.map +0 -1
  180. package/out/test/storage/update2.test.js +0 -767
  181. package/out/test/storage/update2.test.js.map +0 -1
  182. package/out/test/utils/TestUtilsWalletStorage.d.ts +0 -523
  183. package/out/test/utils/TestUtilsWalletStorage.d.ts.map +0 -1
  184. package/out/test/utils/TestUtilsWalletStorage.js +0 -1958
  185. package/out/test/utils/TestUtilsWalletStorage.js.map +0 -1
  186. package/out/test/utils/localWalletMethods.d.ts +0 -33
  187. package/out/test/utils/localWalletMethods.d.ts.map +0 -1
  188. package/out/test/utils/localWalletMethods.js +0 -304
  189. package/out/test/utils/localWalletMethods.js.map +0 -1
  190. package/out/test/wallet/action/abortAction.test.d.ts +0 -2
  191. package/out/test/wallet/action/abortAction.test.d.ts.map +0 -1
  192. package/out/test/wallet/action/abortAction.test.js +0 -44
  193. package/out/test/wallet/action/abortAction.test.js.map +0 -1
  194. package/out/test/wallet/action/createAction.test.d.ts +0 -2
  195. package/out/test/wallet/action/createAction.test.d.ts.map +0 -1
  196. package/out/test/wallet/action/createAction.test.js +0 -272
  197. package/out/test/wallet/action/createAction.test.js.map +0 -1
  198. package/out/test/wallet/action/createAction2.test.d.ts +0 -37
  199. package/out/test/wallet/action/createAction2.test.d.ts.map +0 -1
  200. package/out/test/wallet/action/createAction2.test.js +0 -1143
  201. package/out/test/wallet/action/createAction2.test.js.map +0 -1
  202. package/out/test/wallet/action/createActionToGenerateBeefs.man.test.d.ts +0 -2
  203. package/out/test/wallet/action/createActionToGenerateBeefs.man.test.d.ts.map +0 -1
  204. package/out/test/wallet/action/createActionToGenerateBeefs.man.test.js +0 -273
  205. package/out/test/wallet/action/createActionToGenerateBeefs.man.test.js.map +0 -1
  206. package/out/test/wallet/action/internalizeAction.test.d.ts +0 -2
  207. package/out/test/wallet/action/internalizeAction.test.d.ts.map +0 -1
  208. package/out/test/wallet/action/internalizeAction.test.js +0 -608
  209. package/out/test/wallet/action/internalizeAction.test.js.map +0 -1
  210. package/out/test/wallet/action/relinquishOutput.test.d.ts +0 -2
  211. package/out/test/wallet/action/relinquishOutput.test.d.ts.map +0 -1
  212. package/out/test/wallet/action/relinquishOutput.test.js +0 -31
  213. package/out/test/wallet/action/relinquishOutput.test.js.map +0 -1
  214. package/out/test/wallet/construct/Wallet.constructor.test.d.ts +0 -2
  215. package/out/test/wallet/construct/Wallet.constructor.test.d.ts.map +0 -1
  216. package/out/test/wallet/construct/Wallet.constructor.test.js +0 -49
  217. package/out/test/wallet/construct/Wallet.constructor.test.js.map +0 -1
  218. package/out/test/wallet/list/listActions.test.d.ts +0 -2
  219. package/out/test/wallet/list/listActions.test.d.ts.map +0 -1
  220. package/out/test/wallet/list/listActions.test.js +0 -271
  221. package/out/test/wallet/list/listActions.test.js.map +0 -1
  222. package/out/test/wallet/list/listActions2.test.d.ts +0 -2
  223. package/out/test/wallet/list/listActions2.test.d.ts.map +0 -1
  224. package/out/test/wallet/list/listActions2.test.js +0 -1141
  225. package/out/test/wallet/list/listActions2.test.js.map +0 -1
  226. package/out/test/wallet/list/listCertificates.test.d.ts +0 -2
  227. package/out/test/wallet/list/listCertificates.test.d.ts.map +0 -1
  228. package/out/test/wallet/list/listCertificates.test.js +0 -111
  229. package/out/test/wallet/list/listCertificates.test.js.map +0 -1
  230. package/out/test/wallet/list/listOutputs.test.d.ts +0 -2
  231. package/out/test/wallet/list/listOutputs.test.d.ts.map +0 -1
  232. package/out/test/wallet/list/listOutputs.test.js +0 -424
  233. package/out/test/wallet/list/listOutputs.test.js.map +0 -1
  234. package/out/test/wallet/sync/Wallet.sync.test.d.ts +0 -2
  235. package/out/test/wallet/sync/Wallet.sync.test.d.ts.map +0 -1
  236. package/out/test/wallet/sync/Wallet.sync.test.js +0 -155
  237. package/out/test/wallet/sync/Wallet.sync.test.js.map +0 -1
  238. package/out/tsconfig.all.tsbuildinfo +0 -1
  239. package/src/CWIStyleWalletManager.ts +0 -1999
  240. package/src/Setup.ts +0 -579
  241. package/src/SetupClient.ts +0 -322
  242. package/src/SetupWallet.ts +0 -108
  243. package/src/SimpleWalletManager.ts +0 -526
  244. package/src/Wallet.ts +0 -1169
  245. package/src/WalletAuthenticationManager.ts +0 -153
  246. package/src/WalletLogger.ts +0 -213
  247. package/src/WalletPermissionsManager.ts +0 -3660
  248. package/src/WalletSettingsManager.ts +0 -114
  249. package/src/__tests/CWIStyleWalletManager.test.d.ts.map +0 -1
  250. package/src/__tests/CWIStyleWalletManager.test.js.map +0 -1
  251. package/src/__tests/CWIStyleWalletManager.test.ts +0 -675
  252. package/src/__tests/WalletPermissionsManager.callbacks.test.ts +0 -323
  253. package/src/__tests/WalletPermissionsManager.checks.test.ts +0 -844
  254. package/src/__tests/WalletPermissionsManager.encryption.test.ts +0 -412
  255. package/src/__tests/WalletPermissionsManager.fixtures.ts +0 -307
  256. package/src/__tests/WalletPermissionsManager.flows.test.ts +0 -462
  257. package/src/__tests/WalletPermissionsManager.initialization.test.ts +0 -300
  258. package/src/__tests/WalletPermissionsManager.pmodules.test.ts +0 -798
  259. package/src/__tests/WalletPermissionsManager.proxying.test.ts +0 -724
  260. package/src/__tests/WalletPermissionsManager.tokens.test.ts +0 -503
  261. package/src/index.all.ts +0 -27
  262. package/src/index.client.ts +0 -25
  263. package/src/index.mobile.ts +0 -21
  264. package/src/index.ts +0 -1
  265. package/src/monitor/Monitor.ts +0 -412
  266. package/src/monitor/MonitorDaemon.ts +0 -188
  267. package/src/monitor/README.md +0 -3
  268. package/src/monitor/__test/MonitorDaemon.man.test.ts +0 -45
  269. package/src/monitor/tasks/TaskCheckForProofs.ts +0 -243
  270. package/src/monitor/tasks/TaskCheckNoSends.ts +0 -73
  271. package/src/monitor/tasks/TaskClock.ts +0 -33
  272. package/src/monitor/tasks/TaskFailAbandoned.ts +0 -54
  273. package/src/monitor/tasks/TaskMonitorCallHistory.ts +0 -26
  274. package/src/monitor/tasks/TaskNewHeader.ts +0 -93
  275. package/src/monitor/tasks/TaskPurge.ts +0 -68
  276. package/src/monitor/tasks/TaskReorg.ts +0 -89
  277. package/src/monitor/tasks/TaskReviewStatus.ts +0 -48
  278. package/src/monitor/tasks/TaskSendWaiting.ts +0 -122
  279. package/src/monitor/tasks/TaskSyncWhenIdle.ts +0 -26
  280. package/src/monitor/tasks/TaskUnFail.ts +0 -151
  281. package/src/monitor/tasks/WalletMonitorTask.ts +0 -47
  282. package/src/sdk/CertOpsWallet.ts +0 -18
  283. package/src/sdk/PrivilegedKeyManager.ts +0 -372
  284. package/src/sdk/README.md +0 -13
  285. package/src/sdk/WERR_errors.ts +0 -234
  286. package/src/sdk/WalletError.ts +0 -170
  287. package/src/sdk/WalletErrorFromJson.ts +0 -80
  288. package/src/sdk/WalletServices.interfaces.ts +0 -700
  289. package/src/sdk/WalletSigner.interfaces.ts +0 -11
  290. package/src/sdk/WalletStorage.interfaces.ts +0 -606
  291. package/src/sdk/__test/CertificateLifeCycle.test.ts +0 -131
  292. package/src/sdk/__test/PrivilegedKeyManager.test.ts +0 -738
  293. package/src/sdk/__test/WalletError.test.ts +0 -318
  294. package/src/sdk/__test/validationHelpers.test.ts +0 -21
  295. package/src/sdk/index.ts +0 -10
  296. package/src/sdk/types.ts +0 -226
  297. package/src/services/README.md +0 -11
  298. package/src/services/ServiceCollection.ts +0 -248
  299. package/src/services/Services.ts +0 -603
  300. package/src/services/__tests/ARC.man.test.ts +0 -123
  301. package/src/services/__tests/ARC.timeout.man.test.ts +0 -79
  302. package/src/services/__tests/ArcGorillaPool.man.test.ts +0 -108
  303. package/src/services/__tests/arcServices.test.ts +0 -8
  304. package/src/services/__tests/bitrails.test.ts +0 -56
  305. package/src/services/__tests/getMerklePath.test.ts +0 -15
  306. package/src/services/__tests/getRawTx.test.ts +0 -13
  307. package/src/services/__tests/postBeef.test.ts +0 -104
  308. package/src/services/__tests/verifyBeef.test.ts +0 -50
  309. package/src/services/chaintracker/BHServiceClient.ts +0 -212
  310. package/src/services/chaintracker/ChaintracksChainTracker.ts +0 -71
  311. package/src/services/chaintracker/__tests/ChaintracksChainTracker.test.ts +0 -33
  312. package/src/services/chaintracker/__tests/ChaintracksServiceClient.test.ts +0 -29
  313. package/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.ts +0 -72
  314. package/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.ts +0 -83
  315. package/src/services/chaintracker/chaintracks/Api/BulkStorageApi.ts +0 -92
  316. package/src/services/chaintracker/chaintracks/Api/ChaintracksApi.ts +0 -64
  317. package/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.ts +0 -189
  318. package/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.ts +0 -18
  319. package/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.ts +0 -58
  320. package/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.ts +0 -386
  321. package/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.ts +0 -25
  322. package/src/services/chaintracker/chaintracks/Chaintracks.ts +0 -609
  323. package/src/services/chaintracker/chaintracks/ChaintracksService.ts +0 -199
  324. package/src/services/chaintracker/chaintracks/ChaintracksServiceClient.ts +0 -154
  325. package/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.ts +0 -176
  326. package/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.ts +0 -174
  327. package/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.ts +0 -18
  328. package/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.ts +0 -113
  329. package/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.ts +0 -81
  330. package/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.ts +0 -86
  331. package/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.ts +0 -59
  332. package/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.ts +0 -104
  333. package/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.ts +0 -66
  334. package/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.ts +0 -566
  335. package/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.ts +0 -219
  336. package/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.ts +0 -54
  337. package/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.ts +0 -33
  338. package/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.ts +0 -124
  339. package/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.ts +0 -92
  340. package/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.ts +0 -104
  341. package/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.ts +0 -382
  342. package/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.ts +0 -574
  343. package/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.ts +0 -438
  344. package/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageMemory.ts +0 -29
  345. package/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.ts +0 -304
  346. package/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.ts +0 -102
  347. package/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.ts +0 -45
  348. package/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.ts +0 -77
  349. package/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.ts +0 -192
  350. package/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.ts +0 -75
  351. package/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.ts +0 -62
  352. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest349/mainNetBlockHeaders.json +0 -1
  353. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest349/mainNet_0.headers +0 -0
  354. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest349/mainNet_1.headers +0 -0
  355. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest349/mainNet_2.headers +0 -0
  356. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest349/mainNet_3.headers +0 -0
  357. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest379/mainNetBlockHeaders.json +0 -1
  358. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest379/mainNet_0.headers +0 -0
  359. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest379/mainNet_1.headers +0 -0
  360. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest379/mainNet_2.headers +0 -0
  361. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest379/mainNet_3.headers +0 -0
  362. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest399/mainNetBlockHeaders.json +0 -1
  363. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest399/mainNet_0.headers +0 -0
  364. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest399/mainNet_1.headers +0 -0
  365. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest399/mainNet_2.headers +0 -0
  366. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest399/mainNet_3.headers +0 -0
  367. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest402/mainNetBlockHeaders.json +0 -1
  368. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest402/mainNet_0.headers +0 -0
  369. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest402/mainNet_1.headers +0 -0
  370. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest402/mainNet_2.headers +0 -0
  371. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest402/mainNet_3.headers +0 -0
  372. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest402/mainNet_4.headers +0 -0
  373. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest499/mainNetBlockHeaders.json +0 -1
  374. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest499/mainNet_0.headers +0 -0
  375. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest499/mainNet_1.headers +0 -0
  376. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest499/mainNet_2.headers +0 -0
  377. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest499/mainNet_3.headers +0 -0
  378. package/src/services/chaintracker/chaintracks/__tests/data/cdnTest499/mainNet_4.headers +0 -0
  379. package/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.ts +0 -92
  380. package/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.ts +0 -111
  381. package/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.ts +0 -91
  382. package/src/services/chaintracker/chaintracks/createIdbChaintracks.ts +0 -60
  383. package/src/services/chaintracker/chaintracks/createKnexChaintracks.ts +0 -65
  384. package/src/services/chaintracker/chaintracks/createNoDbChaintracks.ts +0 -60
  385. package/src/services/chaintracker/chaintracks/index.all.ts +0 -12
  386. package/src/services/chaintracker/chaintracks/index.client.ts +0 -4
  387. package/src/services/chaintracker/chaintracks/index.mobile.ts +0 -37
  388. package/src/services/chaintracker/chaintracks/util/BulkFileDataManager.ts +0 -975
  389. package/src/services/chaintracker/chaintracks/util/BulkFileDataReader.ts +0 -60
  390. package/src/services/chaintracker/chaintracks/util/BulkFilesReader.ts +0 -336
  391. package/src/services/chaintracker/chaintracks/util/BulkHeaderFile.ts +0 -247
  392. package/src/services/chaintracker/chaintracks/util/ChaintracksFetch.ts +0 -69
  393. package/src/services/chaintracker/chaintracks/util/ChaintracksFs.ts +0 -141
  394. package/src/services/chaintracker/chaintracks/util/HeightRange.ts +0 -153
  395. package/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.ts +0 -76
  396. package/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.ts +0 -304
  397. package/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.ts +0 -60
  398. package/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.ts +0 -67
  399. package/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.ts +0 -49
  400. package/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.ts +0 -573
  401. package/src/services/chaintracker/chaintracks/util/dirtyHashes.ts +0 -29
  402. package/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.ts +0 -432
  403. package/src/services/chaintracker/index.all.ts +0 -4
  404. package/src/services/chaintracker/index.client.ts +0 -4
  405. package/src/services/chaintracker/index.mobile.ts +0 -4
  406. package/src/services/createDefaultWalletServicesOptions.ts +0 -77
  407. package/src/services/index.ts +0 -1
  408. package/src/services/processingErrors/arcSuccessError.json +0 -76
  409. package/src/services/providers/ARC.ts +0 -350
  410. package/src/services/providers/Bitails.ts +0 -256
  411. package/src/services/providers/SdkWhatsOnChain.ts +0 -83
  412. package/src/services/providers/WhatsOnChain.ts +0 -883
  413. package/src/services/providers/__tests/WhatsOnChain.test.ts +0 -242
  414. package/src/services/providers/__tests/exchangeRates.test.ts +0 -18
  415. package/src/services/providers/exchangeRates.ts +0 -265
  416. package/src/services/providers/getBeefForTxid.ts +0 -369
  417. package/src/signer/README.md +0 -5
  418. package/src/signer/WalletSigner.ts +0 -17
  419. package/src/signer/methods/acquireDirectCertificate.ts +0 -52
  420. package/src/signer/methods/buildSignableTransaction.ts +0 -183
  421. package/src/signer/methods/completeSignedTransaction.ts +0 -117
  422. package/src/signer/methods/createAction.ts +0 -172
  423. package/src/signer/methods/internalizeAction.ts +0 -106
  424. package/src/signer/methods/proveCertificate.ts +0 -43
  425. package/src/signer/methods/signAction.ts +0 -54
  426. package/src/storage/README.md +0 -14
  427. package/src/storage/StorageIdb.ts +0 -2304
  428. package/src/storage/StorageKnex.ts +0 -1425
  429. package/src/storage/StorageProvider.ts +0 -810
  430. package/src/storage/StorageReader.ts +0 -194
  431. package/src/storage/StorageReaderWriter.ts +0 -432
  432. package/src/storage/StorageSyncReader.ts +0 -34
  433. package/src/storage/WalletStorageManager.ts +0 -943
  434. package/src/storage/__test/StorageIdb.test.ts +0 -43
  435. package/src/storage/__test/WalletStorageManager.test.ts +0 -275
  436. package/src/storage/__test/adminStats.man.test.ts +0 -89
  437. package/src/storage/__test/getBeefForTransaction.test.ts +0 -385
  438. package/src/storage/index.all.ts +0 -11
  439. package/src/storage/index.client.ts +0 -7
  440. package/src/storage/index.mobile.ts +0 -6
  441. package/src/storage/methods/ListActionsSpecOp.ts +0 -70
  442. package/src/storage/methods/ListOutputsSpecOp.ts +0 -129
  443. package/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.ts +0 -1057
  444. package/src/storage/methods/__test/GenerateChange/randomValsUsed1.ts +0 -20
  445. package/src/storage/methods/__test/offsetKey.test.ts +0 -274
  446. package/src/storage/methods/attemptToPostReqsToNetwork.ts +0 -389
  447. package/src/storage/methods/createAction.ts +0 -947
  448. package/src/storage/methods/generateChange.ts +0 -556
  449. package/src/storage/methods/getBeefForTransaction.ts +0 -139
  450. package/src/storage/methods/getSyncChunk.ts +0 -293
  451. package/src/storage/methods/internalizeAction.ts +0 -562
  452. package/src/storage/methods/listActionsIdb.ts +0 -183
  453. package/src/storage/methods/listActionsKnex.ts +0 -226
  454. package/src/storage/methods/listCertificates.ts +0 -73
  455. package/src/storage/methods/listOutputsIdb.ts +0 -203
  456. package/src/storage/methods/listOutputsKnex.ts +0 -263
  457. package/src/storage/methods/offsetKey.ts +0 -89
  458. package/src/storage/methods/processAction.ts +0 -420
  459. package/src/storage/methods/purgeData.ts +0 -251
  460. package/src/storage/methods/purgeDataIdb.ts +0 -10
  461. package/src/storage/methods/reviewStatus.ts +0 -101
  462. package/src/storage/methods/reviewStatusIdb.ts +0 -43
  463. package/src/storage/methods/utils.Buffer.ts +0 -33
  464. package/src/storage/methods/utils.ts +0 -56
  465. package/src/storage/remoting/StorageClient.ts +0 -567
  466. package/src/storage/remoting/StorageMobile.ts +0 -544
  467. package/src/storage/remoting/StorageServer.ts +0 -291
  468. package/src/storage/remoting/__test/StorageClient.test.ts +0 -113
  469. package/src/storage/schema/KnexMigrations.ts +0 -489
  470. package/src/storage/schema/StorageIdbSchema.ts +0 -150
  471. package/src/storage/schema/entities/EntityBase.ts +0 -210
  472. package/src/storage/schema/entities/EntityCertificate.ts +0 -188
  473. package/src/storage/schema/entities/EntityCertificateField.ts +0 -136
  474. package/src/storage/schema/entities/EntityCommission.ts +0 -148
  475. package/src/storage/schema/entities/EntityOutput.ts +0 -290
  476. package/src/storage/schema/entities/EntityOutputBasket.ts +0 -153
  477. package/src/storage/schema/entities/EntityOutputTag.ts +0 -121
  478. package/src/storage/schema/entities/EntityOutputTagMap.ts +0 -123
  479. package/src/storage/schema/entities/EntityProvenTx.ts +0 -319
  480. package/src/storage/schema/entities/EntityProvenTxReq.ts +0 -580
  481. package/src/storage/schema/entities/EntitySyncState.ts +0 -389
  482. package/src/storage/schema/entities/EntityTransaction.ts +0 -306
  483. package/src/storage/schema/entities/EntityTxLabel.ts +0 -121
  484. package/src/storage/schema/entities/EntityTxLabelMap.ts +0 -123
  485. package/src/storage/schema/entities/EntityUser.ts +0 -112
  486. package/src/storage/schema/entities/MergeEntity.ts +0 -73
  487. package/src/storage/schema/entities/__tests/CertificateFieldTests.test.ts +0 -353
  488. package/src/storage/schema/entities/__tests/CertificateTests.test.ts +0 -354
  489. package/src/storage/schema/entities/__tests/CommissionTests.test.ts +0 -371
  490. package/src/storage/schema/entities/__tests/OutputBasketTests.test.ts +0 -278
  491. package/src/storage/schema/entities/__tests/OutputTagMapTests.test.ts +0 -242
  492. package/src/storage/schema/entities/__tests/OutputTagTests.test.ts +0 -288
  493. package/src/storage/schema/entities/__tests/OutputTests.test.ts +0 -464
  494. package/src/storage/schema/entities/__tests/ProvenTxReqTests.test.ts +0 -340
  495. package/src/storage/schema/entities/__tests/ProvenTxTests.test.ts +0 -504
  496. package/src/storage/schema/entities/__tests/SyncStateTests.test.ts +0 -288
  497. package/src/storage/schema/entities/__tests/TransactionTests.test.ts +0 -604
  498. package/src/storage/schema/entities/__tests/TxLabelMapTests.test.ts +0 -361
  499. package/src/storage/schema/entities/__tests/TxLabelTests.test.ts +0 -198
  500. package/src/storage/schema/entities/__tests/stampLogTests.test.ts +0 -90
  501. package/src/storage/schema/entities/__tests/usersTests.test.ts +0 -340
  502. package/src/storage/schema/entities/index.ts +0 -16
  503. package/src/storage/schema/tables/TableCertificate.ts +0 -21
  504. package/src/storage/schema/tables/TableCertificateField.ts +0 -12
  505. package/src/storage/schema/tables/TableCommission.ts +0 -13
  506. package/src/storage/schema/tables/TableMonitorEvent.ts +0 -9
  507. package/src/storage/schema/tables/TableOutput.ts +0 -64
  508. package/src/storage/schema/tables/TableOutputBasket.ts +0 -12
  509. package/src/storage/schema/tables/TableOutputTag.ts +0 -10
  510. package/src/storage/schema/tables/TableOutputTagMap.ts +0 -9
  511. package/src/storage/schema/tables/TableProvenTx.ts +0 -14
  512. package/src/storage/schema/tables/TableProvenTxReq.ts +0 -65
  513. package/src/storage/schema/tables/TableSettings.ts +0 -17
  514. package/src/storage/schema/tables/TableSyncState.ts +0 -18
  515. package/src/storage/schema/tables/TableTransaction.ts +0 -54
  516. package/src/storage/schema/tables/TableTxLabel.ts +0 -10
  517. package/src/storage/schema/tables/TableTxLabelMap.ts +0 -9
  518. package/src/storage/schema/tables/TableUser.ts +0 -16
  519. package/src/storage/schema/tables/index.ts +0 -16
  520. package/src/storage/sync/StorageMySQLDojoReader.ts +0 -696
  521. package/src/storage/sync/index.ts +0 -1
  522. package/src/utility/Format.ts +0 -133
  523. package/src/utility/README.md +0 -3
  524. package/src/utility/ReaderUint8Array.ts +0 -187
  525. package/src/utility/ScriptTemplateBRC29.ts +0 -73
  526. package/src/utility/__tests/utilityHelpers.noBuffer.test.ts +0 -109
  527. package/src/utility/aggregateResults.ts +0 -68
  528. package/src/utility/identityUtils.ts +0 -159
  529. package/src/utility/index.all.ts +0 -7
  530. package/src/utility/index.client.ts +0 -7
  531. package/src/utility/parseTxScriptOffsets.ts +0 -29
  532. package/src/utility/stampLog.ts +0 -69
  533. package/src/utility/tscProofToMerklePath.ts +0 -48
  534. package/src/utility/utilityHelpers.buffer.ts +0 -34
  535. package/src/utility/utilityHelpers.noBuffer.ts +0 -60
  536. package/src/utility/utilityHelpers.ts +0 -275
  537. package/src/wab-client/WABClient.ts +0 -94
  538. package/src/wab-client/__tests/WABClient.man.test.ts +0 -59
  539. package/src/wab-client/auth-method-interactors/AuthMethodInteractor.ts +0 -47
  540. package/src/wab-client/auth-method-interactors/DevConsoleInteractor.ts +0 -73
  541. package/src/wab-client/auth-method-interactors/PersonaIDInteractor.ts +0 -35
  542. package/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.ts +0 -72
  543. package/syncVersions.js +0 -71
  544. package/test/Wallet/StorageClient/storageClient.man.test.ts +0 -75
  545. package/test/Wallet/action/internalizeAction.a.test.ts +0 -286
  546. package/test/Wallet/certificate/acquireCertificate.test.ts +0 -298
  547. package/test/Wallet/certificate/listCertificates.test.ts +0 -346
  548. package/test/Wallet/get/getHeaderForHeight.test.ts +0 -82
  549. package/test/Wallet/get/getHeight.test.ts +0 -52
  550. package/test/Wallet/get/getKnownTxids.test.ts +0 -86
  551. package/test/Wallet/get/getNetwork.test.ts +0 -27
  552. package/test/Wallet/get/getVersion.test.ts +0 -27
  553. package/test/Wallet/live/walletLive.man.test.ts +0 -521
  554. package/test/Wallet/local/localWallet.man.test.ts +0 -93
  555. package/test/Wallet/local/localWallet2.man.test.ts +0 -277
  556. package/test/Wallet/signAction/mountaintop.man.test.ts +0 -130
  557. package/test/Wallet/specOps/specOps.man.test.ts +0 -220
  558. package/test/Wallet/support/janitor.man.test.ts +0 -40
  559. package/test/Wallet/support/operations.man.test.ts +0 -407
  560. package/test/Wallet/support/reqErrorReview.2025.05.06.man.test.ts +0 -347
  561. package/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.ts +0 -203
  562. package/test/Wallet/sync/setActive.test.ts +0 -170
  563. package/test/WalletClient/LocalKVStore.man.test.ts +0 -114
  564. package/test/WalletClient/WERR.man.test.ts +0 -35
  565. package/test/bsv-ts-sdk/LocalKVStore.test.ts +0 -102
  566. package/test/checkDB.ts +0 -57
  567. package/test/checkdb +0 -0
  568. package/test/examples/backup.man.test.ts +0 -59
  569. package/test/examples/pushdrop.test.ts +0 -282
  570. package/test/monitor/Monitor.test.ts +0 -620
  571. package/test/services/Services.test.ts +0 -263
  572. package/test/storage/KnexMigrations.test.ts +0 -86
  573. package/test/storage/StorageMySQLDojoReader.man.test.ts +0 -60
  574. package/test/storage/count.test.ts +0 -177
  575. package/test/storage/find.test.ts +0 -195
  576. package/test/storage/findLegacy.test.ts +0 -67
  577. package/test/storage/idb/allocateChange.test.ts +0 -251
  578. package/test/storage/idb/count.test.ts +0 -158
  579. package/test/storage/idb/find.test.ts +0 -177
  580. package/test/storage/idb/idbSpeed.test.ts +0 -36
  581. package/test/storage/idb/insert.test.ts +0 -268
  582. package/test/storage/idb/transactionAbort.test.ts +0 -108
  583. package/test/storage/idb/update.test.ts +0 -999
  584. package/test/storage/insert.test.ts +0 -278
  585. package/test/storage/update.test.ts +0 -1021
  586. package/test/storage/update2.test.ts +0 -897
  587. package/test/utils/TestUtilsWalletStorage.ts +0 -2526
  588. package/test/utils/localWalletMethods.ts +0 -363
  589. package/test/utils/removeFailedFromDatabase.sql +0 -17
  590. package/test/wallet/action/abortAction.test.ts +0 -47
  591. package/test/wallet/action/createAction.test.ts +0 -299
  592. package/test/wallet/action/createAction2.test.ts +0 -1273
  593. package/test/wallet/action/createActionToGenerateBeefs.man.test.ts +0 -293
  594. package/test/wallet/action/internalizeAction.test.ts +0 -682
  595. package/test/wallet/action/relinquishOutput.test.ts +0 -37
  596. package/test/wallet/construct/Wallet.constructor.test.ts +0 -57
  597. package/test/wallet/list/listActions.test.ts +0 -279
  598. package/test/wallet/list/listActions2.test.ts +0 -1381
  599. package/test/wallet/list/listCertificates.test.ts +0 -118
  600. package/test/wallet/list/listOutputs.test.ts +0 -447
  601. package/test/wallet/sync/Wallet.sync.test.ts +0 -215
  602. package/ts2md.json +0 -44
  603. package/tsconfig.all.json +0 -31
  604. package/tsconfig.client.json +0 -29
  605. package/tsconfig.json +0 -17
  606. package/tsconfig.mobile.json +0 -28
@@ -1,60 +0,0 @@
1
- import { WERR_INTERNAL } from '../../../../sdk'
2
- import { BulkFileDataManager } from './BulkFileDataManager'
3
- import { BulkHeaderFileInfo } from './BulkHeaderFile'
4
- import { HeightRange } from './HeightRange'
5
-
6
- export class BulkFileDataReader {
7
- readonly manager: BulkFileDataManager
8
- readonly range: HeightRange
9
- readonly maxBufferSize: number
10
- nextHeight: number
11
-
12
- constructor(manager: BulkFileDataManager, range: HeightRange, maxBufferSize: number) {
13
- this.manager = manager
14
- this.range = range
15
- this.maxBufferSize = maxBufferSize
16
- this.nextHeight = range.minHeight
17
- }
18
-
19
- /**
20
- * Returns the Buffer of block headers from the given `file` for the given `range`.
21
- * If `range` is undefined, the file's full height range is read.
22
- * The returned Buffer will only contain headers in `file` and in `range`
23
- * @param file
24
- * @param range
25
- */
26
- private async readBufferFromFile(file: BulkHeaderFileInfo, range?: HeightRange): Promise<Uint8Array | undefined> {
27
- // Constrain the range to the file's contents...
28
- let fileRange = new HeightRange(file.firstHeight, file.firstHeight + file.count - 1)
29
- if (range) fileRange = fileRange.intersect(range)
30
- if (fileRange.isEmpty) return undefined
31
- const offset = (fileRange.minHeight - file.firstHeight) * 80
32
- const length = fileRange.length * 80
33
- return await this.manager.getDataFromFile(file, offset, length)
34
- }
35
-
36
- /**
37
- * @returns an array containing the next `maxBufferSize` bytes of headers from the files.
38
- */
39
- async read(): Promise<Uint8Array | undefined> {
40
- if (this.nextHeight === undefined || !this.range || this.range.isEmpty || this.nextHeight > this.range.maxHeight)
41
- return undefined
42
- let lastHeight = this.nextHeight + this.maxBufferSize / 80 - 1
43
- lastHeight = Math.min(lastHeight, this.range.maxHeight)
44
- let file = await this.manager.getFileForHeight(this.nextHeight)
45
- if (!file) throw new WERR_INTERNAL(`logic error`)
46
- const readRange = new HeightRange(this.nextHeight, lastHeight)
47
- let buffers = new Uint8Array(readRange.length * 80)
48
- let offset = 0
49
- while (file) {
50
- const buffer = await this.readBufferFromFile(file, readRange)
51
- if (!buffer) break
52
- buffers.set(buffer, offset)
53
- offset += buffer.length
54
- file = await this.manager.getFileForHeight(file.firstHeight + file.count)
55
- }
56
- if (!buffers.length || offset !== readRange.length * 80) return undefined
57
- this.nextHeight = lastHeight + 1
58
- return buffers
59
- }
60
- }
@@ -1,336 +0,0 @@
1
- import { HeightRange } from './HeightRange'
2
- import { deserializeBaseBlockHeader, validateBufferOfHeaders } from './blockHeaderUtilities'
3
- import { BaseBlockHeader } from '../../../../sdk/WalletServices.interfaces'
4
- import { asArray, asString, asUint8Array } from '../../../../utility/utilityHelpers.noBuffer'
5
- import { ChaintracksFsApi } from '../Api/ChaintracksFsApi'
6
- import { Hash } from '@bsv/sdk'
7
- import { WERR_INTERNAL, WERR_INVALID_OPERATION, WERR_INVALID_PARAMETER } from '../../../../sdk'
8
- import { ChaintracksStorageBase } from '../Storage/ChaintracksStorageBase'
9
- import { ChaintracksFetchApi } from '../Api/ChaintracksFetchApi'
10
- import {
11
- BulkHeaderFile,
12
- BulkHeaderFileFs,
13
- BulkHeaderFileInfo,
14
- BulkHeaderFilesInfo,
15
- BulkHeaderFileStorage
16
- } from './BulkHeaderFile'
17
-
18
- /**
19
- * Breaks available bulk headers stored in multiple files into a sequence of buffers with
20
- * limited maximum size.
21
- */
22
- export class BulkFilesReader {
23
- /**
24
- * Previously validated bulk header files which may pull data from backing storage on demand.
25
- */
26
- files: BulkHeaderFile[]
27
- /**
28
- * Subset of headers currently being "read".
29
- */
30
- range: HeightRange
31
- /**
32
- * Maximum buffer size returned from `read()` in bytes.
33
- */
34
- maxBufferSize = 400 * 80
35
- /**
36
- * "Read pointer", the next height to be "read".
37
- */
38
- nextHeight: number | undefined
39
-
40
- constructor(files: BulkHeaderFile[], range?: HeightRange, maxBufferSize?: number) {
41
- this.files = files
42
- this.range = HeightRange.empty
43
- this.setRange(range)
44
- this.setMaxBufferSize(maxBufferSize || 400 * 80)
45
- }
46
-
47
- protected setRange(range?: HeightRange) {
48
- this.range = this.heightRange
49
- if (range) {
50
- this.range = this.range.intersect(range)
51
- }
52
- this.nextHeight = this.range.isEmpty ? undefined : this.range.minHeight
53
- }
54
-
55
- setMaxBufferSize(maxBufferSize: number | undefined) {
56
- this.maxBufferSize = maxBufferSize || 400 * 80
57
- if (this.maxBufferSize % 80 !== 0) throw new Error('maxBufferSize must be a multiple of 80 bytes.')
58
- }
59
-
60
- private getLastFile(): BulkHeaderFileInfo | undefined {
61
- return this.files[this.files.length - 1]
62
- }
63
-
64
- get heightRange(): HeightRange {
65
- const last = this.getLastFile()
66
- if (!last || !this.files) return HeightRange.empty
67
- const first = this.files[0]
68
- return new HeightRange(first.firstHeight, last.firstHeight + last.count - 1)
69
- }
70
-
71
- private getFileForHeight(height: number): BulkHeaderFile | undefined {
72
- if (!this.files) return undefined
73
- return this.files.find(file => file.firstHeight <= height && file.firstHeight + file.count > height)
74
- }
75
-
76
- async readBufferForHeightOrUndefined(height: number): Promise<Uint8Array | undefined> {
77
- const file = this.getFileForHeight(height)
78
- if (!file) return undefined
79
- const buffer = await file.readDataFromFile(80, (height - file.firstHeight) * 80)
80
- return buffer
81
- }
82
-
83
- async readBufferForHeight(height: number): Promise<Uint8Array> {
84
- const header = await this.readBufferForHeightOrUndefined(height)
85
- if (!header) throw new Error(`Failed to read bulk header buffer at height=${height}`)
86
- return header
87
- }
88
-
89
- async readHeaderForHeight(height: number): Promise<BaseBlockHeader> {
90
- const buffer = await this.readBufferForHeight(height)
91
- return deserializeBaseBlockHeader(buffer, 0)
92
- }
93
-
94
- async readHeaderForHeightOrUndefined(height: number): Promise<BaseBlockHeader | undefined> {
95
- const buffer = await this.readBufferForHeightOrUndefined(height)
96
- return buffer ? deserializeBaseBlockHeader(buffer, 0) : undefined
97
- }
98
-
99
- /**
100
- * Returns the Buffer of block headers from the given `file` for the given `range`.
101
- * If `range` is undefined, the file's full height range is read.
102
- * The returned Buffer will only contain headers in `file` and in `range`
103
- * @param file
104
- * @param range
105
- */
106
- private async readBufferFromFile(file: BulkHeaderFile, range?: HeightRange): Promise<Uint8Array | undefined> {
107
- // Constrain the range to the file's contents...
108
- let fileRange = file.heightRange
109
- if (range) fileRange = fileRange.intersect(range)
110
- if (fileRange.isEmpty) return undefined
111
- const position = (fileRange.minHeight - file.firstHeight) * 80
112
- const length = fileRange.length * 80
113
- return await file.readDataFromFile(length, position)
114
- }
115
-
116
- private nextFile(file: BulkHeaderFile | undefined): BulkHeaderFile | undefined {
117
- if (!file) return this.files[0]
118
- const i = this.files.indexOf(file)
119
- if (i < 0) throw new WERR_INVALID_PARAMETER(`file`, `a valid file from this.files`)
120
- return this.files[i + 1]
121
- }
122
-
123
- /**
124
- * @returns an array containing the next `maxBufferSize` bytes of headers from the files.
125
- */
126
- async read(): Promise<Uint8Array | undefined> {
127
- if (this.nextHeight === undefined || !this.range || this.nextHeight > this.range.maxHeight) return undefined
128
- let lastHeight = this.nextHeight + this.maxBufferSize / 80 - 1
129
- lastHeight = Math.min(lastHeight, this.range.maxHeight)
130
- let file = this.getFileForHeight(this.nextHeight)
131
- if (!file) throw new WERR_INTERNAL(`logic error`)
132
- const readRange = new HeightRange(this.nextHeight, lastHeight)
133
- let buffers = new Uint8Array(readRange.length * 80)
134
- let offset = 0
135
- while (file) {
136
- const buffer = await this.readBufferFromFile(file, readRange)
137
- if (!buffer) break
138
- buffers.set(buffer, offset)
139
- offset += buffer.length
140
- file = this.nextFile(file)
141
- }
142
- if (!buffers.length || offset !== readRange.length * 80) return undefined
143
- this.nextHeight = lastHeight + 1
144
- return buffers
145
- }
146
-
147
- /**
148
- * Reset the reading process and adjust the range to be read to a new subset of what's available...
149
- * @param range new range for subsequent `read` calls to return.
150
- * @param maxBufferSize optionally update largest buffer size for `read` to return
151
- */
152
- resetRange(range: HeightRange, maxBufferSize?: number) {
153
- this.setRange(range)
154
- this.setMaxBufferSize(maxBufferSize || 400 * 80)
155
- }
156
-
157
- async validateFiles(): Promise<void> {
158
- let lastChainWork: string | undefined = '00'.repeat(32)
159
- let lastHeaderHash = '00'.repeat(32)
160
- for (const file of this.files) {
161
- if (file.prevChainWork !== lastChainWork)
162
- throw new WERR_INVALID_OPERATION(
163
- `prevChainWork mismatch for file ${file.fileName}: expected ${file.prevChainWork}, got ${lastChainWork}`
164
- )
165
- if (file.prevHash !== lastHeaderHash)
166
- throw new WERR_INVALID_OPERATION(
167
- `prevHash mismatch for file ${file.fileName}: expected ${file.prevHash}, got ${lastHeaderHash}`
168
- )
169
- const data = await file.ensureData()
170
- if (data.length !== file.count * 80)
171
- throw new WERR_INVALID_OPERATION(
172
- `data length mismatch for file ${file.fileName}: expected ${file.count * 80} bytes, got ${data.length} bytes`
173
- )
174
- const fileHash = await file.computeFileHash()
175
- if (!file.fileHash) throw new WERR_INVALID_OPERATION(`fileHash missing for file ${file.fileName}`)
176
- if (file.fileHash !== fileHash)
177
- throw new WERR_INVALID_OPERATION(
178
- `fileHash mismatch for file ${file.fileName}: expected ${file.fileHash}, got ${fileHash}`
179
- )
180
- ;({ lastHeaderHash, lastChainWork } = validateBufferOfHeaders(data, lastHeaderHash, 0, file.count, lastChainWork))
181
-
182
- if (file.lastHash !== lastHeaderHash)
183
- throw new WERR_INVALID_OPERATION(
184
- `lastHash mismatch for file ${file.fileName}: expected ${file.lastHash}, got ${lastHeaderHash}`
185
- )
186
- if (file.lastChainWork !== lastChainWork)
187
- throw new WERR_INVALID_OPERATION(
188
- `lastChainWork mismatch for file ${file.fileName}: expected ${file.lastChainWork}, got ${lastChainWork}`
189
- )
190
-
191
- file.validated = true
192
- }
193
- }
194
-
195
- async exportHeadersToFs(toFs: ChaintracksFsApi, toHeadersPerFile: number, toFolder: string): Promise<void> {
196
- if (!this.files || this.files.length === 0 || this.files[0].count === 0)
197
- throw new WERR_INVALID_OPERATION('no headers currently available to export')
198
- if (!this.files[0].chain) throw new WERR_INVALID_OPERATION('chain is not defined for the first file')
199
-
200
- const chain = this.files[0].chain
201
- const toFileName = (i: number) => `${chain}Net_${i}.headers`
202
- const toPath = (i: number) => toFs.pathJoin(toFolder, toFileName(i))
203
- const toJsonPath = () => toFs.pathJoin(toFolder, `${chain}NetBlockHeaders.json`)
204
-
205
- const toBulkFiles: BulkHeaderFilesInfo = {
206
- rootFolder: toFolder,
207
- jsonFilename: `${chain}NetBlockHeaders.json`,
208
- headersPerFile: toHeadersPerFile,
209
- files: []
210
- }
211
-
212
- const bf0 = this.files[0]
213
-
214
- let firstHeight = bf0.firstHeight
215
- let lastHeaderHash = bf0.prevHash
216
- let lastChainWork = bf0.prevChainWork!
217
-
218
- const reader = new BulkFilesReader(this.files, this.heightRange, toHeadersPerFile * 80)
219
-
220
- let i = -1
221
- for (;;) {
222
- i++
223
- const data = await reader.read()
224
- if (!data || data.length === 0) {
225
- break
226
- }
227
-
228
- const last = validateBufferOfHeaders(data, lastHeaderHash, 0, undefined, lastChainWork)
229
-
230
- await toFs.writeFile(toPath(i), data)
231
-
232
- const fileHash = asString(Hash.sha256(asArray(data)), 'base64')
233
- const file: BulkHeaderFileInfo = {
234
- chain,
235
- count: data.length / 80,
236
- fileHash,
237
- fileName: toFileName(i),
238
- firstHeight,
239
- lastChainWork: last.lastChainWork!,
240
- lastHash: last.lastHeaderHash,
241
- prevChainWork: lastChainWork,
242
- prevHash: lastHeaderHash
243
- }
244
- toBulkFiles.files.push(file)
245
- firstHeight += file.count
246
- lastHeaderHash = file.lastHash!
247
- lastChainWork = file.lastChainWork!
248
- }
249
-
250
- await toFs.writeFile(toJsonPath(), asUint8Array(JSON.stringify(toBulkFiles), 'utf8'))
251
- }
252
- }
253
-
254
- export class BulkFilesReaderFs extends BulkFilesReader {
255
- constructor(
256
- public fs: ChaintracksFsApi,
257
- files: BulkHeaderFileFs[],
258
- range?: HeightRange,
259
- maxBufferSize?: number
260
- ) {
261
- super(files, range, maxBufferSize)
262
- }
263
-
264
- /**
265
- * Return a BulkFilesReader configured to access the intersection of `range` and available headers.
266
- * @param rootFolder
267
- * @param jsonFilename
268
- * @param range
269
- * @returns
270
- */
271
- static async fromFs(
272
- fs: ChaintracksFsApi,
273
- rootFolder: string,
274
- jsonFilename: string,
275
- range?: HeightRange,
276
- maxBufferSize?: number
277
- ): Promise<BulkFilesReaderFs> {
278
- const filesInfo = await this.readJsonFile(fs, rootFolder, jsonFilename)
279
- const readerFiles = filesInfo.files.map(file => new BulkHeaderFileFs(file, fs, rootFolder))
280
- return new BulkFilesReaderFs(fs, readerFiles, range, maxBufferSize)
281
- }
282
-
283
- static async writeEmptyJsonFile(fs: ChaintracksFsApi, rootFolder: string, jsonFilename: string): Promise<string> {
284
- const json = JSON.stringify({ files: [], rootFolder })
285
- await fs.writeFile(fs.pathJoin(rootFolder, jsonFilename), asUint8Array(json, 'utf8'))
286
- return json
287
- }
288
-
289
- static async readJsonFile(
290
- fs: ChaintracksFsApi,
291
- rootFolder: string,
292
- jsonFilename: string,
293
- failToEmptyRange: boolean = true
294
- ): Promise<BulkHeaderFilesInfo> {
295
- const filePath = (file: string) => fs.pathJoin(rootFolder, file)
296
-
297
- const jsonPath = filePath(jsonFilename)
298
-
299
- let json: string
300
-
301
- try {
302
- json = asString(await fs.readFile(jsonPath), 'utf8')
303
- } catch (uerr: unknown) {
304
- if (!failToEmptyRange)
305
- throw new WERR_INVALID_PARAMETER(`${rootFolder}/${jsonFilename}`, `a valid, existing JSON file.`)
306
- json = await this.writeEmptyJsonFile(fs, rootFolder, jsonFilename)
307
- }
308
-
309
- const readerFiles = <BulkHeaderFilesInfo>JSON.parse(json)
310
- readerFiles.jsonFilename = jsonFilename
311
- readerFiles.rootFolder = rootFolder
312
- return readerFiles
313
- }
314
- }
315
-
316
- export class BulkFilesReaderStorage extends BulkFilesReader {
317
- constructor(
318
- storage: ChaintracksStorageBase,
319
- files: BulkHeaderFileStorage[],
320
- range?: HeightRange,
321
- maxBufferSize?: number
322
- ) {
323
- super(files, range, maxBufferSize)
324
- }
325
-
326
- static async fromStorage(
327
- storage: ChaintracksStorageBase,
328
- fetch?: ChaintracksFetchApi,
329
- range?: HeightRange,
330
- maxBufferSize?: number
331
- ): Promise<BulkFilesReaderStorage> {
332
- const files = await storage.bulkManager.getBulkFiles(true)
333
- const readerFiles = files.map(file => new BulkHeaderFileStorage(file, storage, fetch))
334
- return new BulkFilesReaderStorage(storage, readerFiles, range, maxBufferSize)
335
- }
336
- }
@@ -1,247 +0,0 @@
1
- import { HeightRange } from './HeightRange'
2
- import { ChaintracksFsApi } from '../Api/ChaintracksFsApi'
3
- import { ChaintracksFetchApi } from '../Api/ChaintracksFetchApi'
4
- import { ChaintracksStorageBase } from '../Storage/ChaintracksStorageBase'
5
- import { Hash } from '@bsv/sdk'
6
- import { Chain } from '../../../../sdk/types'
7
- import { WERR_INVALID_OPERATION, WERR_INVALID_PARAMETER } from '../../../../sdk/WERR_errors'
8
- import { asArray, asString } from '../../../../utility/utilityHelpers.noBuffer'
9
-
10
- /**
11
- * Descriptive information about a single bulk header file.
12
- */
13
- export interface BulkHeaderFileInfo {
14
- /**
15
- * filename and extension, no path
16
- */
17
- fileName: string
18
- /**
19
- * chain height of first header in file
20
- */
21
- firstHeight: number
22
- /**
23
- * count of how many headers the file contains. File size must be 80 * count.
24
- */
25
- count: number
26
- /**
27
- * prevChainWork is the cummulative chain work up to the first header in this file's data, as a hex string.
28
- */
29
- prevChainWork: string
30
- /**
31
- * lastChainWork is the cummulative chain work including the last header in this file's data, as a hex string.
32
- */
33
- lastChainWork: string
34
- /**
35
- * previousHash of first header in file in standard hex string block hash encoding
36
- */
37
- prevHash: string
38
- /**
39
- * block hash of last header in the file in standard hex string block hash encoding
40
- */
41
- lastHash: string | null
42
- /**
43
- * file contents single sha256 hash as base64 string
44
- */
45
- fileHash: string | null
46
- /**
47
- * Which chain: 'main' or 'test'
48
- */
49
- chain?: Chain
50
-
51
- data?: Uint8Array // optional, used for validation
52
-
53
- /**
54
- * true iff these properties should be considered pre-validated, including a valid required fileHash of data (when not undefined).
55
- */
56
- validated?: boolean
57
- /**
58
- * optional, used for database storage
59
- */
60
- fileId?: number
61
- /**
62
- * optional, if valid `${sourceUrl}/${fileName}` is the source of this data.
63
- */
64
- sourceUrl?: string
65
- }
66
-
67
- export abstract class BulkHeaderFile implements BulkHeaderFileInfo {
68
- chain?: Chain | undefined
69
- count: number
70
- data?: Uint8Array<ArrayBufferLike> | undefined
71
- fileHash: string | null
72
- fileId?: number | undefined
73
- fileName: string
74
- firstHeight: number
75
- lastChainWork: string
76
- lastHash: string | null
77
- prevChainWork: string
78
- prevHash: string
79
- sourceUrl?: string | undefined
80
- validated?: boolean | undefined
81
-
82
- constructor(info: BulkHeaderFileInfo) {
83
- this.chain = info.chain
84
- this.count = info.count
85
- this.data = info.data
86
- this.fileHash = info.fileHash
87
- this.fileId = info.fileId
88
- this.fileName = info.fileName
89
- this.firstHeight = info.firstHeight
90
- this.lastChainWork = info.lastChainWork
91
- this.lastHash = info.lastHash
92
- this.prevChainWork = info.prevChainWork
93
- this.prevHash = info.prevHash
94
- this.sourceUrl = info.sourceUrl
95
- this.validated = info.validated
96
- }
97
-
98
- abstract readDataFromFile(length: number, offset: number): Promise<Uint8Array | undefined>
99
-
100
- get heightRange(): HeightRange {
101
- return new HeightRange(this.firstHeight, this.firstHeight + this.count - 1)
102
- }
103
-
104
- async ensureData(): Promise<Uint8Array> {
105
- if (!this.data) throw new WERR_INVALID_OPERATION(`data is undefined and no ensureData() override`)
106
- return this.data
107
- }
108
-
109
- /**
110
- * Whenever reloading data from a backing store, validated fileHash must be re-verified
111
- * @returns the sha256 hash of the file's data as base64 string.
112
- */
113
- async computeFileHash(): Promise<string> {
114
- if (!this.data) throw new WERR_INVALID_OPERATION(`requires defined data`)
115
- return asString(Hash.sha256(asArray(this.data)), 'base64')
116
- }
117
-
118
- async releaseData(): Promise<void> {
119
- this.data = undefined
120
- }
121
-
122
- toCdnInfo(): BulkHeaderFileInfo {
123
- return {
124
- count: this.count,
125
- fileHash: this.fileHash,
126
- fileName: this.fileName,
127
- firstHeight: this.firstHeight,
128
- lastChainWork: this.lastChainWork,
129
- lastHash: this.lastHash,
130
- prevChainWork: this.prevChainWork,
131
- prevHash: this.prevHash
132
- }
133
- }
134
-
135
- toStorageInfo(): BulkHeaderFileInfo {
136
- return {
137
- count: this.count,
138
- fileHash: this.fileHash,
139
- fileName: this.fileName,
140
- firstHeight: this.firstHeight,
141
- lastChainWork: this.lastChainWork,
142
- lastHash: this.lastHash,
143
- prevChainWork: this.prevChainWork,
144
- prevHash: this.prevHash,
145
- chain: this.chain,
146
- validated: this.validated,
147
- sourceUrl: this.sourceUrl,
148
- fileId: this.fileId
149
- }
150
- }
151
- }
152
-
153
- export class BulkHeaderFileFs extends BulkHeaderFile {
154
- constructor(
155
- info: BulkHeaderFileInfo,
156
- public fs: ChaintracksFsApi,
157
- public rootFolder: string
158
- ) {
159
- super(info)
160
- }
161
-
162
- override async readDataFromFile(length: number, offset: number): Promise<Uint8Array | undefined> {
163
- if (this.data) {
164
- return this.data.slice(offset, offset + length)
165
- }
166
- const f = await this.fs.openReadableFile(this.fs.pathJoin(this.rootFolder, this.fileName))
167
- try {
168
- const buffer = await f.read(length, offset)
169
- return buffer
170
- } finally {
171
- await f.close()
172
- }
173
- }
174
-
175
- override async ensureData(): Promise<Uint8Array> {
176
- if (this.data) return this.data
177
- this.data = await this.readDataFromFile(this.count * 80, 0)
178
- if (!this.data) throw new WERR_INVALID_OPERATION(`failed to read data for ${this.fileName}`)
179
- if (this.validated) {
180
- const hash = await this.computeFileHash()
181
- if (hash !== this.fileHash)
182
- throw new WERR_INVALID_OPERATION(`BACKING FILE DATA CORRUPTION: invalid fileHash for ${this.fileName}`)
183
- }
184
- return this.data
185
- }
186
- }
187
-
188
- export class BulkHeaderFileStorage extends BulkHeaderFile {
189
- constructor(
190
- info: BulkHeaderFileInfo,
191
- public storage: ChaintracksStorageBase,
192
- public fetch?: ChaintracksFetchApi
193
- ) {
194
- super(info)
195
- }
196
-
197
- override async readDataFromFile(length: number, offset: number): Promise<Uint8Array | undefined> {
198
- return (await this.ensureData()).slice(offset, offset + length)
199
- }
200
-
201
- override async ensureData(): Promise<Uint8Array> {
202
- if (this.data) return this.data
203
- if (!this.sourceUrl || !this.fetch) {
204
- throw new WERR_INVALID_PARAMETER('sourceUrl and fetch', 'defined. Or data must be defined.')
205
- }
206
- const url = this.fetch.pathJoin(this.sourceUrl!, this.fileName)
207
- this.data = await this.fetch.download(url)
208
- if (!this.data) throw new WERR_INVALID_OPERATION(`failed to download data from ${url}`)
209
- if (this.validated) {
210
- const hash = await this.computeFileHash()
211
- if (hash !== this.fileHash)
212
- throw new WERR_INVALID_OPERATION(`BACKING DOWNLOAD DATA CORRUPTION: invalid fileHash for ${this.fileName}`)
213
- }
214
- return this.data
215
- }
216
- }
217
-
218
- /**
219
- * Describes a collection of bulk block header files.
220
- */
221
- export interface BulkHeaderFilesInfo {
222
- /**
223
- * Where this file was fetched or read from.
224
- */
225
- rootFolder: string
226
- /**
227
- * Sub-path to this resource on rootFolder
228
- */
229
- jsonFilename: string
230
- /**
231
- * Array of information about each bulk block header file.
232
- */
233
- files: BulkHeaderFileInfo[]
234
- /**
235
- * Maximum number of headers in a single file in this collection of files.
236
- */
237
- headersPerFile: number
238
- }
239
-
240
- export abstract class BulkHeaderFiles implements BulkHeaderFilesInfo {
241
- constructor(
242
- public rootFolder: string,
243
- public jsonFilename: string,
244
- public files: BulkHeaderFileInfo[],
245
- public headersPerFile: number
246
- ) {}
247
- }