@bsv/wallet-toolbox 1.6.23 → 1.6.25

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 (206) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/docs/client.md +298 -167
  3. package/docs/monitor.md +126 -23
  4. package/docs/services.md +86 -37
  5. package/docs/wallet.md +298 -167
  6. package/mobile/out/src/WalletPermissionsManager.d.ts +3 -0
  7. package/mobile/out/src/WalletPermissionsManager.d.ts.map +1 -1
  8. package/mobile/out/src/WalletPermissionsManager.js +185 -43
  9. package/mobile/out/src/WalletPermissionsManager.js.map +1 -1
  10. package/mobile/out/src/index.mobile.d.ts +1 -1
  11. package/mobile/out/src/index.mobile.js +1 -1
  12. package/mobile/out/src/monitor/Monitor.d.ts +32 -8
  13. package/mobile/out/src/monitor/Monitor.d.ts.map +1 -1
  14. package/mobile/out/src/monitor/Monitor.js +59 -28
  15. package/mobile/out/src/monitor/Monitor.js.map +1 -1
  16. package/mobile/out/src/monitor/tasks/TaskCheckNoSends.js +2 -1
  17. package/mobile/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
  18. package/mobile/out/src/monitor/tasks/TaskClock.js +3 -2
  19. package/mobile/out/src/monitor/tasks/TaskClock.js.map +1 -1
  20. package/mobile/out/src/monitor/tasks/TaskMonitorCallHistory.js +2 -1
  21. package/mobile/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +1 -1
  22. package/mobile/out/src/monitor/tasks/TaskNewHeader.js +2 -1
  23. package/mobile/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  24. package/mobile/out/src/monitor/tasks/TaskReorg.d.ts +47 -0
  25. package/mobile/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -0
  26. package/mobile/out/src/monitor/tasks/TaskReorg.js +135 -0
  27. package/mobile/out/src/monitor/tasks/TaskReorg.js.map +1 -0
  28. package/mobile/out/src/monitor/tasks/TaskSendWaiting.js +2 -1
  29. package/mobile/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  30. package/mobile/out/src/monitor/tasks/TaskUnFail.js +2 -1
  31. package/mobile/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  32. package/mobile/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +1 -1
  33. package/mobile/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
  34. package/mobile/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +4 -0
  35. package/mobile/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +1 -1
  36. package/mobile/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  37. package/mobile/out/src/services/chaintracker/chaintracks/Chaintracks.js +3 -1
  38. package/mobile/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  39. package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
  40. package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +4 -1
  41. package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
  42. package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  43. package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +3 -1
  44. package/mobile/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  45. package/mobile/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts +5 -0
  46. package/mobile/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -0
  47. package/mobile/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js +68 -0
  48. package/mobile/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -0
  49. package/mobile/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts +2 -1
  50. package/mobile/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
  51. package/mobile/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +59 -15
  52. package/mobile/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
  53. package/mobile/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts +1 -1
  54. package/mobile/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
  55. package/mobile/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +4 -61
  56. package/mobile/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
  57. package/mobile/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts +13 -0
  58. package/mobile/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -0
  59. package/mobile/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +27 -0
  60. package/mobile/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -0
  61. package/mobile/out/src/services/chaintracker/chaintracks/index.client.d.ts +2 -28
  62. package/mobile/out/src/services/chaintracker/chaintracks/index.client.d.ts.map +1 -1
  63. package/mobile/out/src/services/chaintracker/chaintracks/index.client.js +2 -50
  64. package/mobile/out/src/services/chaintracker/chaintracks/index.client.js.map +1 -1
  65. package/mobile/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +30 -0
  66. package/mobile/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -0
  67. package/mobile/out/src/services/chaintracker/chaintracks/index.mobile.js +68 -0
  68. package/mobile/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -0
  69. package/mobile/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +11 -11
  70. package/mobile/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  71. package/mobile/package-lock.json +7 -6
  72. package/mobile/package.json +2 -2
  73. package/out/src/WalletPermissionsManager.d.ts +3 -0
  74. package/out/src/WalletPermissionsManager.d.ts.map +1 -1
  75. package/out/src/WalletPermissionsManager.js +185 -43
  76. package/out/src/WalletPermissionsManager.js.map +1 -1
  77. package/out/src/index.mobile.d.ts +1 -1
  78. package/out/src/index.mobile.js +1 -1
  79. package/out/src/monitor/Monitor.d.ts +32 -8
  80. package/out/src/monitor/Monitor.d.ts.map +1 -1
  81. package/out/src/monitor/Monitor.js +59 -28
  82. package/out/src/monitor/Monitor.js.map +1 -1
  83. package/out/src/monitor/MonitorDaemon.d.ts +2 -0
  84. package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
  85. package/out/src/monitor/MonitorDaemon.js +3 -1
  86. package/out/src/monitor/MonitorDaemon.js.map +1 -1
  87. package/out/src/monitor/__test/MonitorDaemon.man.test.js +30 -39
  88. package/out/src/monitor/__test/MonitorDaemon.man.test.js.map +1 -1
  89. package/out/src/monitor/tasks/TaskCheckNoSends.js +2 -1
  90. package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
  91. package/out/src/monitor/tasks/TaskClock.js +3 -2
  92. package/out/src/monitor/tasks/TaskClock.js.map +1 -1
  93. package/out/src/monitor/tasks/TaskMonitorCallHistory.js +2 -1
  94. package/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +1 -1
  95. package/out/src/monitor/tasks/TaskNewHeader.js +2 -1
  96. package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
  97. package/out/src/monitor/tasks/TaskReorg.d.ts +47 -0
  98. package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -0
  99. package/out/src/monitor/tasks/TaskReorg.js +135 -0
  100. package/out/src/monitor/tasks/TaskReorg.js.map +1 -0
  101. package/out/src/monitor/tasks/TaskSendWaiting.js +2 -1
  102. package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
  103. package/out/src/monitor/tasks/TaskUnFail.js +2 -1
  104. package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
  105. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +1 -1
  106. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
  107. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +4 -0
  108. package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +1 -1
  109. package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
  110. package/out/src/services/chaintracker/chaintracks/Chaintracks.js +3 -1
  111. package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
  112. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +1 -1
  113. package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
  114. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
  115. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +4 -1
  116. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
  117. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
  118. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +3 -1
  119. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
  120. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  121. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +3 -1
  122. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  123. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js +1 -1
  124. package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js.map +1 -1
  125. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts +5 -0
  126. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -0
  127. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js +68 -0
  128. package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -0
  129. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts +2 -1
  130. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
  131. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js +66 -22
  132. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
  133. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts +2 -1
  134. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
  135. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +59 -15
  136. package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
  137. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts +1 -1
  138. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
  139. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +4 -61
  140. package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
  141. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts +14 -0
  142. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts.map +1 -0
  143. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +27 -0
  144. package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -0
  145. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts +13 -0
  146. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -0
  147. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +27 -0
  148. package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -0
  149. package/out/src/services/chaintracker/chaintracks/index.all.d.ts +1 -0
  150. package/out/src/services/chaintracker/chaintracks/index.all.d.ts.map +1 -1
  151. package/out/src/services/chaintracker/chaintracks/index.all.js +1 -0
  152. package/out/src/services/chaintracker/chaintracks/index.all.js.map +1 -1
  153. package/out/src/services/chaintracker/chaintracks/index.client.d.ts +2 -28
  154. package/out/src/services/chaintracker/chaintracks/index.client.d.ts.map +1 -1
  155. package/out/src/services/chaintracker/chaintracks/index.client.js +2 -50
  156. package/out/src/services/chaintracker/chaintracks/index.client.js.map +1 -1
  157. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +30 -0
  158. package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -0
  159. package/out/src/services/chaintracker/chaintracks/index.mobile.js +68 -0
  160. package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -0
  161. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +11 -11
  162. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  163. package/out/src/services/chaintracker/index.mobile.d.ts +4 -0
  164. package/out/src/services/chaintracker/index.mobile.d.ts.map +1 -0
  165. package/out/src/services/chaintracker/index.mobile.js +20 -0
  166. package/out/src/services/chaintracker/index.mobile.js.map +1 -0
  167. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  168. package/out/src/storage/schema/KnexMigrations.js +12 -0
  169. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  170. package/out/test/monitor/Monitor.test.js +32 -29
  171. package/out/test/monitor/Monitor.test.js.map +1 -1
  172. package/out/tsconfig.all.tsbuildinfo +1 -1
  173. package/package.json +2 -2
  174. package/src/WalletPermissionsManager.ts +245 -57
  175. package/src/index.mobile.ts +1 -1
  176. package/src/monitor/Monitor.ts +94 -29
  177. package/src/monitor/MonitorDaemon.ts +9 -1
  178. package/src/monitor/__test/MonitorDaemon.man.test.ts +35 -7
  179. package/src/monitor/tasks/TaskCheckNoSends.ts +1 -1
  180. package/src/monitor/tasks/TaskClock.ts +2 -2
  181. package/src/monitor/tasks/TaskMonitorCallHistory.ts +1 -1
  182. package/src/monitor/tasks/TaskNewHeader.ts +1 -1
  183. package/src/monitor/tasks/TaskReorg.ts +139 -0
  184. package/src/monitor/tasks/TaskSendWaiting.ts +3 -3
  185. package/src/monitor/tasks/TaskUnFail.ts +1 -1
  186. package/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.ts +6 -1
  187. package/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.ts +4 -0
  188. package/src/services/chaintracker/chaintracks/Chaintracks.ts +3 -1
  189. package/src/services/chaintracker/chaintracks/ChaintracksService.ts +2 -2
  190. package/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.ts +4 -1
  191. package/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.ts +4 -12
  192. package/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.ts +3 -1
  193. package/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.ts +2 -2
  194. package/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.ts +92 -0
  195. package/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.ts +84 -25
  196. package/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.ts +79 -17
  197. package/src/services/chaintracker/chaintracks/createIdbChaintracks.ts +11 -64
  198. package/src/services/chaintracker/chaintracks/createKnexChaintracks.ts +65 -0
  199. package/src/services/chaintracker/chaintracks/createNoDbChaintracks.ts +60 -0
  200. package/src/services/chaintracker/chaintracks/index.all.ts +1 -0
  201. package/src/services/chaintracker/chaintracks/index.client.ts +2 -35
  202. package/src/services/chaintracker/chaintracks/index.mobile.ts +37 -0
  203. package/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.ts +11 -11
  204. package/src/services/chaintracker/index.mobile.ts +4 -0
  205. package/src/storage/schema/KnexMigrations.ts +13 -0
  206. package/test/monitor/Monitor.test.ts +21 -16
