From 13fcce3c8e8b6660aa908a0afd35293cccf31c64 Mon Sep 17 00:00:00 2001 From: Greg Shuflin Date: Wed, 7 Dec 2022 23:29:13 -0800 Subject: [PATCH] Connect to MetaMask --- src/App.tsx | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/src/App.tsx b/src/App.tsx index 474a364..99a3bcc 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -3,6 +3,10 @@ import logo from './logo.svg'; import './App.css'; import Web3 from 'web3'; +import { WagmiConfig, createClient, configureChains, mainnet, useConnect, useAccount, useDisconnect } from 'wagmi' + +import { MetaMaskConnector } from 'wagmi/connectors/metaMask' +import { publicProvider } from 'wagmi/providers/public' const web3 = new Web3(Web3.givenProvider); @@ -11,6 +15,58 @@ import Airdrop from "./Airdrop.json"; const airdropAddress = "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512"; const airdropContract = new web3.eth.Contract(Airdrop.abi as any, airdropAddress); +const { chains, provider, webSocketProvider } = configureChains([mainnet], [publicProvider()]); + +const wagmiClient = createClient({ + autoConnect: true, + connectors: [ + new MetaMaskConnector({ chains }), + ], + provider, + webSocketProvider, +}) + + +function Profile() { + const { connect, connectors, error, isLoading, pendingConnector } = + useConnect() + + const { address, connector, isConnected } = useAccount() + const { disconnect } = useDisconnect() + + if (isConnected) { + const connectorName = connector?.name || "unknown connector"; + return ( +
+
Connected to {connectorName} address: {address}
+ +
+ ) + } + + return ( +
+ {connectors.map((connector) => ( + + ))} + + {error &&
{error.message}
} +
+ ) +} + + + interface AddressesProps { addressList: string[]; setAddressListFn: any; @@ -86,7 +142,9 @@ function App() { } return ( +
+

Airdrop App

@@ -96,6 +154,7 @@ function App() {
+
); }