envio 3.0.0-alpha.21 → 3.0.0-alpha.22

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 (219) hide show
  1. package/bin.mjs +2 -48
  2. package/evm.schema.json +67 -0
  3. package/fuel.schema.json +67 -0
  4. package/index.d.ts +822 -38
  5. package/index.js +5 -3
  6. package/package.json +10 -8
  7. package/rescript.json +5 -9
  8. package/src/Address.res +4 -5
  9. package/src/Address.res.mjs +9 -12
  10. package/src/Api.res +15 -0
  11. package/src/Api.res.mjs +20 -0
  12. package/src/Batch.res +32 -34
  13. package/src/Batch.res.mjs +172 -187
  14. package/src/Bin.res +89 -0
  15. package/src/Bin.res.mjs +97 -0
  16. package/src/ChainFetcher.res +33 -57
  17. package/src/ChainFetcher.res.mjs +197 -227
  18. package/src/ChainManager.res +6 -14
  19. package/src/ChainManager.res.mjs +74 -85
  20. package/src/ChainMap.res +14 -16
  21. package/src/ChainMap.res.mjs +38 -38
  22. package/src/Config.res +193 -135
  23. package/src/Config.res.mjs +566 -592
  24. package/src/Core.res +182 -0
  25. package/src/Core.res.mjs +207 -0
  26. package/src/Ecosystem.res +25 -4
  27. package/src/Ecosystem.res.mjs +12 -13
  28. package/src/Env.res +20 -13
  29. package/src/Env.res.mjs +124 -113
  30. package/src/EnvSafe.res +269 -0
  31. package/src/EnvSafe.res.mjs +296 -0
  32. package/src/EnvSafe.resi +18 -0
  33. package/src/Envio.res +37 -26
  34. package/src/Envio.res.mjs +59 -60
  35. package/src/ErrorHandling.res +2 -2
  36. package/src/ErrorHandling.res.mjs +15 -15
  37. package/src/EventConfigBuilder.res +219 -81
  38. package/src/EventConfigBuilder.res.mjs +259 -202
  39. package/src/EventProcessing.res +27 -38
  40. package/src/EventProcessing.res.mjs +165 -183
  41. package/src/EventUtils.res +11 -11
  42. package/src/EventUtils.res.mjs +21 -22
  43. package/src/EvmTypes.res +0 -1
  44. package/src/EvmTypes.res.mjs +5 -5
  45. package/src/FetchState.res +360 -256
  46. package/src/FetchState.res.mjs +958 -914
  47. package/src/GlobalState.res +365 -351
  48. package/src/GlobalState.res.mjs +958 -992
  49. package/src/GlobalStateManager.res +1 -2
  50. package/src/GlobalStateManager.res.mjs +36 -44
  51. package/src/HandlerLoader.res +107 -23
  52. package/src/HandlerLoader.res.mjs +128 -38
  53. package/src/HandlerRegister.res +127 -103
  54. package/src/HandlerRegister.res.mjs +164 -164
  55. package/src/HandlerRegister.resi +12 -4
  56. package/src/Hasura.res +35 -22
  57. package/src/Hasura.res.mjs +158 -167
  58. package/src/InMemoryStore.res +20 -27
  59. package/src/InMemoryStore.res.mjs +64 -80
  60. package/src/InMemoryTable.res +34 -39
  61. package/src/InMemoryTable.res.mjs +165 -170
  62. package/src/Internal.res +52 -33
  63. package/src/Internal.res.mjs +84 -81
  64. package/src/LazyLoader.res.mjs +55 -61
  65. package/src/LoadLayer.res +77 -78
  66. package/src/LoadLayer.res.mjs +160 -189
  67. package/src/LoadManager.res +16 -21
  68. package/src/LoadManager.res.mjs +79 -84
  69. package/src/LogSelection.res +236 -68
  70. package/src/LogSelection.res.mjs +211 -141
  71. package/src/Logging.res +13 -9
  72. package/src/Logging.res.mjs +130 -143
  73. package/src/Main.res +428 -51
  74. package/src/Main.res.mjs +528 -271
  75. package/src/Persistence.res +77 -84
  76. package/src/Persistence.res.mjs +131 -132
  77. package/src/PgStorage.res +291 -167
  78. package/src/PgStorage.res.mjs +797 -817
  79. package/src/Prometheus.res +50 -58
  80. package/src/Prometheus.res.mjs +345 -373
  81. package/src/ReorgDetection.res +22 -24
  82. package/src/ReorgDetection.res.mjs +100 -106
  83. package/src/SafeCheckpointTracking.res +7 -7
  84. package/src/SafeCheckpointTracking.res.mjs +40 -43
  85. package/src/SimulateItems.res +41 -49
  86. package/src/SimulateItems.res.mjs +257 -272
  87. package/src/Sink.res +2 -2
  88. package/src/Sink.res.mjs +22 -26
  89. package/src/TableIndices.res +1 -2
  90. package/src/TableIndices.res.mjs +42 -48
  91. package/src/TestIndexer.res +196 -189
  92. package/src/TestIndexer.res.mjs +536 -536
  93. package/src/TestIndexerProxyStorage.res +15 -16
  94. package/src/TestIndexerProxyStorage.res.mjs +98 -122
  95. package/src/TestIndexerWorker.res +4 -0
  96. package/src/TestIndexerWorker.res.mjs +7 -0
  97. package/src/Throttler.res +3 -3
  98. package/src/Throttler.res.mjs +23 -24
  99. package/src/Time.res +1 -1
  100. package/src/Time.res.mjs +18 -21
  101. package/src/TopicFilter.res +3 -3
  102. package/src/TopicFilter.res.mjs +29 -30
  103. package/src/UserContext.res +93 -54
  104. package/src/UserContext.res.mjs +197 -182
  105. package/src/Utils.res +141 -86
  106. package/src/Utils.res.mjs +334 -295
  107. package/src/bindings/BigDecimal.res +0 -2
  108. package/src/bindings/BigDecimal.res.mjs +19 -23
  109. package/src/bindings/ClickHouse.res +28 -27
  110. package/src/bindings/ClickHouse.res.mjs +243 -240
  111. package/src/bindings/DateFns.res +11 -11
  112. package/src/bindings/DateFns.res.mjs +7 -7
  113. package/src/bindings/EventSource.res.mjs +2 -2
  114. package/src/bindings/Express.res +2 -5
  115. package/src/bindings/Hrtime.res +2 -2
  116. package/src/bindings/Hrtime.res.mjs +30 -32
  117. package/src/bindings/Lodash.res.mjs +1 -1
  118. package/src/bindings/NodeJs.res +14 -9
  119. package/src/bindings/NodeJs.res.mjs +20 -20
  120. package/src/bindings/Pino.res +8 -10
  121. package/src/bindings/Pino.res.mjs +40 -43
  122. package/src/bindings/Postgres.res +2 -5
  123. package/src/bindings/Postgres.res.mjs +9 -9
  124. package/src/bindings/PromClient.res +17 -2
  125. package/src/bindings/PromClient.res.mjs +30 -7
  126. package/src/bindings/SDSL.res.mjs +2 -2
  127. package/src/bindings/Viem.res +4 -4
  128. package/src/bindings/Viem.res.mjs +20 -22
  129. package/src/bindings/Vitest.res +1 -1
  130. package/src/bindings/Vitest.res.mjs +2 -2
  131. package/src/bindings/WebSocket.res +1 -1
  132. package/src/db/EntityHistory.res +9 -3
  133. package/src/db/EntityHistory.res.mjs +84 -59
  134. package/src/db/InternalTable.res +62 -60
  135. package/src/db/InternalTable.res.mjs +271 -203
  136. package/src/db/Schema.res +1 -2
  137. package/src/db/Schema.res.mjs +28 -32
  138. package/src/db/Table.res +28 -27
  139. package/src/db/Table.res.mjs +276 -292
  140. package/src/sources/EventRouter.res +21 -16
  141. package/src/sources/EventRouter.res.mjs +55 -57
  142. package/src/sources/Evm.res +17 -1
  143. package/src/sources/Evm.res.mjs +16 -8
  144. package/src/sources/EvmChain.res +15 -17
  145. package/src/sources/EvmChain.res.mjs +40 -42
  146. package/src/sources/Fuel.res +14 -1
  147. package/src/sources/Fuel.res.mjs +16 -8
  148. package/src/sources/FuelSDK.res +1 -1
  149. package/src/sources/FuelSDK.res.mjs +6 -8
  150. package/src/sources/HyperFuel.res +8 -10
  151. package/src/sources/HyperFuel.res.mjs +113 -123
  152. package/src/sources/HyperFuelClient.res.mjs +6 -7
  153. package/src/sources/HyperFuelSource.res +19 -20
  154. package/src/sources/HyperFuelSource.res.mjs +339 -356
  155. package/src/sources/HyperSync.res +11 -13
  156. package/src/sources/HyperSync.res.mjs +206 -220
  157. package/src/sources/HyperSyncClient.res +5 -7
  158. package/src/sources/HyperSyncClient.res.mjs +70 -75
  159. package/src/sources/HyperSyncHeightStream.res +8 -9
  160. package/src/sources/HyperSyncHeightStream.res.mjs +78 -86
  161. package/src/sources/HyperSyncJsonApi.res +18 -15
  162. package/src/sources/HyperSyncJsonApi.res.mjs +201 -231
  163. package/src/sources/HyperSyncSource.res +17 -21
  164. package/src/sources/HyperSyncSource.res.mjs +268 -290
  165. package/src/sources/Rpc.res +5 -5
  166. package/src/sources/Rpc.res.mjs +168 -192
  167. package/src/sources/RpcSource.res +166 -167
  168. package/src/sources/RpcSource.res.mjs +972 -1046
  169. package/src/sources/RpcWebSocketHeightStream.res +10 -11
  170. package/src/sources/RpcWebSocketHeightStream.res.mjs +131 -145
  171. package/src/sources/SimulateSource.res +1 -1
  172. package/src/sources/SimulateSource.res.mjs +35 -38
  173. package/src/sources/Source.res +1 -1
  174. package/src/sources/Source.res.mjs +3 -3
  175. package/src/sources/SourceManager.res +39 -20
  176. package/src/sources/SourceManager.res.mjs +340 -371
  177. package/src/sources/SourceManager.resi +2 -1
  178. package/src/sources/Svm.res +12 -5
  179. package/src/sources/Svm.res.mjs +44 -41
  180. package/src/tui/Tui.res +23 -12
  181. package/src/tui/Tui.res.mjs +292 -290
  182. package/src/tui/bindings/Ink.res +2 -4
  183. package/src/tui/bindings/Ink.res.mjs +35 -41
  184. package/src/tui/components/BufferedProgressBar.res +7 -7
  185. package/src/tui/components/BufferedProgressBar.res.mjs +46 -46
  186. package/src/tui/components/CustomHooks.res +1 -2
  187. package/src/tui/components/CustomHooks.res.mjs +102 -122
  188. package/src/tui/components/Messages.res +1 -2
  189. package/src/tui/components/Messages.res.mjs +38 -42
  190. package/src/tui/components/SyncETA.res +10 -11
  191. package/src/tui/components/SyncETA.res.mjs +178 -196
  192. package/src/tui/components/TuiData.res +1 -1
  193. package/src/tui/components/TuiData.res.mjs +7 -6
  194. package/src/vendored/Rest.res +52 -66
  195. package/src/vendored/Rest.res.mjs +324 -364
  196. package/svm.schema.json +67 -0
  197. package/src/Address.gen.ts +0 -8
  198. package/src/Config.gen.ts +0 -19
  199. package/src/Envio.gen.ts +0 -55
  200. package/src/EvmTypes.gen.ts +0 -6
  201. package/src/InMemoryStore.gen.ts +0 -6
  202. package/src/Internal.gen.ts +0 -64
  203. package/src/PgStorage.gen.ts +0 -10
  204. package/src/PgStorage.res.d.mts +0 -5
  205. package/src/Types.ts +0 -56
  206. package/src/bindings/BigDecimal.gen.ts +0 -14
  207. package/src/bindings/BigDecimal.res.d.mts +0 -5
  208. package/src/bindings/BigInt.gen.ts +0 -10
  209. package/src/bindings/BigInt.res +0 -70
  210. package/src/bindings/BigInt.res.d.mts +0 -5
  211. package/src/bindings/BigInt.res.mjs +0 -154
  212. package/src/bindings/Ethers.res.d.mts +0 -5
  213. package/src/bindings/Pino.gen.ts +0 -17
  214. package/src/bindings/Postgres.gen.ts +0 -8
  215. package/src/bindings/Postgres.res.d.mts +0 -5
  216. package/src/bindings/Promise.res +0 -67
  217. package/src/bindings/Promise.res.mjs +0 -26
  218. package/src/db/InternalTable.gen.ts +0 -36
  219. package/src/sources/HyperSyncClient.gen.ts +0 -19
