envio 3.3.0-alpha.1 → 3.3.0-alpha.11

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 (143) hide show
  1. package/evm.schema.json +10 -0
  2. package/index.d.ts +45 -25
  3. package/licenses/CLA.md +35 -0
  4. package/licenses/EULA.md +67 -0
  5. package/licenses/LICENSE.md +45 -0
  6. package/licenses/README.md +35 -0
  7. package/package.json +10 -9
  8. package/src/Address.res +5 -2
  9. package/src/Address.res.mjs +3 -1
  10. package/src/Api.res +1 -1
  11. package/src/Api.res.mjs +1 -1
  12. package/src/Batch.res +0 -6
  13. package/src/Batch.res.mjs +1 -12
  14. package/src/BatchProcessing.res +7 -12
  15. package/src/BatchProcessing.res.mjs +8 -7
  16. package/src/Bin.res +3 -0
  17. package/src/Bin.res.mjs +4 -0
  18. package/src/ChainFetching.res +53 -16
  19. package/src/ChainFetching.res.mjs +37 -19
  20. package/src/ChainMetadata.res +1 -11
  21. package/src/ChainMetadata.res.mjs +1 -10
  22. package/src/ChainState.res +630 -161
  23. package/src/ChainState.res.mjs +438 -101
  24. package/src/ChainState.resi +77 -4
  25. package/src/Config.res +70 -38
  26. package/src/Config.res.mjs +52 -12
  27. package/src/ContractRegisterContext.res +2 -12
  28. package/src/ContractRegisterContext.res.mjs +3 -5
  29. package/src/Core.res +34 -3
  30. package/src/Core.res.mjs +12 -0
  31. package/src/CrossChainState.res +130 -89
  32. package/src/CrossChainState.res.mjs +66 -61
  33. package/src/CrossChainState.resi +1 -1
  34. package/src/Ecosystem.res +5 -6
  35. package/src/Ecosystem.res.mjs +3 -3
  36. package/src/Envio.res +17 -11
  37. package/src/EnvioGlobal.res +53 -0
  38. package/src/EnvioGlobal.res.mjs +31 -0
  39. package/src/EventConfigBuilder.res +191 -127
  40. package/src/EventConfigBuilder.res.mjs +116 -66
  41. package/src/EventProcessing.res +77 -28
  42. package/src/EventProcessing.res.mjs +56 -29
  43. package/src/ExitOnCaughtUp.res +10 -2
  44. package/src/ExitOnCaughtUp.res.mjs +10 -1
  45. package/src/FetchState.res +684 -415
  46. package/src/FetchState.res.mjs +505 -486
  47. package/src/HandlerLoader.res +8 -104
  48. package/src/HandlerLoader.res.mjs +2 -81
  49. package/src/HandlerRegister.res +520 -144
  50. package/src/HandlerRegister.res.mjs +286 -133
  51. package/src/HandlerRegister.resi +24 -8
  52. package/src/IndexerState.res +10 -3
  53. package/src/IndexerState.res.mjs +11 -4
  54. package/src/IndexerState.resi +2 -1
  55. package/src/IndexingAddresses.res +108 -0
  56. package/src/IndexingAddresses.res.mjs +101 -0
  57. package/src/IndexingAddresses.resi +34 -0
  58. package/src/Internal.res +166 -48
  59. package/src/Internal.res.mjs +30 -2
  60. package/src/LoadLayer.res +5 -5
  61. package/src/LoadLayer.res.mjs +6 -6
  62. package/src/LogSelection.res +92 -217
  63. package/src/LogSelection.res.mjs +95 -184
  64. package/src/Main.res +71 -236
  65. package/src/Main.res.mjs +60 -145
  66. package/src/Metrics.res +74 -0
  67. package/src/Metrics.res.mjs +75 -0
  68. package/src/PgStorage.res +4 -4
  69. package/src/PgStorage.res.mjs +5 -5
  70. package/src/Prometheus.res +10 -63
  71. package/src/Prometheus.res.mjs +124 -171
  72. package/src/PruneStaleHistory.res +2 -2
  73. package/src/PruneStaleHistory.res.mjs +3 -3
  74. package/src/RawEvent.res +7 -2
  75. package/src/RawEvent.res.mjs +4 -4
  76. package/src/Rollback.res +3 -3
  77. package/src/Rollback.res.mjs +4 -4
  78. package/src/RollbackCommit.res +4 -1
  79. package/src/RollbackCommit.res.mjs +3 -2
  80. package/src/SimulateDeadInputTracker.res +85 -0
  81. package/src/SimulateDeadInputTracker.res.mjs +73 -0
  82. package/src/SimulateDeadInputTracker.resi +12 -0
  83. package/src/SimulateItems.res +128 -28
  84. package/src/SimulateItems.res.mjs +82 -40
  85. package/src/TestIndexer.res +55 -41
  86. package/src/TestIndexer.res.mjs +39 -32
  87. package/src/TopicFilter.res +1 -25
  88. package/src/TopicFilter.res.mjs +0 -74
  89. package/src/bindings/Performance.res +7 -0
  90. package/src/bindings/Performance.res.mjs +21 -0
  91. package/src/bindings/Performance.resi +7 -0
  92. package/src/bindings/Viem.res +0 -46
  93. package/src/bindings/Viem.res.mjs +1 -43
  94. package/src/sources/BlockStore.res +46 -0
  95. package/src/sources/BlockStore.res.mjs +24 -0
  96. package/src/sources/EventRouter.res +31 -49
  97. package/src/sources/EventRouter.res.mjs +12 -25
  98. package/src/sources/Evm.res +83 -72
  99. package/src/sources/Evm.res.mjs +53 -69
  100. package/src/sources/EvmChain.res +7 -34
  101. package/src/sources/EvmChain.res.mjs +6 -27
  102. package/src/sources/EvmRpcClient.res +71 -5
  103. package/src/sources/EvmRpcClient.res.mjs +13 -4
  104. package/src/sources/FieldMask.res +39 -0
  105. package/src/sources/FieldMask.res.mjs +42 -0
  106. package/src/sources/Fuel.res +9 -6
  107. package/src/sources/Fuel.res.mjs +5 -10
  108. package/src/sources/HyperFuelSource.res +46 -50
  109. package/src/sources/HyperFuelSource.res.mjs +64 -54
  110. package/src/sources/HyperSync.res +45 -42
  111. package/src/sources/HyperSync.res.mjs +68 -60
  112. package/src/sources/HyperSync.resi +14 -4
  113. package/src/sources/HyperSyncClient.res +107 -119
  114. package/src/sources/HyperSyncClient.res.mjs +36 -31
  115. package/src/sources/HyperSyncHeightStream.res +1 -8
  116. package/src/sources/HyperSyncHeightStream.res.mjs +0 -2
  117. package/src/sources/HyperSyncSource.res +60 -254
  118. package/src/sources/HyperSyncSource.res.mjs +57 -180
  119. package/src/sources/Rpc.res +15 -79
  120. package/src/sources/Rpc.res.mjs +25 -101
  121. package/src/sources/RpcSource.res +221 -514
  122. package/src/sources/RpcSource.res.mjs +216 -411
  123. package/src/sources/RpcWebSocketHeightStream.res +0 -5
  124. package/src/sources/RpcWebSocketHeightStream.res.mjs +0 -2
  125. package/src/sources/SimulateSource.res +44 -20
  126. package/src/sources/SimulateSource.res.mjs +41 -14
  127. package/src/sources/Source.res +34 -6
  128. package/src/sources/SourceManager.res +77 -19
  129. package/src/sources/SourceManager.res.mjs +63 -21
  130. package/src/sources/SourceManager.resi +10 -0
  131. package/src/sources/Svm.res +31 -16
  132. package/src/sources/Svm.res.mjs +36 -13
  133. package/src/sources/SvmHyperSyncClient.res +5 -32
  134. package/src/sources/SvmHyperSyncSource.res +159 -134
  135. package/src/sources/SvmHyperSyncSource.res.mjs +164 -129
  136. package/src/sources/TransactionStore.res +49 -0
  137. package/src/sources/TransactionStore.res.mjs +30 -0
  138. package/src/tui/Tui.res +13 -16
  139. package/src/tui/Tui.res.mjs +12 -14
  140. package/svm.schema.json +49 -37
  141. package/src/bindings/Hrtime.res +0 -58
  142. package/src/bindings/Hrtime.res.mjs +0 -90
  143. package/src/bindings/Hrtime.resi +0 -30
