Estoy creando una aplicación con next.js y web3. Para conectar la billetera del usuario al front-end, estoy usando web3modal de la siguiente manera:
const Home: NextPage = () => { const [signer, setSigner] = useState<JsonRpcSigner | null>(null) async function connect() { const web3Modal = new Web3Modal() const connection = await web3Modal.connect() const provider = new ethers.providers.Web3Provider(connection) const signer = provider.getSigner() setSigner(signer) } return ( <div className="flex justify-center"> <button onClick={() => connect()}>Connect wallet</button> { signer && ( <h3>wallet connected: {signer._address}</h3> )} </div> ) } El usuario puede conectar con éxito la billetera, desafortunadamente signer._address siempre es nulo. Me gustaría mostrar al usuario la dirección que acaba de conectarse, ¿cómo puedo solucionarlo?
Esta no es una pregunta sobre web3Modal, sino una pregunta sobre ethers.
Puede obtener la dirección de esta manera:
const [address, setAddress] = useState() // ... setAddress(await signer.getAddress())La documentación está aquí: https://docs.ethers.io/v5/api/signer/#Signer-getaddress