envio 3.3.0-alpha.1 → 3.3.0-alpha.10

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 (136) hide show
  1. package/evm.schema.json +10 -0
  2. package/index.d.ts +45 -25
  3. package/package.json +7 -7
  4. package/src/Address.res +5 -2
  5. package/src/Address.res.mjs +3 -1
  6. package/src/Api.res +1 -1
  7. package/src/Api.res.mjs +1 -1
  8. package/src/Batch.res +0 -6
  9. package/src/Batch.res.mjs +1 -12
  10. package/src/BatchProcessing.res +7 -12
  11. package/src/BatchProcessing.res.mjs +8 -7
  12. package/src/Bin.res +3 -0
  13. package/src/Bin.res.mjs +4 -0
  14. package/src/ChainFetching.res +43 -9
  15. package/src/ChainFetching.res.mjs +34 -15
  16. package/src/ChainMetadata.res +1 -11
  17. package/src/ChainMetadata.res.mjs +1 -10
  18. package/src/ChainState.res +605 -151
  19. package/src/ChainState.res.mjs +427 -104
  20. package/src/ChainState.resi +72 -4
  21. package/src/Config.res +61 -33
  22. package/src/Config.res.mjs +50 -10
  23. package/src/ContractRegisterContext.res +2 -12
  24. package/src/ContractRegisterContext.res.mjs +3 -5
  25. package/src/Core.res +14 -3
  26. package/src/CrossChainState.res +113 -89
  27. package/src/CrossChainState.res.mjs +64 -60
  28. package/src/CrossChainState.resi +1 -1
  29. package/src/Ecosystem.res +5 -6
  30. package/src/Ecosystem.res.mjs +3 -3
  31. package/src/Envio.res +17 -11
  32. package/src/EnvioGlobal.res +53 -0
  33. package/src/EnvioGlobal.res.mjs +31 -0
  34. package/src/EventConfigBuilder.res +177 -88
  35. package/src/EventConfigBuilder.res.mjs +99 -42
  36. package/src/EventProcessing.res +74 -28
  37. package/src/EventProcessing.res.mjs +55 -29
  38. package/src/ExitOnCaughtUp.res +10 -2
  39. package/src/ExitOnCaughtUp.res.mjs +10 -1
  40. package/src/FetchState.res +544 -356
  41. package/src/FetchState.res.mjs +412 -471
  42. package/src/HandlerLoader.res +8 -104
  43. package/src/HandlerLoader.res.mjs +2 -81
  44. package/src/HandlerRegister.res +518 -144
  45. package/src/HandlerRegister.res.mjs +285 -133
  46. package/src/HandlerRegister.resi +24 -8
  47. package/src/IndexerState.res +10 -3
  48. package/src/IndexerState.res.mjs +11 -4
  49. package/src/IndexerState.resi +2 -1
  50. package/src/IndexingAddresses.res +108 -0
  51. package/src/IndexingAddresses.res.mjs +101 -0
  52. package/src/IndexingAddresses.resi +34 -0
  53. package/src/Internal.res +155 -46
  54. package/src/Internal.res.mjs +30 -2
  55. package/src/LoadLayer.res +5 -5
  56. package/src/LoadLayer.res.mjs +6 -6
  57. package/src/LogSelection.res +102 -165
  58. package/src/LogSelection.res.mjs +101 -116
  59. package/src/Main.res +71 -236
  60. package/src/Main.res.mjs +60 -145
  61. package/src/Metrics.res +74 -0
  62. package/src/Metrics.res.mjs +75 -0
  63. package/src/PgStorage.res +4 -4
  64. package/src/PgStorage.res.mjs +5 -5
  65. package/src/Prometheus.res +10 -63
  66. package/src/Prometheus.res.mjs +124 -171
  67. package/src/PruneStaleHistory.res +2 -2
  68. package/src/PruneStaleHistory.res.mjs +3 -3
  69. package/src/RawEvent.res +7 -2
  70. package/src/RawEvent.res.mjs +4 -4
  71. package/src/Rollback.res +3 -3
  72. package/src/Rollback.res.mjs +4 -4
  73. package/src/RollbackCommit.res +4 -1
  74. package/src/RollbackCommit.res.mjs +3 -2
  75. package/src/SimulateDeadInputTracker.res +85 -0
  76. package/src/SimulateDeadInputTracker.res.mjs +73 -0
  77. package/src/SimulateDeadInputTracker.resi +12 -0
  78. package/src/SimulateItems.res +91 -23
  79. package/src/SimulateItems.res.mjs +55 -32
  80. package/src/TestIndexer.res +54 -40
  81. package/src/TestIndexer.res.mjs +37 -30
  82. package/src/bindings/Performance.res +7 -0
  83. package/src/bindings/Performance.res.mjs +21 -0
  84. package/src/bindings/Performance.resi +7 -0
  85. package/src/bindings/Viem.res +0 -41
  86. package/src/bindings/Viem.res.mjs +1 -43
  87. package/src/sources/BlockStore.res +46 -0
  88. package/src/sources/BlockStore.res.mjs +24 -0
  89. package/src/sources/EventRouter.res +36 -33
  90. package/src/sources/EventRouter.res.mjs +13 -14
  91. package/src/sources/Evm.res +83 -72
  92. package/src/sources/Evm.res.mjs +53 -69
  93. package/src/sources/EvmChain.res +18 -20
  94. package/src/sources/EvmChain.res.mjs +15 -15
  95. package/src/sources/EvmRpcClient.res +74 -5
  96. package/src/sources/EvmRpcClient.res.mjs +13 -4
  97. package/src/sources/FieldMask.res +39 -0
  98. package/src/sources/FieldMask.res.mjs +42 -0
  99. package/src/sources/Fuel.res +9 -6
  100. package/src/sources/Fuel.res.mjs +5 -10
  101. package/src/sources/HyperFuelSource.res +46 -50
  102. package/src/sources/HyperFuelSource.res.mjs +64 -54
  103. package/src/sources/HyperSync.res +39 -7
  104. package/src/sources/HyperSync.res.mjs +57 -37
  105. package/src/sources/HyperSync.resi +12 -2
  106. package/src/sources/HyperSyncClient.res +22 -111
  107. package/src/sources/HyperSyncClient.res.mjs +2 -30
  108. package/src/sources/HyperSyncHeightStream.res +1 -8
  109. package/src/sources/HyperSyncHeightStream.res.mjs +0 -2
  110. package/src/sources/HyperSyncSource.res +94 -107
  111. package/src/sources/HyperSyncSource.res.mjs +82 -86
  112. package/src/sources/Rpc.res +15 -47
  113. package/src/sources/Rpc.res.mjs +25 -56
  114. package/src/sources/RpcSource.res +320 -467
  115. package/src/sources/RpcSource.res.mjs +268 -385
  116. package/src/sources/RpcWebSocketHeightStream.res +0 -5
  117. package/src/sources/RpcWebSocketHeightStream.res.mjs +0 -2
  118. package/src/sources/SimulateSource.res +10 -4
  119. package/src/sources/SimulateSource.res.mjs +16 -6
  120. package/src/sources/Source.res +34 -6
  121. package/src/sources/SourceManager.res +77 -19
  122. package/src/sources/SourceManager.res.mjs +63 -21
  123. package/src/sources/SourceManager.resi +10 -0
  124. package/src/sources/Svm.res +31 -16
  125. package/src/sources/Svm.res.mjs +36 -13
  126. package/src/sources/SvmHyperSyncClient.res +5 -32
  127. package/src/sources/SvmHyperSyncSource.res +159 -134
  128. package/src/sources/SvmHyperSyncSource.res.mjs +164 -129
  129. package/src/sources/TransactionStore.res +49 -0
  130. package/src/sources/TransactionStore.res.mjs +30 -0
  131. package/src/tui/Tui.res +13 -16
  132. package/src/tui/Tui.res.mjs +12 -14
  133. package/svm.schema.json +49 -37
  134. package/src/bindings/Hrtime.res +0 -58
  135. package/src/bindings/Hrtime.res.mjs +0 -90
  136. 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)