envio 3.0.0-alpha.2 → 3.0.0-alpha.20
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/README.md +164 -30
- package/bin.mjs +49 -0
- package/evm.schema.json +79 -169
- package/fuel.schema.json +50 -21
- package/index.d.ts +497 -1
- package/index.js +4 -0
- package/package.json +42 -31
- package/rescript.json +4 -1
- package/src/Batch.res +11 -8
- package/src/Batch.res.mjs +11 -9
- package/src/ChainFetcher.res +531 -0
- package/src/ChainFetcher.res.mjs +339 -0
- package/src/ChainManager.res +190 -0
- package/src/ChainManager.res.mjs +166 -0
- package/src/Change.res +3 -3
- package/src/Config.gen.ts +19 -0
- package/src/Config.res +737 -22
- package/src/Config.res.mjs +703 -26
- package/src/{Indexer.res → Ctx.res} +1 -1
- package/src/Ecosystem.res +9 -124
- package/src/Ecosystem.res.mjs +19 -160
- package/src/Env.res +30 -74
- package/src/Env.res.mjs +25 -87
- package/src/Envio.gen.ts +3 -1
- package/src/Envio.res +20 -9
- package/src/EventProcessing.res +469 -0
- package/src/EventProcessing.res.mjs +337 -0
- package/src/EvmTypes.gen.ts +6 -0
- package/src/EvmTypes.res +1 -0
- package/src/FetchState.res +1256 -639
- package/src/FetchState.res.mjs +1135 -612
- package/src/GlobalState.res +1190 -0
- package/src/GlobalState.res.mjs +1183 -0
- package/src/GlobalStateManager.res +68 -0
- package/src/GlobalStateManager.res.mjs +75 -0
- package/src/GlobalStateManager.resi +7 -0
- package/src/HandlerLoader.res +89 -0
- package/src/HandlerLoader.res.mjs +79 -0
- package/src/HandlerRegister.res +357 -0
- package/src/HandlerRegister.res.mjs +299 -0
- package/src/{EventRegister.resi → HandlerRegister.resi} +13 -13
- package/src/Hasura.res +111 -175
- package/src/Hasura.res.mjs +88 -150
- package/src/InMemoryStore.res +1 -1
- package/src/InMemoryStore.res.mjs +3 -3
- package/src/InMemoryTable.res +1 -1
- package/src/InMemoryTable.res.mjs +1 -1
- package/src/Internal.gen.ts +4 -0
- package/src/Internal.res +230 -12
- package/src/Internal.res.mjs +115 -1
- package/src/LoadLayer.res +444 -0
- package/src/LoadLayer.res.mjs +296 -0
- package/src/LoadLayer.resi +32 -0
- package/src/LogSelection.res +33 -27
- package/src/LogSelection.res.mjs +6 -0
- package/src/Logging.res +21 -7
- package/src/Logging.res.mjs +16 -8
- package/src/Main.res +377 -0
- package/src/Main.res.mjs +339 -0
- package/src/Persistence.res +7 -21
- package/src/Persistence.res.mjs +3 -3
- package/src/PgStorage.gen.ts +10 -0
- package/src/PgStorage.res +116 -69
- package/src/PgStorage.res.d.mts +5 -0
- package/src/PgStorage.res.mjs +93 -50
- package/src/Prometheus.res +294 -224
- package/src/Prometheus.res.mjs +353 -340
- package/src/ReorgDetection.res +6 -10
- package/src/ReorgDetection.res.mjs +6 -6
- package/src/SafeCheckpointTracking.res +4 -4
- package/src/SafeCheckpointTracking.res.mjs +2 -2
- package/src/Sink.res +4 -2
- package/src/Sink.res.mjs +2 -1
- package/src/TableIndices.res +0 -1
- package/src/TestIndexer.res +692 -0
- package/src/TestIndexer.res.mjs +527 -0
- package/src/TestIndexerProxyStorage.res +205 -0
- package/src/TestIndexerProxyStorage.res.mjs +151 -0
- package/src/TopicFilter.res +1 -1
- package/src/Types.ts +1 -1
- package/src/UserContext.res +424 -0
- package/src/UserContext.res.mjs +279 -0
- package/src/Utils.res +97 -26
- package/src/Utils.res.mjs +91 -44
- package/src/bindings/BigInt.res +10 -0
- package/src/bindings/BigInt.res.mjs +15 -0
- package/src/bindings/ClickHouse.res +120 -23
- package/src/bindings/ClickHouse.res.mjs +118 -28
- package/src/bindings/DateFns.res +74 -0
- package/src/bindings/DateFns.res.mjs +22 -0
- package/src/bindings/EventSource.res +8 -1
- package/src/bindings/EventSource.res.mjs +8 -1
- package/src/bindings/Express.res +1 -0
- package/src/bindings/Hrtime.res +14 -1
- package/src/bindings/Hrtime.res.mjs +22 -2
- package/src/bindings/Hrtime.resi +4 -0
- package/src/bindings/Lodash.res +0 -1
- package/src/bindings/NodeJs.res +49 -3
- package/src/bindings/NodeJs.res.mjs +11 -3
- package/src/bindings/Pino.res +24 -10
- package/src/bindings/Pino.res.mjs +14 -8
- package/src/bindings/Postgres.gen.ts +8 -0
- package/src/bindings/Postgres.res +5 -1
- package/src/bindings/Postgres.res.d.mts +5 -0
- package/src/bindings/PromClient.res +0 -10
- package/src/bindings/PromClient.res.mjs +0 -3
- package/src/bindings/Vitest.res +142 -0
- package/src/bindings/Vitest.res.mjs +9 -0
- package/src/bindings/WebSocket.res +27 -0
- package/src/bindings/WebSocket.res.mjs +2 -0
- package/src/bindings/Yargs.res +8 -0
- package/src/bindings/Yargs.res.mjs +2 -0
- package/src/db/EntityHistory.res +7 -7
- package/src/db/EntityHistory.res.mjs +9 -9
- package/src/db/InternalTable.res +59 -111
- package/src/db/InternalTable.res.mjs +73 -104
- package/src/db/Table.res +27 -8
- package/src/db/Table.res.mjs +25 -14
- package/src/sources/Evm.res +84 -0
- package/src/sources/Evm.res.mjs +105 -0
- package/src/sources/EvmChain.res +94 -0
- package/src/sources/EvmChain.res.mjs +60 -0
- package/src/sources/Fuel.res +19 -34
- package/src/sources/Fuel.res.mjs +34 -16
- package/src/sources/FuelSDK.res +38 -0
- package/src/sources/FuelSDK.res.mjs +29 -0
- package/src/sources/HyperFuel.res +2 -2
- package/src/sources/HyperFuel.resi +1 -1
- package/src/sources/HyperFuelClient.res +2 -2
- package/src/sources/HyperFuelSource.res +33 -13
- package/src/sources/HyperFuelSource.res.mjs +24 -16
- package/src/sources/HyperSync.res +36 -6
- package/src/sources/HyperSync.res.mjs +9 -7
- package/src/sources/HyperSync.resi +4 -0
- package/src/sources/HyperSyncClient.res +1 -1
- package/src/sources/HyperSyncHeightStream.res +47 -116
- package/src/sources/HyperSyncHeightStream.res.mjs +46 -73
- package/src/sources/HyperSyncSource.res +118 -139
- package/src/sources/HyperSyncSource.res.mjs +104 -121
- package/src/sources/Rpc.res +86 -14
- package/src/sources/Rpc.res.mjs +101 -9
- package/src/sources/RpcSource.res +621 -364
- package/src/sources/RpcSource.res.mjs +843 -410
- package/src/sources/RpcWebSocketHeightStream.res +181 -0
- package/src/sources/RpcWebSocketHeightStream.res.mjs +196 -0
- package/src/sources/Source.res +7 -5
- package/src/sources/SourceManager.res +325 -225
- package/src/sources/SourceManager.res.mjs +314 -171
- package/src/sources/SourceManager.resi +17 -6
- package/src/sources/Svm.res +81 -0
- package/src/sources/Svm.res.mjs +90 -0
- package/src/tui/Tui.res +247 -0
- package/src/tui/Tui.res.mjs +337 -0
- package/src/tui/bindings/Ink.res +371 -0
- package/src/tui/bindings/Ink.res.mjs +72 -0
- package/src/tui/bindings/Style.res +123 -0
- package/src/tui/bindings/Style.res.mjs +2 -0
- package/src/tui/components/BufferedProgressBar.res +40 -0
- package/src/tui/components/BufferedProgressBar.res.mjs +57 -0
- package/src/tui/components/CustomHooks.res +122 -0
- package/src/tui/components/CustomHooks.res.mjs +179 -0
- package/src/tui/components/Messages.res +41 -0
- package/src/tui/components/Messages.res.mjs +75 -0
- package/src/tui/components/SyncETA.res +174 -0
- package/src/tui/components/SyncETA.res.mjs +263 -0
- package/src/tui/components/TuiData.res +47 -0
- package/src/tui/components/TuiData.res.mjs +34 -0
- package/svm.schema.json +112 -0
- package/bin.js +0 -48
- package/src/EventRegister.res +0 -241
- package/src/EventRegister.res.mjs +0 -240
- package/src/bindings/Ethers.gen.ts +0 -14
- package/src/bindings/Ethers.res +0 -204
- package/src/bindings/Ethers.res.mjs +0 -130
- /package/src/{Indexer.res.mjs → Ctx.res.mjs} +0 -0
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
+
|
|
3
|
+
import * as Js_exn from "rescript/lib/es6/js_exn.js";
|
|
4
|
+
import * as Logging from "./Logging.res.mjs";
|
|
5
|
+
import * as Caml_obj from "rescript/lib/es6/caml_obj.js";
|
|
6
|
+
import * as Belt_Option from "rescript/lib/es6/belt_Option.js";
|
|
7
|
+
import * as S$RescriptSchema from "rescript-schema/src/S.res.mjs";
|
|
8
|
+
|
|
9
|
+
var eventRegistrations = {};
|
|
10
|
+
|
|
11
|
+
function getKey(contractName, eventName) {
|
|
12
|
+
return contractName + "." + eventName;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function get(contractName, eventName) {
|
|
16
|
+
var existing = eventRegistrations[getKey(contractName, eventName)];
|
|
17
|
+
if (existing !== undefined) {
|
|
18
|
+
return existing;
|
|
19
|
+
} else {
|
|
20
|
+
return {
|
|
21
|
+
handler: undefined,
|
|
22
|
+
contractRegister: undefined,
|
|
23
|
+
eventOptions: undefined
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function set(contractName, eventName, registration) {
|
|
29
|
+
eventRegistrations[getKey(contractName, eventName)] = registration;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
var activeRegistration = {
|
|
33
|
+
contents: undefined
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var preRegistered = [];
|
|
37
|
+
|
|
38
|
+
function withRegistration(fn) {
|
|
39
|
+
var r = activeRegistration.contents;
|
|
40
|
+
if (r !== undefined) {
|
|
41
|
+
if (r.finished) {
|
|
42
|
+
return Js_exn.raiseError("The indexer finished initializing, so no more handlers can be registered. Make sure the handlers are registered on the top level of the file.");
|
|
43
|
+
} else {
|
|
44
|
+
return fn(r);
|
|
45
|
+
}
|
|
46
|
+
} else {
|
|
47
|
+
preRegistered.push(fn);
|
|
48
|
+
return ;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function startRegistration(ecosystem, multichain) {
|
|
53
|
+
var r = {
|
|
54
|
+
ecosystem: ecosystem,
|
|
55
|
+
multichain: multichain,
|
|
56
|
+
registrations: {
|
|
57
|
+
onBlockByChainId: {}
|
|
58
|
+
},
|
|
59
|
+
finished: false
|
|
60
|
+
};
|
|
61
|
+
activeRegistration.contents = r;
|
|
62
|
+
while(preRegistered.length > 0) {
|
|
63
|
+
var fn = preRegistered.pop();
|
|
64
|
+
if (fn !== undefined) {
|
|
65
|
+
fn(r);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function finishRegistration() {
|
|
72
|
+
var r = activeRegistration.contents;
|
|
73
|
+
if (r !== undefined) {
|
|
74
|
+
r.finished = true;
|
|
75
|
+
return r.registrations;
|
|
76
|
+
} else {
|
|
77
|
+
return Js_exn.raiseError("The indexer has not started registering handlers, so can't finish it.");
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function isPendingRegistration() {
|
|
82
|
+
var r = activeRegistration.contents;
|
|
83
|
+
if (r !== undefined) {
|
|
84
|
+
return !r.finished;
|
|
85
|
+
} else {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
var onBlockOptionsSchema = S$RescriptSchema.schema(function (s) {
|
|
91
|
+
return {
|
|
92
|
+
name: s.m(S$RescriptSchema.string),
|
|
93
|
+
chain: s.m(S$RescriptSchema.$$int),
|
|
94
|
+
interval: s.m(S$RescriptSchema.$$Option.getOr(S$RescriptSchema.option(S$RescriptSchema.intMin(S$RescriptSchema.$$int, 1, undefined)), 1)),
|
|
95
|
+
startBlock: s.m(S$RescriptSchema.option(S$RescriptSchema.$$int)),
|
|
96
|
+
endBlock: s.m(S$RescriptSchema.option(S$RescriptSchema.$$int))
|
|
97
|
+
};
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
function onBlock(rawOptions, handler) {
|
|
101
|
+
withRegistration(function (registration) {
|
|
102
|
+
var match = registration.multichain;
|
|
103
|
+
if (match === "ordered") {
|
|
104
|
+
Js_exn.raiseError("Block Handlers are not supported for ordered multichain mode. Please reach out to the Envio team if you need this feature. Or enable unordered multichain mode by removing `multichain: ordered` from the config.yaml file.");
|
|
105
|
+
}
|
|
106
|
+
var options = S$RescriptSchema.parseOrThrow(rawOptions, onBlockOptionsSchema);
|
|
107
|
+
var chainId = options.chain;
|
|
108
|
+
var onBlockByChainId = registration.registrations.onBlockByChainId;
|
|
109
|
+
var onBlockConfigs = onBlockByChainId[String(chainId)];
|
|
110
|
+
if (onBlockConfigs !== undefined) {
|
|
111
|
+
onBlockConfigs.push({
|
|
112
|
+
index: onBlockConfigs.length,
|
|
113
|
+
name: options.name,
|
|
114
|
+
chainId: chainId,
|
|
115
|
+
startBlock: options.startBlock,
|
|
116
|
+
endBlock: options.endBlock,
|
|
117
|
+
interval: options.interval,
|
|
118
|
+
handler: handler
|
|
119
|
+
});
|
|
120
|
+
} else {
|
|
121
|
+
onBlockByChainId[chainId] = [{
|
|
122
|
+
index: 0,
|
|
123
|
+
name: options.name,
|
|
124
|
+
chainId: chainId,
|
|
125
|
+
startBlock: options.startBlock,
|
|
126
|
+
endBlock: options.endBlock,
|
|
127
|
+
interval: options.interval,
|
|
128
|
+
handler: handler
|
|
129
|
+
}];
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function getHandler(contractName, eventName) {
|
|
135
|
+
return get(contractName, eventName).handler;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
function getContractRegister(contractName, eventName) {
|
|
139
|
+
return get(contractName, eventName).contractRegister;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
function getEventFilters(contractName, eventName) {
|
|
143
|
+
return Belt_Option.flatMap(get(contractName, eventName).eventOptions, (function (value) {
|
|
144
|
+
return value.eventFilters;
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function isWildcard(contractName, eventName) {
|
|
149
|
+
return Belt_Option.getWithDefault(Belt_Option.flatMap(get(contractName, eventName).eventOptions, (function (value) {
|
|
150
|
+
return value.wildcard;
|
|
151
|
+
})), false);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
function hasRegistration(contractName, eventName) {
|
|
155
|
+
var r = get(contractName, eventName);
|
|
156
|
+
if (Belt_Option.isSome(r.handler)) {
|
|
157
|
+
return true;
|
|
158
|
+
} else {
|
|
159
|
+
return Belt_Option.isSome(r.contractRegister);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
function raiseDuplicateRegistration(contractName, eventName, msg, logger) {
|
|
164
|
+
var fullMsg = msg + " for " + contractName + "." + eventName;
|
|
165
|
+
Logging.childError(Logging.createChildFrom(logger, {
|
|
166
|
+
contractName: contractName,
|
|
167
|
+
eventName: eventName
|
|
168
|
+
}), fullMsg);
|
|
169
|
+
return Js_exn.raiseError(fullMsg);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
function eventOptionsMatch(existing, incoming) {
|
|
173
|
+
if (existing !== undefined) {
|
|
174
|
+
if (incoming !== undefined && existing.wildcard === incoming.wildcard) {
|
|
175
|
+
var a = existing.eventFilters;
|
|
176
|
+
var b = incoming.eventFilters;
|
|
177
|
+
if (a !== undefined) {
|
|
178
|
+
if (a.TAG === "Static") {
|
|
179
|
+
if (b !== undefined && b.TAG === "Static") {
|
|
180
|
+
return Caml_obj.equal(a._0, b._0);
|
|
181
|
+
} else {
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
} else if (b !== undefined && b.TAG !== "Static") {
|
|
185
|
+
return a._0 === b._0;
|
|
186
|
+
} else {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
} else {
|
|
190
|
+
return b === undefined;
|
|
191
|
+
}
|
|
192
|
+
} else {
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
195
|
+
} else {
|
|
196
|
+
return incoming === undefined;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
function setEventOptions(contractName, eventName, eventOptions, loggerOpt) {
|
|
201
|
+
var logger = loggerOpt !== undefined ? loggerOpt : Logging.getLogger();
|
|
202
|
+
if (eventOptions === undefined) {
|
|
203
|
+
return ;
|
|
204
|
+
}
|
|
205
|
+
var t = get(contractName, eventName);
|
|
206
|
+
var existingValue = t.eventOptions;
|
|
207
|
+
if (existingValue !== undefined) {
|
|
208
|
+
if (!eventOptionsMatch(existingValue, eventOptions)) {
|
|
209
|
+
return raiseDuplicateRegistration(contractName, eventName, "Cannot register handler with different options. Make sure all handlers for the same event use identical options (wildcard, eventFilters)", logger);
|
|
210
|
+
} else {
|
|
211
|
+
return ;
|
|
212
|
+
}
|
|
213
|
+
} else {
|
|
214
|
+
return set(contractName, eventName, {
|
|
215
|
+
handler: t.handler,
|
|
216
|
+
contractRegister: t.contractRegister,
|
|
217
|
+
eventOptions: eventOptions
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
function setHandler(contractName, eventName, handler, eventOptions, loggerOpt) {
|
|
223
|
+
var logger = loggerOpt !== undefined ? loggerOpt : Logging.getLogger();
|
|
224
|
+
withRegistration(function (_registration) {
|
|
225
|
+
var t = get(contractName, eventName);
|
|
226
|
+
var prevHandler = t.handler;
|
|
227
|
+
if (prevHandler !== undefined) {
|
|
228
|
+
var incomingEventOptions = Belt_Option.map(eventOptions, (function (v) {
|
|
229
|
+
return v;
|
|
230
|
+
}));
|
|
231
|
+
if (!eventOptionsMatch(t.eventOptions, incomingEventOptions)) {
|
|
232
|
+
return raiseDuplicateRegistration(contractName, eventName, "Cannot register a second handler with different options. Make sure all handlers for the same event use identical options (wildcard, eventFilters)", logger);
|
|
233
|
+
}
|
|
234
|
+
var composedHandler = async function (args) {
|
|
235
|
+
await prevHandler(args);
|
|
236
|
+
return await handler(args);
|
|
237
|
+
};
|
|
238
|
+
return set(contractName, eventName, {
|
|
239
|
+
handler: composedHandler,
|
|
240
|
+
contractRegister: t.contractRegister,
|
|
241
|
+
eventOptions: t.eventOptions
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
setEventOptions(contractName, eventName, eventOptions, logger);
|
|
245
|
+
var t$1 = get(contractName, eventName);
|
|
246
|
+
set(contractName, eventName, {
|
|
247
|
+
handler: handler,
|
|
248
|
+
contractRegister: t$1.contractRegister,
|
|
249
|
+
eventOptions: t$1.eventOptions
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
function setContractRegister(contractName, eventName, contractRegister, eventOptions, loggerOpt) {
|
|
255
|
+
var logger = loggerOpt !== undefined ? loggerOpt : Logging.getLogger();
|
|
256
|
+
withRegistration(function (_registration) {
|
|
257
|
+
var t = get(contractName, eventName);
|
|
258
|
+
var prevContractRegister = t.contractRegister;
|
|
259
|
+
if (prevContractRegister !== undefined) {
|
|
260
|
+
var incomingEventOptions = Belt_Option.map(eventOptions, (function (v) {
|
|
261
|
+
return v;
|
|
262
|
+
}));
|
|
263
|
+
if (!eventOptionsMatch(t.eventOptions, incomingEventOptions)) {
|
|
264
|
+
return raiseDuplicateRegistration(contractName, eventName, "Cannot register a second contractRegister with different options. Make sure all handlers for the same event use identical options (wildcard, eventFilters)", logger);
|
|
265
|
+
}
|
|
266
|
+
var composedContractRegister = async function (args) {
|
|
267
|
+
await prevContractRegister(args);
|
|
268
|
+
return await contractRegister(args);
|
|
269
|
+
};
|
|
270
|
+
return set(contractName, eventName, {
|
|
271
|
+
handler: t.handler,
|
|
272
|
+
contractRegister: composedContractRegister,
|
|
273
|
+
eventOptions: t.eventOptions
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
setEventOptions(contractName, eventName, eventOptions, logger);
|
|
277
|
+
var t$1 = get(contractName, eventName);
|
|
278
|
+
set(contractName, eventName, {
|
|
279
|
+
handler: t$1.handler,
|
|
280
|
+
contractRegister: contractRegister,
|
|
281
|
+
eventOptions: t$1.eventOptions
|
|
282
|
+
});
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
export {
|
|
287
|
+
startRegistration ,
|
|
288
|
+
isPendingRegistration ,
|
|
289
|
+
finishRegistration ,
|
|
290
|
+
setHandler ,
|
|
291
|
+
setContractRegister ,
|
|
292
|
+
getHandler ,
|
|
293
|
+
getContractRegister ,
|
|
294
|
+
getEventFilters ,
|
|
295
|
+
isWildcard ,
|
|
296
|
+
hasRegistration ,
|
|
297
|
+
onBlock ,
|
|
298
|
+
}
|
|
299
|
+
/* onBlockOptionsSchema Not a pure module */
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
type registrations = {
|
|
2
|
-
onBlockByChainId: dict<array<Internal.onBlockConfig>>,
|
|
3
|
-
mutable hasEvents: bool,
|
|
4
|
-
}
|
|
1
|
+
type registrations = {onBlockByChainId: dict<array<Internal.onBlockConfig>>}
|
|
5
2
|
|
|
6
3
|
let startRegistration: (~ecosystem: Ecosystem.t, ~multichain: Config.multichain) => unit
|
|
7
4
|
let isPendingRegistration: unit => bool
|
|
8
5
|
let finishRegistration: unit => registrations
|
|
9
6
|
|
|
10
|
-
type t
|
|
11
|
-
let make: (~contractName: string, ~eventName: string) => t
|
|
12
7
|
let setHandler: (
|
|
13
|
-
|
|
8
|
+
~contractName: string,
|
|
9
|
+
~eventName: string,
|
|
14
10
|
Internal.genericHandler<Internal.genericHandlerArgs<'event, Internal.handlerContext>>,
|
|
15
11
|
~eventOptions: option<Internal.eventOptions<'eventFilters>>,
|
|
16
12
|
~logger: Pino.t=?,
|
|
17
13
|
) => unit
|
|
18
14
|
let setContractRegister: (
|
|
19
|
-
|
|
15
|
+
~contractName: string,
|
|
16
|
+
~eventName: string,
|
|
20
17
|
Internal.genericContractRegister<Internal.genericContractRegisterArgs<'event, 'context>>,
|
|
21
18
|
~eventOptions: option<Internal.eventOptions<'eventFilters>>,
|
|
22
19
|
~logger: Pino.t=?,
|
|
23
20
|
) => unit
|
|
24
|
-
let getHandler:
|
|
25
|
-
let getContractRegister:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
let getHandler: (~contractName: string, ~eventName: string) => option<Internal.handler>
|
|
22
|
+
let getContractRegister: (
|
|
23
|
+
~contractName: string,
|
|
24
|
+
~eventName: string,
|
|
25
|
+
) => option<Internal.contractRegister>
|
|
26
|
+
let getEventFilters: (~contractName: string, ~eventName: string) => option<Js.Json.t>
|
|
27
|
+
let isWildcard: (~contractName: string, ~eventName: string) => bool
|
|
28
|
+
let hasRegistration: (~contractName: string, ~eventName: string) => bool
|
|
29
29
|
|
|
30
30
|
let onBlock: (unknown, Internal.onBlockArgs => promise<unit>) => unit
|