diff --git a/src/services/evm/erc721_handler.ts b/src/services/evm/erc721_handler.ts index 1eb8c667c..ca846041d 100644 --- a/src/services/evm/erc721_handler.ts +++ b/src/services/evm/erc721_handler.ts @@ -292,7 +292,7 @@ export class Erc721Handler { static async calErc721Stats(addresses?: string[]): Promise { // Get once block height 24h ago. - let blockSince24hAgo = {}; + let blockSince24hAgo: any = []; if (!config.evmOnly) { blockSince24hAgo = await Block.query() .select('height') @@ -307,6 +307,7 @@ export class Erc721Handler { .limit(1); } // Calculate total activity and transfer_24h of erc721 + // not return record if erc721 contract haven't erc721 activities return Erc721Contract.query() .count('erc721_activity.id AS total_activity') .select( diff --git a/src/services/evm/erc721_reindex.ts b/src/services/evm/erc721_reindex.ts index 23ddb2dff..443c2ad45 100644 --- a/src/services/evm/erc721_reindex.ts +++ b/src/services/evm/erc721_reindex.ts @@ -123,20 +123,22 @@ export class Erc721Reindexer { await Erc721Handler.updateErc721(activities, tokens, trx); }); const erc721Stats = await Erc721Handler.calErc721Stats([address]); - // Upsert erc721 stats - await Erc721Stats.query() - .insert( - erc721Stats.map((e) => - Erc721Stats.fromJson({ - total_activity: e.total_activity, - transfer_24h: e.transfer_24h, - erc721_contract_id: e.erc721_contract_id, - }) + if (erc721Stats.length > 0) { + // Upsert erc721 stats + await Erc721Stats.query() + .insert( + erc721Stats.map((e) => + Erc721Stats.fromJson({ + total_activity: e.total_activity, + transfer_24h: e.transfer_24h, + erc721_contract_id: e.erc721_contract_id, + }) + ) ) - ) - .onConflict('erc721_contract_id') - .merge() - .returning('id'); + .onConflict('erc721_contract_id') + .merge() + .returning('id'); + } } async getCurrentTokens(