@@ -1,337 +1,339 @@
1
1
  // Generated by ReScript, PLEASE EDIT WITH CARE
2
2
 
3
3
  import * as Env from "../Env.res.mjs";
4
- import * as $$Ink from "./bindings/Ink.res.mjs";
5
- import * as $$Ink$1 from "ink";
6
- import * as Caml from "rescript/lib/es6/caml.js";
4
+ import * as Ink from "./bindings/Ink.res.mjs";
5
+ import * as Ink$1 from "ink";
6
+ import * as Envio from "../Envio.res.mjs";
7
7
  import * as React from "react";
8
- import * as $$String from "rescript/lib/es6/string.js";
9
8
  import * as SyncETA from "./components/SyncETA.res.mjs";
10
9
  import * as TuiData from "./components/TuiData.res.mjs";
11
10
  import * as ChainMap from "../ChainMap.res.mjs";
12
11
  import * as Messages from "./components/Messages.res.mjs";
13
- import * as Belt_Array from "rescript/lib/es6/belt_Array.js";
14
12
  import * as FetchState from "../FetchState.res.mjs";
15
- import * as Belt_Option from "rescript/lib/es6/belt_Option.js";
16
- import * as Caml_option from "rescript/lib/es6/caml_option.js";
17
13
  import * as ChainFetcher from "../ChainFetcher.res.mjs";
