import React from 'react' import ReactDOM from 'react-dom' import { DAppProvider, useEthers, useTransactions, useContractFunction, 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'), }, } ReactDOM.render( , document.getElementById('root') ) const WrapEtherComponent = () => { const { transactions } = useTransactions() 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}

Transactions

{transactions.length !== 0 && ( {transactions.map((transaction) => { return ( ) })}
Name Block hash Date
{transaction.transactionName} {transaction.receipt?.blockHash ?? 'Pending...'} {new Date(transaction.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 ? : }
}