@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,219 +0,0 @@
1
- import { Chain } from '../../../../sdk/types'
2
- import { BlockHeader } from '../../../../sdk/WalletServices.interfaces'
3
- import { WhatsOnChain, WocChainInfo } from '../../../providers/WhatsOnChain'
4
- import { ChaintracksFetchApi } from '../Api/ChaintracksFetchApi'
5
- import { ChaintracksFetch } from '../util/ChaintracksFetch'
6
- import { HeightRange } from '../util/HeightRange'
7
-
8
- /**
9
- * return true to ignore error, false to close service connection
10
- */
11
- export type ErrorHandler = (code: number, message: string) => boolean
12
- export type EnqueueHandler = (header: BlockHeader) => void
13
-
14
- export interface WhatsOnChainServicesOptions {
15
- /**
16
- * Which chain is being tracked: main, test, or stn.
17
- */
18
- chain: Chain
19
- /**
20
- * WhatsOnChain.com API Key
21
- * https://docs.taal.com/introduction/get-an-api-key
22
- * If unknown or empty, maximum request rate is limited.
23
- * https://developers.whatsonchain.com/#rate-limits
24
- */
25
- apiKey?: string
26
- /**
27
- * Request timeout for GETs to https://api.whatsonchain.com/v1/bsv
28
- */
29
- timeout: number
30
- /**
31
- * User-Agent header value for requests to https://api.whatsonchain.com/v1/bsv
32
- */
33
- userAgent: string
34
- /**
35
- * Enable WhatsOnChain client cache option.
36
- */
37
- enableCache: boolean
38
- /**
39
- * How long chainInfo is considered still valid before updating (msecs).
40
- */
41
- chainInfoMsecs: number
42
- }
43
-
44
- export class WhatsOnChainServices {
45
- static createWhatsOnChainServicesOptions(chain: Chain): WhatsOnChainServicesOptions {
46
- const options: WhatsOnChainServicesOptions = {
47
- chain,
48
- apiKey: '',
49
- timeout: 30000,
50
- userAgent: 'BabbageWhatsOnChainServices',
51
- enableCache: true,
52
- chainInfoMsecs: 5000
53
- }
54
- return options
55
- }
56
-
57
- static chainInfo: (WocChainInfo | undefined)[] = []
58
- static chainInfoTime: (Date | undefined)[] = []
59
- static chainInfoMsecs: number[] = []
60
-
61
- chain: Chain
62
- woc: WhatsOnChain
63
-
64
- constructor(public options: WhatsOnChainServicesOptions) {
65
- const config = {
66
- apiKey: this.options.apiKey,
67
- timeout: this.options.timeout,
68
- userAgent: this.options.userAgent,
69
- enableCache: this.options.enableCache
70
- }
71
- this.chain = options.chain
72
- WhatsOnChainServices.chainInfoMsecs[this.chain] = options.chainInfoMsecs
73
- this.woc = new WhatsOnChain(this.chain, config)
74
- }
75
-
76
- async getHeaderByHash(hash: string): Promise<BlockHeader | undefined> {
77
- const header = await this.woc.getBlockHeaderByHash(hash)
78
- return header
79
- }
80
-
81
- async getChainInfo(): Promise<WocChainInfo> {
82
- const now = new Date()
83
- let update = WhatsOnChainServices.chainInfo[this.chain] === undefined
84
- if (!update && WhatsOnChainServices.chainInfoTime[this.chain] !== undefined) {
85
- const elapsed = now.getTime() - WhatsOnChainServices.chainInfoTime[this.chain].getTime()
86
- update = elapsed > WhatsOnChainServices.chainInfoMsecs[this.chain]
87
- }
88
- if (update) {
89
- WhatsOnChainServices.chainInfo[this.chain] = await this.woc.getChainInfo()
90
- WhatsOnChainServices.chainInfoTime[this.chain] = now
91
- }
92
- if (!WhatsOnChainServices.chainInfo[this.chain]) throw new Error('Unexpected failure to update chainInfo.')
93
- return WhatsOnChainServices.chainInfo[this.chain]
94
- }
95
-
96
- async getChainTipHeight(): Promise<number> {
97
- return (await this.getChainInfo()).blocks
98
- }
99
-
100
- async getChainTipHash(): Promise<string> {
101
- return (await this.getChainInfo()).bestblockhash
102
- }
103
-
104
- /**
105
- * @param fetch
106
- * @returns returns the last 10 block headers including height, size, chainwork...
107
- */
108
- async getHeaders(fetch?: ChaintracksFetchApi): Promise<WocGetHeadersHeader[]> {
109
- fetch ||= new ChaintracksFetch()
110
- const headers = await fetch.fetchJson<WocGetHeadersHeader[]>(
111
- `https://api.whatsonchain.com/v1/bsv/${this.chain}/block/headers`
112
- )
113
- return headers
114
- }
115
-
116
- async getHeaderByteFileLinks(
117
- neededRange: HeightRange,
118
- fetch?: ChaintracksFetchApi
119
- ): Promise<GetHeaderByteFileLinksResult[]> {
120
- fetch ||= new ChaintracksFetch()
121
- const files = await fetch.fetchJson<WocGetHeaderByteFileLinks>(
122
- `https://api.whatsonchain.com/v1/bsv/${this.chain}/block/headers/resources`
123
- )
124
- const r: GetHeaderByteFileLinksResult[] = []
125
- let range: HeightRange | undefined = undefined
126
- for (const link of files.files) {
127
- const parsed = parseFileLink(link)
128
- if (parsed === undefined) continue // parse error, return empty result
129
- if (parsed.range === 'latest') {
130
- if (range === undefined) continue // should not happen on valid input
131
- const fromHeight = range.maxHeight + 1
132
- if (neededRange.maxHeight >= fromHeight) {
133
- // We need this range but don't know maxHeight
134
- const data = await fetch.download(link)
135
- range = new HeightRange(fromHeight, fromHeight + data.length / 80 - 1)
136
- if (!neededRange.intersect(range).isEmpty)
137
- r.push({ sourceUrl: parsed.sourceUrl, fileName: parsed.fileName, range, data })
138
- }
139
- } else {
140
- range = new HeightRange(parsed.range.fromHeight, parsed.range.toHeight)
141
- if (!neededRange.intersect(range).isEmpty)
142
- r.push({ sourceUrl: parsed.sourceUrl, fileName: parsed.fileName, range, data: undefined })
143
- }
144
- }
145
- return r
146
-
147
- function parseFileLink(
148
- file: string
149
- ): { range: { fromHeight: number; toHeight: number } | 'latest'; sourceUrl: string; fileName: string } | undefined {
150
- const url = new URL(file)
151
- const parts = url.pathname.split('/')
152
- const fileName = parts.pop()
153
- if (!fileName) return undefined // no file name, invalid link
154
- const sourceUrl = `${url.protocol}//${url.hostname}${parts.join('/')}`
155
- const bits = fileName.split('_')
156
- if (bits.length === 1 && bits[0] === 'latest') {
157
- return { range: 'latest', sourceUrl, fileName }
158
- }
159
- if (bits.length === 3) {
160
- const fromHeight = parseInt(bits[0], 10)
161
- const toHeight = parseInt(bits[1], 10)
162
- if (Number.isInteger(fromHeight) && Number.isInteger(toHeight)) {
163
- return { range: { fromHeight, toHeight }, sourceUrl, fileName }
164
- }
165
- }
166
- return undefined
167
- }
168
- }
169
- }
170
-
171
- export interface WocGetHeaderByteFileLinks {
172
- files: string[]
173
- }
174
-
175
- export interface WocGetHeadersHeader {
176
- hash: string
177
- confirmations: number
178
- size: number
179
- height: number
180
- version: number
181
- versionHex: string
182
- merkleroot: string
183
- time: number
184
- mediantime: number
185
- nonce: number
186
- bits: string
187
- difficulty: number
188
- chainwork: string
189
- previousblockhash: string
190
- nextblockhash: string
191
- nTx: number
192
- num_tx: number
193
- }
194
-
195
- export function wocGetHeadersHeaderToBlockHeader(h: WocGetHeadersHeader): BlockHeader {
196
- const bits: number = typeof h.bits === 'string' ? parseInt(h.bits, 16) : h.bits
197
- if (!h.previousblockhash) {
198
- h.previousblockhash = '0000000000000000000000000000000000000000000000000000000000000000' // genesis
199
- }
200
- const bh: BlockHeader = {
201
- height: h.height,
202
- hash: h.hash,
203
- version: h.version,
204
- previousHash: h.previousblockhash,
205
- merkleRoot: h.merkleroot,
206
- time: h.time,
207
- bits,
208
- nonce: h.nonce
209
- }
210
-
211
- return bh
212
- }
213
-
214
- export interface GetHeaderByteFileLinksResult {
215
- sourceUrl: string
216
- fileName: string
217
- range: HeightRange
218
- data: Uint8Array | undefined
219
- }
@@ -1,54 +0,0 @@
1
- import { Knex, knex as makeKnex } from 'knex'
2
- import { Chain } from '../../../../../sdk'
3
- import { BulkIngestorCDNBabbage } from '../BulkIngestorCDNBabbage'
4
- import { ChaintracksFetch } from '../../util/ChaintracksFetch'
5
- import { ChaintracksFs } from '../../util/ChaintracksFs'
6
- import { HeightRange } from '../../util/HeightRange'
7
- import { ChaintracksStorageKnex } from '../../Storage/ChaintracksStorageKnex'
8
- import { BulkFilesReaderStorage } from '../../util/BulkFilesReader'
9
-
10
- const rootFolder = './src/services/chaintracker/chaintracks/__tests/data'
11
- const fs = ChaintracksFs
12
- const fetch = new ChaintracksFetch()
13
-
14
- describe('BulkIngestorCDNBabbage tests', () => {
15
- jest.setTimeout(99999999)
16
-
17
- test('0 mainNet', async () => {
18
- const { cdn, r } = await testUpdateLocalCache('main', '0')
19
- expect(cdn.availableBulkFiles?.files.length).toBeGreaterThan(8)
20
- expect(r.liveHeaders.length).toBe(0)
21
- expect(r.reader.range.minHeight).toBe(0)
22
- expect(r.reader.range.maxHeight).toBeGreaterThan(800000)
23
- })
24
-
25
- test('1 testNet', async () => {
26
- const { cdn, r } = await testUpdateLocalCache('test', '1')
27
- expect(cdn.availableBulkFiles?.files.length).toBeGreaterThan(15)
28
- expect(r.liveHeaders.length).toBe(0)
29
- expect(r.reader.range.minHeight).toBe(0)
30
- expect(r.reader.range.maxHeight).toBeGreaterThan(1500000)
31
- })
32
- })
33
-
34
- async function testUpdateLocalCache(chain: Chain, test: string) {
35
- const bulkCDNOptions = BulkIngestorCDNBabbage.createBulkIngestorCDNBabbageOptions(chain, fetch)
36
-
37
- const cdn = new BulkIngestorCDNBabbage(bulkCDNOptions)
38
-
39
- const localSqlite: Knex.Config = {
40
- client: 'sqlite3',
41
- connection: { filename: fs.pathJoin(rootFolder, `BulkIngestorCDNBabbage.test_${test}.sqlite`) },
42
- useNullAsDefault: true
43
- }
44
- const knexOptions = ChaintracksStorageKnex.createStorageKnexOptions(chain, makeKnex(localSqlite))
45
- const storage = new ChaintracksStorageKnex(knexOptions)
46
- const before = await storage.getAvailableHeightRanges()
47
- await cdn.setStorage(storage, console.log)
48
-
49
- const range = new HeightRange(0, 9900000)
50
- const liveHeaders = await cdn.fetchHeaders(before, range, range, [])
51
- const reader = await BulkFilesReaderStorage.fromStorage(storage, fetch, range)
52
- await storage.knex.destroy()
53
- return { cdn, r: { reader, liveHeaders } }
54
- }
@@ -1,33 +0,0 @@
1
- import { wait } from '../../../../../utility/utilityHelpers'
2
- import { BlockHeader } from '../../Api/BlockHeaderApi'
3
- import { LiveIngestorWhatsOnChainPoll } from '../LiveIngestorWhatsOnChainPoll'
4
-
5
- describe('LiveIngestorWhatsOnChainPoll tests', () => {
6
- jest.setTimeout(99999999)
7
-
8
- test('0 listen for first new header', async () => {
9
- const liveHeaders: BlockHeader[] = []
10
- const options = LiveIngestorWhatsOnChainPoll.createLiveIngestorWhatsOnChainOptions('main')
11
- const ingestor = new LiveIngestorWhatsOnChainPoll(options)
12
- const p = ingestor.startListening(liveHeaders)
13
- let log = ''
14
- let count = 0
15
- for (;;) {
16
- const h = liveHeaders.shift()
17
- if (h) {
18
- log += `${h.height} ${h.hash}\n`
19
- count++
20
- } else {
21
- if (log) {
22
- console.log(`LiveIngestorWhatsOnChain received ${count} headers:\n${log}`)
23
- log = ''
24
- break
25
- }
26
- //if (count >= 11) break
27
- await wait(100)
28
- }
29
- }
30
- ingestor.stopListening()
31
- await p
32
- })
33
- })
@@ -1,124 +0,0 @@
1
- import { wait } from '../../../../../utility/utilityHelpers'
2
- import { BlockHeader } from '../../Api/BlockHeaderApi'
3
- import { deserializeBaseBlockHeader, deserializeBlockHeader } from '../../util/blockHeaderUtilities'
4
- import { ChaintracksFetch } from '../../util/ChaintracksFetch'
5
- import { ChaintracksFs } from '../../util/ChaintracksFs'
6
- import { EnqueueHandler, ErrorHandler, WhatsOnChainServices, WocGetHeadersHeader } from '../WhatsOnChainServices'
7
- import { StopListenerToken, WocHeadersBulkListener, WocHeadersLiveListener } from '../WhatsOnChainIngestorWs'
8
- import { Chain } from '../../../../../sdk'
9
- import { URL } from 'url'
10
- import { HeightRange } from '../../util/HeightRange'
11
-
12
- describe('WhatsOnChainServices tests', () => {
13
- jest.setTimeout(999999999)
14
-
15
- const chain: Chain = 'main'
16
- const options = WhatsOnChainServices.createWhatsOnChainServicesOptions(chain)
17
- const woc = new WhatsOnChainServices(options)
18
-
19
- test('getHeaderByHash', async () => {
20
- const header = await woc.getHeaderByHash('000000000000000001b3e99847d57ff3e0bfc4222cea5c29f10bf24387a250a2')
21
- expect(header?.height === 781348).toBe(true)
22
- })
23
-
24
- test('getChainTipHeight', async () => {
25
- const height = await woc.getChainTipHeight()
26
- expect(height > 600000).toBe(true)
27
- })
28
-
29
- const stopOldListenersToken: StopListenerToken = { stop: undefined }
30
- function stopOldListener() {
31
- stopOldListenersToken.stop?.()
32
- }
33
-
34
- test.skip('0 listenForOldBlockHeaders', async () => {
35
- // The service this depends on appears to be deprecated...
36
- const height = await woc.getChainTipHeight()
37
- expect(height > 600000).toBe(true)
38
-
39
- const headersOld: BlockHeader[] = []
40
- const errorsOld: { code: number; message: string }[] = []
41
- const okOld = await WocHeadersBulkListener(
42
- height - 4,
43
- height,
44
- h => headersOld.push(h),
45
- (code, message) => {
46
- errorsOld.push({ code, message })
47
- return true
48
- },
49
- stopOldListenersToken,
50
- chain
51
- )
52
- expect(okOld).toBe(true)
53
- expect(errorsOld.length).toBe(0)
54
- expect(headersOld.length >= 4).toBe(true)
55
- })
56
-
57
- const stopNewListenersToken: StopListenerToken = { stop: undefined }
58
-
59
- test.skip('1 listenForNewBlockHeaders', async () => {
60
- // The service this depends on appears to be deprecated...
61
- const height = await woc.getChainTipHeight()
62
- expect(height > 600000).toBe(true)
63
-
64
- // Comment out this line to just wait for next new header...
65
- //setTimeout(() => woc.stopNewListener(), 5000)
66
- const headersNew: BlockHeader[] = []
67
- const errorsNew: { code: number; message: string }[] = []
68
- const eh: EnqueueHandler = h => {
69
- headersNew.push(h)
70
- if (headersNew.length >= 1) stopNewListenersToken.stop?.()
71
- }
72
- const errh: ErrorHandler = (code, message) => {
73
- errorsNew.push({ code, message })
74
- return true
75
- }
76
- const okNew = await WocHeadersLiveListener(eh, errh, stopNewListenersToken, chain, console.log.bind(console))
77
- if (errorsNew.length > 0) console.log(JSON.stringify(errorsNew))
78
- expect(errorsNew.length).toBe(0)
79
- expect(okNew).toBe(true)
80
- expect(headersNew.length >= 0).toBe(true)
81
- })
82
-
83
- test('2 get latest header bytes', async () => {
84
- const fetch = new ChaintracksFetch()
85
-
86
- //for (;;) {
87
- const bytes = await fetch.download(`https://api.whatsonchain.com/v1/bsv/main/block/headers/latest`)
88
- console.log(`headers: ${bytes.length / 80}`)
89
- const latest = await fetch.download(`https://api.whatsonchain.com/v1/bsv/main/block/headers/latest?count=1`)
90
- const bh = deserializeBlockHeader(latest, 0, 0)
91
- console.log(`latest hash: ${bh.hash} at ${new Date().toISOString()}`)
92
- // await wait(60 * 1000)
93
- //}
94
- })
95
-
96
- test('3 get headers', async () => {
97
- const fetch = new ChaintracksFetch()
98
-
99
- //for (;;) {
100
- const headers = await fetch.fetchJson<WocGetHeadersHeader[]>(
101
- `https://api.whatsonchain.com/v1/bsv/main/block/headers`
102
- )
103
- let log = ''
104
- for (const h of headers) {
105
- log += `${h.height} ${h.hash} ${h.confirmations} ${h.nTx}\n`
106
- }
107
- console.log(`${new Date().toISOString()}\n${log}`)
108
- //await wait(60 * 1000)
109
- //}
110
- })
111
-
112
- test('4 get header byte file links', async () => {
113
- const fetch = new ChaintracksFetch()
114
- const woc = new WhatsOnChainServices(WhatsOnChainServices.createWhatsOnChainServicesOptions('main'))
115
- const files = await woc.getHeaderByteFileLinks(new HeightRange(907123, 911000))
116
- expect(files.length).toBe(3)
117
- expect(files[0].range.minHeight).toBe(906001)
118
- expect(files[0].range.maxHeight).toBe(908000)
119
- expect(files[1].range.minHeight).toBe(908001)
120
- expect(files[1].range.maxHeight).toBe(910000)
121
- expect(files[2].range.minHeight).toBe(910001)
122
- expect(files[2].range.maxHeight).toBeGreaterThan(910001)
123
- })
124
- })
@@ -1,92 +0,0 @@
1
- // /* eslint-disable @typescript-eslint/no-empty-function */
2
- /* eslint-disable @typescript-eslint/no-unused-vars */
3
- import { BulkStorageApi, BulkStorageBaseOptions } from '../Api/BulkStorageApi'
4
-
5
- import { ChaintracksStorageBase } from './ChaintracksStorageBase'
6
-
7
- import { HeightRange } from '../util/HeightRange'
8
- import { BulkFilesReader } from '../util/BulkFilesReader'
9
- import { BulkHeaderFileInfo } from '../util/BulkHeaderFile'
10
- import { BulkHeaderFilesInfo } from '../util/BulkHeaderFile'
11
-
12
- import { addWork, convertBitsToWork, deserializeBlockHeaders, genesisBuffer } from '../util/blockHeaderUtilities'
13
- import { Chain } from '../../../../sdk/types'
14
- import { BlockHeader, LiveBlockHeader } from '../Api/BlockHeaderApi'
15
- import { ChaintracksFsApi } from '../Api/ChaintracksFsApi'
16
- import { Utils } from '@bsv/sdk'
17
- import { asUint8Array } from '../../../../utility/utilityHelpers.noBuffer'
18
-
19
- export abstract class BulkStorageBase implements BulkStorageApi {
20
- static createBulkStorageBaseOptions(chain: Chain, fs: ChaintracksFsApi): BulkStorageBaseOptions {
21
- const options: BulkStorageBaseOptions = {
22
- chain,
23
- fs
24
- }
25
- return options
26
- }
27
-
28
- chain: Chain
29
- fs: ChaintracksFsApi
30
- log: (...args: any[]) => void = () => {}
31
-
32
- constructor(options: BulkStorageBaseOptions) {
33
- this.chain = options.chain
34
- this.fs = options.fs
35
- }
36
-
37
- async shutdown(): Promise<void> {}
38
-
39
- abstract appendHeaders(minHeight: number, count: number, newBulkHeaders: Uint8Array): Promise<void>
40
- abstract getMaxHeight(): Promise<number>
41
- abstract headersToBuffer(height: number, count: number): Promise<Uint8Array>
42
- abstract findHeaderForHeightOrUndefined(height: number): Promise<BlockHeader | undefined>
43
-
44
- async findHeaderForHeight(height: number): Promise<BlockHeader> {
45
- const header = await this.findHeaderForHeightOrUndefined(height)
46
- if (!header) throw new Error(`No header found for height ${height}`)
47
- return header
48
- }
49
-
50
- async getHeightRange(): Promise<HeightRange> {
51
- return new HeightRange(0, await this.getMaxHeight())
52
- }
53
-
54
- async setStorage(storage: ChaintracksStorageBase, log: (...args: any[]) => void): Promise<void> {}
55
-
56
- async exportBulkHeaders(rootFolder: string, jsonFilename: string, maxPerFile: number): Promise<void> {
57
- const info: BulkHeaderFilesInfo = {
58
- rootFolder: rootFolder,
59
- jsonFilename: jsonFilename,
60
- files: [],
61
- headersPerFile: maxPerFile
62
- }
63
- const maxHeight = await this.getMaxHeight()
64
- const baseFilename = jsonFilename.slice(0, -5) // remove ".json"
65
- let prevHash = '00'.repeat(32)
66
- let prevChainWork = '00'.repeat(32)
67
- for (let height = 0; height <= maxHeight; height += maxPerFile) {
68
- const count = Math.min(maxPerFile, maxHeight - height + 1)
69
- let file: BulkHeaderFileInfo = {
70
- fileName: `${baseFilename}_${info.files.length}.headers`,
71
- firstHeight: height,
72
- prevHash: prevHash,
73
- prevChainWork: prevChainWork,
74
- count: count,
75
- lastHash: null,
76
- fileHash: null,
77
- lastChainWork: ''
78
- }
79
- const buffer = await this.headersToBuffer(height, count)
80
- await this.fs.writeFile(this.fs.pathJoin(rootFolder, file.fileName), buffer)
81
- /*
82
- file = await BulkFilesReader.validateHeaderFile(this.fs, rootFolder, file)
83
- if (!file.lastHash) throw new Error('Unexpected result.')
84
- prevHash = file.lastHash
85
- prevChainWork = file.lastChainWork
86
- info.files.push(file)
87
- */
88
- }
89
- const bytes = asUint8Array(JSON.stringify(info), 'utf8')
90
- await this.fs.writeFile(this.fs.pathJoin(rootFolder, jsonFilename), bytes)
91
- }
92
- }
@@ -1,104 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Knex } from 'knex'
3
- import { Chain } from '../../../../sdk'
4
-
5
- interface Migration {
6
- up: (knex: Knex) => PromiseLike<any>
7
- down?: (knex: Knex) => PromiseLike<any>
8
- }
9
-
10
- interface MigrationSource<TMigrationSpec> {
11
- getMigrations(loadExtensions: readonly string[]): Promise<TMigrationSpec[]>
12
- getMigrationName(migration: TMigrationSpec): string
13
- getMigration(migration: TMigrationSpec): Promise<Migration>
14
- }
15
-
16
- export class ChaintracksKnexMigrations implements MigrationSource<string> {
17
- migrations: Record<string, Migration> = {}
18
-
19
- constructor(public chain: Chain) {
20
- this.migrations = this.setupMigrations()
21
- }
22
-
23
- async getMigrations(): Promise<string[]> {
24
- return Object.keys(this.migrations).sort()
25
- }
26
-
27
- getMigrationName(migration: string) {
28
- return migration
29
- }
30
-
31
- async getMigration(migration: string): Promise<Migration> {
32
- return this.migrations[migration]
33
- }
34
-
35
- async getLatestMigration(): Promise<string> {
36
- const ms = await this.getMigrations()
37
- return ms[ms.length - 1]
38
- }
39
-
40
- static async latestMigration(): Promise<string> {
41
- const km = new ChaintracksKnexMigrations('test')
42
- return await km.getLatestMigration()
43
- }
44
-
45
- setupMigrations(): Record<string, Migration> {
46
- const migrations: Record<string, Migration> = {}
47
-
48
- const liveHeadersTableName = `live_headers`
49
- const bulkFilesTableName = `bulk_files`
50
-
51
- migrations['2025-06-28-001 initial migration'] = {
52
- async up(knex) {
53
- await knex.schema.createTable(liveHeadersTableName, table => {
54
- table.increments('headerId')
55
- table.integer('previousHeaderId').unsigned().references('headerId').inTable(liveHeadersTableName)
56
- table.binary('previousHash', 32)
57
- table.integer('height').unsigned().notNullable
58
- table.boolean('isActive').notNullable
59
- table.boolean('isChainTip').notNullable
60
- table.binary('hash', 32).notNullable
61
- table.binary('chainWork', 32).notNullable
62
- table.integer('version').unsigned().notNullable
63
- table.binary('merkleRoot', 32).notNullable
64
- table.integer('time').unsigned().notNullable
65
- table.integer('bits').unsigned().notNullable
66
- table.integer('nonce').unsigned().notNullable
67
-
68
- table.unique(['hash'])
69
- table.index(['previousHeaderId'])
70
- table.index(['height'])
71
- table.index(['previousHash'])
72
- table.index(['merkleRoot'])
73
- table.index(['isChainTip'])
74
- table.index(['isActive'])
75
- table.index(['isActive', 'isChainTip'])
76
- })
77
-
78
- await knex.schema.createTable(bulkFilesTableName, table => {
79
- table.increments('fileId')
80
- table.string('chain').notNullable()
81
- table.string('fileName').notNullable()
82
- table.integer('firstHeight').unsigned().notNullable()
83
- table.integer('count').unsigned().notNullable()
84
- table.string('prevHash', 64).notNullable() // hex encoded
85
- table.string('lastHash', 64).notNullable() // hex encoded
86
- table.string('prevChainWork', 64).notNullable() // hex encoded
87
- table.string('lastChainWork', 64).notNullable() // hex encoded
88
- table.string('fileHash').notNullable() // base64 encoded
89
- table.boolean('validated').defaultTo(false).notNullable()
90
- table.string('sourceUrl').nullable()
91
- table.binary('data', 32000000).nullable() // 32MB max size
92
-
93
- table.index(['firstHeight', 'chain'])
94
- })
95
- },
96
- async down(knex) {
97
- await knex.schema.dropTable(liveHeadersTableName)
98
- await knex.schema.dropTable(bulkFilesTableName)
99
- }
100
- }
101
-
102
- return migrations
103
- }
104
- }