首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得与web3modal连接的钱包的地址?

如何获得与web3modal连接的钱包的地址?
EN

Stack Overflow用户
提问于 2021-12-01 23:59:29
回答 3查看 2.3K关注 0票数 5

我正在用next.js和web3构建一个应用程序。要将用户钱包连接到前端,我将使用web3modal,如下所示:

代码语言:javascript
复制
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>
  )
}

用户可以成功连接钱包,不幸的是signer._address总是空的。我想向用户显示刚刚连接的地址,我该如何解决这个问题呢?

EN

回答 3

Stack Overflow用户

发布于 2021-12-05 20:18:51

这不是关于web3Modal的问题,而是关于以太的问题。

你可以得到这样的地址:

代码语言:javascript
复制
const [address, setAddress] = useState()
// ...
setAddress(await signer.getAddress())

文档在这里:https://docs.ethers.io/v5/api/signer/#Signer-getaddress

票数 5
EN

Stack Overflow用户

发布于 2022-07-19 21:25:13

provider.getSigner()返回了一个承诺。

您应该使用“等待”来获取实际地址。

代码语言:javascript
复制
const signer = provider.getSigner();
const address = await signer.getAddress();
setAddress(address);
票数 0
EN

Stack Overflow用户

发布于 2022-08-22 20:31:51

您可以使用以下方法获得地址

代码语言:javascript
复制
const account=(await provider.listAccounts())[0]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70192737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档