Skip to content

Commit

Permalink
feat: Analytics summary
Browse files Browse the repository at this point in the history
  • Loading branch information
0xonramp committed Feb 2, 2024
1 parent 1452641 commit 6e29276
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 2 deletions.
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

39 changes: 39 additions & 0 deletions src/providers/analytics/provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,15 @@ interface IndexAnalytics {
volume24h: number
}

interface IndexAnalyticsSummary {
address: string
navPrice: number
marketCap: number
change24h: number
}

const MAINNET_CHAIN_ID = 1

interface AnalyticsProvider {
getAnalytics(address: string): Promise<IndexAnalytics>
}
Expand Down Expand Up @@ -86,4 +95,34 @@ export class IndexAnalyticsProvider implements AnalyticsProvider {
volume24h,
}
}

async getAnalyticsSummary(address: string): Promise<IndexAnalyticsSummary> {
const { baseCurrency, coingeckoService, provider } = this
const marketCapProvider = new IndexMarketCapProvider(
provider,
coingeckoService,
)
const navProvider = new IndexNavProvider(provider, coingeckoService)

const [marketCap, navPrice, coingeckoRes] = await Promise.all([
marketCapProvider.getMarketCap(address),
navProvider.getNav(address),
coingeckoService.getTokenPrice({
address,
chainId: MAINNET_CHAIN_ID,
baseCurrency,
include24hrChange: true,
include24hrVol: false,
}),
])

const coingeckoData = coingeckoRes[address.toLowerCase()] ?? null

return {
address,
navPrice,
marketCap,
change24h: coingeckoData?.[CoinGeckoUtils.get24hChangeLabel(baseCurrency)] ?? 0,
}
}
}

0 comments on commit 6e29276

Please sign in to comment.