diff --git a/package.json b/package.json index efb28d8..5a0dd3b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pezkuwi-telegram-miniapp", - "version": "1.0.215", + "version": "1.0.216", "type": "module", "description": "Pezkuwichain Telegram Mini App - Forum, Announcements, Rewards", "author": "Pezkuwichain Team", diff --git a/src/components/wallet/TokensCard.tsx b/src/components/wallet/TokensCard.tsx index ebbb6b4..e3f6c96 100644 --- a/src/components/wallet/TokensCard.tsx +++ b/src/components/wallet/TokensCard.tsx @@ -188,7 +188,7 @@ interface Props { } export function TokensCard({ onSendToken }: Props) { - const { address, balance: hezBalance } = useWallet(); + const { address, rcBalance: hezBalance } = useWallet(); const { hapticImpact } = useTelegram(); const { t } = useTranslation(); const [rpcConnected, setRpcConnected] = useState(false); diff --git a/src/components/wallet/WalletDashboard.tsx b/src/components/wallet/WalletDashboard.tsx index fcd2e89..0849e7e 100644 --- a/src/components/wallet/WalletDashboard.tsx +++ b/src/components/wallet/WalletDashboard.tsx @@ -50,7 +50,7 @@ interface Transaction { } export function WalletDashboard({ onDisconnect }: Props) { - const { address, balance, api, assetHubApi, disconnect, isLoading } = useWallet(); + const { address, balance, stakedBalance, api, assetHubApi, disconnect, isLoading } = useWallet(); const { hapticImpact, hapticNotification, showAlert } = useTelegram(); const { t } = useTranslation(); @@ -618,6 +618,11 @@ export function WalletDashboard({ onDisconnect }: Props) { {isLoading ? '...' : (balance ?? '0')} HEZ + {stakedBalance && parseFloat(stakedBalance) > 0 && ( +

+ {t('dashboard.stakedNote', { amount: parseFloat(stakedBalance).toLocaleString() })} +

