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
package/index.js CHANGED
@@ -3,11 +3,13 @@
3
3
  // on the JS side, so we need to do it here
4
4
 
5
5
  import * as Sury from "rescript-schema";
6
- import { schema as bigintSchema } from "./src/bindings/BigInt.res.mjs";
6
+ import { $$BigInt as UtilsBigInt } from "./src/Utils.res.mjs";
7
+ const bigintSchema = UtilsBigInt.schema;
7
8
  import { schema as bigDecimalSchema } from "./src/bindings/BigDecimal.res.mjs";
8
9
 
9
- // Re-export everything from envioGen
10
10
  export * from "./src/Envio.res.mjs";
11
+ export { indexer, createTestIndexer } from "./src/Api.res.mjs";
12
+ export { default as BigDecimal } from "bignumber.js";
11
13
 
12
14
  // Important! Should match the index.d.ts file
13
15
  export const S = {
@@ -37,7 +39,7 @@ export const S = {
37
39
  tuple: Sury.tuple,
38
40
  merge: Sury.merge,
39
41
  optional: Sury.optional,
40
- nullable: Sury.nullable,
42
+ nullable: (schema) => Sury.union([schema, null]),
41
43
  bigDecimal: bigDecimalSchema,
42
44
  // Nullish type will change in "sury@10"
43
45
  // nullish: Sury.nullish,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "envio",
3
- "version": "3.0.0-alpha.21",
3
+ "version": "3.0.0-alpha.22",
4
4
  "type": "module",
5
5
  "description": "A latency and sync speed optimized, developer friendly blockchain data indexer.",
6
6
  "bin": "./bin.mjs",
@@ -51,18 +51,19 @@
51
51
  "@fuel-ts/utils": "0.96.1",
52
52
  "bignumber.js": "9.3.1",
53
53
  "eventsource": "4.1.0",
54
+ "js-sdsl": "4.4.2",
54
55
  "express": "4.19.2",
55
56
  "pino": "10.3.1",
56
57
  "pino-pretty": "13.1.3",
57
58
  "prom-client": "15.1.3",
58
59
  "yargs": "17.7.2",
59
- "rescript": "11.1.3",
60
- "rescript-schema": "9.3.4",
60
+ "@rescript/runtime": "12.2.0",
61
+ "rescript-schema": "9.5.1",
61
62
  "viem": "2.46.2",
62
- "rescript-envsafe": "5.0.0",
63
63
  "dotenv": "16.4.5",
64
64
  "date-fns": "3.3.1",
65
65
  "@rescript/react": "0.14.1",
66
+ "react": "19.2.5",
66
67
  "ink": "6.8.0",
67
68
  "ink-big-text": "2.0.0",
68
69
  "ink-spinner": "5.0.0",
@@ -70,9 +71,10 @@
70
71
  "tsx": "4.21.0"
71
72
  },
72
73
  "optionalDependencies": {
73
- "envio-linux-x64": "3.0.0-alpha.21",
74
- "envio-linux-arm64": "3.0.0-alpha.21",
75
- "envio-darwin-x64": "3.0.0-alpha.21",
76
- "envio-darwin-arm64": "3.0.0-alpha.21"
74
+ "envio-linux-x64": "3.0.0-alpha.22",
75
+ "envio-linux-x64-musl": "3.0.0-alpha.22",
76
+ "envio-linux-arm64": "3.0.0-alpha.22",
77
+ "envio-darwin-x64": "3.0.0-alpha.22",
78
+ "envio-darwin-arm64": "3.0.0-alpha.22"
77
79
  }
78
80
  }
package/rescript.json CHANGED
@@ -12,16 +12,12 @@
12
12
  "module": "esmodule",
13
13
  "in-source": true
14
14
  },
15
- "gentypeconfig": {
16
- "shims": {
17
- "Js": "Js"
18
- },
19
- "generatedFileExtension": ".gen.ts",
20
- "moduleResolution": "node16"
21
- },
22
15
  "jsx": {
23
16
  "version": 4
24
17
  },
25
- "bs-dependencies": ["rescript-schema", "@rescript/react", "rescript-envsafe"],
26
- "bsc-flags": ["-open RescriptSchema"]
18
+ "dependencies": ["rescript-schema", "@rescript/react"],
19
+ "compiler-flags": ["-open RescriptSchema"],
20
+ "warnings": {
21
+ "error": "+3"
22
+ }
27
23
  }
