Как мне получить адрес подключенного кошелька с помощью web3modal?

#web3

#javascript #reactjs #next.js #web3js

Вопрос:

Я создаю приложение с next.js и web3. Для подключения пользовательского кошелька к интерфейсу я использую web3modal следующим образом:

 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 amp;amp; (
        <h3>wallet connected: {signer._address}</h3>
      )}
    </div>
  )
}
 

Пользователь может успешно подключить кошелек, к сожалению signer._address , всегда имеет значение null. Я хотел бы отобразить пользователю только что подключенный адрес, как я могу это исправить?

Ответ №1:

Это не вопрос о web3Modal, а вопрос об эфирах.

Вы можете получить адрес следующим образом:

 const [address, setAddress] = useState()
// ...
setAddress(await signer.getAddress())
 

Документация находится здесь: https://docs.ethers.io/v5/api/signer/#Signer-getaddress