@@ -1,29 +1,91 @@
1
1
  import { Chain } from '../../../sdk'
2
2
  import { ChaintracksOptions } from './Api/ChaintracksApi'
3
- import { Chaintracks } from './Chaintracks'
4
3
  import { BulkIngestorCDNBabbage } from './Ingest/BulkIngestorCDNBabbage'
5
4
  import { ChaintracksFetch } from './util/ChaintracksFetch'
6
- import { LiveIngestorWhatsOnChainPoll } from './Ingest/LiveIngestorWhatsOnChainPoll'
7
- import { BulkIngestorWhatsOnChainCdn } from './Ingest/BulkIngestorWhatsOnChainCdn'
8
- import { ChaintracksStorageNoDb } from './Storage/ChaintracksStorageNoDb'
5
+ import { LiveIngestorWhatsOnChainOptions, LiveIngestorWhatsOnChainPoll } from './Ingest/LiveIngestorWhatsOnChainPoll'
6
+ import { BulkIngestorWhatsOnChainCdn, BulkIngestorWhatsOnChainOptions } from './Ingest/BulkIngestorWhatsOnChainCdn'
7
+ import { ChaintracksStorageNoDb, ChaintracksStorageNoDbOptions } from './Storage/ChaintracksStorageNoDb'
8
+ import { ChaintracksFetchApi } from './Api/ChaintracksFetchApi'
9
+ import { BulkFileDataManager, BulkFileDataManagerOptions } from './util/BulkFileDataManager'
10
+ import { BulkIngestorCDNOptions } from './Ingest/BulkIngestorCDN'
11
+ import { WhatsOnChainServicesOptions } from './Ingest/WhatsOnChainServices'
9
12
 
