@sudobility/heavymath_indexer_client 0.0.3 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/business/index.js.map +1 -1
  2. package/dist/business/indexer-service.d.ts +14 -13
  3. package/dist/business/indexer-service.d.ts.map +1 -1
  4. package/dist/business/indexer-service.js +10 -0
  5. package/dist/business/indexer-service.js.map +1 -1
  6. package/dist/hooks/index.js.map +1 -1
  7. package/dist/hooks/useDealers.d.ts +8 -8
  8. package/dist/hooks/useDealers.d.ts.map +1 -1
  9. package/dist/hooks/useDealers.js.map +1 -1
  10. package/dist/hooks/useFavorites.d.ts +1 -1
  11. package/dist/hooks/useFavorites.d.ts.map +1 -1
  12. package/dist/hooks/useFavorites.js.map +1 -1
  13. package/dist/hooks/useMarkets.d.ts +9 -9
  14. package/dist/hooks/useMarkets.d.ts.map +1 -1
  15. package/dist/hooks/useMarkets.js.map +1 -1
  16. package/dist/hooks/useOracle.d.ts +6 -6
  17. package/dist/hooks/useOracle.d.ts.map +1 -1
  18. package/dist/hooks/useOracle.js.map +1 -1
  19. package/dist/hooks/usePredictions.d.ts +8 -8
  20. package/dist/hooks/usePredictions.d.ts.map +1 -1
  21. package/dist/hooks/usePredictions.js.map +1 -1
  22. package/dist/hooks/useSSE.js.map +1 -1
  23. package/dist/hooks/useStats.d.ts +3 -3
  24. package/dist/hooks/useStats.d.ts.map +1 -1
  25. package/dist/hooks/useStats.js.map +1 -1
  26. package/dist/hooks/useWithdrawals.d.ts +5 -5
  27. package/dist/hooks/useWithdrawals.d.ts.map +1 -1
  28. package/dist/hooks/useWithdrawals.js.map +1 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/network/IndexerClient.d.ts +16 -16
  31. package/dist/network/IndexerClient.d.ts.map +1 -1
  32. package/dist/network/IndexerClient.js +3 -2
  33. package/dist/network/IndexerClient.js.map +1 -1
  34. package/dist/network/index.js.map +1 -1
  35. package/dist/stores/favorites-store.js.map +1 -1
  36. package/dist/stores/index.js.map +1 -1
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/types.js.map +1 -1
  39. package/package.json +15 -11
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/business/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/business/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC","sourcesContent":["/**\n * Business layer exports\n */\n\nexport * from './indexer-service';\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { NetworkClient } from '@sudobility/types';
2
2
  import { IndexerClient } from '../network/IndexerClient';
