npm create vite@latest
npm install wagmi @tanstack/react-query
config.tsimport { http, createConfig } from 'wagmi'
import { sepolia } from 'wagmi/chains'
import { injected } from 'wagmi/connectors'
export const config = createConfig({
chains: [sepolia],
connectors: [
injected(),
],
transports: {
[sepolia.id]: http(),
},
})
App.tsx (Wrap everything inside Providers)import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { WagmiProvider } from 'wagmi'
import { config } from './config'
const queryClient = new QueryClient()
export default function App() {
return (
<WagmiProvider config={config}>
<QueryClientProvider client={queryClient}>
</QueryClientProvider>
</WagmiProvider>
)
}
AppBar to show wallet connect buttonsimport { Connector, useConnect } from 'wagmi'
export function Appbar() {
const { connectors, connect } = useConnect()
return connectors.map((connector) => (
<button key={connector.uid} onClick={() => connect({ connector })}>
{connector.name}
</button>
))
}
Appbar and test the wallet connect functionality<WagmiProvider config={config}>
<QueryClientProvider client={queryClient}>
<Appbar />
</QueryClientProvider>
</WagmiProvider>

Prettify the Appbar (Assignment)
import { Connector, useConnect } from 'wagmi'
export function Appbar() {
const { connectors, connect } = useConnect()
return <div className='flex justify-between p-2 m-2'>
<div className='text-2xl'>
Stakify
</div>
<div>
{connectors.map((connector) => (
<button className='mx-2 border rounded p-2' key={connector.uid} onClick={() => connect({ connector })}>
{connector.name}
</button>
))}
</div>
</div>
}
connect or disconnect button based on if the user is signed inimport { useAccount, useConnect, useDisconnect } from 'wagmi'
export function Appbar() {
const { address } = useAccount()
return <div className='flex justify-between p-2 m-2'>
<div className='text-2xl'>
Stakify
</div>
<div>
{!address ? <Connectors /> : <Disconnect />}
</div>
</div>
}
function Connectors() {
const { connectors, connect } = useConnect()
return connectors.map((connector) => (
<button className='mx-2 border rounded p-2' key={connector.uid} onClick={() => connect({ connector })}>
{connector.name}
</button>
))
}
function Disconnect() {
const {disconnect} = useDisconnect();
return <div>
<button className='mx-2 border rounded p-2' onClick={() => disconnect()}>
Disconnect wallet
</button>
</div>
}