- DashboardContext: query tiki/kyc from peopleApi instead of relay api
- KycApprovalTab: use peopleApi for identityKyc.pendingKycApplications
- NewCitizenApplication: all KYC operations now use People Chain
These pallets are on People Chain, not Relay Chain. This fixes the
"mafe te tuneye" error when accessing Citizens portal.
- Add LP_TOKENS definition in shared/types/dex.ts
- Fetch LP token balances from poolAssets pallet
- Add HEZ-PEZ-LP and HEZ-USDT-LP to TokenBalances
- Add lp_token_512.png logo
- WalletContext: Use Asset Hub API for PEZ/wHEZ/wUSDT balance queries
- AddLiquidityModal: Handle native token balance via system.account
- auth.ts: Add Treasury accounts to admin list for pool creation and minting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add VITE_NETWORK and endpoint env vars to CI/CD build
- Add Asset Hub and People Chain endpoints to build config
- Add hardcoded production fallbacks in PezkuwiContext
- Disable WebSocket real-time service (not deployed yet)
- Endpoints: rpc.pezkuwichain.io, mainnet, beta, asset-hub, people
- Remove unused supabase import from AppLayout.tsx
- Replace any types with proper type assertions in XCMTeleportModal.tsx
- Remove unused events parameter from signAndSend callback
- Fix any types in PezkuwiContext.tsx debug code
- Escape apostrophe in EmailVerification.tsx
- Remove unused ArrowDownRight import from AccountBalance.tsx
Features:
- Add XCMTeleportModal for cross-chain HEZ transfers
- Support Asset Hub and People Chain teleports
- Add "Fund Fees" button with user-friendly tooltips
- Use correct XCM V3 format with teyrchain junction
Fixes:
- Fix PEZ transfer to use Asset Hub API
- Silence unnecessary pallet availability warnings
- Fix transaction loading performance (10 blocks limit)
- Remove Supabase admin_roles dependency
CI/CD:
- Add auto-deploy to VPS on main branch push
- Add version bumping on deploy
- Upload build artifacts for deployment
- Add Asset Hub API connection for PEZ token queries (Asset ID 1 is on Asset Hub)
- Update AccountBalance to fetch PEZ balance from Asset Hub instead of main chain
- WebSocket: Only try localhost endpoints when running locally, use production
endpoint directly when on domain
- HEZ price: CoinGecko direct > DOT/3 > DEX pool
- PEZ price: CoinGecko direct > DOT/10 > DEX pool
- Added AuthorizeCall signed extension for blockchain connection
- Updated @pezkuwi packages to 16.5.22 and 14.0.13
- Replace Polkadot.js extension references with Pezkuwi Wallet
- Update explorer links to pezkuwichain.io/explorer
- Update install links to js.pezkuwichain.io
- Update source identifiers from polkadot-js to pezkuwi
- PezkuwiWebView now uses signAndSend via native API
- Transactions are signed AND submitted on native side
- Returns actual block hash instead of raw signature
- Web sends section/method/args payload format
- WalletContext extracts tx details for mobile bridge
- Add mobile-bridge.ts utility for native app communication
- Add useMobileBridge.ts React hook
- Update AuthContext to detect and use native wallet
- Update PezkuwiContext to connect mobile wallet automatically
- Update WalletContext to sign transactions via native bridge
Mobile app can now seamlessly use web P2P features with native wallet.
- Fixed TypeScript type assertion issues
- Updated imports from api-augment/substrate to api-augment/bizinikiwi
- Fixed imgConvert.mjs header and imports
- Added @ts-expect-error for runtime-converted types
- Fixed all @polkadot copyright headers to @pezkuwi
- Add rememberMe parameter to signIn function in AuthContext
- Store remember_me preference in localStorage
- Skip session timeout when Remember Me is enabled
- Clear remember_me on signOut
- Pass rememberMe from Login.tsx to signIn call
Frontend changes:
- Add ReferralHandler to App.tsx to capture ?ref= URL parameter
- Store referrer address in localStorage for KYC registration
- Improve DashboardContext error handling for Supabase
All referral functionality now complete:
- URL parameter capture and storage
- On-chain referral initiation via InviteUserModal
- Auto-confirmation via OnKycApproved hook
- DefaultReferrer fallback to QaziMuhammedAccount
- Real-time stats and event subscription
- Referral score calculation (0-500 points)
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
This commit reorganizes the codebase to eliminate duplication between web and mobile frontends by moving all commonly used files to the shared folder.
Changes:
- Moved lib files to shared/lib/:
* wallet.ts, staking.ts, tiki.ts, identity.ts
* multisig.ts, usdt.ts, scores.ts, citizenship-workflow.ts
- Moved utils to shared/utils/:
* auth.ts, dex.ts
* Created format.ts (extracted formatNumber from web utils)
- Created shared/theme/:
* colors.ts (Kurdistan and App color definitions)
- Updated web configuration:
* Added @pezkuwi/* path aliases in tsconfig.json and vite.config.ts
* Updated all imports to use @pezkuwi/lib/*, @pezkuwi/utils/*, @pezkuwi/theme/*
* Removed duplicate files from web/src/lib and web/src/utils
- Updated mobile configuration:
* Added @pezkuwi/* path aliases in tsconfig.json
* Updated theme/colors.ts to re-export from shared
* Mobile already uses relative imports to shared (no changes needed)
Architecture Benefits:
- Single source of truth for common code
- No duplication between frontends
- Easier maintenance and consistency
- Clear separation of shared vs platform-specific code
Web-specific files kept:
- web/src/lib/supabase.ts
- web/src/lib/utils.ts (cn function for Tailwind, re-exports formatNumber from shared)
All imports updated and tested. Both web and mobile now use the centralized shared folder.
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.