diff --git a/modules/parsers/2.1-parser.ts b/modules/parsers/2.1-parser.ts index 56d4842f..531a2f89 100644 --- a/modules/parsers/2.1-parser.ts +++ b/modules/parsers/2.1-parser.ts @@ -108,10 +108,8 @@ export default class HyperionParser extends BaseParser { } const res = ds_msg[1]; - let block = null; - let traces = []; - let deltas = []; + let block = null; if (res.block && res.block.length) { if (typeof res.block === 'object' && res.block.length === 2) { @@ -180,6 +178,8 @@ export default class HyperionParser extends BaseParser { } } + // unpack traces + let traces = null; if (allowProcessing && res.traces && res.traces.length) { // deserialize transaction_trace using abieos (faster) @@ -208,12 +208,14 @@ export default class HyperionParser extends BaseParser { } } + // unpack deltas + let deltas = null; if (allowProcessing && res.deltas && res.deltas.length) { // deserialize table_delta using abieos try { ds_times.abieos.table_delta = timedFunction(dsProfiling, () => { - worker.deserializeNative('table_delta[]', res.deltas); + deltas = worker.deserializeNative('table_delta[]', res.deltas); }); } catch (e) { hLog('table_delta[] deserialization failed with abieos!'); diff --git a/workers/deserializer.ts b/workers/deserializer.ts index 999f5eff..30fe85bb 100644 --- a/workers/deserializer.ts +++ b/workers/deserializer.ts @@ -1120,6 +1120,7 @@ export default class MainDSWorker extends HyperionWorker { deltaStructHandlers = { "contract_row": async (payload, block_num, block_ts, row, block_id) => { + if (this.conf.indexer.abi_scan_mode) { return false; } @@ -1182,6 +1183,7 @@ export default class MainDSWorker extends HyperionWorker { if (process.env['live_mode'] === 'true') { this.pushToDeltaStreamingQueue(buff, jsonRow); } + if (typeof row.present !== "undefined") { if (row.present === 0 && !this.conf.indexer.disable_delta_rm) { if (this.ch_ready) {