+ )} {/* PEZ Balance Card */} @@ -952,7 +957,7 @@ const SEND_TOKENS: TokenOption[] = [ // Send Tab function SendTab({ onBack }: { onBack: () => void }) { - const { balance, api, assetHubApi, keypair } = useWallet(); + const { rcBalance, api, assetHubApi, keypair } = useWallet(); const { hapticNotification, hapticImpact } = useTelegram(); const { t } = useTranslation(); @@ -1008,7 +1013,7 @@ function SendTab({ onBack }: { onBack: () => void }) { }, [assetHubApi, keypair]); const getCurrentBalance = () => { - if (selectedToken === 'HEZ') return balance ?? '0.0000'; + if (selectedToken === 'HEZ') return rcBalance ?? '0.0000'; if (selectedToken === 'PEZ') return pezBalance; if (selectedToken === 'USDT') return usdtBalance; if (selectedToken === 'DOT') return dotBalance; @@ -1138,7 +1143,7 @@ function SendTab({ onBack }: { onBack: () => void }) { {SEND_TOKENS.map((token) => { const tokenBalance = token.symbol === 'HEZ' - ? (balance ?? '0.0000') + ? (rcBalance ?? '0.0000') : token.symbol === 'PEZ' ? pezBalance : token.symbol === 'USDT' diff --git a/src/contexts/WalletContext.tsx b/src/contexts/WalletContext.tsx index 20ffdb7..f96e040 100644 --- a/src/contexts/WalletContext.tsx +++ b/src/contexts/WalletContext.tsx @@ -39,6 +39,8 @@ interface WalletContextType { isLoading: boolean; address: string | null; balance: string | null; + rcBalance: string | null; + stakedBalance: string | null; error: string | null; // Wallet management @@ -68,6 +70,8 @@ export function WalletProvider({ children }: { children: React.ReactNode }) { const [isLoading, setIsLoading] = useState(true); const [address, setAddress] = useState(null); const [balance, setBalance] = useState(null); + const [rcBalance, setRcBalance] = useState(null); + const [stakedBalance, setStakedBalance] = useState(null); const [error, setError] = useState(null); const [api, setApi] = useState(null); const [assetHubApi, setAssetHubApi] = useState(null); @@ -165,6 +169,7 @@ export function WalletProvider({ children }: { children: React.ReactNode }) { if (!api || !address || !isConnected) { rcFreeRef.current = 0n; + setRcBalance(null); return; } @@ -179,6 +184,7 @@ export function WalletProvider({ children }: { children: React.ReactNode }) { rcFreeRef.current = accountInfo.data.free.toBigInt ? accountInfo.data.free.toBigInt() : BigInt(accountInfo.data.free.toString()); + setRcBalance((Number(rcFreeRef.current) / 1e12).toFixed(4)); updateTotalBalance(); } ); @@ -235,8 +241,10 @@ export function WalletProvider({ children }: { children: React.ReactNode }) { ahStakedRef.current = ledger.active.toBigInt ? ledger.active.toBigInt() : BigInt(ledger.active.toString()); + setStakedBalance((Number(ahStakedRef.current) / 1e12).toFixed(4)); } else { ahStakedRef.current = 0n; + setStakedBalance(null); } updateTotalBalance(); } @@ -343,6 +351,8 @@ export function WalletProvider({ children }: { children: React.ReactNode }) { setKeypair(null); setIsConnected(false); setBalance(null); + setRcBalance(null); + setStakedBalance(null); rcFreeRef.current = 0n; ahFreeRef.current = 0n; ahStakedRef.current = 0n; @@ -355,6 +365,8 @@ export function WalletProvider({ children }: { children: React.ReactNode }) { setKeypair(null); setIsConnected(false); setBalance(null); + setRcBalance(null); + setStakedBalance(null); rcFreeRef.current = 0n; ahFreeRef.current = 0n; ahStakedRef.current = 0n; @@ -368,6 +380,8 @@ export function WalletProvider({ children }: { children: React.ReactNode }) { isLoading, address, balance, + rcBalance, + stakedBalance, error, hasWallet, generateNewWallet, diff --git a/src/i18n/translations/ar.ts b/src/i18n/translations/ar.ts index fc2153f..a76a1a8 100644 --- a/src/i18n/translations/ar.ts +++ b/src/i18n/translations/ar.ts @@ -345,6 +345,7 @@ const ar: Translations = { lpStakeDesc: 'رهن LP token', pezRewardPlus: 'مكافأة PEZ +', goBack: 'رجوع', + stakedNote: 'المُرهَن: {{amount}} HEZ', }, // Send diff --git a/src/i18n/translations/ckb.ts b/src/i18n/translations/ckb.ts index 4b52298..8918fa5 100644 --- a/src/i18n/translations/ckb.ts +++ b/src/i18n/translations/ckb.ts @@ -347,6 +347,7 @@ const ckb: Translations = { lpStakeDesc: 'LP token stake بکە', pezRewardPlus: 'PEZ پاداشت +', goBack: 'گەڕانەوە', + stakedNote: 'ستەیک کراو: {{amount}} HEZ', }, // Send diff --git a/src/i18n/translations/en.ts b/src/i18n/translations/en.ts index 5613464..162eb13 100644 --- a/src/i18n/translations/en.ts +++ b/src/i18n/translations/en.ts @@ -346,6 +346,7 @@ const en: Translations = { lpStakeDesc: 'Stake LP tokens', pezRewardPlus: 'PEZ Reward +', goBack: 'Back', + stakedNote: 'Staked: {{amount}} HEZ', }, // Send diff --git a/src/i18n/translations/fa.ts b/src/i18n/translations/fa.ts index f2eccbb..24dca60 100644 --- a/src/i18n/translations/fa.ts +++ b/src/i18n/translations/fa.ts @@ -346,6 +346,7 @@ const fa: Translations = { lpStakeDesc: 'استیک کردن LP token', pezRewardPlus: 'پاداش PEZ +', goBack: 'بازگشت', + stakedNote: 'استیک شده: {{amount}} HEZ', }, // Send diff --git a/src/i18n/translations/krd.ts b/src/i18n/translations/krd.ts index 68b3735..4d1201f 100644 --- a/src/i18n/translations/krd.ts +++ b/src/i18n/translations/krd.ts @@ -362,6 +362,7 @@ const krd: Translations = { lpStakeDesc: 'LP token stake bike', pezRewardPlus: 'PEZ Xelat +', goBack: 'Pa\u015fve', + stakedNote: 'Staked: {{amount}} HEZ', }, // Send diff --git a/src/i18n/translations/tr.ts b/src/i18n/translations/tr.ts index a2ba6a6..05b2374 100644 --- a/src/i18n/translations/tr.ts +++ b/src/i18n/translations/tr.ts @@ -346,6 +346,7 @@ const tr: Translations = { lpStakeDesc: 'LP token stake et', pezRewardPlus: 'PEZ Ödül +', goBack: 'Geri', + stakedNote: 'Stake edilen: {{amount}} HEZ', }, // Send diff --git a/src/i18n/types.ts b/src/i18n/types.ts index 99eeb89..f11882d 100644 --- a/src/i18n/types.ts +++ b/src/i18n/types.ts @@ -351,6 +351,7 @@ export interface Translations { lpStakeDesc: string; pezRewardPlus: string; goBack: string; + stakedNote: string; }; // Send Tab diff --git a/src/version.json b/src/version.json index d67f831..3e5359e 100644 --- a/src/version.json +++ b/src/version.json @@ -1,5 +1,5 @@ { - "version": "1.0.215", - "buildTime": "2026-02-21T11:44:52.032Z", - "buildNumber": 1771674292034 + "version": "1.0.216", + "buildTime": "2026-02-21T12:12:08.352Z", + "buildNumber": 1771675928353 }