@@ -212,7 +212,7 @@ module PreloadHandler = {
212
212
 
213
213
  type operationRef = {
214
214
  mutable pendingCount: int,
215
- timerRef: Hrtime.timeRef,
215
+ timerRef: Performance.timeRef,
216
216
  }
217
217
  let operations: dict<operationRef> = Dict.make()
218
218
 
@@ -227,11 +227,11 @@ module PreloadHandler = {
227
227
  key,
228
228
  {
229
229
  pendingCount: 1,
230
- timerRef: Hrtime.makeTimer(),
230
+ timerRef: Performance.now(),
231
231
  },
232
232
  )
233
233
  }
234
- Hrtime.makeTimer()
234
+ Performance.now()
235
235
  }
236
236
 
237
237
  let endOperation = (timerRef, ~contract, ~event) => {
@@ -242,14 +242,11 @@ module PreloadHandler = {
242
242
  if operationRef.pendingCount === 0 {
243
243
  timeCounter->SafeCounter.handleFloat(
244
244
  ~labels,
245
- ~value=operationRef.timerRef->Hrtime.timeSince->Hrtime.toSecondsFloat,
245
+ ~value=operationRef.timerRef->Performance.secondsSince,
246
246
  )
247
247
  operations->Utils.Dict.deleteInPlace(key)
248
248
  }
249
- sumTimeCounter->SafeCounter.handleFloat(
250
- ~labels,
251
- ~value=timerRef->Hrtime.timeSince->Hrtime.toSecondsFloat,
252
- )
249
+ sumTimeCounter->SafeCounter.handleFloat(~labels, ~value=timerRef->Performance.secondsSince)
253
250
  count->SafeCounter.increment(~labels)
254
251
  }
255
252
  }