10
- export function createNoDbChaintracksOptions(chain: Chain): ChaintracksOptions {
11
- const options = Chaintracks.createOptions(chain)
13
+ export function createDefaultNoDbChaintracksOptions(
14
+ chain: Chain,
15
+ whatsonchainApiKey: string = '',
16
+ maxPerFile: number = 100000,
17
+ maxRetained: number = 2,
18
+ fetch?: ChaintracksFetchApi,
19
+ cdnUrl: string = 'https://cdn.projectbabbage.com/blockheaders/',
20
+ liveHeightThreshold: number = 2000,
21
+ reorgHeightThreshold: number = 400,
22
+ bulkMigrationChunkSize: number = 500,
23
+ batchInsertLimit: number = 400,
24
+ addLiveRecursionLimit: number = 36
25
+ ): ChaintracksOptions {
26
+ fetch ||= new ChaintracksFetch()
12
27
 
13
- const so = ChaintracksStorageNoDb.createStorageBaseOptions(chain)
14
- const s = new ChaintracksStorageNoDb(so)
15
- options.storage = s
28
+ const bfo: BulkFileDataManagerOptions = {
29
+ chain,
30
+ fetch,
31
+ maxPerFile,
32
+ maxRetained,
33
+ fromKnownSourceUrl: cdnUrl
34
+ }
35
+ const bulkFileDataManager = new BulkFileDataManager(bfo)
16
36
 
17
- const fetch = new ChaintracksFetch()
37
+ const so: ChaintracksStorageNoDbOptions = {
38
+ chain,
39
+ bulkFileDataManager,
40
+ liveHeightThreshold,
41
+ reorgHeightThreshold,
42
+ bulkMigrationChunkSize,
43
+ batchInsertLimit
44
+ }
45
+ const storage = new ChaintracksStorageNoDb(so)
18
46
 
19
- const bulkCDNOptions = BulkIngestorCDNBabbage.createBulkIngestorCDNBabbageOptions(chain, fetch)
20
- options.bulkIngestors.push(new BulkIngestorCDNBabbage(bulkCDNOptions))
47
+ const co: ChaintracksOptions = {
48
+ chain,
49
+ storage,
50
+ bulkIngestors: [],
51
+ liveIngestors: [],
52
+ addLiveRecursionLimit,
53
+ logging: (...args) => console.log(new Date().toISOString(), ...args),
54
+ readonly: false
55
+ }
21
56
 
22
- const bulkWhatsOnChainOptions = BulkIngestorWhatsOnChainCdn.createBulkIngestorWhatsOnChainOptions(chain)
23
- options.bulkIngestors.push(new BulkIngestorWhatsOnChainCdn(bulkWhatsOnChainOptions))
57
+ const jsonResource = `${chain}NetBlockHeaders.json`
24
58
 
25
- const liveWhatsOnChainOptions = LiveIngestorWhatsOnChainPoll.createLiveIngestorWhatsOnChainOptions(chain)
26
- options.liveIngestors.push(new LiveIngestorWhatsOnChainPoll(liveWhatsOnChainOptions))
59
+ const bulkCdnOptions: BulkIngestorCDNOptions = {
60
+ chain,
61
+ jsonResource,
62
+ fetch,
63
+ cdnUrl,
64
+ maxPerFile
65
+ }
66
+ co.bulkIngestors.push(new BulkIngestorCDNBabbage(bulkCdnOptions))
27
67
 
28
- return options
68
+ const wocOptions: WhatsOnChainServicesOptions = {
69
+ chain,
70
+ apiKey: whatsonchainApiKey,
71
+ timeout: 30000,
72
+ userAgent: 'BabbageWhatsOnChainServices',
73
+ enableCache: true,
74
+ chainInfoMsecs: 5000
75
+ }
76
+
77
+ const bulkOptions: BulkIngestorWhatsOnChainOptions = {
78
+ ...wocOptions,
79
+ jsonResource,
80
+ idleWait: 5000
81
+ }
82
+ co.bulkIngestors.push(new BulkIngestorWhatsOnChainCdn(bulkOptions))
83
+
84
+ const liveOptions: LiveIngestorWhatsOnChainOptions = {
85
+ ...wocOptions,
86
+ idleWait: 100000
87
+ }
88
+ co.liveIngestors.push(new LiveIngestorWhatsOnChainPoll(liveOptions))
89
+
90
+ return co
29
91
  }
@@ -1,18 +1,13 @@
1
1
  import { Chain } from '../../../sdk'
2
- import { ChaintracksOptions } from './Api/ChaintracksApi'
3
2
  import { Chaintracks } from './Chaintracks'
4
- import { BulkIngestorCDNBabbage } from './Ingest/BulkIngestorCDNBabbage'
5
3
  import { ChaintracksFetch } from './util/ChaintracksFetch'
6
- import { LiveIngestorWhatsOnChainOptions, LiveIngestorWhatsOnChainPoll } from './Ingest/LiveIngestorWhatsOnChainPoll'
7
- import { BulkIngestorWhatsOnChainCdn, BulkIngestorWhatsOnChainOptions } from './Ingest/BulkIngestorWhatsOnChainCdn'
8
4
  import { ChaintracksFetchApi } from './Api/ChaintracksFetchApi'
9
- import { ChaintracksStorageIdb, ChaintracksStorageIdbOptions } from './Storage/ChaintracksStorageIdb'
10
- import { BulkFileDataManager, BulkFileDataManagerOptions } from './util/BulkFileDataManager'
11
- import { BulkIngestorCDNOptions, WhatsOnChainServicesOptions } from './index.client'
5
+ import { ChaintracksStorageIdb } from './Storage/ChaintracksStorageIdb'
6
+ import { createDefaultIdbChaintracksOptions } from './createDefaultIdbChaintracksOptions'
12
7
 
13
8
  export async function createIdbChaintracks(
14
9
  chain: Chain,
15
- whatsonchainApiKey: string,
10
+ whatsonchainApiKey: string = '',
16
11
  maxPerFile: number = 100000,
17
12
  maxRetained: number = 2,
18
13
  fetch?: ChaintracksFetchApi,
@@ -33,67 +28,19 @@ export async function createIdbChaintracks(
33
28
  try {
34
29
  fetch ||= new ChaintracksFetch()
35
30
 
36
- const bfo: BulkFileDataManagerOptions = {
31
+ const co = createDefaultIdbChaintracksOptions(
37
32
  chain,
38
- fetch,
33
+ whatsonchainApiKey,
39
34
  maxPerFile,
40
35
  maxRetained,
41
- fromKnownSourceUrl: cdnUrl
42
- }
43
- const bulkFileDataManager = new BulkFileDataManager(bfo)
44
-
45
- const so: ChaintracksStorageIdbOptions = {
46
- chain,
47
- bulkFileDataManager,
36
+ fetch,
37
+ cdnUrl,
48
38
  liveHeightThreshold,
49
39
  reorgHeightThreshold,
50
40
  bulkMigrationChunkSize,
51
- batchInsertLimit
52
- }
53
- const storage = new ChaintracksStorageIdb(so)
54
-
55
- const co: ChaintracksOptions = {
56
- chain,
57
- storage,
58
- bulkIngestors: [],
59
- liveIngestors: [],
60
- addLiveRecursionLimit,
61
- logging: (...args) => console.log(new Date().toISOString(), ...args),
62
- readonly: false
63
- }
64
-
65
- const jsonResource = `${chain}NetBlockHeaders.json`
66
-
67
- const bulkCdnOptions: BulkIngestorCDNOptions = {
68
- chain,
69
- jsonResource,
70
- fetch,
71
- cdnUrl,
72
- maxPerFile
73
- }
74
- co.bulkIngestors.push(new BulkIngestorCDNBabbage(bulkCdnOptions))
75
-
76
- const wocOptions: WhatsOnChainServicesOptions = {
77
- chain,
78
- apiKey: whatsonchainApiKey,
79
- timeout: 30000,
80
- userAgent: 'BabbageWhatsOnChainServices',
81
- enableCache: true,
82
- chainInfoMsecs: 5000
83
- }
84
-
85
- const bulkOptions: BulkIngestorWhatsOnChainOptions = {
86
- ...wocOptions,
87
- jsonResource,
88
- idleWait: 5000
89
- }
90
- co.bulkIngestors.push(new BulkIngestorWhatsOnChainCdn(bulkOptions))
91
-
92
- const liveOptions: LiveIngestorWhatsOnChainOptions = {
93
- ...wocOptions,
94
- idleWait: 100000
95
- }
96
- co.liveIngestors.push(new LiveIngestorWhatsOnChainPoll(liveOptions))
41
+ batchInsertLimit,
42
+ addLiveRecursionLimit
43
+ )
97
44
 
98
45
  const chaintracks = new Chaintracks(co)
99
46
  const available = chaintracks.makeAvailable()
@@ -102,7 +49,7 @@ export async function createIdbChaintracks(
102
49
  chain,
103
50
  fetch,
104
51
  maxPerFile,
105
- storage,
52
+ storage: co.storage as ChaintracksStorageIdb,
106
53
  chaintracks,
107
54
  available
108
55
  }
@@ -0,0 +1,65 @@
1
+ import { Knex, knex as makeKnex } from 'knex'
2
+ import { Chain } from '../../../sdk'
3
+ import { Chaintracks } from './Chaintracks'
4
+ import { ChaintracksFetch } from './util/ChaintracksFetch'
5
+ import { ChaintracksFetchApi } from './Api/ChaintracksFetchApi'
6
+ import { ChaintracksStorageKnex } from './Storage/ChaintracksStorageKnex'
7
+ import { createDefaultKnexChaintracksOptions } from './createDefaultKnexChaintracksOptions'
8
+
9
+ export async function createKnexChaintracks(
10
+ chain: Chain,
11
+ rootFolder: string = './data/',
12
+ knexConfig?: Knex.Config,
13
+ whatsonchainApiKey: string = '',
14
+ maxPerFile: number = 100000,
15
+ maxRetained: number = 2,
16
+ fetch?: ChaintracksFetchApi,
17
+ cdnUrl: string = 'https://cdn.projectbabbage.com/blockheaders/',
18
+ liveHeightThreshold: number = 2000,
19
+ reorgHeightThreshold: number = 400,
20
+ bulkMigrationChunkSize: number = 500,
21
+ batchInsertLimit: number = 400,
22
+ addLiveRecursionLimit: number = 36
23
+ ): Promise<{
24
+ chain: Chain
25
+ maxPerFile: number
26
+ fetch: ChaintracksFetchApi
27
+ storage: ChaintracksStorageKnex
28
+ chaintracks: Chaintracks
29
+ available: Promise<void>
30
+ }> {
31
+ try {
32
+ fetch ||= new ChaintracksFetch()
33
+
34
+ const co = createDefaultKnexChaintracksOptions(
35
+ chain,
36
+ rootFolder,
37
+ knexConfig,
38
+ whatsonchainApiKey,
39
+ maxPerFile,
40
+ maxRetained,
41
+ fetch,
42
+ cdnUrl,
43
+ liveHeightThreshold,
44
+ reorgHeightThreshold,
45
+ bulkMigrationChunkSize,
46
+ batchInsertLimit,
47
+ addLiveRecursionLimit
48
+ )
49
+
50
+ const chaintracks = new Chaintracks(co)
51
+ const available = chaintracks.makeAvailable()
52
+
53
+ return {
54
+ chain,
55
+ fetch,
56
+ maxPerFile,
57
+ storage: co.storage as ChaintracksStorageKnex,
58
+ chaintracks,
59
+ available
60
+ }
61
+ } catch (error) {
62
+ console.error('Error setting up Chaintracks with Knex Storage:', error)
63
+ throw error
64
+ }
65
+ }
@@ -0,0 +1,60 @@
1
+ import { Chain } from '../../../sdk'
2
+ import { Chaintracks } from './Chaintracks'
3
+ import { ChaintracksFetch } from './util/ChaintracksFetch'
4
+ import { ChaintracksFetchApi } from './Api/ChaintracksFetchApi'
5
+ import { ChaintracksStorageNoDb } from './Storage/ChaintracksStorageNoDb'
6
+ import { createDefaultNoDbChaintracksOptions } from './createDefaultNoDbChaintracksOptions'
7
+
8
+ export async function createNoDbChaintracks(
9
+ chain: Chain,
10
+ whatsonchainApiKey: string = '',
11
+ maxPerFile: number = 100000,
12
+ maxRetained: number = 2,
13
+ fetch?: ChaintracksFetchApi,
14
+ cdnUrl: string = 'https://cdn.projectbabbage.com/blockheaders/',
15
+ liveHeightThreshold: number = 2000,
16
+ reorgHeightThreshold: number = 400,
17
+ bulkMigrationChunkSize: number = 500,
18
+ batchInsertLimit: number = 400,
19
+ addLiveRecursionLimit: number = 36
20
+ ): Promise<{
21
+ chain: Chain
22
+ maxPerFile: number
23
+ fetch: ChaintracksFetchApi
24
+ storage: ChaintracksStorageNoDb
25
+ chaintracks: Chaintracks
26
+ available: Promise<void>
27
+ }> {
28
+ try {
29
+ fetch ||= new ChaintracksFetch()
30
+
31
+ const co = createDefaultNoDbChaintracksOptions(
32
+ chain,
33
+ whatsonchainApiKey,
34
+ maxPerFile,
35
+ maxRetained,
36
+ fetch,
37
+ cdnUrl,
38
+ liveHeightThreshold,
39
+ reorgHeightThreshold,
40
+ bulkMigrationChunkSize,
41
+ batchInsertLimit,
42
+ addLiveRecursionLimit
43
+ )
44
+
45
+ const chaintracks = new Chaintracks(co)
46
+ const available = chaintracks.makeAvailable()
47
+
48
+ return {
49
+ chain,
50
+ fetch,
51
+ maxPerFile,
52
+ storage: co.storage as ChaintracksStorageNoDb,
53
+ chaintracks,
54
+ available
55
+ }
56
+ } catch (error) {
57
+ console.error('Error setting up Chaintracks with NoDb Storage:', error)
58
+ throw error
59
+ }
60
+ }
@@ -5,6 +5,7 @@ export * from './Storage/ChaintracksStorageKnex'
5
5
  export * from './Storage/ChaintracksStorageMemory'
6
6
 
7
7
  export * from './createDefaultKnexChaintracksOptions'
8
+ export * from './createKnexChaintracks'
8
9
 
9
10
  export * from './ChaintracksService'
10
11
  export * from './Ingest/BulkIngestorWhatsOnChainWs'
@@ -1,37 +1,4 @@
1
- export { Chain } from '../../../sdk/types'
1
+ export * from './index.mobile'
2
2
 
3
- export * from './Api/ChaintracksApi'
4
- export * from './Api/ChaintracksFsApi'
5
- export * from './Api/ChaintracksFetchApi'
6
- export * from './Api/ChaintracksStorageApi'
7
- export * from './Api/BulkStorageApi'
8
- export * from './Api/BulkIngestorApi'
9
- export * from './Api/LiveIngestorApi'
10
- export * from './Api/BlockHeaderApi'
11
-
12
- export * from './Chaintracks'
13
- export * from './ChaintracksServiceClient'
14
-
15
- export * from './Ingest/BulkIngestorBase'
16
- export * from './Ingest/LiveIngestorBase'
17
-
18
- export * from './Ingest/BulkIngestorCDN'
19
- export * from './Ingest/BulkIngestorCDNBabbage'
20
- export * from './Ingest/BulkIngestorWhatsOnChainCdn'
21
- export * from './Ingest/LiveIngestorWhatsOnChainPoll'
22
- export * from './Ingest/WhatsOnChainServices'
23
-
24
- export * from './Storage/BulkStorageBase'
25
- export * from './Storage/ChaintracksStorageBase'
26
- export * from './Storage/ChaintracksStorageNoDb'
27
- export * from './Storage/ChaintracksStorageIdb'
28
-
29
- export * from './createDefaultNoDbChaintracksOptions'
3
+ export * from './createDefaultIdbChaintracksOptions'
30
4
  export * from './createIdbChaintracks'
31
-
32
- export * from './util/BulkFilesReader'
33
- export * from './util/HeightRange'
34
- export * from './util/BulkFileDataManager'
35
- export * from './util/ChaintracksFetch'
36
-
37
- export * as utils from './util/blockHeaderUtilities'
@@ -0,0 +1,37 @@
1
+ export { Chain } from '../../../sdk/types'
2
+
3
+ export * from './Api/ChaintracksApi'
4
+ export * from './Api/ChaintracksFsApi'
5
+ export * from './Api/ChaintracksFetchApi'
6
+ export * from './Api/ChaintracksStorageApi'
7
+ export * from './Api/BulkStorageApi'
8
+ export * from './Api/BulkIngestorApi'
9
+ export * from './Api/LiveIngestorApi'
10
+ export * from './Api/BlockHeaderApi'
11
+
12
+ export * from './Chaintracks'
13
+ export * from './ChaintracksServiceClient'
14
+
15
+ export * from './Ingest/BulkIngestorBase'
16
+ export * from './Ingest/LiveIngestorBase'
17
+
18
+ export * from './Ingest/BulkIngestorCDN'
19
+ export * from './Ingest/BulkIngestorCDNBabbage'
20
+ export * from './Ingest/BulkIngestorWhatsOnChainCdn'
21
+ export * from './Ingest/LiveIngestorWhatsOnChainPoll'
22
+ export * from './Ingest/WhatsOnChainServices'
23
+
24
+ export * from './Storage/BulkStorageBase'
25
+ export * from './Storage/ChaintracksStorageBase'
26
+ export * from './Storage/ChaintracksStorageNoDb'
27
+ export * from './Storage/ChaintracksStorageIdb'
28
+
29
+ export * from './createDefaultNoDbChaintracksOptions'
30
+ export * from './createNoDbChaintracks'
31
+
32
+ export * from './util/BulkFilesReader'
33
+ export * from './util/HeightRange'
34
+ export * from './util/BulkFileDataManager'
35
+ export * from './util/ChaintracksFetch'
36
+
37
+ export * as utils from './util/blockHeaderUtilities'
@@ -274,16 +274,16 @@ export const validBulkHeaderFiles: BulkHeaderFileInfo[] = [
274
274
  validated: true
275
275
  },
276
276
  {
277
- sourceUrl: 'https://cdn.projectbabbage.com/blockheaders',
277
+ chain: 'test',
278
+ count: 95262,
279
+ fileHash: 'BvNO9eeMwCaN1Xsx8PQLMJ+YiqF9FrNe+9WnnEo9B44=',
278
280
  fileName: 'testNet_16.headers',
279
281
  firstHeight: 1600000,
280
- prevHash: '00000000000005504bfd1a3ce4688c30c86740390102b6cd464a2fb5e0e3fed1',
281
- count: 89594,
282
- lastHash: '0000000035ba2558f604ff73909944235b8094f07c0efa9c91f59b62b4920516',
283
- fileHash: 'jw+ItRm5zjngLuuClRZONclYWCC66wPovV3XPF585KU=',
284
- lastChainWork: '00000000000000000000000000000000000000000000015814b79f747a43902a',
282
+ lastChainWork: '00000000000000000000000000000000000000000000015814b84c3f9834ef93',
283
+ lastHash: '000000000ca922c841cb7fedd8f012ebc27b17991c9b00a8fb7ca4b1b2b648d3',
285
284
  prevChainWork: '000000000000000000000000000000000000000000000156c3b84396da4e60b9',
286
- chain: 'test',
285
+ prevHash: '00000000000005504bfd1a3ce4688c30c86740390102b6cd464a2fb5e0e3fed1',
286
+ sourceUrl: 'https://cdn.projectbabbage.com/blockheaders',
287
287
  validated: true
288
288
  },
289
289
  {
@@ -418,12 +418,12 @@ export const validBulkHeaderFiles: BulkHeaderFileInfo[] = [
418
418
  },
419
419
  {
420
420
  chain: 'main',
421
- count: 10376,
422
- fileHash: '0CXeFvl+RHRb9kRKp6032vKCVnbs2K9A3Aa4cxg7iJU=',
421
+ count: 15512,
422
+ fileHash: 'sbLY7ZiEWkdvgAbZlWxYJfd/CLxeYPtuwHrc4WZ0aL4=',
423
423
  fileName: 'mainNet_9.headers',
424
424
  firstHeight: 900000,
425
- lastChainWork: '000000000000000000000000000000000000000001683907cdf89f89a1258f08',
426
- lastHash: '00000000000000000413b1b30aa83898de436af0906bb178904900069ec26337',
425
+ lastChainWork: '00000000000000000000000000000000000000000168d586f9048fd69f17e1ca',
426
+ lastHash: '000000000000000004c5e39626c72e67d669135a7c004ee86f7191e3ed01cdee',
427
427
  prevChainWork: '000000000000000000000000000000000000000001664db1f2d50327928007e0',
428
428
  prevHash: '00000000000000000e7dcc27c06ee353bd37260b2e7e664314c204f0324a5087',
429
429
  sourceUrl: 'https://cdn.projectbabbage.com/blockheaders',
@@ -0,0 +1,4 @@
1
+ export * from './chaintracks/index.mobile'
2
+
3
+ export * from './ChaintracksChainTracker'
4
+ export * from './BHServiceClient'
@@ -73,6 +73,19 @@ export class KnexMigrations implements MigrationSource<string> {
73
73
  }
74
74
  }
75
75
 
76
+ migrations['2025-09-06-001 add proven txs blockHash index'] = {
77
+ async up(knex) {
78
+ await knex.schema.alterTable('proven_txs', table => {
79
+ table.index('blockHash')
80
+ })
81
+ },
82
+ async down(knex) {
83
+ await knex.schema.alterTable('proven_txs', table => {
84
+ table.dropIndex('blockHash')
85
+ })
86
+ }
87
+ }
88
+
76
89
  migrations['2025-05-13-001 add monitor events event index'] = {
77
90
  async up(knex) {
78
91
  await knex.schema.alterTable('monitor_events', table => {
@@ -1,13 +1,18 @@
1
1
  import { Beef, MerklePath } from '@bsv/sdk'
2
- import { asArray, EntityProvenTxReq, sdk, verifyOne, verifyTruthy, wait } from '../../src/index.client'
3
2
  import { TaskCheckForProofs } from '../../src/monitor/tasks/TaskCheckForProofs'
4
3
  import { TaskClock } from '../../src/monitor/tasks/TaskClock'
5
4
  import { TaskNewHeader } from '../../src/monitor/tasks/TaskNewHeader'
6
5
  import { TaskPurge } from '../../src/monitor/tasks/TaskPurge'
7
6
  import { TaskSendWaiting } from '../../src/monitor/tasks/TaskSendWaiting'
8
7
  import { _tu, TestSetup1Wallet, TestWallet } from '../utils/TestUtilsWalletStorage'
9
- import exp from 'constants'
10
8
  import { TaskReviewStatus } from '../../src/monitor/tasks/TaskReviewStatus'
9
+ import { WERR_INTERNAL } from '../../src/sdk/WERR_errors'
10
+ import { Monitor } from '../../src/monitor/Monitor'
11
+ import { verifyOne, verifyTruthy, wait } from '../../src/utility/utilityHelpers'
12
+ import { EntityProvenTxReq } from '../../src/storage/schema/entities/EntityProvenTxReq'
13
+ import { GetMerklePathResult } from '../../src/sdk/WalletServices.interfaces'
14
+ import { ProvenTransactionStatus } from '../../src/sdk/types'
15
+ import { ReviewActionResult } from '../../src/sdk/WalletStorage.interfaces'
11
16
 
12
17
  describe('Monitor tests', () => {
13
18
  jest.setTimeout(99999999)
@@ -37,7 +42,7 @@ describe('Monitor tests', () => {
37
42
 
38
43
  // This test takes a bit over a minute to run... un-skip it to work on it.
39
44
  for (const { chain, wallet, services, monitor } of ctxs) {
40
- if (!monitor) throw new sdk.WERR_INTERNAL('test requires setup with monitor')
45
+ if (!monitor) throw new WERR_INTERNAL('test requires setup with monitor')
41
46
 
42
47
  {
43
48
  // The clock attempts to update nextMinute to msecs for each minute.
@@ -47,10 +52,10 @@ describe('Monitor tests', () => {
47
52
  monitor._tasks.push(task)
48
53
  const msecsFirst = task.nextMinute
49
54
  const startTasksPromise = monitor.startTasks()
50
- await wait(monitor.oneMinute * 1.1)
55
+ await wait(Monitor.oneMinute * 1.1)
51
56
  const msecsNext = task.nextMinute
52
57
  monitor.stopTasks()
53
- const elapsed = (msecsNext - msecsFirst) / monitor.oneMinute
58
+ const elapsed = (msecsNext - msecsFirst) / Monitor.oneMinute
54
59
  expect(elapsed === 1 || elapsed === 2).toBe(true)
55
60
  await startTasksPromise
56
61
  }
@@ -62,7 +67,7 @@ describe('Monitor tests', () => {
62
67
 
63
68
  // This test takes 10+ seconds to run... un-skip it to work on it.
64
69
  for (const { chain, wallet, services, monitor } of ctxs) {
65
- if (!monitor) throw new sdk.WERR_INTERNAL('test requires setup with monitor')
70
+ if (!monitor) throw new WERR_INTERNAL('test requires setup with monitor')
66
71
 
67
72
  {
68
73
  // The new header task polls chaintracks for latest header and if new sets flag to check for proofs.
@@ -71,7 +76,7 @@ describe('Monitor tests', () => {
71
76
  monitor._tasks.push(task)
72
77
  expect(TaskCheckForProofs.checkNow).toBe(false)
73
78
  const startTasksPromise = monitor.startTasks()
74
- await wait(monitor.oneSecond * 10)
79
+ await wait(Monitor.oneSecond * 10)
75
80
  expect(task.header).toBeTruthy()
76
81
  expect(TaskCheckForProofs.checkNow).toBe(true)
77
82
  monitor.stopTasks()
@@ -91,7 +96,7 @@ describe('Monitor tests', () => {
91
96
  */
92
97
 
93
98
  for (const { chain, wallet, services, monitor } of ctxs) {
94
- if (!monitor) throw new sdk.WERR_INTERNAL('test requires setup with monitor')
99
+ if (!monitor) throw new WERR_INTERNAL('test requires setup with monitor')
95
100
 
96
101
  {
97
102
  const task = new TaskPurge(monitor, {
@@ -141,7 +146,7 @@ describe('Monitor tests', () => {
141
146
  })
142
147
 
143
148
  for (const { activeStorage: storage, monitor } of ctxs) {
144
- if (!monitor) throw new sdk.WERR_INTERNAL('test requires setup with monitor')
149
+ if (!monitor) throw new WERR_INTERNAL('test requires setup with monitor')
145
150
 
146
151
  monitor.lastNewHeader = {
147
152
  height: 999999999,
@@ -203,7 +208,7 @@ describe('Monitor tests', () => {
203
208
  })
204
209
 
205
210
  for (const { activeStorage: storage, monitor } of ctxs) {
206
- if (!monitor) throw new sdk.WERR_INTERNAL('test requires setup with monitor')
211
+ if (!monitor) throw new WERR_INTERNAL('test requires setup with monitor')
207
212
 
208
213
  {
209
214
  const attempts: number[] = []
@@ -238,7 +243,7 @@ describe('Monitor tests', () => {
238
243
  }
239
244
  })
240
245
 
241
- const mockGetMerklePathResults: sdk.GetMerklePathResult[] = [
246
+ const mockGetMerklePathResults: GetMerklePathResult[] = [
242
247
  {
243
248
  name: 'WoCTsc',
244
249
  merklePath: new MerklePath(1652142, [
@@ -411,7 +416,7 @@ describe('Monitor tests', () => {
411
416
  })
412
417
 
413
418
  for (const { activeStorage: storage, monitor } of ctxs) {
414
- if (!monitor) throw new sdk.WERR_INTERNAL('test requires setup with monitor')
419
+ if (!monitor) throw new WERR_INTERNAL('test requires setup with monitor')
415
420
 
416
421
  {
417
422
  const task = new TaskSendWaiting(monitor, 1, 1)
@@ -512,7 +517,7 @@ describe('Monitor tests', () => {
512
517
  })
513
518
 
514
519
  for (const { activeStorage: storage, monitor } of ctxs) {
515
- if (!monitor) throw new sdk.WERR_INTERNAL('test requires setup with monitor')
520
+ if (!monitor) throw new WERR_INTERNAL('test requires setup with monitor')
516
521
 
517
522
  monitor.lastNewHeader = {
518
523
  height: 999999999,
@@ -525,7 +530,7 @@ describe('Monitor tests', () => {
525
530
  nonce: 0
526
531
  }
527
532
 
528
- monitor.onTransactionProven = async (txStatus: sdk.ProvenTransactionStatus) => {
533
+ monitor.onTransactionProven = async (txStatus: ProvenTransactionStatus) => {
529
534
  expect(txStatus.txid).toBeTruthy()
530
535
  expect(txStatus.blockHash).toBeTruthy()
531
536
  expect(txStatus.blockHeight).toBeTruthy()
@@ -581,14 +586,14 @@ describe('Monitor tests', () => {
581
586
  })
582
587
 
583
588
  for (const { activeStorage: storage, monitor } of ctxs) {
584
- if (!monitor) throw new sdk.WERR_INTERNAL('test requires setup with monitor')
589
+ if (!monitor) throw new WERR_INTERNAL('test requires setup with monitor')
585
590
 
586
591
  for (const txid of expectedTxids) {
587
592
  const req = verifyTruthy(await EntityProvenTxReq.fromStorageTxid(storage, txid))
588
593
  expect(req.status).toBe('unsent')
589
594
  }
590
595
 
591
- monitor.onTransactionBroadcasted = async (broadcastResult: sdk.ReviewActionResult) => {
596
+ monitor.onTransactionBroadcasted = async (broadcastResult: ReviewActionResult) => {
592
597
  expect(broadcastResult.status).toBe('success')
593
598
  expect(expectedTxids).toContain(broadcastResult.txid)
594
599
  updatesReceived++