diff --git a/apps/api/src/services/data-provider/data-provider.service.ts b/apps/api/src/services/data-provider/data-provider.service.ts index 9366574ac..e4e49737a 100644 --- a/apps/api/src/services/data-provider/data-provider.service.ts +++ b/apps/api/src/services/data-provider/data-provider.service.ts @@ -725,6 +725,12 @@ export class DataProviderService implements OnModuleInit { promises.push( promise.then(async (result) => { + // Collect the quotes of this chunk to store only the fetched + // market data, not the entire response + const dataProviderResponses: (DataProviderResponse & { + symbol: string; + })[] = []; + for (const [symbol, dataProviderResponse] of Object.entries( result )) { @@ -739,6 +745,8 @@ export class DataProviderService implements OnModuleInit { continue; } + dataProviderResponses.push({ ...dataProviderResponse, symbol }); + response[ getAssetProfileIdentifier({ symbol, @@ -772,6 +780,11 @@ export class DataProviderService implements OnModuleInit { marketState: 'open' }; + dataProviderResponses.push({ + ...derivedDataProviderResponse, + symbol: `${DEFAULT_CURRENCY}${currency}` + }); + response[ getAssetProfileIdentifier({ dataSource: DataSource[dataSource], @@ -805,7 +818,7 @@ export class DataProviderService implements OnModuleInit { try { await this.marketDataService.updateMany({ - data: Object.values(response) + data: dataProviderResponses .filter(({ marketPrice, marketState }) => { return ( isNumber(marketPrice) &&