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.
- 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 +43 -9
- package/src/ChainFetching.res.mjs +34 -15
- package/src/ChainMetadata.res +1 -11
- package/src/ChainMetadata.res.mjs +1 -10
- package/src/ChainState.res +605 -151
- package/src/ChainState.res.mjs +427 -104
- package/src/ChainState.resi +72 -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 +113 -89
- package/src/CrossChainState.res.mjs +64 -60
- package/src/CrossChainState.resi +1 -1
- package/src/Ecosystem.res +5 -6
- package/src/Ecosystem.res.mjs +3 -3
- 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 +544 -356
- package/src/FetchState.res.mjs +412 -471
- 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/IndexerState.res +10 -3
- package/src/IndexerState.res.mjs +11 -4
- package/src/IndexerState.resi +2 -1
- 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 -63
- package/src/Prometheus.res.mjs +124 -171
- 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 +77 -19
- package/src/sources/SourceManager.res.mjs +63 -21
- package/src/sources/SourceManager.resi +10 -0
- 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/svm.schema.json
CHANGED
|
@@ -463,53 +463,65 @@
|
|
|
463
463
|
"type": "object",
|
|
464
464
|
"properties": {
|
|
465
465
|
"transaction_fields": {
|
|
466
|
-
"description": "
|
|
467
|
-
"
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
466
|
+
"description": "Parent-transaction fields to include on each matched instruction, as a list of field names. Omit (or pass an empty list) to include no transaction.",
|
|
467
|
+
"type": [
|
|
468
|
+
"array",
|
|
469
|
+
"null"
|
|
470
|
+
],
|
|
471
|
+
"items": {
|
|
472
|
+
"$ref": "#/$defs/SvmTransactionField"
|
|
473
|
+
}
|
|
474
|
+
},
|
|
475
|
+
"block_fields": {
|
|
476
|
+
"description": "Block fields to include on each matched instruction's `block`, as a list of field names. `slot`/`time`/`hash` are always included; this adds `height`/`parentSlot`/`parentHash`.",
|
|
477
|
+
"type": [
|
|
478
|
+
"array",
|
|
479
|
+
"null"
|
|
480
|
+
],
|
|
481
|
+
"items": {
|
|
482
|
+
"$ref": "#/$defs/SvmBlockField"
|
|
483
|
+
}
|
|
475
484
|
},
|
|
476
485
|
"log_fields": {
|
|
477
|
-
"description": "
|
|
478
|
-
"
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
},
|
|
482
|
-
{
|
|
483
|
-
"type": "null"
|
|
484
|
-
}
|
|
486
|
+
"description": "Set to `true` to include program logs scoped to each matched instruction.",
|
|
487
|
+
"type": [
|
|
488
|
+
"boolean",
|
|
489
|
+
"null"
|
|
485
490
|
]
|
|
486
491
|
},
|
|
487
492
|
"token_balance_fields": {
|
|
488
|
-
"description": "
|
|
489
|
-
"
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
},
|
|
493
|
-
{
|
|
494
|
-
"type": "null"
|
|
495
|
-
}
|
|
493
|
+
"description": "Set to `true` to include SPL Token / Token-2022 balance snapshots for the parent transaction, exposed as `transaction.tokenBalances`. Independent of `transaction_fields`.",
|
|
494
|
+
"type": [
|
|
495
|
+
"boolean",
|
|
496
|
+
"null"
|
|
496
497
|
]
|
|
497
498
|
}
|
|
498
499
|
},
|
|
499
500
|
"additionalProperties": false
|
|
500
501
|
},
|
|
501
|
-
"
|
|
502
|
-
"description": "
|
|
503
|
-
"
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
502
|
+
"SvmTransactionField": {
|
|
503
|
+
"description": "Selectable parent-transaction field names (camelCase), matching the\npublic `svmTransaction` shape. `tokenBalances` is selected via the\nseparate `token_balance_fields` toggle, so it isn't listed here.",
|
|
504
|
+
"type": "string",
|
|
505
|
+
"enum": [
|
|
506
|
+
"transactionIndex",
|
|
507
|
+
"signatures",
|
|
508
|
+
"feePayer",
|
|
509
|
+
"success",
|
|
510
|
+
"err",
|
|
511
|
+
"fee",
|
|
512
|
+
"computeUnitsConsumed",
|
|
513
|
+
"accountKeys",
|
|
514
|
+
"recentBlockhash",
|
|
515
|
+
"version"
|
|
516
|
+
]
|
|
517
|
+
},
|
|
518
|
+
"SvmBlockField": {
|
|
519
|
+
"description": "Selectable block field names (camelCase), matching the public\n`instruction.block` shape. `slot`/`time`/`hash` are always included,\nso everything here is opt-in on top of that trio.",
|
|
520
|
+
"type": "string",
|
|
521
|
+
"enum": [
|
|
522
|
+
"height",
|
|
523
|
+
"parentSlot",
|
|
524
|
+
"parentHash"
|
|
513
525
|
]
|
|
514
526
|
},
|
|
515
527
|
"ArgDef": {
|
package/src/bindings/Hrtime.res
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
type seconds = float
|
|
2
|
-
type milliseconds = float
|
|
3
|
-
type nanoseconds = float
|
|
4
|
-
|
|
5
|
-
type timeTuple = (seconds, nanoseconds)
|
|
6
|
-
|
|
7
|
-
type timeRef = timeTuple
|
|
8
|
-
|
|
9
|
-
type timeElapsed = timeTuple
|
|
10
|
-
|
|
11
|
-
@val @scope("process") external makeTimer: unit => timeRef = "hrtime"
|
|
12
|
-
|
|
13
|
-
@val @scope("process") external timeSince: timeRef => timeElapsed = "hrtime"
|
|
14
|
-
|
|
15
|
-
let nanoToMilli = (nano: nanoseconds): milliseconds => nano /. 1_000_000.
|
|
16
|
-
let secToMilli = (sec: seconds): milliseconds => sec *. 1_000.
|
|
17
|
-
|
|
18
|
-
let nanoToTimeTuple = (nano: nanoseconds): timeTuple => {
|
|
19
|
-
let factor = 1_000_000_000.
|
|
20
|
-
let seconds = Math.floor(nano /. factor)
|
|
21
|
-
let nanos = Float.mod(nano, factor)
|
|
22
|
-
(seconds, nanos)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
let timeElapsedToNewRef = (elapsed: timeElapsed, ref: timeRef): timeRef => {
|
|
26
|
-
let (elapsedSeconds, elapsedNano) = elapsed
|
|
27
|
-
let (refSeconds, refNano) = ref
|
|
28
|
-
|
|
29
|
-
let (nanoExtraSeconds, remainderNanos) = nanoToTimeTuple(elapsedNano +. refNano)
|
|
30
|
-
(elapsedSeconds +. refSeconds +. nanoExtraSeconds, remainderNanos)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
let toMillis = ((sec, nano): timeElapsed): milliseconds => {
|
|
34
|
-
sec->secToMilli +. nano->nanoToMilli
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
let toSeconds = ((sec, nano): timeElapsed): seconds => {
|
|
38
|
-
sec +. nano /. 1_000_000_000.
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
let toSecondsFloat = (elapsed: timeElapsed): float => {
|
|
42
|
-
elapsed->toSeconds->(Utils.magic: seconds => float)
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
let toInt = float => float->Int.fromFloat
|
|
46
|
-
let intFromMillis = toInt
|
|
47
|
-
let intFromNanos = toInt
|
|
48
|
-
let intFromSeconds = toInt
|
|
49
|
-
let floatFromMillis: milliseconds => float = v => v->(Utils.magic: milliseconds => float)
|
|
50
|
-
let floatFromSeconds: seconds => float = v => v->(Utils.magic: seconds => float)
|
|
51
|
-
|
|
52
|
-
let millisBetween = (~from: timeRef, ~to: timeRef): int => {
|
|
53
|
-
to->toMillis->intFromMillis - from->toMillis->intFromMillis
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
let secondsBetween = (~from: timeRef, ~to: timeRef): float => {
|
|
57
|
-
to->toSecondsFloat -. from->toSecondsFloat
|
|
58
|
-
}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
function nanoToMilli(nano) {
|
|
5
|
-
return nano / 1000000;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
function secToMilli(sec) {
|
|
9
|
-
return sec * 1000;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
function nanoToTimeTuple(nano) {
|
|
13
|
-
let seconds = Math.floor(nano / 1000000000);
|
|
14
|
-
let nanos = nano % 1000000000;
|
|
15
|
-
return [
|
|
16
|
-
seconds,
|
|
17
|
-
nanos
|
|
18
|
-
];
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function timeElapsedToNewRef(elapsed, ref) {
|
|
22
|
-
let match = nanoToTimeTuple(elapsed[1] + ref[1]);
|
|
23
|
-
return [
|
|
24
|
-
elapsed[0] + ref[0] + match[0],
|
|
25
|
-
match[1]
|
|
26
|
-
];
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function toMillis(param) {
|
|
30
|
-
return param[0] * 1000 + param[1] / 1000000;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function toSeconds(param) {
|
|
34
|
-
return param[0] + param[1] / 1000000000;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
let toSecondsFloat = toSeconds;
|
|
38
|
-
|
|
39
|
-
function toInt(float) {
|
|
40
|
-
return float | 0;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function floatFromMillis(v) {
|
|
44
|
-
return v;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function floatFromSeconds(v) {
|
|
48
|
-
return v;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function millisBetween(from, to) {
|
|
52
|
-
return (toMillis(to) | 0) - (toMillis(from) | 0) | 0;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function secondsBetween(from, to) {
|
|
56
|
-
return toSeconds(to) - toSeconds(from);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function makeTimer(prim) {
|
|
60
|
-
return process.hrtime();
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
function timeSince(prim) {
|
|
64
|
-
return process.hrtime(prim);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
let intFromMillis = toInt;
|
|
68
|
-
|
|
69
|
-
let intFromNanos = toInt;
|
|
70
|
-
|
|
71
|
-
let intFromSeconds = toInt;
|
|
72
|
-
|
|
73
|
-
export {
|
|
74
|
-
makeTimer,
|
|
75
|
-
timeSince,
|
|
76
|
-
nanoToMilli,
|
|
77
|
-
secToMilli,
|
|
78
|
-
timeElapsedToNewRef,
|
|
79
|
-
toMillis,
|
|
80
|
-
toSeconds,
|
|
81
|
-
toSecondsFloat,
|
|
82
|
-
intFromMillis,
|
|
83
|
-
intFromNanos,
|
|
84
|
-
intFromSeconds,
|
|
85
|
-
floatFromMillis,
|
|
86
|
-
floatFromSeconds,
|
|
87
|
-
millisBetween,
|
|
88
|
-
secondsBetween,
|
|
89
|
-
}
|
|
90
|
-
/* No side effect */
|
package/src/bindings/Hrtime.resi
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
type seconds
|
|
2
|
-
type milliseconds
|
|
3
|
-
type nanoseconds
|
|
4
|
-
|
|
5
|
-
type timeTuple = (seconds, nanoseconds)
|
|
6
|
-
|
|
7
|
-
type timeRef
|
|
8
|
-
|
|
9
|
-
type timeElapsed = timeTuple
|
|
10
|
-
|
|
11
|
-
let makeTimer: unit => timeRef
|
|
12
|
-
|
|
13
|
-
let timeSince: timeRef => timeElapsed
|
|
14
|
-
|
|
15
|
-
let nanoToMilli: nanoseconds => milliseconds
|
|
16
|
-
let secToMilli: seconds => milliseconds
|
|
17
|
-
|
|
18
|
-
let timeElapsedToNewRef: (timeElapsed, timeRef) => timeRef
|
|
19
|
-
let toMillis: timeElapsed => milliseconds
|
|
20
|
-
let toSeconds: timeElapsed => seconds
|
|
21
|
-
let toSecondsFloat: timeElapsed => float
|
|
22
|
-
|
|
23
|
-
let intFromMillis: milliseconds => int
|
|
24
|
-
let intFromNanos: nanoseconds => int
|
|
25
|
-
let intFromSeconds: seconds => int
|
|
26
|
-
let floatFromMillis: milliseconds => float
|
|
27
|
-
let floatFromSeconds: seconds => float
|
|
28
|
-
|
|
29
|
-
let millisBetween: (~from: timeRef, ~to: timeRef) => int
|
|
30
|
-
let secondsBetween: (~from: timeRef, ~to: timeRef) => float
|