@@ -339,18 +336,6 @@ module ProcessStartTimeSeconds = {
339
336
  }
340
337
  }
341
338
 
342
- module IndexingAddresses = {
343
- let gauge = SafeGauge.makeOrThrow(
344
- ~name="envio_indexing_addresses",
345
- ~help="The number of addresses indexed on chain. Includes both static and dynamic addresses.",
346
- ~labelSchema=chainIdLabelsSchema,
347
- )
348
-
349
- let set = (~addressesCount, ~chainId) => {
350
- gauge->SafeGauge.handleInt(~labels=chainId, ~value=addressesCount)
351
- }
352
- }
353
-
354
339
  module IndexingConcurrency = {
355
340
  let gauge = SafeGauge.makeOrThrow(
356
341
  ~name="envio_indexing_concurrency",
@@ -453,41 +438,6 @@ let sourceLabelsSchema = S.schema(s =>
453
438
  }
454
439
  )
455
440
 
456
- let sourceRequestLabelsSchema = S.schema(s =>
457
- {
458
- "source": s.matches(S.string),
459
- "chainId": s.matches(S.string->S.coerce(S.int)),
460
- "method": s.matches(S.string),
461
- }
462
- )
463
-
464
- module SourceRequestCount = {
465
- let counter = SafeCounter.makeOrThrow(
466
- ~name="envio_source_request_total",
467
- ~help="The number of requests made to data sources.",
468
- ~labelSchema=sourceRequestLabelsSchema,
469
- )
470
-
471
- let sumTimeCounter = SafeCounter.makeOrThrow(
472
- ~name="envio_source_request_seconds_total",
473
- ~help="Cumulative time spent on data source requests.",
474
- ~labelSchema=sourceRequestLabelsSchema,
475
- )
476
-
477
- let increment = (~sourceName, ~chainId, ~method) => {
478
- counter->SafeCounter.increment(
479
- ~labels={"source": sourceName, "chainId": chainId, "method": method},
480
- )
481
- }
482
-
483
- let addSeconds = (~sourceName, ~chainId, ~method, ~seconds) => {
484
- sumTimeCounter->SafeCounter.handleFloat(
485
- ~labels={"source": sourceName, "chainId": chainId, "method": method},
486
- ~value=seconds,
487
- )
488
- }
489
- }
490
-
491
441
  module SourceHeight = {
492
442
  let gauge = SafeGauge.makeOrThrow(
493
443
  ~name="envio_source_known_height",
@@ -764,7 +714,7 @@ module StorageLoad = {
764
714
 
765
715
  type operationRef = {
766
716
  mutable pendingCount: int,
767
- timerRef: Hrtime.timeRef,
717
+ timerRef: Performance.timeRef,
768
718
  }
769
719
  let operations = Dict.make()
770
720
 
@@ -780,12 +730,12 @@ module StorageLoad = {
780
730
  (
781
731
  {
782
732
  pendingCount: 1,
783
- timerRef: Hrtime.makeTimer(),
733
+ timerRef: Performance.now(),
784
734
  }: operationRef
785
735
  ),
786
736
  )
787
737
  }
788
- Hrtime.makeTimer()
738
+ Performance.now()
789
739
  }
790
740
 
791
741
  let endOperation = (timerRef, ~storage, ~operation, ~whereSize, ~size) => {
@@ -796,14 +746,11 @@ module StorageLoad = {
796
746
  if operationRef.pendingCount === 0 {
797
747
  timeCounter->SafeCounter.handleFloat(
798
748
  ~labels,
799
- ~value=operationRef.timerRef->Hrtime.timeSince->Hrtime.toSecondsFloat,
749
+ ~value=operationRef.timerRef->Performance.secondsSince,
800
750
  )
801
751
  operations->Utils.Dict.deleteInPlace(key)
802
752
  }
803
- sumTimeCounter->SafeCounter.handleFloat(
804
- ~labels,
805
- ~value=timerRef->Hrtime.timeSince->Hrtime.toSecondsFloat,
806
- )
753
+ sumTimeCounter->SafeCounter.handleFloat(~labels, ~value=timerRef->Performance.secondsSince)
807
754
  counter->SafeCounter.increment(~labels)
808
755
  whereSizeCounter->SafeCounter.handleInt(~labels, ~value=whereSize)
809
756
  sizeCounter->SafeCounter.handleInt(~labels, ~value=size)