mirror of
https://github.com/averel10/crypto_clash.git
synced 2026-03-12 19:08:11 +01:00
Merge pull request #13 from averel10/tocken-count
Add current balance display for selected MetaMask account
This commit is contained in:
@@ -17,6 +17,7 @@ export default function Clash() {
|
|||||||
const [selectedGameId, setSelectedGameId] = useState<number | undefined>();
|
const [selectedGameId, setSelectedGameId] = useState<number | undefined>();
|
||||||
const [availableAccounts, setAvailableAccounts] = useState<string[]>([]);
|
const [availableAccounts, setAvailableAccounts] = useState<string[]>([]);
|
||||||
const [selectedAccount, setSelectedAccount] = useState<string>("");
|
const [selectedAccount, setSelectedAccount] = useState<string>("");
|
||||||
|
const [balance, setBalance] = useState<string>("0");
|
||||||
|
|
||||||
const handlePlayClick = (gameId: number) => {
|
const handlePlayClick = (gameId: number) => {
|
||||||
setSelectedGameId(gameId);
|
setSelectedGameId(gameId);
|
||||||
@@ -56,6 +57,22 @@ export default function Clash() {
|
|||||||
loadConfig();
|
loadConfig();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
// Fetch balance when selected account changes
|
||||||
|
useEffect(() => {
|
||||||
|
const fetchBalance = async () => {
|
||||||
|
if (web3 && selectedAccount) {
|
||||||
|
try {
|
||||||
|
const balanceWei = await web3.eth.getBalance(selectedAccount);
|
||||||
|
const balanceEth = web3.utils.fromWei(balanceWei, "ether");
|
||||||
|
setBalance(parseFloat(balanceEth).toFixed(4));
|
||||||
|
} catch (err: any) {
|
||||||
|
showErrorToast("Failed to fetch balance: " + err.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
fetchBalance();
|
||||||
|
}, [web3, selectedAccount]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex min-h-screen items-center justify-center bg-gradient-to-br from-blue-50 to-indigo-100 dark:from-slate-900 dark:to-slate-800 font-sans">
|
<div className="flex min-h-screen items-center justify-center bg-gradient-to-br from-blue-50 to-indigo-100 dark:from-slate-900 dark:to-slate-800 font-sans">
|
||||||
<main className="w-full max-w-3xl mx-auto py-12 px-6">
|
<main className="w-full max-w-3xl mx-auto py-12 px-6">
|
||||||
@@ -100,6 +117,10 @@ export default function Clash() {
|
|||||||
? `${selectedAccount.slice(0, 6)}...${selectedAccount.slice(-4)}`
|
? `${selectedAccount.slice(0, 6)}...${selectedAccount.slice(-4)}`
|
||||||
: "Not connected"}
|
: "Not connected"}
|
||||||
</p>
|
</p>
|
||||||
|
<p className="text-sm text-slate-600 dark:text-slate-300 mt-2">
|
||||||
|
<span className="font-semibold">Current Balance:</span>{" "}
|
||||||
|
{balance} ETH
|
||||||
|
</p>
|
||||||
<p className="text-sm text-slate-600 dark:text-slate-300 mt-2">
|
<p className="text-sm text-slate-600 dark:text-slate-300 mt-2">
|
||||||
<span className="font-semibold">Game Contract Address:</span>{" "}
|
<span className="font-semibold">Game Contract Address:</span>{" "}
|
||||||
{config?.GAME_CONTRACT_ADDRESS}
|
{config?.GAME_CONTRACT_ADDRESS}
|
||||||
|
|||||||
Reference in New Issue
Block a user