Centralized common code into shared/ folder to eliminate duplication and
improve maintainability across all three frontend projects (web, mobile,
pezkuwi-sdk-ui).
Changes:
- Added token types and constants to shared/types/tokens.ts
- TokenInfo, PoolInfo, SwapQuote, and other DEX types
- KNOWN_TOKENS with HEZ, PEZ, wUSDT definitions
- Token logos (🟡🟣💵)
- Added Kurdistan color palette to shared/constants/
- Kesk, Sor, Zer, Spî, Reş color definitions
- Added TOKEN_DISPLAY_SYMBOLS mapping (USDT vs wUSDT)
- Updated blockchain configuration in shared/blockchain/polkadot.ts
- Added beta testnet endpoint (wss://beta-rpc.pezkuwi.art)
- Defined DEFAULT_ENDPOINT constant
- Moved i18n to shared/i18n/
- Centralized translation files for 6 languages (EN, TR, KMR, CKB, AR, FA)
- Added LANGUAGES configuration with RTL support
- Created isRTL() helper function
- Updated web and mobile to import from shared
- web/src/types/dex.ts now re-exports from shared
- web/src/contexts/PolkadotContext.tsx uses DEFAULT_ENDPOINT
- mobile/src/i18n/index.ts uses shared translations
- mobile/src/contexts/PolkadotContext.tsx uses DEFAULT_ENDPOINT
- Updated shared/README.md with comprehensive documentation
This architecture reduces code duplication and ensures consistency across
all frontend projects.
- Created useDelegation hook to fetch real delegation data from blockchain
- Queries democracy.voting pallet for all delegations
- Tracks delegate totals, delegator counts, and voting power
- Calculates delegate performance metrics and success rates
- Fetches user's own delegations with conviction levels
- Auto-refreshes every 30 seconds for live updates
- Provides delegateVotes and undelegateVotes transaction builders
- Updated DelegationManager component to use live data
- Replaced mock delegates with real blockchain delegates
- Replaced mock delegations with user's actual delegations
- Added loading states with spinner during data fetch
- Added error handling with user-friendly messages
- Added "Live Blockchain Data" badge for transparency
- Formatted token amounts from blockchain units (12 decimals)
- Show delegate addresses in monospace font
- Display delegator count and conviction levels
- Empty states for no delegates/delegations scenarios
- Enhanced PolkadotContext with isConnected property
- Added isConnected as alias for isApiReady
- Maintains backward compatibility with existing hooks
- Added formatNumber utility to lib/utils
- Formats large numbers with K/M/B suffixes
- Handles decimals and edge cases
- Consistent formatting across all components
All delegation data now comes from live blockchain queries.
Restructured the project to support multiple frontend applications:
- Move web app to web/ directory
- Create pezkuwi-sdk-ui/ for Polkadot SDK clone (planned)
- Create mobile/ directory for mobile app development
- Add shared/ directory with common utilities, types, and blockchain code
- Update README.md with comprehensive documentation
- Remove obsolete DKSweb/ directory
This monorepo structure enables better code sharing and organized
development across web, mobile, and SDK UI projects.