From df7595397b23305f9dc518fac959d1500f657592 Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 19:12:00 +0100 Subject: [PATCH 01/20] fix: add resolve.alias for @ path in vite.config.ts Map the @ alias to the src directory so all @/ imports resolve correctly at build time. Without this, Vite cannot resolve modules like @/services/RateLimitService or @/types/rateLimit. Closes #142 --- frontend/vite.config.ts | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index fbfcfb7c..8e075fc9 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -2,21 +2,10 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import path from 'path' -/** - * Vite Configuration - * - * This configuration includes: - * - React plugin for JSX/TSX support - * - Path alias (@) for cleaner imports - * - Code splitting for optimal caching - * - Test configuration for Vitest - */ export default defineConfig({ plugins: [react()], resolve: { alias: { - // Map @ to src directory for cleaner imports - // Example: import { Service } from '@/services/Service' '@': path.resolve(__dirname, './src'), }, }, @@ -24,20 +13,14 @@ export default defineConfig({ rollupOptions: { output: { manualChunks: { - // Split vendor code for better caching 'stacks-vendor': ['@stacks/connect', '@stacks/network', '@stacks/transactions'], 'react-vendor': ['react', 'react-dom', 'react-router-dom'], - } - } + }, + }, }, chunkSizeWarningLimit: 1000, }, define: { - // Polyfill for Node.js global in browser global: 'globalThis', }, - test: { - globals: true, - environment: 'jsdom', - }, }) From ef50dff88bf92e8aa4ee20e1bbe13a8dc2f094e8 Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 19:26:26 +0100 Subject: [PATCH 02/20] fix: replace missing useChartingHooks re-export with actual hook files index.charting.ts was re-exporting from @/hooks/useChartingHooks which never existed. The charting hooks were split across four separate files: useChartState, useChartIndicators, useChartDrawing, and useChartRendering. Update the re-exports to point to the files that actually exist. --- frontend/src/index.charting.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frontend/src/index.charting.ts b/frontend/src/index.charting.ts index bdc6d4da..1af9cf98 100644 --- a/frontend/src/index.charting.ts +++ b/frontend/src/index.charting.ts @@ -22,7 +22,10 @@ export { CrosshairToolComponent, MeasurementToolComponent, MeasurementToolbar, C export { ResponsiveChartWrapper, MobileChartControls, TouchGestureHandler, CompactIndicatorPanel, VerticalChartLayout, HorizontalChartLayout, FullscreenChartContainer, AdaptiveToolbar } from '@/components/ResponsiveChart'; // Hooks -export { useAdvancedChart, useTechnicalIndicators, useDrawingTools, useChartZoomPan } from '@/hooks/useChartingHooks'; +export { useChartState } from '@/hooks/useChartState'; +export { useChartIndicators } from '@/hooks/useChartIndicators'; +export { useChartDrawing } from '@/hooks/useChartDrawing'; +export { useChartRendering } from '@/hooks/useChartRendering'; // Examples export { AdvancedChartingExample, SimpleChartExample, MobileChartExample, RealtimeChartExample } from '@/examples/AdvancedChartingExamples'; From 22f87af9761ee33745cdce7c4b0fffa57ea3b3ea Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 19:28:11 +0100 Subject: [PATCH 03/20] refactor: align vitest.config.ts path import with vite.config.ts Both configs now use path as a default import and call path.resolve() for the @ alias, keeping the two config files consistent. --- frontend/vitest.config.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/vitest.config.ts b/frontend/vitest.config.ts index 0c4583e8..2000d3ae 100644 --- a/frontend/vitest.config.ts +++ b/frontend/vitest.config.ts @@ -1,7 +1,7 @@ /// import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; -import { resolve } from 'path'; +import path from 'path'; export default defineConfig({ plugins: [react()], @@ -34,7 +34,7 @@ export default defineConfig({ }, resolve: { alias: { - '@': resolve(__dirname, './src'), + '@': path.resolve(__dirname, './src'), }, }, }); From 29a242ad7257a003205fd13cabff8918ea87e065 Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 19:28:38 +0100 Subject: [PATCH 04/20] fix: include vitest.config.ts in tsconfig.node.json vitest.config.ts imports from the node path module and needs to be covered by the node tsconfig so TypeScript resolves the Node types correctly for both config files. --- frontend/tsconfig.node.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/tsconfig.node.json b/frontend/tsconfig.node.json index 8a67f62f..7ad54d46 100644 --- a/frontend/tsconfig.node.json +++ b/frontend/tsconfig.node.json @@ -22,5 +22,5 @@ "noFallthroughCasesInSwitch": true, "noUncheckedSideEffectImports": true }, - "include": ["vite.config.ts"] + "include": ["vite.config.ts", "vitest.config.ts"] } From 0abe03530f7b72436e17fc79e84ae703b0efcfbf Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 20:33:32 +0100 Subject: [PATCH 05/20] fix: use @/ alias in rateLimitMiddleware instead of relative import Replace ../services/RateLimitService with @/services/RateLimitService to be consistent with the rest of the codebase and to rely on the resolved path alias rather than a fragile relative path. --- frontend/src/middleware/rateLimitMiddleware.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/middleware/rateLimitMiddleware.ts b/frontend/src/middleware/rateLimitMiddleware.ts index 4fdc4c4d..1b943f7a 100644 --- a/frontend/src/middleware/rateLimitMiddleware.ts +++ b/frontend/src/middleware/rateLimitMiddleware.ts @@ -1,4 +1,4 @@ -import { rateLimitService } from '../services/RateLimitService'; +import { rateLimitService } from '@/services/RateLimitService'; export interface RateLimitContext { userId: string; From 4a20b13a9cd3120cc3ffdf7e87ca58d5bb5de9ff Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 20:33:54 +0100 Subject: [PATCH 06/20] fix: convert index.websocket.ts re-exports to use @/ alias All nine re-exports were using ../ relative paths. Replace them with @/ alias imports to match the project convention and ensure they resolve correctly through the Vite alias configuration. --- frontend/src/index.websocket.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/frontend/src/index.websocket.ts b/frontend/src/index.websocket.ts index a86b3dd1..d8d0cf19 100644 --- a/frontend/src/index.websocket.ts +++ b/frontend/src/index.websocket.ts @@ -1,9 +1,9 @@ -export * from '../types/websocket'; -export * from '../services/RealtimeMarketClient'; -export * from '../services/RealtimeMarketServer'; -export * from '../services/MarketPollingService'; -export * from '../services/RealtimeDataManager'; -export * from '../hooks/useRealtimeMarket'; -export * from '../components/RealtimeMarketComponents'; -export * from '../utils/websocketUtils'; -export * from '../utils/marketAnalyzer'; +export * from '@/types/websocket'; +export * from '@/services/RealtimeMarketClient'; +export * from '@/services/RealtimeMarketServer'; +export * from '@/services/MarketPollingService'; +export * from '@/services/RealtimeDataManager'; +export * from '@/hooks/useRealtimeMarket'; +export * from '@/components/RealtimeMarketComponents'; +export * from '@/utils/websocketUtils'; +export * from '@/utils/marketAnalyzer'; From bc810981e2403f3aa36c4406d56a5ee1f9a10523 Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 20:50:20 +0100 Subject: [PATCH 07/20] fix: use @/ alias in RateLimitMiddleware for service import Replace ../services/RateLimitService with @/services/RateLimitService to match the project-wide convention and resolve through the Vite path alias rather than a relative path. --- frontend/src/middleware/RateLimitMiddleware.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/middleware/RateLimitMiddleware.ts b/frontend/src/middleware/RateLimitMiddleware.ts index 4fdc4c4d..1b943f7a 100644 --- a/frontend/src/middleware/RateLimitMiddleware.ts +++ b/frontend/src/middleware/RateLimitMiddleware.ts @@ -1,4 +1,4 @@ -import { rateLimitService } from '../services/RateLimitService'; +import { rateLimitService } from '@/services/RateLimitService'; export interface RateLimitContext { userId: string; From 2d20980cb5b52e380d30a134d8af4db97da513f0 Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 20:50:29 +0100 Subject: [PATCH 08/20] fix: use @/ alias for market type imports in helpers.ts Replace ../types/market with @/types/market for both the type import and the value import to be consistent with the rest of the codebase. --- frontend/src/utils/helpers.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/utils/helpers.ts b/frontend/src/utils/helpers.ts index 68075272..35bdca8d 100644 --- a/frontend/src/utils/helpers.ts +++ b/frontend/src/utils/helpers.ts @@ -1,5 +1,5 @@ -import type { Market, Position } from '../types/market'; -import { MarketStatus, MarketOutcome } from '../types/market'; +import type { Market, Position } from '@/types/market'; +import { MarketStatus, MarketOutcome } from '@/types/market'; import { microStxToStx } from '../constants'; import i18n from '../i18n/config'; import { formatNumber } from './i18n/formatters'; From f95230d1ab4372c8830ec22c0d720bbb48a6eb24 Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 20:50:50 +0100 Subject: [PATCH 09/20] fix: use @/ alias for networkUtils import in contracts.ts Replace ../utils/networkUtils with @/utils/networkUtils to match the project convention for cross-directory imports. --- frontend/src/config/contracts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/config/contracts.ts b/frontend/src/config/contracts.ts index c1c86274..447dced3 100644 --- a/frontend/src/config/contracts.ts +++ b/frontend/src/config/contracts.ts @@ -2,7 +2,7 @@ // This file serves as the single source of truth for all contract addresses import { STACKS_MAINNET, STACKS_TESTNET } from '@stacks/network'; -import { loadNetworkPreference } from '../utils/networkUtils'; +import { loadNetworkPreference } from '@/utils/networkUtils'; export type NetworkType = 'mainnet' | 'testnet'; From 57fd541eec659a6be857443e99f15457a08c086e Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 20:51:13 +0100 Subject: [PATCH 10/20] fix: use @/ alias for re-exports in errorHandling.ts Replace ../components/* and ../hooks/* relative paths with @/ alias imports for ErrorBoundary, PageErrorBoundary, ErrorMessage, and useErrorHandler. --- frontend/src/utils/errorHandling.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/src/utils/errorHandling.ts b/frontend/src/utils/errorHandling.ts index 5f941cb2..434372ed 100644 --- a/frontend/src/utils/errorHandling.ts +++ b/frontend/src/utils/errorHandling.ts @@ -30,7 +30,7 @@ * */ -export { ErrorBoundary } from '../components/ErrorBoundary'; -export { PageErrorBoundary } from '../components/PageErrorBoundary'; -export { ErrorMessage } from '../components/ErrorMessage'; -export { useErrorHandler } from '../hooks/useErrorHandler'; +export { ErrorBoundary } from '@/components/ErrorBoundary'; +export { PageErrorBoundary } from '@/components/PageErrorBoundary'; +export { ErrorMessage } from '@/components/ErrorMessage'; +export { useErrorHandler } from '@/hooks/useErrorHandler'; From 777e45d97841803af5e2b2b58192e0d6ac1c6d3b Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 20:52:13 +0100 Subject: [PATCH 11/20] fix: use @/ alias for service imports in template and cache utils templateStorage.ts and cacheHelpers.ts both imported GDPRComplianceService and SecureStorageV2Service using ../services/ relative paths. Replace with @/ alias imports to match the project convention. --- frontend/src/utils/cacheHelpers.ts | 4 ++-- frontend/src/utils/templateStorage.ts | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/frontend/src/utils/cacheHelpers.ts b/frontend/src/utils/cacheHelpers.ts index 248d5fa3..bb70cfa9 100644 --- a/frontend/src/utils/cacheHelpers.ts +++ b/frontend/src/utils/cacheHelpers.ts @@ -1,6 +1,6 @@ import { cacheManager } from './cache'; -import { GDPRComplianceService } from '../services/GDPRComplianceService'; -import { SecureStorageV2Service } from '../services/SecureStorageV2Service'; +import { GDPRComplianceService } from '@/services/GDPRComplianceService'; +import { SecureStorageV2Service } from '@/services/SecureStorageV2Service'; export function isCacheAvailable(): boolean { try { diff --git a/frontend/src/utils/templateStorage.ts b/frontend/src/utils/templateStorage.ts index 70c00eed..b945ef8d 100644 --- a/frontend/src/utils/templateStorage.ts +++ b/frontend/src/utils/templateStorage.ts @@ -1,6 +1,6 @@ -import type { TemplateCategory } from '../types/template'; -import { GDPRComplianceService } from '../services/GDPRComplianceService'; -import { SecureStorageV2Service } from '../services/SecureStorageV2Service'; +import type { TemplateCategory } from '@/types/template'; +import { GDPRComplianceService } from '@/services/GDPRComplianceService'; +import { SecureStorageV2Service } from '@/services/SecureStorageV2Service'; export class TemplateCache { private static cache: Map = new Map(); From 20a0f909fda4d6c337c0cd985b63bc531cb88ecf Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 20:52:24 +0100 Subject: [PATCH 12/20] fix: use @/ alias for type imports in marketValidation and analytics Replace ../types/market and ../types/analytics relative imports with @/ alias paths in marketValidation.ts and analytics.ts. --- frontend/src/utils/analytics.ts | 6 +++--- frontend/src/utils/marketValidation.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/src/utils/analytics.ts b/frontend/src/utils/analytics.ts index 7d5d6fb2..dc119d48 100644 --- a/frontend/src/utils/analytics.ts +++ b/frontend/src/utils/analytics.ts @@ -1,4 +1,4 @@ -import type { Market } from '../types/market'; +import type { Market } from '@/types/market'; import type { CategoryData, MarketHealthStats, @@ -6,8 +6,8 @@ import type { TimeRange, UserActivityData, VolumeDataPoint, -} from '../types/analytics'; -import { CATEGORY_COLORS } from '../types/analytics'; +} from '@/types/analytics'; +import { CATEGORY_COLORS } from '@/types/analytics'; const DAY_MS = 24 * 60 * 60 * 1000; diff --git a/frontend/src/utils/marketValidation.ts b/frontend/src/utils/marketValidation.ts index a606cacc..482d156a 100644 --- a/frontend/src/utils/marketValidation.ts +++ b/frontend/src/utils/marketValidation.ts @@ -8,7 +8,7 @@ */ import { ValidationError } from './apiErrors'; -import { MarketStatus, MarketOutcome, isMarketStatus, isMarketOutcome } from '../types/market'; +import { MarketStatus, MarketOutcome, isMarketStatus, isMarketOutcome } from '@/types/market'; /** * Minimum market title length From 9bc633986b2e9f8eaaad1fce277648f3351196c9 Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 21:10:30 +0100 Subject: [PATCH 13/20] fix: use @/ alias for type imports in multiMarket, accessibility, marketAnalyzer Replace ../types/market, ../types/accessibility, and ../types/websocket relative imports with @/ alias paths in the three utility files. --- frontend/src/utils/accessibility.ts | 2 +- frontend/src/utils/marketAnalyzer.ts | 2 +- frontend/src/utils/multiMarket.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/utils/accessibility.ts b/frontend/src/utils/accessibility.ts index 9c7ccb91..ae104ebe 100644 --- a/frontend/src/utils/accessibility.ts +++ b/frontend/src/utils/accessibility.ts @@ -4,7 +4,7 @@ * Helper functions for accessibility features */ -import type { ScreenReaderAnnouncement } from '../types/accessibility'; +import type { ScreenReaderAnnouncement } from '@/types/accessibility'; /** * Announce message to screen readers diff --git a/frontend/src/utils/marketAnalyzer.ts b/frontend/src/utils/marketAnalyzer.ts index 92438a54..a5db4866 100644 --- a/frontend/src/utils/marketAnalyzer.ts +++ b/frontend/src/utils/marketAnalyzer.ts @@ -1,4 +1,4 @@ -import { MarketUpdate, OrderBookUpdate, TradeUpdate } from '../types/websocket'; +import { MarketUpdate, OrderBookUpdate, TradeUpdate } from '@/types/websocket'; export interface MarketStats { high: number; diff --git a/frontend/src/utils/multiMarket.ts b/frontend/src/utils/multiMarket.ts index 8ad27a71..c2672d56 100644 --- a/frontend/src/utils/multiMarket.ts +++ b/frontend/src/utils/multiMarket.ts @@ -1,4 +1,4 @@ -import type { MultiMarket, MultiOutcomeOption } from '../types/market'; +import type { MultiMarket, MultiOutcomeOption } from '@/types/market'; const BASIS_POINTS_DIVISOR = 10000; const MICROSTX_PER_STX = 1_000_000; From 3c522da5521e61edd053368919f33cde338d51a5 Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 21:10:39 +0100 Subject: [PATCH 14/20] fix: use @/ alias for type imports in template and notification utils Replace ../types/template and ../types/notifications relative imports with @/ alias paths in templateValidation.ts, notificationTemplates.ts, and templateSuggestions.ts. --- frontend/src/utils/notificationTemplates.ts | 2 +- frontend/src/utils/templateSuggestions.ts | 2 +- frontend/src/utils/templateValidation.ts | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/src/utils/notificationTemplates.ts b/frontend/src/utils/notificationTemplates.ts index ae30b83b..9fa13796 100644 --- a/frontend/src/utils/notificationTemplates.ts +++ b/frontend/src/utils/notificationTemplates.ts @@ -1,4 +1,4 @@ -import { NotificationType } from '../types/notifications'; +import { NotificationType } from '@/types/notifications'; export interface EmailTemplate { subject: string; diff --git a/frontend/src/utils/templateSuggestions.ts b/frontend/src/utils/templateSuggestions.ts index 46debfe8..cf55a7f1 100644 --- a/frontend/src/utils/templateSuggestions.ts +++ b/frontend/src/utils/templateSuggestions.ts @@ -1,4 +1,4 @@ -import type { TemplateCategory } from '../types/template'; +import type { TemplateCategory } from '@/types/template'; export const QUESTION_TEMPLATES = { crypto_price: { diff --git a/frontend/src/utils/templateValidation.ts b/frontend/src/utils/templateValidation.ts index 366b039d..da168a2d 100644 --- a/frontend/src/utils/templateValidation.ts +++ b/frontend/src/utils/templateValidation.ts @@ -1,5 +1,5 @@ -import type { TemplateValidationRule, ValidationState } from '../types/template'; -import { QUESTION_VALIDATION_RULES } from '../types/template'; +import type { TemplateValidationRule, ValidationState } from '@/types/template'; +import { QUESTION_VALIDATION_RULES } from '@/types/template'; export const validateQuestion = (question: string): { valid: boolean; errors: string[]; suggestions: string[] } => { const errors: string[] = []; From 039884c1360766b45ef66c377b464aba7c369bf8 Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 21:30:26 +0100 Subject: [PATCH 15/20] fix: use @/ alias for type imports in config/templates and types/filters Replace ../types/template in config/templates.ts and ../utils/marketCategories in types/filters.ts with @/ alias imports. --- frontend/src/config/templates.ts | 2 +- frontend/src/types/filters.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/config/templates.ts b/frontend/src/config/templates.ts index 0d067314..b1ad04ff 100644 --- a/frontend/src/config/templates.ts +++ b/frontend/src/config/templates.ts @@ -5,7 +5,7 @@ import { TEMPLATE_TIPS, type MarketTemplate, type TemplateCategory, -} from '../types/template'; +} from '@/types/template'; export const marketTemplates: Record = { [TEMPLATE_CATEGORIES.CRYPTO_PRICE]: { diff --git a/frontend/src/types/filters.ts b/frontend/src/types/filters.ts index 9a1fbeef..e34ede2d 100644 --- a/frontend/src/types/filters.ts +++ b/frontend/src/types/filters.ts @@ -1,4 +1,4 @@ -import { MarketCategory, SortOption } from '../utils/marketCategories'; +import { MarketCategory, SortOption } from '@/utils/marketCategories'; export type TimeRange = 'all' | '24h' | '7d' | '30d' | 'custom'; export type VolumeRange = 'all' | 'low' | 'medium' | 'high'; From feb6ba971e9361b0c689c2dcd01727b65679bdc5 Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 21:30:39 +0100 Subject: [PATCH 16/20] fix: use @/ alias for imports in NetworkContext Replace ../types/network and ../utils/networkUtils relative imports with @/ alias paths in NetworkContext.tsx. --- frontend/src/contexts/NetworkContext.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/contexts/NetworkContext.tsx b/frontend/src/contexts/NetworkContext.tsx index e22d4d1b..c66da140 100644 --- a/frontend/src/contexts/NetworkContext.tsx +++ b/frontend/src/contexts/NetworkContext.tsx @@ -7,7 +7,7 @@ import { createContext, useContext, useState, useEffect, useCallback, type ReactNode } from 'react'; import type { StacksNetwork } from '@stacks/network'; -import { NetworkType, type NetworkConfig, NETWORK_CONFIGS } from '../types/network'; +import { NetworkType, type NetworkConfig, NETWORK_CONFIGS } from '@/types/network'; import { getStacksNetwork, loadNetworkPreference, @@ -16,7 +16,7 @@ import { getContractName, isMainnet, isTestnet, -} from '../utils/networkUtils'; +} from '@/utils/networkUtils'; interface NetworkContextType { network: NetworkType; From 4416403af7646e8d2220840d04dbeebc152e7a08 Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 21:30:53 +0100 Subject: [PATCH 17/20] fix: use @/ alias for util imports in RecentlyViewedContext and WatchlistContext Replace ../utils/recentlyViewed and ../utils/watchlist relative imports with @/ alias paths in both context files. --- frontend/src/contexts/RecentlyViewedContext.tsx | 2 +- frontend/src/contexts/WatchlistContext.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/contexts/RecentlyViewedContext.tsx b/frontend/src/contexts/RecentlyViewedContext.tsx index ee6ed839..1c9098e6 100644 --- a/frontend/src/contexts/RecentlyViewedContext.tsx +++ b/frontend/src/contexts/RecentlyViewedContext.tsx @@ -6,7 +6,7 @@ import { removeRecentlyViewedMarket, saveRecentlyViewedEntries, type RecentlyViewedMarketEntry, -} from '../utils/recentlyViewed'; +} from '@/utils/recentlyViewed'; interface RecentlyViewedContextValue { entries: RecentlyViewedMarketEntry[]; diff --git a/frontend/src/contexts/WatchlistContext.tsx b/frontend/src/contexts/WatchlistContext.tsx index 67cf70e9..d12c0b13 100644 --- a/frontend/src/contexts/WatchlistContext.tsx +++ b/frontend/src/contexts/WatchlistContext.tsx @@ -6,7 +6,7 @@ import { removeWatchlistId, saveWatchlistIds, toggleWatchlistId, -} from '../utils/watchlist'; +} from '@/utils/watchlist'; interface WatchlistContextValue { marketIds: number[]; From 258b6bb840729477b1657957b7840fbb747d311f Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 22:22:27 +0100 Subject: [PATCH 18/20] fix: convert remaining ../ imports to @/ alias in utils and constants Bulk convert all cross-directory relative imports in src/utils/ and src/constants/ to use the @/ path alias. Covers contractErrorHandler, networkUtils, transactions, gdprInitializer, storageAudit, stakeHistory, referralTracking, explorerLinks, exportHelpers, exportValidator, notificationHelpers, portfolioHelpers, reputationAnalytics, reputationCalculations, reputationHelpers, reputationUtils, stakingHelpers, templateAnalytics, templateHelper, websocketUtils, and constants/index. --- frontend/src/constants/index.ts | 4 ++-- frontend/src/utils/contractErrorHandler.ts | 2 +- frontend/src/utils/explorerLinks.ts | 2 +- frontend/src/utils/exportHelpers.ts | 2 +- frontend/src/utils/exportValidator.ts | 2 +- frontend/src/utils/gdprInitializer.ts | 10 +++++----- frontend/src/utils/networkUtils.ts | 6 +++--- frontend/src/utils/notificationHelpers.ts | 2 +- frontend/src/utils/portfolioHelpers.ts | 2 +- frontend/src/utils/referralTracking.ts | 6 +++--- frontend/src/utils/reputationAnalytics.ts | 2 +- frontend/src/utils/reputationCalculations.ts | 2 +- frontend/src/utils/reputationHelpers.ts | 2 +- frontend/src/utils/reputationUtils.ts | 2 +- frontend/src/utils/stakeHistory.ts | 4 ++-- frontend/src/utils/stakingHelpers.ts | 2 +- frontend/src/utils/storageAudit.ts | 6 +++--- frontend/src/utils/templateAnalytics.ts | 2 +- frontend/src/utils/templateHelper.ts | 2 +- frontend/src/utils/transactions.ts | 8 ++++---- frontend/src/utils/websocketUtils.ts | 2 +- 21 files changed, 36 insertions(+), 36 deletions(-) diff --git a/frontend/src/constants/index.ts b/frontend/src/constants/index.ts index f3a96a5a..ce7dcc77 100644 --- a/frontend/src/constants/index.ts +++ b/frontend/src/constants/index.ts @@ -5,8 +5,8 @@ import { getContractAddress, getContractIdentifier, CONTRACT_NAMES, -} from '../config/contracts'; -import { getApiUrl } from '../config/network'; +} from '@/config/contracts'; +import { getApiUrl } from '@/config/network'; // Contract deployed on Stacks (uses unified config) export const CONTRACT_ADDRESS = MARKET_CONTRACT.address; diff --git a/frontend/src/utils/contractErrorHandler.ts b/frontend/src/utils/contractErrorHandler.ts index c0512f58..9bde074d 100644 --- a/frontend/src/utils/contractErrorHandler.ts +++ b/frontend/src/utils/contractErrorHandler.ts @@ -42,7 +42,7 @@ */ import { ContractError, ApiError, ErrorCode } from './apiErrors'; -import { errorLoggingService } from '../services/ErrorLoggingService'; +import { errorLoggingService } from '@/services/ErrorLoggingService'; /** * Result type for contract call operations diff --git a/frontend/src/utils/explorerLinks.ts b/frontend/src/utils/explorerLinks.ts index 7b02f710..ce6a69db 100644 --- a/frontend/src/utils/explorerLinks.ts +++ b/frontend/src/utils/explorerLinks.ts @@ -7,7 +7,7 @@ * @module explorerLinks */ -import { getExplorerUrls, type NetworkType } from '../config/network'; +import { getExplorerUrls, type NetworkType } from '@/config/network'; // Re-export NetworkType for convenience export type { NetworkType }; diff --git a/frontend/src/utils/exportHelpers.ts b/frontend/src/utils/exportHelpers.ts index 99208796..db4287b8 100644 --- a/frontend/src/utils/exportHelpers.ts +++ b/frontend/src/utils/exportHelpers.ts @@ -1,4 +1,4 @@ -import { ExportFormat } from '../types/export'; +import { ExportFormat } from '@/types/export'; import i18n from '../i18n/config'; import { formatDate as formatDateI18n, formatDateTime as formatDateTimeI18n } from './i18n/formatters'; diff --git a/frontend/src/utils/exportValidator.ts b/frontend/src/utils/exportValidator.ts index b1f7faa2..b2aa9e17 100644 --- a/frontend/src/utils/exportValidator.ts +++ b/frontend/src/utils/exportValidator.ts @@ -1,4 +1,4 @@ -import type { ExportTransaction, ExportPosition, ExportPortfolio, ExportReward } from '../types/export'; +import type { ExportTransaction, ExportPosition, ExportPortfolio, ExportReward } from '@/types/export'; export class ExportValidator { static validateTransactions(transactions: any[]): transactions is ExportTransaction[] { diff --git a/frontend/src/utils/gdprInitializer.ts b/frontend/src/utils/gdprInitializer.ts index 1224ff24..bbb4239d 100644 --- a/frontend/src/utils/gdprInitializer.ts +++ b/frontend/src/utils/gdprInitializer.ts @@ -1,8 +1,8 @@ -import { DataRetentionService } from '../services/DataRetentionService'; -import { SecureStorageService } from '../services/SecureStorageService'; -import { SecureStorageV2Service } from '../services/SecureStorageV2Service'; -import { StorageMigrationService } from '../services/StorageMigrationService'; -import { GDPRComplianceService } from '../services/GDPRComplianceService'; +import { DataRetentionService } from '@/services/DataRetentionService'; +import { SecureStorageService } from '@/services/SecureStorageService'; +import { SecureStorageV2Service } from '@/services/SecureStorageV2Service'; +import { StorageMigrationService } from '@/services/StorageMigrationService'; +import { GDPRComplianceService } from '@/services/GDPRComplianceService'; export class GDPRInitializer { private static initialized = false; diff --git a/frontend/src/utils/networkUtils.ts b/frontend/src/utils/networkUtils.ts index a04ad709..4cf35260 100644 --- a/frontend/src/utils/networkUtils.ts +++ b/frontend/src/utils/networkUtils.ts @@ -10,9 +10,9 @@ import { NETWORK_CONFIGS, DEFAULT_NETWORK, NETWORK_STORAGE_KEY -} from '../types/network'; -import { GDPRComplianceService } from '../services/GDPRComplianceService'; -import { SecureStorageV2Service } from '../services/SecureStorageV2Service'; +} from '@/types/network'; +import { GDPRComplianceService } from '@/services/GDPRComplianceService'; +import { SecureStorageV2Service } from '@/services/SecureStorageV2Service'; /** * Get Stacks network instance for the given network type diff --git a/frontend/src/utils/notificationHelpers.ts b/frontend/src/utils/notificationHelpers.ts index 3de9e97a..4181f62d 100644 --- a/frontend/src/utils/notificationHelpers.ts +++ b/frontend/src/utils/notificationHelpers.ts @@ -1,4 +1,4 @@ -import { NotificationType, NotificationChannel } from '../types/notifications'; +import { NotificationType, NotificationChannel } from '@/types/notifications'; export class NotificationHelpers { static getNotificationTitle(type: NotificationType, data?: Record): string { diff --git a/frontend/src/utils/portfolioHelpers.ts b/frontend/src/utils/portfolioHelpers.ts index 1df06ca1..7c49605e 100644 --- a/frontend/src/utils/portfolioHelpers.ts +++ b/frontend/src/utils/portfolioHelpers.ts @@ -1,4 +1,4 @@ -import { PortfolioPosition, RebalancingRecommendation } from '../types/portfolio'; +import { PortfolioPosition, RebalancingRecommendation } from '@/types/portfolio'; export class PortfolioHelpers { static formatCurrency(amount: number, currency: string = 'USD'): string { diff --git a/frontend/src/utils/referralTracking.ts b/frontend/src/utils/referralTracking.ts index 37690034..8babc438 100644 --- a/frontend/src/utils/referralTracking.ts +++ b/frontend/src/utils/referralTracking.ts @@ -1,6 +1,6 @@ -import { getReferralCodeFromUrl } from '../utils/referralUtils'; -import { GDPRComplianceService } from '../services/GDPRComplianceService'; -import { SecureStorageV2Service } from '../services/SecureStorageV2Service'; +import { getReferralCodeFromUrl } from '@/utils/referralUtils'; +import { GDPRComplianceService } from '@/services/GDPRComplianceService'; +import { SecureStorageV2Service } from '@/services/SecureStorageV2Service'; interface ReferralTrackingContext { referralCode: string | null; diff --git a/frontend/src/utils/reputationAnalytics.ts b/frontend/src/utils/reputationAnalytics.ts index ca312db9..f52dacd7 100644 --- a/frontend/src/utils/reputationAnalytics.ts +++ b/frontend/src/utils/reputationAnalytics.ts @@ -5,7 +5,7 @@ import { KYCStatus, UserReputation, Badge, -} from '../types/reputation'; +} from '@/types/reputation'; export interface ReputationMetrics { averageScore: number; diff --git a/frontend/src/utils/reputationCalculations.ts b/frontend/src/utils/reputationCalculations.ts index dfd601bd..5c108345 100644 --- a/frontend/src/utils/reputationCalculations.ts +++ b/frontend/src/utils/reputationCalculations.ts @@ -1,4 +1,4 @@ -import { ReputationScore, ReputationLevel, Badge, SuspiciousActivity } from '../types/reputation'; +import { ReputationScore, ReputationLevel, Badge, SuspiciousActivity } from '@/types/reputation'; export class ReputationCalculator { private static readonly WEIGHTS = { diff --git a/frontend/src/utils/reputationHelpers.ts b/frontend/src/utils/reputationHelpers.ts index 2fc0190d..5779c74c 100644 --- a/frontend/src/utils/reputationHelpers.ts +++ b/frontend/src/utils/reputationHelpers.ts @@ -1,4 +1,4 @@ -import { FraudAlert, UserReputation } from '../types/reputation'; +import { FraudAlert, UserReputation } from '@/types/reputation'; export class ReputationEventBus { private listeners: Map void>> = new Map(); diff --git a/frontend/src/utils/reputationUtils.ts b/frontend/src/utils/reputationUtils.ts index 86767c78..aa5974d3 100644 --- a/frontend/src/utils/reputationUtils.ts +++ b/frontend/src/utils/reputationUtils.ts @@ -5,7 +5,7 @@ import { SuspiciousActivity, FraudRiskLevel, FraudAlert, -} from '../types/reputation'; +} from '@/types/reputation'; export function calculateReputationPercentage(score: ReputationScore): number { return Math.min(100, Math.max(0, score.score)); diff --git a/frontend/src/utils/stakeHistory.ts b/frontend/src/utils/stakeHistory.ts index 8bd7c3d5..a80a6a25 100644 --- a/frontend/src/utils/stakeHistory.ts +++ b/frontend/src/utils/stakeHistory.ts @@ -9,8 +9,8 @@ export interface StakeHistoryEntry { timestamp: number; } -import { GDPRComplianceService } from '../services/GDPRComplianceService'; -import { SecureStorageV2Service } from '../services/SecureStorageV2Service'; +import { GDPRComplianceService } from '@/services/GDPRComplianceService'; +import { SecureStorageV2Service } from '@/services/SecureStorageV2Service'; const STAKE_HISTORY_KEY = '0xcast-stake-history'; const MAX_HISTORY = 200; diff --git a/frontend/src/utils/stakingHelpers.ts b/frontend/src/utils/stakingHelpers.ts index 7161fd89..6c847767 100644 --- a/frontend/src/utils/stakingHelpers.ts +++ b/frontend/src/utils/stakingHelpers.ts @@ -1,5 +1,5 @@ // Format utilities for staking display -import { OXC_CONFIG } from '../config/token'; +import { OXC_CONFIG } from '@/config/token'; // Format OXC amount with proper decimals export function formatOxcAmount(amount: bigint, decimals: number = 2): string { diff --git a/frontend/src/utils/storageAudit.ts b/frontend/src/utils/storageAudit.ts index 57e12604..5f9d98c9 100644 --- a/frontend/src/utils/storageAudit.ts +++ b/frontend/src/utils/storageAudit.ts @@ -1,6 +1,6 @@ -import { SecureStorageV2Service } from '../services/SecureStorageV2Service'; -import { StorageMigrationService } from '../services/StorageMigrationService'; -import { PIIDetectionService } from '../services/PIIDetectionService'; +import { SecureStorageV2Service } from '@/services/SecureStorageV2Service'; +import { StorageMigrationService } from '@/services/StorageMigrationService'; +import { PIIDetectionService } from '@/services/PIIDetectionService'; export interface AuditFinding { severity: 'critical' | 'high' | 'medium' | 'low'; diff --git a/frontend/src/utils/templateAnalytics.ts b/frontend/src/utils/templateAnalytics.ts index ed3d91b2..07d87c09 100644 --- a/frontend/src/utils/templateAnalytics.ts +++ b/frontend/src/utils/templateAnalytics.ts @@ -1,4 +1,4 @@ -import { TemplateCategory, TEMPLATE_CATEGORIES } from '../types/template'; +import { TemplateCategory, TEMPLATE_CATEGORIES } from '@/types/template'; export interface TemplateAnalytics { templateId: TemplateCategory; diff --git a/frontend/src/utils/templateHelper.ts b/frontend/src/utils/templateHelper.ts index af251fe4..30bd242b 100644 --- a/frontend/src/utils/templateHelper.ts +++ b/frontend/src/utils/templateHelper.ts @@ -1,4 +1,4 @@ -import type { MarketTemplate, TemplateCategory } from '../types/template'; +import type { MarketTemplate, TemplateCategory } from '@/types/template'; export interface TemplateComparison { templateId: TemplateCategory; diff --git a/frontend/src/utils/transactions.ts b/frontend/src/utils/transactions.ts index e9b7f7b6..621d494d 100644 --- a/frontend/src/utils/transactions.ts +++ b/frontend/src/utils/transactions.ts @@ -4,11 +4,11 @@ * Provides types and functions for tracking transaction status on Stacks blockchain. */ -import { getExplorerUrls } from '../config/network'; +import { getExplorerUrls } from '@/config/network'; import { getTransactionExplorerUrl, getAddressExplorerUrl } from './explorerLinks'; -import type { NetworkType } from '../types/network'; -import { GDPRComplianceService } from '../services/GDPRComplianceService'; -import { SecureStorageV2Service } from '../services/SecureStorageV2Service'; +import type { NetworkType } from '@/types/network'; +import { GDPRComplianceService } from '@/services/GDPRComplianceService'; +import { SecureStorageV2Service } from '@/services/SecureStorageV2Service'; export const TransactionStatus = { PENDING: 'pending', diff --git a/frontend/src/utils/websocketUtils.ts b/frontend/src/utils/websocketUtils.ts index 3f5d3617..caa7c8a3 100644 --- a/frontend/src/utils/websocketUtils.ts +++ b/frontend/src/utils/websocketUtils.ts @@ -1,4 +1,4 @@ -import { MarketUpdate, OrderBookUpdate, TradeUpdate } from '../types/websocket'; +import { MarketUpdate, OrderBookUpdate, TradeUpdate } from '@/types/websocket'; export interface MarketDataSnapshot { marketId: string; From 1a2c1c208f29266a7fa64332f472f0136b3dcf85 Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 22:23:14 +0100 Subject: [PATCH 19/20] fix: convert ../ imports to @/ alias in hooks and services Bulk convert all cross-directory relative imports in src/hooks/ and src/services/ to use the @/ path alias. Covers all 66 files including useContract, useMarkets, useStake, useGovernance, useLiquidity, useExport, useNotifications, useRateLimit, ApiClient, ExportService, NotificationService, RealtimeMarketClient, and all other hooks and services that were using ../ relative paths. --- frontend/src/hooks/useAnalytics.ts | 8 ++++---- frontend/src/hooks/useAnalyticsTracking.ts | 4 ++-- frontend/src/hooks/useApi.ts | 4 ++-- frontend/src/hooks/useApiCall.ts | 6 +++--- frontend/src/hooks/useAsyncReducer.ts | 2 +- frontend/src/hooks/useCache.ts | 2 +- frontend/src/hooks/useCachedData.ts | 4 ++-- frontend/src/hooks/useCachedMarket.ts | 8 ++++---- frontend/src/hooks/useContract.ts | 12 ++++++------ frontend/src/hooks/useContractPause.ts | 4 ++-- frontend/src/hooks/useContractUpgrade.ts | 4 ++-- frontend/src/hooks/useExport.ts | 8 ++++---- frontend/src/hooks/useFilterPresets.ts | 6 +++--- frontend/src/hooks/useFocusTrap.ts | 2 +- frontend/src/hooks/useGovernance.ts | 4 ++-- frontend/src/hooks/useGovernanceActions.ts | 10 +++++----- frontend/src/hooks/useLiquidity.ts | 8 ++++---- frontend/src/hooks/useLiquidityActions.ts | 8 ++++---- frontend/src/hooks/useLiquidityRewards.ts | 6 +++--- frontend/src/hooks/useLocale.ts | 2 +- frontend/src/hooks/useLogger.ts | 4 ++-- frontend/src/hooks/useMarketCreation.ts | 10 +++++----- frontend/src/hooks/useMarketFiltering.ts | 12 ++++++------ frontend/src/hooks/useMarkets.ts | 8 ++++---- frontend/src/hooks/useMigration.ts | 4 ++-- frontend/src/hooks/useMultiMarketCreation.ts | 6 +++--- frontend/src/hooks/useMultiMarkets.ts | 8 ++++---- frontend/src/hooks/useMultiStake.ts | 8 ++++---- frontend/src/hooks/useNotificationPreferences.ts | 4 ++-- frontend/src/hooks/useNotifications.ts | 4 ++-- frontend/src/hooks/useOracle.ts | 6 +++--- frontend/src/hooks/useOracleActions.ts | 8 ++++---- frontend/src/hooks/usePaginationReducer.ts | 2 +- frontend/src/hooks/usePortfolioAnalysis.ts | 8 ++++---- frontend/src/hooks/usePosition.ts | 8 ++++---- frontend/src/hooks/useRealtimeMarket.ts | 4 ++-- frontend/src/hooks/useRealtimeSignal.ts | 2 +- frontend/src/hooks/useReferralIntegration.ts | 2 +- frontend/src/hooks/useScheduledExports.ts | 6 +++--- frontend/src/hooks/useSecureStorage.ts | 6 +++--- frontend/src/hooks/useStake.ts | 12 ++++++------ frontend/src/hooks/useStakingActions.ts | 8 ++++---- frontend/src/hooks/useStakingData.ts | 4 ++-- frontend/src/hooks/useStateSnapshot.ts | 4 ++-- frontend/src/hooks/useTemplateWizard.ts | 6 +++--- frontend/src/hooks/useTransactionTracking.ts | 2 +- frontend/src/services/ApiClient.ts | 4 ++-- frontend/src/services/CacheInvalidationService.ts | 2 +- frontend/src/services/EmailNotificationService.ts | 2 +- frontend/src/services/ErrorLoggingService.ts | 2 +- frontend/src/services/ErrorRecoveryService.ts | 4 ++-- frontend/src/services/ExportService.ts | 4 ++-- frontend/src/services/LiquidityRewardsService.ts | 2 +- frontend/src/services/MarketCacheService.ts | 4 ++-- frontend/src/services/MarketPollingService.ts | 2 +- frontend/src/services/MonitoringService.ts | 2 +- frontend/src/services/NotificationService.ts | 2 +- .../src/services/PerformanceComparisonService.ts | 2 +- frontend/src/services/PortfolioAnalysisService.ts | 2 +- frontend/src/services/PushNotificationService.ts | 2 +- frontend/src/services/RealtimeDataManager.ts | 2 +- frontend/src/services/RealtimeMarketClient.ts | 2 +- frontend/src/services/RealtimeMarketServer.ts | 2 +- frontend/src/services/RecommendationEngineService.ts | 2 +- .../services/ReputationFraudIntegrationService.ts | 2 +- frontend/src/services/ReputationService.ts | 2 +- 66 files changed, 158 insertions(+), 158 deletions(-) diff --git a/frontend/src/hooks/useAnalytics.ts b/frontend/src/hooks/useAnalytics.ts index 8bb7f312..836bfcb7 100644 --- a/frontend/src/hooks/useAnalytics.ts +++ b/frontend/src/hooks/useAnalytics.ts @@ -6,8 +6,8 @@ import { useState, useEffect, useCallback, useMemo } from 'react'; import { useMarkets } from './useMarkets'; -import { useWallet } from '../components/WalletProvider'; -import { MarketStatus, MarketOutcome } from '../types/market'; +import { useWallet } from '@/components/WalletProvider'; +import { MarketStatus, MarketOutcome } from '@/types/market'; import type { PlatformStats, MarketStats, @@ -16,7 +16,7 @@ import type { UserActivityData, PersonalStats, TimeRange, -} from '../types/analytics'; +} from '@/types/analytics'; import { buildCategoryDistribution, buildMarketHealth, @@ -24,7 +24,7 @@ import { buildUserActivity, buildVolumeHistory, getDaysFromTimeRange, -} from '../utils/analytics'; +} from '@/utils/analytics'; export function useAnalytics(initialTimeRange: TimeRange = '30d') { const { markets, isLoading: marketsLoading } = useMarkets(); diff --git a/frontend/src/hooks/useAnalyticsTracking.ts b/frontend/src/hooks/useAnalyticsTracking.ts index 6597d017..eb2958ae 100644 --- a/frontend/src/hooks/useAnalyticsTracking.ts +++ b/frontend/src/hooks/useAnalyticsTracking.ts @@ -5,8 +5,8 @@ */ import { useEffect, useCallback, useRef } from 'react'; -import { useWallet } from '../components/WalletProvider'; -import { getAnalyticsService } from '../services/AnalyticsService'; +import { useWallet } from '@/components/WalletProvider'; +import { getAnalyticsService } from '@/services/AnalyticsService'; export function useAnalyticsTracking() { const { address, isConnected } = useWallet(); diff --git a/frontend/src/hooks/useApi.ts b/frontend/src/hooks/useApi.ts index 55072d8d..deba2c30 100644 --- a/frontend/src/hooks/useApi.ts +++ b/frontend/src/hooks/useApi.ts @@ -5,8 +5,8 @@ */ import { useMemo } from 'react'; -import { useNetwork } from '../contexts/NetworkContext'; -import { API_URLS, EXPLORER_URLS } from '../config/network'; +import { useNetwork } from '@/contexts/NetworkContext'; +import { API_URLS, EXPLORER_URLS } from '@/config/network'; export interface ApiConfig { baseUrl: string; diff --git a/frontend/src/hooks/useApiCall.ts b/frontend/src/hooks/useApiCall.ts index bb44c6c8..6a2e80d0 100644 --- a/frontend/src/hooks/useApiCall.ts +++ b/frontend/src/hooks/useApiCall.ts @@ -1,7 +1,7 @@ import { useState, useCallback } from 'react'; -import { ApiError } from '../utils/apiErrors'; -import { withRetry, RetryConfig } from '../utils/retry'; -import { errorLoggingService } from '../services/ErrorLoggingService'; +import { ApiError } from '@/utils/apiErrors'; +import { withRetry, RetryConfig } from '@/utils/retry'; +import { errorLoggingService } from '@/services/ErrorLoggingService'; interface UseApiCallOptions { onSuccess?: (data: T) => void; diff --git a/frontend/src/hooks/useAsyncReducer.ts b/frontend/src/hooks/useAsyncReducer.ts index 1ae59cee..8aff9aeb 100644 --- a/frontend/src/hooks/useAsyncReducer.ts +++ b/frontend/src/hooks/useAsyncReducer.ts @@ -1,5 +1,5 @@ import { useReducer, useCallback } from 'react'; -import { AsyncState, AsyncAction } from '../types/reducers'; +import { AsyncState, AsyncAction } from '@/types/reducers'; const initialAsyncState = { data: null, diff --git a/frontend/src/hooks/useCache.ts b/frontend/src/hooks/useCache.ts index 0b50340e..91be4851 100644 --- a/frontend/src/hooks/useCache.ts +++ b/frontend/src/hooks/useCache.ts @@ -1,5 +1,5 @@ import { useState, useEffect, useCallback } from 'react'; -import { cacheManager } from '../utils/cache'; +import { cacheManager } from '@/utils/cache'; interface UseCacheOptions { key: string; diff --git a/frontend/src/hooks/useCachedData.ts b/frontend/src/hooks/useCachedData.ts index 03a63d72..4e2fa5f2 100644 --- a/frontend/src/hooks/useCachedData.ts +++ b/frontend/src/hooks/useCachedData.ts @@ -1,6 +1,6 @@ import { useState, useEffect, useCallback } from 'react'; -import { cacheManager } from '../utils/cache'; -import { performanceMonitor } from '../utils/performanceMonitor'; +import { cacheManager } from '@/utils/cache'; +import { performanceMonitor } from '@/utils/performanceMonitor'; interface UseCachedDataOptions { key: string; diff --git a/frontend/src/hooks/useCachedMarket.ts b/frontend/src/hooks/useCachedMarket.ts index 26c0bacb..34e0e4a0 100644 --- a/frontend/src/hooks/useCachedMarket.ts +++ b/frontend/src/hooks/useCachedMarket.ts @@ -1,10 +1,10 @@ import { useCallback } from 'react'; import { cvToJSON, fetchCallReadOnlyFunction, uintCV } from '@stacks/transactions'; -import { useNetwork } from '../contexts/NetworkContext'; -import { parseMarketData } from '../utils/helpers'; -import { marketCacheService } from '../services/MarketCacheService'; +import { useNetwork } from '@/contexts/NetworkContext'; +import { parseMarketData } from '@/utils/helpers'; +import { marketCacheService } from '@/services/MarketCacheService'; import { useCache } from './useCache'; -import type { Market } from '../types/market'; +import type { Market } from '@/types/market'; interface UseCachedMarketOptions { marketId: number; diff --git a/frontend/src/hooks/useContract.ts b/frontend/src/hooks/useContract.ts index ebabab54..2c545e02 100644 --- a/frontend/src/hooks/useContract.ts +++ b/frontend/src/hooks/useContract.ts @@ -34,12 +34,12 @@ import { import { CONTRACT_NAMES, getContractPrincipal as getContract, -} from '../config/contracts'; -import { getNodeUrl } from '../config/network'; -import { useWallet } from '../components/WalletProvider'; -import { useNetwork } from '../contexts/NetworkContext'; -import { parseContractError, getUserFriendlyContractError } from '../utils/contractErrorHandler'; -import { errorLoggingService } from '../services/ErrorLoggingService'; +} from '@/config/contracts'; +import { getNodeUrl } from '@/config/network'; +import { useWallet } from '@/components/WalletProvider'; +import { useNetwork } from '@/contexts/NetworkContext'; +import { parseContractError, getUserFriendlyContractError } from '@/utils/contractErrorHandler'; +import { errorLoggingService } from '@/services/ErrorLoggingService'; // Type for optional Clarity values (someCV or noneCV) export type OptionalClarityValue = ReturnType | ReturnType; diff --git a/frontend/src/hooks/useContractPause.ts b/frontend/src/hooks/useContractPause.ts index 104dee7d..4511ed4a 100644 --- a/frontend/src/hooks/useContractPause.ts +++ b/frontend/src/hooks/useContractPause.ts @@ -1,7 +1,7 @@ import { useCallback, useEffect, useState } from 'react'; import { cvToJSON, fetchCallReadOnlyFunction } from '@stacks/transactions'; -import { MARKET_CONTRACT } from '../config/contracts'; -import { useNetwork } from '../contexts/NetworkContext'; +import { MARKET_CONTRACT } from '@/config/contracts'; +import { useNetwork } from '@/contexts/NetworkContext'; export function useContractPause() { const { stacksNetwork } = useNetwork(); diff --git a/frontend/src/hooks/useContractUpgrade.ts b/frontend/src/hooks/useContractUpgrade.ts index d9a595af..62696834 100644 --- a/frontend/src/hooks/useContractUpgrade.ts +++ b/frontend/src/hooks/useContractUpgrade.ts @@ -1,6 +1,6 @@ import { useState, useCallback } from 'react'; -import { ContractUpgradeService, UpgradeProposal, UpgradeHistory } from '../services/ContractUpgradeService'; -import { useWallet } from '../components/WalletProvider'; +import { ContractUpgradeService, UpgradeProposal, UpgradeHistory } from '@/services/ContractUpgradeService'; +import { useWallet } from '@/components/WalletProvider'; interface UseContractUpgradeReturn { proposeUpgrade: (newImplementation: string) => Promise; diff --git a/frontend/src/hooks/useExport.ts b/frontend/src/hooks/useExport.ts index a8e5646c..c0fa57d4 100644 --- a/frontend/src/hooks/useExport.ts +++ b/frontend/src/hooks/useExport.ts @@ -1,8 +1,8 @@ import { useState, useCallback } from 'react'; -import type { ExportOptions, ExportProgress } from '../types/export'; -import type { TransactionData, Portfolio, Position, RewardData } from '../types/transactions'; -import { ExportService } from '../services/ExportService'; -import { getFileNameWithTimestamp } from '../utils/exportHelpers'; +import type { ExportOptions, ExportProgress } from '@/types/export'; +import type { TransactionData, Portfolio, Position, RewardData } from '@/types/transactions'; +import { ExportService } from '@/services/ExportService'; +import { getFileNameWithTimestamp } from '@/utils/exportHelpers'; interface UseExportReturn { isExporting: boolean; diff --git a/frontend/src/hooks/useFilterPresets.ts b/frontend/src/hooks/useFilterPresets.ts index 4342d089..7e0d9ba5 100644 --- a/frontend/src/hooks/useFilterPresets.ts +++ b/frontend/src/hooks/useFilterPresets.ts @@ -1,7 +1,7 @@ import { useState, useEffect, useCallback } from 'react'; -import { FilterPreset, MarketFilters } from '../types/filters'; -import { GDPRComplianceService } from '../services/GDPRComplianceService'; -import { SecureStorageV2Service } from '../services/SecureStorageV2Service'; +import { FilterPreset, MarketFilters } from '@/types/filters'; +import { GDPRComplianceService } from '@/services/GDPRComplianceService'; +import { SecureStorageV2Service } from '@/services/SecureStorageV2Service'; const STORAGE_KEY = '0xcast_filter_presets'; diff --git a/frontend/src/hooks/useFocusTrap.ts b/frontend/src/hooks/useFocusTrap.ts index 0faee206..2e09151f 100644 --- a/frontend/src/hooks/useFocusTrap.ts +++ b/frontend/src/hooks/useFocusTrap.ts @@ -1,5 +1,5 @@ import { useEffect, useRef } from 'react'; -import { getFocusableElements } from '../utils/accessibility'; +import { getFocusableElements } from '@/utils/accessibility'; interface UseFocusTrapOptions { enabled?: boolean; diff --git a/frontend/src/hooks/useGovernance.ts b/frontend/src/hooks/useGovernance.ts index 77471efb..28d9a60f 100644 --- a/frontend/src/hooks/useGovernance.ts +++ b/frontend/src/hooks/useGovernance.ts @@ -8,14 +8,14 @@ import { useState, useEffect, useCallback } from 'react'; import { fetchCallReadOnlyFunction, cvToValue, Cl, AnchorMode } from '@stacks/transactions'; import { getNetwork } from '../config'; -import { GOVERNANCE_CONFIG, mapProposalStatus } from '../config/governance'; +import { GOVERNANCE_CONFIG, mapProposalStatus } from '@/config/governance'; import type { Proposal, GovernanceStats, GovernanceParameters, ContractProposal, VoteType, -} from '../types/governance'; +} from '@/types/governance'; // Default stats when data is not available const DEFAULT_STATS: GovernanceStats = { diff --git a/frontend/src/hooks/useGovernanceActions.ts b/frontend/src/hooks/useGovernanceActions.ts index f810f093..62dcca67 100644 --- a/frontend/src/hooks/useGovernanceActions.ts +++ b/frontend/src/hooks/useGovernanceActions.ts @@ -11,13 +11,13 @@ import { useState, useCallback } from 'react'; import { openContractCall } from '@stacks/connect'; import { Cl, PostConditionMode } from '@stacks/transactions'; -import { useWallet } from '../components/WalletProvider'; -import { GOVERNANCE_CONFIG } from '../config/governance'; +import { useWallet } from '@/components/WalletProvider'; +import { GOVERNANCE_CONFIG } from '@/config/governance'; import { getNetwork } from '../config'; -import type { VoteType } from '../types/governance'; +import type { VoteType } from '@/types/governance'; import { useRateLimit } from './useRateLimit'; -import { parseContractError, getUserFriendlyContractError } from '../utils/contractErrorHandler'; -import { errorLoggingService } from '../services/ErrorLoggingService'; +import { parseContractError, getUserFriendlyContractError } from '@/utils/contractErrorHandler'; +import { errorLoggingService } from '@/services/ErrorLoggingService'; interface ActionState { isLoading: boolean; diff --git a/frontend/src/hooks/useLiquidity.ts b/frontend/src/hooks/useLiquidity.ts index a22094ca..38791848 100644 --- a/frontend/src/hooks/useLiquidity.ts +++ b/frontend/src/hooks/useLiquidity.ts @@ -24,15 +24,15 @@ import { useState, useCallback } from 'react'; import { cvToValue, hexToCV } from '@stacks/transactions'; -import { getContractPrincipal, CONTRACT_NAMES } from '../config/contracts'; -import { getNodeUrl } from '../config/network'; +import { getContractPrincipal, CONTRACT_NAMES } from '@/config/contracts'; +import { getNodeUrl } from '@/config/network'; import type { LiquidityPool, LPPosition, PoolStats, FeeConfig, -} from '../types/liquidity'; -import { calculateSharePercentage, calculatePositionValue, DEFAULT_FEE_CONFIG } from '../types/liquidity'; +} from '@/types/liquidity'; +import { calculateSharePercentage, calculatePositionValue, DEFAULT_FEE_CONFIG } from '@/types/liquidity'; /** * Get liquidity pool contract configuration diff --git a/frontend/src/hooks/useLiquidityActions.ts b/frontend/src/hooks/useLiquidityActions.ts index 59afe5f7..d4dd72d8 100644 --- a/frontend/src/hooks/useLiquidityActions.ts +++ b/frontend/src/hooks/useLiquidityActions.ts @@ -45,12 +45,12 @@ import { useCallback, useState } from 'react'; import { openContractCall } from '@stacks/connect'; import { uintCV, PostConditionMode, Pc } from '@stacks/transactions'; -import { getContractPrincipal, CONTRACT_NAMES } from '../config/contracts'; -import { useWallet } from '../components/WalletProvider'; +import { getContractPrincipal, CONTRACT_NAMES } from '@/config/contracts'; +import { useWallet } from '@/components/WalletProvider'; import { safeBigIntToNumber } from './useContract'; import { createRateLimitMiddleware } from '../middleware/rateLimitMiddleware'; -import { parseContractError, getUserFriendlyContractError } from '../utils/contractErrorHandler'; -import { errorLoggingService } from '../services/ErrorLoggingService'; +import { parseContractError, getUserFriendlyContractError } from '@/utils/contractErrorHandler'; +import { errorLoggingService } from '@/services/ErrorLoggingService'; function getLiquidityPoolContract() { return getContractPrincipal(CONTRACT_NAMES.LIQUIDITY_POOL); diff --git a/frontend/src/hooks/useLiquidityRewards.ts b/frontend/src/hooks/useLiquidityRewards.ts index 2a4d2d4f..53f5a00f 100644 --- a/frontend/src/hooks/useLiquidityRewards.ts +++ b/frontend/src/hooks/useLiquidityRewards.ts @@ -6,9 +6,9 @@ import { calculateHistoricalAPY, type RewardCalculation, type MarketVolume, -} from '../utils/liquidityRewardsCalculator'; -import { liquidityRewardsService } from '../services/LiquidityRewardsService'; -import { useWallet } from '../components/WalletProvider'; +} from '@/utils/liquidityRewardsCalculator'; +import { liquidityRewardsService } from '@/services/LiquidityRewardsService'; +import { useWallet } from '@/components/WalletProvider'; interface UseLiquidityRewardsReturn { calculateRewards: ( diff --git a/frontend/src/hooks/useLocale.ts b/frontend/src/hooks/useLocale.ts index 5b59546a..84ecf426 100644 --- a/frontend/src/hooks/useLocale.ts +++ b/frontend/src/hooks/useLocale.ts @@ -7,7 +7,7 @@ import { formatTime, formatPercentage, formatStx as formatStxUtil -} from '../utils/i18n/formatters'; +} from '@/utils/i18n/formatters'; export function useLocale() { const { i18n } = useTranslation(); diff --git a/frontend/src/hooks/useLogger.ts b/frontend/src/hooks/useLogger.ts index 9a165ae2..ddab1f1f 100644 --- a/frontend/src/hooks/useLogger.ts +++ b/frontend/src/hooks/useLogger.ts @@ -1,6 +1,6 @@ import { useCallback, useMemo } from 'react'; -import { logger, type LogEntry, type LogLevel } from '../utils/logger'; -import { monitoringService } from '../services/MonitoringService'; +import { logger, type LogEntry, type LogLevel } from '@/utils/logger'; +import { monitoringService } from '@/services/MonitoringService'; interface UseLoggerReturn { debug: (message: string, context?: Record) => void; diff --git a/frontend/src/hooks/useMarketCreation.ts b/frontend/src/hooks/useMarketCreation.ts index 07da2b55..32eeacd7 100644 --- a/frontend/src/hooks/useMarketCreation.ts +++ b/frontend/src/hooks/useMarketCreation.ts @@ -25,13 +25,13 @@ import { useState, useCallback } from 'react'; import { useContract } from './useContract'; -import type { CreateMarketFormData } from '../types/market'; +import type { CreateMarketFormData } from '@/types/market'; import { useContractPause } from './useContractPause'; import { createRateLimitMiddleware } from '../middleware/rateLimitMiddleware'; -import { useWallet } from '../components/WalletProvider'; -import { parseContractError, getUserFriendlyContractError } from '../utils/contractErrorHandler'; -import { errorLoggingService } from '../services/ErrorLoggingService'; -import { MARKET_CONTRACT } from '../config/contracts'; +import { useWallet } from '@/components/WalletProvider'; +import { parseContractError, getUserFriendlyContractError } from '@/utils/contractErrorHandler'; +import { errorLoggingService } from '@/services/ErrorLoggingService'; +import { MARKET_CONTRACT } from '@/config/contracts'; interface MarketCreationState { isCreating: boolean; diff --git a/frontend/src/hooks/useMarketFiltering.ts b/frontend/src/hooks/useMarketFiltering.ts index 4d5b75b5..32d12f3a 100644 --- a/frontend/src/hooks/useMarketFiltering.ts +++ b/frontend/src/hooks/useMarketFiltering.ts @@ -6,21 +6,21 @@ */ import { useMemo, useState, useCallback, useEffect } from 'react'; import { useSearchParams } from 'react-router-dom'; -import type { Market } from '../types/market'; -import { MarketStatus } from '../types/market'; +import type { Market } from '@/types/market'; +import { MarketStatus } from '@/types/market'; import { TimeRange, VolumeRange, VOLUME_THRESHOLDS, -} from '../types/filters'; -import { GDPRComplianceService } from '../services/GDPRComplianceService'; +} from '@/types/filters'; +import { GDPRComplianceService } from '@/services/GDPRComplianceService'; import { MarketCategory, SortOption, categorizeMarket, getCategoryConfig, -} from '../utils/marketCategories'; -import { loadWatchlistIds } from '../utils/watchlist'; +} from '@/utils/marketCategories'; +import { loadWatchlistIds } from '@/utils/watchlist'; interface UseMarketFilteringOptions { markets: Market[]; diff --git a/frontend/src/hooks/useMarkets.ts b/frontend/src/hooks/useMarkets.ts index 83be99ed..30972bc1 100644 --- a/frontend/src/hooks/useMarkets.ts +++ b/frontend/src/hooks/useMarkets.ts @@ -1,9 +1,9 @@ import { useState, useEffect, useCallback, useRef } from 'react'; import { cvToJSON, fetchCallReadOnlyFunction, uintCV } from '@stacks/transactions'; -import type { Market } from '../types/market'; -import { parseMarketData } from '../utils/helpers'; -import { MARKET_CONTRACT } from '../config/contracts'; -import { useNetwork } from '../contexts/NetworkContext'; +import type { Market } from '@/types/market'; +import { parseMarketData } from '@/utils/helpers'; +import { MARKET_CONTRACT } from '@/config/contracts'; +import { useNetwork } from '@/contexts/NetworkContext'; // Auto-refresh interval in milliseconds (30 seconds) const REFRESH_INTERVAL_MS = 30000; diff --git a/frontend/src/hooks/useMigration.ts b/frontend/src/hooks/useMigration.ts index 8f6921e5..3a048ca4 100644 --- a/frontend/src/hooks/useMigration.ts +++ b/frontend/src/hooks/useMigration.ts @@ -1,6 +1,6 @@ import { useState, useCallback } from 'react'; -import { MigrationService, Migration, MigrationData } from '../services/MigrationService'; -import { useWallet } from '../components/WalletProvider'; +import { MigrationService, Migration, MigrationData } from '@/services/MigrationService'; +import { useWallet } from '@/components/WalletProvider'; interface UseMigrationReturn { registerMigration: ( diff --git a/frontend/src/hooks/useMultiMarketCreation.ts b/frontend/src/hooks/useMultiMarketCreation.ts index ba9c556b..e9f9246d 100644 --- a/frontend/src/hooks/useMultiMarketCreation.ts +++ b/frontend/src/hooks/useMultiMarketCreation.ts @@ -1,9 +1,9 @@ import { useState, useCallback } from 'react'; import { openContractCall } from '@stacks/connect'; import { uintCV, stringUtf8CV, listCV, PostConditionMode } from '@stacks/transactions'; -import { useWallet } from '../components/WalletProvider'; -import { useNetwork } from '../contexts/NetworkContext'; -import { MARKET_MULTI_CONTRACT } from '../config/contracts'; +import { useWallet } from '@/components/WalletProvider'; +import { useNetwork } from '@/contexts/NetworkContext'; +import { MARKET_MULTI_CONTRACT } from '@/config/contracts'; import { useContractPause } from './useContractPause'; export interface CreateMultiMarketInput { diff --git a/frontend/src/hooks/useMultiMarkets.ts b/frontend/src/hooks/useMultiMarkets.ts index 57aabd3c..86824f66 100644 --- a/frontend/src/hooks/useMultiMarkets.ts +++ b/frontend/src/hooks/useMultiMarkets.ts @@ -1,9 +1,9 @@ import { useState, useEffect, useCallback } from 'react'; import { cvToJSON, fetchCallReadOnlyFunction, uintCV } from '@stacks/transactions'; -import { useNetwork } from '../contexts/NetworkContext'; -import { MARKET_MULTI_CONTRACT } from '../config/contracts'; -import type { MultiMarket } from '../types/market'; -import { parseMultiMarketData } from '../utils/multiMarket'; +import { useNetwork } from '@/contexts/NetworkContext'; +import { MARKET_MULTI_CONTRACT } from '@/config/contracts'; +import type { MultiMarket } from '@/types/market'; +import { parseMultiMarketData } from '@/utils/multiMarket'; export function useMultiMarkets() { const { stacksNetwork } = useNetwork(); diff --git a/frontend/src/hooks/useMultiStake.ts b/frontend/src/hooks/useMultiStake.ts index b62e881f..e8ef2b6a 100644 --- a/frontend/src/hooks/useMultiStake.ts +++ b/frontend/src/hooks/useMultiStake.ts @@ -2,10 +2,10 @@ import { useState, useCallback } from 'react'; import { openContractCall } from '@stacks/connect'; import { uintCV, PostConditionMode, Pc } from '@stacks/transactions'; import { stxToMicroStx, MIN_STAKE, MAX_STAKE } from '../constants'; -import { useWallet } from '../components/WalletProvider'; -import { useNetwork } from '../contexts/NetworkContext'; -import { MARKET_MULTI_CONTRACT } from '../config/contracts'; -import { validateAmount, validateMarketId } from '../utils/validation'; +import { useWallet } from '@/components/WalletProvider'; +import { useNetwork } from '@/contexts/NetworkContext'; +import { MARKET_MULTI_CONTRACT } from '@/config/contracts'; +import { validateAmount, validateMarketId } from '@/utils/validation'; import { useContractPause } from './useContractPause'; interface UseMultiStakeReturn { diff --git a/frontend/src/hooks/useNotificationPreferences.ts b/frontend/src/hooks/useNotificationPreferences.ts index efcba9b2..8adcf8eb 100644 --- a/frontend/src/hooks/useNotificationPreferences.ts +++ b/frontend/src/hooks/useNotificationPreferences.ts @@ -1,11 +1,11 @@ import { useState, useCallback, useEffect } from 'react'; -import { NotificationService } from '../services/NotificationService'; +import { NotificationService } from '@/services/NotificationService'; import type { NotificationPreference, NotificationType, NotificationChannel, NotificationFrequency, -} from '../types/notifications'; +} from '@/types/notifications'; interface UseNotificationPreferencesReturn { preferences: NotificationPreference[]; diff --git a/frontend/src/hooks/useNotifications.ts b/frontend/src/hooks/useNotifications.ts index 6a10053e..e96c3ace 100644 --- a/frontend/src/hooks/useNotifications.ts +++ b/frontend/src/hooks/useNotifications.ts @@ -1,5 +1,5 @@ import { useState, useCallback, useEffect } from 'react'; -import { NotificationService } from '../services/NotificationService'; +import { NotificationService } from '@/services/NotificationService'; import type { Notification, NotificationPreference, @@ -8,7 +8,7 @@ import type { NotificationType, NotificationChannel, NotificationFrequency, -} from '../types/notifications'; +} from '@/types/notifications'; interface UseNotificationsReturn { notifications: Notification[]; diff --git a/frontend/src/hooks/useOracle.ts b/frontend/src/hooks/useOracle.ts index 8484be8f..d876c5ec 100644 --- a/frontend/src/hooks/useOracle.ts +++ b/frontend/src/hooks/useOracle.ts @@ -25,8 +25,8 @@ import { useState, useEffect, useCallback } from 'react'; import { cvToValue, hexToCV } from '@stacks/transactions'; -import { getContractPrincipal, CONTRACT_NAMES } from '../config/contracts'; -import { getNodeUrl } from '../config/network'; +import { getContractPrincipal, CONTRACT_NAMES } from '@/config/contracts'; +import { getNodeUrl } from '@/config/network'; import type { OracleStats, OracleReputation, @@ -38,7 +38,7 @@ import type { OracleSettings, DisputeStatus, VoteType, -} from '../types/oracle'; +} from '@/types/oracle'; /** * Get oracle contract configuration diff --git a/frontend/src/hooks/useOracleActions.ts b/frontend/src/hooks/useOracleActions.ts index 191e2ccb..324a2c8c 100644 --- a/frontend/src/hooks/useOracleActions.ts +++ b/frontend/src/hooks/useOracleActions.ts @@ -46,11 +46,11 @@ import { PostConditionMode, Pc, } from '@stacks/transactions'; -import { getContractPrincipal, CONTRACT_NAMES } from '../config/contracts'; -import { useWallet } from '../components/WalletProvider'; +import { getContractPrincipal, CONTRACT_NAMES } from '@/config/contracts'; +import { useWallet } from '@/components/WalletProvider'; import { safeBigIntToNumber } from './useContract'; -import { parseContractError, getUserFriendlyContractError } from '../utils/contractErrorHandler'; -import { errorLoggingService } from '../services/ErrorLoggingService'; +import { parseContractError, getUserFriendlyContractError } from '@/utils/contractErrorHandler'; +import { errorLoggingService } from '@/services/ErrorLoggingService'; /** * Get oracle contract configuration diff --git a/frontend/src/hooks/usePaginationReducer.ts b/frontend/src/hooks/usePaginationReducer.ts index 53e19155..6052da1e 100644 --- a/frontend/src/hooks/usePaginationReducer.ts +++ b/frontend/src/hooks/usePaginationReducer.ts @@ -1,5 +1,5 @@ import { useReducer, useCallback } from 'react'; -import { PaginationState, PaginationAction } from '../types/reducers'; +import { PaginationState, PaginationAction } from '@/types/reducers'; const initialState: PaginationState = { page: 1, diff --git a/frontend/src/hooks/usePortfolioAnalysis.ts b/frontend/src/hooks/usePortfolioAnalysis.ts index ac9e9d34..f8d1f066 100644 --- a/frontend/src/hooks/usePortfolioAnalysis.ts +++ b/frontend/src/hooks/usePortfolioAnalysis.ts @@ -1,8 +1,8 @@ import { useState, useCallback, useEffect } from 'react'; -import { Portfolio, PortfolioMetrics, PortfolioRecommendation, RecommendationResponse } from '../types/portfolio'; -import { PortfolioAnalysisService } from '../services/PortfolioAnalysisService'; -import { RecommendationEngineService } from '../services/RecommendationEngineService'; -import { PerformanceComparisonService } from '../services/PerformanceComparisonService'; +import { Portfolio, PortfolioMetrics, PortfolioRecommendation, RecommendationResponse } from '@/types/portfolio'; +import { PortfolioAnalysisService } from '@/services/PortfolioAnalysisService'; +import { RecommendationEngineService } from '@/services/RecommendationEngineService'; +import { PerformanceComparisonService } from '@/services/PerformanceComparisonService'; export function usePortfolioAnalysis(userId: string) { const [portfolio, setPortfolio] = useState(null); diff --git a/frontend/src/hooks/usePosition.ts b/frontend/src/hooks/usePosition.ts index 3bc9c877..c1d33396 100644 --- a/frontend/src/hooks/usePosition.ts +++ b/frontend/src/hooks/usePosition.ts @@ -1,9 +1,9 @@ import { useState, useCallback, useEffect } from 'react'; import { cvToJSON, fetchCallReadOnlyFunction, uintCV, principalCV } from '@stacks/transactions'; -import type { Position } from '../types/market'; -import { parsePosition } from '../utils/helpers'; -import { CONTRACT_NAMES, getContractAddress } from '../config/contracts'; -import { useNetwork } from '../contexts/NetworkContext'; +import type { Position } from '@/types/market'; +import { parsePosition } from '@/utils/helpers'; +import { CONTRACT_NAMES, getContractAddress } from '@/config/contracts'; +import { useNetwork } from '@/contexts/NetworkContext'; export function usePosition(marketId: number | null, userAddress: string | null) { const { stacksNetwork, network } = useNetwork(); diff --git a/frontend/src/hooks/useRealtimeMarket.ts b/frontend/src/hooks/useRealtimeMarket.ts index c48fe99d..95090423 100644 --- a/frontend/src/hooks/useRealtimeMarket.ts +++ b/frontend/src/hooks/useRealtimeMarket.ts @@ -1,6 +1,6 @@ import { useEffect, useState, useCallback, useRef } from 'react'; -import { getRealtimeDataManager } from '../services/RealtimeDataManager'; -import { MarketUpdate, OrderBookUpdate, TradeUpdate } from '../types/websocket'; +import { getRealtimeDataManager } from '@/services/RealtimeDataManager'; +import { MarketUpdate, OrderBookUpdate, TradeUpdate } from '@/types/websocket'; export function useRealtimeMarketData(marketId: string) { const [marketData, setMarketData] = useState(null); diff --git a/frontend/src/hooks/useRealtimeSignal.ts b/frontend/src/hooks/useRealtimeSignal.ts index c0f00208..7e74da59 100644 --- a/frontend/src/hooks/useRealtimeSignal.ts +++ b/frontend/src/hooks/useRealtimeSignal.ts @@ -1,6 +1,6 @@ import { useEffect, useRef, useState } from 'react'; import { useApi } from './useApi'; -import { getRealtimeWsUrl } from '../utils/realtime'; +import { getRealtimeWsUrl } from '@/utils/realtime'; interface UseRealtimeSignalOptions { enabled?: boolean; diff --git a/frontend/src/hooks/useReferralIntegration.ts b/frontend/src/hooks/useReferralIntegration.ts index 25b6130c..0370e307 100644 --- a/frontend/src/hooks/useReferralIntegration.ts +++ b/frontend/src/hooks/useReferralIntegration.ts @@ -1,6 +1,6 @@ import { useEffect, useState, useCallback } from 'react'; import { TxStatus } from '@stacks/connect'; -import type { Market, Prediction } from '../types/market'; +import type { Market, Prediction } from '@/types/market'; interface ReferralReward { id: string; diff --git a/frontend/src/hooks/useScheduledExports.ts b/frontend/src/hooks/useScheduledExports.ts index e018a3dc..831cee35 100644 --- a/frontend/src/hooks/useScheduledExports.ts +++ b/frontend/src/hooks/useScheduledExports.ts @@ -1,7 +1,7 @@ import { useState, useCallback, useEffect } from 'react'; -import type { ScheduledExport, ExportSchedule } from '../types/export'; -import { GDPRComplianceService } from '../services/GDPRComplianceService'; -import { SecureStorageV2Service } from '../services/SecureStorageV2Service'; +import type { ScheduledExport, ExportSchedule } from '@/types/export'; +import { GDPRComplianceService } from '@/services/GDPRComplianceService'; +import { SecureStorageV2Service } from '@/services/SecureStorageV2Service'; interface UseScheduledExportsReturn { exports: ScheduledExport[]; diff --git a/frontend/src/hooks/useSecureStorage.ts b/frontend/src/hooks/useSecureStorage.ts index 87441a65..0ba02f18 100644 --- a/frontend/src/hooks/useSecureStorage.ts +++ b/frontend/src/hooks/useSecureStorage.ts @@ -1,7 +1,7 @@ import { useState, useEffect, useCallback } from 'react'; -import { SecureStorageV2Service } from '../services/SecureStorageV2Service'; -import { StorageMigrationService } from '../services/StorageMigrationService'; -import { EncryptionService } from '../services/EncryptionService'; +import { SecureStorageV2Service } from '@/services/SecureStorageV2Service'; +import { StorageMigrationService } from '@/services/StorageMigrationService'; +import { EncryptionService } from '@/services/EncryptionService'; export interface SecureStorageStatus { initialized: boolean; diff --git a/frontend/src/hooks/useStake.ts b/frontend/src/hooks/useStake.ts index cdafe600..f1119cd2 100644 --- a/frontend/src/hooks/useStake.ts +++ b/frontend/src/hooks/useStake.ts @@ -1,15 +1,15 @@ import { useState, useCallback } from 'react'; import { openContractCall } from '@stacks/connect'; import { uintCV, PostConditionMode, Pc } from '@stacks/transactions'; -import { MARKET_CONTRACT } from '../config/contracts'; +import { MARKET_CONTRACT } from '@/config/contracts'; import { stxToMicroStx, MIN_STAKE, MAX_STAKE } from '../constants'; -import { useWallet } from '../components/WalletProvider'; -import { validateAmount, validateMarketId } from '../utils/validation'; -import { addStakeHistoryEntry, type StakeOutcome } from '../utils/stakeHistory'; +import { useWallet } from '@/components/WalletProvider'; +import { validateAmount, validateMarketId } from '@/utils/validation'; +import { addStakeHistoryEntry, type StakeOutcome } from '@/utils/stakeHistory'; import { useContractPause } from './useContractPause'; import { createRateLimitMiddleware } from '../middleware/rateLimitMiddleware'; -import { parseContractError, getUserFriendlyContractError } from '../utils/contractErrorHandler'; -import { errorLoggingService } from '../services/ErrorLoggingService'; +import { parseContractError, getUserFriendlyContractError } from '@/utils/contractErrorHandler'; +import { errorLoggingService } from '@/services/ErrorLoggingService'; interface UseStakeReturn { placeYesStake: (marketId: number, amount: number, onSuccess?: () => void) => Promise; diff --git a/frontend/src/hooks/useStakingActions.ts b/frontend/src/hooks/useStakingActions.ts index 5c6a6d82..2031145a 100644 --- a/frontend/src/hooks/useStakingActions.ts +++ b/frontend/src/hooks/useStakingActions.ts @@ -2,11 +2,11 @@ import { useState, useCallback } from 'react'; import { openContractCall } from '@stacks/connect'; import { uintCV, PostConditionMode, Pc } from '@stacks/transactions'; -import { TOKEN_CONTRACT } from '../config/contracts'; -import { useWallet } from '../components/WalletProvider'; +import { TOKEN_CONTRACT } from '@/config/contracts'; +import { useWallet } from '@/components/WalletProvider'; import { safeBigIntToNumber, validateTransactionAmount } from './useContract'; -import { parseContractError, getUserFriendlyContractError } from '../utils/contractErrorHandler'; -import { errorLoggingService } from '../services/ErrorLoggingService'; +import { parseContractError, getUserFriendlyContractError } from '@/utils/contractErrorHandler'; +import { errorLoggingService } from '@/services/ErrorLoggingService'; interface UseStakingActionsReturn { stake: (amount: bigint, onSuccess?: () => void) => Promise; diff --git a/frontend/src/hooks/useStakingData.ts b/frontend/src/hooks/useStakingData.ts index ef1ce266..13ab665d 100644 --- a/frontend/src/hooks/useStakingData.ts +++ b/frontend/src/hooks/useStakingData.ts @@ -1,8 +1,8 @@ // Hook for fetching real staking data from the oxcast contract import { useState, useEffect, useCallback } from 'react'; import { cvToJSON, fetchCallReadOnlyFunction, principalCV } from '@stacks/transactions'; -import { CONTRACT_NAMES, getContractAddress } from '../config/contracts'; -import { useNetwork } from '../contexts/NetworkContext'; +import { CONTRACT_NAMES, getContractAddress } from '@/config/contracts'; +import { useNetwork } from '@/contexts/NetworkContext'; export interface StakingData { totalStaked: bigint; diff --git a/frontend/src/hooks/useStateSnapshot.ts b/frontend/src/hooks/useStateSnapshot.ts index 30ed2e7c..47647b8d 100644 --- a/frontend/src/hooks/useStateSnapshot.ts +++ b/frontend/src/hooks/useStateSnapshot.ts @@ -1,6 +1,6 @@ import { useState, useCallback } from 'react'; -import { StateSnapshotService, Snapshot } from '../services/StateSnapshotService'; -import { useWallet } from '../components/WalletProvider'; +import { StateSnapshotService, Snapshot } from '@/services/StateSnapshotService'; +import { useWallet } from '@/components/WalletProvider'; interface UseStateSnapshotReturn { createSnapshot: (stateHash: Uint8Array, dataSize: number, description: string) => Promise; diff --git a/frontend/src/hooks/useTemplateWizard.ts b/frontend/src/hooks/useTemplateWizard.ts index 0e1a3fd2..c3112914 100644 --- a/frontend/src/hooks/useTemplateWizard.ts +++ b/frontend/src/hooks/useTemplateWizard.ts @@ -1,7 +1,7 @@ import { useState, useCallback } from 'react'; -import type { TemplateCategory } from '../types/template'; -import { validateMarketForm } from '../utils/templateValidation'; -import type { ValidationState } from '../types/template'; +import type { TemplateCategory } from '@/types/template'; +import { validateMarketForm } from '@/utils/templateValidation'; +import type { ValidationState } from '@/types/template'; interface UseTemplateWizardReturn { currentStep: number; diff --git a/frontend/src/hooks/useTransactionTracking.ts b/frontend/src/hooks/useTransactionTracking.ts index b3b8b68a..d93ab911 100644 --- a/frontend/src/hooks/useTransactionTracking.ts +++ b/frontend/src/hooks/useTransactionTracking.ts @@ -12,7 +12,7 @@ import { updateTransactionStatus, getPendingTransactions, clearTransactionHistory, -} from '../utils/transactions'; +} from '@/utils/transactions'; // Polling interval for checking pending transactions (15 seconds) const POLL_INTERVAL = 15000; diff --git a/frontend/src/services/ApiClient.ts b/frontend/src/services/ApiClient.ts index 072d4ac8..769964d9 100644 --- a/frontend/src/services/ApiClient.ts +++ b/frontend/src/services/ApiClient.ts @@ -1,5 +1,5 @@ -import { ApiError, ErrorCode } from '../utils/apiErrors'; -import { withRetry, RetryConfig } from '../utils/retry'; +import { ApiError, ErrorCode } from '@/utils/apiErrors'; +import { withRetry, RetryConfig } from '@/utils/retry'; import { errorLoggingService } from './ErrorLoggingService'; interface RequestConfig extends RequestInit { diff --git a/frontend/src/services/CacheInvalidationService.ts b/frontend/src/services/CacheInvalidationService.ts index d9287522..09955ba7 100644 --- a/frontend/src/services/CacheInvalidationService.ts +++ b/frontend/src/services/CacheInvalidationService.ts @@ -1,5 +1,5 @@ import { marketCacheService } from './MarketCacheService'; -import { cacheManager } from '../utils/cache'; +import { cacheManager } from '@/utils/cache'; type InvalidationStrategy = 'immediate' | 'delayed' | 'smart'; diff --git a/frontend/src/services/EmailNotificationService.ts b/frontend/src/services/EmailNotificationService.ts index 6757b9dc..f208b88e 100644 --- a/frontend/src/services/EmailNotificationService.ts +++ b/frontend/src/services/EmailNotificationService.ts @@ -1,4 +1,4 @@ -import type { EmailNotificationPayload } from '../types/notifications'; +import type { EmailNotificationPayload } from '@/types/notifications'; export class EmailNotificationService { static async sendEmail(payload: EmailNotificationPayload): Promise { diff --git a/frontend/src/services/ErrorLoggingService.ts b/frontend/src/services/ErrorLoggingService.ts index ded1b6f1..0982800d 100644 --- a/frontend/src/services/ErrorLoggingService.ts +++ b/frontend/src/services/ErrorLoggingService.ts @@ -1,4 +1,4 @@ -import { ApiError, ErrorCode } from '../utils/apiErrors'; +import { ApiError, ErrorCode } from '@/utils/apiErrors'; import { GDPRComplianceService } from './GDPRComplianceService'; import { SecureStorageV2Service } from './SecureStorageV2Service'; diff --git a/frontend/src/services/ErrorRecoveryService.ts b/frontend/src/services/ErrorRecoveryService.ts index d9872ca0..46d355ce 100644 --- a/frontend/src/services/ErrorRecoveryService.ts +++ b/frontend/src/services/ErrorRecoveryService.ts @@ -5,8 +5,8 @@ * Implements retry logic, fallback mechanisms, and user guidance for error resolution. */ -import { ApiError, ErrorCode, ContractError } from '../utils/apiErrors'; -import { withRetry } from '../utils/retry'; +import { ApiError, ErrorCode, ContractError } from '@/utils/apiErrors'; +import { withRetry } from '@/utils/retry'; import { errorLoggingService } from './ErrorLoggingService'; export interface RecoveryStrategy { diff --git a/frontend/src/services/ExportService.ts b/frontend/src/services/ExportService.ts index 2c0ff85a..f16a48b9 100644 --- a/frontend/src/services/ExportService.ts +++ b/frontend/src/services/ExportService.ts @@ -1,6 +1,6 @@ -import type { ExportTransaction, ExportPosition, ExportPortfolio, ExportReward, TaxReport } from '../types/export'; +import type { ExportTransaction, ExportPosition, ExportPortfolio, ExportReward, TaxReport } from '@/types/export'; import { convertToCSV, convertToJSON, downloadFile, getMimeType, formatDate, formatCurrency } from './exportHelpers'; -import type { ExportFormat, ExportType } from '../types/export'; +import type { ExportFormat, ExportType } from '@/types/export'; export class ExportService { static async generateTransactionExport( diff --git a/frontend/src/services/LiquidityRewardsService.ts b/frontend/src/services/LiquidityRewardsService.ts index c9cf5608..34fdce19 100644 --- a/frontend/src/services/LiquidityRewardsService.ts +++ b/frontend/src/services/LiquidityRewardsService.ts @@ -2,7 +2,7 @@ import type { LiquidityPosition, HistoricalReward, MarketVolume, -} from '../utils/liquidityRewardsCalculator'; +} from '@/utils/liquidityRewardsCalculator'; import { GDPRComplianceService } from './GDPRComplianceService'; import { SecureStorageV2Service } from './SecureStorageV2Service'; diff --git a/frontend/src/services/MarketCacheService.ts b/frontend/src/services/MarketCacheService.ts index c62eb196..bc88f589 100644 --- a/frontend/src/services/MarketCacheService.ts +++ b/frontend/src/services/MarketCacheService.ts @@ -1,5 +1,5 @@ -import { cacheManager } from '../utils/cache'; -import type { Market } from '../types/market'; +import { cacheManager } from '@/utils/cache'; +import type { Market } from '@/types/market'; interface MarketCacheConfig { marketTTL: number; diff --git a/frontend/src/services/MarketPollingService.ts b/frontend/src/services/MarketPollingService.ts index d24ce5ea..75289161 100644 --- a/frontend/src/services/MarketPollingService.ts +++ b/frontend/src/services/MarketPollingService.ts @@ -1,4 +1,4 @@ -import { MarketUpdate, OrderBookUpdate } from '../types/websocket'; +import { MarketUpdate, OrderBookUpdate } from '@/types/websocket'; export interface PollingConfig { interval: number; diff --git a/frontend/src/services/MonitoringService.ts b/frontend/src/services/MonitoringService.ts index d199e87a..bb7dc583 100644 --- a/frontend/src/services/MonitoringService.ts +++ b/frontend/src/services/MonitoringService.ts @@ -1,4 +1,4 @@ -import { logger, type LogEntry } from '../utils/logger'; +import { logger, type LogEntry } from '@/utils/logger'; import type { LogData } from '@/types/common'; export interface PerformanceMetric { diff --git a/frontend/src/services/NotificationService.ts b/frontend/src/services/NotificationService.ts index 2c108d11..7c70580d 100644 --- a/frontend/src/services/NotificationService.ts +++ b/frontend/src/services/NotificationService.ts @@ -6,7 +6,7 @@ import type { NotificationPreferenceUpdate, NotificationStatus, NotificationType, -} from '../types/notifications'; +} from '@/types/notifications'; import { GDPRComplianceService } from './GDPRComplianceService'; import { SecureStorageV2Service } from './SecureStorageV2Service'; diff --git a/frontend/src/services/PerformanceComparisonService.ts b/frontend/src/services/PerformanceComparisonService.ts index cf68c539..e16b12f4 100644 --- a/frontend/src/services/PerformanceComparisonService.ts +++ b/frontend/src/services/PerformanceComparisonService.ts @@ -1,4 +1,4 @@ -import { PortfolioPosition, PerformanceComparison, PerformanceDataPoint } from '../types/portfolio'; +import { PortfolioPosition, PerformanceComparison, PerformanceDataPoint } from '@/types/portfolio'; export class PerformanceComparisonService { static compareWithBenchmark( diff --git a/frontend/src/services/PortfolioAnalysisService.ts b/frontend/src/services/PortfolioAnalysisService.ts index 057d4039..cc74df9c 100644 --- a/frontend/src/services/PortfolioAnalysisService.ts +++ b/frontend/src/services/PortfolioAnalysisService.ts @@ -6,7 +6,7 @@ import { DiversificationAnalysis, HistoricalPerformance, HistoricalDataPoint, -} from '../types/portfolio'; +} from '@/types/portfolio'; export class PortfolioAnalysisService { static analyzePortfolio(portfolio: Portfolio): PortfolioMetrics { diff --git a/frontend/src/services/PushNotificationService.ts b/frontend/src/services/PushNotificationService.ts index b5e7033a..edb5e8f5 100644 --- a/frontend/src/services/PushNotificationService.ts +++ b/frontend/src/services/PushNotificationService.ts @@ -1,4 +1,4 @@ -import type { PushNotificationPayload } from '../types/notifications'; +import type { PushNotificationPayload } from '@/types/notifications'; export class PushNotificationService { private static serviceWorkerReady = false; diff --git a/frontend/src/services/RealtimeDataManager.ts b/frontend/src/services/RealtimeDataManager.ts index 6f54f3aa..3996b9d5 100644 --- a/frontend/src/services/RealtimeDataManager.ts +++ b/frontend/src/services/RealtimeDataManager.ts @@ -1,6 +1,6 @@ import { RealtimeMarketClient } from './RealtimeMarketClient'; import { MarketPollingService } from './MarketPollingService'; -import { MarketUpdate, OrderBookUpdate, TradeUpdate, WebSocketEventMap, WebSocketEventHandler } from '../types/websocket'; +import { MarketUpdate, OrderBookUpdate, TradeUpdate, WebSocketEventMap, WebSocketEventHandler } from '@/types/websocket'; export interface RealtimeDataManagerConfig { wsUrl: string; diff --git a/frontend/src/services/RealtimeMarketClient.ts b/frontend/src/services/RealtimeMarketClient.ts index 48593346..4fd72da9 100644 --- a/frontend/src/services/RealtimeMarketClient.ts +++ b/frontend/src/services/RealtimeMarketClient.ts @@ -7,7 +7,7 @@ import { TradeUpdate, WebSocketEventMap, WebSocketEventHandler, -} from '../types/websocket'; +} from '@/types/websocket'; export class RealtimeMarketClient { private ws: WebSocket | null = null; diff --git a/frontend/src/services/RealtimeMarketServer.ts b/frontend/src/services/RealtimeMarketServer.ts index dc437db5..340d74dc 100644 --- a/frontend/src/services/RealtimeMarketServer.ts +++ b/frontend/src/services/RealtimeMarketServer.ts @@ -1,4 +1,4 @@ -import { WebSocketServerConfig, WebSocketMessage, MarketUpdate, OrderBookUpdate, TradeUpdate, WebSocketConnection } from '../types/websocket'; +import { WebSocketServerConfig, WebSocketMessage, MarketUpdate, OrderBookUpdate, TradeUpdate, WebSocketConnection } from '@/types/websocket'; export class RealtimeMarketServer { private connections: Map = new Map(); diff --git a/frontend/src/services/RecommendationEngineService.ts b/frontend/src/services/RecommendationEngineService.ts index d6919133..0cd2ca65 100644 --- a/frontend/src/services/RecommendationEngineService.ts +++ b/frontend/src/services/RecommendationEngineService.ts @@ -3,7 +3,7 @@ import { RebalancingRecommendation, PortfolioRecommendation, PortfolioOptimizationResult, -} from '../types/portfolio'; +} from '@/types/portfolio'; import { PortfolioAnalysisService } from './PortfolioAnalysisService'; export class RecommendationEngineService { diff --git a/frontend/src/services/ReputationFraudIntegrationService.ts b/frontend/src/services/ReputationFraudIntegrationService.ts index 52b954ae..0f71da66 100644 --- a/frontend/src/services/ReputationFraudIntegrationService.ts +++ b/frontend/src/services/ReputationFraudIntegrationService.ts @@ -2,7 +2,7 @@ import { ReputationService } from './ReputationService'; import { FraudDetectionService } from './FraudDetectionService'; import { KYCAMLService } from './KYCAMLService'; import { AccountLinkingService } from './AccountLinkingService'; -import { UserReputation, SuspiciousActivity } from '../types/reputation'; +import { UserReputation, SuspiciousActivity } from '@/types/reputation'; import type { FraudTransaction } from '@/types/common'; export class ReputationFraudIntegrationService { diff --git a/frontend/src/services/ReputationService.ts b/frontend/src/services/ReputationService.ts index 43270230..578cd138 100644 --- a/frontend/src/services/ReputationService.ts +++ b/frontend/src/services/ReputationService.ts @@ -4,7 +4,7 @@ import { UserReputation, ReputationAdjustment, ReputationBadge, -} from '../types/reputation'; +} from '@/types/reputation'; export class ReputationService { private reputations: Map = new Map(); From e02e664c684ac4a878e5386c117d574038003b2e Mon Sep 17 00:00:00 2001 From: 0xMosas Date: Thu, 21 May 2026 22:24:01 +0100 Subject: [PATCH 20/20] fix: convert ../ imports to @/ alias in components, pages, and examples Bulk convert all cross-directory relative imports in src/components/, src/pages/, and src/examples/ to use the @/ path alias. Covers all 97 files including MarketForm, MarketCard, Header, Footer, NetworkContext consumers, all page components, and example files that were using ../ relative paths to reach services, types, hooks, utils, and contexts. --- frontend/src/components/APYComparison.tsx | 6 ++--- .../src/components/AccessibilityAnnouncer.tsx | 2 +- .../components/AdminAnalyticsDashboard.tsx | 4 ++-- frontend/src/components/CacheDashboard.tsx | 4 ++-- .../src/components/CreateProposalModal.tsx | 2 +- frontend/src/components/DisputeCard.tsx | 4 ++-- .../src/components/EmergencyPauseBanner.tsx | 6 ++--- frontend/src/components/ErrorBoundary.tsx | 2 +- frontend/src/components/ErrorDisplay.tsx | 2 +- .../components/ErrorMonitoringDashboard.tsx | 4 ++-- frontend/src/components/ExportDialog.tsx | 6 ++--- frontend/src/components/ExportOptions.tsx | 2 +- frontend/src/components/ExportProgress.tsx | 2 +- frontend/src/components/Footer.tsx | 4 ++-- frontend/src/components/FraudAlertPanel.tsx | 4 ++-- frontend/src/components/GDPRConsentBanner.tsx | 2 +- .../src/components/GDPRPrivacyDashboard.tsx | 8 +++---- frontend/src/components/Header.tsx | 4 ++-- .../src/components/KYCVerificationForm.tsx | 2 +- .../src/components/LeaderboardComponent.tsx | 2 +- frontend/src/components/LiquidityCard.tsx | 4 ++-- .../src/components/LiquidityMiningPage.tsx | 2 +- .../components/LiquidityRewardsCalculator.tsx | 4 ++-- frontend/src/components/LiquidityStats.tsx | 4 ++-- frontend/src/components/LogViewer.tsx | 2 +- frontend/src/components/MarketCard.tsx | 10 ++++---- .../src/components/MarketCreationWizard.tsx | 10 ++++---- frontend/src/components/MarketFilter.tsx | 4 ++-- frontend/src/components/MarketForm.tsx | 6 ++--- .../src/components/MarketRecommendations.tsx | 2 +- frontend/src/components/MarketReview.tsx | 4 ++-- frontend/src/components/MigrationManager.tsx | 4 ++-- .../src/components/MonitoringDashboard.tsx | 2 +- frontend/src/components/NetworkBadge.tsx | 2 +- frontend/src/components/NetworkSelector.tsx | 4 ++-- .../src/components/NetworkSwitchDialog.tsx | 2 +- frontend/src/components/NotificationBell.tsx | 2 +- .../src/components/NotificationCenter.tsx | 4 ++-- .../components/NotificationPreferences.tsx | 4 ++-- frontend/src/components/NotificationToast.tsx | 4 ++-- frontend/src/components/OracleCard.tsx | 2 +- frontend/src/components/OracleStatusBadge.tsx | 2 +- .../src/components/PerformanceDashboard.tsx | 2 +- .../src/components/PerformanceMonitor.tsx | 2 +- frontend/src/components/PersonalStatsCard.tsx | 2 +- frontend/src/components/PoolPositionRow.tsx | 4 ++-- frontend/src/components/ProposalCard.tsx | 6 ++--- frontend/src/components/QuestionForm.tsx | 4 ++-- .../src/components/RateLimitAdminPanel.tsx | 4 ++-- .../src/components/RateLimitNotification.tsx | 2 +- .../components/RealtimeMarketComponents.tsx | 4 ++-- frontend/src/components/RecentMarkets.tsx | 4 ++-- frontend/src/components/ReferralCard.tsx | 4 ++-- frontend/src/components/ReferralDashboard.tsx | 4 ++-- .../src/components/ReputationDashboard.tsx | 4 ++-- .../src/components/ReputationExamples.tsx | 8 +++---- frontend/src/components/RequestIdProvider.tsx | 2 +- frontend/src/components/ResolutionCard.tsx | 4 ++-- .../src/components/RewardHistoryChart.tsx | 4 ++-- .../src/components/RewardNotification.tsx | 2 +- .../src/components/ScheduledExportManager.tsx | 4 ++-- frontend/src/components/ShareModal.tsx | 2 +- frontend/src/components/TemplateHelp.tsx | 4 ++-- frontend/src/components/TemplateSelection.tsx | 4 ++-- .../src/components/TestnetWarningBanner.tsx | 2 +- frontend/src/components/ThemeSwitcher.tsx | 2 +- frontend/src/components/TimeRangeSelector.tsx | 2 +- frontend/src/components/TopMarketsTable.tsx | 2 +- .../src/components/TransactionHistory.tsx | 4 ++-- .../src/components/TransactionIdProvider.tsx | 2 +- .../src/components/TransactionProvider.tsx | 4 ++-- frontend/src/components/TransactionToast.tsx | 4 ++-- frontend/src/components/UpgradeManager.tsx | 4 ++-- frontend/src/components/UserIdProvider.tsx | 4 ++-- frontend/src/components/WalletProvider.tsx | 4 ++-- frontend/src/examples/CachingExample.tsx | 6 ++--- .../src/examples/MarketCreationExample.tsx | 4 ++-- frontend/src/examples/PredictionExample.tsx | 8 +++---- .../src/examples/UpgradeSystemExample.tsx | 6 ++--- frontend/src/pages/AnalyticsPage.tsx | 16 ++++++------- frontend/src/pages/CreateMarketPage.tsx | 8 +++---- frontend/src/pages/CreateMultiMarketPage.tsx | 4 ++-- frontend/src/pages/GovernancePage.tsx | 14 +++++------ frontend/src/pages/LandingPage.tsx | 18 +++++++------- frontend/src/pages/LeaderboardPage.tsx | 4 ++-- frontend/src/pages/LiquidityPage.tsx | 14 +++++------ frontend/src/pages/MarketsPage.tsx | 16 ++++++------- frontend/src/pages/MultiMarketsPage.tsx | 6 ++--- frontend/src/pages/MultiTradePage.tsx | 12 +++++----- frontend/src/pages/OraclePage.tsx | 10 ++++---- frontend/src/pages/PortfolioPage.tsx | 16 ++++++------- frontend/src/pages/RecentlyViewedPage.tsx | 8 +++---- frontend/src/pages/StakingPage.tsx | 10 ++++---- frontend/src/pages/TokenPage.tsx | 2 +- frontend/src/pages/TradePage.tsx | 24 +++++++++---------- frontend/src/pages/TransactionHistoryPage.tsx | 8 +++---- frontend/src/pages/WatchlistPage.tsx | 8 +++---- 97 files changed, 246 insertions(+), 246 deletions(-) diff --git a/frontend/src/components/APYComparison.tsx b/frontend/src/components/APYComparison.tsx index e41bcc1d..ad2bb278 100644 --- a/frontend/src/components/APYComparison.tsx +++ b/frontend/src/components/APYComparison.tsx @@ -1,7 +1,7 @@ import React from 'react'; -import { useLiquidityRewards } from '../hooks/useLiquidityRewards'; -import { formatAPY } from '../utils/liquidityRewardsCalculator'; -import type { MarketVolume } from '../utils/liquidityRewardsCalculator'; +import { useLiquidityRewards } from '@/hooks/useLiquidityRewards'; +import { formatAPY } from '@/utils/liquidityRewardsCalculator'; +import type { MarketVolume } from '@/utils/liquidityRewardsCalculator'; interface APYComparisonProps { liquidityAmount: number; diff --git a/frontend/src/components/AccessibilityAnnouncer.tsx b/frontend/src/components/AccessibilityAnnouncer.tsx index a5be7de9..c3749afa 100644 --- a/frontend/src/components/AccessibilityAnnouncer.tsx +++ b/frontend/src/components/AccessibilityAnnouncer.tsx @@ -1,5 +1,5 @@ import { useEffect, useState } from 'react'; -import type { ScreenReaderAnnouncement } from '../types/accessibility'; +import type { ScreenReaderAnnouncement } from '@/types/accessibility'; interface AccessibilityAnnouncerProps { announcement?: ScreenReaderAnnouncement; diff --git a/frontend/src/components/AdminAnalyticsDashboard.tsx b/frontend/src/components/AdminAnalyticsDashboard.tsx index ab725a27..dbbd7ce1 100644 --- a/frontend/src/components/AdminAnalyticsDashboard.tsx +++ b/frontend/src/components/AdminAnalyticsDashboard.tsx @@ -6,12 +6,12 @@ */ import React, { useState, useEffect } from 'react'; -import { useAnalytics } from '../hooks/useAnalytics'; +import { useAnalytics } from '@/hooks/useAnalytics'; import { StatsCard, StatsGrid } from './StatsCard'; import { VolumeChart, CategoryPieChart, ActivityChart } from './charts'; import { TimeRangeSelector, TimeRangeDropdown } from './TimeRangeSelector'; import { LoadingState } from './Loading'; -import type { TimeRange } from '../types/analytics'; +import type { TimeRange } from '@/types/analytics'; interface AdminMetrics { totalUsers: number; diff --git a/frontend/src/components/CacheDashboard.tsx b/frontend/src/components/CacheDashboard.tsx index bd35e3df..09564fb9 100644 --- a/frontend/src/components/CacheDashboard.tsx +++ b/frontend/src/components/CacheDashboard.tsx @@ -1,6 +1,6 @@ import { useState, useEffect } from 'react'; -import { cacheManager } from '../utils/cache'; -import { marketCacheService } from '../services/MarketCacheService'; +import { cacheManager } from '@/utils/cache'; +import { marketCacheService } from '@/services/MarketCacheService'; interface CacheStats { memoryCacheSize: number; diff --git a/frontend/src/components/CreateProposalModal.tsx b/frontend/src/components/CreateProposalModal.tsx index e97477ce..bb2b9825 100644 --- a/frontend/src/components/CreateProposalModal.tsx +++ b/frontend/src/components/CreateProposalModal.tsx @@ -5,7 +5,7 @@ */ import { useReducer } from 'react'; -import { formatVotingPower } from '../hooks/useGovernance'; +import { formatVotingPower } from '@/hooks/useGovernance'; interface CreateProposalModalProps { isOpen: boolean; diff --git a/frontend/src/components/DisputeCard.tsx b/frontend/src/components/DisputeCard.tsx index 5449f6cf..86db73ad 100644 --- a/frontend/src/components/DisputeCard.tsx +++ b/frontend/src/components/DisputeCard.tsx @@ -6,8 +6,8 @@ */ import { useState } from 'react'; -import type { Dispute, DisputeVote } from '../types/oracle'; -import { formatDisputeStatus, getDisputeStatusColor, formatBlocksToTime, DISPUTE_STATUS } from '../types/oracle'; +import type { Dispute, DisputeVote } from '@/types/oracle'; +import { formatDisputeStatus, getDisputeStatusColor, formatBlocksToTime, DISPUTE_STATUS } from '@/types/oracle'; interface DisputeCardProps { dispute: Dispute; diff --git a/frontend/src/components/EmergencyPauseBanner.tsx b/frontend/src/components/EmergencyPauseBanner.tsx index 4a161c82..6bcce61f 100644 --- a/frontend/src/components/EmergencyPauseBanner.tsx +++ b/frontend/src/components/EmergencyPauseBanner.tsx @@ -1,9 +1,9 @@ import { useEffect, useRef } from 'react'; import { Link } from 'react-router-dom'; import { useWallet } from './WalletProvider'; -import { useContractPause } from '../hooks/useContractPause'; -import { NotificationService } from '../services/NotificationService'; -import { PushNotificationService } from '../services/PushNotificationService'; +import { useContractPause } from '@/hooks/useContractPause'; +import { NotificationService } from '@/services/NotificationService'; +import { PushNotificationService } from '@/services/PushNotificationService'; export function EmergencyPauseBanner() { const { address } = useWallet(); diff --git a/frontend/src/components/ErrorBoundary.tsx b/frontend/src/components/ErrorBoundary.tsx index 126df55a..e0cacb24 100644 --- a/frontend/src/components/ErrorBoundary.tsx +++ b/frontend/src/components/ErrorBoundary.tsx @@ -1,5 +1,5 @@ import React, { Component, ErrorInfo, ReactNode } from 'react'; -import { errorLoggingService } from '../services/ErrorLoggingService'; +import { errorLoggingService } from '@/services/ErrorLoggingService'; interface Props { children: ReactNode; diff --git a/frontend/src/components/ErrorDisplay.tsx b/frontend/src/components/ErrorDisplay.tsx index aebf70f6..2c5310b2 100644 --- a/frontend/src/components/ErrorDisplay.tsx +++ b/frontend/src/components/ErrorDisplay.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { ApiError, ErrorCode } from '../utils/apiErrors'; +import { ApiError, ErrorCode } from '@/utils/apiErrors'; interface ErrorDisplayProps { error: ApiError | Error | null; diff --git a/frontend/src/components/ErrorMonitoringDashboard.tsx b/frontend/src/components/ErrorMonitoringDashboard.tsx index a05a6b0c..aa75e3f0 100644 --- a/frontend/src/components/ErrorMonitoringDashboard.tsx +++ b/frontend/src/components/ErrorMonitoringDashboard.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react'; -import { errorLoggingService } from '../services/ErrorLoggingService'; -import type { ErrorLog } from '../services/ErrorLoggingService'; +import { errorLoggingService } from '@/services/ErrorLoggingService'; +import type { ErrorLog } from '@/services/ErrorLoggingService'; interface ErrorStats { total: number; diff --git a/frontend/src/components/ExportDialog.tsx b/frontend/src/components/ExportDialog.tsx index 03763bae..b5f2431a 100644 --- a/frontend/src/components/ExportDialog.tsx +++ b/frontend/src/components/ExportDialog.tsx @@ -1,7 +1,7 @@ import React, { useState } from 'react'; -import type { ExportFormat, ExportType, ExportOptions } from '../types/export'; -import type { TransactionData, Portfolio, Position, RewardData } from '../types/transactions'; -import { useExport } from '../hooks/useExport'; +import type { ExportFormat, ExportType, ExportOptions } from '@/types/export'; +import type { TransactionData, Portfolio, Position, RewardData } from '@/types/transactions'; +import { useExport } from '@/hooks/useExport'; import ExportOptions from './ExportOptions'; import ExportProgress from './ExportProgress'; diff --git a/frontend/src/components/ExportOptions.tsx b/frontend/src/components/ExportOptions.tsx index 49e6c79e..8285b993 100644 --- a/frontend/src/components/ExportOptions.tsx +++ b/frontend/src/components/ExportOptions.tsx @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import type { ExportFormat, ExportType, ExportOptions as ExportOptionsType } from '../types/export'; +import type { ExportFormat, ExportType, ExportOptions as ExportOptionsType } from '@/types/export'; interface ExportOptionsProps { exportType: ExportType; diff --git a/frontend/src/components/ExportProgress.tsx b/frontend/src/components/ExportProgress.tsx index cc18f2b9..724ba09e 100644 --- a/frontend/src/components/ExportProgress.tsx +++ b/frontend/src/components/ExportProgress.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import type { ExportProgress as ExportProgressType } from '../types/export'; +import type { ExportProgress as ExportProgressType } from '@/types/export'; interface ExportProgressProps { progress: ExportProgressType; diff --git a/frontend/src/components/Footer.tsx b/frontend/src/components/Footer.tsx index a4f89e5b..60d947f4 100644 --- a/frontend/src/components/Footer.tsx +++ b/frontend/src/components/Footer.tsx @@ -1,7 +1,7 @@ import { Link } from 'react-router-dom'; import { Logo } from './Logo'; -import { useNetwork } from '../contexts/NetworkContext'; -import { getExplorerAddressUrl } from '../utils/transactions'; +import { useNetwork } from '@/contexts/NetworkContext'; +import { getExplorerAddressUrl } from '@/utils/transactions'; export function Footer() { const { network, contractAddress } = useNetwork(); diff --git a/frontend/src/components/FraudAlertPanel.tsx b/frontend/src/components/FraudAlertPanel.tsx index b320f83e..98576e2d 100644 --- a/frontend/src/components/FraudAlertPanel.tsx +++ b/frontend/src/components/FraudAlertPanel.tsx @@ -1,6 +1,6 @@ import { useEffect, useReducer, memo } from 'react'; -import { FraudAlert, SuspiciousActivity } from '../types/reputation'; -import { reputationFraudIntegration } from '../services/ReputationFraudIntegrationService'; +import { FraudAlert, SuspiciousActivity } from '@/types/reputation'; +import { reputationFraudIntegration } from '@/services/ReputationFraudIntegrationService'; interface FraudAlertPanelProps { userId: string; diff --git a/frontend/src/components/GDPRConsentBanner.tsx b/frontend/src/components/GDPRConsentBanner.tsx index fd4c7e7f..03df014d 100644 --- a/frontend/src/components/GDPRConsentBanner.tsx +++ b/frontend/src/components/GDPRConsentBanner.tsx @@ -5,7 +5,7 @@ */ import React, { useState, useEffect } from 'react'; -import { GDPRComplianceService } from '../services/GDPRComplianceService'; +import { GDPRComplianceService } from '@/services/GDPRComplianceService'; interface GDPRConsentBannerProps { onConsent?: (consent: { analytics: boolean; marketing: boolean; personalization: boolean }) => void; diff --git a/frontend/src/components/GDPRPrivacyDashboard.tsx b/frontend/src/components/GDPRPrivacyDashboard.tsx index 1962c632..e2fbe0ac 100644 --- a/frontend/src/components/GDPRPrivacyDashboard.tsx +++ b/frontend/src/components/GDPRPrivacyDashboard.tsx @@ -1,8 +1,8 @@ import React, { useState, useEffect } from 'react'; -import { GDPRComplianceService, DataProcessingActivity } from '../services/GDPRComplianceService'; -import { DataExportService } from '../services/DataExportService'; -import { DataDeletionService } from '../services/DataDeletionService'; -import { DataRetentionService } from '../services/DataRetentionService'; +import { GDPRComplianceService, DataProcessingActivity } from '@/services/GDPRComplianceService'; +import { DataExportService } from '@/services/DataExportService'; +import { DataDeletionService } from '@/services/DataDeletionService'; +import { DataRetentionService } from '@/services/DataRetentionService'; interface GDPRPrivacyDashboardProps { userId: string; diff --git a/frontend/src/components/Header.tsx b/frontend/src/components/Header.tsx index a42603b5..8e36fb90 100644 --- a/frontend/src/components/Header.tsx +++ b/frontend/src/components/Header.tsx @@ -3,11 +3,11 @@ import { Link, useLocation } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { Logo } from './Logo'; import { useWallet } from './WalletProvider'; -import { formatAddress } from '../utils/helpers'; +import { formatAddress } from '@/utils/helpers'; import { NetworkSelector } from './NetworkSelector'; import { ThemeSwitcher } from './ThemeSwitcher'; import { LanguageSwitcher } from './LanguageSwitcher'; -import { useNetwork } from '../contexts/NetworkContext'; +import { useNetwork } from '@/contexts/NetworkContext'; interface NavItemProps { path: string; diff --git a/frontend/src/components/KYCVerificationForm.tsx b/frontend/src/components/KYCVerificationForm.tsx index 5b307360..ee74b681 100644 --- a/frontend/src/components/KYCVerificationForm.tsx +++ b/frontend/src/components/KYCVerificationForm.tsx @@ -1,5 +1,5 @@ import { useState } from 'react'; -import { reputationFraudIntegration } from '../services/ReputationFraudIntegrationService'; +import { reputationFraudIntegration } from '@/services/ReputationFraudIntegrationService'; interface KYCVerificationFormProps { userId: string; diff --git a/frontend/src/components/LeaderboardComponent.tsx b/frontend/src/components/LeaderboardComponent.tsx index 229d4f52..163f9076 100644 --- a/frontend/src/components/LeaderboardComponent.tsx +++ b/frontend/src/components/LeaderboardComponent.tsx @@ -6,7 +6,7 @@ import React, { useState, useMemo } from 'react'; import { Link } from 'react-router-dom'; -import { getLeaderboardService, type LeaderboardSortBy } from '../services/LeaderboardService'; +import { getLeaderboardService, type LeaderboardSortBy } from '@/services/LeaderboardService'; interface LeaderboardComponentProps { limit?: number; diff --git a/frontend/src/components/LiquidityCard.tsx b/frontend/src/components/LiquidityCard.tsx index 133b4f2b..04612c8e 100644 --- a/frontend/src/components/LiquidityCard.tsx +++ b/frontend/src/components/LiquidityCard.tsx @@ -4,8 +4,8 @@ * Displays liquidity pool information and user position. */ -import type { LiquidityPool, LPPosition } from '../types/liquidity'; -import { formatStxAmount } from '../types/liquidity'; +import type { LiquidityPool, LPPosition } from '@/types/liquidity'; +import { formatStxAmount } from '@/types/liquidity'; interface LiquidityCardProps { pool: LiquidityPool; diff --git a/frontend/src/components/LiquidityMiningPage.tsx b/frontend/src/components/LiquidityMiningPage.tsx index fe356c57..ab91b44b 100644 --- a/frontend/src/components/LiquidityMiningPage.tsx +++ b/frontend/src/components/LiquidityMiningPage.tsx @@ -2,7 +2,7 @@ import React, { useState } from 'react'; import { LiquidityRewardsCalculator } from './LiquidityRewardsCalculator'; import { RewardHistoryChart } from './RewardHistoryChart'; import { APYComparison } from './APYComparison'; -import type { MarketVolume } from '../utils/liquidityRewardsCalculator'; +import type { MarketVolume } from '@/utils/liquidityRewardsCalculator'; interface LiquidityMiningPageProps { marketId?: number; diff --git a/frontend/src/components/LiquidityRewardsCalculator.tsx b/frontend/src/components/LiquidityRewardsCalculator.tsx index 7464ec9f..c0267fe0 100644 --- a/frontend/src/components/LiquidityRewardsCalculator.tsx +++ b/frontend/src/components/LiquidityRewardsCalculator.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react'; -import { useLiquidityRewards } from '../hooks/useLiquidityRewards'; -import { formatRewardAmount, formatAPY } from '../utils/liquidityRewardsCalculator'; +import { useLiquidityRewards } from '@/hooks/useLiquidityRewards'; +import { formatRewardAmount, formatAPY } from '@/utils/liquidityRewardsCalculator'; interface LiquidityRewardsCalculatorProps { marketId?: number; diff --git a/frontend/src/components/LiquidityStats.tsx b/frontend/src/components/LiquidityStats.tsx index 1ff33e95..fe4f8fb6 100644 --- a/frontend/src/components/LiquidityStats.tsx +++ b/frontend/src/components/LiquidityStats.tsx @@ -1,6 +1,6 @@ import { useState, useMemo } from 'react'; -import type { LiquidityPool, LPPosition, PendingRewards } from '../types/liquidity'; -import { formatStxAmount, calculateAPY } from '../types/liquidity'; +import type { LiquidityPool, LPPosition, PendingRewards } from '@/types/liquidity'; +import { formatStxAmount, calculateAPY } from '@/types/liquidity'; interface LiquidityStatsProps { pools: LiquidityPool[]; diff --git a/frontend/src/components/LogViewer.tsx b/frontend/src/components/LogViewer.tsx index 998002cb..ba3a9f2a 100644 --- a/frontend/src/components/LogViewer.tsx +++ b/frontend/src/components/LogViewer.tsx @@ -1,5 +1,5 @@ import React, { useState, useEffect } from 'react'; -import { logger, type LogEntry, type LogLevel } from '../utils/logger'; +import { logger, type LogEntry, type LogLevel } from '@/utils/logger'; interface LogViewerProps { refreshInterval?: number; diff --git a/frontend/src/components/MarketCard.tsx b/frontend/src/components/MarketCard.tsx index 32642f14..5b37bccd 100644 --- a/frontend/src/components/MarketCard.tsx +++ b/frontend/src/components/MarketCard.tsx @@ -1,11 +1,11 @@ import { memo } from 'react'; import { Link } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; -import type { Market } from '../types/market'; -import { MarketStatus } from '../types/market'; -import { calculateOdds, formatStx, getStatusLabel } from '../utils/helpers'; -import { categorizeMarket, getCategoryConfig } from '../utils/marketCategories'; -import { useWatchlist } from '../contexts/WatchlistContext'; +import type { Market } from '@/types/market'; +import { MarketStatus } from '@/types/market'; +import { calculateOdds, formatStx, getStatusLabel } from '@/utils/helpers'; +import { categorizeMarket, getCategoryConfig } from '@/utils/marketCategories'; +import { useWatchlist } from '@/contexts/WatchlistContext'; import type { MouseEvent } from 'react'; interface MarketCardProps { diff --git a/frontend/src/components/MarketCreationWizard.tsx b/frontend/src/components/MarketCreationWizard.tsx index 8b0dcd04..ef393b0a 100644 --- a/frontend/src/components/MarketCreationWizard.tsx +++ b/frontend/src/components/MarketCreationWizard.tsx @@ -1,16 +1,16 @@ import React, { useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; import { useWallet } from './WalletProvider'; -import { useMarketCreation } from '../hooks/useMarketCreation'; -import { useTemplateWizard } from '../hooks/useTemplateWizard'; -import { getTemplate } from '../config/templates'; +import { useMarketCreation } from '@/hooks/useMarketCreation'; +import { useTemplateWizard } from '@/hooks/useTemplateWizard'; +import { getTemplate } from '@/config/templates'; import { TemplateSelection } from './TemplateSelection'; import { QuestionForm } from './QuestionForm'; import { MarketReview } from './MarketReview'; import { WizardProgress } from './WizardProgress'; import { TemplateHelp } from './TemplateHelp'; -import type { CreateMarketFormData } from '../types/market'; -import type { TemplateCategory } from '../types/template'; +import type { CreateMarketFormData } from '@/types/market'; +import type { TemplateCategory } from '@/types/template'; export function MarketCreationWizard() { const navigate = useNavigate(); diff --git a/frontend/src/components/MarketFilter.tsx b/frontend/src/components/MarketFilter.tsx index 3a537c34..0097365a 100644 --- a/frontend/src/components/MarketFilter.tsx +++ b/frontend/src/components/MarketFilter.tsx @@ -9,8 +9,8 @@ import { SortOption, CATEGORIES, SORT_OPTIONS, -} from '../utils/marketCategories'; -import { TimeRange, VolumeRange } from '../types/filters'; +} from '@/utils/marketCategories'; +import { TimeRange, VolumeRange } from '@/types/filters'; interface MarketFilterProps { selectedCategory: MarketCategory; diff --git a/frontend/src/components/MarketForm.tsx b/frontend/src/components/MarketForm.tsx index 3c878c3f..d14b9a74 100644 --- a/frontend/src/components/MarketForm.tsx +++ b/frontend/src/components/MarketForm.tsx @@ -8,17 +8,17 @@ import { useState, useEffect, useMemo, useCallback } from 'react'; import type { CreateMarketFormData, MarketCategory -} from '../types/market'; +} from '@/types/market'; import { MARKET_CATEGORIES, MARKET_DURATIONS, CATEGORY_METADATA -} from '../types/market'; +} from '@/types/market'; import { validateMarketForm, formatBlocksToTime, suggestQuestionImprovements -} from '../utils/marketValidation'; +} from '@/utils/marketValidation'; interface MarketFormProps { onSubmit: (data: CreateMarketFormData) => void; diff --git a/frontend/src/components/MarketRecommendations.tsx b/frontend/src/components/MarketRecommendations.tsx index 8094ef55..4cefa7e0 100644 --- a/frontend/src/components/MarketRecommendations.tsx +++ b/frontend/src/components/MarketRecommendations.tsx @@ -1,5 +1,5 @@ import { useMemo } from 'react'; -import { Market } from '../types/market'; +import { Market } from '@/types/market'; import { MarketCard } from './MarketCard'; interface MarketRecommendationsProps { diff --git a/frontend/src/components/MarketReview.tsx b/frontend/src/components/MarketReview.tsx index 6be0d64a..c10b7bb5 100644 --- a/frontend/src/components/MarketReview.tsx +++ b/frontend/src/components/MarketReview.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import type { MarketTemplate } from '../types/template'; -import { CATEGORY_METADATA } from '../types/market'; +import type { MarketTemplate } from '@/types/template'; +import { CATEGORY_METADATA } from '@/types/market'; interface MarketReviewProps { question: string; diff --git a/frontend/src/components/MigrationManager.tsx b/frontend/src/components/MigrationManager.tsx index 589a4774..a74f4458 100644 --- a/frontend/src/components/MigrationManager.tsx +++ b/frontend/src/components/MigrationManager.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react'; -import { useMigration } from '../hooks/useMigration'; -import { Migration } from '../services/MigrationService'; +import { useMigration } from '@/hooks/useMigration'; +import { Migration } from '@/services/MigrationService'; interface MigrationManagerProps { migrationContract: { address: string; name: string }; diff --git a/frontend/src/components/MonitoringDashboard.tsx b/frontend/src/components/MonitoringDashboard.tsx index 3fe15caf..c71e4793 100644 --- a/frontend/src/components/MonitoringDashboard.tsx +++ b/frontend/src/components/MonitoringDashboard.tsx @@ -1,5 +1,5 @@ import React, { useReducer, useEffect, memo } from 'react'; -import { monitoringService } from '../services/MonitoringService'; +import { monitoringService } from '@/services/MonitoringService'; interface MonitoringDashboardProps { refreshInterval?: number; diff --git a/frontend/src/components/NetworkBadge.tsx b/frontend/src/components/NetworkBadge.tsx index 8d4dda80..27eff0fc 100644 --- a/frontend/src/components/NetworkBadge.tsx +++ b/frontend/src/components/NetworkBadge.tsx @@ -4,7 +4,7 @@ * Visual indicator showing current network status */ -import { useNetwork } from '../contexts/NetworkContext'; +import { useNetwork } from '@/contexts/NetworkContext'; interface NetworkBadgeProps { size?: 'sm' | 'md' | 'lg'; diff --git a/frontend/src/components/NetworkSelector.tsx b/frontend/src/components/NetworkSelector.tsx index e463f574..d1cf9e9c 100644 --- a/frontend/src/components/NetworkSelector.tsx +++ b/frontend/src/components/NetworkSelector.tsx @@ -5,8 +5,8 @@ */ import { useState, useRef, useEffect } from 'react'; -import { useNetwork } from '../contexts/NetworkContext'; -import { NetworkType, NETWORK_CONFIGS } from '../types/network'; +import { useNetwork } from '@/contexts/NetworkContext'; +import { NetworkType, NETWORK_CONFIGS } from '@/types/network'; interface NetworkSelectorProps { variant?: 'dropdown' | 'toggle' | 'compact'; diff --git a/frontend/src/components/NetworkSwitchDialog.tsx b/frontend/src/components/NetworkSwitchDialog.tsx index 248e7595..7ee9f912 100644 --- a/frontend/src/components/NetworkSwitchDialog.tsx +++ b/frontend/src/components/NetworkSwitchDialog.tsx @@ -6,7 +6,7 @@ */ import { useState } from 'react'; -import { NetworkType, NETWORK_CONFIGS } from '../types/network'; +import { NetworkType, NETWORK_CONFIGS } from '@/types/network'; interface NetworkSwitchDialogProps { isOpen: boolean; diff --git a/frontend/src/components/NotificationBell.tsx b/frontend/src/components/NotificationBell.tsx index 7c66ecac..9a90e489 100644 --- a/frontend/src/components/NotificationBell.tsx +++ b/frontend/src/components/NotificationBell.tsx @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { useNotifications } from '../hooks/useNotifications'; +import { useNotifications } from '@/hooks/useNotifications'; import NotificationCenter from './NotificationCenter'; interface NotificationBellProps { diff --git a/frontend/src/components/NotificationCenter.tsx b/frontend/src/components/NotificationCenter.tsx index 427dc1ce..d5b6fcb6 100644 --- a/frontend/src/components/NotificationCenter.tsx +++ b/frontend/src/components/NotificationCenter.tsx @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { useNotifications } from '../hooks/useNotifications'; -import type { Notification, NotificationStatus, NotificationType } from '../types/notifications'; +import { useNotifications } from '@/hooks/useNotifications'; +import type { Notification, NotificationStatus, NotificationType } from '@/types/notifications'; interface NotificationCenterProps { userId: string; diff --git a/frontend/src/components/NotificationPreferences.tsx b/frontend/src/components/NotificationPreferences.tsx index d801a420..bb36797b 100644 --- a/frontend/src/components/NotificationPreferences.tsx +++ b/frontend/src/components/NotificationPreferences.tsx @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { useNotificationPreferences } from '../hooks/useNotificationPreferences'; -import type { NotificationType, NotificationChannel, NotificationFrequency } from '../types/notifications'; +import { useNotificationPreferences } from '@/hooks/useNotificationPreferences'; +import type { NotificationType, NotificationChannel, NotificationFrequency } from '@/types/notifications'; const NOTIFICATION_TYPES: NotificationType[] = [ 'price_movement', diff --git a/frontend/src/components/NotificationToast.tsx b/frontend/src/components/NotificationToast.tsx index 47463a7b..d660389f 100644 --- a/frontend/src/components/NotificationToast.tsx +++ b/frontend/src/components/NotificationToast.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useState } from 'react'; -import { Notification } from '../types/notifications'; -import { NotificationHelpers } from '../utils/notificationHelpers'; +import { Notification } from '@/types/notifications'; +import { NotificationHelpers } from '@/utils/notificationHelpers'; interface NotificationToastProps { notification: Notification; diff --git a/frontend/src/components/OracleCard.tsx b/frontend/src/components/OracleCard.tsx index 4fd6adcf..5bcd58a9 100644 --- a/frontend/src/components/OracleCard.tsx +++ b/frontend/src/components/OracleCard.tsx @@ -6,7 +6,7 @@ */ import { memo } from 'react'; -import type { OracleStats } from '../types/oracle'; +import type { OracleStats } from '@/types/oracle'; interface OracleCardProps { oracle: OracleStats; diff --git a/frontend/src/components/OracleStatusBadge.tsx b/frontend/src/components/OracleStatusBadge.tsx index 1c28b686..56659244 100644 --- a/frontend/src/components/OracleStatusBadge.tsx +++ b/frontend/src/components/OracleStatusBadge.tsx @@ -5,7 +5,7 @@ * Useful for showing oracle status in various contexts. */ -import type { OracleStats } from '../types/oracle'; +import type { OracleStats } from '@/types/oracle'; interface OracleStatusBadgeProps { oracle?: OracleStats | null; diff --git a/frontend/src/components/PerformanceDashboard.tsx b/frontend/src/components/PerformanceDashboard.tsx index 460d3f7f..e0553404 100644 --- a/frontend/src/components/PerformanceDashboard.tsx +++ b/frontend/src/components/PerformanceDashboard.tsx @@ -1,5 +1,5 @@ import { useState, useEffect } from 'react'; -import { performanceMonitor } from '../utils/performanceMonitor'; +import { performanceMonitor } from '@/utils/performanceMonitor'; export function PerformanceDashboard() { const [summary, setSummary] = useState>({}); diff --git a/frontend/src/components/PerformanceMonitor.tsx b/frontend/src/components/PerformanceMonitor.tsx index 4b3e53fe..7d680cc3 100644 --- a/frontend/src/components/PerformanceMonitor.tsx +++ b/frontend/src/components/PerformanceMonitor.tsx @@ -1,5 +1,5 @@ import React, { useState, useEffect } from 'react'; -import { monitoringService } from '../services/MonitoringService'; +import { monitoringService } from '@/services/MonitoringService'; interface PerformanceMetric { name: string; diff --git a/frontend/src/components/PersonalStatsCard.tsx b/frontend/src/components/PersonalStatsCard.tsx index c55eff6f..0f6d61b7 100644 --- a/frontend/src/components/PersonalStatsCard.tsx +++ b/frontend/src/components/PersonalStatsCard.tsx @@ -4,7 +4,7 @@ * Display user's personal analytics when connected */ -import type { PersonalStats } from '../types/analytics'; +import type { PersonalStats } from '@/types/analytics'; interface PersonalStatsCardProps { stats: PersonalStats | null; diff --git a/frontend/src/components/PoolPositionRow.tsx b/frontend/src/components/PoolPositionRow.tsx index 75aebf30..ed039776 100644 --- a/frontend/src/components/PoolPositionRow.tsx +++ b/frontend/src/components/PoolPositionRow.tsx @@ -1,6 +1,6 @@ import { Link } from 'react-router-dom'; -import type { LPPosition, PendingRewards } from '../types/liquidity'; -import { formatStxAmount } from '../types/liquidity'; +import type { LPPosition, PendingRewards } from '@/types/liquidity'; +import { formatStxAmount } from '@/types/liquidity'; interface PoolPositionRowProps { position: LPPosition; diff --git a/frontend/src/components/ProposalCard.tsx b/frontend/src/components/ProposalCard.tsx index 9f4681a6..11a75b50 100644 --- a/frontend/src/components/ProposalCard.tsx +++ b/frontend/src/components/ProposalCard.tsx @@ -4,9 +4,9 @@ * Displays a governance proposal with voting progress and actions. */ -import type { Proposal, VoteType } from '../types/governance'; -import { formatVotingPower, calculateVotePercentage, isQuorumReached } from '../hooks/useGovernance'; -import { formatBlocksRemaining } from '../config/governance'; +import type { Proposal, VoteType } from '@/types/governance'; +import { formatVotingPower, calculateVotePercentage, isQuorumReached } from '@/hooks/useGovernance'; +import { formatBlocksRemaining } from '@/config/governance'; interface ProposalCardProps { proposal: Proposal; diff --git a/frontend/src/components/QuestionForm.tsx b/frontend/src/components/QuestionForm.tsx index b4813025..ee638cd1 100644 --- a/frontend/src/components/QuestionForm.tsx +++ b/frontend/src/components/QuestionForm.tsx @@ -1,10 +1,10 @@ import React, { useState } from 'react'; -import type { ValidationState } from '../types/template'; +import type { ValidationState } from '@/types/template'; import { getQuestionSuggestions, formatDurationLabel, formatEndDate, -} from '../utils/templateValidation'; +} from '@/utils/templateValidation'; interface QuestionFormProps { question: string; diff --git a/frontend/src/components/RateLimitAdminPanel.tsx b/frontend/src/components/RateLimitAdminPanel.tsx index b8d4d708..4005e952 100644 --- a/frontend/src/components/RateLimitAdminPanel.tsx +++ b/frontend/src/components/RateLimitAdminPanel.tsx @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { rateLimitService } from '../services/RateLimitService'; -import { DEFAULT_RATE_LIMITS } from '../config/rateLimits'; +import { rateLimitService } from '@/services/RateLimitService'; +import { DEFAULT_RATE_LIMITS } from '@/config/rateLimits'; interface RateLimitConfigForm { action: string; diff --git a/frontend/src/components/RateLimitNotification.tsx b/frontend/src/components/RateLimitNotification.tsx index ece22713..7e1de9df 100644 --- a/frontend/src/components/RateLimitNotification.tsx +++ b/frontend/src/components/RateLimitNotification.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { formatTimeRemaining } from '../utils/rateLimitHelpers'; +import { formatTimeRemaining } from '@/utils/rateLimitHelpers'; interface RateLimitNotificationProps { message: string; diff --git a/frontend/src/components/RealtimeMarketComponents.tsx b/frontend/src/components/RealtimeMarketComponents.tsx index 0d56db00..136162c7 100644 --- a/frontend/src/components/RealtimeMarketComponents.tsx +++ b/frontend/src/components/RealtimeMarketComponents.tsx @@ -1,6 +1,6 @@ import React, { useMemo } from 'react'; -import { useRealtimeMarketData, useRealtimeOrderBook, useRealtimeTrades, useRealtimePrice, useRealtimeConnection } from '../hooks/useRealtimeMarket'; -import { MarketUpdate, OrderBookUpdate, TradeUpdate } from '../types/websocket'; +import { useRealtimeMarketData, useRealtimeOrderBook, useRealtimeTrades, useRealtimePrice, useRealtimeConnection } from '@/hooks/useRealtimeMarket'; +import { MarketUpdate, OrderBookUpdate, TradeUpdate } from '@/types/websocket'; interface RealtimeMarketCardProps { marketId: string; diff --git a/frontend/src/components/RecentMarkets.tsx b/frontend/src/components/RecentMarkets.tsx index a89cf71b..416e5805 100644 --- a/frontend/src/components/RecentMarkets.tsx +++ b/frontend/src/components/RecentMarkets.tsx @@ -5,8 +5,8 @@ */ import { Link } from 'react-router-dom'; -import { useMarkets } from '../hooks/useMarkets'; -import { formatBlocksToTime } from '../utils/marketValidation'; +import { useMarkets } from '@/hooks/useMarkets'; +import { formatBlocksToTime } from '@/utils/marketValidation'; export function RecentMarkets() { const { markets, isLoading } = useMarkets(); diff --git a/frontend/src/components/ReferralCard.tsx b/frontend/src/components/ReferralCard.tsx index d41e12f0..fb7a1d04 100644 --- a/frontend/src/components/ReferralCard.tsx +++ b/frontend/src/components/ReferralCard.tsx @@ -1,6 +1,6 @@ import React, { useState, memo } from 'react'; -import { useReferral } from '../hooks/useReferral'; -import { createReferralLink, generateShareMessage } from '../utils/referralUtils'; +import { useReferral } from '@/hooks/useReferral'; +import { createReferralLink, generateShareMessage } from '@/utils/referralUtils'; interface ReferralCardProps { userAddress: string | null; diff --git a/frontend/src/components/ReferralDashboard.tsx b/frontend/src/components/ReferralDashboard.tsx index 54eadf91..1cc00402 100644 --- a/frontend/src/components/ReferralDashboard.tsx +++ b/frontend/src/components/ReferralDashboard.tsx @@ -1,5 +1,5 @@ import React, { useState, useEffect } from 'react'; -import { useReferral } from '../hooks/useReferral'; +import { useReferral } from '@/hooks/useReferral'; import { createReferralLink, generateShareMessage, @@ -8,7 +8,7 @@ import { formatRewardAmount, calculateCommissionTiers, estimateMonthlyRewards, -} from '../utils/referralUtils'; +} from '@/utils/referralUtils'; interface ReferralDashboardProps { userAddress: string | null; diff --git a/frontend/src/components/ReputationDashboard.tsx b/frontend/src/components/ReputationDashboard.tsx index 18aac9be..5a41763c 100644 --- a/frontend/src/components/ReputationDashboard.tsx +++ b/frontend/src/components/ReputationDashboard.tsx @@ -1,7 +1,7 @@ import { useEffect, useReducer, memo } from 'react'; import { useTranslation } from 'react-i18next'; -import { UserReputation, ReputationBadge } from '../types/reputation'; -import { reputationFraudIntegration } from '../services/ReputationFraudIntegrationService'; +import { UserReputation, ReputationBadge } from '@/types/reputation'; +import { reputationFraudIntegration } from '@/services/ReputationFraudIntegrationService'; interface ReputationDashboardProps { userId: string; diff --git a/frontend/src/components/ReputationExamples.tsx b/frontend/src/components/ReputationExamples.tsx index d2e06734..80c9b3e5 100644 --- a/frontend/src/components/ReputationExamples.tsx +++ b/frontend/src/components/ReputationExamples.tsx @@ -1,11 +1,11 @@ import React from 'react'; -import { ReputationManager } from '../services/ReputationManager'; -import { reputationAnalytics } from '../utils/reputationAnalytics'; +import { ReputationManager } from '@/services/ReputationManager'; +import { reputationAnalytics } from '@/utils/reputationAnalytics'; import { calculateTrustScore, getReputationColor, getReputationDescription, -} from '../utils/reputationUtils'; +} from '@/utils/reputationUtils'; const manager = ReputationManager.getInstance(); @@ -327,7 +327,7 @@ const ExampleTrustCalculation: React.FC = () => {

