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 06fe4783f2
commit 0622e3278f
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 WalletDashboard from './pages/WalletDashboard';
import { AppProvider } from '@/contexts/AppContext';
import { PolkadotProvider } from '@/contexts/PolkadotContext';
import { WalletProvider } from '@/contexts/WalletContext';
import { WebSocketProvider } from '@/contexts/WebSocketContext';
import { IdentityProvider } from '@/contexts/IdentityContext';
@@ -24,10 +25,11 @@ function App() {
<ThemeProvider defaultTheme="dark" storageKey="vite-ui-theme">
<AuthProvider>
<AppProvider>
<WalletProvider>
<WebSocketProvider>
<IdentityProvider>
<Router>
<PolkadotProvider endpoint="ws://127.0.0.1:9944">
<WalletProvider>
<WebSocketProvider>
<IdentityProvider>
<Router>
<Routes>
<Route path="/login" element={<Login />} />
@@ -56,10 +58,11 @@ function App() {
} />
<Route path="*" element={<NotFound />} />
</Routes>
</Router>
</IdentityProvider>
</WebSocketProvider>
</WalletProvider>
</Router>
</IdentityProvider>
</WebSocketProvider>
</WalletProvider>
</PolkadotProvider>
</AppProvider>
</AuthProvider>
<Toaster />
+4 -2
View File
@@ -29,9 +29,11 @@ export const CHAIN_CONFIG = {
// ========================================
// 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 = {
PEZ: parseInt(import.meta.env.VITE_ASSET_PEZ || '1'),
HEZ: parseInt(import.meta.env.VITE_ASSET_HEZ || '2'),
WHEZ: parseInt(import.meta.env.VITE_ASSET_WHEZ || '0'), // Wrapped HEZ
PEZ: parseInt(import.meta.env.VITE_ASSET_PEZ || '1'), // PEZ utility token
USDT: parseInt(import.meta.env.VITE_ASSET_USDT || '3'),
BTC: parseInt(import.meta.env.VITE_ASSET_BTC || '4'),
ETH: parseInt(import.meta.env.VITE_ASSET_ETH || '5'),
+2 -13
View File
@@ -1,8 +1,5 @@
import { createRoot } from 'react-dom/client'
import App from './App.tsx'
import { WalletProvider } from './contexts/WalletContext'
import { WebSocketProvider } from './contexts/WebSocketContext'
import { PolkadotProvider } from './contexts/PolkadotContext'
import './index.css'
import './i18n/config'
@@ -13,13 +10,5 @@ declare global {
}
}
// Remove dark mode class addition
createRoot(document.getElementById("root")!).render(
<PolkadotProvider endpoint="ws://127.0.0.1:9944">
<WalletProvider>
<WebSocketProvider>
<App />
</WebSocketProvider>
</WalletProvider>
</PolkadotProvider>
);
// All providers are now in App.tsx for better organization
createRoot(document.getElementById("root")!).render(<App />);