14
+ import * as Stdlib_Array from "@rescript/runtime/lib/es6/Stdlib_Array.js";
18
15
  import InkBigText from "ink-big-text";
16
+ import * as Primitive_int from "@rescript/runtime/lib/es6/Primitive_int.js";
19
17
  import * as SourceManager from "../sources/SourceManager.res.mjs";
18
+ import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
20
19
  import * as JsxRuntime from "react/jsx-runtime";
21
20
  import * as BufferedProgressBar from "./components/BufferedProgressBar.res.mjs";
22
21
 
23
22
  function Tui$ChainLine(props) {
24
- var poweredByHyperSync = props.poweredByHyperSync;
25
- var endBlock = props.endBlock;
26
- var startBlock = props.startBlock;
27
- var sourceBlock = props.sourceBlock;
28
- var bufferBlock = props.bufferBlock;
29
- var progressBlock = props.progressBlock;
30
- var chainId = props.chainId;
31
- var chainsWidth = Caml.int_min(props.stdoutColumns - 2 | 0, 60);
32
- var headerWidth = props.maxChainIdLength + 10 | 0;
23
+ let poweredByHyperSync = props.poweredByHyperSync;
24
+ let endBlock = props.endBlock;
25
+ let startBlock = props.startBlock;
26
+ let sourceBlock = props.sourceBlock;
27
+ let bufferBlock = props.bufferBlock;
28
+ let progressBlock = props.progressBlock;
29
+ let chainId = props.chainId;
30
+ let chainsWidth = Primitive_int.min(props.stdoutColumns - 2 | 0, 60);
31
+ let headerWidth = props.maxChainIdLength + 10 | 0;
33
32
  if (progressBlock !== undefined && bufferBlock !== undefined && sourceBlock !== undefined) {
34
- var toBlock = endBlock !== undefined && sourceBlock >= endBlock ? endBlock : sourceBlock;
35
- var progressBlockStr = TuiData.formatLocaleString(progressBlock);
36
- var toBlockStr = TuiData.formatLocaleString(toBlock);
37
- var eventsStr = TuiData.formatFloatLocaleString(props.eventsProcessed);
38
- var blocksText = "Blocks: " + progressBlockStr + " / " + toBlockStr + (
39
- Belt_Option.isSome(endBlock) ? " (End Block)" : ""
40
- ) + " ";
41
- var eventsText = "Events: " + eventsStr;
42
- var fitsSameLine = (blocksText.length + eventsText.length | 0) <= chainsWidth;
43
- return JsxRuntime.jsxs($$Ink$1.Box, {
44
- children: [
45
- JsxRuntime.jsxs($$Ink$1.Box, {
46
- children: [
47
- JsxRuntime.jsxs($$Ink$1.Box, {
48
- children: [
49
- JsxRuntime.jsx($$Ink$1.Text, {
50
- children: "Chain: "
51
- }),
52
- JsxRuntime.jsx($$Ink$1.Text, {
53
- children: chainId,
54
- bold: true
55
- }),
56
- JsxRuntime.jsx($$Ink$1.Text, {
57
- children: " "
58
- }),
59
- poweredByHyperSync ? JsxRuntime.jsx($$Ink$1.Text, {
60
- children: "⚡",
61
- color: "#FFBB2F"
62
- }) : null
63
- ],
64
- width: headerWidth
65
- }),
66
- JsxRuntime.jsx(BufferedProgressBar.make, {
67
- loaded: progressBlock - startBlock | 0,
68
- buffered: bufferBlock - startBlock | 0,
69
- outOf: toBlock - startBlock | 0,
70
- barWidth: chainsWidth - headerWidth | 0,
71
- loadingColor: "#FFBB2F"
72
- })
73
- ],
74
- width: chainsWidth,
75
- flexDirection: "row"
76
- }),
77
- JsxRuntime.jsxs($$Ink$1.Box, {
78
- children: [
79
- JsxRuntime.jsx($$Ink$1.Text, {
80
- children: blocksText,
81
- color: "gray"
82
- }),
83
- fitsSameLine ? JsxRuntime.jsx($$Ink$1.Text, {
84
- children: eventsText,
85
- color: "gray"
86
- }) : null
87
- ],
88
- flexDirection: "row"
89
- }),
90
- fitsSameLine ? null : JsxRuntime.jsx($$Ink$1.Box, {
91
- children: Caml_option.some(JsxRuntime.jsx($$Ink$1.Text, {
92
- children: $$String.trim(eventsText),
93
- color: "gray"
94
- })),
95
- flexDirection: "row"
96
- }),
97
- JsxRuntime.jsx($$Ink.Newline.make, {})
98
- ],
99
- flexDirection: "column"
100
- });
33
+ let toBlock = endBlock !== undefined ? Primitive_int.min(sourceBlock, endBlock) : sourceBlock;
34
+ let progressBlockStr = TuiData.formatLocaleString(progressBlock);
35
+ let toBlockStr = TuiData.formatLocaleString(toBlock);
36
+ let eventsStr = TuiData.formatFloatLocaleString(props.eventsProcessed);
37
+ let blocksText = `Blocks: ` + progressBlockStr + ` / ` + toBlockStr + (
38
+ Stdlib_Option.isSome(endBlock) ? " (End Block)" : ""
39
+ ) + ` `;
40
+ let eventsText = `Events: ` + eventsStr;
41
+ let fitsSameLine = (blocksText.length + eventsText.length | 0) <= chainsWidth;
42
+ return JsxRuntime.jsxs(Ink$1.Box, {
43
+ children: [
44
+ JsxRuntime.jsxs(Ink$1.Box, {
45
+ children: [
46
+ JsxRuntime.jsxs(Ink$1.Box, {
47
+ children: [
48
+ JsxRuntime.jsx(Ink$1.Text, {
49
+ children: "Chain: "
50
+ }),
51
+ JsxRuntime.jsx(Ink$1.Text, {
52
+ children: chainId,
53
+ bold: true
54
+ }),
55
+ JsxRuntime.jsx(Ink$1.Text, {
56
+ children: " "
57
+ }),
58
+ poweredByHyperSync ? JsxRuntime.jsx(Ink$1.Text, {
59
+ children: "⚡",
60
+ color: "#FFBB2F"
61
+ }) : null
62
+ ],
63
+ width: headerWidth
64
+ }),
65
+ JsxRuntime.jsx(BufferedProgressBar.make, {
66
+ loaded: progressBlock - startBlock | 0,
67
+ buffered: bufferBlock - startBlock | 0,
68
+ outOf: toBlock - startBlock | 0,
69
+ barWidth: chainsWidth - headerWidth | 0,
70
+ loadingColor: "#FFBB2F"
71
+ })
72
+ ],
73
+ width: chainsWidth,
74
+ flexDirection: "row"
75
+ }),
76
+ JsxRuntime.jsxs(Ink$1.Box, {
77
+ children: [
78
+ JsxRuntime.jsx(Ink$1.Text, {
79
+ children: blocksText,
80
+ color: "gray"
81
+ }),
82
+ fitsSameLine ? JsxRuntime.jsx(Ink$1.Text, {
83
+ children: eventsText,
84
+ color: "gray"
85
+ }) : null
86
+ ],
87
+ flexDirection: "row"
88
+ }),
89
+ fitsSameLine ? null : JsxRuntime.jsx(Ink$1.Box, {
90
+ children: JsxRuntime.jsx(Ink$1.Text, {
91
+ children: eventsText.trim(),
92
+ color: "gray"
93
+ }),
94
+ flexDirection: "row"
95
+ }),
96
+ JsxRuntime.jsx(Ink.Newline.make, {})
97
+ ],
98
+ flexDirection: "column"
99
+ });
101
100
  }
102
101
  return JsxRuntime.jsxs(JsxRuntime.Fragment, {
103
- children: [
104
- JsxRuntime.jsxs($$Ink$1.Box, {
105
- children: [
106
- JsxRuntime.jsxs($$Ink$1.Box, {
107
- children: [
108
- JsxRuntime.jsx($$Ink$1.Text, {
109
- children: "Chain: "
110
- }),
111
- JsxRuntime.jsx($$Ink$1.Text, {
112
- children: chainId,
113
- bold: true
114
- }),
115
- JsxRuntime.jsx($$Ink$1.Text, {
116
- children: " "
117
- }),
118
- poweredByHyperSync ? JsxRuntime.jsx($$Ink$1.Text, {
119
- children: "⚡",
120
- color: "#FFBB2F"
121
- }) : null
122
- ],
123
- width: headerWidth
124
- }),
125
- JsxRuntime.jsx($$Ink$1.Text, {
126
- children: "Loading progress..."
127
- })
128
- ],
129
- width: chainsWidth,
130
- flexDirection: "row"
131
- }),
132
- JsxRuntime.jsx($$Ink.Newline.make, {})
133
- ]
134
- });
102
+ children: [
103
+ JsxRuntime.jsxs(Ink$1.Box, {
104
+ children: [
105
+ JsxRuntime.jsxs(Ink$1.Box, {
106
+ children: [
107
+ JsxRuntime.jsx(Ink$1.Text, {
108
+ children: "Chain: "
109
+ }),
110
+ JsxRuntime.jsx(Ink$1.Text, {
111
+ children: chainId,
112
+ bold: true
113
+ }),
114
+ JsxRuntime.jsx(Ink$1.Text, {
115
+ children: " "
116
+ }),
117
+ poweredByHyperSync ? JsxRuntime.jsx(Ink$1.Text, {
118
+ children: "⚡",
119
+ color: "#FFBB2F"
120
+ }) : null
121
+ ],
122
+ width: headerWidth
123
+ }),
124
+ JsxRuntime.jsx(Ink$1.Text, {
125
+ children: "Loading progress..."
126
+ })
127
+ ],
128
+ width: chainsWidth,
129
+ flexDirection: "row"
130
+ }),
131
+ JsxRuntime.jsx(Ink.Newline.make, {})
132
+ ]
133
+ });
135
134
  }
