import * as React from "react"; import { useEffect } from "react"; import { ComponentStory, ComponentMeta } from "@storybook/react"; import { Web3ModalProvider, useWeb3Modal, useDisconnect } from "../../contexts/web3modal/Web3modalProvider"; import { View, Text, Button } from "react-native"; import { ethers } from "ethers"; import { useEthers, useSigner } from "@usedapp/core"; import { useSwitchNetwork } from "../../contexts"; const Web3Component = () => { const { account, library, chainId } = useEthers(); const signer = useSigner(); const modal = useWeb3Modal(); const switchNetwork = useSwitchNetwork(); const disconnect = useDisconnect(); useEffect(() => { modal .open() .then(_ => console.log("connected", _)) .catch(e => { console.log(e); }); }, []); const sign = async () => { if (!signer) return; const signature = await signer.signMessage("text"); console.log("signature:", signature); }; const send = async () => { if (!signer) return; const tx = await signer.sendTransaction({ to: ethers.constants.AddressZero, value: 0 }); console.log("tx:", tx); }; const switchRequest = async () => { const switched = await switchNetwork.switchNetwork(chainId === 1 ? 42220 : 1); console.log("switched:", switched); }; useEffect(() => { const checkProvider = async () => { if (!library) return; console.log("block:", await library.getBlockNumber()); }; if (library) checkProvider().catch(e => { console.log(e); }); }, [library]); console.log({ library }); return ( Wallet: {account} Wallet: {chainId}