diff --git a/src/services/DappsStakingEvents.ts b/src/services/DappsStakingEvents.ts index 2c57488..2915f55 100644 --- a/src/services/DappsStakingEvents.ts +++ b/src/services/DappsStakingEvents.ts @@ -2,7 +2,7 @@ import { injectable, inject } from 'inversify'; import axios from 'axios'; import { NetworkType } from '../networks'; import { Guard } from '../guard'; -import { TotalAmountCount, Triplet, Pair, PeriodType, ServiceBase, List } from './ServiceBase'; +import { TotalAmountCount, Quartet, Pair, PeriodType, ServiceBase, List } from './ServiceBase'; import { IApiFactory } from '../client/ApiFactory'; import { ContainerTypes } from '../containertypes'; import { @@ -27,8 +27,8 @@ export interface IDappsStakingEvents { getDappStakingStakersCount(network: NetworkType, contractAddress: string, period: PeriodType): Promise; getParticipantStake(network: NetworkType, address: string): Promise; getDappStakingStakersCountTotal(network: NetworkType, period: PeriodType): Promise; - getDappStakingStakersTotal(network: NetworkType, period: PeriodType): Promise; - getDappStakingLockersTotal(network: NetworkType, period: PeriodType): Promise; + getDappStakingStakersTotal(network: NetworkType, period: PeriodType): Promise; + getDappStakingLockersTotal(network: NetworkType, period: PeriodType): Promise; getDappStakingLockersAndStakersTotal(network: NetworkType, period: PeriodType): Promise; getDappStakingRewards(network: NetworkType, period: PeriodType, transaction: RewardEventType): Promise; getDappStakingRewardsAggregated(network: NetworkType, address: string, period: PeriodType): Promise; @@ -376,7 +376,7 @@ export class DappsStakingEvents extends ServiceBase implements IDappsStakingEven } } - public async getDappStakingStakersTotal(network: NetworkType, period: PeriodType): Promise { + public async getDappStakingStakersTotal(network: NetworkType, period: PeriodType): Promise { if (network !== 'astar' && network !== 'shiden' && network !== 'shibuya') { return []; } @@ -396,11 +396,12 @@ export class DappsStakingEvents extends ServiceBase implements IDappsStakingEven date: id count: stakersCount amount: stakersAmount + price: usdPrice } }`, }); - const results: Triplet[] = result.data.data.stakersCountAggregatedDailies; + const results: Quartet[] = result.data.data.stakersCountAggregatedDailies; return results; } catch (e) { console.error(e); @@ -408,7 +409,7 @@ export class DappsStakingEvents extends ServiceBase implements IDappsStakingEven } } - public async getDappStakingLockersTotal(network: NetworkType, period: PeriodType): Promise { + public async getDappStakingLockersTotal(network: NetworkType, period: PeriodType): Promise { if (network !== 'astar' && network !== 'shiden' && network !== 'shibuya') { return []; } @@ -425,11 +426,12 @@ export class DappsStakingEvents extends ServiceBase implements IDappsStakingEven date: id count: lockersCount amount: tvl + price: usdPrice } }`, }); - const results: Triplet[] = result.data.data.tvlAggregatedDailies; + const results: Quartet[] = result.data.data.tvlAggregatedDailies; return results; } catch (e) { console.error(e); @@ -455,6 +457,7 @@ export class DappsStakingEvents extends ServiceBase implements IDappsStakingEven date: id count: lockersCount amount: tvl + price: usdPrice } stakersCountAggregatedDailies( orderBy: id_DESC @@ -463,6 +466,7 @@ export class DappsStakingEvents extends ServiceBase implements IDappsStakingEven date: id count: stakersCount amount: stakersAmount + price: usdPrice } }`; @@ -471,8 +475,8 @@ export class DappsStakingEvents extends ServiceBase implements IDappsStakingEven const combinedData: TotalAmountCount[] = []; - const lockersData: Triplet[] = result.data.data.tvlAggregatedDailies; - const stakersData: Triplet[] = result.data.data.stakersCountAggregatedDailies; + const lockersData: Quartet[] = result.data.data.tvlAggregatedDailies; + const stakersData: Quartet[] = result.data.data.stakersCountAggregatedDailies; const lockersMap = new Map(lockersData.map((item) => [item.date, item])); const stakersMap = new Map(stakersData.map((item) => [item.date, item])); @@ -485,6 +489,7 @@ export class DappsStakingEvents extends ServiceBase implements IDappsStakingEven lockersCount: lockersMap.has(date) ? lockersMap.get(date)?.count : undefined, tvs: stakersMap.has(date) ? stakersMap.get(date)?.amount : undefined, stakersCount: stakersMap.has(date) ? stakersMap.get(date)?.count : undefined, + usdPrice: lockersMap.has(date) ? lockersMap.get(date)?.price : undefined, }); }); diff --git a/src/services/ServiceBase.ts b/src/services/ServiceBase.ts index 4f23199..b59eec8 100644 --- a/src/services/ServiceBase.ts +++ b/src/services/ServiceBase.ts @@ -3,7 +3,7 @@ import { injectable } from 'inversify'; export type PeriodType = '1 day' | '7 days' | '30 days' | '90 days' | '1 year'; export type PeriodTypeEra = '7 eras' | '30 eras' | '90 eras' | 'all'; export type Pair = { date: number; value: number }; -export type Triplet = { date: string; count: number; amount: number }; +export type Quartet = { date: string; count: number; amount: number; price: number }; export type List = { stakerAddress: string; amount: bigint }; export type DateRange = { start: Date; end: Date }; export type TotalAmountCount = { @@ -12,6 +12,7 @@ export type TotalAmountCount = { lockersCount: number | undefined; tvs: number | undefined; stakersCount: number | undefined; + usdPrice: number | undefined; }; const DEFAULT_RANGE_LENGTH_DAYS = 7;