diff --git a/src/app/home/components/Header.tsx b/src/app/home/components/Header.tsx index 258ae48..bd3712f 100644 --- a/src/app/home/components/Header.tsx +++ b/src/app/home/components/Header.tsx @@ -5,7 +5,7 @@ import { useStore, useWallet } from "@/hooks"; import { Button } from "@/components/Button"; export const Header: React.FunctionComponent<{}> = () => { - const { appStatus } = useStore(); + const { appStatus, wallet } = useStore(); const { onWalletConnect } = useWallet(); return ( @@ -17,6 +17,7 @@ export const Header: React.FunctionComponent<{}> = () => { + {wallet &&

Wallet connected: {wallet}

} ); }; diff --git a/src/app/home/components/Keystore.tsx b/src/app/home/components/Keystore.tsx index 97d76ac..f37a698 100644 --- a/src/app/home/components/Keystore.tsx +++ b/src/app/home/components/Keystore.tsx @@ -6,7 +6,7 @@ import { useRLN, useStore } from "@/hooks"; import { useKeystore } from "@/hooks/useKeystore"; export const Keystore: React.FunctionComponent<{}> = () => { - const { walletConnected, keystoreCredentials } = useStore(); + const { wallet, keystoreCredentials } = useStore(); const { onReadCredentials, onRegisterCredentials } = useKeystore(); const { password, onPasswordChanged } = usePassword(); @@ -65,9 +65,9 @@ export const Keystore: React.FunctionComponent<{}> = () => {

Generate new credentials from wallet and register on chain

diff --git a/src/hooks/useStore.ts b/src/hooks/useStore.ts index 5308bf6..7860f43 100644 --- a/src/hooks/useStore.ts +++ b/src/hooks/useStore.ts @@ -23,8 +23,8 @@ type StoreResult = { wakuStatus: string; setWakuStatus: (v: string) => void; - walletConnected: boolean; - setWalletConnected: () => void; + wallet: string; + setWallet: (v: string) => void; }; const DEFAULT_VALUE = "none"; @@ -45,8 +45,8 @@ export const useStore = create((set) => { setCredentials: (v: undefined | IdentityCredential) => set((state) => ({ ...state, credentials: v })), - walletConnected: false, - setWalletConnected: () => set((state) => ({ ...state, walletConnected: true })), + wallet: "", + setWallet: (v: string) => set((state) => ({ ...state, wallet: v })), }; const wakuModule = { diff --git a/src/hooks/useWallet.ts b/src/hooks/useWallet.ts index f1da451..648e5db 100644 --- a/src/hooks/useWallet.ts +++ b/src/hooks/useWallet.ts @@ -9,7 +9,7 @@ type UseWalletResult = { export const useWallet = (): UseWalletResult => { const { rln } = useRLN(); - const { setEthAccount, setChainID, setWalletConnected } = useStore(); + const { setEthAccount, setChainID, setWallet } = useStore(); React.useEffect(() => { const ethereum = window.ethereum; @@ -49,9 +49,9 @@ export const useWallet = (): UseWalletResult => { } try { - await window.ethereum.request({ method: 'eth_requestAccounts' }); + const accounts = await window.ethereum.request({ method: 'eth_requestAccounts' }) as unknown as string[]; await rln.initRLNContract(rln.rlnInstance); - setWalletConnected(); + setWallet(accounts?.[0] || ""); } catch(error) { console.error("Failed to conenct to wallet."); }