import React from 'react' import ReactDOM from 'react-dom' import { Mainnet, DAppProvider, useEthers, Config, Goerli } from '@usedapp/core' import { getDefaultProvider } from 'ethers' import { SiweProvider, useSiwe } from '@usedapp/siwe' // Regular import crashes the app with "Buffer is not defined" error. import WalletConnectProvider from '@walletconnect/web3-provider/dist/umd/index.min.js' import { AccountIcon } from './components/AccountIcon' const config: Config = { readOnlyChainId: Mainnet.chainId, readOnlyUrls: { [Mainnet.chainId]: getDefaultProvider('mainnet'), [Goerli.chainId]: getDefaultProvider('goerli'), }, } ReactDOM.render( , document.getElementById('root') ) export function App() { const { account, activate, error, activateBrowserWallet } = useEthers() const { signIn, signOut, isLoggedIn, isLoading, cancelLoading, message, error: siweError } = useSiwe() async function onConnect() { try { const provider = new WalletConnectProvider({ infuraId: 'd8df2cb7844e4a54ab0a782f608749dd', }) await provider.enable() await activate(provider) } catch (error) { console.error(error) } } const ConnectButton = () => (
) const WalletConnectConnect = () => (
{account && (
 
{account}
)} {!account && }
) const SiweComponent = () => { if (isLoading) { return ( <>
Loading...
) } return (
  {siweError &&
Error: {siweError.message}
} {isLoggedIn && ( <>

Logged in with {message.address}

Nonce: {message.nonce}

ChainId: {message.chainId}

)} {!siweError && !isLoggedIn &&

Not logged in

}
) } return (
{error &&

{error.message}

} {!error && }
{!account && } {!error && account && }
) }