11import { fetchAnalytics } from "data/analytics/fetch-analytics" ;
2-
3- export interface WalletStats {
4- date : string ;
5- uniqueWalletsConnected : number ;
6- totalConnections : number ;
7- walletType : string ;
8- }
9-
10- export interface WalletUserStats {
11- date : string ;
12- newUsers : number ;
13- returningUsers : number ;
14- totalUsers : number ;
15- }
16-
17- export interface InAppWalletStats {
18- date : string ;
19- authenticationMethod : string ;
20- uniqueWalletsConnected : number ;
21- }
22-
23- export interface EcosystemWalletStats extends InAppWalletStats { }
24-
25- export interface UserOpStats {
26- date : string ;
27- successful : number ;
28- failed : number ;
29- sponsoredUsd : number ;
30- chainId ?: string ;
31- }
32-
33- interface AnalyticsQueryParams {
34- clientId ?: string ;
35- accountId ?: string ;
36- from ?: Date ;
37- to ?: Date ;
38- period ?: "day" | "week" | "month" | "year" | "all" ;
39- }
2+ import type {
3+ AnalyticsQueryParams ,
4+ InAppWalletStats ,
5+ RpcMethodStats ,
6+ UserOpStats ,
7+ WalletStats ,
8+ WalletUserStats ,
9+ } from "types/analytics" ;
4010
4111function buildSearchParams ( params : AnalyticsQueryParams ) : URLSearchParams {
4212 const searchParams = new URLSearchParams ( ) ;
@@ -115,6 +85,27 @@ export async function getUserOpUsage(
11585 return json . data as UserOpStats [ ] ;
11686}
11787
88+ export async function getRpcMethodUsage (
89+ params : AnalyticsQueryParams ,
90+ ) : Promise < RpcMethodStats [ ] > {
91+ const searchParams = buildSearchParams ( params ) ;
92+ const res = await fetchAnalytics (
93+ `v1/rpc/evm-methods?${ searchParams . toString ( ) } ` ,
94+ {
95+ method : "GET" ,
96+ headers : { "Content-Type" : "application/json" } ,
97+ } ,
98+ ) ;
99+
100+ if ( res ?. status !== 200 ) {
101+ console . error ( "Failed to fetch RPC method usage" ) ;
102+ return [ ] ;
103+ }
104+
105+ const json = await res . json ( ) ;
106+ return json . data as RpcMethodStats [ ] ;
107+ }
108+
118109export async function getWalletUsers (
119110 params : AnalyticsQueryParams ,
120111) : Promise < WalletUserStats [ ] > {
@@ -135,3 +126,21 @@ export async function getWalletUsers(
135126 const json = await res . json ( ) ;
136127 return json . data as WalletUserStats [ ] ;
137128}
129+
130+ export async function isProjectActive (
131+ params : AnalyticsQueryParams ,
132+ ) : Promise < boolean > {
133+ const searchParams = buildSearchParams ( params ) ;
134+ const res = await fetchAnalytics ( `v1/active?${ searchParams . toString ( ) } ` , {
135+ method : "GET" ,
136+ headers : { "Content-Type" : "application/json" } ,
137+ } ) ;
138+
139+ if ( res ?. status !== 200 ) {
140+ console . error ( "Failed to fetch project active status" ) ;
141+ return false ;
142+ }
143+
144+ const json = await res . json ( ) ;
145+ return json . data . isActive as boolean ;
146+ }
0 commit comments