dequanto 0.1.50 → 0.1.55
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/lib/cjs/contracts/ContractReader.js +7 -1
- package/lib/cjs/contracts/ContractReader.js.map +1 -1
- package/lib/cjs/indexer/EventsIndexer.js +55 -22
- package/lib/cjs/indexer/EventsIndexer.js.map +1 -1
- package/lib/cjs/indexer/storage/FsEventsMetaStore.js +4 -1
- package/lib/cjs/indexer/storage/FsEventsMetaStore.js.map +1 -1
- package/lib/cjs/utils/$number.js +12 -3
- package/lib/cjs/utils/$number.js.map +1 -1
- package/lib/cjs/utils/$ref.js +7 -0
- package/lib/cjs/utils/$ref.js.map +1 -1
- package/lib/cjs/wallets/EIP6963ProviderFactory.js +1 -1
- package/lib/cjs/wallets/EIP6963ProviderFactory.js.map +1 -1
- package/lib/esm/contracts/ContractReader.js.map +1 -1
- package/lib/esm/contracts/ContractReader.mjs +7 -1
- package/lib/esm/indexer/EventsIndexer.js.map +1 -1
- package/lib/esm/indexer/EventsIndexer.mjs +55 -22
- package/lib/esm/indexer/storage/FsEventsMetaStore.js.map +1 -1
- package/lib/esm/indexer/storage/FsEventsMetaStore.mjs +4 -1
- package/lib/esm/utils/$number.js.map +1 -1
- package/lib/esm/utils/$number.mjs +12 -3
- package/lib/esm/utils/$ref.js.map +1 -1
- package/lib/esm/utils/$ref.mjs +7 -0
- package/lib/esm/wallets/EIP6963ProviderFactory.js.map +1 -1
- package/lib/esm/wallets/EIP6963ProviderFactory.mjs +1 -1
- package/lib/types/indexer/EventsIndexer.d.ts +14 -7
- package/lib/types/indexer/storage/FsEventsMetaStore.d.ts +1 -0
- package/lib/types/indexer/storage/interfaces.d.ts +8 -5
- package/lib/types/utils/$number.d.ts +2 -0
- package/lib/types/utils/$ref.d.ts +1 -0
- package/package.json +1 -1
- package/src/contracts/ContractReader.ts +12 -1
- package/src/indexer/EventsIndexer.ts +73 -32
- package/src/indexer/storage/FsEventsMetaStore.ts +4 -1
- package/src/indexer/storage/interfaces.ts +8 -4
- package/src/utils/$number.ts +14 -4
- package/src/utils/$ref.ts +9 -0
- package/src/wallets/EIP6963ProviderFactory.ts +1 -1
|
@@ -47,16 +47,16 @@ export class EventsIndexer {
|
|
|
47
47
|
await this.store.ensureMigrated();
|
|
48
48
|
await this.storeMeta.ensureMigrated();
|
|
49
49
|
}
|
|
50
|
-
async getPastLogs(event,
|
|
51
|
-
// Fetch all logs and filter later if needed
|
|
52
|
-
//- params?: T[TMethodName] extends (options: { params?: infer TParams }) => any ? TParams : never,
|
|
53
|
-
filter) {
|
|
50
|
+
async getPastLogs(event, filter) {
|
|
54
51
|
let contract = this.contract;
|
|
55
52
|
let client = contract.client;
|
|
56
53
|
let toBlock = filter?.toBlock ?? await client.getBlockNumber();
|
|
57
54
|
let events = Array.isArray(event) ? event : [event];
|
|
58
|
-
let
|
|
59
|
-
let
|
|
55
|
+
let filterKey = this.getFilterKey(filter?.params);
|
|
56
|
+
let ranges = await this.getRanges(events, this.options.initialBlockNumber, toBlock, { filterKey });
|
|
57
|
+
let logs = await this.getPastLogsRanges(ranges, events, toBlock, filter?.fromBlock, {
|
|
58
|
+
params: filter?.params
|
|
59
|
+
});
|
|
60
60
|
return {
|
|
61
61
|
logs: logs
|
|
62
62
|
};
|
|
@@ -69,10 +69,14 @@ export class EventsIndexer {
|
|
|
69
69
|
let client = contract.client;
|
|
70
70
|
let toBlock = options?.toBlock ?? await client.getBlockNumber();
|
|
71
71
|
let events = Array.isArray(event) ? event : [event];
|
|
72
|
-
let
|
|
72
|
+
let filterKey = this.getFilterKey(options?.params);
|
|
73
|
+
let ranges = await this.getRanges(events, options?.fromBlock ?? this.options.initialBlockNumber, toBlock, {
|
|
74
|
+
filterKey
|
|
75
|
+
});
|
|
73
76
|
let dfrInner = new class_Dfr();
|
|
74
77
|
let dfrOuter = new class_Dfr();
|
|
75
78
|
this.getPastLogsRanges(ranges, events, toBlock, options?.fromBlock, {
|
|
79
|
+
params: options?.params,
|
|
76
80
|
blockRangeLimits: options?.blockRangeLimits,
|
|
77
81
|
streamed: true,
|
|
78
82
|
async onProgress(info) {
|
|
@@ -101,16 +105,23 @@ export class EventsIndexer {
|
|
|
101
105
|
let events = await this.store.fetch({ fromBlock: params.fromBlock });
|
|
102
106
|
l `Removing ${events.length} from Block #${params.fromBlock}...`;
|
|
103
107
|
await this.store.removeMany(events);
|
|
108
|
+
let metas = await this.storeMeta.fetch();
|
|
104
109
|
let lastBlock = params.fromBlock - 1;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
+
if (lastBlock < 0) {
|
|
111
|
+
await this.storeMeta.removeMany(metas);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
metas.forEach(x => {
|
|
115
|
+
x.lastBlock = Math.min(x.lastBlock, lastBlock);
|
|
116
|
+
});
|
|
117
|
+
await this.storeMeta.upsertMany(metas);
|
|
118
|
+
}
|
|
110
119
|
}
|
|
111
|
-
async getRanges(events, initialBlockNumber, toBlock,
|
|
120
|
+
async getRanges(events, initialBlockNumber, toBlock, opts) {
|
|
112
121
|
let logsMetaArr = await this.storeMeta.fetch();
|
|
113
|
-
let eventsBlock = alot(logsMetaArr)
|
|
122
|
+
let eventsBlock = alot(logsMetaArr)
|
|
123
|
+
.filter(x => x.filterKey == opts?.filterKey)
|
|
124
|
+
.toDictionary(x => x.event, x => x.lastBlock);
|
|
114
125
|
let logsMeta = events.map(event => {
|
|
115
126
|
let blockNr = eventsBlock[event] ?? initialBlockNumber;
|
|
116
127
|
return {
|
|
@@ -120,7 +131,7 @@ export class EventsIndexer {
|
|
|
120
131
|
});
|
|
121
132
|
let hasInitialBlock = logsMeta.every(x => x.lastBlock != null);
|
|
122
133
|
if (hasInitialBlock === false) {
|
|
123
|
-
let blockNr = fromBlock ?? await this.getInitialBlockNumber();
|
|
134
|
+
let blockNr = opts?.fromBlock ?? await this.getInitialBlockNumber();
|
|
124
135
|
logsMeta.filter(x => x.lastBlock == null).forEach(x => x.lastBlock = blockNr);
|
|
125
136
|
}
|
|
126
137
|
;
|
|
@@ -155,7 +166,8 @@ export class EventsIndexer {
|
|
|
155
166
|
let arr = await this.getItemsFromStore({
|
|
156
167
|
fromBlock: fromBlock,
|
|
157
168
|
toBlock: toBlock,
|
|
158
|
-
events
|
|
169
|
+
events,
|
|
170
|
+
params: options?.params,
|
|
159
171
|
});
|
|
160
172
|
if (arr?.length > 0) {
|
|
161
173
|
let latestBlock = arr[arr.length - 1].blockNumber;
|
|
@@ -193,6 +205,7 @@ export class EventsIndexer {
|
|
|
193
205
|
fromBlock: fromBlock,
|
|
194
206
|
toBlock: toBlock,
|
|
195
207
|
blockRangeLimits: options?.blockRangeLimits,
|
|
208
|
+
params: options?.params,
|
|
196
209
|
onProgress: async (info) => {
|
|
197
210
|
onProgressCount++;
|
|
198
211
|
buffer.push(...info.logs);
|
|
@@ -221,7 +234,7 @@ export class EventsIndexer {
|
|
|
221
234
|
buffer = [];
|
|
222
235
|
time = now;
|
|
223
236
|
savedCount += arr.length;
|
|
224
|
-
await this.upsert(arr, events, info.latestBlock);
|
|
237
|
+
await this.upsert(arr, events, info.latestBlock, options);
|
|
225
238
|
}
|
|
226
239
|
if (options?.onProgress) {
|
|
227
240
|
// completed must be set to true only when the last Range completes
|
|
@@ -231,18 +244,19 @@ export class EventsIndexer {
|
|
|
231
244
|
}
|
|
232
245
|
});
|
|
233
246
|
if (buffer.length > 0) {
|
|
234
|
-
await this.upsert(buffer, events, toBlock);
|
|
247
|
+
await this.upsert(buffer, events, toBlock, options);
|
|
235
248
|
}
|
|
236
249
|
}
|
|
237
250
|
// Upsert final, if buffer is empty, we still persist the toBlock
|
|
238
|
-
await this.upsert(buffer, events, toBlock);
|
|
251
|
+
await this.upsert(buffer, events, toBlock, options);
|
|
239
252
|
if (isStreamed === true) {
|
|
240
253
|
return;
|
|
241
254
|
}
|
|
242
255
|
let logs = await this.getItemsFromStore({
|
|
243
256
|
fromBlock: fromBlock,
|
|
244
257
|
toBlock: toBlock + 1,
|
|
245
|
-
events: events
|
|
258
|
+
events: events,
|
|
259
|
+
params: options?.params
|
|
246
260
|
});
|
|
247
261
|
return logs;
|
|
248
262
|
}
|
|
@@ -253,8 +267,19 @@ export class EventsIndexer {
|
|
|
253
267
|
let requestedEvents = alot(events).toDictionary(x => x);
|
|
254
268
|
arr = arr.filter(x => x.event in requestedEvents);
|
|
255
269
|
}
|
|
270
|
+
let filterKey = this.getFilterKey(filter.params);
|
|
271
|
+
arr = arr.filter(x => x.filterKey == filterKey);
|
|
256
272
|
return arr;
|
|
257
273
|
}
|
|
274
|
+
getFilterKey(params) {
|
|
275
|
+
if (params == null) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
let arr = Array.isArray(params)
|
|
279
|
+
? params
|
|
280
|
+
: Object.keys(params).map(key => `${key}=${params[key]}`);
|
|
281
|
+
return arr.join('_');
|
|
282
|
+
}
|
|
258
283
|
async getInitialBlockNumber() {
|
|
259
284
|
let client = this.contract.client;
|
|
260
285
|
if (client.platform !== 'hardhat') {
|
|
@@ -265,11 +290,19 @@ export class EventsIndexer {
|
|
|
265
290
|
}
|
|
266
291
|
return 0;
|
|
267
292
|
}
|
|
268
|
-
async upsert(logs, events, latestBlock) {
|
|
293
|
+
async upsert(logs, events, latestBlock, options) {
|
|
294
|
+
let filterKey = this.getFilterKey(options?.params);
|
|
269
295
|
if (logs?.length > 0) {
|
|
296
|
+
for (let log of logs) {
|
|
297
|
+
log.filterKey = filterKey;
|
|
298
|
+
}
|
|
270
299
|
await this.store.upsertMany(logs);
|
|
271
300
|
}
|
|
272
|
-
const logsMeta = events.map(event => ({
|
|
301
|
+
const logsMeta = events.map(event => ({
|
|
302
|
+
event,
|
|
303
|
+
lastBlock: latestBlock,
|
|
304
|
+
filterKey: filterKey,
|
|
305
|
+
}));
|
|
273
306
|
await this.storeMeta.upsertMany(logsMeta);
|
|
274
307
|
}
|
|
275
308
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FsEventsMetaStore.js","sourceRoot":"","sources":["../../../../src/indexer/storage/FsEventsMetaStore.ts"],"names":[],"mappings":";;;AAEA,kEAA8D;AAE9D,6DAAyD;AACzD,qCAA8B;AAG9B,MAAa,iBAAiB;IAO1B,YAAoB,QAAW,EAAU,OASxC;QATmB,aAAQ,GAAR,QAAQ,CAAG;QAAU,YAAO,GAAP,OAAO,CAS/C;QAEG,IAAI,SAAS,GAAG,uCAAkB,CAAC,YAAY,CAAC,QAAQ,EAAE;YACtD,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS;SACnC,CAAC,CAAC;QAGH,IAAI,CAAC,KAAK,GAAG,IAAI,+BAAc,CAAqB;YAChD,IAAI,EAAE,GAAG,SAAS,eAAe;YACjC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;
|
|
1
|
+
{"version":3,"file":"FsEventsMetaStore.js","sourceRoot":"","sources":["../../../../src/indexer/storage/FsEventsMetaStore.ts"],"names":[],"mappings":";;;AAEA,kEAA8D;AAE9D,6DAAyD;AACzD,qCAA8B;AAG9B,MAAa,iBAAiB;IAO1B,YAAoB,QAAW,EAAU,OASxC;QATmB,aAAQ,GAAR,QAAQ,CAAG;QAAU,YAAO,GAAP,OAAO,CAS/C;QAEG,IAAI,SAAS,GAAG,uCAAkB,CAAC,YAAY,CAAC,QAAQ,EAAE;YACtD,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS;SACnC,CAAC,CAAC;QAGH,IAAI,CAAC,KAAK,GAAG,IAAI,+BAAc,CAAqB;YAChD,IAAI,EAAE,GAAG,SAAS,eAAe;YACjC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,+BAAc,CAAqB;YAClD,IAAI,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB;YACrD,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;SACpB,CAAC,CAAC;IACP,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,cAAc;QAChB,IAAI,MAAM,cAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnD,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,cAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACrD;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAA0B;QACvC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,KAAK;QACP,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU,CAAE,IAA0B;QACxC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;CAEJ;AAzDD,8CAyDC"}
|
|
@@ -12,7 +12,7 @@ export class FsEventsMetaStore {
|
|
|
12
12
|
});
|
|
13
13
|
this.store = new JsonArrayStore({
|
|
14
14
|
path: `${directory}meta-arr.json`,
|
|
15
|
-
key: x => x.event
|
|
15
|
+
key: x => (x.event + (x.filterKey || ''))
|
|
16
16
|
});
|
|
17
17
|
this.storeV0 = new JsonArrayStore({
|
|
18
18
|
path: `${directory.replace(/\/$/, '')}-meta-arr.json`,
|
|
@@ -33,6 +33,9 @@ export class FsEventsMetaStore {
|
|
|
33
33
|
async fetch() {
|
|
34
34
|
return await this.store.getAll();
|
|
35
35
|
}
|
|
36
|
+
async removeMany(meta) {
|
|
37
|
+
await this.store.removeMany(meta.map(x => x.event));
|
|
38
|
+
}
|
|
36
39
|
}
|
|
37
40
|
//# sourceMappingURL=FsEventsMetaStore.js.map
|
|
38
41
|
//# sourceMappingURL=FsEventsMetaStore.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$number.js","sourceRoot":"","sources":["../../../src/utils/$number.ts"],"names":[],"mappings":";;;AACA,yCAAsC;
|
|
1
|
+
{"version":3,"file":"$number.js","sourceRoot":"","sources":["../../../src/utils/$number.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { $require } from './$require.mjs';
|
|
2
|
+
import { $bigint } from './$bigint.mjs';
|
|
2
3
|
export var $number;
|
|
3
4
|
(function ($number) {
|
|
4
5
|
function div(a, b, digits = 5) {
|
|
@@ -114,13 +115,14 @@ export var $number;
|
|
|
114
115
|
const K = 10 ** 3;
|
|
115
116
|
const M = 10 ** 6;
|
|
116
117
|
const B = 10 ** 9;
|
|
117
|
-
|
|
118
|
+
const numAbs = Math.abs(num);
|
|
119
|
+
if (numAbs >= B) {
|
|
118
120
|
return format(num / B, { maximumFractionDigits: options.maximumFractionDigits ?? 2 }) + 'B';
|
|
119
121
|
}
|
|
120
|
-
if (
|
|
122
|
+
if (numAbs >= M) {
|
|
121
123
|
return format(num / M, { maximumFractionDigits: options.maximumFractionDigits ?? 2 }) + 'M';
|
|
122
124
|
}
|
|
123
|
-
if (
|
|
125
|
+
if (numAbs >= K) {
|
|
124
126
|
return format(num / K, { maximumFractionDigits: options.maximumFractionDigits ?? 2 }) + 'K';
|
|
125
127
|
}
|
|
126
128
|
return format(num, { maximumFractionDigits: options.maximumFractionDigits ?? 2 });
|
|
@@ -130,6 +132,13 @@ export var $number;
|
|
|
130
132
|
});
|
|
131
133
|
}
|
|
132
134
|
$number.format = format;
|
|
135
|
+
function humanize(mix, decimals = 18) {
|
|
136
|
+
if (typeof mix === 'bigint') {
|
|
137
|
+
mix = $bigint.toEther(mix, decimals);
|
|
138
|
+
}
|
|
139
|
+
return format(mix, { abbreviation: true });
|
|
140
|
+
}
|
|
141
|
+
$number.humanize = humanize;
|
|
133
142
|
function toHex(num) {
|
|
134
143
|
return (`0x` + Number(num).toString(16));
|
|
135
144
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"$ref.js","sourceRoot":"","sources":["../../../src/utils/$ref.ts"],"names":[],"mappings":";;;AAEA,2CAAgD;
|
|
1
|
+
{"version":3,"file":"$ref.js","sourceRoot":"","sources":["../../../src/utils/$ref.ts"],"names":[],"mappings":";;;AAEA,2CAAgD;AAgBhD,IAAiB,IAAI,CA8BpB;AA9BD,WAAiB,IAAI;IACjB,SAAgB,SAAS;QACrB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC7D,MAAM,CAAC,GAAG,MAAwB,CAAC;YACnC,OAAO,CAAC,CAAC;SACZ;QACD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,KAAM,QAAQ,EAAE;YAC9D,MAAM,CAAC,GAAG,MAAwB,CAAC;YAEnC,IAAI,OAAO,CAAC,CAAC,gBAAgB,KAAK,UAAU,IAAI,OAAO,CAAC,CAAC,aAAa,KAAK,UAAU,EAAE;gBACnF,MAAM,OAAO,GAAG,IAAI,+BAAkB,CAAC;gBACvC,CAAC,CAAC,gBAAgB,GAAG,UAAU,KAAa,EAAE,EAAkB;oBAC5D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC1B,CAAC,CAAC;gBACF,CAAC,CAAC,aAAa,GAAG,UAAU,KAAkB;oBAC1C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACpC,CAAC,CAAC;aACL;YACD,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,WAAW,EAAE;gBACtC,CAAC,CAAC,WAAW,GAAS,MAAM,WAAW;oBACnC,YAAoB,IAAI;wBAAJ,SAAI,GAAJ,IAAI,CAAA;oBAExB,CAAC;iBACJ,CAAC;aACL;YAED,OAAO,CAAC,CAAC;SACZ;QACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC9C,CAAC;IA5Be,cAAS,YA4BxB,CAAA;AACL,CAAC,EA9BgB,IAAI,GAAJ,YAAI,KAAJ,YAAI,QA8BpB"}
|
package/lib/esm/utils/$ref.mjs
CHANGED
|
@@ -17,6 +17,13 @@ export var $ref;
|
|
|
17
17
|
emitter.emit(event.type, event);
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
+
if (typeof g.CustomEvent === 'undefined') {
|
|
21
|
+
g.CustomEvent = class CustomEvent {
|
|
22
|
+
constructor(data) {
|
|
23
|
+
this.data = data;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
20
27
|
return g;
|
|
21
28
|
}
|
|
22
29
|
throw new Error('No global object found');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EIP6963ProviderFactory.js","sourceRoot":"","sources":["../../../src/wallets/EIP6963ProviderFactory.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"EIP6963ProviderFactory.js","sourceRoot":"","sources":["../../../src/wallets/EIP6963ProviderFactory.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAGxB,uDAAoD;AACpD,+CAAqD;AACrD,uDAAoD;AACpD,2CAAgD;AAwChD,MAAa,sBAAuB,SAAQ,+BAAmC;IAc3E;QACI,KAAK,EAAE,CAAC;QAbJ,cAAS,GAAG,EAKlB,CAAA;QAEF,cAAS,GAA4B,EAAE,CAAA;QAGvC,WAAM,GAAY,WAAI,CAAC,SAAS,EAAE,CAAA;QAK9B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,WAAW,CAAE,OAAsB;QAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC9B,OAAO,OAAO,IAAI,IAAI;gBAClB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,mBAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAE;gBAC7D,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACf,CAAC;IAED,KAAK,CAAC,OAAO,CAAE,EAAW;QACtB,IAAI,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAC3C,mBAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,UAAU;QACN,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,WAAW,CAAE,EAAU;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,eAAe,CAAE,EAAW;QAC9B,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,QAAQ,GAAmB,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACvG,IAAI,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;YACtB,IAAI,GAAG,GAAG;gBACN,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;gBAC5B,GAAG,CAAC,QAAQ,CAAC;aAChB;iBACA,MAAM,CAAC,OAAO,CAAC;iBACf,GAAG,CAAC,MAAM,CAAmB,CAAC;YAE/B,QAAQ,CAAC,QAAQ,GAAG,IAAA,cAAI,EAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;SACjE;QACD,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAEO,eAAe;QACnB,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,KAAK,UAAU,EAAE;YACrD,IAAI,CAAC,kBAAkB,CAAC;gBACpB,MAAM,EAAE;oBACJ,IAAI,EAAE;wBACF,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,gBAAgB;qBACzB;oBACD,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;iBACjC;aACJ,CAAC,CAAC;SACN;QACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAEtF,CAAC;IACO,mBAAmB;QACvB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,0BAA0B,EAAG,IAAI,CAAC,kBAAyB,CAAC,CAAC;IAC9F,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAE,KAAmC;QACjE,IAAI,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC;QAC7E,IAAI,gBAAgB,EAAE;YAClB,oCAAoC;YACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC;YACzE,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;SAC/C;QAED,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QACvB,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAChC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;YACnE,OAAO;SACV;QAED,IAAI,eAAe,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACrC,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAExC,IAAI;YACA,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAA;YACnE,IAAI,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;gBACtB,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;aAC/D;SACJ;QAAC,OAAO,KAAK,EAAE;YACZ,kHAAkH;SACrH;QACD,IAAI;YACA,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;YACjE,eAAe,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;SAClD;QAAC,OAAO,KAAK,EAAE;YACZ,4BAA4B;SAC/B;QAED,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;IACvD,CAAC;IAED,kBAAkB,CAAE,EAAW;QAC3B,IAAI,EAAE,IAAI,IAAI,EAAE;YACZ,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC5B;QACD,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACnE,OAAO,QAAQ,CAAC;IACpB,CAAC;IACD,WAAW,CAAE,EAAW,EAAE,QAAkB;QACxC,IAAI,EAAE,IAAI,IAAI,EAAE;YACZ,QAAQ,KAAK,IAAI,IAAI,mBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;YAChF,OAAO,IAAI,CAAC,QAAQ,CAAC;SACxB;QACD,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACnE,QAAQ,KAAK,IAAI,IAAI,mBAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,6BAA6B,EAAE,EAAE,CAAC,CAAC;QACnF,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,KAAK,CAAE,IAAgC;QAC3C,OAAO,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,CAAC;IACpC,CAAC;IAEO,iBAAiB,CAAE,eAAsC;QAC7D,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE;YACtB,OAAO;SACV;QACD,MAAM,GAAG,GAAG;YACR,eAAe,EAAE,QAAQ,CAAC,EAAE;gBACxB,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,eAAe,EAAE,QAA0B,CAAC,CAAC;YAChF,CAAC;YACD,YAAY,EAAE,OAAO,CAAC,EAAE;gBACpB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAClE,CAAC;YACD,UAAU,EAAE,GAAG,EAAE;gBACb,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,eAAe,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACd,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACpE,CAAC;SACJ,CAAA;QACD,IAAI,UAAqC,CAAC;QAC1C,IAAI,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC;QAExC,IAAI,OAAO,QAAQ,CAAC,EAAE,KAAK,UAAU,EAAE;YACnC,UAAU,GAAG,IAAI,CAAC;SACrB;aAAM,IAAI,OAAQ,QAAgB,CAAC,gBAAgB,KAAK,UAAU,EAAE;YACjE,UAAU,GAAG,kBAAkB,CAAC;SACnC;QACD,IAAI,UAAU,IAAI,IAAI,EAAE;YACpB,OAAO;SACV;QACD,KAAK,IAAI,KAAK,IAAI,GAAG,EAAE;YACnB,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAC7B,CAAC;IAEO,oBAAoB,CAAE,eAAsC;QAChE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;YAChC,OAAO;SACV;QAED,IAAI,YAAsD,CAAC;QAC3D,IAAI,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC;QACxC,IAAI,OAAO,QAAQ,CAAC,cAAc,KAAK,UAAU,EAAE;YAC/C,YAAY,GAAG,gBAAgB,CAAC;SACnC;aAAM,IAAI,OAAQ,QAAgB,CAAC,mBAAmB,KAAK,UAAU,EAAE;YACpE,YAAY,GAAG,qBAAqB,CAAC;SACxC;QAED,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC7B,KAAK,IAAI,KAAK,IAAI,GAAG,EAAE;YACnB,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAY,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;SACpD;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;CACJ;AA7MD,wDA6MC"}
|
|
@@ -67,7 +67,7 @@ export class EIP6963ProviderFactory extends class_EventEmitter {
|
|
|
67
67
|
}
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
|
-
this.global.dispatchEvent(new CustomEvent('eip6963:requestProvider'));
|
|
70
|
+
this.global.dispatchEvent(new this.global.CustomEvent('eip6963:requestProvider'));
|
|
71
71
|
}
|
|
72
72
|
listenToNewProvider() {
|
|
73
73
|
this.global.addEventListener('eip6963:announceProvider', this.onAnnounceProvider);
|
|
@@ -4,8 +4,8 @@ import { TAddress } from '../models/TAddress';
|
|
|
4
4
|
import { IEventsIndexerMetaStore, IEventsIndexerStore } from './storage/interfaces';
|
|
5
5
|
import { TLogsRangeProgress } from '../clients/Web3Client';
|
|
6
6
|
import { WClient } from '../clients/ClientPool';
|
|
7
|
-
export declare class EventsIndexer<
|
|
8
|
-
contract:
|
|
7
|
+
export declare class EventsIndexer<TContract extends ContractBase> {
|
|
8
|
+
contract: TContract;
|
|
9
9
|
options: {
|
|
10
10
|
addresses?: TAddress[];
|
|
11
11
|
name?: string;
|
|
@@ -22,7 +22,7 @@ export declare class EventsIndexer<T extends ContractBase> {
|
|
|
22
22
|
};
|
|
23
23
|
store: IEventsIndexerStore;
|
|
24
24
|
storeMeta: IEventsIndexerMetaStore;
|
|
25
|
-
constructor(contract:
|
|
25
|
+
constructor(contract: TContract, options: {
|
|
26
26
|
addresses?: TAddress[];
|
|
27
27
|
name?: string;
|
|
28
28
|
initialBlockNumber?: number;
|
|
@@ -39,23 +39,30 @@ export declare class EventsIndexer<T extends ContractBase> {
|
|
|
39
39
|
mergeStorages(store: IEventsIndexerStore): Promise<void>;
|
|
40
40
|
/** @deprecated For migration only */
|
|
41
41
|
fsEnsureMigrated(): Promise<void>;
|
|
42
|
-
getPastLogs<TLogName extends GetEventLogNames<
|
|
42
|
+
getPastLogs<TLogName extends GetEventLogNames<TContract>>(event: TLogName | TLogName[] | '*', filter?: {
|
|
43
43
|
fromBlock?: number;
|
|
44
44
|
toBlock?: number;
|
|
45
|
+
params?: TLogName extends keyof TContract ? (TContract[TLogName] extends (options: {
|
|
46
|
+
params?: infer TParams;
|
|
47
|
+
}) => any ? TParams : never) : never;
|
|
45
48
|
}): Promise<{
|
|
46
|
-
logs: ITxLogItem<GetTypes<
|
|
49
|
+
logs: ITxLogItem<GetTypes<TContract>['Events'][TLogName]['outputParams']>[];
|
|
47
50
|
}>;
|
|
48
|
-
getPastLogsStream<TLogName extends GetEventLogNames<
|
|
51
|
+
getPastLogsStream<TLogName extends GetEventLogNames<TContract>>(event: TLogName | TLogName[] | '*', options?: {
|
|
49
52
|
fromBlock?: number;
|
|
50
53
|
toBlock?: number;
|
|
51
54
|
blockRangeLimits?: WClient['blockRangeLimits'];
|
|
52
|
-
|
|
55
|
+
params?: TLogName extends keyof TContract ? (TContract[TLogName] extends (options: {
|
|
56
|
+
params?: infer TParams;
|
|
57
|
+
}) => any ? TParams : never) : never;
|
|
58
|
+
}): AsyncGenerator<TLogsRangeProgress<ITxLogItem<GetTypes<TContract>['Events'][TLogName]['outputParams'], string>>, void, void>;
|
|
53
59
|
removeCached(params: {
|
|
54
60
|
fromBlock: number;
|
|
55
61
|
}): Promise<void>;
|
|
56
62
|
private getRanges;
|
|
57
63
|
private getPastLogsRanges;
|
|
58
64
|
private getItemsFromStore;
|
|
65
|
+
private getFilterKey;
|
|
59
66
|
private getInitialBlockNumber;
|
|
60
67
|
private upsert;
|
|
61
68
|
}
|
|
@@ -19,4 +19,5 @@ export declare class FsEventsMetaStore<T extends ContractBase> implements IEvent
|
|
|
19
19
|
ensureMigrated(): Promise<void>;
|
|
20
20
|
upsertMany(meta: TEventsIndexerMeta[]): Promise<TEventsIndexerMeta[]>;
|
|
21
21
|
fetch(): Promise<TEventsIndexerMeta[]>;
|
|
22
|
+
removeMany(meta: TEventsIndexerMeta[]): Promise<void>;
|
|
22
23
|
}
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import { ITxLogItem } from '../../txs/receipt/ITxLogItem';
|
|
2
|
-
type
|
|
2
|
+
export type TEventsIndexerItem = ITxLogItem<any> & {
|
|
3
|
+
filterKey?: string;
|
|
4
|
+
};
|
|
3
5
|
export type TEventsIndexerMeta = {
|
|
4
6
|
event: string;
|
|
5
7
|
lastBlock: number;
|
|
8
|
+
filterKey?: string;
|
|
6
9
|
};
|
|
7
10
|
export interface IEventsIndexerStore {
|
|
8
|
-
upsertMany(logs:
|
|
9
|
-
removeMany(logs:
|
|
11
|
+
upsertMany(logs: TEventsIndexerItem[]): Promise<TEventsIndexerItem[]>;
|
|
12
|
+
removeMany(logs: TEventsIndexerItem[]): Promise<any>;
|
|
10
13
|
fetch(options?: {
|
|
11
14
|
fromBlock?: number;
|
|
12
15
|
toBlock?: number;
|
|
13
|
-
}): Promise<
|
|
16
|
+
}): Promise<TEventsIndexerItem[]>;
|
|
14
17
|
merge(store: IEventsIndexerStore): Promise<any>;
|
|
15
18
|
}
|
|
16
19
|
export interface IEventsIndexerMetaStore {
|
|
17
20
|
upsertMany(meta: TEventsIndexerMeta[]): Promise<TEventsIndexerMeta[]>;
|
|
18
21
|
fetch(): Promise<TEventsIndexerMeta[]>;
|
|
22
|
+
removeMany(meta: TEventsIndexerMeta[]): Promise<any>;
|
|
19
23
|
}
|
|
20
|
-
export {};
|
|
@@ -30,5 +30,7 @@ export declare namespace $number {
|
|
|
30
30
|
abbreviation?: boolean;
|
|
31
31
|
maximumFractionDigits?: number;
|
|
32
32
|
}): any;
|
|
33
|
+
function humanize(num: bigint, decimals: number): any;
|
|
34
|
+
function humanize(num: number): any;
|
|
33
35
|
function toHex(num: string | number | TEth.Hex | bigint): TEth.Hex;
|
|
34
36
|
}
|
|
@@ -5,6 +5,7 @@ export type TGlobal = {
|
|
|
5
5
|
removeEventListener: Window['removeEventListener'];
|
|
6
6
|
dispatchEvent(event: any): void;
|
|
7
7
|
localStorage?: WindowLocalStorage['localStorage'];
|
|
8
|
+
CustomEvent: typeof CustomEvent;
|
|
8
9
|
};
|
|
9
10
|
export declare namespace $ref {
|
|
10
11
|
function getGlobal(): TGlobal;
|
package/package.json
CHANGED
|
@@ -168,6 +168,11 @@ export class ContractReader implements IContractReader {
|
|
|
168
168
|
params?: { [key: string]: any } | any[]
|
|
169
169
|
|
|
170
170
|
}): Promise<RpcTypes.Filter> {
|
|
171
|
+
|
|
172
|
+
if (Array.isArray(abi) && abi.length === 1) {
|
|
173
|
+
return this.getLogsFilter(abi[0], options);
|
|
174
|
+
}
|
|
175
|
+
|
|
171
176
|
let filters: Partial<RpcTypes.Filter> = {
|
|
172
177
|
address: options.address,
|
|
173
178
|
};
|
|
@@ -227,9 +232,15 @@ export class ContractReader implements IContractReader {
|
|
|
227
232
|
abi.map($abiUtils.getTopicSignature)
|
|
228
233
|
];
|
|
229
234
|
if (options.params != null) {
|
|
230
|
-
let paramsArr = $require.Array(options.params, `Multiple Logs are being requested. The params should be an array. `);
|
|
231
235
|
let abiInputsArr = abi.map(x => x.inputs.filter(i => i.indexed));
|
|
236
|
+
|
|
237
|
+
let paramsArr = Array.isArray(options.params) === false
|
|
238
|
+
? [options.params]
|
|
239
|
+
: options.params;
|
|
240
|
+
|
|
232
241
|
let inputsMax = alot(abiInputsArr).max(x => x.length);
|
|
242
|
+
$require.gt(inputsMax, 0, `The ABI ${abi[0].name} has no indexed arguments.`);
|
|
243
|
+
|
|
233
244
|
for (let i = 0; i < inputsMax; i++) {
|
|
234
245
|
let options = [];
|
|
235
246
|
for (let j = 0; j < abiInputsArr.length; j++) {
|