136
135
 
137
- var ChainLine = {
136
+ let ChainLine = {
138
137
  make: Tui$ChainLine
139
138
  };
140
139
 
141
140
  function Tui$TotalEventsProcessed(props) {
142
- return JsxRuntime.jsxs($$Ink$1.Text, {
143
- children: [
144
- JsxRuntime.jsx($$Ink$1.Text, {
145
- children: "Total Events: ",
146
- bold: true
147
- }),
148
- JsxRuntime.jsx($$Ink$1.Text, {
149
- children: TuiData.formatFloatLocaleString(props.totalEventsProcessed),
150
- color: "#FFBB2F"
151
- })
152
- ]
153
- });
141
+ return JsxRuntime.jsxs(Ink$1.Text, {
142
+ children: [
143
+ JsxRuntime.jsx(Ink$1.Text, {
144
+ children: "Total Events: ",
145
+ bold: true
146
+ }),
147
+ JsxRuntime.jsx(Ink$1.Text, {
148
+ children: TuiData.formatFloatLocaleString(props.totalEventsProcessed),
149
+ color: "#FFBB2F"
150
+ })
151
+ ]
152
+ });
154
153
  }
155
154
 
156
- var TotalEventsProcessed = {
155
+ let TotalEventsProcessed = {
157
156
  make: Tui$TotalEventsProcessed
158
157
  };
159
158
 
160
159
  function Tui$App(props) {
161
- var getState = props.getState;
162
- var stdoutColumns = $$Ink.Hooks.useStdoutColumns();
163
- var match = React.useState(function () {
164
- return getState();
165
- });
166
- var setState = match[1];
167
- var state = match[0];
168
- React.useEffect((function () {
169
- var intervalId = setInterval((function () {
170
- setState(function (param) {
171
- return getState();
172
- });
173
- }), 500);
174
- return (function () {
175
- clearInterval(intervalId);
176
- });
177
- }), [getState]);
178
- var chains = Belt_Array.map(ChainMap.values(state.chainManager.chainFetchers), (function (cf) {
179
- var numEventsProcessed = cf.numEventsProcessed;
180
- var latestFetchedBlockNumber = Caml.int_max(FetchState.bufferBlockNumber(cf.fetchState), 0);
181
- var hasProcessedToEndblock = ChainFetcher.hasProcessedToEndblock(cf);
182
- var knownHeight = ChainFetcher.hasProcessedToEndblock(cf) ? Belt_Option.getWithDefault(cf.fetchState.endBlock, cf.fetchState.knownHeight) : cf.fetchState.knownHeight;
183
- var firstEventBlock = cf.fetchState.firstEventBlock;
184
- var progress;
185
- if (hasProcessedToEndblock) {
186
- progress = {
160
+ let getState = props.getState;
161
+ let stdoutColumns = Ink.Hooks.useStdoutColumns();
162
+ let match = React.useState(() => getState());
163
+ let setState = match[1];
164
+ let state = match[0];
165
+ React.useEffect(() => {
166
+ let intervalId = setInterval(() => setState(param => getState()), 500);
167
+ return () => {
168
+ clearInterval(intervalId);
169
+ };
170
+ }, [getState]);
171
+ let chains = ChainMap.values(state.chainManager.chainFetchers).map(cf => {
172
+ let numEventsProcessed = cf.numEventsProcessed;
173
+ let latestFetchedBlockNumber = Primitive_int.max(FetchState.bufferBlockNumber(cf.fetchState), 0);
174
+ let hasProcessedToEndblock = ChainFetcher.hasProcessedToEndblock(cf);
175
+ let knownHeight = ChainFetcher.hasProcessedToEndblock(cf) ? Stdlib_Option.getOr(cf.fetchState.endBlock, cf.fetchState.knownHeight) : cf.fetchState.knownHeight;
176
+ let firstEventBlock = cf.fetchState.firstEventBlock;
177
+ let progress;
178
+ if (hasProcessedToEndblock) {
179
+ progress = {
180
+ TAG: "Synced",
181
+ _0: {
182
+ firstEventBlockNumber: Stdlib_Option.getOr(firstEventBlock, 0),
183
+ latestProcessedBlock: cf.committedProgressBlockNumber,
184
+ numEventsProcessed: numEventsProcessed,
185
+ timestampCaughtUpToHeadOrEndblock: Stdlib_Option.getOr(cf.timestampCaughtUpToHeadOrEndblock, new Date(Date.now()))
186
+ }
187
+ };
188
+ } else {
189
+ let match = cf.timestampCaughtUpToHeadOrEndblock;
190
+ progress = firstEventBlock !== undefined ? (
191
+ match !== undefined ? ({
187
192
  TAG: "Synced",
188
193
  _0: {
189
- firstEventBlockNumber: Belt_Option.getWithDefault(firstEventBlock, 0),
194
+ firstEventBlockNumber: firstEventBlock,
190
195
  latestProcessedBlock: cf.committedProgressBlockNumber,
191
196
  numEventsProcessed: numEventsProcessed,
192
- timestampCaughtUpToHeadOrEndblock: Belt_Option.getWithDefault(cf.timestampCaughtUpToHeadOrEndblock, new Date(Date.now()))
197
+ timestampCaughtUpToHeadOrEndblock: match
193
198
  }
194
- };
195
- } else {
196
- var match = cf.timestampCaughtUpToHeadOrEndblock;
197
- progress = firstEventBlock !== undefined ? (
198
- match !== undefined ? ({
199
- TAG: "Synced",
200
- _0: {
201
- firstEventBlockNumber: firstEventBlock,
202
- latestProcessedBlock: cf.committedProgressBlockNumber,
203
- numEventsProcessed: numEventsProcessed,
204
- timestampCaughtUpToHeadOrEndblock: Caml_option.valFromOption(match)
205
- }
206
- }) : ({
207
- TAG: "Syncing",
208
- _0: {
209
- firstEventBlockNumber: firstEventBlock,
210
- latestProcessedBlock: cf.committedProgressBlockNumber,
211
- numEventsProcessed: numEventsProcessed
212
- }
213
- })
214
- ) : "SearchingForEvents";
215
- }
216
- return {
217
- chainId: String(cf.chainConfig.id),
218
- eventsProcessed: numEventsProcessed,
219
- progressBlock: cf.committedProgressBlockNumber < cf.fetchState.startBlock ? cf.fetchState.startBlock : cf.committedProgressBlockNumber,
220
- bufferBlock: latestFetchedBlockNumber,
221
- sourceBlock: cf.fetchState.knownHeight,
222
- startBlock: cf.fetchState.startBlock,
223
- endBlock: cf.fetchState.endBlock,
224
- firstEventBlockNumber: cf.fetchState.firstEventBlock,
225
- poweredByHyperSync: SourceManager.getActiveSource(cf.sourceManager).poweredByHyperSync,
226
- progress: progress,
227
- latestFetchedBlockNumber: latestFetchedBlockNumber,
228
- knownHeight: knownHeight
229
- };
230
- }));
231
- var totalEventsProcessed = Belt_Array.reduce(chains, 0, (function (acc, chain) {
232
- return acc + chain.eventsProcessed;
233
- }));
234
- var maxChainIdLength = Belt_Array.reduce(chains, 0, (function (acc, chain) {
235
- var chainIdLength = chain.chainId.length;
236
- if (chainIdLength > acc) {
237
- return chainIdLength;
238
- } else {
239
- return acc;
240
- }
241
- }));
242
- var defaultPassword = "testing";
243
- return JsxRuntime.jsxs($$Ink$1.Box, {
244
- children: [
245
- JsxRuntime.jsx(InkBigText, {
246
- text: "envio",
247
- font: chains.length > 5 ? "tiny" : "block",
248
- colors: [
249
- "#FFBB2F",
250
- "#9860E5"
251
- ],
252
- space: false
253
- }),
254
- JsxRuntime.jsx($$Ink.Newline.make, {}),
255
- Belt_Array.mapWithIndex(chains, (function (i, chainData) {
256
- return JsxRuntime.jsx(Tui$ChainLine, {
257
- chainId: chainData.chainId,
258
- maxChainIdLength: maxChainIdLength,
259
- stdoutColumns: stdoutColumns,
260
- progressBlock: chainData.progressBlock,
261
- bufferBlock: chainData.bufferBlock,
262
- sourceBlock: chainData.sourceBlock,
263
- startBlock: chainData.startBlock,
264
- endBlock: chainData.endBlock,
265
- poweredByHyperSync: chainData.poweredByHyperSync,
266
- eventsProcessed: chainData.eventsProcessed
267
- }, String(i));
268
- })),
269
- JsxRuntime.jsx(Tui$TotalEventsProcessed, {
270
- totalEventsProcessed: totalEventsProcessed
271
- }),
272
- JsxRuntime.jsx(SyncETA.make, {
273
- chains: chains,
274
- indexerStartTime: state.indexerStartTime
275
- }),
276
- JsxRuntime.jsx($$Ink.Newline.make, {}),
277
- JsxRuntime.jsxs($$Ink$1.Box, {
278
- children: [
279
- JsxRuntime.jsx($$Ink$1.Text, {
280
- children: "GraphQL: "
281
- }),
282
- JsxRuntime.jsx($$Ink$1.Text, {
283
- children: Env.Hasura.url,
284
- color: "#6CBFEE",
285
- underline: true
286
- }),
287
- Env.Hasura.secret === defaultPassword ? JsxRuntime.jsx($$Ink$1.Text, {
288
- children: " (password: " + defaultPassword + ")",
289
- color: "gray"
290
- }) : null
291
- ],
292
- flexDirection: "row"
293
- }),
294
- JsxRuntime.jsxs($$Ink$1.Box, {
295
- children: [
296
- JsxRuntime.jsx($$Ink$1.Text, {
297
- children: "Dev Console: "
298
- }),
299
- JsxRuntime.jsx($$Ink$1.Text, {
300
- children: Env.envioAppUrl + "/console",
301
- color: "#6CBFEE",
302
- underline: true
303
- })
304
- ],
305
- flexDirection: "row"
306
- }),
307
- JsxRuntime.jsx(Messages.make, {
308
- config: state.ctx.config
309
- })
310
- ],
311
- flexDirection: "column"
312
- });
199
+ }) : ({
200
+ TAG: "Syncing",
201
+ _0: {
202
+ firstEventBlockNumber: firstEventBlock,
203
+ latestProcessedBlock: cf.committedProgressBlockNumber,
204
+ numEventsProcessed: numEventsProcessed
205
+ }
206
+ })
207
+ ) : "SearchingForEvents";
208
+ }
209
+ return {
210
+ chainId: cf.chainConfig.id.toString(),
211
+ eventsProcessed: numEventsProcessed,
212
+ progressBlock: cf.committedProgressBlockNumber < cf.fetchState.startBlock ? cf.fetchState.startBlock : cf.committedProgressBlockNumber,
213
+ bufferBlock: latestFetchedBlockNumber,
214
+ sourceBlock: cf.fetchState.knownHeight,
215
+ startBlock: cf.fetchState.startBlock,
216
+ endBlock: cf.fetchState.endBlock,
217
+ firstEventBlockNumber: cf.fetchState.firstEventBlock,
218
+ poweredByHyperSync: SourceManager.getActiveSource(cf.sourceManager).poweredByHyperSync,
219
+ progress: progress,
220
+ latestFetchedBlockNumber: latestFetchedBlockNumber,
221
+ knownHeight: knownHeight
222
+ };
223
+ });
224
+ let totalEventsProcessed = Stdlib_Array.reduce(chains, 0, (acc, chain) => acc + chain.eventsProcessed);
225
+ let maxChainIdLength = Stdlib_Array.reduce(chains, 0, (acc, chain) => {
226
+ let chainIdLength = chain.chainId.length;
227
+ if (chainIdLength > acc) {
228
+ return chainIdLength;
229
+ } else {
230
+ return acc;
231
+ }
232
+ });
233
+ let defaultPassword = "testing";
234
+ let match$1 = state.ctx.config.storage.clickhouse;
235
+ let match$2 = Env.ClickHouse.host();
236
+ return JsxRuntime.jsxs(Ink$1.Box, {
237
+ children: [
238
+ JsxRuntime.jsx(InkBigText, {
239
+ text: "envio",
240
+ font: chains.length > 5 ? "tiny" : "block",
241
+ colors: [
242
+ "#FFBB2F",
243
+ "#9860E5"
244
+ ],
245
+ space: false
246
+ }),
247
+ JsxRuntime.jsx(Ink.Newline.make, {}),
248
+ chains.map((chainData, i) => JsxRuntime.jsx(Tui$ChainLine, {
249
+ chainId: chainData.chainId,
250
+ maxChainIdLength: maxChainIdLength,
251
+ stdoutColumns: stdoutColumns,
252
+ progressBlock: chainData.progressBlock,
253
+ bufferBlock: chainData.bufferBlock,
254
+ sourceBlock: chainData.sourceBlock,
255
+ startBlock: chainData.startBlock,
256
+ endBlock: chainData.endBlock,
257
+ poweredByHyperSync: chainData.poweredByHyperSync,
258
+ eventsProcessed: chainData.eventsProcessed
259
+ }, i.toString())),
260
+ JsxRuntime.jsx(Tui$TotalEventsProcessed, {
261
+ totalEventsProcessed: totalEventsProcessed
262
+ }),
263
+ JsxRuntime.jsx(SyncETA.make, {
264
+ chains: chains,
265
+ indexerStartTime: state.indexerStartTime
266
+ }),
267
+ JsxRuntime.jsx(Ink.Newline.make, {}),
268
+ JsxRuntime.jsxs(Ink$1.Box, {
269
+ children: [
270
+ JsxRuntime.jsx(Ink$1.Text, {
271
+ children: "GraphQL: "
272
+ }),
273
+ JsxRuntime.jsx(Ink$1.Text, {
274
+ children: Env.Hasura.url,
275
+ color: "#6CBFEE",
276
+ underline: true
277
+ }),
278
+ Env.Hasura.secret === defaultPassword ? JsxRuntime.jsx(Ink$1.Text, {
279
+ children: ` (password: ` + defaultPassword + `)`,
280
+ color: "gray"
281
+ }) : null
282
+ ],
283
+ flexDirection: "row"
284
+ }),
285
+ Envio.isDevMode() ? JsxRuntime.jsxs(Ink$1.Box, {
286
+ children: [
287
+ JsxRuntime.jsx(Ink$1.Text, {
288
+ children: "Dev Console: "
289
+ }),
290
+ JsxRuntime.jsx(Ink$1.Text, {
291
+ children: Env.envioAppUrl + `/console`,
292
+ color: "#6CBFEE",
293
+ underline: true
294
+ })
295
+ ],
296
+ flexDirection: "row"
297
+ }) : null,
298
+ match$1 && match$2 !== undefined ? JsxRuntime.jsxs(Ink$1.Box, {
299
+ children: [
300
+ JsxRuntime.jsx(Ink$1.Text, {
301
+ children: "ClickHouse: "
302
+ }),
303
+ JsxRuntime.jsx(Ink$1.Text, {
304
+ children: match$2 + `/play`,
305
+ color: "#6CBFEE",
306
+ underline: true
307
+ })
308
+ ],
309
+ flexDirection: "row"
310
+ }) : null,
311
+ JsxRuntime.jsx(Messages.make, {
312
+ config: state.ctx.config
313
+ })
314
+ ],
315
+ flexDirection: "column"
316
+ });
313
317
  }
314
318
 
315
- var App = {
319
+ let App = {
316
320
  make: Tui$App
317
321
  };
318
322
 
319
323
  function start(getState) {
320
- var match = $$Ink.render(undefined, JsxRuntime.jsx(Tui$App, {
321
- getState: getState
322
- }));
323
- var rerender = match.rerender;
324
- return function () {
325
- rerender(JsxRuntime.jsx(Tui$App, {
326
- getState: getState
327
- }));
328
- };
324
+ let match = Ink.render(undefined, JsxRuntime.jsx(Tui$App, {
325
+ getState: getState
326
+ }));
327
+ let rerender = match.rerender;
328
+ return () => rerender(JsxRuntime.jsx(Tui$App, {
329
+ getState: getState
330
+ }));
329
331
  }
330
332
 
331
333
  export {
332
- ChainLine ,
333
- TotalEventsProcessed ,
334
- App ,
335
- start ,
334
+ ChainLine,
335
+ TotalEventsProcessed,
336
+ App,
337
+ start,
336
338
  }
337
339
  /* Env Not a pure module */