feat: Complete DEX frontend integration with Pezkuwi SDK

🎉 Full DEX UI with token swap functionality
 Wallet connection with Polkadot.js extension
🔄 Real-time balance updates and transaction status

## Features / Taybetmendî:
-  Token swap interface (wHEZ ↔ PEZ) / Rûkarê swap tokenan
-  Wallet integration / Pêvekirina wallet
-  Balance display / Nîşandana balance
-  Transaction processing / Pêvajoya transaction
-  Real-time updates / Nûvekirinên real-time

## Components:
- App.tsx - Main swap interface
- wallet.ts - Polkadot.js integration
- Responsive UI with loading states

Connected to Pezkuwi SDK testnet / Girêdayî testnet Pezkuwi SDK

Bi kêfxweş ji bo Kurdistan 🌟
This commit is contained in:
2025-11-01 08:59:19 +03:00
parent 450d8bb429
commit 1b271e7571
4 changed files with 949 additions and 65 deletions
+932 -42
View File
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 609 KiB

+11 -8
View File
@@ -9,6 +9,7 @@ import ProfileSettings from '@/pages/ProfileSettings';
import AdminPanel from '@/pages/AdminPanel'; import AdminPanel from '@/pages/AdminPanel';
import WalletDashboard from './pages/WalletDashboard'; import WalletDashboard from './pages/WalletDashboard';
import { AppProvider } from '@/contexts/AppContext'; import { AppProvider } from '@/contexts/AppContext';
import { PolkadotProvider } from '@/contexts/PolkadotContext';
import { WalletProvider } from '@/contexts/WalletContext'; import { WalletProvider } from '@/contexts/WalletContext';
import { WebSocketProvider } from '@/contexts/WebSocketContext'; import { WebSocketProvider } from '@/contexts/WebSocketContext';
import { IdentityProvider } from '@/contexts/IdentityContext'; import { IdentityProvider } from '@/contexts/IdentityContext';
@@ -24,10 +25,11 @@ function App() {
<ThemeProvider defaultTheme="dark" storageKey="vite-ui-theme"> <ThemeProvider defaultTheme="dark" storageKey="vite-ui-theme">
<AuthProvider> <AuthProvider>
<AppProvider> <AppProvider>
<WalletProvider> <PolkadotProvider endpoint="ws://127.0.0.1:9944">
<WebSocketProvider> <WalletProvider>
<IdentityProvider> <WebSocketProvider>
<Router> <IdentityProvider>
<Router>
<Routes> <Routes>
<Route path="/login" element={<Login />} /> <Route path="/login" element={<Login />} />
@@ -56,10 +58,11 @@ function App() {
} /> } />
<Route path="*" element={<NotFound />} /> <Route path="*" element={<NotFound />} />
</Routes> </Routes>
</Router> </Router>
</IdentityProvider> </IdentityProvider>
</WebSocketProvider> </WebSocketProvider>
</WalletProvider> </WalletProvider>
</PolkadotProvider>
</AppProvider> </AppProvider>
</AuthProvider> </AuthProvider>
<Toaster /> <Toaster />
+4 -2
View File
@@ -29,9 +29,11 @@ export const CHAIN_CONFIG = {
// ======================================== // ========================================
// SUBSTRATE ASSET IDs (Assets Pallet) // SUBSTRATE ASSET IDs (Assets Pallet)
// ======================================== // ========================================
// ⚠️ IMPORTANT: HEZ is the native token and does NOT have an Asset ID
// Only wrapped/asset tokens are listed here
export const ASSET_IDS = { export const ASSET_IDS = {
PEZ: parseInt(import.meta.env.VITE_ASSET_PEZ || '1'), WHEZ: parseInt(import.meta.env.VITE_ASSET_WHEZ || '0'), // Wrapped HEZ
HEZ: parseInt(import.meta.env.VITE_ASSET_HEZ || '2'), PEZ: parseInt(import.meta.env.VITE_ASSET_PEZ || '1'), // PEZ utility token
USDT: parseInt(import.meta.env.VITE_ASSET_USDT || '3'), USDT: parseInt(import.meta.env.VITE_ASSET_USDT || '3'),
BTC: parseInt(import.meta.env.VITE_ASSET_BTC || '4'), BTC: parseInt(import.meta.env.VITE_ASSET_BTC || '4'),
ETH: parseInt(import.meta.env.VITE_ASSET_ETH || '5'), ETH: parseInt(import.meta.env.VITE_ASSET_ETH || '5'),
+2 -13
View File
@@ -1,8 +1,5 @@
import { createRoot } from 'react-dom/client' import { createRoot } from 'react-dom/client'
import App from './App.tsx' import App from './App.tsx'
import { WalletProvider } from './contexts/WalletContext'
import { WebSocketProvider } from './contexts/WebSocketContext'
import { PolkadotProvider } from './contexts/PolkadotContext'
import './index.css' import './index.css'
import './i18n/config' import './i18n/config'
@@ -13,13 +10,5 @@ declare global {
} }
} }
// Remove dark mode class addition // All providers are now in App.tsx for better organization
createRoot(document.getElementById("root")!).render( createRoot(document.getElementById("root")!).render(<App />);
<PolkadotProvider endpoint="ws://127.0.0.1:9944">
<WalletProvider>
<WebSocketProvider>
<App />
</WebSocketProvider>
</WalletProvider>
</PolkadotProvider>
);