package/src/Address.res CHANGED
@@ -1,4 +1,3 @@
1
- @genType.import(("./Types.ts", "Address"))
2
1
  type t
3
2
 
4
3
  let schema = S.string->S.setName("Address")->(Utils.magic: S.t<string> => S.t<t>)
@@ -22,16 +21,16 @@ module Evm = {
22
21
  // Validate that the string is a proper address but return a lowercased value
23
22
  let fromStringLowercaseOrThrow = string => {
24
23
  if fromStringLowercaseOrThrow(string) {
25
- unsafeFromString(string->Js.String2.toLowerCase)
24
+ unsafeFromString(string->String.toLowerCase)
26
25
  } else {
27
- Js.Exn.raiseError(
26
+ JsError.throwWithMessage(
28
27
  `Address "${string}" is invalid. Expected a 20-byte hex string starting with 0x.`,
29
28
  )
30
29
  }
31
30
  }
32
31
 
33
32
  let fromAddressLowercaseOrThrow = address =>
34
- address->toString->Js.String2.toLowerCase->(Utils.magic: string => t)
33
+ address->toString->String.toLowerCase->(Utils.magic: string => t)
35
34
 
36
35
  // Reassign since the function might be used in the handler code
37
36
  // and we don't want to have a "viem" import there. It's needed to keep "viem" a dependency
@@ -42,7 +41,7 @@ module Evm = {
42
41
  fromStringOrThrow(string)
43
42
  } catch {
44
43
  | _ =>
45
- Js.Exn.raiseError(
44
+ JsError.throwWithMessage(
46
45
  `Address "${string}" is invalid. Expected a 20-byte hex string starting with 0x.`,
47
46
  )
48
47
  }
@@ -1,16 +1,16 @@
1
1
  // Generated by ReScript, PLEASE EDIT WITH CARE
2
2
 
3
3
  import * as Viem from "viem";
4
- import * as Js_exn from "rescript/lib/es6/js_exn.js";
4
+ import * as Stdlib_JsError from "@rescript/runtime/lib/es6/Stdlib_JsError.js";
5
5
  import * as S$RescriptSchema from "rescript-schema/src/S.res.mjs";
6
6
 
7
- var schema = S$RescriptSchema.setName(S$RescriptSchema.string, "Address");
7
+ let schema = S$RescriptSchema.setName(S$RescriptSchema.string, "Address");
8
8
 
9
9
  function fromStringLowercaseOrThrow(string) {
10
10
  if (Viem.isAddress(string)) {
11
11
  return string.toLowerCase();
12
12
  } else {
13
- return Js_exn.raiseError("Address \"" + string + "\" is invalid. Expected a 20-byte hex string starting with 0x.");
13
+ return Stdlib_JsError.throwWithMessage(`Address "` + string + `" is invalid. Expected a 20-byte hex string starting with 0x.`);
14
14
  }
15
15
  }
16
16
 
@@ -21,17 +21,14 @@ function fromAddressLowercaseOrThrow(address) {
21
21
  function fromStringOrThrow(string) {
22
22
  try {
23
23
  return Viem.getAddress(string);
24
- }
25
- catch (exn){
26
- return Js_exn.raiseError("Address \"" + string + "\" is invalid. Expected a 20-byte hex string starting with 0x.");
24
+ } catch (exn) {
25
+ return Stdlib_JsError.throwWithMessage(`Address "` + string + `" is invalid. Expected a 20-byte hex string starting with 0x.`);
27
26
  }
28
27
  }
29
28
 
30
- function fromAddressOrThrow(address) {
31
- return fromStringOrThrow(address);
32
- }
29
+ let fromAddressOrThrow = fromStringOrThrow;
33
30
 
34
- var Evm = {
31
+ let Evm = {
35
32
  fromStringLowercaseOrThrow: fromStringLowercaseOrThrow,
36
33
  fromAddressLowercaseOrThrow: fromAddressLowercaseOrThrow,
37
34
  fromStringOrThrow: fromStringOrThrow,
@@ -39,7 +36,7 @@ var Evm = {
39
36
  };
40
37
 
41
38
  export {
42
- schema ,
43
- Evm ,
39
+ schema,
40
+ Evm,
44
41
  }
45
42
  /* schema Not a pure module */
package/src/Api.res ADDED
@@ -0,0 +1,15 @@
1
+ // Top-of-graph module — putting these in Main or TestIndexer would cycle
2
+ // back through Envio.
3
+
4
+ let indexer: unknown = Main.getGlobalIndexer()
5
+
6
+ let createTestIndexer: unit => unknown = () => {
7
+ let workerPath =
8
+ NodeJs.Path.join(
9
+ NodeJs.Path.getDirname(NodeJs.ImportMeta.importMeta),
10
+ "TestIndexerWorker.res.mjs",
11
+ )->NodeJs.Path.toString
12
+ TestIndexer.makeCreateTestIndexer(~config=Config.loadWithoutRegistrations(), ~workerPath)()->(
13
+ Utils.magic: TestIndexer.t<'a> => unknown
14
+ )
15
+ }
@@ -0,0 +1,20 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+ import * as Main from "./Main.res.mjs";
4
+ import * as Path from "path";
5
+ import * as Config from "./Config.res.mjs";
6
+ import * as NodeJs from "./bindings/NodeJs.res.mjs";
7
+ import * as TestIndexer from "./TestIndexer.res.mjs";
8
+
9
+ let indexer = Main.getGlobalIndexer();
10
+
11
+ function createTestIndexer() {
12
+ let workerPath = Path.join(NodeJs.Path.getDirname(import.meta), "TestIndexerWorker.res.mjs");
13
+ return TestIndexer.makeCreateTestIndexer(Config.loadWithoutRegistrations(), workerPath)();
14
+ }
15
+
16
+ export {
17
+ indexer,
18
+ createTestIndexer,
19
+ }
20
+ /* indexer Not a pure module */
package/src/Batch.res CHANGED
@@ -1,5 +1,3 @@
1
- open Belt
2
-
3
1
  @@warning("-44")
4
2
  open Utils.UnsafeIntOperators
5
3
 
@@ -29,7 +27,7 @@ type t = {
29
27
  checkpointIds: array<bigint>,
30
28
  checkpointChainIds: array<int>,
31
29
  checkpointBlockNumbers: array<int>,
32
- checkpointBlockHashes: array<Js.Null.t<string>>,
30
+ checkpointBlockHashes: array<Null.t<string>>,
33
31
  checkpointEventsProcessed: array<int>,
34
32
  }
35
33
 
@@ -68,7 +66,7 @@ let getOrderedNextChain = (fetchStates: ChainMap.t<FetchState.t>, ~batchSizePerC
68
66
  }
69
67
 
70
68
  // Save overhead of recreating the dict every time
71
- let immutableEmptyBatchSizePerChain: dict<int> = Js.Dict.empty()
69
+ let immutableEmptyBatchSizePerChain: dict<int> = Dict.make()
72
70
  let hasOrderedReadyItem = (fetchStates: ChainMap.t<FetchState.t>) => {
73
71
  switch fetchStates->getOrderedNextChain(~batchSizePerChain=immutableEmptyBatchSizePerChain) {
74
72
  | Some(fetchState) => fetchState->FetchState.hasReadyItem
@@ -79,7 +77,7 @@ let hasOrderedReadyItem = (fetchStates: ChainMap.t<FetchState.t>) => {
79
77
  let hasUnorderedReadyItem = (fetchStates: ChainMap.t<FetchState.t>) => {
80
78
  fetchStates
81
79
  ->ChainMap.values
82
- ->Js.Array2.some(fetchState => {
80
+ ->Array.some(fetchState => {
83
81
  fetchState->FetchState.isActivelyIndexing && fetchState->FetchState.hasReadyItem
84
82
  })
85
83
  }
@@ -128,7 +126,7 @@ let getProgressedChainsById = {
128
126
  ~batchSizePerChain: dict<int>,
129
127
  ~progressBlockNumberPerChain: dict<int>,
130
128
  ) => {
131
- let progressedChainsById = Js.Dict.empty()
129
+ let progressedChainsById = Dict.make()
132
130
 
133
131
  // Needed to:
134
132
  // - Recalculate the computed queue sizes
@@ -136,7 +134,7 @@ let getProgressedChainsById = {
136
134
  // - Trigger onBlock pointer update
137
135
  chainsBeforeBatch
138
136
  ->ChainMap.values
139
- ->Array.forEachU(chainBeforeBatch => {
137
+ ->Array.forEach(chainBeforeBatch => {
140
138
  let fetchState = chainBeforeBatch.fetchState
141
139
 
142
140
  let progressBlockNumberAfterBatch = switch progressBlockNumberPerChain->Utils.Dict.dangerouslyGetNonOption(
@@ -150,7 +148,7 @@ let getProgressedChainsById = {
150
148
  fetchState.chainId->Int.toString,
151
149
  ) {
152
150
  | Some(batchSize) =>
153
- let leftItems = fetchState.buffer->Js.Array2.sliceFrom(batchSize)
151
+ let leftItems = fetchState.buffer->Array.slice(~start=batchSize)
154
152
  getChainAfterBatchIfProgressed(
155
153
  ~chainBeforeBatch,
156
154
  ~batchSize,
@@ -198,16 +196,16 @@ let addReorgCheckpoints = (
198
196
  let prevCheckpointId = ref(prevCheckpointId)
199
197
  for blockNumber in fromBlockExclusive + 1 to toBlockExclusive - 1 {
200
198
  switch reorgDetection->ReorgDetection.getHashByBlockNumber(~blockNumber) {
201
- | Js.Null.Value(hash) =>
199
+ | Null.Value(hash) =>
202
200
  let checkpointId = prevCheckpointId.contents->BigInt.add(1n)
203
201
  prevCheckpointId := checkpointId
204
202
 
205
- mutCheckpointIds->Js.Array2.push(checkpointId)->ignore
206
- mutCheckpointChainIds->Js.Array2.push(chainId)->ignore
207
- mutCheckpointBlockNumbers->Js.Array2.push(blockNumber)->ignore
208
- mutCheckpointBlockHashes->Js.Array2.push(Js.Null.Value(hash))->ignore
209
- mutCheckpointEventsProcessed->Js.Array2.push(0)->ignore
210
- | Js.Null.Null => ()
203
+ mutCheckpointIds->Array.push(checkpointId)
204
+ mutCheckpointChainIds->Array.push(chainId)
205
+ mutCheckpointBlockNumbers->Array.push(blockNumber)
206
+ mutCheckpointBlockHashes->Array.push(Null.Value(hash))
207
+ mutCheckpointEventsProcessed->Array.push(0)
208
+ | Null.Null => ()
211
209
  }
212
210
  }
213
211
  prevCheckpointId.contents
@@ -224,8 +222,8 @@ let prepareOrderedBatch = (
224
222
  let totalBatchSize = ref(0)
225
223
  let isFinished = ref(false)
226
224
  let prevCheckpointId = ref(checkpointIdBeforeBatch)
227
- let mutBatchSizePerChain = Js.Dict.empty()
228
- let mutProgressBlockNumberPerChain = Js.Dict.empty()
225
+ let mutBatchSizePerChain = Dict.make()
226
+ let mutProgressBlockNumberPerChain = Dict.make()
229
227
 
230
228
  let fetchStates = chainsBeforeBatch->ChainMap.map(chainBeforeBatch => chainBeforeBatch.fetchState)
231
229
 
@@ -283,30 +281,30 @@ let prepareOrderedBatch = (
283
281
  let checkpointId = prevCheckpointId.contents->BigInt.add(1n)
284
282
 
285
283
  items
286
- ->Js.Array2.push(item0)
284
+ ->Array.push(item0)
287
285
  ->ignore
288
286
  for idx in 1 to newItemsCount - 1 {
289
287
  items
290
- ->Js.Array2.push(fetchState.buffer->Belt.Array.getUnsafe(itemsCountBefore + idx))
288
+ ->Array.push(fetchState.buffer->Belt.Array.getUnsafe(itemsCountBefore + idx))
291
289
  ->ignore
292
290
  }
293
291
 
294
292
  checkpointIds
295
- ->Js.Array2.push(checkpointId)
293
+ ->Array.push(checkpointId)
296
294
  ->ignore
297
295
  checkpointChainIds
298
- ->Js.Array2.push(fetchState.chainId)
296
+ ->Array.push(fetchState.chainId)
299
297
  ->ignore
300
298
  checkpointBlockNumbers
301
- ->Js.Array2.push(blockNumber)
299
+ ->Array.push(blockNumber)
302
300
  ->ignore
303
301
  checkpointBlockHashes
304
- ->Js.Array2.push(
302
+ ->Array.push(
305
303
  chainBeforeBatch.reorgDetection->ReorgDetection.getHashByBlockNumber(~blockNumber),
306
304
  )
307
305
  ->ignore
308
306
  checkpointEventsProcessed
309
- ->Js.Array2.push(newItemsCount)
307
+ ->Array.push(newItemsCount)
310
308
  ->ignore
311
309
 
312
310
  prevCheckpointId := checkpointId
@@ -371,7 +369,7 @@ let prepareUnorderedBatch = (
371
369
  let preparedFetchStates =
372
370
  chainsBeforeBatch
373
371
  ->ChainMap.values
374
- ->Js.Array2.map(chainBeforeBatch => chainBeforeBatch.fetchState)
372
+ ->Array.map(chainBeforeBatch => chainBeforeBatch.fetchState)
375
373
  ->FetchState.sortForUnorderedBatch(~batchSizeTarget)
376
374
 
377
375
  let chainIdx = ref(0)
@@ -379,8 +377,8 @@ let prepareUnorderedBatch = (
379
377
  let totalBatchSize = ref(0)
380
378
 
381
379
  let prevCheckpointId = ref(checkpointIdBeforeBatch)
382
- let mutBatchSizePerChain = Js.Dict.empty()
383
- let mutProgressBlockNumberPerChain = Js.Dict.empty()
380
+ let mutBatchSizePerChain = Dict.make()
381
+ let mutProgressBlockNumberPerChain = Dict.make()
384
382
 
385
383
  let items = []
386
384
  let checkpointIds = []
@@ -393,7 +391,7 @@ let prepareUnorderedBatch = (
393
391
  // the way to group as many items from a single chain as possible
394
392
  // This way the loaders optimisations will hit more often
395
393
  while totalBatchSize.contents < batchSizeTarget && chainIdx.contents < preparedNumber {
396
- let fetchState = preparedFetchStates->Js.Array2.unsafe_get(chainIdx.contents)
394
+ let fetchState = preparedFetchStates->Array.getUnsafe(chainIdx.contents)
397
395
  let chainBatchSize =
398
396
  fetchState->FetchState.getReadyItemsCount(
399
397
  ~targetSize=batchSizeTarget - totalBatchSize.contents,
@@ -426,15 +424,15 @@ let prepareUnorderedBatch = (
426
424
 
427
425
  let checkpointId = prevCheckpointId.contents->BigInt.add(1n)
428
426
 
429
- checkpointIds->Js.Array2.push(checkpointId)->ignore
430
- checkpointChainIds->Js.Array2.push(fetchState.chainId)->ignore
431
- checkpointBlockNumbers->Js.Array2.push(blockNumber)->ignore
427
+ checkpointIds->Array.push(checkpointId)->ignore
428
+ checkpointChainIds->Array.push(fetchState.chainId)->ignore
429
+ checkpointBlockNumbers->Array.push(blockNumber)->ignore
432
430
  checkpointBlockHashes
433
- ->Js.Array2.push(
431
+ ->Array.push(
434
432
  chainBeforeBatch.reorgDetection->ReorgDetection.getHashByBlockNumber(~blockNumber),
435
433
  )
436
434
  ->ignore
437
- checkpointEventsProcessed->Js.Array2.push(1)->ignore
435
+ checkpointEventsProcessed->Array.push(1)->ignore
438
436
 
439
437
  prevBlockNumber := blockNumber
440
438
  prevCheckpointId := checkpointId
@@ -448,7 +446,7 @@ let prepareUnorderedBatch = (
448
446
  ->ignore
449
447
  }
450
448
 
451
- items->Js.Array2.push(item)->ignore
449
+ items->Array.push(item)->ignore
452
450
  }
453
451
 
454
452
  totalBatchSize := totalBatchSize.contents + chainBatchSize