import React from 'react' import ReactDOM from 'react-dom' import { DAppProvider, useEthers, useContractFunction, useNotifications, Config, Goerli, Kovan, Rinkeby, Ropsten, } from '@usedapp/core' import { getDefaultProvider, utils } from 'ethers' import { Contract } from '@ethersproject/contracts' import { WethAbi, WETH_ADDRESSES } from './constants/Weth' import { MetamaskConnect } from './components/MetamaskConnect' const config: Config = { readOnlyChainId: Goerli.chainId, readOnlyUrls: { [Goerli.chainId]: getDefaultProvider('goerli'), [Kovan.chainId]: getDefaultProvider('kovan'), [Rinkeby.chainId]: getDefaultProvider('rinkeby'), [Ropsten.chainId]: getDefaultProvider('ropsten'), }, notifications: { expirationPeriod: 0, }, } ReactDOM.render( , document.getElementById('root') ) const WrapEtherComponent = () => { const { notifications } = useNotifications() const { chainId } = useEthers() const wethAddress = WETH_ADDRESSES[chainId] const wethInterface = new utils.Interface(WethAbi) const contract = new Contract(wethAddress, wethInterface) as any const { state, send } = useContractFunction(contract, 'deposit', { transactionName: 'Wrap' }) const { status } = state const wrapEther = () => { void send({ value: 1 }) } return (

Status: {status}

Notifications

{notifications.length !== 0 && ( {notifications.map((notification) => { return ( ) })}
Type Date
{notification.type} {new Date(notification.submittedAt).toDateString()}
)}
) } export function App() { const { account, chainId } = useEthers() if (!config.readOnlyUrls[chainId]) { return

Please use either Goerli, Kovan, Rinkeby or Ropsten testnet.

} return
{!account ? : }
}