ponder 0.8.20 → 0.8.22
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/dist/bin/ponder.js +86 -37
- package/dist/bin/ponder.js.map +1 -1
- package/package.json +1 -1
- package/src/indexing/service.ts +94 -37
- package/src/sync-store/encoding.ts +4 -2
- package/src/utils/print.ts +4 -0
package/dist/bin/ponder.js
CHANGED
|
@@ -3887,6 +3887,8 @@ function prettyPrint(args) {
|
|
|
3887
3887
|
const trimmedValue = typeof value === "string" && value.length > 80 ? value.slice(0, 80).concat("...") : value;
|
|
3888
3888
|
return [key, trimmedValue];
|
|
3889
3889
|
}).filter(Boolean);
|
|
3890
|
+
if (entries.length === 0)
|
|
3891
|
+
return " (empty object)";
|
|
3890
3892
|
const maxLength = entries.reduce(
|
|
3891
3893
|
(acc, [key]) => Math.max(acc, key.length),
|
|
3892
3894
|
0
|
|
@@ -6227,47 +6229,24 @@ var executeSetup = async (indexingService, { event }) => {
|
|
|
6227
6229
|
} catch (_error) {
|
|
6228
6230
|
if (indexingService.isKilled)
|
|
6229
6231
|
return { status: "killed" };
|
|
6230
|
-
const error = _error;
|
|
6231
|
-
const decodedCheckpoint = decodeCheckpoint(event.checkpoint);
|
|
6232
|
+
const error = _error instanceof Error ? _error : new Error(String(_error));
|
|
6232
6233
|
addStackTrace(error, common.options);
|
|
6233
|
-
|
|
6234
|
+
if (error instanceof BaseError) {
|
|
6235
|
+
error.meta.push(toErrorMeta(event));
|
|
6236
|
+
} else {
|
|
6237
|
+
error.meta = [toErrorMeta(event)];
|
|
6238
|
+
}
|
|
6239
|
+
const decodedCheckpoint = decodeCheckpoint(event.checkpoint);
|
|
6234
6240
|
common.logger.error({
|
|
6235
6241
|
service: "indexing",
|
|
6236
6242
|
msg: `Error while processing '${event.name}' event in '${networkByChainId[event.chainId].name}' block ${decodedCheckpoint.blockNumber}`,
|
|
6237
6243
|
error
|
|
6238
6244
|
});
|
|
6245
|
+
common.metrics.ponder_indexing_has_error.set(1);
|
|
6239
6246
|
return { status: "error", error };
|
|
6240
6247
|
}
|
|
6241
6248
|
return { status: "success" };
|
|
6242
6249
|
};
|
|
6243
|
-
var toErrorMeta = (event) => {
|
|
6244
|
-
switch (event.type) {
|
|
6245
|
-
case "log":
|
|
6246
|
-
case "trace": {
|
|
6247
|
-
return `Event arguments:
|
|
6248
|
-
${prettyPrint(event.event.args)}`;
|
|
6249
|
-
}
|
|
6250
|
-
case "transfer": {
|
|
6251
|
-
return `Event arguments:
|
|
6252
|
-
${prettyPrint(event.event.transfer)}`;
|
|
6253
|
-
}
|
|
6254
|
-
case "block": {
|
|
6255
|
-
return `Block:
|
|
6256
|
-
${prettyPrint({
|
|
6257
|
-
hash: event.event.block.hash,
|
|
6258
|
-
number: event.event.block.number,
|
|
6259
|
-
timestamp: event.event.block.timestamp
|
|
6260
|
-
})}`;
|
|
6261
|
-
}
|
|
6262
|
-
case "transaction": {
|
|
6263
|
-
return `Transaction:
|
|
6264
|
-
${prettyPrint({
|
|
6265
|
-
hash: event.event.transaction.hash,
|
|
6266
|
-
block: event.event.block.number
|
|
6267
|
-
})}`;
|
|
6268
|
-
}
|
|
6269
|
-
}
|
|
6270
|
-
};
|
|
6271
6250
|
var executeEvent = async (indexingService, { event }) => {
|
|
6272
6251
|
const {
|
|
6273
6252
|
common,
|
|
@@ -6297,13 +6276,14 @@ var executeEvent = async (indexingService, { event }) => {
|
|
|
6297
6276
|
} catch (_error) {
|
|
6298
6277
|
if (indexingService.isKilled)
|
|
6299
6278
|
return { status: "killed" };
|
|
6300
|
-
const error = _error;
|
|
6301
|
-
const decodedCheckpoint = decodeCheckpoint(event.checkpoint);
|
|
6279
|
+
const error = _error instanceof Error ? _error : new Error(String(_error));
|
|
6302
6280
|
addStackTrace(error, common.options);
|
|
6303
|
-
|
|
6304
|
-
if (error.meta.length === 0) {
|
|
6281
|
+
if (error instanceof BaseError) {
|
|
6305
6282
|
error.meta.push(toErrorMeta(event));
|
|
6283
|
+
} else {
|
|
6284
|
+
error.meta = [toErrorMeta(event)];
|
|
6306
6285
|
}
|
|
6286
|
+
const decodedCheckpoint = decodeCheckpoint(event.checkpoint);
|
|
6307
6287
|
common.logger.error({
|
|
6308
6288
|
service: "indexing",
|
|
6309
6289
|
msg: `Error while processing '${event.name}' event in '${networkByChainId[event.chainId].name}' block ${decodedCheckpoint.blockNumber}`,
|
|
@@ -6314,6 +6294,75 @@ var executeEvent = async (indexingService, { event }) => {
|
|
|
6314
6294
|
}
|
|
6315
6295
|
return { status: "success" };
|
|
6316
6296
|
};
|
|
6297
|
+
var blockText = (block) => `Block:
|
|
6298
|
+
${prettyPrint({
|
|
6299
|
+
hash: block.hash,
|
|
6300
|
+
number: block.number,
|
|
6301
|
+
timestamp: block.timestamp
|
|
6302
|
+
})}`;
|
|
6303
|
+
var transactionText = (transaction) => `Transaction:
|
|
6304
|
+
${prettyPrint({
|
|
6305
|
+
hash: transaction.hash,
|
|
6306
|
+
from: transaction.from,
|
|
6307
|
+
to: transaction.to
|
|
6308
|
+
})}`;
|
|
6309
|
+
var logText = (log) => `Log:
|
|
6310
|
+
${prettyPrint({
|
|
6311
|
+
index: log.logIndex,
|
|
6312
|
+
address: log.address
|
|
6313
|
+
})}`;
|
|
6314
|
+
var traceText = (trace) => `Trace:
|
|
6315
|
+
${prettyPrint({
|
|
6316
|
+
traceIndex: trace.traceIndex,
|
|
6317
|
+
from: trace.from,
|
|
6318
|
+
to: trace.to
|
|
6319
|
+
})}`;
|
|
6320
|
+
var toErrorMeta = (event) => {
|
|
6321
|
+
switch (event.type) {
|
|
6322
|
+
case "setup": {
|
|
6323
|
+
return `Block:
|
|
6324
|
+
${prettyPrint({
|
|
6325
|
+
number: event.block
|
|
6326
|
+
})}`;
|
|
6327
|
+
}
|
|
6328
|
+
case "log": {
|
|
6329
|
+
return [
|
|
6330
|
+
`Event arguments:
|
|
6331
|
+
${prettyPrint(event.event.args)}`,
|
|
6332
|
+
logText(event.event.log),
|
|
6333
|
+
transactionText(event.event.transaction),
|
|
6334
|
+
blockText(event.event.block)
|
|
6335
|
+
].join("\n");
|
|
6336
|
+
}
|
|
6337
|
+
case "trace": {
|
|
6338
|
+
return [
|
|
6339
|
+
`Call trace arguments:
|
|
6340
|
+
${prettyPrint(event.event.args)}`,
|
|
6341
|
+
traceText(event.event.trace),
|
|
6342
|
+
transactionText(event.event.transaction),
|
|
6343
|
+
blockText(event.event.block)
|
|
6344
|
+
].join("\n");
|
|
6345
|
+
}
|
|
6346
|
+
case "transfer": {
|
|
6347
|
+
return [
|
|
6348
|
+
`Transfer arguments:
|
|
6349
|
+
${prettyPrint(event.event.transfer)}`,
|
|
6350
|
+
traceText(event.event.trace),
|
|
6351
|
+
transactionText(event.event.transaction),
|
|
6352
|
+
blockText(event.event.block)
|
|
6353
|
+
].join("\n");
|
|
6354
|
+
}
|
|
6355
|
+
case "block": {
|
|
6356
|
+
return blockText(event.event.block);
|
|
6357
|
+
}
|
|
6358
|
+
case "transaction": {
|
|
6359
|
+
return [
|
|
6360
|
+
transactionText(event.event.transaction),
|
|
6361
|
+
blockText(event.event.block)
|
|
6362
|
+
].join("\n");
|
|
6363
|
+
}
|
|
6364
|
+
}
|
|
6365
|
+
};
|
|
6317
6366
|
|
|
6318
6367
|
// src/indexing/index.ts
|
|
6319
6368
|
var methods = {
|
|
@@ -6771,8 +6820,8 @@ function encodeTrace({
|
|
|
6771
6820
|
input: trace.input,
|
|
6772
6821
|
functionSelector: trace.input.slice(0, 10),
|
|
6773
6822
|
output: trace.output ?? null,
|
|
6774
|
-
revertReason: trace.revertReason
|
|
6775
|
-
error: trace.error
|
|
6823
|
+
revertReason: trace.revertReason ? trace.revertReason.replace(/\0/g, "") : null,
|
|
6824
|
+
error: trace.error ? trace.error.replace(/\0/g, "") : null,
|
|
6776
6825
|
value: trace.value ? hexToBigInt(trace.value) : null,
|
|
6777
6826
|
index: trace.index,
|
|
6778
6827
|
subcalls: trace.subcalls,
|