Example 6: Trust Score Calculation

-        {`import { calculateTrustScore } from '../utils/reputationUtils';
+        {`import { calculateTrustScore } from '@/utils/reputationUtils';
 
 // Calculate trust score for clean user
 const trustScore = calculateTrustScore(
diff --git a/frontend/src/components/RequestIdProvider.tsx b/frontend/src/components/RequestIdProvider.tsx
index 47344eb3..5a3c92ec 100644
--- a/frontend/src/components/RequestIdProvider.tsx
+++ b/frontend/src/components/RequestIdProvider.tsx
@@ -1,5 +1,5 @@
 import React, { createContext, useContext, useEffect, useCallback } from 'react';
-import { logger } from '../utils/logger';
+import { logger } from '@/utils/logger';
 
 interface RequestIdContextType {
   requestId: string;
diff --git a/frontend/src/components/ResolutionCard.tsx b/frontend/src/components/ResolutionCard.tsx
index d70e37b5..94f8f1c5 100644
--- a/frontend/src/components/ResolutionCard.tsx
+++ b/frontend/src/components/ResolutionCard.tsx
@@ -6,8 +6,8 @@
  */
 
 import { memo } from 'react';
-import type { MarketResolution } from '../types/oracle';
-import { formatBlocksToTime } from '../types/oracle';
+import type { MarketResolution } from '@/types/oracle';
+import { formatBlocksToTime } from '@/types/oracle';
 
 interface ResolutionCardProps {
   resolution: MarketResolution;
diff --git a/frontend/src/components/RewardHistoryChart.tsx b/frontend/src/components/RewardHistoryChart.tsx
index ca4c6027..5070a1d7 100644
--- a/frontend/src/components/RewardHistoryChart.tsx
+++ b/frontend/src/components/RewardHistoryChart.tsx
@@ -1,6 +1,6 @@
 import React from 'react';
-import { useLiquidityRewards } from '../hooks/useLiquidityRewards';
-import { formatRewardAmount } from '../utils/liquidityRewardsCalculator';
+import { useLiquidityRewards } from '@/hooks/useLiquidityRewards';
+import { formatRewardAmount } from '@/utils/liquidityRewardsCalculator';
 
 interface RewardHistoryChartProps {
   marketId?: number;
diff --git a/frontend/src/components/RewardNotification.tsx b/frontend/src/components/RewardNotification.tsx
index abcb0381..62306179 100644
--- a/frontend/src/components/RewardNotification.tsx
+++ b/frontend/src/components/RewardNotification.tsx
@@ -1,5 +1,5 @@
 import React, { useState, useEffect } from 'react';
-import { formatRewardAmount } from '../utils/liquidityRewardsCalculator';
+import { formatRewardAmount } from '@/utils/liquidityRewardsCalculator';
 
 interface RewardNotificationProps {
   amount: number;
diff --git a/frontend/src/components/ScheduledExportManager.tsx b/frontend/src/components/ScheduledExportManager.tsx
index 1dea60f8..ad10df98 100644
--- a/frontend/src/components/ScheduledExportManager.tsx
+++ b/frontend/src/components/ScheduledExportManager.tsx
@@ -1,6 +1,6 @@
 import React, { useState } from 'react';
-import { useScheduledExports } from '../hooks/useScheduledExports';
-import type { ScheduledExport, ExportType, ExportSchedule } from '../types/export';
+import { useScheduledExports } from '@/hooks/useScheduledExports';
+import type { ScheduledExport, ExportType, ExportSchedule } from '@/types/export';
 
 export default function ScheduledExportManager() {
   const {
diff --git a/frontend/src/components/ShareModal.tsx b/frontend/src/components/ShareModal.tsx
index aaa03743..8271b934 100644
--- a/frontend/src/components/ShareModal.tsx
+++ b/frontend/src/components/ShareModal.tsx
@@ -1,6 +1,6 @@
 import { useState } from 'react';
 import { useCallback } from 'react';
-import { formatStx } from '../utils/helpers';
+import { formatStx } from '@/utils/helpers';
 
 interface ShareModalProps {
   isOpen: boolean;
diff --git a/frontend/src/components/TemplateHelp.tsx b/frontend/src/components/TemplateHelp.tsx
index 4093f548..0f99ed07 100644
--- a/frontend/src/components/TemplateHelp.tsx
+++ b/frontend/src/components/TemplateHelp.tsx
@@ -1,6 +1,6 @@
 import React from 'react';
-import type { TemplateCategory } from '../types/template';
-import { getTemplate, marketTemplates } from '../config/templates';
+import type { TemplateCategory } from '@/types/template';
+import { getTemplate, marketTemplates } from '@/config/templates';
 
 interface TemplateHelpProps {
   templateId: TemplateCategory | null;
diff --git a/frontend/src/components/TemplateSelection.tsx b/frontend/src/components/TemplateSelection.tsx
index 0fa59652..01be2101 100644
--- a/frontend/src/components/TemplateSelection.tsx
+++ b/frontend/src/components/TemplateSelection.tsx
@@ -1,6 +1,6 @@
 import React from 'react';
-import { getAllTemplates } from '../config/templates';
-import type { TemplateCategory } from '../types/template';
+import { getAllTemplates } from '@/config/templates';
+import type { TemplateCategory } from '@/types/template';
 
 interface TemplateSelectionProps {
   onSelectTemplate: (templateId: TemplateCategory) => void;
diff --git a/frontend/src/components/TestnetWarningBanner.tsx b/frontend/src/components/TestnetWarningBanner.tsx
index 17ea86d1..ecb4e5d1 100644
--- a/frontend/src/components/TestnetWarningBanner.tsx
+++ b/frontend/src/components/TestnetWarningBanner.tsx
@@ -5,7 +5,7 @@
  */
 
 import { useState } from 'react';
-import { useNetwork } from '../contexts/NetworkContext';
+import { useNetwork } from '@/contexts/NetworkContext';
 
 interface TestnetWarningBannerProps {
   dismissible?: boolean;
diff --git a/frontend/src/components/ThemeSwitcher.tsx b/frontend/src/components/ThemeSwitcher.tsx
index dbef7807..7e67af05 100644
--- a/frontend/src/components/ThemeSwitcher.tsx
+++ b/frontend/src/components/ThemeSwitcher.tsx
@@ -4,7 +4,7 @@
  * Toggle button for switching between light and dark themes
  */
 
-import { useTheme } from '../contexts/ThemeContext';
+import { useTheme } from '@/contexts/ThemeContext';
 
 interface ThemeSwitcherProps {
   variant?: 'button' | 'icon';
diff --git a/frontend/src/components/TimeRangeSelector.tsx b/frontend/src/components/TimeRangeSelector.tsx
index 9d58faa3..e3fa1038 100644
--- a/frontend/src/components/TimeRangeSelector.tsx
+++ b/frontend/src/components/TimeRangeSelector.tsx
@@ -4,7 +4,7 @@
  * Toggle buttons for selecting analytics time range
  */
 
-import type { TimeRange } from '../types/analytics';
+import type { TimeRange } from '@/types/analytics';
 
 interface TimeRangeSelectorProps {
   value: TimeRange;
diff --git a/frontend/src/components/TopMarketsTable.tsx b/frontend/src/components/TopMarketsTable.tsx
index 80f23122..4ca07f05 100644
--- a/frontend/src/components/TopMarketsTable.tsx
+++ b/frontend/src/components/TopMarketsTable.tsx
@@ -6,7 +6,7 @@
 
 import { memo } from 'react';
 import { Link } from 'react-router-dom';
-import type { MarketStats } from '../types/analytics';
+import type { MarketStats } from '@/types/analytics';
 import { MarketBar } from './charts/MarketDistributionChart';
 
 interface TopMarketsTableProps {
diff --git a/frontend/src/components/TransactionHistory.tsx b/frontend/src/components/TransactionHistory.tsx
index d8188ac1..f6a90da4 100644
--- a/frontend/src/components/TransactionHistory.tsx
+++ b/frontend/src/components/TransactionHistory.tsx
@@ -4,7 +4,7 @@
  * Displays a list of user's transaction history with status indicators.
  */
 import { useState } from 'react';
-import { useNetwork } from '../contexts/NetworkContext';
+import { useNetwork } from '@/contexts/NetworkContext';
 import {
   type Transaction,
   TransactionStatus,
@@ -12,7 +12,7 @@ import {
   getStatusColor,
   getStatusLabel,
   getExplorerUrl,
-} from '../utils/transactions';
+} from '@/utils/transactions';
 
 interface TransactionHistoryProps {
   transactions: Transaction[];
diff --git a/frontend/src/components/TransactionIdProvider.tsx b/frontend/src/components/TransactionIdProvider.tsx
index 188c3a24..01e7450f 100644
--- a/frontend/src/components/TransactionIdProvider.tsx
+++ b/frontend/src/components/TransactionIdProvider.tsx
@@ -1,5 +1,5 @@
 import React, { createContext, useContext, useCallback } from 'react';
-import { logger } from '../utils/logger';
+import { logger } from '@/utils/logger';
 
 interface TransactionIdContextType {
   transactionId: string | null;
diff --git a/frontend/src/components/TransactionProvider.tsx b/frontend/src/components/TransactionProvider.tsx
index 587b6454..37217759 100644
--- a/frontend/src/components/TransactionProvider.tsx
+++ b/frontend/src/components/TransactionProvider.tsx
@@ -5,12 +5,12 @@
  * Provides global transaction tracking state throughout the app.
  */
 import { createContext, useContext, useState, useCallback, useMemo, type ReactNode } from 'react';
-import { useTransactionTracking } from '../hooks/useTransactionTracking';
+import { useTransactionTracking } from '@/hooks/useTransactionTracking';
 import { TransactionToast } from './TransactionToast';
 import {
   type Transaction,
   TransactionStatus,
-} from '../utils/transactions';
+} from '@/utils/transactions';
 
 interface TransactionContextValue {
   transactions: Transaction[];
diff --git a/frontend/src/components/TransactionToast.tsx b/frontend/src/components/TransactionToast.tsx
index 7d31bea8..7897110b 100644
--- a/frontend/src/components/TransactionToast.tsx
+++ b/frontend/src/components/TransactionToast.tsx
@@ -4,7 +4,7 @@
  * Shows a toast notification for transaction status updates.
  */
 import { useEffect, useState, useCallback } from 'react';
-import { useNetwork } from '../contexts/NetworkContext';
+import { useNetwork } from '@/contexts/NetworkContext';
 import {
   type Transaction,
   TransactionStatus,
@@ -12,7 +12,7 @@ import {
   getStatusColor,
   getStatusLabel,
   getExplorerUrl,
-} from '../utils/transactions';
+} from '@/utils/transactions';
 
 interface TransactionToastProps {
   transaction: Transaction;
diff --git a/frontend/src/components/UpgradeManager.tsx b/frontend/src/components/UpgradeManager.tsx
index 888e8012..0d20096d 100644
--- a/frontend/src/components/UpgradeManager.tsx
+++ b/frontend/src/components/UpgradeManager.tsx
@@ -1,6 +1,6 @@
 import React, { useReducer, useEffect } from 'react';
-import { useContractUpgrade } from '../hooks/useContractUpgrade';
-import { UpgradeProposal } from '../services/ContractUpgradeService';
+import { useContractUpgrade } from '@/hooks/useContractUpgrade';
+import { UpgradeProposal } from '@/services/ContractUpgradeService';
 
 interface UpgradeManagerProps {
   proxyContract: { address: string; name: string };
diff --git a/frontend/src/components/UserIdProvider.tsx b/frontend/src/components/UserIdProvider.tsx
index 96f1118f..0bbe199c 100644
--- a/frontend/src/components/UserIdProvider.tsx
+++ b/frontend/src/components/UserIdProvider.tsx
@@ -1,6 +1,6 @@
 import React, { createContext, useContext, useEffect, useCallback } from 'react';
-import { logger } from '../utils/logger';
-import { useWallet } from '../components/WalletProvider';
+import { logger } from '@/utils/logger';
+import { useWallet } from '@/components/WalletProvider';
 
 interface UserIdContextType {
   userId: string | null;
diff --git a/frontend/src/components/WalletProvider.tsx b/frontend/src/components/WalletProvider.tsx
index 804138f5..393d6cc9 100644
--- a/frontend/src/components/WalletProvider.tsx
+++ b/frontend/src/components/WalletProvider.tsx
@@ -1,8 +1,8 @@
 /* eslint-disable react-refresh/only-export-components */
 import { createContext, useContext, useState, useEffect, useCallback, type ReactNode } from 'react';
 import { connect as stacksConnect } from '@stacks/connect';
-import { GDPRComplianceService } from '../services/GDPRComplianceService';
-import { SecureStorageV2Service } from '../services/SecureStorageV2Service';
+import { GDPRComplianceService } from '@/services/GDPRComplianceService';
+import { SecureStorageV2Service } from '@/services/SecureStorageV2Service';
 
 interface WalletContextType {
   isConnected: boolean;
diff --git a/frontend/src/examples/CachingExample.tsx b/frontend/src/examples/CachingExample.tsx
index be620f44..e48f2105 100644
--- a/frontend/src/examples/CachingExample.tsx
+++ b/frontend/src/examples/CachingExample.tsx
@@ -1,6 +1,6 @@
-import { useCachedMarket } from '../hooks/useCachedMarket';
-import { CacheStatus } from '../components/CacheStatus';
-import { cacheInvalidationService } from '../services/CacheInvalidationService';
+import { useCachedMarket } from '@/hooks/useCachedMarket';
+import { CacheStatus } from '@/components/CacheStatus';
+import { cacheInvalidationService } from '@/services/CacheInvalidationService';
 
 export function CachingExample() {
   const { data: market, isLoading, isCached, refetch } = useCachedMarket({
diff --git a/frontend/src/examples/MarketCreationExample.tsx b/frontend/src/examples/MarketCreationExample.tsx
index 1dd561c5..f1fdd6ec 100644
--- a/frontend/src/examples/MarketCreationExample.tsx
+++ b/frontend/src/examples/MarketCreationExample.tsx
@@ -13,7 +13,7 @@
  */
 
 import { useState, FormEvent } from 'react';
-import { useContract } from '../hooks/useContract';
+import { useContract } from '@/hooks/useContract';
 import {
   validateMarketCreation,
   MIN_TITLE_LENGTH,
@@ -22,7 +22,7 @@ import {
   MAX_DESCRIPTION_LENGTH,
   MIN_MARKET_DURATION_BLOCKS,
   MAX_MARKET_DURATION_BLOCKS,
-} from '../utils/marketValidation';
+} from '@/utils/marketValidation';
 
 interface FormErrors {
   title?: string;
diff --git a/frontend/src/examples/PredictionExample.tsx b/frontend/src/examples/PredictionExample.tsx
index 574dcc52..da7e548f 100644
--- a/frontend/src/examples/PredictionExample.tsx
+++ b/frontend/src/examples/PredictionExample.tsx
@@ -19,10 +19,10 @@ import {
   parseToMicroAmount,
   formatMicroAmount,
   validateTransactionAmount,
-} from '../hooks/useContract';
-import { validatePrediction } from '../utils/marketValidation';
-import { MarketOutcome, getMarketOutcomeLabel } from '../types/market';
-import type { Market } from '../types/market';
+} from '@/hooks/useContract';
+import { validatePrediction } from '@/utils/marketValidation';
+import { MarketOutcome, getMarketOutcomeLabel } from '@/types/market';
+import type { Market } from '@/types/market';
 
 interface PredictionExampleProps {
   market: Market;
diff --git a/frontend/src/examples/UpgradeSystemExample.tsx b/frontend/src/examples/UpgradeSystemExample.tsx
index c104a419..33831b08 100644
--- a/frontend/src/examples/UpgradeSystemExample.tsx
+++ b/frontend/src/examples/UpgradeSystemExample.tsx
@@ -1,7 +1,7 @@
 import React, { useState, useEffect } from 'react';
-import { useContractUpgrade } from '../hooks/useContractUpgrade';
-import { useMigration } from '../hooks/useMigration';
-import { useStateSnapshot } from '../hooks/useStateSnapshot';
+import { useContractUpgrade } from '@/hooks/useContractUpgrade';
+import { useMigration } from '@/hooks/useMigration';
+import { useStateSnapshot } from '@/hooks/useStateSnapshot';
 
 const PROXY_CONTRACT = {
   address: 'ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM',
diff --git a/frontend/src/pages/AnalyticsPage.tsx b/frontend/src/pages/AnalyticsPage.tsx
index b82729af..aa1ba8c0 100644
--- a/frontend/src/pages/AnalyticsPage.tsx
+++ b/frontend/src/pages/AnalyticsPage.tsx
@@ -4,14 +4,14 @@
  * Dashboard displaying platform statistics and market insights
  */
 
-import { useAnalytics } from '../hooks/useAnalytics';
-import { useWallet } from '../components/WalletProvider';
-import { StatsCard, StatsGrid } from '../components/StatsCard';
-import { VolumeChart, CategoryPieChart, ActivityChart } from '../components/charts';
-import { TopMarketsTable, TopMarketCard } from '../components/TopMarketsTable';
-import { TimeRangeSelector, TimeRangeDropdown } from '../components/TimeRangeSelector';
-import { PersonalStatsCard } from '../components/PersonalStatsCard';
-import { LoadingState } from '../components/Loading';
+import { useAnalytics } from '@/hooks/useAnalytics';
+import { useWallet } from '@/components/WalletProvider';
+import { StatsCard, StatsGrid } from '@/components/StatsCard';
+import { VolumeChart, CategoryPieChart, ActivityChart } from '@/components/charts';
+import { TopMarketsTable, TopMarketCard } from '@/components/TopMarketsTable';
+import { TimeRangeSelector, TimeRangeDropdown } from '@/components/TimeRangeSelector';
+import { PersonalStatsCard } from '@/components/PersonalStatsCard';
+import { LoadingState } from '@/components/Loading';
 
 export function AnalyticsPage() {
   const { isConnected } = useWallet();
diff --git a/frontend/src/pages/CreateMarketPage.tsx b/frontend/src/pages/CreateMarketPage.tsx
index e498072c..6d5846d7 100644
--- a/frontend/src/pages/CreateMarketPage.tsx
+++ b/frontend/src/pages/CreateMarketPage.tsx
@@ -19,10 +19,10 @@
 
 import { useEffect, useRef } from 'react';
 import { useNavigate } from 'react-router-dom';
-import { useWallet } from '../components/WalletProvider';
-import { useMarketCreation } from '../hooks/useMarketCreation';
-import { MarketForm } from '../components/MarketForm';
-import type { CreateMarketFormData } from '../types/market';
+import { useWallet } from '@/components/WalletProvider';
+import { useMarketCreation } from '@/hooks/useMarketCreation';
+import { MarketForm } from '@/components/MarketForm';
+import type { CreateMarketFormData } from '@/types/market';
 
 export function CreateMarketPage() {
   const navigate = useNavigate();
diff --git a/frontend/src/pages/CreateMultiMarketPage.tsx b/frontend/src/pages/CreateMultiMarketPage.tsx
index d37e7bdd..e1615c34 100644
--- a/frontend/src/pages/CreateMultiMarketPage.tsx
+++ b/frontend/src/pages/CreateMultiMarketPage.tsx
@@ -1,7 +1,7 @@
 import { useMemo, useState } from 'react';
 import { Link } from 'react-router-dom';
-import { useMultiMarketCreation } from '../hooks/useMultiMarketCreation';
-import { validateMultiOutcomeInputs } from '../utils/validation';
+import { useMultiMarketCreation } from '@/hooks/useMultiMarketCreation';
+import { validateMultiOutcomeInputs } from '@/utils/validation';
 
 function getCurrentBlockEstimate(): number {
   return Math.floor(Date.now() / 600000);
diff --git a/frontend/src/pages/GovernancePage.tsx b/frontend/src/pages/GovernancePage.tsx
index 8c179416..979faa96 100644
--- a/frontend/src/pages/GovernancePage.tsx
+++ b/frontend/src/pages/GovernancePage.tsx
@@ -6,17 +6,17 @@
  */
 
 import { useState } from 'react';
-import { useWallet } from '../components/WalletProvider';
+import { useWallet } from '@/components/WalletProvider';
 import { 
   useGovernance, 
   formatVotingPower, 
   calculateVotePercentage,
-} from '../hooks/useGovernance';
-import { useGovernanceActions } from '../hooks/useGovernanceActions';
-import { ProposalCard } from '../components/ProposalCard';
-import { CreateProposalModal } from '../components/CreateProposalModal';
-import type { Proposal, VoteType, ProposalStatus } from '../types/governance';
-import { validateMarketId } from '../utils/validation';
+} from '@/hooks/useGovernance';
+import { useGovernanceActions } from '@/hooks/useGovernanceActions';
+import { ProposalCard } from '@/components/ProposalCard';
+import { CreateProposalModal } from '@/components/CreateProposalModal';
+import type { Proposal, VoteType, ProposalStatus } from '@/types/governance';
+import { validateMarketId } from '@/utils/validation';
 
 export function GovernancePage() {
   const { isConnected, connect, address } = useWallet();
diff --git a/frontend/src/pages/LandingPage.tsx b/frontend/src/pages/LandingPage.tsx
index 00ea9f2b..c775a612 100644
--- a/frontend/src/pages/LandingPage.tsx
+++ b/frontend/src/pages/LandingPage.tsx
@@ -1,14 +1,14 @@
 import { useMemo } from 'react';
 import { Link } from 'react-router-dom';
-import { useWallet } from '../components/WalletProvider';
-import { useMarkets } from '../hooks/useMarkets';
-import { MarketCard } from '../components/MarketCard';
-import { MarketStatus } from '../types/market';
-import { formatStx } from '../utils/helpers';
-import { useNetwork } from '../contexts/NetworkContext';
-import { getExplorerAddressUrl } from '../utils/transactions';
-import { useRecentlyViewed } from '../contexts/RecentlyViewedContext';
-import type { Market } from '../types/market';
+import { useWallet } from '@/components/WalletProvider';
+import { useMarkets } from '@/hooks/useMarkets';
+import { MarketCard } from '@/components/MarketCard';
+import { MarketStatus } from '@/types/market';
+import { formatStx } from '@/utils/helpers';
+import { useNetwork } from '@/contexts/NetworkContext';
+import { getExplorerAddressUrl } from '@/utils/transactions';
+import { useRecentlyViewed } from '@/contexts/RecentlyViewedContext';
+import type { Market } from '@/types/market';
 
 export function LandingPage() {
   const { connect, isConnected } = useWallet();
diff --git a/frontend/src/pages/LeaderboardPage.tsx b/frontend/src/pages/LeaderboardPage.tsx
index af11a728..af3260d8 100644
--- a/frontend/src/pages/LeaderboardPage.tsx
+++ b/frontend/src/pages/LeaderboardPage.tsx
@@ -1,6 +1,6 @@
 import { useState } from 'react';
-import { useLeaderboard } from '../hooks/useLeaderboard';
-import { formatStx } from '../utils/helpers';
+import { useLeaderboard } from '@/hooks/useLeaderboard';
+import { formatStx } from '@/utils/helpers';
 
 type LeaderboardTab = 'win-rate' | 'volume' | 'weekly' | 'monthly';
 
diff --git a/frontend/src/pages/LiquidityPage.tsx b/frontend/src/pages/LiquidityPage.tsx
index d1f70f9f..6ddcb5a3 100644
--- a/frontend/src/pages/LiquidityPage.tsx
+++ b/frontend/src/pages/LiquidityPage.tsx
@@ -6,13 +6,13 @@
  */
 
 import { useState, useEffect } from 'react';
-import { useWallet } from '../components/WalletProvider';
-import { useLiquidity } from '../hooks/useLiquidity';
-import { useLiquidityActions } from '../hooks/useLiquidityActions';
-import { useLiquidityRewards } from '../hooks/useLiquidityRewards';
-import { LiquidityCard, LiquidityCardSkeleton } from '../components/LiquidityCard';
-import type { LiquidityPool, LPPosition, PendingRewards } from '../types/liquidity';
-import { formatStxAmount, validateLiquidityAmount } from '../types/liquidity';
+import { useWallet } from '@/components/WalletProvider';
+import { useLiquidity } from '@/hooks/useLiquidity';
+import { useLiquidityActions } from '@/hooks/useLiquidityActions';
+import { useLiquidityRewards } from '@/hooks/useLiquidityRewards';
+import { LiquidityCard, LiquidityCardSkeleton } from '@/components/LiquidityCard';
+import type { LiquidityPool, LPPosition, PendingRewards } from '@/types/liquidity';
+import { formatStxAmount, validateLiquidityAmount } from '@/types/liquidity';
 
 type TabType = 'pools' | 'positions' | 'rewards';
 
diff --git a/frontend/src/pages/MarketsPage.tsx b/frontend/src/pages/MarketsPage.tsx
index 31b30f1c..88214289 100644
--- a/frontend/src/pages/MarketsPage.tsx
+++ b/frontend/src/pages/MarketsPage.tsx
@@ -1,13 +1,13 @@
 import { useEffect, useReducer } from 'react';
 import { Link } from 'react-router-dom';
-import { useMarkets } from '../hooks/useMarkets';
-import { useMarketFiltering } from '../hooks/useMarketFiltering';
-import { useFilterPresets } from '../hooks/useFilterPresets';
-import { useRealtimeSignal } from '../hooks/useRealtimeSignal';
-import { MarketCard } from '../components/MarketCard';
-import { MarketFilter } from '../components/MarketFilter';
-import { MarketRecommendations } from '../components/MarketRecommendations';
-import { getCategoryConfig, CATEGORIES, MarketCategory } from '../utils/marketCategories';
+import { useMarkets } from '@/hooks/useMarkets';
+import { useMarketFiltering } from '@/hooks/useMarketFiltering';
+import { useFilterPresets } from '@/hooks/useFilterPresets';
+import { useRealtimeSignal } from '@/hooks/useRealtimeSignal';
+import { MarketCard } from '@/components/MarketCard';
+import { MarketFilter } from '@/components/MarketFilter';
+import { MarketRecommendations } from '@/components/MarketRecommendations';
+import { getCategoryConfig, CATEGORIES, MarketCategory } from '@/utils/marketCategories';
 
 export function MarketsPage() {
   const { markets, isLoading, error, refetch } = useMarkets();
diff --git a/frontend/src/pages/MultiMarketsPage.tsx b/frontend/src/pages/MultiMarketsPage.tsx
index 3a08c1a1..4fde9d4e 100644
--- a/frontend/src/pages/MultiMarketsPage.tsx
+++ b/frontend/src/pages/MultiMarketsPage.tsx
@@ -1,8 +1,8 @@
 import { useEffect, useReducer } from 'react';
 import { Link } from 'react-router-dom';
-import { useMultiMarkets } from '../hooks/useMultiMarkets';
-import { useRealtimeSignal } from '../hooks/useRealtimeSignal';
-import { formatAddress, formatStx } from '../utils/helpers';
+import { useMultiMarkets } from '@/hooks/useMultiMarkets';
+import { useRealtimeSignal } from '@/hooks/useRealtimeSignal';
+import { formatAddress, formatStx } from '@/utils/helpers';
 
 export function MultiMarketsPage() {
   const { markets, isLoading, error, refetch } = useMultiMarkets();
diff --git a/frontend/src/pages/MultiTradePage.tsx b/frontend/src/pages/MultiTradePage.tsx
index 843b3069..faa54167 100644
--- a/frontend/src/pages/MultiTradePage.tsx
+++ b/frontend/src/pages/MultiTradePage.tsx
@@ -1,12 +1,12 @@
 import { useEffect, useMemo, useState } from 'react';
 import { Link, useParams } from 'react-router-dom';
-import { useMultiMarkets } from '../hooks/useMultiMarkets';
-import { useMultiStake } from '../hooks/useMultiStake';
-import { useRealtimeSignal } from '../hooks/useRealtimeSignal';
-import { formatStx } from '../utils/helpers';
-import { validateAmount } from '../utils/validation';
+import { useMultiMarkets } from '@/hooks/useMultiMarkets';
+import { useMultiStake } from '@/hooks/useMultiStake';
+import { useRealtimeSignal } from '@/hooks/useRealtimeSignal';
+import { formatStx } from '@/utils/helpers';
+import { validateAmount } from '@/utils/validation';
 import { MIN_STAKE, MAX_STAKE } from '../constants';
-import { useWallet } from '../components/WalletProvider';
+import { useWallet } from '@/components/WalletProvider';
 
 export function MultiTradePage() {
   const { id } = useParams<{ id: string }>();
diff --git a/frontend/src/pages/OraclePage.tsx b/frontend/src/pages/OraclePage.tsx
index dbfd4a5f..af77a1be 100644
--- a/frontend/src/pages/OraclePage.tsx
+++ b/frontend/src/pages/OraclePage.tsx
@@ -6,11 +6,11 @@
  */
 
 import { useState, useEffect } from 'react';
-import { useWallet } from '../components/WalletProvider';
-import { useOracle } from '../hooks/useOracle';
-import { useOracleActions } from '../hooks/useOracleActions';
-import type { OracleStats, MarketResolution, Dispute } from '../types/oracle';
-import { formatDisputeStatus, getDisputeStatusColor, formatBlocksToTime, DISPUTE_STATUS } from '../types/oracle';
+import { useWallet } from '@/components/WalletProvider';
+import { useOracle } from '@/hooks/useOracle';
+import { useOracleActions } from '@/hooks/useOracleActions';
+import type { OracleStats, MarketResolution, Dispute } from '@/types/oracle';
+import { formatDisputeStatus, getDisputeStatusColor, formatBlocksToTime, DISPUTE_STATUS } from '@/types/oracle';
 
 // Tabs for the oracle dashboard
 type TabType = 'overview' | 'oracles' | 'resolutions' | 'disputes' | 'admin';
diff --git a/frontend/src/pages/PortfolioPage.tsx b/frontend/src/pages/PortfolioPage.tsx
index 2b96c212..b12b0bd6 100644
--- a/frontend/src/pages/PortfolioPage.tsx
+++ b/frontend/src/pages/PortfolioPage.tsx
@@ -1,14 +1,14 @@
 import { useState, useEffect } from 'react';
 import { Link } from 'react-router-dom';
 import { cvToJSON, fetchCallReadOnlyFunction, uintCV, principalCV } from '@stacks/transactions';
-import { useWallet } from '../components/WalletProvider';
-import { useNetwork } from '../contexts/NetworkContext';
-import { useMarkets } from '../hooks/useMarkets';
-import { useContract } from '../hooks/useContract';
-import type { Market, Position } from '../types/market';
-import { MarketStatus, MarketOutcome } from '../types/market';
-import { parsePosition, formatStx, calculateOdds } from '../utils/helpers';
-import { validateMarketId } from '../utils/validation';
+import { useWallet } from '@/components/WalletProvider';
+import { useNetwork } from '@/contexts/NetworkContext';
+import { useMarkets } from '@/hooks/useMarkets';
+import { useContract } from '@/hooks/useContract';
+import type { Market, Position } from '@/types/market';
+import { MarketStatus, MarketOutcome } from '@/types/market';
+import { parsePosition, formatStx, calculateOdds } from '@/utils/helpers';
+import { validateMarketId } from '@/utils/validation';
 
 interface PositionWithMarket extends Position {
   market: Market;
diff --git a/frontend/src/pages/RecentlyViewedPage.tsx b/frontend/src/pages/RecentlyViewedPage.tsx
index 9300cc25..0ab811e3 100644
--- a/frontend/src/pages/RecentlyViewedPage.tsx
+++ b/frontend/src/pages/RecentlyViewedPage.tsx
@@ -1,9 +1,9 @@
 import { Link } from 'react-router-dom';
 import { useMemo } from 'react';
-import { MarketCard } from '../components/MarketCard';
-import { useMarkets } from '../hooks/useMarkets';
-import { useRecentlyViewed } from '../contexts/RecentlyViewedContext';
-import type { Market } from '../types/market';
+import { MarketCard } from '@/components/MarketCard';
+import { useMarkets } from '@/hooks/useMarkets';
+import { useRecentlyViewed } from '@/contexts/RecentlyViewedContext';
+import type { Market } from '@/types/market';
 
 export function RecentlyViewedPage() {
   const { markets, isLoading, error, refetch } = useMarkets();
diff --git a/frontend/src/pages/StakingPage.tsx b/frontend/src/pages/StakingPage.tsx
index f510aba1..49a00b6b 100644
--- a/frontend/src/pages/StakingPage.tsx
+++ b/frontend/src/pages/StakingPage.tsx
@@ -1,14 +1,14 @@
 import { useState, useMemo } from 'react';
-import { useWallet } from '../components/WalletProvider';
-import { useStakingData } from '../hooks/useStakingData';
-import { useStakingActions } from '../hooks/useStakingActions';
+import { useWallet } from '@/components/WalletProvider';
+import { useStakingData } from '@/hooks/useStakingData';
+import { useStakingActions } from '@/hooks/useStakingActions';
 import { 
   formatOxcAmount, 
   parseOxcInput, 
   calculateEstimatedApy,
   formatLockStatus,
-} from '../utils/stakingHelpers';
-import { validateAmount, type ValidationResult } from '../utils/validation';
+} from '@/utils/stakingHelpers';
+import { validateAmount, type ValidationResult } from '@/utils/validation';
 
 type StakingTab = 'stake' | 'unstake' | 'rewards';
 
diff --git a/frontend/src/pages/TokenPage.tsx b/frontend/src/pages/TokenPage.tsx
index 8ecc9270..5c353aea 100644
--- a/frontend/src/pages/TokenPage.tsx
+++ b/frontend/src/pages/TokenPage.tsx
@@ -1,5 +1,5 @@
 import { Link } from 'react-router-dom';
-import { OXC_TOKEN, TOKEN_DISTRIBUTION, TOKEN_UTILITIES } from '../config/token';
+import { OXC_TOKEN, TOKEN_DISTRIBUTION, TOKEN_UTILITIES } from '@/config/token';
 
 export function TokenPage() {
   const distributionColors = ['#3B82F6', '#10B981', '#F59E0B', '#8B5CF6', '#EC4899'];
diff --git a/frontend/src/pages/TradePage.tsx b/frontend/src/pages/TradePage.tsx
index 6e3f269e..f01cd415 100644
--- a/frontend/src/pages/TradePage.tsx
+++ b/frontend/src/pages/TradePage.tsx
@@ -1,19 +1,19 @@
 import { useState, useEffect, useCallback, useMemo } from 'react';
 import { useParams, Link } from 'react-router-dom';
 import { cvToJSON, fetchCallReadOnlyFunction, uintCV } from '@stacks/transactions';
-import type { Market } from '../types/market';
-import { MarketStatus, MarketOutcome } from '../types/market';
-import { parseMarketData, calculateOdds, formatStx, getStatusLabel, formatAddress } from '../utils/helpers';
+import type { Market } from '@/types/market';
+import { MarketStatus, MarketOutcome } from '@/types/market';
+import { parseMarketData, calculateOdds, formatStx, getStatusLabel, formatAddress } from '@/utils/helpers';
 import { MIN_STAKE, MAX_STAKE } from '../constants';
-import { useWallet } from '../components/WalletProvider';
-import { useNetwork } from '../contexts/NetworkContext';
-import { useStake } from '../hooks/useStake';
-import { useRealtimeSignal } from '../hooks/useRealtimeSignal';
-import { validateAmount, validateMarketId } from '../utils/validation';
-import { SocialButtons } from '../components/SocialButtons';
-import { getStakeHistoryForMarketUser, getStakeHistoryTotals, type StakeHistoryEntry } from '../utils/stakeHistory';
-import { getExplorerAddressUrl, getExplorerUrl } from '../utils/transactions';
-import { useRecentlyViewed } from '../contexts/RecentlyViewedContext';
+import { useWallet } from '@/components/WalletProvider';
+import { useNetwork } from '@/contexts/NetworkContext';
+import { useStake } from '@/hooks/useStake';
+import { useRealtimeSignal } from '@/hooks/useRealtimeSignal';
+import { validateAmount, validateMarketId } from '@/utils/validation';
+import { SocialButtons } from '@/components/SocialButtons';
+import { getStakeHistoryForMarketUser, getStakeHistoryTotals, type StakeHistoryEntry } from '@/utils/stakeHistory';
+import { getExplorerAddressUrl, getExplorerUrl } from '@/utils/transactions';
+import { useRecentlyViewed } from '@/contexts/RecentlyViewedContext';
 
 /**
  * TradePage Component
diff --git a/frontend/src/pages/TransactionHistoryPage.tsx b/frontend/src/pages/TransactionHistoryPage.tsx
index 99c3e044..87119cb2 100644
--- a/frontend/src/pages/TransactionHistoryPage.tsx
+++ b/frontend/src/pages/TransactionHistoryPage.tsx
@@ -1,10 +1,10 @@
 /**
  * Transaction History Page
  */
-import { useTransactions } from '../components/TransactionProvider';
-import { TransactionHistory } from '../components/TransactionHistory';
-import { useWallet } from '../components/WalletProvider';
-import { TransactionStatus, getStatusColor } from '../utils/transactions';
+import { useTransactions } from '@/components/TransactionProvider';
+import { TransactionHistory } from '@/components/TransactionHistory';
+import { useWallet } from '@/components/WalletProvider';
+import { TransactionStatus, getStatusColor } from '@/utils/transactions';
 
 function StatCard({ label, value, color }: { label: string; value: number; color: string }) {
   return (
diff --git a/frontend/src/pages/WatchlistPage.tsx b/frontend/src/pages/WatchlistPage.tsx
index 5341f282..412e5fac 100644
--- a/frontend/src/pages/WatchlistPage.tsx
+++ b/frontend/src/pages/WatchlistPage.tsx
@@ -1,9 +1,9 @@
 import { Link } from 'react-router-dom';
 import { useMemo } from 'react';
-import { useMarkets } from '../hooks/useMarkets';
-import { MarketCard } from '../components/MarketCard';
-import { useWatchlist } from '../contexts/WatchlistContext';
-import type { Market } from '../types/market';
+import { useMarkets } from '@/hooks/useMarkets';
+import { MarketCard } from '@/components/MarketCard';
+import { useWatchlist } from '@/contexts/WatchlistContext';
+import type { Market } from '@/types/market';
 
 export function WatchlistPage() {
   const { markets, isLoading, error, refetch } = useMarkets();