diff --git a/package.json b/package.json index ef89bbd..8c61bfe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.5.1", + "version": "0.5.2", "description": "Orion Protocol SDK", "main": "./lib/esm/index.js", "module": "./lib/esm/index.js", diff --git a/src/services/OrionAnalytics/index.ts b/src/services/OrionAnalytics/index.ts new file mode 100644 index 0000000..a55281e --- /dev/null +++ b/src/services/OrionAnalytics/index.ts @@ -0,0 +1,19 @@ +import fetchWithValidation from '../../fetchWithValidation'; +import overviewSchema from './schemas/overviewSchema'; + +export default class OrionAnalytics { + private apiUrl: string; + + constructor(apiUrl: string) { + this.apiUrl = apiUrl; + + this.getOverview = this.getOverview.bind(this); + } + + getOverview() { + return fetchWithValidation( + `https://${this.apiUrl}/api/stats/overview`, + overviewSchema, + ); + } +} diff --git a/src/services/OrionAnalytics/schemas/overviewSchema.ts b/src/services/OrionAnalytics/schemas/overviewSchema.ts new file mode 100644 index 0000000..52170c7 --- /dev/null +++ b/src/services/OrionAnalytics/schemas/overviewSchema.ts @@ -0,0 +1,10 @@ +import { z } from 'zod'; + +const overviewSchema = z.object({ + volume24h: z.number(), + volume7d: z.number(), + transactionCount24h: z.number(), + transactionCount7d: z.number(), +}); + +export default overviewSchema; diff --git a/src/services/index.ts b/src/services/index.ts index a59bb37..862fb5a 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -1,3 +1,4 @@ export * as orionAggregator from './OrionAggregator'; export * as orionBlockchain from './OrionBlockchain'; +export * as orionAnalytics from './OrionAnalytics'; export * as priceFeed from './PriceFeed';