3
- import type { Market, Prediction, DealerNFT, PaginatedResponse, ApiResponse, PredictionFilters, StateHistory, MarketStats } from '../types';
3
+ import type { MarketData, PredictionData, DealerNftData, PaginatedResponse, ApiResponse, PredictionFilters, MarketStateHistoryData, MarketStatsData } from '../types';
4
4
  export interface IndexerServiceConfig {
5
5
  indexerUrl: string;
6
6
  networkClient: NetworkClient;
@@ -16,25 +16,26 @@ export declare class IndexerService {
16
16
  private getCacheKey;
17
17
  private getCache;
18
18
  private setCache;
19
- getActiveMarkets(limit?: number): Promise<PaginatedResponse<Market>>;
20
- getUserPredictions(walletAddress: string, filters?: Omit<PredictionFilters, 'user'>): Promise<PaginatedResponse<Prediction>>;
21
- getDealerNFTs(walletAddress: string): Promise<DealerNFT[]>;
19
+ getActiveMarkets(limit?: number): Promise<PaginatedResponse<MarketData>>;
20
+ getUserPredictions(walletAddress: string, filters?: Omit<PredictionFilters, 'user'>): Promise<PaginatedResponse<PredictionData>>;
21
+ getDealerNFTs(walletAddress: string): Promise<DealerNftData[]>;
22
22
  getDealerDashboard(walletAddress: string): Promise<{
23
- nfts: DealerNFT[];
24
- markets: Market[];
23
+ nfts: DealerNftData[];
24
+ markets: MarketData[];
25
25
  }>;
26
26
  getMarketDetails(marketId: string): Promise<{
27
- market: Market;
28
- predictions: Prediction[];
29
- history: StateHistory[];
27
+ market: MarketData;
28
+ predictions: PredictionData[];
29
+ history: MarketStateHistoryData[];
30
30
  }>;
31
31
  getUserBettingHistory(walletAddress: string): Promise<{
32
- active: Prediction[];
33
- claimed: Prediction[];
32
+ active: PredictionData[];
33
+ claimed: PredictionData[];
34
34
  }>;
35
- getMarketFromPrediction(predictionId: string): Promise<Market | null>;
36
- getMarketStats(): Promise<ApiResponse<MarketStats>>;
35
+ getMarketFromPrediction(predictionId: string): Promise<MarketData | null>;
36
+ getMarketStats(): Promise<ApiResponse<MarketStatsData>>;
37
37
  clearCache(): void;
38
+ invalidateCache(prefix: string): number;
38
39
  getClient(): IndexerClient;
39
40
  }
40
41
  //# sourceMappingURL=indexer-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexer-service.d.ts","sourceRoot":"","sources":["../../src/business/indexer-service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACZ,MAAM,UAAU,CAAC;AAKlB,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,KAAK,CAAyD;IACtE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAMvB,MAAM,EAAE,oBAAoB;WAW1B,WAAW,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc;IAWvE,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,QAAQ;IAeH,gBAAgB,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAyBxE,kBAAkB,CAC7B,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GACxC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAwB5B,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAwB1D,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;QAC9D,IAAI,EAAE,SAAS,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IAoCW,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QACvD,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,UAAU,EAAE,CAAC;QAC1B,OAAO,EAAE,YAAY,EAAE,CAAC;KACzB,CAAC;IAuCW,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;QACjE,MAAM,EAAE,UAAU,EAAE,CAAC;QACrB,OAAO,EAAE,UAAU,EAAE,CAAC;KACvB,CAAC;IAqCW,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAmBrE,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAmBzD,UAAU,IAAI,IAAI;IAOlB,SAAS,IAAI,aAAa;CAGlC"}
1
+ {"version":3,"file":"indexer-service.d.ts","sourceRoot":"","sources":["../../src/business/indexer-service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EAChB,MAAM,UAAU,CAAC;AAKlB,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,KAAK,CAAyD;IACtE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAMvB,MAAM,EAAE,oBAAoB;WAW1B,WAAW,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc;IAWvE,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,QAAQ;IAoBH,gBAAgB,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IA6B5E,kBAAkB,CAC7B,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GACxC,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IA4BhC,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA6B9D,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;QAC9D,IAAI,EAAE,aAAa,EAAE,CAAC;QACtB,OAAO,EAAE,UAAU,EAAE,CAAC;KACvB,CAAC;IAyCW,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QACvD,MAAM,EAAE,UAAU,CAAC;QACnB,WAAW,EAAE,cAAc,EAAE,CAAC;QAC9B,OAAO,EAAE,sBAAsB,EAAE,CAAC;KACnC,CAAC;IA4CW,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;QACjE,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,OAAO,EAAE,cAAc,EAAE,CAAC;KAC3B,CAAC;IA0CW,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAuBzE,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAoB7D,UAAU,IAAI,IAAI;IAqBlB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAgBvC,SAAS,IAAI,aAAa;CAGlC"}
@@ -194,6 +194,16 @@ export class IndexerService {
194
194
  clearCache() {
195
195
  this.cache.clear();
196
196
  }
197
+ invalidateCache(prefix) {
198
+ let count = 0;
199
+ for (const key of this.cache.keys()) {
200
+ if (key.startsWith(prefix)) {
201
+ this.cache.delete(key);
202
+ count++;
203
+ }
204
+ }
205
+ return count;
206
+ }
197
207
  getClient() {
198
208
  return this.indexerClient;
199
209
  }
@@ -1 +1 @@
1
- {"version":3,"file":"indexer-service.js","sourceRoot":"","sources":["../../src/business/indexer-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexer-service.js","sourceRoot":"","sources":["../../src/business/indexer-service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Business service for Heavymath Indexer operations\n * Provides high-level methods with caching for frequently accessed data\n */\n\nimport type { NetworkClient } from '@sudobility/types';\nimport { IndexerClient } from '../network/IndexerClient';\nimport type {\n MarketData,\n PredictionData,\n DealerNftData,\n PaginatedResponse,\n ApiResponse,\n PredictionFilters,\n MarketStateHistoryData,\n MarketStatsData,\n} from '../types';\n\n/**\n * Configuration for IndexerService\n */\nexport interface IndexerServiceConfig {\n indexerUrl: string;\n networkClient: NetworkClient;\n cacheTTL?: number; // Cache time-to-live in milliseconds (default: 5 minutes)\n}\n\n/**\n * Business service for indexer operations\n * Implements caching and high-level business logic\n */\nexport class IndexerService {\n private static instance: IndexerService;\n private indexerClient: IndexerClient;\n private cache = new Map<string, { data: unknown; expires: number }>();\n private readonly CACHE_TTL: number;\n\n /**\n * Create an IndexerService instance\n * @param config - Configuration including indexerUrl and networkClient from @sudobility/di\n */\n constructor(config: IndexerServiceConfig) {\n if (!config.indexerUrl) {\n throw new Error('indexerUrl is required in IndexerServiceConfig');\n }\n if (!config.networkClient) {\n throw new Error('networkClient is required in IndexerServiceConfig');\n }\n this.indexerClient = new IndexerClient(config.indexerUrl, config.networkClient);\n this.CACHE_TTL = config.cacheTTL || 5 * 60 * 1000; // 5 minutes default\n }\n\n public static getInstance(config: IndexerServiceConfig): IndexerService {\n if (!IndexerService.instance) {\n IndexerService.instance = new IndexerService(config);\n }\n return IndexerService.instance;\n }\n\n // =============================================================================\n // PRIVATE CACHE METHODS\n // =============================================================================\n\n private getCacheKey(...args: unknown[]): string {\n return args.map(arg => (typeof arg === 'object' ? JSON.stringify(arg) : arg)).join(':');\n }\n\n private getCache<T>(key: string): T | null {\n const cached = this.cache.get(key);\n if (cached && cached.expires > Date.now()) {\n return cached.data as T;\n }\n this.cache.delete(key);\n return null;\n }\n\n private setCache<T>(key: string, data: T): void {\n this.cache.set(key, {\n data,\n expires: Date.now() + this.CACHE_TTL,\n });\n }\n\n // =============================================================================\n // PUBLIC BUSINESS METHODS\n // =============================================================================\n\n /**\n * Get active markets with caching.\n * Commonly used for displaying available markets to bettors.\n * Results are cached for the configured TTL (default: 5 minutes).\n *\n * @param limit - Maximum number of markets to return (default: 50)\n * @returns Paginated list of active markets\n * @throws Error if the API request fails (with a descriptive message)\n */\n public async getActiveMarkets(limit: number = 50): Promise<PaginatedResponse<MarketData>> {\n const cacheKey = this.getCacheKey('active-markets', limit);\n const cached = this.getCache<PaginatedResponse<MarketData>>(cacheKey);\n if (cached) return cached;\n\n try {\n const result = await this.indexerClient.getMarkets({\n status: 'Active',\n limit,\n });\n\n this.setCache(cacheKey, result);\n return result;\n } catch (error) {\n throw new Error(\n `Failed to get active markets: ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n }\n\n /**\n * Get user's predictions (betting history) with caching.\n * Results are cached for the configured TTL (default: 5 minutes).\n *\n * @param walletAddress - User's wallet address\n * @param filters - Additional prediction filters (excluding 'user', which is set automatically)\n * @returns Paginated list of the user's predictions\n * @throws Error if the API request fails\n */\n public async getUserPredictions(\n walletAddress: string,\n filters?: Omit<PredictionFilters, 'user'>\n ): Promise<PaginatedResponse<PredictionData>> {\n const cacheKey = this.getCacheKey('user-predictions', walletAddress, filters);\n const cached = this.getCache<PaginatedResponse<PredictionData>>(cacheKey);\n if (cached) return cached;\n\n try {\n const result = await this.indexerClient.getPredictions({\n user: walletAddress,\n ...filters,\n });\n\n this.setCache(cacheKey, result);\n return result;\n } catch (error) {\n throw new Error(\n `Failed to get user predictions: ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n }\n\n /**\n * Check if wallet is a dealer and get their NFTs with caching.\n * Results are cached for the configured TTL (default: 5 minutes).\n *\n * @param walletAddress - Wallet address to check\n * @returns Array of dealer NFTs owned by the wallet (empty if not a dealer)\n * @throws Error if the API request fails\n */\n public async getDealerNFTs(walletAddress: string): Promise<DealerNftData[]> {\n const cacheKey = this.getCacheKey('dealer-nfts', walletAddress);\n const cached = this.getCache<DealerNftData[]>(cacheKey);\n if (cached) return cached;\n\n try {\n const result = await this.indexerClient.getDealers({\n owner: walletAddress,\n });\n\n const nfts = result.data ?? [];\n this.setCache(cacheKey, nfts);\n return nfts;\n } catch (error) {\n throw new Error(\n `Failed to get dealer NFTs: ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n }\n\n /**\n * Get dealer's dashboard (all markets for their NFTs) with caching.\n * Fetches dealer NFTs and then all markets for each NFT in parallel.\n * Results are cached for the configured TTL (default: 5 minutes).\n *\n * @param walletAddress - Dealer's wallet address\n * @returns Object containing the dealer's NFTs and their aggregated markets (deduplicated)\n * @throws Error if the API request fails\n */\n public async getDealerDashboard(walletAddress: string): Promise<{\n nfts: DealerNftData[];\n markets: MarketData[];\n }> {\n const cacheKey = this.getCacheKey('dealer-dashboard', walletAddress);\n const cached = this.getCache<{ nfts: DealerNftData[]; markets: MarketData[] }>(cacheKey);\n if (cached) return cached;\n\n try {\n // Get dealer NFTs\n const nfts = await this.getDealerNFTs(walletAddress);\n\n // Get markets for each NFT\n const marketPromises = nfts.map(nft => this.indexerClient.getDealerMarkets(nft.id));\n const marketResults = await Promise.all(marketPromises);\n\n // Flatten markets and remove duplicates\n const marketsMap = new Map<string, MarketData>();\n marketResults.forEach(result => {\n if (result.data) {\n result.data.forEach(market => marketsMap.set(market.id, market));\n }\n });\n const markets = Array.from(marketsMap.values());\n\n const result = { nfts, markets };\n this.setCache(cacheKey, result);\n return result;\n } catch (error) {\n throw new Error(\n `Failed to get dealer dashboard: ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n }\n\n /**\n * Get complete market details including predictions and history with caching.\n * Fetches market, predictions, and history in parallel.\n * Results are cached for the configured TTL (default: 5 minutes).\n *\n * @param marketId - Chain-prefixed market ID (e.g., '1-market-123')\n * @returns Object containing the market data, its predictions, and state history\n * @throws Error if the market is not found or the API request fails\n */\n public async getMarketDetails(marketId: string): Promise<{\n market: MarketData;\n predictions: PredictionData[];\n history: MarketStateHistoryData[];\n }> {\n const cacheKey = this.getCacheKey('market-details', marketId);\n const cached = this.getCache<{\n market: MarketData;\n predictions: PredictionData[];\n history: MarketStateHistoryData[];\n }>(cacheKey);\n if (cached) return cached;\n\n try {\n const [marketResult, predictionsResult, historyResult] = await Promise.all([\n this.indexerClient.getMarket(marketId),\n this.indexerClient.getMarketPredictions(marketId),\n this.indexerClient.getMarketHistory(marketId),\n ]);\n\n if (!marketResult.data) {\n throw new Error('Market not found');\n }\n\n const result = {\n market: marketResult.data,\n predictions: predictionsResult.data || [],\n history: historyResult.data || [],\n };\n\n this.setCache(cacheKey, result);\n return result;\n } catch (error) {\n throw new Error(\n `Failed to get market details: ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n }\n\n /**\n * Get user's betting history (active + past bets) with caching.\n * Fetches active and claimed predictions in parallel (limited to 100 each).\n * Results are cached for the configured TTL (default: 5 minutes).\n *\n * @param walletAddress - User's wallet address\n * @returns Object containing arrays of active (unclaimed) and claimed predictions\n * @throws Error if the API request fails\n */\n public async getUserBettingHistory(walletAddress: string): Promise<{\n active: PredictionData[];\n claimed: PredictionData[];\n }> {\n const cacheKey = this.getCacheKey('user-betting-history', walletAddress);\n const cached = this.getCache<{ active: PredictionData[]; claimed: PredictionData[] }>(cacheKey);\n if (cached) return cached;\n\n try {\n const [activeResult, claimedResult] = await Promise.all([\n this.indexerClient.getPredictions({\n user: walletAddress,\n claimed: false,\n limit: 100,\n }),\n this.indexerClient.getPredictions({\n user: walletAddress,\n claimed: true,\n limit: 100,\n }),\n ]);\n\n const result = {\n active: activeResult.data || [],\n claimed: claimedResult.data || [],\n };\n\n this.setCache(cacheKey, result);\n return result;\n } catch (error) {\n throw new Error(\n `Failed to get user betting history: ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n }\n\n /**\n * Get market from a prediction (navigate from bet to market).\n * First fetches the prediction to get the marketId, then fetches the market.\n * Note: this method does not use caching since it involves two sequential requests.\n *\n * @param predictionId - Chain-prefixed prediction ID\n * @returns The market data if found, or null if the prediction has no associated market\n * @throws Error if the API request fails\n */\n public async getMarketFromPrediction(predictionId: string): Promise<MarketData | null> {\n try {\n const predictionResult = await this.indexerClient.getPrediction(predictionId);\n if (!predictionResult.data) {\n return null;\n }\n\n const marketResult = await this.indexerClient.getMarket(predictionResult.data.marketId);\n return marketResult.data || null;\n } catch (error) {\n throw new Error(\n `Failed to get market from prediction: ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n }\n\n /**\n * Get market statistics with caching.\n * Results are cached for the configured TTL (default: 5 minutes).\n *\n * @returns Aggregate market statistics wrapped in an API response\n * @throws Error if the API request fails\n */\n public async getMarketStats(): Promise<ApiResponse<MarketStatsData>> {\n const cacheKey = this.getCacheKey('market-stats');\n const cached = this.getCache<ApiResponse<MarketStatsData>>(cacheKey);\n if (cached) return cached;\n\n try {\n const result = await this.indexerClient.getMarketStats();\n this.setCache(cacheKey, result);\n return result;\n } catch (error) {\n throw new Error(\n `Failed to get market stats: ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n }\n\n /**\n * Clear the entire internal cache.\n * Use {@link invalidateCache} for targeted invalidation.\n */\n public clearCache(): void {\n this.cache.clear();\n }\n\n /**\n * Invalidate cache entries whose keys start with the given prefix.\n * Useful for targeted cache invalidation when SSE events indicate\n * specific data has changed (e.g., invalidating all market-related caches).\n *\n * @param prefix - The cache key prefix to match (e.g., 'active-markets', 'dealer-dashboard')\n * @returns The number of cache entries that were invalidated\n *\n * @example\n * ```ts\n * // Invalidate all market-related caches\n * service.invalidateCache('active-markets');\n *\n * // Invalidate all caches for a specific user\n * service.invalidateCache('user-predictions:0x123...');\n * ```\n */\n public invalidateCache(prefix: string): number {\n let count = 0;\n for (const key of this.cache.keys()) {\n if (key.startsWith(prefix)) {\n this.cache.delete(key);\n count++;\n }\n }\n return count;\n }\n\n /**\n * Get the underlying IndexerClient for direct API access.\n *\n * @returns The IndexerClient instance used by this service\n */\n public getClient(): IndexerClient {\n return this.indexerClient;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAKA,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAKA,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,UAAU,CAAC","sourcesContent":["/**\n * React hooks for Heavymath Prediction Market Indexer API\n */\n\n// Market hooks\nexport * from './useMarkets';\n\n// Prediction hooks\nexport * from './usePredictions';\n\n// Dealer NFT hooks\nexport * from './useDealers';\n\n// Fee withdrawal hooks\nexport * from './useWithdrawals';\n\n// Oracle hooks\nexport * from './useOracle';\n\n// Analytics and stats hooks\nexport * from './useStats';\n\n// Favorites hooks\nexport * from './useFavorites';\n\n// Real-time SSE hooks\nexport * from './useSSE';\n"]}
@@ -1,15 +1,15 @@
1
1
  import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
2
- import type { DealerNFT, DealerPermission, Market, PaginatedResponse, ApiResponse, DealerFilters } from '../types';
2
+ import type { DealerNftData, DealerPermissionData, MarketData, PaginatedResponse, ApiResponse, DealerFilters } from '../types';
3
3
  import { IndexerClient } from '../network/IndexerClient';
4
- export declare function useDealers(client: IndexerClient, filters?: DealerFilters, options?: Omit<UseQueryOptions<PaginatedResponse<DealerNFT>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<DealerNFT>>;
4
+ export declare function useDealers(client: IndexerClient, filters?: DealerFilters, options?: Omit<UseQueryOptions<PaginatedResponse<DealerNftData>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<DealerNftData>>;
5
5
  export declare function useIsDealer(client: IndexerClient, walletAddress: string | undefined, options?: Omit<UseQueryOptions<boolean>, 'queryKey' | 'queryFn'>): UseQueryResult<boolean>;
6
- export declare function useDealerNFTs(client: IndexerClient, walletAddress: string | undefined, options?: Omit<UseQueryOptions<DealerNFT[]>, 'queryKey' | 'queryFn'>): UseQueryResult<DealerNFT[]>;
7
- export declare function useDealer(client: IndexerClient, dealerId: string | undefined, options?: Omit<UseQueryOptions<ApiResponse<DealerNFT>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<DealerNFT>>;
8
- export declare function useDealerPermissions(client: IndexerClient, dealerId: string | undefined, options?: Omit<UseQueryOptions<ApiResponse<DealerPermission[]>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<DealerPermission[]>>;
9
- export declare function useDealerMarkets(client: IndexerClient, dealerId: string | undefined, options?: Omit<UseQueryOptions<ApiResponse<Market[]>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<Market[]>>;
6
+ export declare function useDealerNFTs(client: IndexerClient, walletAddress: string | undefined, options?: Omit<UseQueryOptions<DealerNftData[]>, 'queryKey' | 'queryFn'>): UseQueryResult<DealerNftData[]>;
7
+ export declare function useDealer(client: IndexerClient, dealerId: string | undefined, options?: Omit<UseQueryOptions<ApiResponse<DealerNftData>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<DealerNftData>>;
8
+ export declare function useDealerPermissions(client: IndexerClient, dealerId: string | undefined, options?: Omit<UseQueryOptions<ApiResponse<DealerPermissionData[]>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<DealerPermissionData[]>>;
9
+ export declare function useDealerMarkets(client: IndexerClient, dealerId: string | undefined, options?: Omit<UseQueryOptions<ApiResponse<MarketData[]>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<MarketData[]>>;
10
10
  export declare function useDealerDashboard(client: IndexerClient, walletAddress: string | undefined): {
11
- nfts: UseQueryResult<DealerNFT[]>;
12
- markets: UseQueryResult<Market[]>;
11
+ nfts: UseQueryResult<DealerNftData[]>;
12
+ markets: UseQueryResult<MarketData[]>;
13
13
  isLoading: boolean;
14
14
  isError: boolean;
15
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useDealers.d.ts","sourceRoot":"","sources":["../../src/hooks/useDealers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAWzD,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACpF,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAU9C;AAWD,wBAAgB,WAAW,CACzB,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC/D,cAAc,CAAC,OAAO,CAAC,CAazB;AAWD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACnE,cAAc,CAAC,SAAS,EAAE,CAAC,CAa7B;AAWD,wBAAgB,SAAS,CACvB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC9E,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAYxC;AAWD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACvF,cAAc,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAYjD;AAWD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC7E,cAAc,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAYvC;AAWD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC;IACD,IAAI,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC;IAClC,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB,CAgCA"}
1
+ {"version":3,"file":"useDealers.d.ts","sourceRoot":"","sources":["../../src/hooks/useDealers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAWzD,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACxF,cAAc,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAUlD;AAWD,wBAAgB,WAAW,CACzB,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC/D,cAAc,CAAC,OAAO,CAAC,CAazB;AAWD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACvE,cAAc,CAAC,aAAa,EAAE,CAAC,CAajC;AAWD,wBAAgB,SAAS,CACvB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAClF,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAY5C;AAWD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC3F,cAAc,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAYrD;AAWD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACjF,cAAc,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAY3C;AAWD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC;IACD,IAAI,EAAE,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC;IACtC,OAAO,EAAE,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB,CAgCA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDealers.js","sourceRoot":"","sources":["../../src/hooks/useDealers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDealers.js","sourceRoot":"","sources":["../../src/hooks/useDealers.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * React hooks for dealer NFT operations\n * Uses React Query for caching and data fetching\n */\n\nimport { useQuery, UseQueryOptions, UseQueryResult } from '@tanstack/react-query';\nimport type {\n DealerNftData,\n DealerPermissionData,\n MarketData,\n PaginatedResponse,\n ApiResponse,\n DealerFilters,\n} from '../types';\nimport { IndexerClient } from '../network/IndexerClient';\n\n/**\n * Get all dealer NFTs with optional filtering\n * GET /api/dealers\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useDealers(client, { owner: '0x123...' });\n * ```\n */\nexport function useDealers(\n client: IndexerClient,\n filters?: DealerFilters,\n options?: Omit<UseQueryOptions<PaginatedResponse<DealerNftData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<PaginatedResponse<DealerNftData>> {\n return useQuery({\n queryKey: ['heavymath', 'dealers', filters],\n queryFn: async () => {\n return await client.getDealers(filters);\n },\n staleTime: 5 * 60 * 1000, // 5 minutes - NFT ownership doesn't change often\n retry: false,\n ...options,\n });\n}\n\n/**\n * Check if wallet is a dealer (owns dealer NFTs)\n * Convenience hook for checking dealer status\n *\n * @example\n * ```tsx\n * const { data: isDealer, isLoading } = useIsDealer(client, '0x123...');\n * ```\n */\nexport function useIsDealer(\n client: IndexerClient,\n walletAddress: string | undefined,\n options?: Omit<UseQueryOptions<boolean>, 'queryKey' | 'queryFn'>\n): UseQueryResult<boolean> {\n return useQuery({\n queryKey: ['heavymath', 'is-dealer', walletAddress],\n queryFn: async () => {\n if (!walletAddress) return false;\n const result = await client.getDealers({ owner: walletAddress });\n return (result.data?.length ?? 0) > 0;\n },\n enabled: !!walletAddress,\n staleTime: 5 * 60 * 1000,\n retry: false,\n ...options,\n });\n}\n\n/**\n * Get dealer NFTs owned by a wallet\n * Convenience hook for getting user's dealer NFTs\n *\n * @example\n * ```tsx\n * const { data: nfts, isLoading } = useDealerNFTs(client, '0x123...');\n * ```\n */\nexport function useDealerNFTs(\n client: IndexerClient,\n walletAddress: string | undefined,\n options?: Omit<UseQueryOptions<DealerNftData[]>, 'queryKey' | 'queryFn'>\n): UseQueryResult<DealerNftData[]> {\n return useQuery({\n queryKey: ['heavymath', 'dealer-nfts', walletAddress],\n queryFn: async () => {\n if (!walletAddress) return [];\n const result = await client.getDealers({ owner: walletAddress });\n return result.data ?? [];\n },\n enabled: !!walletAddress,\n staleTime: 5 * 60 * 1000,\n retry: false,\n ...options,\n });\n}\n\n/**\n * Get a specific dealer NFT by ID\n * GET /api/dealers/:id\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useDealer(client, '1-1');\n * ```\n */\nexport function useDealer(\n client: IndexerClient,\n dealerId: string | undefined,\n options?: Omit<UseQueryOptions<ApiResponse<DealerNftData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<ApiResponse<DealerNftData>> {\n return useQuery({\n queryKey: ['heavymath', 'dealer', dealerId],\n queryFn: async () => {\n if (!dealerId) throw new Error('Dealer ID is required');\n return await client.getDealer(dealerId);\n },\n enabled: !!dealerId,\n staleTime: 5 * 60 * 1000,\n retry: false,\n ...options,\n });\n}\n\n/**\n * Get permissions for a specific dealer NFT\n * GET /api/dealers/:id/permissions\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useDealerPermissions(client, '1-1');\n * ```\n */\nexport function useDealerPermissions(\n client: IndexerClient,\n dealerId: string | undefined,\n options?: Omit<UseQueryOptions<ApiResponse<DealerPermissionData[]>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<ApiResponse<DealerPermissionData[]>> {\n return useQuery({\n queryKey: ['heavymath', 'dealer-permissions', dealerId],\n queryFn: async () => {\n if (!dealerId) throw new Error('Dealer ID is required');\n return await client.getDealerPermissions(dealerId);\n },\n enabled: !!dealerId,\n staleTime: 10 * 60 * 1000, // 10 minutes - permissions rarely change\n retry: false,\n ...options,\n });\n}\n\n/**\n * Get all markets created by a specific dealer NFT\n * GET /api/dealers/:id/markets\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useDealerMarkets(client, '1-1');\n * ```\n */\nexport function useDealerMarkets(\n client: IndexerClient,\n dealerId: string | undefined,\n options?: Omit<UseQueryOptions<ApiResponse<MarketData[]>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<ApiResponse<MarketData[]>> {\n return useQuery({\n queryKey: ['heavymath', 'dealer-markets', dealerId],\n queryFn: async () => {\n if (!dealerId) throw new Error('Dealer ID is required');\n return await client.getDealerMarkets(dealerId);\n },\n enabled: !!dealerId,\n staleTime: 2 * 60 * 1000, // 2 minutes\n retry: false,\n ...options,\n });\n}\n\n/**\n * Get complete dealer dashboard (NFTs + all markets)\n * Convenience hook that combines NFTs and their markets\n *\n * @example\n * ```tsx\n * const { nfts, markets, isLoading } = useDealerDashboard(client, '0x123...');\n * ```\n */\nexport function useDealerDashboard(\n client: IndexerClient,\n walletAddress: string | undefined\n): {\n nfts: UseQueryResult<DealerNftData[]>;\n markets: UseQueryResult<MarketData[]>;\n isLoading: boolean;\n isError: boolean;\n} {\n const nfts = useDealerNFTs(client, walletAddress);\n\n const markets = useQuery({\n queryKey: ['heavymath', 'dealer-dashboard-markets', walletAddress],\n queryFn: async () => {\n if (!nfts.data || nfts.data.length === 0) return [];\n\n const marketPromises = nfts.data.map(nft => client.getDealerMarkets(nft.id));\n const marketResults = await Promise.all(marketPromises);\n\n // Flatten markets and remove duplicates\n const marketsMap = new Map<string, MarketData>();\n marketResults.forEach(result => {\n if (result.data) {\n result.data.forEach(market => marketsMap.set(market.id, market));\n }\n });\n\n return Array.from(marketsMap.values());\n },\n enabled: !!walletAddress && !!nfts.data && nfts.data.length > 0,\n staleTime: 2 * 60 * 1000,\n retry: false,\n });\n\n return {\n nfts,\n markets,\n isLoading: nfts.isLoading || markets.isLoading,\n isError: nfts.isError || markets.isError,\n };\n}\n"]}
@@ -27,5 +27,5 @@ export declare function useIsFavorite(client: IndexerClient, walletAddress: stri
27
27
  isLoading: boolean;
28
28
  toggleFavorite: () => Promise<void>;
29
29
  };
30
- export declare function useFavoritesStoreHook(): import("../stores/favorites-store").FavoritesState;
30
+ export declare function useFavoritesStoreHook(): import("..").FavoritesState;
31
31
  //# sourceMappingURL=useFavorites.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFavorites.d.ts","sourceRoot":"","sources":["../../src/hooks/useFavorites.ts"],"names":[],"mappings":"AAMA,OAAO,EAIL,eAAe,EACf,cAAc,EACd,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAwBzD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,sBAAsB,EAChC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC7F;IACD,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,KAAK,EAAE,cAAc,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC7D,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,iBAAiB,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC;IAC9F,cAAc,EAAE,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACpE,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAyIA;AAcD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;eAnKnF,kBAAkB,EAAE;WACxB,cAAc,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;eACjD,OAAO;aACT,OAAO;WACT,KAAK,GAAG,IAAI;iBACN,iBAAiB,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC;oBAC7E,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC;aAC1D,MAAM,IAAI;EA+JpB;AAeD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,IAAI,EAAE,qBAAqB,GAC1B;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC,CA2BA;AAYD,wBAAgB,qBAAqB,uDAEpC"}
1
+ {"version":3,"file":"useFavorites.d.ts","sourceRoot":"","sources":["../../src/hooks/useFavorites.ts"],"names":[],"mappings":"AAMA,OAAO,EAIL,eAAe,EACf,cAAc,EACd,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAwBzD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,sBAAsB,EAChC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC7F;IACD,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,KAAK,EAAE,cAAc,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC7D,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,iBAAiB,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC;IAC9F,cAAc,EAAE,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACpE,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAyIA;AAcD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;eAnKnF,kBAAkB,EAAE;WACxB,cAAc,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;eACjD,OAAO;aACT,OAAO;WACT,KAAK,GAAG,IAAI;iBACN,iBAAiB,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,qBAAqB,CAAC;oBAC7E,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC;aAC1D,MAAM,IAAI;EA+JpB;AAeD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,IAAI,EAAE,qBAAqB,GAC1B;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC,CA2BA;AAYD,wBAAgB,qBAAqB,gCAEpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFavorites.js","sourceRoot":"","sources":["../../src/hooks/useFavorites.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useFavorites.js","sourceRoot":"","sources":["../../src/hooks/useFavorites.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * React hooks for wallet favorites operations\n * Uses Zustand for local persistence and React Query for API sync\n */\n\nimport { useCallback, useEffect } from 'react';\nimport {\n useQuery,\n useMutation,\n useQueryClient,\n UseQueryOptions,\n UseQueryResult,\n UseMutationResult,\n} from '@tanstack/react-query';\nimport type {\n WalletFavoriteData,\n PaginatedResponse,\n ApiResponse,\n WalletFavoritesFilters,\n CreateFavoriteRequest,\n} from '../types';\nimport { IndexerClient } from '../network/IndexerClient';\nimport { useFavoritesStore } from '../stores/favorites-store';\n\n/**\n * Hook for managing wallet favorites\n * Uses Zustand for local persistence with optimistic updates\n *\n * @example\n * ```tsx\n * const { favorites, isLoading, addFavorite, removeFavorite, refresh } = useFavorites(\n * client,\n * '0x123...'\n * );\n *\n * // Add a favorite (optimistic update)\n * await addFavorite({ category: 'sports', subcategory: 'soccer', type: 'team', id: 'team-123' });\n *\n * // Remove a favorite (optimistic update)\n * await removeFavorite(favoriteId);\n *\n * // Manually refresh from server\n * refresh();\n * ```\n */\nexport function useFavorites(\n client: IndexerClient,\n walletAddress: string | undefined,\n filters?: WalletFavoritesFilters,\n options?: Omit<UseQueryOptions<PaginatedResponse<WalletFavoriteData>>, 'queryKey' | 'queryFn'>\n): {\n favorites: WalletFavoriteData[];\n query: UseQueryResult<PaginatedResponse<WalletFavoriteData>>;\n isLoading: boolean;\n isError: boolean;\n error: Error | null;\n addFavorite: UseMutationResult<ApiResponse<WalletFavoriteData>, Error, CreateFavoriteRequest>;\n removeFavorite: UseMutationResult<ApiResponse<void>, Error, number>;\n refresh: () => void;\n} {\n const queryClient = useQueryClient();\n const queryKey = ['heavymath', 'favorites', walletAddress, filters];\n\n // Zustand store actions\n const {\n getFavorites,\n setFavorites,\n addFavoriteOptimistic,\n updateFavoriteFromServer,\n removeFavoriteOptimistic,\n rollbackAdd,\n rollbackRemove,\n findFavorite,\n needsRefresh,\n } = useFavoritesStore();\n\n // Get favorites from store (for optimistic UI)\n const storedFavorites = walletAddress ? getFavorites(walletAddress) : [];\n\n // Filter stored favorites if filters are provided\n const filteredFavorites = storedFavorites.filter(fav => {\n if (filters?.category && fav.category !== filters.category) return false;\n if (filters?.subcategory && fav.subcategory !== filters.subcategory) return false;\n if (filters?.type && fav.type !== filters.type) return false;\n return true;\n });\n\n // Query for fetching favorites from server\n const query = useQuery({\n queryKey,\n queryFn: async () => {\n if (!walletAddress) {\n return {\n success: true,\n data: [],\n pagination: {\n totalCount: 0,\n pageSize: filters?.limit ?? 50,\n hasNextPage: false,\n hasPreviousPage: false,\n },\n timestamp: new Date().toISOString(),\n } as PaginatedResponse<WalletFavoriteData>;\n }\n const response = await client.getFavorites(walletAddress, filters);\n // Update store with server data (without filters to get all favorites)\n if (!filters) {\n setFavorites(walletAddress, response.data ?? []);\n }\n return response;\n },\n staleTime: 2 * 60 * 1000, // 2 minutes\n retry: false,\n // Only fetch if store needs refresh or no data\n enabled: walletAddress ? needsRefresh(walletAddress) || storedFavorites.length === 0 : false,\n ...options,\n });\n\n // Sync store when query succeeds (for filtered queries)\n useEffect(() => {\n if (query.data?.data && walletAddress && !filters) {\n setFavorites(walletAddress, query.data.data);\n }\n }, [query.data, walletAddress, filters, setFavorites]);\n\n // Refresh function - invalidates query and forces refetch\n const refresh = useCallback(() => {\n if (walletAddress) {\n // Clear the lastFetched to force refresh\n queryClient.invalidateQueries({ queryKey });\n }\n }, [queryClient, queryKey, walletAddress]);\n\n // Mutation for adding a favorite with optimistic update\n const addFavorite = useMutation({\n mutationFn: async (favorite: CreateFavoriteRequest) => {\n if (!walletAddress) {\n throw new Error('Wallet address is required to add favorites');\n }\n return await client.addFavorite(walletAddress, favorite);\n },\n onMutate: async (favorite: CreateFavoriteRequest) => {\n if (!walletAddress) return;\n // Optimistic update\n addFavoriteOptimistic(walletAddress, favorite);\n return { favorite };\n },\n onSuccess: (response, _favorite) => {\n if (!walletAddress || !response.data) return;\n // Update with server response (real ID)\n updateFavoriteFromServer(walletAddress, response.data);\n },\n onError: (_error, favorite) => {\n if (!walletAddress) return;\n // Rollback optimistic update\n rollbackAdd(walletAddress, favorite.id);\n },\n });\n\n // Mutation for removing a favorite with optimistic update\n const removeFavorite = useMutation({\n mutationFn: async (favoriteId: number) => {\n if (!walletAddress) {\n throw new Error('Wallet address is required to remove favorites');\n }\n return await client.removeFavorite(walletAddress, favoriteId);\n },\n onMutate: async (favoriteId: number) => {\n if (!walletAddress) return;\n // Save favorite for potential rollback\n const favorite = findFavorite(\n walletAddress,\n storedFavorites.find(f => f.id === favoriteId)?.itemId ?? ''\n );\n // Optimistic update\n removeFavoriteOptimistic(walletAddress, favoriteId);\n return { favorite };\n },\n onError: (_error, _favoriteId, context) => {\n if (!walletAddress || !context?.favorite) return;\n // Rollback optimistic update\n rollbackRemove(walletAddress, context.favorite);\n },\n });\n\n return {\n // Use filtered favorites from store for immediate UI updates\n favorites: filteredFavorites,\n query,\n isLoading: query.isLoading && storedFavorites.length === 0,\n isError: query.isError,\n error: query.error,\n addFavorite,\n removeFavorite,\n refresh,\n };\n}\n\n/**\n * Get favorites for a specific category\n *\n * @example\n * ```tsx\n * const { favorites, addFavorite, removeFavorite } = useCategoryFavorites(\n * client,\n * '0x123...',\n * 'sports'\n * );\n * ```\n */\nexport function useCategoryFavorites(\n client: IndexerClient,\n walletAddress: string | undefined,\n category: string,\n options?: Omit<UseQueryOptions<PaginatedResponse<WalletFavoriteData>>, 'queryKey' | 'queryFn'>\n) {\n return useFavorites(client, walletAddress, { category }, options);\n}\n\n/**\n * Check if an item is favorited\n * Uses Zustand store for immediate response\n *\n * @example\n * ```tsx\n * const { isFavorite, toggleFavorite } = useIsFavorite(\n * client,\n * '0x123...',\n * { category: 'sports', subcategory: 'soccer', type: 'team', id: 'team-123' }\n * );\n * ```\n */\nexport function useIsFavorite(\n client: IndexerClient,\n walletAddress: string | undefined,\n item: CreateFavoriteRequest\n): {\n isFavorite: boolean;\n favoriteId: number | undefined;\n isLoading: boolean;\n toggleFavorite: () => Promise<void>;\n} {\n const { isFavorite: checkIsFavorite, findFavorite } = useFavoritesStore();\n\n // Use store directly for immediate response\n const isFavorited = walletAddress ? checkIsFavorite(walletAddress, item.id) : false;\n const existingFavorite = walletAddress ? findFavorite(walletAddress, item.id) : undefined;\n\n const { addFavorite, removeFavorite, isLoading } = useFavorites(client, walletAddress, {\n category: item.category,\n subcategory: item.subcategory,\n type: item.type,\n });\n\n const toggleFavorite = useCallback(async () => {\n if (existingFavorite) {\n await removeFavorite.mutateAsync(existingFavorite.id);\n } else {\n await addFavorite.mutateAsync(item);\n }\n }, [existingFavorite, addFavorite, removeFavorite, item]);\n\n return {\n isFavorite: isFavorited,\n favoriteId: existingFavorite?.id,\n isLoading: isLoading || addFavorite.isPending || removeFavorite.isPending,\n toggleFavorite,\n };\n}\n\n/**\n * Hook to access the favorites store directly\n * Useful for reading favorites without API calls\n *\n * @example\n * ```tsx\n * const { getFavorites, isFavorite, clearAll } = useFavoritesStoreHook();\n * const favorites = getFavorites('0x123...');\n * ```\n */\nexport function useFavoritesStoreHook() {\n return useFavoritesStore();\n}\n"]}
@@ -1,15 +1,15 @@
1
1
  import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
2
- import type { Market, Prediction, StateHistory, PaginatedResponse, ApiResponse, MarketFilters } from '../types';
2
+ import type { MarketData, PredictionData, MarketStateHistoryData, PaginatedResponse, ApiResponse, MarketFilters } from '../types';
3
3
  import { IndexerClient } from '../network/IndexerClient';
4
- export declare function useMarkets(client: IndexerClient, filters?: MarketFilters, options?: Omit<UseQueryOptions<PaginatedResponse<Market>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<Market>>;
5
- export declare function useActiveMarkets(client: IndexerClient, limit?: number, options?: Omit<UseQueryOptions<PaginatedResponse<Market>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<Market>>;
6
- export declare function useMarket(client: IndexerClient, marketId: string | undefined, options?: Omit<UseQueryOptions<ApiResponse<Market>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<Market>>;
7
- export declare function useMarketPredictions(client: IndexerClient, marketId: string | undefined, options?: Omit<UseQueryOptions<ApiResponse<Prediction[]>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<Prediction[]>>;
8
- export declare function useMarketHistory(client: IndexerClient, marketId: string | undefined, options?: Omit<UseQueryOptions<ApiResponse<StateHistory[]>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<StateHistory[]>>;
4
+ export declare function useMarkets(client: IndexerClient, filters?: MarketFilters, options?: Omit<UseQueryOptions<PaginatedResponse<MarketData>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<MarketData>>;
5
+ export declare function useActiveMarkets(client: IndexerClient, limit?: number, options?: Omit<UseQueryOptions<PaginatedResponse<MarketData>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<MarketData>>;
6
+ export declare function useMarket(client: IndexerClient, marketId: string | undefined, options?: Omit<UseQueryOptions<ApiResponse<MarketData>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<MarketData>>;
7
+ export declare function useMarketPredictions(client: IndexerClient, marketId: string | undefined, options?: Omit<UseQueryOptions<ApiResponse<PredictionData[]>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<PredictionData[]>>;
8
+ export declare function useMarketHistory(client: IndexerClient, marketId: string | undefined, options?: Omit<UseQueryOptions<ApiResponse<MarketStateHistoryData[]>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<MarketStateHistoryData[]>>;
9
9
  export declare function useMarketDetails(client: IndexerClient, marketId: string | undefined): {
10
- market: UseQueryResult<ApiResponse<Market>>;
11
- predictions: UseQueryResult<ApiResponse<Prediction[]>>;
12
- history: UseQueryResult<ApiResponse<StateHistory[]>>;
10
+ market: UseQueryResult<ApiResponse<MarketData>>;
11
+ predictions: UseQueryResult<ApiResponse<PredictionData[]>>;
12
+ history: UseQueryResult<ApiResponse<MarketStateHistoryData[]>>;
13
13
  isLoading: boolean;
14
14
  isError: boolean;
15
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useMarkets.d.ts","sourceRoot":"","sources":["../../src/hooks/useMarkets.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAczD,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACjF,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAU3C;AAWD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,KAAK,GAAE,MAAW,EAClB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACjF,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAS3C;AAWD,wBAAgB,SAAS,CACvB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC3E,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAYrC;AAWD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACjF,cAAc,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAY3C;AAWD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACnF,cAAc,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,CAY7C;AAWD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B;IACD,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvD,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACrD,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB,CAYA"}
1
+ {"version":3,"file":"useMarkets.d.ts","sourceRoot":"","sources":["../../src/hooks/useMarkets.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAmBzD,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACrF,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAU/C;AAgBD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,KAAK,GAAE,MAAW,EAClB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACrF,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAS/C;AAgBD,wBAAgB,SAAS,CACvB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC/E,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAYzC;AAgBD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACrF,cAAc,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,CAY/C;AAgBD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC7F,cAAc,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAYvD;AAeD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B;IACD,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAChD,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC3D,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;IAC/D,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB,CAYA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMarkets.js","sourceRoot":"","sources":["../../src/hooks/useMarkets.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAmC,MAAM,uBAAuB,CAAC;AAuBlF,MAAM,UAAU,UAAU,CACxB,MAAqB,EACrB,OAAuB,EACvB,OAAkF;IAElF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC;QAC3C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,gBAAgB,CAC9B,MAAqB,EACrB,QAAgB,EAAE,EAClB,OAAkF;IAElF,OAAO,UAAU,CACf,MAAM,EACN;QACE,MAAM,EAAE,QAAQ;QAChB,KAAK;KACN,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,SAAS,CACvB,MAAqB,EACrB,QAA4B,EAC5B,OAA4E;IAE5E,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAC3C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACxD,OAAO,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,QAAQ;QACnB,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,QAA4B,EAC5B,OAAkF;IAElF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,oBAAoB,EAAE,QAAQ,CAAC;QACvD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACxD,OAAO,MAAM,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,QAAQ;QACnB,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,gBAAgB,CAC9B,MAAqB,EACrB,QAA4B,EAC5B,OAAoF;IAEpF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,QAAQ,CAAC;QACnD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACxD,OAAO,MAAM,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,QAAQ;QACnB,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,gBAAgB,CAC9B,MAAqB,EACrB,QAA4B;IAQ5B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEnD,OAAO;QACL,MAAM;QACN,WAAW;QACX,OAAO;QACP,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS;QACzE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO;KAClE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useMarkets.js","sourceRoot":"","sources":["../../src/hooks/useMarkets.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * React hooks for market operations\n * Uses React Query for caching and data fetching\n */\n\nimport { useQuery, UseQueryOptions, UseQueryResult } from '@tanstack/react-query';\nimport type {\n MarketData,\n PredictionData,\n MarketStateHistoryData,\n PaginatedResponse,\n ApiResponse,\n MarketFilters,\n} from '../types';\nimport { IndexerClient } from '../network/IndexerClient';\n\n/**\n * Get all markets with optional filtering.\n * GET /api/markets\n *\n * @param client - IndexerClient instance (from useIndexer() context)\n * @param filters - Optional market filters (status, dealer, category, limit, offset)\n * @param options - Additional React Query options (excluding queryKey and queryFn)\n * @returns React Query result with paginated market data\n *\n * @example\n * ```tsx\n * const { data, isLoading, error } = useMarkets(\n * client,\n * { status: 'Active', limit: 10 }\n * );\n * ```\n */\nexport function useMarkets(\n client: IndexerClient,\n filters?: MarketFilters,\n options?: Omit<UseQueryOptions<PaginatedResponse<MarketData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<PaginatedResponse<MarketData>> {\n return useQuery({\n queryKey: ['heavymath', 'markets', filters],\n queryFn: async () => {\n return await client.getMarkets(filters);\n },\n staleTime: 2 * 60 * 1000, // 2 minutes\n retry: false,\n ...options,\n });\n}\n\n/**\n * Get active markets only.\n * Convenience hook for the most common use case.\n *\n * @param client - IndexerClient instance\n * @param limit - Maximum number of markets to return (default: 50)\n * @param options - Additional React Query options\n * @returns React Query result with paginated active market data\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useActiveMarkets(client, 20);\n * ```\n */\nexport function useActiveMarkets(\n client: IndexerClient,\n limit: number = 50,\n options?: Omit<UseQueryOptions<PaginatedResponse<MarketData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<PaginatedResponse<MarketData>> {\n return useMarkets(\n client,\n {\n status: 'Active',\n limit,\n },\n options\n );\n}\n\n/**\n * Get a specific market by ID.\n * GET /api/markets/:id\n *\n * @param client - IndexerClient instance\n * @param marketId - The chain-prefixed market ID, or undefined to disable the query\n * @param options - Additional React Query options\n * @returns React Query result with the market data\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useMarket(client, '1-market-123');\n * ```\n */\nexport function useMarket(\n client: IndexerClient,\n marketId: string | undefined,\n options?: Omit<UseQueryOptions<ApiResponse<MarketData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<ApiResponse<MarketData>> {\n return useQuery({\n queryKey: ['heavymath', 'market', marketId],\n queryFn: async () => {\n if (!marketId) throw new Error('Market ID is required');\n return await client.getMarket(marketId);\n },\n enabled: !!marketId,\n staleTime: 2 * 60 * 1000,\n retry: false,\n ...options,\n });\n}\n\n/**\n * Get all predictions for a specific market.\n * GET /api/markets/:id/predictions\n *\n * @param client - IndexerClient instance\n * @param marketId - The chain-prefixed market ID, or undefined to disable the query\n * @param options - Additional React Query options\n * @returns React Query result with the market's predictions\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useMarketPredictions(client, '1-market-123');\n * ```\n */\nexport function useMarketPredictions(\n client: IndexerClient,\n marketId: string | undefined,\n options?: Omit<UseQueryOptions<ApiResponse<PredictionData[]>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<ApiResponse<PredictionData[]>> {\n return useQuery({\n queryKey: ['heavymath', 'market-predictions', marketId],\n queryFn: async () => {\n if (!marketId) throw new Error('Market ID is required');\n return await client.getMarketPredictions(marketId);\n },\n enabled: !!marketId,\n staleTime: 1 * 60 * 1000, // 1 minute - predictions update frequently\n retry: false,\n ...options,\n });\n}\n\n/**\n * Get state transition history for a market.\n * GET /api/markets/:id/history\n *\n * @param client - IndexerClient instance\n * @param marketId - The chain-prefixed market ID, or undefined to disable the query\n * @param options - Additional React Query options\n * @returns React Query result with the market's state history entries\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useMarketHistory(client, '1-market-123');\n * ```\n */\nexport function useMarketHistory(\n client: IndexerClient,\n marketId: string | undefined,\n options?: Omit<UseQueryOptions<ApiResponse<MarketStateHistoryData[]>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<ApiResponse<MarketStateHistoryData[]>> {\n return useQuery({\n queryKey: ['heavymath', 'market-history', marketId],\n queryFn: async () => {\n if (!marketId) throw new Error('Market ID is required');\n return await client.getMarketHistory(marketId);\n },\n enabled: !!marketId,\n staleTime: 5 * 60 * 1000, // 5 minutes - history doesn't change often\n retry: false,\n ...options,\n });\n}\n\n/**\n * Get complete market details (market + predictions + history).\n * Convenience hook that combines multiple parallel requests.\n *\n * @param client - IndexerClient instance\n * @param marketId - The chain-prefixed market ID, or undefined to disable all queries\n * @returns An object containing separate query results for market, predictions, and history, plus aggregate isLoading and isError flags\n *\n * @example\n * ```tsx\n * const { market, predictions, history, isLoading } = useMarketDetails(client, '1-market-123');\n * ```\n */\nexport function useMarketDetails(\n client: IndexerClient,\n marketId: string | undefined\n): {\n market: UseQueryResult<ApiResponse<MarketData>>;\n predictions: UseQueryResult<ApiResponse<PredictionData[]>>;\n history: UseQueryResult<ApiResponse<MarketStateHistoryData[]>>;\n isLoading: boolean;\n isError: boolean;\n} {\n const market = useMarket(client, marketId);\n const predictions = useMarketPredictions(client, marketId);\n const history = useMarketHistory(client, marketId);\n\n return {\n market,\n predictions,\n history,\n isLoading: market.isLoading || predictions.isLoading || history.isLoading,\n isError: market.isError || predictions.isError || history.isError,\n };\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
2
- import type { OracleRequest, PaginatedResponse, ApiResponse, OracleFilters } from '../types';
2
+ import type { OracleRequestData, PaginatedResponse, ApiResponse, OracleFilters } from '../types';
3
3
  import { IndexerClient } from '../network/IndexerClient';
4
- export declare function useOracleRequests(client: IndexerClient, filters?: OracleFilters, options?: Omit<UseQueryOptions<PaginatedResponse<OracleRequest>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<OracleRequest>>;
5
- export declare function useOracleRequest(client: IndexerClient, requestId: string | undefined, options?: Omit<UseQueryOptions<ApiResponse<OracleRequest>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<OracleRequest>>;
6
- export declare function useMarketOracle(client: IndexerClient, marketId: string | undefined, options?: Omit<UseQueryOptions<PaginatedResponse<OracleRequest>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<OracleRequest>>;
7
- export declare function useTimedOutOracleRequests(client: IndexerClient, options?: Omit<UseQueryOptions<PaginatedResponse<OracleRequest>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<OracleRequest>>;
8
- export declare function usePendingOracleRequests(client: IndexerClient, options?: Omit<UseQueryOptions<PaginatedResponse<OracleRequest>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<OracleRequest>>;
4
+ export declare function useOracleRequests(client: IndexerClient, filters?: OracleFilters, options?: Omit<UseQueryOptions<PaginatedResponse<OracleRequestData>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<OracleRequestData>>;
5
+ export declare function useOracleRequest(client: IndexerClient, requestId: string | undefined, options?: Omit<UseQueryOptions<ApiResponse<OracleRequestData>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<OracleRequestData>>;
6
+ export declare function useMarketOracle(client: IndexerClient, marketId: string | undefined, options?: Omit<UseQueryOptions<PaginatedResponse<OracleRequestData>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<OracleRequestData>>;
7
+ export declare function useTimedOutOracleRequests(client: IndexerClient, options?: Omit<UseQueryOptions<PaginatedResponse<OracleRequestData>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<OracleRequestData>>;
8
+ export declare function usePendingOracleRequests(client: IndexerClient, options?: Omit<UseQueryOptions<PaginatedResponse<OracleRequestData>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<OracleRequestData>>;
9
9
  //# sourceMappingURL=useOracle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOracle.d.ts","sourceRoot":"","sources":["../../src/hooks/useOracle.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAWzD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACxF,cAAc,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAUlD;AAWD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAClF,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAY5C;AAWD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACxF,cAAc,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAWlD;AAWD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACxF,cAAc,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAQlD;AAWD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACxF,cAAc,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAQlD"}
1
+ {"version":3,"file":"useOracle.d.ts","sourceRoot":"","sources":["../../src/hooks/useOracle.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAWzD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC5F,cAAc,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAUtD;AAWD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACtF,cAAc,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAYhD;AAWD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC5F,cAAc,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAWtD;AAWD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC5F,cAAc,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAQtD;AAWD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC5F,cAAc,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAQtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"useOracle.js","sourceRoot":"","sources":["../../src/hooks/useOracle.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAmC,MAAM,uBAAuB,CAAC;AAalF,MAAM,UAAU,iBAAiB,CAC/B,MAAqB,EACrB,OAAuB,EACvB,OAAyF;IAEzF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,OAAO,CAAC;QACnD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;QACD,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,gBAAgB,CAC9B,MAAqB,EACrB,SAA6B,EAC7B,OAAmF;IAEnF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,CAAC;QACpD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC1D,OAAO,MAAM,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,SAAS;QACpB,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,eAAe,CAC7B,MAAqB,EACrB,QAA4B,EAC5B,OAAyF;IAEzF,OAAO,iBAAiB,CACtB,MAAM,EACN;QACE,MAAM,EAAE,QAAQ;KACjB,EACD;QACE,GAAG,OAAO;QACV,OAAO,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;KAClD,CACF,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,yBAAyB,CACvC,MAAqB,EACrB,OAAyF;IAEzF,OAAO,iBAAiB,CACtB,MAAM,EACN;QACE,QAAQ,EAAE,IAAI;KACf,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,wBAAwB,CACtC,MAAqB,EACrB,OAAyF;IAEzF,OAAO,iBAAiB,CACtB,MAAM,EACN;QACE,QAAQ,EAAE,KAAK;KAChB,EACD,OAAO,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useOracle.js","sourceRoot":"","sources":["../../src/hooks/useOracle.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAmC,MAAM,uBAAuB,CAAC;AAalF,MAAM,UAAU,iBAAiB,CAC/B,MAAqB,EACrB,OAAuB,EACvB,OAA6F;IAE7F,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,OAAO,CAAC;QACnD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;QACD,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,gBAAgB,CAC9B,MAAqB,EACrB,SAA6B,EAC7B,OAAuF;IAEvF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,CAAC;QACpD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC1D,OAAO,MAAM,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,SAAS;QACpB,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,eAAe,CAC7B,MAAqB,EACrB,QAA4B,EAC5B,OAA6F;IAE7F,OAAO,iBAAiB,CACtB,MAAM,EACN;QACE,MAAM,EAAE,QAAQ;KACjB,EACD;QACE,GAAG,OAAO;QACV,OAAO,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;KAClD,CACF,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,yBAAyB,CACvC,MAAqB,EACrB,OAA6F;IAE7F,OAAO,iBAAiB,CACtB,MAAM,EACN;QACE,QAAQ,EAAE,IAAI;KACf,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,wBAAwB,CACtC,MAAqB,EACrB,OAA6F;IAE7F,OAAO,iBAAiB,CACtB,MAAM,EACN;QACE,QAAQ,EAAE,KAAK;KAChB,EACD,OAAO,CACR,CAAC;AACJ,CAAC","sourcesContent":["/**\n * React hooks for oracle request operations\n * Uses React Query for caching and data fetching\n */\n\nimport { useQuery, UseQueryOptions, UseQueryResult } from '@tanstack/react-query';\nimport type { OracleRequestData, PaginatedResponse, ApiResponse, OracleFilters } from '../types';\nimport { IndexerClient } from '../network/IndexerClient';\n\n/**\n * Get oracle requests with optional filtering\n * GET /api/oracle/requests\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useOracleRequests(client, { market: '1-market-123' });\n * ```\n */\nexport function useOracleRequests(\n client: IndexerClient,\n filters?: OracleFilters,\n options?: Omit<UseQueryOptions<PaginatedResponse<OracleRequestData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<PaginatedResponse<OracleRequestData>> {\n return useQuery({\n queryKey: ['heavymath', 'oracle-requests', filters],\n queryFn: async () => {\n return await client.getOracleRequests(filters);\n },\n staleTime: 1 * 60 * 1000, // 1 minute\n retry: false,\n ...options,\n });\n}\n\n/**\n * Get a specific oracle request by ID\n * GET /api/oracle/requests/:id\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useOracleRequest(client, '1-market-123-request-0');\n * ```\n */\nexport function useOracleRequest(\n client: IndexerClient,\n requestId: string | undefined,\n options?: Omit<UseQueryOptions<ApiResponse<OracleRequestData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<ApiResponse<OracleRequestData>> {\n return useQuery({\n queryKey: ['heavymath', 'oracle-request', requestId],\n queryFn: async () => {\n if (!requestId) throw new Error('Request ID is required');\n return await client.getOracleRequest(requestId);\n },\n enabled: !!requestId,\n staleTime: 2 * 60 * 1000,\n retry: false,\n ...options,\n });\n}\n\n/**\n * Get oracle request for a specific market\n * Convenience hook for market's oracle request\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useMarketOracle(client, '1-market-123');\n * ```\n */\nexport function useMarketOracle(\n client: IndexerClient,\n marketId: string | undefined,\n options?: Omit<UseQueryOptions<PaginatedResponse<OracleRequestData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<PaginatedResponse<OracleRequestData>> {\n return useOracleRequests(\n client,\n {\n market: marketId,\n },\n {\n ...options,\n enabled: !!marketId && (options?.enabled ?? true),\n }\n );\n}\n\n/**\n * Get timed out oracle requests\n * Convenience hook for monitoring stale oracle requests\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useTimedOutOracleRequests(client);\n * ```\n */\nexport function useTimedOutOracleRequests(\n client: IndexerClient,\n options?: Omit<UseQueryOptions<PaginatedResponse<OracleRequestData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<PaginatedResponse<OracleRequestData>> {\n return useOracleRequests(\n client,\n {\n timedOut: true,\n },\n options\n );\n}\n\n/**\n * Get pending oracle requests (not responded yet)\n * Convenience hook for monitoring active oracle requests\n *\n * @example\n * ```tsx\n * const { data, isLoading } = usePendingOracleRequests(client);\n * ```\n */\nexport function usePendingOracleRequests(\n client: IndexerClient,\n options?: Omit<UseQueryOptions<PaginatedResponse<OracleRequestData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<PaginatedResponse<OracleRequestData>> {\n return useOracleRequests(\n client,\n {\n timedOut: false,\n },\n options\n );\n}\n"]}
@@ -1,14 +1,14 @@
1
1
  import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
2
- import type { Prediction, PaginatedResponse, ApiResponse, PredictionFilters } from '../types';
2
+ import type { PredictionData, PaginatedResponse, ApiResponse, PredictionFilters } from '../types';
3
3
  import { IndexerClient } from '../network/IndexerClient';
4
- export declare function usePredictions(client: IndexerClient, filters?: PredictionFilters, options?: Omit<UseQueryOptions<PaginatedResponse<Prediction>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<Prediction>>;
5
- export declare function useUserPredictions(client: IndexerClient, walletAddress: string | undefined, filters?: Omit<PredictionFilters, 'user'>, options?: Omit<UseQueryOptions<PaginatedResponse<Prediction>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<Prediction>>;
6
- export declare function useActiveBets(client: IndexerClient, walletAddress: string | undefined, options?: Omit<UseQueryOptions<PaginatedResponse<Prediction>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<Prediction>>;
7
- export declare function usePastBets(client: IndexerClient, walletAddress: string | undefined, options?: Omit<UseQueryOptions<PaginatedResponse<Prediction>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<Prediction>>;
8
- export declare function usePrediction(client: IndexerClient, predictionId: string | undefined, options?: Omit<UseQueryOptions<ApiResponse<Prediction>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<Prediction>>;
4
+ export declare function usePredictions(client: IndexerClient, filters?: PredictionFilters, options?: Omit<UseQueryOptions<PaginatedResponse<PredictionData>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<PredictionData>>;
5
+ export declare function useUserPredictions(client: IndexerClient, walletAddress: string | undefined, filters?: Omit<PredictionFilters, 'user'>, options?: Omit<UseQueryOptions<PaginatedResponse<PredictionData>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<PredictionData>>;
6
+ export declare function useActiveBets(client: IndexerClient, walletAddress: string | undefined, options?: Omit<UseQueryOptions<PaginatedResponse<PredictionData>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<PredictionData>>;
7
+ export declare function usePastBets(client: IndexerClient, walletAddress: string | undefined, options?: Omit<UseQueryOptions<PaginatedResponse<PredictionData>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<PredictionData>>;
8
+ export declare function usePrediction(client: IndexerClient, predictionId: string | undefined, options?: Omit<UseQueryOptions<ApiResponse<PredictionData>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<PredictionData>>;
9
9
  export declare function useUserBettingHistory(client: IndexerClient, walletAddress: string | undefined): {
10
- active: UseQueryResult<PaginatedResponse<Prediction>>;
11
- claimed: UseQueryResult<PaginatedResponse<Prediction>>;
10
+ active: UseQueryResult<PaginatedResponse<PredictionData>>;
11
+ claimed: UseQueryResult<PaginatedResponse<PredictionData>>;
12
12
  isLoading: boolean;
13
13
  isError: boolean;
14
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"usePredictions.d.ts","sourceRoot":"","sources":["../../src/hooks/usePredictions.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAczD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACrF,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAU/C;AAWD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,EACzC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACrF,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAY/C;AAUD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACrF,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAU/C;AAUD,wBAAgB,WAAW,CACzB,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACrF,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAU/C;AAWD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC/E,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAYzC;AAWD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC;IACD,MAAM,EAAE,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IACtD,OAAO,EAAE,cAAc,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IACvD,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB,CAUA"}
1
+ {"version":3,"file":"usePredictions.d.ts","sourceRoot":"","sources":["../../src/hooks/usePredictions.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAczD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACzF,cAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAUnD;AAWD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,EACzC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACzF,cAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAYnD;AAUD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACzF,cAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAUnD;AAUD,wBAAgB,WAAW,CACzB,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACzF,cAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAUnD;AAWD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACnF,cAAc,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAY7C;AAWD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC;IACD,MAAM,EAAE,cAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC;IAC1D,OAAO,EAAE,cAAc,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC;IAC3D,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB,CAUA"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePredictions.js","sourceRoot":"","sources":["../../src/hooks/usePredictions.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAmC,MAAM,uBAAuB,CAAC;AAgBlF,MAAM,UAAU,cAAc,CAC5B,MAAqB,EACrB,OAA2B,EAC3B,OAAsF;IAEtF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC;QAC/C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,kBAAkB,CAChC,MAAqB,EACrB,aAAiC,EACjC,OAAyC,EACzC,OAAsF;IAEtF,OAAO,cAAc,CACnB,MAAM,EACN;QACE,IAAI,EAAE,aAAa;QACnB,GAAG,OAAO;KACX,EACD;QACE,GAAG,OAAO;QACV,OAAO,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;KACvD,CACF,CAAC;AACJ,CAAC;AAUD,MAAM,UAAU,aAAa,CAC3B,MAAqB,EACrB,aAAiC,EACjC,OAAsF;IAEtF,OAAO,kBAAkB,CACvB,MAAM,EACN,aAAa,EACb;QACE,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,GAAG;KACX,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAUD,MAAM,UAAU,WAAW,CACzB,MAAqB,EACrB,aAAiC,EACjC,OAAsF;IAEtF,OAAO,kBAAkB,CACvB,MAAM,EACN,aAAa,EACb;QACE,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,GAAG;KACX,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,aAAa,CAC3B,MAAqB,EACrB,YAAgC,EAChC,OAAgF;IAEhF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC;QACnD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,YAAY;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAChE,OAAO,MAAM,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,YAAY;QACvB,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,qBAAqB,CACnC,MAAqB,EACrB,aAAiC;IAOjC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEnD,OAAO;QACL,MAAM;QACN,OAAO;QACP,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS;QAChD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO;KAC3C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"usePredictions.js","sourceRoot":"","sources":["../../src/hooks/usePredictions.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAmC,MAAM,uBAAuB,CAAC;AAgBlF,MAAM,UAAU,cAAc,CAC5B,MAAqB,EACrB,OAA2B,EAC3B,OAA0F;IAE1F,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC;QAC/C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,kBAAkB,CAChC,MAAqB,EACrB,aAAiC,EACjC,OAAyC,EACzC,OAA0F;IAE1F,OAAO,cAAc,CACnB,MAAM,EACN;QACE,IAAI,EAAE,aAAa;QACnB,GAAG,OAAO;KACX,EACD;QACE,GAAG,OAAO;QACV,OAAO,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;KACvD,CACF,CAAC;AACJ,CAAC;AAUD,MAAM,UAAU,aAAa,CAC3B,MAAqB,EACrB,aAAiC,EACjC,OAA0F;IAE1F,OAAO,kBAAkB,CACvB,MAAM,EACN,aAAa,EACb;QACE,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,GAAG;KACX,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAUD,MAAM,UAAU,WAAW,CACzB,MAAqB,EACrB,aAAiC,EACjC,OAA0F;IAE1F,OAAO,kBAAkB,CACvB,MAAM,EACN,aAAa,EACb;QACE,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,GAAG;KACX,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,aAAa,CAC3B,MAAqB,EACrB,YAAgC,EAChC,OAAoF;IAEpF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC;QACnD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,YAAY;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAChE,OAAO,MAAM,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,EAAE,CAAC,CAAC,YAAY;QACvB,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,qBAAqB,CACnC,MAAqB,EACrB,aAAiC;IAOjC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEnD,OAAO;QACL,MAAM;QACN,OAAO;QACP,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS;QAChD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO;KAC3C,CAAC;AACJ,CAAC","sourcesContent":["/**\n * React hooks for prediction operations\n * Uses React Query for caching and data fetching\n */\n\nimport { useQuery, UseQueryOptions, UseQueryResult } from '@tanstack/react-query';\nimport type { PredictionData, PaginatedResponse, ApiResponse, PredictionFilters } from '../types';\nimport { IndexerClient } from '../network/IndexerClient';\n\n/**\n * Get predictions with optional filtering\n * GET /api/predictions\n *\n * @example\n * ```tsx\n * const { data, isLoading } = usePredictions(\n * client,\n * { user: '0x123...', claimed: false }\n * );\n * ```\n */\nexport function usePredictions(\n client: IndexerClient,\n filters?: PredictionFilters,\n options?: Omit<UseQueryOptions<PaginatedResponse<PredictionData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<PaginatedResponse<PredictionData>> {\n return useQuery({\n queryKey: ['heavymath', 'predictions', filters],\n queryFn: async () => {\n return await client.getPredictions(filters);\n },\n staleTime: 1 * 60 * 1000, // 1 minute\n retry: false,\n ...options,\n });\n}\n\n/**\n * Get user's predictions\n * Convenience hook for user's betting history\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useUserPredictions(client, '0x123...');\n * ```\n */\nexport function useUserPredictions(\n client: IndexerClient,\n walletAddress: string | undefined,\n filters?: Omit<PredictionFilters, 'user'>,\n options?: Omit<UseQueryOptions<PaginatedResponse<PredictionData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<PaginatedResponse<PredictionData>> {\n return usePredictions(\n client,\n {\n user: walletAddress,\n ...filters,\n },\n {\n ...options,\n enabled: !!walletAddress && (options?.enabled ?? true),\n }\n );\n}\n\n/**\n * Get user's active bets (unclaimed predictions)\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useActiveBets(client, '0x123...');\n * ```\n */\nexport function useActiveBets(\n client: IndexerClient,\n walletAddress: string | undefined,\n options?: Omit<UseQueryOptions<PaginatedResponse<PredictionData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<PaginatedResponse<PredictionData>> {\n return useUserPredictions(\n client,\n walletAddress,\n {\n claimed: false,\n limit: 100,\n },\n options\n );\n}\n\n/**\n * Get user's past bets (claimed predictions)\n *\n * @example\n * ```tsx\n * const { data, isLoading } = usePastBets(client, '0x123...');\n * ```\n */\nexport function usePastBets(\n client: IndexerClient,\n walletAddress: string | undefined,\n options?: Omit<UseQueryOptions<PaginatedResponse<PredictionData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<PaginatedResponse<PredictionData>> {\n return useUserPredictions(\n client,\n walletAddress,\n {\n claimed: true,\n limit: 100,\n },\n options\n );\n}\n\n/**\n * Get a specific prediction by ID\n * GET /api/predictions/:id\n *\n * @example\n * ```tsx\n * const { data, isLoading } = usePrediction(client, '1-market-123-0xuser...');\n * ```\n */\nexport function usePrediction(\n client: IndexerClient,\n predictionId: string | undefined,\n options?: Omit<UseQueryOptions<ApiResponse<PredictionData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<ApiResponse<PredictionData>> {\n return useQuery({\n queryKey: ['heavymath', 'prediction', predictionId],\n queryFn: async () => {\n if (!predictionId) throw new Error('Prediction ID is required');\n return await client.getPrediction(predictionId);\n },\n enabled: !!predictionId,\n staleTime: 2 * 60 * 1000,\n retry: false,\n ...options,\n });\n}\n\n/**\n * Get complete betting history for a user (active + claimed)\n * Convenience hook that combines active and past bets\n *\n * @example\n * ```tsx\n * const { active, claimed, isLoading } = useUserBettingHistory(client, '0x123...');\n * ```\n */\nexport function useUserBettingHistory(\n client: IndexerClient,\n walletAddress: string | undefined\n): {\n active: UseQueryResult<PaginatedResponse<PredictionData>>;\n claimed: UseQueryResult<PaginatedResponse<PredictionData>>;\n isLoading: boolean;\n isError: boolean;\n} {\n const active = useActiveBets(client, walletAddress);\n const claimed = usePastBets(client, walletAddress);\n\n return {\n active,\n claimed,\n isLoading: active.isLoading || claimed.isLoading,\n isError: active.isError || claimed.isError,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useSSE.js","sourceRoot":"","sources":["../../src/hooks/useSSE.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSSE.js","sourceRoot":"","sources":["../../src/hooks/useSSE.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * React hooks for Server-Sent Events (SSE) subscriptions\n * Provides real-time updates from the Heavymath Indexer\n */\n\nimport { useState, useEffect, useRef, useCallback } from 'react';\nimport { useQueryClient } from '@tanstack/react-query';\nimport type {\n SubscriptionChannel,\n SSEFilters,\n SSEMessage,\n SSEDataUpdateMessage,\n SSEConnectionState,\n SSEEventType,\n} from '../types';\n\n/**\n * Options for SSE subscription\n */\nexport interface UseSSEOptions {\n /** Subscription channel */\n channel?: SubscriptionChannel;\n /** Subscription filters */\n filters?: SSEFilters;\n /** Whether to automatically reconnect on disconnect */\n autoReconnect?: boolean;\n /** Reconnection delay in ms (default: 3000) */\n reconnectDelay?: number;\n /** Maximum reconnection attempts (default: 5) */\n maxReconnectAttempts?: number;\n /** Callback for incoming events */\n onEvent?: (event: SSEDataUpdateMessage) => void;\n /** Callback for connection state changes */\n onStateChange?: (state: SSEConnectionState) => void;\n /** Callback for errors */\n onError?: (error: Error) => void;\n /** Whether to automatically invalidate React Query caches */\n invalidateQueries?: boolean;\n /** Whether the subscription is enabled */\n enabled?: boolean;\n}\n\n/**\n * Return type for useSSE hook\n */\nexport interface UseSSEReturn {\n /** Current connection state */\n connectionState: SSEConnectionState;\n /** Last received event */\n lastEvent: SSEDataUpdateMessage | null;\n /** All received events */\n events: SSEDataUpdateMessage[];\n /** Client ID assigned by server */\n clientId: string | null;\n /** Subscription ID */\n subscriptionId: string | null;\n /** Error if any */\n error: Error | null;\n /** Manually reconnect */\n reconnect: () => void;\n /** Manually disconnect */\n disconnect: () => void;\n /** Clear events history */\n clearEvents: () => void;\n}\n\n/**\n * Hook for subscribing to SSE events from the indexer\n *\n * @example\n * ```tsx\n * // Subscribe to all market events\n * const { connectionState, events, lastEvent } = useSSE(\n * 'http://localhost:42069',\n * { channel: 'markets' }\n * );\n *\n * // Subscribe to a specific market's events\n * const { connectionState, lastEvent } = useSSE(\n * 'http://localhost:42069',\n * {\n * channel: 'market',\n * filters: { marketId: '1-market-123' },\n * onEvent: (event) => console.log('New event:', event),\n * }\n * );\n *\n * // Subscribe to user's predictions\n * const { events } = useSSE(\n * 'http://localhost:42069',\n * {\n * channel: 'predictions',\n * filters: { user: '0x123...' },\n * invalidateQueries: true, // Auto-refresh React Query caches\n * }\n * );\n * ```\n */\nexport function useSSE(endpointUrl: string, options: UseSSEOptions = {}): UseSSEReturn {\n const {\n channel = 'markets',\n filters = {},\n autoReconnect = true,\n reconnectDelay = 3000,\n maxReconnectAttempts = 5,\n onEvent,\n onStateChange,\n onError,\n invalidateQueries = false,\n enabled = true,\n } = options;\n\n const [connectionState, setConnectionState] = useState<SSEConnectionState>('disconnected');\n const [lastEvent, setLastEvent] = useState<SSEDataUpdateMessage | null>(null);\n const [events, setEvents] = useState<SSEDataUpdateMessage[]>([]);\n const [clientId, setClientId] = useState<string | null>(null);\n const [subscriptionId, setSubscriptionId] = useState<string | null>(null);\n const [error, setError] = useState<Error | null>(null);\n\n const eventSourceRef = useRef<EventSource | null>(null);\n const reconnectAttemptsRef = useRef(0);\n const reconnectTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const queryClient = useQueryClient();\n\n // Update connection state and notify callback\n const updateConnectionState = useCallback(\n (state: SSEConnectionState) => {\n setConnectionState(state);\n onStateChange?.(state);\n },\n [onStateChange]\n );\n\n // Handle incoming SSE message\n const handleMessage = useCallback(\n (messageEvent: MessageEvent) => {\n try {\n const message: SSEMessage = JSON.parse(messageEvent.data);\n\n if (message.type === 'connected') {\n setClientId(message.clientId);\n setSubscriptionId(message.subscriptionId);\n updateConnectionState('connected');\n reconnectAttemptsRef.current = 0;\n } else if (message.type === 'data_update') {\n const dataMessage = message as SSEDataUpdateMessage;\n setLastEvent(dataMessage);\n setEvents(prev => [...prev, dataMessage]);\n onEvent?.(dataMessage);\n\n // Invalidate relevant React Query caches\n if (invalidateQueries) {\n invalidateQueryCaches(queryClient, dataMessage.eventType, dataMessage.data);\n }\n }\n // Heartbeat messages are handled silently\n } catch (err) {\n console.error('[SSE] Failed to parse message:', err);\n }\n },\n [onEvent, invalidateQueries, queryClient, updateConnectionState]\n );\n\n // Connect to SSE endpoint\n const connect = useCallback(() => {\n if (!enabled) return;\n\n // Close existing connection\n if (eventSourceRef.current) {\n eventSourceRef.current.close();\n }\n\n // Build URL with query params\n const url = new URL(`${endpointUrl}/api/events`);\n url.searchParams.set('channel', channel);\n if (filters.marketId) url.searchParams.set('marketId', filters.marketId);\n if (filters.dealer) url.searchParams.set('dealer', filters.dealer);\n if (filters.user) url.searchParams.set('user', filters.user);\n if (filters.category) url.searchParams.set('category', filters.category);\n\n updateConnectionState('connecting');\n setError(null);\n\n try {\n const eventSource = new EventSource(url.toString());\n eventSourceRef.current = eventSource;\n\n // Handle all message types\n eventSource.onmessage = handleMessage;\n\n // Handle specific event types\n eventSource.addEventListener('connected', handleMessage);\n eventSource.addEventListener('data_update', handleMessage);\n eventSource.addEventListener('heartbeat', () => {\n // Heartbeat received - connection is alive\n });\n eventSource.addEventListener('subscription_confirmed', handleMessage);\n\n eventSource.onerror = () => {\n updateConnectionState('error');\n const err = new Error('SSE connection error');\n setError(err);\n onError?.(err);\n\n // Attempt reconnection\n if (autoReconnect && reconnectAttemptsRef.current < maxReconnectAttempts) {\n reconnectAttemptsRef.current++;\n console.log(\n `[SSE] Reconnecting (attempt ${reconnectAttemptsRef.current}/${maxReconnectAttempts})...`\n );\n\n reconnectTimeoutRef.current = setTimeout(() => {\n connect();\n }, reconnectDelay);\n } else if (reconnectAttemptsRef.current >= maxReconnectAttempts) {\n console.error('[SSE] Max reconnection attempts reached');\n updateConnectionState('disconnected');\n }\n };\n } catch (err) {\n const error = err instanceof Error ? err : new Error('Failed to connect to SSE');\n setError(error);\n onError?.(error);\n updateConnectionState('error');\n }\n }, [\n enabled,\n endpointUrl,\n channel,\n filters,\n handleMessage,\n autoReconnect,\n maxReconnectAttempts,\n reconnectDelay,\n updateConnectionState,\n onError,\n ]);\n\n // Disconnect from SSE endpoint\n const disconnect = useCallback(() => {\n if (reconnectTimeoutRef.current) {\n clearTimeout(reconnectTimeoutRef.current);\n reconnectTimeoutRef.current = null;\n }\n\n if (eventSourceRef.current) {\n eventSourceRef.current.close();\n eventSourceRef.current = null;\n }\n\n setClientId(null);\n setSubscriptionId(null);\n updateConnectionState('disconnected');\n }, [updateConnectionState]);\n\n // Reconnect\n const reconnect = useCallback(() => {\n reconnectAttemptsRef.current = 0;\n disconnect();\n connect();\n }, [disconnect, connect]);\n\n // Clear events history\n const clearEvents = useCallback(() => {\n setEvents([]);\n setLastEvent(null);\n }, []);\n\n // Effect to connect/disconnect based on enabled state\n useEffect(() => {\n if (enabled) {\n connect();\n } else {\n disconnect();\n }\n\n return () => {\n disconnect();\n };\n }, [enabled, connect, disconnect]);\n\n // Effect to reconnect when filters change\n useEffect(() => {\n if (enabled && connectionState === 'connected') {\n reconnect();\n }\n }, [channel, JSON.stringify(filters), enabled, connectionState, reconnect]);\n\n return {\n connectionState,\n lastEvent,\n events,\n clientId,\n subscriptionId,\n error,\n reconnect,\n disconnect,\n clearEvents,\n };\n}\n\n/**\n * Hook for subscribing to market updates with auto-refresh\n * Convenience wrapper around useSSE for the most common use case\n *\n * @example\n * ```tsx\n * const { lastEvent, connectionState } = useMarketUpdates(\n * 'http://localhost:42069',\n * '1-market-123'\n * );\n * ```\n */\nexport function useMarketUpdates(\n endpointUrl: string,\n marketId: string | undefined,\n options: Omit<UseSSEOptions, 'channel' | 'filters'> = {}\n): UseSSEReturn {\n return useSSE(endpointUrl, {\n ...options,\n channel: 'market',\n filters: { marketId },\n enabled: !!marketId && (options.enabled ?? true),\n });\n}\n\n/**\n * Hook for subscribing to all market events\n *\n * @example\n * ```tsx\n * const { events, connectionState } = useAllMarketUpdates('http://localhost:42069');\n * ```\n */\nexport function useAllMarketUpdates(\n endpointUrl: string,\n options: Omit<UseSSEOptions, 'channel'> = {}\n): UseSSEReturn {\n return useSSE(endpointUrl, {\n ...options,\n channel: 'markets',\n });\n}\n\n/**\n * Hook for subscribing to user's prediction updates\n *\n * @example\n * ```tsx\n * const { lastEvent } = useUserPredictionUpdates(\n * 'http://localhost:42069',\n * '0x123...'\n * );\n * ```\n */\nexport function useUserPredictionUpdates(\n endpointUrl: string,\n userAddress: string | undefined,\n options: Omit<UseSSEOptions, 'channel' | 'filters'> = {}\n): UseSSEReturn {\n return useSSE(endpointUrl, {\n ...options,\n channel: 'predictions',\n filters: { user: userAddress },\n enabled: !!userAddress && (options.enabled ?? true),\n });\n}\n\n/**\n * Invalidate React Query caches based on event type\n */\nfunction invalidateQueryCaches(\n queryClient: ReturnType<typeof useQueryClient>,\n eventType: SSEEventType,\n data: unknown\n): void {\n const eventData = data as Record<string, unknown>;\n\n switch (eventType) {\n case 'MarketCreated':\n case 'MarketResolved':\n case 'MarketCancelled':\n case 'MarketAbandoned':\n case 'DealerFeeSet':\n // Invalidate markets list and specific market\n queryClient.invalidateQueries({ queryKey: ['heavymath', 'markets'] });\n if (eventData.marketId) {\n queryClient.invalidateQueries({\n queryKey: ['heavymath', 'market', eventData.marketId],\n });\n }\n break;\n\n case 'PredictionPlaced':\n case 'PredictionUpdated':\n case 'WinningsClaimed':\n case 'RefundClaimed':\n // Invalidate predictions\n queryClient.invalidateQueries({ queryKey: ['heavymath', 'predictions'] });\n if (eventData.marketId) {\n queryClient.invalidateQueries({\n queryKey: ['heavymath', 'market-predictions', eventData.marketId],\n });\n }\n break;\n\n case 'LicenseIssued':\n case 'LicenseTransferred':\n case 'PermissionsSet':\n // Invalidate dealers\n queryClient.invalidateQueries({ queryKey: ['heavymath', 'dealers'] });\n break;\n\n case 'OracleRegistered':\n case 'OracleDataUpdated':\n // Invalidate oracle requests\n queryClient.invalidateQueries({ queryKey: ['heavymath', 'oracle'] });\n break;\n\n case 'DealerFeesWithdrawn':\n // Invalidate withdrawals\n queryClient.invalidateQueries({ queryKey: ['heavymath', 'withdrawals'] });\n break;\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
2
- import type { MarketStats, HealthStatus, ApiResponse } from '../types';
2
+ import type { MarketStatsData, HealthData, ApiResponse } from '../types';
3
3
  import { IndexerClient } from '../network/IndexerClient';
4
- export declare function useMarketStats(client: IndexerClient, options?: Omit<UseQueryOptions<ApiResponse<MarketStats>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<MarketStats>>;
5
- export declare function useHealth(client: IndexerClient, options?: Omit<UseQueryOptions<ApiResponse<HealthStatus>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<HealthStatus>>;
4
+ export declare function useMarketStats(client: IndexerClient, options?: Omit<UseQueryOptions<ApiResponse<MarketStatsData>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<MarketStatsData>>;
5
+ export declare function useHealth(client: IndexerClient, options?: Omit<UseQueryOptions<ApiResponse<HealthData>>, 'queryKey' | 'queryFn'>): UseQueryResult<ApiResponse<HealthData>>;
6
6
  //# sourceMappingURL=useStats.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStats.d.ts","sourceRoot":"","sources":["../../src/hooks/useStats.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAczD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAChF,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAU1C;AAcD,wBAAgB,SAAS,CACvB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACjF,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAU3C"}
1
+ {"version":3,"file":"useStats.d.ts","sourceRoot":"","sources":["../../src/hooks/useStats.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAczD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACpF,cAAc,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAU9C;AAcD,wBAAgB,SAAS,CACvB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC/E,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAUzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useStats.js","sourceRoot":"","sources":["../../src/hooks/useStats.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAmC,MAAM,uBAAuB,CAAC;AAgBlF,MAAM,UAAU,cAAc,CAC5B,MAAqB,EACrB,OAAiF;IAEjF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC;QACvC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;QACvC,CAAC;QACD,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAcD,MAAM,UAAU,SAAS,CACvB,MAAqB,EACrB,OAAkF;IAElF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;QACjC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,CAAC;QACD,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"useStats.js","sourceRoot":"","sources":["../../src/hooks/useStats.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAmC,MAAM,uBAAuB,CAAC;AAgBlF,MAAM,UAAU,cAAc,CAC5B,MAAqB,EACrB,OAAqF;IAErF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC;QACvC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;QACvC,CAAC;QACD,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAcD,MAAM,UAAU,SAAS,CACvB,MAAqB,EACrB,OAAgF;IAEhF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;QACjC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,CAAC;QACD,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * React hooks for analytics and statistics operations\n * Uses React Query for caching and data fetching\n */\n\nimport { useQuery, UseQueryOptions, UseQueryResult } from '@tanstack/react-query';\nimport type { MarketStatsData, HealthData, ApiResponse } from '../types';\nimport { IndexerClient } from '../network/IndexerClient';\n\n/**\n * Get market statistics\n * GET /api/stats/markets\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useMarketStats(client);\n * if (data?.success) {\n * // data.data.total, data.data.byStatus, etc.\n * }\n * ```\n */\nexport function useMarketStats(\n client: IndexerClient,\n options?: Omit<UseQueryOptions<ApiResponse<MarketStatsData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<ApiResponse<MarketStatsData>> {\n return useQuery({\n queryKey: ['heavymath', 'market-stats'],\n queryFn: async () => {\n return await client.getMarketStats();\n },\n staleTime: 5 * 60 * 1000, // 5 minutes - stats don't change frequently\n retry: false,\n ...options,\n });\n}\n\n/**\n * Get health status of the indexer\n * GET /api/health\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useHealth(client);\n * if (data?.success) {\n * // data.data.status, data.data.timestamp\n * }\n * ```\n */\nexport function useHealth(\n client: IndexerClient,\n options?: Omit<UseQueryOptions<ApiResponse<HealthData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<ApiResponse<HealthData>> {\n return useQuery({\n queryKey: ['heavymath', 'health'],\n queryFn: async () => {\n return await client.getHealth();\n },\n staleTime: 1 * 60 * 1000, // 1 minute\n retry: false,\n ...options,\n });\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
2
- import type { FeeWithdrawal, PaginatedResponse, WithdrawalFilters } from '../types';
2
+ import type { FeeWithdrawalData, PaginatedResponse, WithdrawalFilters } from '../types';
3
3
  import { IndexerClient } from '../network/IndexerClient';
4
- export declare function useWithdrawals(client: IndexerClient, filters?: WithdrawalFilters, options?: Omit<UseQueryOptions<PaginatedResponse<FeeWithdrawal>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<FeeWithdrawal>>;
5
- export declare function useDealerWithdrawals(client: IndexerClient, dealerAddress: string | undefined, options?: Omit<UseQueryOptions<PaginatedResponse<FeeWithdrawal>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<FeeWithdrawal>>;
6
- export declare function useSystemWithdrawals(client: IndexerClient, options?: Omit<UseQueryOptions<PaginatedResponse<FeeWithdrawal>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<FeeWithdrawal>>;
7
- export declare function useMarketWithdrawals(client: IndexerClient, marketId: string | undefined, options?: Omit<UseQueryOptions<PaginatedResponse<FeeWithdrawal>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<FeeWithdrawal>>;
4
+ export declare function useWithdrawals(client: IndexerClient, filters?: WithdrawalFilters, options?: Omit<UseQueryOptions<PaginatedResponse<FeeWithdrawalData>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<FeeWithdrawalData>>;
5
+ export declare function useDealerWithdrawals(client: IndexerClient, dealerAddress: string | undefined, options?: Omit<UseQueryOptions<PaginatedResponse<FeeWithdrawalData>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<FeeWithdrawalData>>;
6
+ export declare function useSystemWithdrawals(client: IndexerClient, options?: Omit<UseQueryOptions<PaginatedResponse<FeeWithdrawalData>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<FeeWithdrawalData>>;
7
+ export declare function useMarketWithdrawals(client: IndexerClient, marketId: string | undefined, options?: Omit<UseQueryOptions<PaginatedResponse<FeeWithdrawalData>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<FeeWithdrawalData>>;
8
8
  //# sourceMappingURL=useWithdrawals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWithdrawals.d.ts","sourceRoot":"","sources":["../../src/hooks/useWithdrawals.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAczD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACxF,cAAc,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAUlD;AAWD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACxF,cAAc,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAYlD;AAWD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACxF,cAAc,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAQlD;AAWD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GACxF,cAAc,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAWlD"}
1
+ {"version":3,"file":"useWithdrawals.d.ts","sourceRoot":"","sources":["../../src/hooks/useWithdrawals.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAczD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC5F,cAAc,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAUtD;AAWD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC5F,cAAc,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAYtD;AAWD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC5F,cAAc,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAQtD;AAWD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC5F,cAAc,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAWtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"useWithdrawals.js","sourceRoot":"","sources":["../../src/hooks/useWithdrawals.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAmC,MAAM,uBAAuB,CAAC;AAgBlF,MAAM,UAAU,cAAc,CAC5B,MAAqB,EACrB,OAA2B,EAC3B,OAAyF;IAEzF,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC;QAC/C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,aAAiC,EACjC,OAAyF;IAEzF,OAAO,cAAc,CACnB,MAAM,EACN;QACE,UAAU,EAAE,aAAa;QACzB,IAAI,EAAE,QAAQ;KACf,EACD;QACE,GAAG,OAAO;QACV,OAAO,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;KACvD,CACF,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,OAAyF;IAEzF,OAAO,cAAc,CACnB,MAAM,EACN;QACE,IAAI,EAAE,QAAQ;KACf,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,QAA4B,EAC5B,OAAyF;IAEzF,OAAO,cAAc,CACnB,MAAM,EACN;QACE,MAAM,EAAE,QAAQ;KACjB,EACD;QACE,GAAG,OAAO;QACV,OAAO,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;KAClD,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useWithdrawals.js","sourceRoot":"","sources":["../../src/hooks/useWithdrawals.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAmC,MAAM,uBAAuB,CAAC;AAgBlF,MAAM,UAAU,cAAc,CAC5B,MAAqB,EACrB,OAA2B,EAC3B,OAA6F;IAE7F,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC;QAC/C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;QACxB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,aAAiC,EACjC,OAA6F;IAE7F,OAAO,cAAc,CACnB,MAAM,EACN;QACE,UAAU,EAAE,aAAa;QACzB,IAAI,EAAE,QAAQ;KACf,EACD;QACE,GAAG,OAAO;QACV,OAAO,EAAE,CAAC,CAAC,aAAa,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;KACvD,CACF,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,OAA6F;IAE7F,OAAO,cAAc,CACnB,MAAM,EACN;QACE,IAAI,EAAE,QAAQ;KACf,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,QAA4B,EAC5B,OAA6F;IAE7F,OAAO,cAAc,CACnB,MAAM,EACN;QACE,MAAM,EAAE,QAAQ;KACjB,EACD;QACE,GAAG,OAAO;QACV,OAAO,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;KAClD,CACF,CAAC;AACJ,CAAC","sourcesContent":["/**\n * React hooks for fee withdrawal operations\n * Uses React Query for caching and data fetching\n */\n\nimport { useQuery, UseQueryOptions, UseQueryResult } from '@tanstack/react-query';\nimport type { FeeWithdrawalData, PaginatedResponse, WithdrawalFilters } from '../types';\nimport { IndexerClient } from '../network/IndexerClient';\n\n/**\n * Get fee withdrawals with optional filtering\n * GET /api/withdrawals\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useWithdrawals(\n * client,\n * { withdrawer: '0x123...', type: 'dealer' }\n * );\n * ```\n */\nexport function useWithdrawals(\n client: IndexerClient,\n filters?: WithdrawalFilters,\n options?: Omit<UseQueryOptions<PaginatedResponse<FeeWithdrawalData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<PaginatedResponse<FeeWithdrawalData>> {\n return useQuery({\n queryKey: ['heavymath', 'withdrawals', filters],\n queryFn: async () => {\n return await client.getWithdrawals(filters);\n },\n staleTime: 2 * 60 * 1000, // 2 minutes\n retry: false,\n ...options,\n });\n}\n\n/**\n * Get dealer withdrawals for a specific address\n * Convenience hook for dealer's withdrawal history\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useDealerWithdrawals(client, '0x123...');\n * ```\n */\nexport function useDealerWithdrawals(\n client: IndexerClient,\n dealerAddress: string | undefined,\n options?: Omit<UseQueryOptions<PaginatedResponse<FeeWithdrawalData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<PaginatedResponse<FeeWithdrawalData>> {\n return useWithdrawals(\n client,\n {\n withdrawer: dealerAddress,\n type: 'dealer',\n },\n {\n ...options,\n enabled: !!dealerAddress && (options?.enabled ?? true),\n }\n );\n}\n\n/**\n * Get system withdrawals\n * Convenience hook for system fee withdrawals\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useSystemWithdrawals(client);\n * ```\n */\nexport function useSystemWithdrawals(\n client: IndexerClient,\n options?: Omit<UseQueryOptions<PaginatedResponse<FeeWithdrawalData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<PaginatedResponse<FeeWithdrawalData>> {\n return useWithdrawals(\n client,\n {\n type: 'system',\n },\n options\n );\n}\n\n/**\n * Get withdrawals for a specific market\n * Convenience hook for market-specific withdrawals\n *\n * @example\n * ```tsx\n * const { data, isLoading } = useMarketWithdrawals(client, '1-market-123');\n * ```\n */\nexport function useMarketWithdrawals(\n client: IndexerClient,\n marketId: string | undefined,\n options?: Omit<UseQueryOptions<PaginatedResponse<FeeWithdrawalData>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<PaginatedResponse<FeeWithdrawalData>> {\n return useWithdrawals(\n client,\n {\n market: marketId,\n },\n {\n ...options,\n enabled: !!marketId && (options?.enabled ?? true),\n }\n );\n}\n"]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC","sourcesContent":["/**\n * @heavymath/indexer_client\n * React and React Native compatible client library for Heavymath Prediction Market Indexer API\n */\n\n// Type definitions\nexport * from './types';\n\n// Network layer\nexport * from './network';\n\n// Business layer\nexport * from './business';\n\n// React hooks\nexport * from './hooks';\n\n// Zustand stores\nexport * from './stores';\n"]}
@@ -1,26 +1,26 @@
1
1
  import type { NetworkClient } from '@sudobility/types';
2
- import type { ApiResponse, PaginatedResponse, Market, Prediction, DealerNFT, DealerPermission, StateHistory, FeeWithdrawal, OracleRequest, MarketStats, HealthStatus, MarketFilters, PredictionFilters, DealerFilters, WithdrawalFilters, OracleFilters, WalletFavoriteData, WalletFavoritesFilters, CreateFavoriteRequest } from '../types';
2
+ import type { ApiResponse, PaginatedResponse, MarketData, PredictionData, DealerNftData, DealerPermissionData, MarketStateHistoryData, FeeWithdrawalData, OracleRequestData, MarketStatsData, HealthData, MarketFilters, PredictionFilters, DealerFilters, WithdrawalFilters, OracleFilters, WalletFavoriteData, WalletFavoritesFilters, CreateFavoriteRequest } from '../types';
3
3
  export declare class IndexerClient {
4
4
  private readonly baseUrl;
5
5
  private readonly networkClient;
6
6
  constructor(endpointUrl: string, networkClient: NetworkClient);
7
- getMarkets(filters?: MarketFilters): Promise<PaginatedResponse<Market>>;
8
- getMarket(id: string): Promise<ApiResponse<Market>>;
9
- getMarketPredictions(marketId: string): Promise<ApiResponse<Prediction[]>>;
10
- getMarketHistory(marketId: string): Promise<ApiResponse<StateHistory[]>>;
11
- getPredictions(filters?: PredictionFilters): Promise<PaginatedResponse<Prediction>>;
12
- getPrediction(id: string): Promise<ApiResponse<Prediction>>;
13
- getDealers(filters?: DealerFilters): Promise<PaginatedResponse<DealerNFT>>;
14
- getDealer(id: string): Promise<ApiResponse<DealerNFT>>;
15
- getDealerPermissions(dealerId: string): Promise<ApiResponse<DealerPermission[]>>;
16
- getDealerMarkets(dealerId: string): Promise<ApiResponse<Market[]>>;
17
- getWithdrawals(filters?: WithdrawalFilters): Promise<PaginatedResponse<FeeWithdrawal>>;
18
- getOracleRequests(filters?: OracleFilters): Promise<PaginatedResponse<OracleRequest>>;
19
- getOracleRequest(id: string): Promise<ApiResponse<OracleRequest>>;
7
+ getMarkets(filters?: MarketFilters): Promise<PaginatedResponse<MarketData>>;
8
+ getMarket(id: string): Promise<ApiResponse<MarketData>>;
9
+ getMarketPredictions(marketId: string): Promise<ApiResponse<PredictionData[]>>;
10
+ getMarketHistory(marketId: string): Promise<ApiResponse<MarketStateHistoryData[]>>;
11
+ getPredictions(filters?: PredictionFilters): Promise<PaginatedResponse<PredictionData>>;
12
+ getPrediction(id: string): Promise<ApiResponse<PredictionData>>;
13
+ getDealers(filters?: DealerFilters): Promise<PaginatedResponse<DealerNftData>>;
14
+ getDealer(id: string): Promise<ApiResponse<DealerNftData>>;
15
+ getDealerPermissions(dealerId: string): Promise<ApiResponse<DealerPermissionData[]>>;
16
+ getDealerMarkets(dealerId: string): Promise<ApiResponse<MarketData[]>>;
17
+ getWithdrawals(filters?: WithdrawalFilters): Promise<PaginatedResponse<FeeWithdrawalData>>;
18
+ getOracleRequests(filters?: OracleFilters): Promise<PaginatedResponse<OracleRequestData>>;
19
+ getOracleRequest(id: string): Promise<ApiResponse<OracleRequestData>>;
20
20
  getFavorites(walletAddress: string, filters?: WalletFavoritesFilters): Promise<PaginatedResponse<WalletFavoriteData>>;
21
21
  addFavorite(walletAddress: string, favorite: CreateFavoriteRequest): Promise<ApiResponse<WalletFavoriteData>>;
22
22
  removeFavorite(walletAddress: string, favoriteId: number): Promise<ApiResponse<void>>;
23
- getMarketStats(): Promise<ApiResponse<MarketStats>>;
24
- getHealth(): Promise<ApiResponse<HealthStatus>>;
23
+ getMarketStats(): Promise<ApiResponse<MarketStatsData>>;
24
+ getHealth(): Promise<ApiResponse<HealthData>>;
25
25
  }
26
26
  //# sourceMappingURL=IndexerClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IndexerClient.d.ts","sourceRoot":"","sources":["../../src/network/IndexerClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAwBlB,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAOlC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa;IAavD,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IA2BvE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAgBnD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;IAgB1E,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;IAoBxE,cAAc,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IA2BnF,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAoB3D,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAyB1E,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAgBtD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAgBhF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAoBlE,cAAc,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IA+BtF,iBAAiB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IA0BrF,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAoBjE,YAAY,CAChB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IA2B3C,WAAW,CACf,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAiBrC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAuBrF,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAgBnD,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;CAWtD"}
1
+ {"version":3,"file":"IndexerClient.d.ts","sourceRoot":"","sources":["../../src/network/IndexerClient.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAwClB,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAOlC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa;IAiBvD,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IA+B3E,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAoBvD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC;IAoB9E,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAwBlF,cAAc,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IA+BvF,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAwB/D,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IA6B9E,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAoB1D,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAoBpF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;IAwBtE,cAAc,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAmC1F,iBAAiB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IA8BzF,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAyBrE,YAAY,CAChB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAgC3C,WAAW,CACf,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAsBrC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IA0BrF,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAmBvD,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;CAWpD"}
@@ -3,10 +3,11 @@ function buildUrl(baseUrl, path) {
3
3
  const fullPath = path.startsWith('/') ? path : `/${path}`;
4
4
  return `${base}${fullPath}`;
5
5
  }
6
- function handleApiError(response, operation) {
6
+ function handleApiError(response, operation, url) {
7
7
  const data = response.data;
8
8
  const errorMessage = data?.error || response.statusText || `Failed to ${operation}`;
9
- return new Error(`API Error (${response.status}): ${errorMessage}`);
9
+ const urlSuffix = url ? ` [${url}]` : '';
10
+ return new Error(`API Error (${response.status}): ${errorMessage}${urlSuffix}`);
10
11
  }
11
12
  export class IndexerClient {
12
13
  constructor(endpointUrl, networkClient) {
@@ -1 +1 @@
1
- {"version":3,"file":"IndexerClient.js","sourceRoot":"","sources":["../../src/network/IndexerClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IndexerClient.js","sourceRoot":"","sources":["../../src/network/IndexerClient.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Indexer API Client\n * @description Low-level HTTP client for all Heavymath Indexer REST endpoints.\n * Each public method maps 1:1 to a REST API endpoint. Uses an injected\n * NetworkClient for transport, making it environment-agnostic (browser, Node, React Native).\n */\n\nimport type { NetworkClient, NetworkResponse } from '@sudobility/types';\nimport type {\n ApiResponse,\n PaginatedResponse,\n MarketData,\n PredictionData,\n DealerNftData,\n DealerPermissionData,\n MarketStateHistoryData,\n FeeWithdrawalData,\n OracleRequestData,\n MarketStatsData,\n HealthData,\n MarketFilters,\n PredictionFilters,\n DealerFilters,\n WithdrawalFilters,\n OracleFilters,\n WalletFavoriteData,\n WalletFavoritesFilters,\n CreateFavoriteRequest,\n} from '../types';\n\n/**\n * Build a full URL by joining a base URL and path.\n *\n * @param baseUrl - The base URL (trailing slash is stripped)\n * @param path - The path to append (leading slash is ensured)\n * @returns The combined URL string\n */\nfunction buildUrl(baseUrl: string, path: string): string {\n const base = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;\n const fullPath = path.startsWith('/') ? path : `/${path}`;\n return `${base}${fullPath}`;\n}\n\n/**\n * Create a standardized Error from an API response failure.\n * Includes the HTTP status code, endpoint URL, and error details for easier debugging.\n *\n * @param response - The failed network response\n * @param operation - A description of the operation that failed (used in error message)\n * @param url - Optional request URL to include in the error message for debugging\n * @returns An Error with a formatted message including the HTTP status code\n */\nfunction handleApiError(\n response: NetworkResponse<unknown>,\n operation: string,\n url?: string\n): Error {\n const data = response.data as { error?: string } | undefined;\n const errorMessage = data?.error || response.statusText || `Failed to ${operation}`;\n const urlSuffix = url ? ` [${url}]` : '';\n return new Error(`API Error (${response.status}): ${errorMessage}${urlSuffix}`);\n}\n\n/**\n * Indexer API client for Heavymath Prediction Market.\n * Provides type-safe methods for all REST endpoints exposed by the heavymath_indexer.\n * Requires a `NetworkClient` instance (from `@sudobility/di`) for HTTP transport.\n */\nexport class IndexerClient {\n private readonly baseUrl: string;\n private readonly networkClient: NetworkClient;\n\n /**\n * Create an IndexerClient instance\n * @param endpointUrl - The base URL for the indexer API\n * @param networkClient - A NetworkClient instance from @sudobility/di\n */\n constructor(endpointUrl: string, networkClient: NetworkClient) {\n this.baseUrl = endpointUrl;\n this.networkClient = networkClient;\n }\n\n // =============================================================================\n // MARKET ENDPOINTS\n // =============================================================================\n\n /**\n * Get all markets with optional filtering.\n * GET /api/markets\n *\n * @param filters - Optional query parameters (status, dealer, category, limit, offset)\n * @returns Paginated list of markets\n * @throws Error if the API request fails\n */\n async getMarkets(filters?: MarketFilters): Promise<PaginatedResponse<MarketData>> {\n const params = new URLSearchParams();\n\n if (filters?.status) params.append('status', filters.status);\n if (filters?.dealer) params.append('dealer', filters.dealer);\n if (filters?.category) params.append('category', filters.category);\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/markets${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<MarketData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get markets');\n }\n\n return response.data;\n }\n\n /**\n * Get a specific market by ID.\n * GET /api/markets/:id\n *\n * @param id - The chain-prefixed market ID (e.g., \"1-market-123\")\n * @returns The market data wrapped in an API response\n * @throws Error if the market is not found or the request fails\n */\n async getMarket(id: string): Promise<ApiResponse<MarketData>> {\n const response = await this.networkClient.get<ApiResponse<MarketData>>(\n buildUrl(this.baseUrl, `/api/markets/${encodeURIComponent(id)}`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get market');\n }\n\n return response.data;\n }\n\n /**\n * Get all predictions for a specific market.\n * GET /api/markets/:id/predictions\n *\n * @param marketId - The chain-prefixed market ID\n * @returns Array of predictions for the market\n * @throws Error if the request fails\n */\n async getMarketPredictions(marketId: string): Promise<ApiResponse<PredictionData[]>> {\n const response = await this.networkClient.get<ApiResponse<PredictionData[]>>(\n buildUrl(this.baseUrl, `/api/markets/${encodeURIComponent(marketId)}/predictions`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get market predictions');\n }\n\n return response.data;\n }\n\n /**\n * Get state transition history for a market.\n * GET /api/markets/:id/history\n *\n * @param marketId - The chain-prefixed market ID\n * @returns Array of state history entries for the market\n * @throws Error if the request fails\n */\n async getMarketHistory(marketId: string): Promise<ApiResponse<MarketStateHistoryData[]>> {\n const response = await this.networkClient.get<ApiResponse<MarketStateHistoryData[]>>(\n buildUrl(this.baseUrl, `/api/markets/${encodeURIComponent(marketId)}/history`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get market history');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // PREDICTION ENDPOINTS\n // =============================================================================\n\n /**\n * Get predictions with optional filtering.\n * GET /api/predictions\n *\n * @param filters - Optional query parameters (user, market, claimed, limit, offset)\n * @returns Paginated list of predictions\n * @throws Error if the request fails\n */\n async getPredictions(filters?: PredictionFilters): Promise<PaginatedResponse<PredictionData>> {\n const params = new URLSearchParams();\n\n if (filters?.user) params.append('user', filters.user);\n if (filters?.market) params.append('market', filters.market);\n if (filters?.claimed !== undefined) params.append('claimed', filters.claimed.toString());\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/predictions${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<PredictionData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get predictions');\n }\n\n return response.data;\n }\n\n /**\n * Get a specific prediction by ID.\n * GET /api/predictions/:id\n *\n * @param id - The chain-prefixed prediction ID (e.g., \"1-market-123-0xuser...\")\n * @returns The prediction data wrapped in an API response\n * @throws Error if the prediction is not found or the request fails\n */\n async getPrediction(id: string): Promise<ApiResponse<PredictionData>> {\n const response = await this.networkClient.get<ApiResponse<PredictionData>>(\n buildUrl(this.baseUrl, `/api/predictions/${encodeURIComponent(id)}`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get prediction');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // DEALER NFT ENDPOINTS\n // =============================================================================\n\n /**\n * Get all dealer NFTs with optional filtering.\n * GET /api/dealers\n *\n * @param filters - Optional query parameters (owner, limit, offset)\n * @returns Paginated list of dealer NFTs\n * @throws Error if the request fails\n */\n async getDealers(filters?: DealerFilters): Promise<PaginatedResponse<DealerNftData>> {\n const params = new URLSearchParams();\n\n if (filters?.owner) params.append('owner', filters.owner);\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/dealers${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<DealerNftData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get dealers');\n }\n\n return response.data;\n }\n\n /**\n * Get a specific dealer NFT by ID.\n * GET /api/dealers/:id\n *\n * @param id - The chain-prefixed dealer ID (e.g., \"1-1\")\n * @returns The dealer NFT data wrapped in an API response\n * @throws Error if the dealer is not found or the request fails\n */\n async getDealer(id: string): Promise<ApiResponse<DealerNftData>> {\n const response = await this.networkClient.get<ApiResponse<DealerNftData>>(\n buildUrl(this.baseUrl, `/api/dealers/${encodeURIComponent(id)}`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get dealer');\n }\n\n return response.data;\n }\n\n /**\n * Get permissions for a specific dealer NFT.\n * GET /api/dealers/:id/permissions\n *\n * @param dealerId - The chain-prefixed dealer ID\n * @returns Array of permission entries for the dealer\n * @throws Error if the request fails\n */\n async getDealerPermissions(dealerId: string): Promise<ApiResponse<DealerPermissionData[]>> {\n const response = await this.networkClient.get<ApiResponse<DealerPermissionData[]>>(\n buildUrl(this.baseUrl, `/api/dealers/${encodeURIComponent(dealerId)}/permissions`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get dealer permissions');\n }\n\n return response.data;\n }\n\n /**\n * Get all markets created by a specific dealer NFT.\n * GET /api/dealers/:id/markets\n *\n * @param dealerId - The chain-prefixed dealer ID\n * @returns Array of markets created by this dealer\n * @throws Error if the request fails\n */\n async getDealerMarkets(dealerId: string): Promise<ApiResponse<MarketData[]>> {\n const response = await this.networkClient.get<ApiResponse<MarketData[]>>(\n buildUrl(this.baseUrl, `/api/dealers/${encodeURIComponent(dealerId)}/markets`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get dealer markets');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // FEE WITHDRAWAL ENDPOINTS\n // =============================================================================\n\n /**\n * Get fee withdrawals with optional filtering.\n * GET /api/withdrawals\n *\n * @param filters - Optional query parameters (withdrawer, type, market, limit, offset)\n * @returns Paginated list of fee withdrawals\n * @throws Error if the request fails\n */\n async getWithdrawals(filters?: WithdrawalFilters): Promise<PaginatedResponse<FeeWithdrawalData>> {\n const params = new URLSearchParams();\n\n if (filters?.withdrawer) params.append('withdrawer', filters.withdrawer);\n if (filters?.type) params.append('type', filters.type);\n if (filters?.market) params.append('market', filters.market);\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/withdrawals${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<FeeWithdrawalData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get withdrawals');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // ORACLE REQUEST ENDPOINTS\n // =============================================================================\n\n /**\n * Get oracle requests with optional filtering.\n * GET /api/oracle/requests\n *\n * @param filters - Optional query parameters (market, timedOut, limit, offset)\n * @returns Paginated list of oracle requests\n * @throws Error if the request fails\n */\n async getOracleRequests(filters?: OracleFilters): Promise<PaginatedResponse<OracleRequestData>> {\n const params = new URLSearchParams();\n\n if (filters?.market) params.append('market', filters.market);\n if (filters?.timedOut !== undefined) params.append('timedOut', filters.timedOut.toString());\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/oracle/requests${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<OracleRequestData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get oracle requests');\n }\n\n return response.data;\n }\n\n /**\n * Get a specific oracle request by ID.\n * GET /api/oracle/requests/:id\n *\n * @param id - The oracle request ID\n * @returns The oracle request data wrapped in an API response\n * @throws Error if the oracle request is not found or the request fails\n */\n async getOracleRequest(id: string): Promise<ApiResponse<OracleRequestData>> {\n const response = await this.networkClient.get<ApiResponse<OracleRequestData>>(\n buildUrl(this.baseUrl, `/api/oracle/requests/${encodeURIComponent(id)}`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get oracle request');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // WALLET FAVORITES ENDPOINTS\n // =============================================================================\n\n /**\n * Get favorites for a wallet address.\n * GET /api/wallet/:address/favorites\n *\n * @param walletAddress - The wallet address to get favorites for\n * @param filters - Optional query parameters (category, subcategory, type, limit, offset)\n * @returns Paginated list of wallet favorites\n * @throws Error if the request fails\n */\n async getFavorites(\n walletAddress: string,\n filters?: WalletFavoritesFilters\n ): Promise<PaginatedResponse<WalletFavoriteData>> {\n const params = new URLSearchParams();\n\n if (filters?.category) params.append('category', filters.category);\n if (filters?.subcategory) params.append('subcategory', filters.subcategory);\n if (filters?.type) params.append('type', filters.type);\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/wallet/${encodeURIComponent(walletAddress)}/favorites${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<WalletFavoriteData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get favorites');\n }\n\n return response.data;\n }\n\n /**\n * Add a favorite for a wallet address.\n * POST /api/wallet/:address/favorites\n *\n * @param walletAddress - The wallet address to add a favorite for\n * @param favorite - The favorite item to add (category, subcategory, type, id)\n * @returns The newly created favorite data\n * @throws Error if the request fails\n */\n async addFavorite(\n walletAddress: string,\n favorite: CreateFavoriteRequest\n ): Promise<ApiResponse<WalletFavoriteData>> {\n const response = await this.networkClient.post<ApiResponse<WalletFavoriteData>>(\n buildUrl(this.baseUrl, `/api/wallet/${encodeURIComponent(walletAddress)}/favorites`),\n favorite\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'add favorite');\n }\n\n return response.data;\n }\n\n /**\n * Remove a favorite by ID.\n * DELETE /api/wallet/:address/favorites/:id\n *\n * @param walletAddress - The wallet address that owns the favorite\n * @param favoriteId - The numeric ID of the favorite to remove\n * @returns An API response confirming deletion\n * @throws Error if the favorite is not found or the request fails\n */\n async removeFavorite(walletAddress: string, favoriteId: number): Promise<ApiResponse<void>> {\n const response = await this.networkClient.delete<ApiResponse<void>>(\n buildUrl(\n this.baseUrl,\n `/api/wallet/${encodeURIComponent(walletAddress)}/favorites/${favoriteId}`\n )\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'remove favorite');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // ANALYTICS ENDPOINTS\n // =============================================================================\n\n /**\n * Get market statistics.\n * GET /api/stats/markets\n *\n * @returns Aggregate market statistics (totals, breakdowns by status)\n * @throws Error if the request fails\n */\n async getMarketStats(): Promise<ApiResponse<MarketStatsData>> {\n const response = await this.networkClient.get<ApiResponse<MarketStatsData>>(\n buildUrl(this.baseUrl, '/api/stats/markets')\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get market stats');\n }\n\n return response.data;\n }\n\n /**\n * Get health status of the indexer.\n * GET /api/health\n *\n * @returns The indexer health status\n * @throws Error if the request fails\n */\n async getHealth(): Promise<ApiResponse<HealthData>> {\n const response = await this.networkClient.get<ApiResponse<HealthData>>(\n buildUrl(this.baseUrl, '/api/health')\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get health');\n }\n\n return response.data;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/network/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC","sourcesContent":["/**\n * Network layer exports\n */\n\nexport * from './IndexerClient';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"favorites-store.js","sourceRoot":"","sources":["../../src/stores/favorites-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"favorites-store.js","sourceRoot":"","sources":["../../src/stores/favorites-store.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Zustand store for wallet favorites\n * Provides local persistence and optimistic updates\n */\n\nimport { create } from 'zustand';\nimport { persist, createJSONStorage } from 'zustand/middleware';\nimport type { WalletFavoriteData, CreateFavoriteRequest } from '../types';\n\n/**\n * Favorites state for a single wallet\n */\ninterface WalletFavoritesState {\n favorites: WalletFavoriteData[];\n lastFetched: number | null;\n}\n\n/**\n * Favorites store state\n */\nexport interface FavoritesState {\n /** Map of wallet address to their favorites state */\n walletFavorites: Record<string, WalletFavoritesState>;\n\n /** Get favorites for a wallet */\n getFavorites: (walletAddress: string) => WalletFavoriteData[];\n\n /** Set favorites for a wallet (from API response) */\n setFavorites: (walletAddress: string, favorites: WalletFavoriteData[]) => void;\n\n /** Add a favorite optimistically */\n addFavoriteOptimistic: (walletAddress: string, favorite: CreateFavoriteRequest) => void;\n\n /** Update a favorite with server response (after successful POST) */\n updateFavoriteFromServer: (walletAddress: string, favorite: WalletFavoriteData) => void;\n\n /** Remove a favorite optimistically */\n removeFavoriteOptimistic: (walletAddress: string, favoriteId: number) => void;\n\n /** Rollback an optimistic add (on error) */\n rollbackAdd: (walletAddress: string, itemId: string) => void;\n\n /** Rollback an optimistic remove (on error) */\n rollbackRemove: (walletAddress: string, favorite: WalletFavoriteData) => void;\n\n /** Check if an item is favorited */\n isFavorite: (walletAddress: string, itemId: string) => boolean;\n\n /** Find a favorite by item ID */\n findFavorite: (walletAddress: string, itemId: string) => WalletFavoriteData | undefined;\n\n /** Clear favorites for a wallet */\n clearFavorites: (walletAddress: string) => void;\n\n /** Clear all favorites data */\n clearAll: () => void;\n\n /** Check if favorites need refresh (stale data) */\n needsRefresh: (walletAddress: string, maxAge?: number) => boolean;\n}\n\n/** Default max age for favorites cache (5 minutes) */\nconst DEFAULT_MAX_AGE = 5 * 60 * 1000;\n\n/**\n * Create a temporary ID for optimistic updates\n */\nfunction createTempId(): number {\n return -Date.now();\n}\n\n/**\n * Zustand store for favorites with persistence\n */\nexport const useFavoritesStore = create<FavoritesState>()(\n persist(\n (set, get) => ({\n walletFavorites: {},\n\n getFavorites: (walletAddress: string) => {\n const normalized = walletAddress.toLowerCase();\n return get().walletFavorites[normalized]?.favorites ?? [];\n },\n\n setFavorites: (walletAddress: string, favorites: WalletFavoriteData[]) => {\n const normalized = walletAddress.toLowerCase();\n set(state => ({\n walletFavorites: {\n ...state.walletFavorites,\n [normalized]: {\n favorites,\n lastFetched: Date.now(),\n },\n },\n }));\n },\n\n addFavoriteOptimistic: (walletAddress: string, favorite: CreateFavoriteRequest) => {\n const normalized = walletAddress.toLowerCase();\n const tempFavorite: WalletFavoriteData = {\n id: createTempId(),\n walletAddress: normalized,\n category: favorite.category,\n subcategory: favorite.subcategory,\n type: favorite.type,\n itemId: favorite.id,\n // Use number instead of BigInt for JSON serialization compatibility\n createdAt: Math.floor(Date.now() / 1000) as unknown as bigint,\n };\n\n set(state => {\n const current = state.walletFavorites[normalized] ?? {\n favorites: [],\n lastFetched: null,\n };\n return {\n walletFavorites: {\n ...state.walletFavorites,\n [normalized]: {\n ...current,\n favorites: [...current.favorites, tempFavorite],\n },\n },\n };\n });\n },\n\n updateFavoriteFromServer: (walletAddress: string, favorite: WalletFavoriteData) => {\n const normalized = walletAddress.toLowerCase();\n set(state => {\n const current = state.walletFavorites[normalized];\n if (!current) return state;\n\n // Replace temp favorite with server response\n const favorites = current.favorites.map(f =>\n f.id < 0 && f.itemId === favorite.itemId ? favorite : f\n );\n\n return {\n walletFavorites: {\n ...state.walletFavorites,\n [normalized]: {\n ...current,\n favorites,\n },\n },\n };\n });\n },\n\n removeFavoriteOptimistic: (walletAddress: string, favoriteId: number) => {\n const normalized = walletAddress.toLowerCase();\n set(state => {\n const current = state.walletFavorites[normalized];\n if (!current) return state;\n\n return {\n walletFavorites: {\n ...state.walletFavorites,\n [normalized]: {\n ...current,\n favorites: current.favorites.filter(f => f.id !== favoriteId),\n },\n },\n };\n });\n },\n\n rollbackAdd: (walletAddress: string, itemId: string) => {\n const normalized = walletAddress.toLowerCase();\n set(state => {\n const current = state.walletFavorites[normalized];\n if (!current) return state;\n\n return {\n walletFavorites: {\n ...state.walletFavorites,\n [normalized]: {\n ...current,\n favorites: current.favorites.filter(f => f.itemId !== itemId),\n },\n },\n };\n });\n },\n\n rollbackRemove: (walletAddress: string, favorite: WalletFavoriteData) => {\n const normalized = walletAddress.toLowerCase();\n set(state => {\n const current = state.walletFavorites[normalized] ?? {\n favorites: [],\n lastFetched: null,\n };\n\n return {\n walletFavorites: {\n ...state.walletFavorites,\n [normalized]: {\n ...current,\n favorites: [...current.favorites, favorite],\n },\n },\n };\n });\n },\n\n isFavorite: (walletAddress: string, itemId: string) => {\n const normalized = walletAddress.toLowerCase();\n const favorites = get().walletFavorites[normalized]?.favorites ?? [];\n return favorites.some(f => f.itemId === itemId);\n },\n\n findFavorite: (walletAddress: string, itemId: string) => {\n const normalized = walletAddress.toLowerCase();\n const favorites = get().walletFavorites[normalized]?.favorites ?? [];\n return favorites.find(f => f.itemId === itemId);\n },\n\n clearFavorites: (walletAddress: string) => {\n const normalized = walletAddress.toLowerCase();\n set(state => {\n const { [normalized]: _, ...rest } = state.walletFavorites;\n return { walletFavorites: rest };\n });\n },\n\n clearAll: () => {\n set({ walletFavorites: {} });\n },\n\n needsRefresh: (walletAddress: string, maxAge = DEFAULT_MAX_AGE) => {\n const normalized = walletAddress.toLowerCase();\n const state = get().walletFavorites[normalized];\n if (!state || state.lastFetched === null) return true;\n return Date.now() - state.lastFetched > maxAge;\n },\n }),\n {\n name: 'heavymath-favorites',\n storage: createJSONStorage(() => {\n // Use localStorage in browser, or a no-op storage for SSR/React Native\n if (typeof window !== 'undefined' && window.localStorage) {\n return window.localStorage;\n }\n // No-op storage for non-browser environments\n return {\n getItem: () => null,\n setItem: () => {},\n removeItem: () => {},\n };\n }),\n partialize: state => ({\n walletFavorites: state.walletFavorites,\n }),\n }\n )\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/stores/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC","sourcesContent":["/**\n * Zustand stores for Heavymath Indexer Client\n */\n\nexport * from './favorites-store';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Type definitions for Heavymath Prediction Market Indexer API Client\n *\n * Re-exports types from @sudobility/heavymath_types and @sudobility/types\n * to ensure type consistency between frontend and backend.\n */\n\n// ============================================================================\n// Re-exports from @sudobility/types\n// ============================================================================\n\nexport type {\n // Base response types\n BaseResponse,\n PaginationInfo,\n PaginatedResponse,\n Optional,\n // Network types\n NetworkClient,\n NetworkResponse,\n NetworkRequestOptions,\n} from '@sudobility/types';\n\n// ApiResponse is an alias for BaseResponse\nexport type { ApiResponse } from '@sudobility/types';\n\n// ============================================================================\n// Re-exports from @sudobility/heavymath_types\n// ============================================================================\n\nexport type {\n // Common types\n ChainPrefixedId,\n PredictionId,\n TxLogId,\n\n // Enums\n MarketStatus,\n ClaimType,\n WithdrawalType,\n\n // API Data types (JSON-serializable versions for API responses)\n MarketData,\n PredictionData,\n DealerNftData,\n DealerPermissionData,\n FeeWithdrawalData,\n OracleRequestData,\n MarketStateHistoryData,\n MarketStatsData,\n HealthData,\n SSEStatsData,\n WalletFavoriteData,\n CreateFavoriteRequest,\n PaginationMeta,\n} from '@sudobility/heavymath_types';\n\n// ============================================================================\n// Type Aliases for Backward Compatibility\n// ============================================================================\n\n// These aliases map old type names to new ones from @sudobility/heavymath_types\n// This maintains backward compatibility with existing code using the old names\n\nimport type {\n MarketData,\n PredictionData,\n DealerNftData,\n DealerPermissionData,\n FeeWithdrawalData,\n OracleRequestData,\n MarketStateHistoryData,\n MarketStatsData,\n HealthData,\n} from '@sudobility/heavymath_types';\n\n/** @deprecated Use MarketData instead */\nexport type Market = MarketData;\n\n/** @deprecated Use PredictionData instead */\nexport type Prediction = PredictionData;\n\n/** @deprecated Use DealerNftData instead */\nexport type DealerNFT = DealerNftData;\n\n/** @deprecated Use DealerPermissionData instead */\nexport type DealerPermission = DealerPermissionData;\n\n/** @deprecated Use FeeWithdrawalData instead */\nexport type FeeWithdrawal = FeeWithdrawalData;\n\n/** @deprecated Use OracleRequestData instead */\nexport type OracleRequest = OracleRequestData;\n\n/** @deprecated Use MarketStateHistoryData instead */\nexport type StateHistory = MarketStateHistoryData;\n\n/** @deprecated Use MarketStatsData instead */\nexport type MarketStats = MarketStatsData;\n\n/** @deprecated Use HealthData instead */\nexport type HealthStatus = HealthData;\n\n// ============================================================================\n// Client-specific Types (not in shared packages)\n// ============================================================================\n\n/**\n * Query parameters for the markets endpoint (GET /api/markets).\n */\nexport interface MarketFilters {\n /** Filter by market status. Accepts 'Active', 'Resolved', 'Cancelled', or 'Abandoned'. */\n status?: import('@sudobility/heavymath_types').MarketStatus;\n /** Filter by dealer address (the wallet that created the market). */\n dealer?: string;\n /** Filter by market category string (e.g., 'sports', 'crypto'). */\n category?: string;\n /** Maximum number of results to return. Defaults to 50 on the server. */\n limit?: number;\n /** Number of results to skip for pagination. Defaults to 0. */\n offset?: number;\n}\n\n/**\n * Query parameters for the predictions endpoint (GET /api/predictions).\n */\nexport interface PredictionFilters {\n /** Filter by predictor wallet address. */\n user?: string;\n /** Filter by chain-prefixed market ID (e.g., '1-market-123'). */\n market?: string;\n /** Filter by claim status. `true` for claimed predictions, `false` for unclaimed. */\n claimed?: boolean;\n /** Maximum number of results to return. Defaults to 50 on the server. */\n limit?: number;\n /** Number of results to skip for pagination. Defaults to 0. */\n offset?: number;\n}\n\n/**\n * Query parameters for the dealers endpoint (GET /api/dealers).\n */\nexport interface DealerFilters {\n /** Filter by dealer NFT owner wallet address. */\n owner?: string;\n /** Maximum number of results to return. Defaults to 50 on the server. */\n limit?: number;\n /** Number of results to skip for pagination. Defaults to 0. */\n offset?: number;\n}\n\n/**\n * Query parameters for the withdrawals endpoint (GET /api/withdrawals).\n */\nexport interface WithdrawalFilters {\n /** Filter by withdrawer wallet address. */\n withdrawer?: string;\n /** Filter by withdrawal type. Accepts 'dealer' or 'system'. */\n type?: import('@sudobility/heavymath_types').WithdrawalType;\n /** Filter by chain-prefixed market ID. */\n market?: string;\n /** Maximum number of results to return. Defaults to 50 on the server. */\n limit?: number;\n /** Number of results to skip for pagination. Defaults to 0. */\n offset?: number;\n}\n\n/**\n * Query parameters for the oracle requests endpoint (GET /api/oracle/requests).\n */\nexport interface OracleFilters {\n /** Filter by chain-prefixed market ID. */\n market?: string;\n /** Filter by timeout status. `true` for timed-out requests, `false` for pending. */\n timedOut?: boolean;\n /** Maximum number of results to return. Defaults to 50 on the server. */\n limit?: number;\n /** Number of results to skip for pagination. Defaults to 0. */\n offset?: number;\n}\n\n/**\n * Query parameters for the wallet favorites endpoint (GET /api/wallet/:address/favorites).\n */\nexport interface WalletFavoritesFilters {\n /** Filter by favorite category (e.g., 'sports', 'crypto'). */\n category?: string;\n /** Filter by favorite subcategory (e.g., 'soccer', 'bitcoin'). */\n subcategory?: string;\n /** Filter by favorite item type (e.g., 'team', 'market'). */\n type?: string;\n /** Maximum number of results to return. Defaults to 50 on the server. */\n limit?: number;\n /** Number of results to skip for pagination. Defaults to 0. */\n offset?: number;\n}\n\n// ============================================================================\n// Server-Sent Events (SSE) Types\n// ============================================================================\n\n/**\n * SSE subscription channels\n */\nexport type SubscriptionChannel = 'markets' | 'market' | 'predictions' | 'dealers' | 'oracle';\n\n/**\n * SSE event types\n */\nexport type SSEEventType =\n | 'MarketCreated'\n | 'MarketResolved'\n | 'MarketCancelled'\n | 'MarketAbandoned'\n | 'PredictionPlaced'\n | 'PredictionUpdated'\n | 'WinningsClaimed'\n | 'RefundClaimed'\n | 'DealerFeeSet'\n | 'DealerFeesWithdrawn'\n | 'LicenseIssued'\n | 'LicenseTransferred'\n | 'PermissionsSet'\n | 'OracleRegistered'\n | 'OracleDataUpdated';\n\n/**\n * SSE subscription filters\n */\nexport interface SSEFilters {\n marketId?: string;\n dealer?: string;\n user?: string;\n category?: string;\n}\n\n/**\n * SSE connection message\n */\nexport interface SSEConnectedMessage {\n type: 'connected';\n clientId: string;\n subscriptionId: string;\n channel: SubscriptionChannel;\n timestamp: number;\n}\n\n/**\n * SSE data update message\n */\nexport interface SSEDataUpdateMessage {\n type: 'data_update';\n subscriptionId: string;\n eventType: SSEEventType;\n data: unknown;\n timestamp: number;\n}\n\n/**\n * SSE heartbeat message\n */\nexport interface SSEHeartbeatMessage {\n type: 'heartbeat';\n timestamp: number;\n}\n\n/**\n * SSE subscription confirmed message\n */\nexport interface SSESubscriptionConfirmedMessage {\n type: 'subscription_confirmed';\n subscriptionId: string;\n channel: SubscriptionChannel;\n}\n\n/**\n * Union of all SSE message types\n */\nexport type SSEMessage =\n | SSEConnectedMessage\n | SSEDataUpdateMessage\n | SSEHeartbeatMessage\n | SSESubscriptionConfirmedMessage;\n\n/**\n * SSE connection state\n */\nexport type SSEConnectionState = 'connecting' | 'connected' | 'disconnected' | 'error';\n\n/**\n * Market created event data\n */\nexport interface MarketCreatedEventData {\n marketId: string;\n dealer: string;\n category: string;\n chainId: number;\n}\n\n/**\n * Market resolved event data\n */\nexport interface MarketResolvedEventData {\n marketId: string;\n resolution: string;\n equilibrium: string;\n chainId: number;\n}\n\n/**\n * Prediction placed event data\n */\nexport interface PredictionPlacedEventData {\n marketId: string;\n predictor: string;\n amount: string;\n percentage: string;\n chainId: number;\n}\n\n/**\n * Prediction updated event data\n */\nexport interface PredictionUpdatedEventData {\n marketId: string;\n predictor: string;\n newAmount: string;\n newPercentage: string;\n chainId: number;\n}\n\n/**\n * Winnings/refund claimed event data\n */\nexport interface ClaimEventData {\n marketId: string;\n predictor: string;\n amount: string;\n chainId: number;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudobility/heavymath_indexer_client",
3
- "version": "0.0.3",
3
+ "version": "0.0.18",
4
4
  "description": "React and React Native compatible client library for Heavymath prediction market indexer API with TypeScript support",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -15,18 +15,20 @@
15
15
  "build": "tsc -p tsconfig.build.json",
16
16
  "build:watch": "tsc --watch",
17
17
  "clean": "rm -rf dist",
18
- "prepublishOnly": "npm run clean && npm run build",
18
+ "prepublishOnly": "bun run clean && bun run build",
19
19
  "test": "vitest",
20
20
  "test:run": "vitest run",
21
21
  "test:coverage": "vitest run --coverage",
22
22
  "test:watch": "vitest --watch",
23
+ "test:integration": "vitest run --config vitest.integration.config.ts",
24
+ "test:integration:watch": "vitest --config vitest.integration.config.ts",
23
25
  "lint": "eslint src --ext .ts,.tsx",
24
26
  "lint:fix": "eslint src --ext .ts,.tsx --fix",
25
27
  "format": "prettier --write src/**/*.ts",
26
28
  "format:check": "prettier --check src/**/*.ts",
27
29
  "typecheck": "tsc --noEmit",
28
30
  "typecheck:watch": "tsc --noEmit --watch",
29
- "check-all": "npm run lint && npm run typecheck && npm run test:run"
31
+ "check-all": "bun run lint && bun run typecheck && bun run test:run"
30
32
  },
31
33
  "keywords": [
32
34
  "indexer",
@@ -38,18 +40,19 @@
38
40
  "heavymath"
39
41
  ],
40
42
  "author": "John Huang",
41
- "license": "MIT",
43
+ "license": "BUSL-1.1",
42
44
  "peerDependencies": {
43
- "@sudobility/heavymath_types": "^0.0.1",
44
- "@sudobility/types": "^1.9.31",
45
- "@tanstack/react-query": "^5.90.5",
46
- "react": "^19.2.0",
45
+ "@sudobility/heavymath_types": "^0.0.10",
46
+ "@sudobility/types": "^1.9.55",
47
+ "@tanstack/react-query": ">=5.0.0",
48
+ "react": ">=18.0.0",
47
49
  "zustand": "^5.0.0"
48
50
  },
49
51
  "devDependencies": {
50
- "@sudobility/heavymath_types": "^0.0.1",
51
- "@sudobility/types": "^1.9.31",
52
+ "@sudobility/heavymath_types": "^0.0.10",
53
+ "@sudobility/types": "^1.9.55",
52
54
  "@tanstack/react-query": "^5.90.5",
55
+ "@testing-library/dom": "^10.4.1",
53
56
  "@testing-library/react": "^16.3.0",
54
57
  "@types/node": "^24.9.1",
55
58
  "@types/react": "^19.2.2",
@@ -64,7 +67,8 @@
64
67
  "eslint-plugin-react-hooks": "^7.0.1",
65
68
  "happy-dom": "^20.0.8",
66
69
  "prettier": "^3.6.2",
67
- "react": "^19.2.3",
70
+ "react": "^19.2.1",
71
+ "react-dom": "^19.2.1",
68
72
  "typescript": "^5.9.3",
69
73
  "vite": "^7.1.12",
70
74
  "vitest": "^4.0.4",