envio 3.13.0 → 3.14.0
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/bin.mjs +10 -1
- package/index.d.ts +11 -0
- package/package.json +8 -20
- package/rescript.json +1 -4
- package/src/Config.res +69 -100
- package/src/Config.res.mjs +50 -63
- package/src/Core.res +46 -6
- package/src/Core.res.mjs +41 -4
- package/src/EventConfigBuilder.res +4 -10
- package/src/EventConfigBuilder.res.mjs +1 -3
- package/src/ExitOnCaughtUp.res +5 -1
- package/src/ExitOnCaughtUp.res.mjs +8 -3
- package/src/HandlerLoader.res +74 -32
- package/src/HandlerLoader.res.mjs +69 -23
- package/src/HandlerTypeCheck.mjs +14 -0
- package/src/HandlerTypeCheckWorker.mjs +68 -0
- package/src/Internal.res +1 -1
- package/src/Main.res +17 -12
- package/src/Main.res.mjs +9 -3
- package/src/NodeVersion.mjs +13 -0
- package/src/Persistence.res +79 -38
- package/src/Persistence.res.mjs +41 -10
- package/src/PgStorage.res +62 -34
- package/src/PgStorage.res.mjs +65 -31
- package/src/ResumePlan.res +172 -0
- package/src/ResumePlan.res.mjs +122 -0
- package/src/Supervisor.res +8 -8
- package/src/Supervisor.res.mjs +6 -1
- package/src/TestIndexer.res +14 -4
- package/src/TestIndexer.res.mjs +3 -2
- package/src/TsModuleHooks.mjs +121 -0
- package/src/Utils.res +0 -8
- package/src/Worker.res +8 -0
- package/src/Worker.res.mjs +11 -0
- package/src/bindings/NodeJs.res +8 -7
- package/src/bindings/NodeJs.res.mjs +0 -3
- package/src/bindings/Pino.res +2 -2
- package/src/db/InternalTable.res +52 -2
- package/src/db/InternalTable.res.mjs +32 -3
- package/src/sources/FuelHyperSync.res +2 -0
- package/src/sources/FuelHyperSync.res.mjs +1 -0
- package/src/sources/FuelHyperSync.resi +1 -0
- package/src/sources/FuelHyperSyncClient.res +25 -8
- package/src/sources/FuelHyperSyncClient.res.mjs +8 -2
- package/src/sources/FuelHyperSyncSource.res +24 -22
- package/src/sources/FuelHyperSyncSource.res.mjs +18 -13
- package/src/tui/InitApi.res +85 -0
- package/src/tui/{components/CustomHooks.res.mjs → InitApi.res.mjs} +11 -64
- package/src/tui/Tui.res +142 -249
- package/src/tui/Tui.res.mjs +123 -332
- package/src/Js.shim.ts +0 -11
- package/src/bindings/DateFns.res +0 -74
- package/src/bindings/DateFns.res.mjs +0 -22
- package/src/sources/FuelSDK.res +0 -38
- package/src/sources/FuelSDK.res.mjs +0 -27
- package/src/sources/vendored-fuel-abi-coder.js +0 -1792
- package/src/tui/bindings/Ink.res +0 -369
- package/src/tui/bindings/Ink.res.mjs +0 -66
- package/src/tui/bindings/Style.res +0 -123
- package/src/tui/bindings/Style.res.mjs +0 -2
- package/src/tui/components/BufferedProgressBar.res +0 -40
- package/src/tui/components/BufferedProgressBar.res.mjs +0 -57
- package/src/tui/components/CustomHooks.res +0 -122
- package/src/tui/components/Messages.res +0 -40
- package/src/tui/components/Messages.res.mjs +0 -71
- package/src/tui/components/SyncETA.res +0 -179
- package/src/tui/components/SyncETA.res.mjs +0 -249
- package/src/tui/components/TuiData.res +0 -98
- package/src/tui/components/TuiData.res.mjs +0 -73
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
type syncing = {
|
|
2
|
-
firstEventBlockNumber: int,
|
|
3
|
-
latestProcessedBlock: int,
|
|
4
|
-
numEventsProcessed: float,
|
|
5
|
-
}
|
|
6
|
-
type synced = {
|
|
7
|
-
...syncing,
|
|
8
|
-
timestampCaughtUpToHeadOrEndblock: Date.t,
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
type progress = SearchingForEvents | Syncing(syncing) | Synced(synced)
|
|
12
|
-
|
|
13
|
-
type chain = {
|
|
14
|
-
chainId: string,
|
|
15
|
-
eventsProcessed: float,
|
|
16
|
-
// Clamped into [startBlock, toBlock]: the source height is 0 until the first
|
|
17
|
-
// height fetch lands, and the buffer starts one block below startBlock, so raw
|
|
18
|
-
// values can fall outside the range the progress bar counts up to.
|
|
19
|
-
progressBlock: int,
|
|
20
|
-
bufferBlock: int,
|
|
21
|
-
toBlock: int,
|
|
22
|
-
startBlock: int,
|
|
23
|
-
endBlock: option<int>,
|
|
24
|
-
poweredByHyperSync: bool,
|
|
25
|
-
progress: progress,
|
|
26
|
-
latestFetchedBlockNumber: int,
|
|
27
|
-
knownHeight: int,
|
|
28
|
-
/** Localized unit noun for this chain's progress. `"Slots"` on SVM,
|
|
29
|
-
`"Blocks"` everywhere else. Drives the per-chain progress label. */
|
|
30
|
-
blockUnit: string,
|
|
31
|
-
rateLimitTimeMs: float,
|
|
32
|
-
rateLimitResetInMs: option<float>,
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
let fromChainMetrics = (m: Metrics.chainMetrics, ~blockUnit): chain => {
|
|
36
|
-
// A chain can reach its end block without ever matching an event, so it
|
|
37
|
-
// still has to render as synced with no first event block to report.
|
|
38
|
-
let firstEventBlockNumber = m.firstEventBlockNumber->Option.getOr(0)
|
|
39
|
-
let syncing: syncing = {
|
|
40
|
-
firstEventBlockNumber,
|
|
41
|
-
latestProcessedBlock: m.progressBlockNumber,
|
|
42
|
-
numEventsProcessed: m.numEventsProcessed,
|
|
43
|
-
}
|
|
44
|
-
let synced = (~timestampCaughtUpToHeadOrEndblock): progress => Synced({
|
|
45
|
-
firstEventBlockNumber,
|
|
46
|
-
latestProcessedBlock: m.progressBlockNumber,
|
|
47
|
-
numEventsProcessed: m.numEventsProcessed,
|
|
48
|
-
timestampCaughtUpToHeadOrEndblock,
|
|
49
|
-
})
|
|
50
|
-
let progress = if m->Metrics.hasProcessedToEndblock {
|
|
51
|
-
synced(
|
|
52
|
-
~timestampCaughtUpToHeadOrEndblock=m.timestampCaughtUpToHeadOrEndblock->Option.getOr(
|
|
53
|
-
Date.now()->Date.fromTime,
|
|
54
|
-
),
|
|
55
|
-
)
|
|
56
|
-
} else {
|
|
57
|
-
switch (m.firstEventBlockNumber, m.timestampCaughtUpToHeadOrEndblock) {
|
|
58
|
-
| (Some(_), Some(timestampCaughtUpToHeadOrEndblock)) =>
|
|
59
|
-
synced(~timestampCaughtUpToHeadOrEndblock)
|
|
60
|
-
| (Some(_), None) => Syncing(syncing)
|
|
61
|
-
| (None, _) => SearchingForEvents
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
let toBlock = Pervasives.max(
|
|
66
|
-
switch m.endBlock {
|
|
67
|
-
| Some(endBlock) => Pervasives.min(m.sourceBlockNumber, endBlock)
|
|
68
|
-
| None => m.sourceBlockNumber
|
|
69
|
-
},
|
|
70
|
-
m.startBlock,
|
|
71
|
-
)
|
|
72
|
-
let clampToRange = blockNumber =>
|
|
73
|
-
blockNumber->Pervasives.max(m.startBlock)->Pervasives.min(toBlock)
|
|
74
|
-
|
|
75
|
-
{
|
|
76
|
-
progress,
|
|
77
|
-
chainId: m.chainId->ChainId.toString,
|
|
78
|
-
eventsProcessed: m.numEventsProcessed,
|
|
79
|
-
progressBlock: m.progressBlockNumber->clampToRange,
|
|
80
|
-
bufferBlock: m.latestFetchedBlockNumber->clampToRange,
|
|
81
|
-
toBlock,
|
|
82
|
-
startBlock: m.startBlock,
|
|
83
|
-
endBlock: m.endBlock,
|
|
84
|
-
poweredByHyperSync: m.poweredByHyperSync,
|
|
85
|
-
latestFetchedBlockNumber: m.latestFetchedBlockNumber,
|
|
86
|
-
knownHeight: m.knownHeight,
|
|
87
|
-
blockUnit,
|
|
88
|
-
rateLimitTimeMs: m.rateLimitTimeMs,
|
|
89
|
-
rateLimitResetInMs: m.rateLimitResetInMs,
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
type number
|
|
94
|
-
@val external number: int => number = "Number"
|
|
95
|
-
@val external floatNumber: float => number = "Number"
|
|
96
|
-
@send external toLocaleString: number => string = "toLocaleString"
|
|
97
|
-
let formatLocaleString = n => n->number->toLocaleString
|
|
98
|
-
let formatFloatLocaleString = n => n->floatNumber->toLocaleString
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
-
|
|
3
|
-
import * as ChainId from "../../ChainId.res.mjs";
|
|
4
|
-
import * as Metrics from "../../Metrics.res.mjs";
|
|
5
|
-
import * as Primitive_int from "@rescript/runtime/lib/es6/Primitive_int.js";
|
|
6
|
-
import * as Stdlib_Option from "@rescript/runtime/lib/es6/Stdlib_Option.js";
|
|
7
|
-
|
|
8
|
-
function fromChainMetrics(m, blockUnit) {
|
|
9
|
-
let firstEventBlockNumber = Stdlib_Option.getOr(m.firstEventBlockNumber, 0);
|
|
10
|
-
let syncing_latestProcessedBlock = m.progressBlockNumber;
|
|
11
|
-
let syncing_numEventsProcessed = m.numEventsProcessed;
|
|
12
|
-
let syncing = {
|
|
13
|
-
firstEventBlockNumber: firstEventBlockNumber,
|
|
14
|
-
latestProcessedBlock: syncing_latestProcessedBlock,
|
|
15
|
-
numEventsProcessed: syncing_numEventsProcessed
|
|
16
|
-
};
|
|
17
|
-
let synced = timestampCaughtUpToHeadOrEndblock => ({
|
|
18
|
-
TAG: "Synced",
|
|
19
|
-
_0: {
|
|
20
|
-
firstEventBlockNumber: firstEventBlockNumber,
|
|
21
|
-
latestProcessedBlock: m.progressBlockNumber,
|
|
22
|
-
numEventsProcessed: m.numEventsProcessed,
|
|
23
|
-
timestampCaughtUpToHeadOrEndblock: timestampCaughtUpToHeadOrEndblock
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
let progress;
|
|
27
|
-
if (Metrics.hasProcessedToEndblock(m)) {
|
|
28
|
-
progress = synced(Stdlib_Option.getOr(m.timestampCaughtUpToHeadOrEndblock, new Date(Date.now())));
|
|
29
|
-
} else {
|
|
30
|
-
let match = m.firstEventBlockNumber;
|
|
31
|
-
let match$1 = m.timestampCaughtUpToHeadOrEndblock;
|
|
32
|
-
progress = match !== undefined ? (
|
|
33
|
-
match$1 !== undefined ? synced(match$1) : ({
|
|
34
|
-
TAG: "Syncing",
|
|
35
|
-
_0: syncing
|
|
36
|
-
})
|
|
37
|
-
) : "SearchingForEvents";
|
|
38
|
-
}
|
|
39
|
-
let endBlock = m.endBlock;
|
|
40
|
-
let toBlock = Primitive_int.max(endBlock !== undefined ? Primitive_int.min(m.sourceBlockNumber, endBlock) : m.sourceBlockNumber, m.startBlock);
|
|
41
|
-
let clampToRange = blockNumber => Primitive_int.min(Primitive_int.max(blockNumber, m.startBlock), toBlock);
|
|
42
|
-
return {
|
|
43
|
-
chainId: ChainId.toString(m.chainId),
|
|
44
|
-
eventsProcessed: m.numEventsProcessed,
|
|
45
|
-
progressBlock: clampToRange(m.progressBlockNumber),
|
|
46
|
-
bufferBlock: clampToRange(m.latestFetchedBlockNumber),
|
|
47
|
-
toBlock: toBlock,
|
|
48
|
-
startBlock: m.startBlock,
|
|
49
|
-
endBlock: m.endBlock,
|
|
50
|
-
poweredByHyperSync: m.poweredByHyperSync,
|
|
51
|
-
progress: progress,
|
|
52
|
-
latestFetchedBlockNumber: m.latestFetchedBlockNumber,
|
|
53
|
-
knownHeight: m.knownHeight,
|
|
54
|
-
blockUnit: blockUnit,
|
|
55
|
-
rateLimitTimeMs: m.rateLimitTimeMs,
|
|
56
|
-
rateLimitResetInMs: m.rateLimitResetInMs
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function formatLocaleString(n) {
|
|
61
|
-
return Number(n).toLocaleString();
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
function formatFloatLocaleString(n) {
|
|
65
|
-
return Number(n).toLocaleString();
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export {
|
|
69
|
-
fromChainMetrics,
|
|
70
|
-
formatLocaleString,
|
|
71
|
-
formatFloatLocaleString,
|
|
72
|
-
}
|
|
73
|
-
/* ChainId Not a pure module */
|