envio 3.3.0-alpha.0 → 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.
- package/evm.schema.json +10 -0
- package/index.d.ts +45 -25
- package/package.json +7 -7
- package/src/Address.res +5 -2
- package/src/Address.res.mjs +3 -1
- package/src/Api.res +1 -1
- package/src/Api.res.mjs +1 -1
- package/src/Batch.res +0 -6
- package/src/Batch.res.mjs +1 -12
- package/src/BatchProcessing.res +7 -12
- package/src/BatchProcessing.res.mjs +8 -7
- package/src/Bin.res +3 -0
- package/src/Bin.res.mjs +4 -0
- package/src/ChainFetching.res +48 -16
- package/src/ChainFetching.res.mjs +36 -17
- package/src/ChainMetadata.res +1 -11
- package/src/ChainMetadata.res.mjs +1 -10
- package/src/ChainState.res +628 -149
- package/src/ChainState.res.mjs +440 -102
- package/src/ChainState.resi +74 -4
- package/src/Config.res +61 -33
- package/src/Config.res.mjs +50 -10
- package/src/ContractRegisterContext.res +2 -12
- package/src/ContractRegisterContext.res.mjs +3 -5
- package/src/Core.res +14 -3
- package/src/CrossChainState.res +142 -93
- package/src/CrossChainState.res.mjs +88 -60
- package/src/CrossChainState.resi +2 -10
- package/src/Ecosystem.res +5 -6
- package/src/Ecosystem.res.mjs +3 -3
- package/src/Env.res +0 -7
- package/src/Env.res.mjs +0 -6
- package/src/Envio.res +17 -11
- package/src/EnvioGlobal.res +53 -0
- package/src/EnvioGlobal.res.mjs +31 -0
- package/src/EventConfigBuilder.res +177 -88
- package/src/EventConfigBuilder.res.mjs +99 -42
- package/src/EventProcessing.res +74 -28
- package/src/EventProcessing.res.mjs +55 -29
- package/src/ExitOnCaughtUp.res +10 -2
- package/src/ExitOnCaughtUp.res.mjs +10 -1
- package/src/FetchState.res +558 -300
- package/src/FetchState.res.mjs +437 -423
- package/src/HandlerLoader.res +8 -104
- package/src/HandlerLoader.res.mjs +2 -81
- package/src/HandlerRegister.res +518 -144
- package/src/HandlerRegister.res.mjs +285 -133
- package/src/HandlerRegister.resi +24 -8
- package/src/IndexerLoop.res +2 -3
- package/src/IndexerLoop.res.mjs +1 -1
- package/src/IndexerState.res +10 -11
- package/src/IndexerState.res.mjs +14 -11
- package/src/IndexerState.resi +2 -5
- package/src/IndexingAddresses.res +108 -0
- package/src/IndexingAddresses.res.mjs +101 -0
- package/src/IndexingAddresses.resi +34 -0
- package/src/Internal.res +155 -46
- package/src/Internal.res.mjs +30 -2
- package/src/LoadLayer.res +5 -5
- package/src/LoadLayer.res.mjs +6 -6
- package/src/LogSelection.res +102 -165
- package/src/LogSelection.res.mjs +101 -116
- package/src/Main.res +71 -236
- package/src/Main.res.mjs +60 -145
- package/src/Metrics.res +74 -0
- package/src/Metrics.res.mjs +75 -0
- package/src/PgStorage.res +4 -4
- package/src/PgStorage.res.mjs +5 -5
- package/src/Prometheus.res +10 -74
- package/src/Prometheus.res.mjs +124 -186
- package/src/PruneStaleHistory.res +2 -2
- package/src/PruneStaleHistory.res.mjs +3 -3
- package/src/RawEvent.res +7 -2
- package/src/RawEvent.res.mjs +4 -4
- package/src/Rollback.res +3 -3
- package/src/Rollback.res.mjs +4 -4
- package/src/RollbackCommit.res +4 -1
- package/src/RollbackCommit.res.mjs +3 -2
- package/src/SimulateDeadInputTracker.res +85 -0
- package/src/SimulateDeadInputTracker.res.mjs +73 -0
- package/src/SimulateDeadInputTracker.resi +12 -0
- package/src/SimulateItems.res +91 -23
- package/src/SimulateItems.res.mjs +55 -32
- package/src/TestIndexer.res +54 -40
- package/src/TestIndexer.res.mjs +37 -30
- package/src/bindings/Performance.res +7 -0
- package/src/bindings/Performance.res.mjs +21 -0
- package/src/bindings/Performance.resi +7 -0
- package/src/bindings/Viem.res +0 -41
- package/src/bindings/Viem.res.mjs +1 -43
- package/src/sources/BlockStore.res +46 -0
- package/src/sources/BlockStore.res.mjs +24 -0
- package/src/sources/EventRouter.res +36 -33
- package/src/sources/EventRouter.res.mjs +13 -14
- package/src/sources/Evm.res +83 -72
- package/src/sources/Evm.res.mjs +53 -69
- package/src/sources/EvmChain.res +18 -20
- package/src/sources/EvmChain.res.mjs +15 -15
- package/src/sources/EvmRpcClient.res +74 -5
- package/src/sources/EvmRpcClient.res.mjs +13 -4
- package/src/sources/FieldMask.res +39 -0
- package/src/sources/FieldMask.res.mjs +42 -0
- package/src/sources/Fuel.res +9 -6
- package/src/sources/Fuel.res.mjs +5 -10
- package/src/sources/HyperFuelSource.res +46 -50
- package/src/sources/HyperFuelSource.res.mjs +64 -54
- package/src/sources/HyperSync.res +39 -7
- package/src/sources/HyperSync.res.mjs +57 -37
- package/src/sources/HyperSync.resi +12 -2
- package/src/sources/HyperSyncClient.res +22 -111
- package/src/sources/HyperSyncClient.res.mjs +2 -30
- package/src/sources/HyperSyncHeightStream.res +1 -8
- package/src/sources/HyperSyncHeightStream.res.mjs +0 -2
- package/src/sources/HyperSyncSource.res +94 -107
- package/src/sources/HyperSyncSource.res.mjs +82 -86
- package/src/sources/Rpc.res +15 -47
- package/src/sources/Rpc.res.mjs +25 -56
- package/src/sources/RpcSource.res +320 -467
- package/src/sources/RpcSource.res.mjs +268 -385
- package/src/sources/RpcWebSocketHeightStream.res +0 -5
- package/src/sources/RpcWebSocketHeightStream.res.mjs +0 -2
- package/src/sources/SimulateSource.res +10 -4
- package/src/sources/SimulateSource.res.mjs +16 -6
- package/src/sources/Source.res +34 -6
- package/src/sources/SourceManager.res +86 -27
- package/src/sources/SourceManager.res.mjs +84 -47
- package/src/sources/SourceManager.resi +12 -3
- package/src/sources/Svm.res +31 -16
- package/src/sources/Svm.res.mjs +36 -13
- package/src/sources/SvmHyperSyncClient.res +5 -32
- package/src/sources/SvmHyperSyncSource.res +159 -134
- package/src/sources/SvmHyperSyncSource.res.mjs +164 -129
- package/src/sources/TransactionStore.res +49 -0
- package/src/sources/TransactionStore.res.mjs +30 -0
- package/src/tui/Tui.res +13 -16
- package/src/tui/Tui.res.mjs +12 -14
- package/svm.schema.json +49 -37
- package/src/bindings/Hrtime.res +0 -58
- package/src/bindings/Hrtime.res.mjs +0 -90
- package/src/bindings/Hrtime.resi +0 -30
package/src/Prometheus.res
CHANGED
|
@@ -212,7 +212,7 @@ module PreloadHandler = {
|
|
|
212
212
|
|
|
213
213
|
type operationRef = {
|
|
214
214
|
mutable pendingCount: int,
|
|
215
|
-
timerRef:
|
|
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:
|
|
230
|
+
timerRef: Performance.now(),
|
|
231
231
|
},
|
|
232
232
|
)
|
|
233
233
|
}
|
|
234
|
-
|
|
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->
|
|
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,29 +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
|
-
module IndexingMaxConcurrency = {
|
|
355
|
-
let gauge = PromClient.Gauge.makeGauge({
|
|
356
|
-
"name": "envio_indexing_max_concurrency",
|
|
357
|
-
"help": "The maximum number of concurrent data-source queries across the whole indexer.",
|
|
358
|
-
})
|
|
359
|
-
|
|
360
|
-
let set = (~maxConcurrency) => {
|
|
361
|
-
gauge->PromClient.Gauge.set(maxConcurrency)
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
|
|
365
339
|
module IndexingConcurrency = {
|
|
366
340
|
let gauge = SafeGauge.makeOrThrow(
|
|
367
341
|
~name="envio_indexing_concurrency",
|
|
@@ -464,41 +438,6 @@ let sourceLabelsSchema = S.schema(s =>
|
|
|
464
438
|
}
|
|
465
439
|
)
|
|
466
440
|
|
|
467
|
-
let sourceRequestLabelsSchema = S.schema(s =>
|
|
468
|
-
{
|
|
469
|
-
"source": s.matches(S.string),
|
|
470
|
-
"chainId": s.matches(S.string->S.coerce(S.int)),
|
|
471
|
-
"method": s.matches(S.string),
|
|
472
|
-
}
|
|
473
|
-
)
|
|
474
|
-
|
|
475
|
-
module SourceRequestCount = {
|
|
476
|
-
let counter = SafeCounter.makeOrThrow(
|
|
477
|
-
~name="envio_source_request_total",
|
|
478
|
-
~help="The number of requests made to data sources.",
|
|
479
|
-
~labelSchema=sourceRequestLabelsSchema,
|
|
480
|
-
)
|
|
481
|
-
|
|
482
|
-
let sumTimeCounter = SafeCounter.makeOrThrow(
|
|
483
|
-
~name="envio_source_request_seconds_total",
|
|
484
|
-
~help="Cumulative time spent on data source requests.",
|
|
485
|
-
~labelSchema=sourceRequestLabelsSchema,
|
|
486
|
-
)
|
|
487
|
-
|
|
488
|
-
let increment = (~sourceName, ~chainId, ~method) => {
|
|
489
|
-
counter->SafeCounter.increment(
|
|
490
|
-
~labels={"source": sourceName, "chainId": chainId, "method": method},
|
|
491
|
-
)
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
let addSeconds = (~sourceName, ~chainId, ~method, ~seconds) => {
|
|
495
|
-
sumTimeCounter->SafeCounter.handleFloat(
|
|
496
|
-
~labels={"source": sourceName, "chainId": chainId, "method": method},
|
|
497
|
-
~value=seconds,
|
|
498
|
-
)
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
|
-
|
|
502
441
|
module SourceHeight = {
|
|
503
442
|
let gauge = SafeGauge.makeOrThrow(
|
|
504
443
|
~name="envio_source_known_height",
|
|
@@ -775,7 +714,7 @@ module StorageLoad = {
|
|
|
775
714
|
|
|
776
715
|
type operationRef = {
|
|
777
716
|
mutable pendingCount: int,
|
|
778
|
-
timerRef:
|
|
717
|
+
timerRef: Performance.timeRef,
|
|
779
718
|
}
|
|
780
719
|
let operations = Dict.make()
|
|
781
720
|
|
|
@@ -791,12 +730,12 @@ module StorageLoad = {
|
|
|
791
730
|
(
|
|
792
731
|
{
|
|
793
732
|
pendingCount: 1,
|
|
794
|
-
timerRef:
|
|
733
|
+
timerRef: Performance.now(),
|
|
795
734
|
}: operationRef
|
|
796
735
|
),
|
|
797
736
|
)
|
|
798
737
|
}
|
|
799
|
-
|
|
738
|
+
Performance.now()
|
|
800
739
|
}
|
|
801
740
|
|
|
802
741
|
let endOperation = (timerRef, ~storage, ~operation, ~whereSize, ~size) => {
|
|
@@ -807,14 +746,11 @@ module StorageLoad = {
|
|
|
807
746
|
if operationRef.pendingCount === 0 {
|
|
808
747
|
timeCounter->SafeCounter.handleFloat(
|
|
809
748
|
~labels,
|
|
810
|
-
~value=operationRef.timerRef->
|
|
749
|
+
~value=operationRef.timerRef->Performance.secondsSince,
|
|
811
750
|
)
|
|
812
751
|
operations->Utils.Dict.deleteInPlace(key)
|
|
813
752
|
}
|
|
814
|
-
sumTimeCounter->SafeCounter.handleFloat(
|
|
815
|
-
~labels,
|
|
816
|
-
~value=timerRef->Hrtime.timeSince->Hrtime.toSecondsFloat,
|
|
817
|
-
)
|
|
753
|
+
sumTimeCounter->SafeCounter.handleFloat(~labels, ~value=timerRef->Performance.secondsSince)
|
|
818
754
|
counter->SafeCounter.increment(~labels)
|
|
819
755
|
whereSizeCounter->SafeCounter.handleInt(~labels, ~value=whereSize)
|
|
820
756
|
sizeCounter->SafeCounter.handleInt(~labels, ~value=size)
|