better fallbacks for missing block summaries data

This commit is contained in:
Mononaut 2022-11-25 10:16:58 +09:00
parent 6ec9c2f816
commit 201b32bdcd
No known key found for this signature in database
GPG Key ID: A3F058E41374C04E
2 changed files with 10 additions and 9 deletions

View File

@ -590,7 +590,7 @@ class Blocks {
if (skipMemoryCache === false) {
// Check the memory cache
const cachedSummary = this.getBlockSummaries().find((b) => b.id === hash);
if (cachedSummary) {
if (cachedSummary?.transactions?.length) {
return cachedSummary.transactions;
}
}
@ -598,7 +598,7 @@ class Blocks {
// Check if it's indexed in db
if (skipDBLookup === false && Common.blocksSummariesIndexingEnabled() === true) {
const indexedSummary = await BlocksSummariesRepository.$getByBlockId(hash);
if (indexedSummary !== undefined) {
if (indexedSummary !== undefined && indexedSummary?.transactions?.length) {
return indexedSummary.transactions;
}
}

View File

@ -65,15 +65,16 @@ class BlocksAuditRepositories {
rows[0].freshTxs = JSON.parse(rows[0].freshTxs);
rows[0].transactions = JSON.parse(rows[0].transactions);
rows[0].template = JSON.parse(rows[0].template);
} else {
// fallback to non-audited transaction summary
const strippedTransactions = await blocks.$getStrippedBlockTransactions(hash);
return {
transactions: strippedTransactions
if (rows[0].transactions.length) {
return rows[0];
}
}
return rows[0];
// fallback to non-audited transaction summary
const strippedTransactions = await blocks.$getStrippedBlockTransactions(hash);
return {
transactions: strippedTransactions
};
} catch (e: any) {
logger.err(`Cannot fetch block audit from db. Reason: ` + (e instanceof Error ? e.message : e));
throw e;