Skip to content

Commit

Permalink
add price to v3 totals endpoints
Browse files Browse the repository at this point in the history
  • Loading branch information
gluneau committed Mar 5, 2024
1 parent 7a6168e commit 407498e
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 10 deletions.
23 changes: 14 additions & 9 deletions src/services/DappsStakingEvents.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -27,8 +27,8 @@ export interface IDappsStakingEvents {
getDappStakingStakersCount(network: NetworkType, contractAddress: string, period: PeriodType): Promise<Pair[]>;
getParticipantStake(network: NetworkType, address: string): Promise<bigint>;
getDappStakingStakersCountTotal(network: NetworkType, period: PeriodType): Promise<Pair[]>;
getDappStakingStakersTotal(network: NetworkType, period: PeriodType): Promise<Triplet[]>;
getDappStakingLockersTotal(network: NetworkType, period: PeriodType): Promise<Triplet[]>;
getDappStakingStakersTotal(network: NetworkType, period: PeriodType): Promise<Quartet[]>;
getDappStakingLockersTotal(network: NetworkType, period: PeriodType): Promise<Quartet[]>;
getDappStakingLockersAndStakersTotal(network: NetworkType, period: PeriodType): Promise<TotalAmountCount[]>;
getDappStakingRewards(network: NetworkType, period: PeriodType, transaction: RewardEventType): Promise<Pair[]>;
getDappStakingRewardsAggregated(network: NetworkType, address: string, period: PeriodType): Promise<Pair[]>;
Expand Down Expand Up @@ -376,7 +376,7 @@ export class DappsStakingEvents extends ServiceBase implements IDappsStakingEven
}
}

public async getDappStakingStakersTotal(network: NetworkType, period: PeriodType): Promise<Triplet[]> {
public async getDappStakingStakersTotal(network: NetworkType, period: PeriodType): Promise<Quartet[]> {
if (network !== 'astar' && network !== 'shiden' && network !== 'shibuya') {
return [];
}
Expand All @@ -396,19 +396,20 @@ 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);
return [];
}
}

public async getDappStakingLockersTotal(network: NetworkType, period: PeriodType): Promise<Triplet[]> {
public async getDappStakingLockersTotal(network: NetworkType, period: PeriodType): Promise<Quartet[]> {
if (network !== 'astar' && network !== 'shiden' && network !== 'shibuya') {
return [];
}
Expand All @@ -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);
Expand All @@ -455,6 +457,7 @@ export class DappsStakingEvents extends ServiceBase implements IDappsStakingEven
date: id
count: lockersCount
amount: tvl
price: usdPrice
}
stakersCountAggregatedDailies(
orderBy: id_DESC
Expand All @@ -463,6 +466,7 @@ export class DappsStakingEvents extends ServiceBase implements IDappsStakingEven
date: id
count: stakersCount
amount: stakersAmount
price: usdPrice
}
}`;

Expand All @@ -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]));

Expand All @@ -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,
});
});

Expand Down
3 changes: 2 additions & 1 deletion src/services/ServiceBase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
Expand All @@ -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;
Expand Down

0 comments on commit 407498e

Please sign in to comment.