You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter中使用web3modal_flutter包获取钱包地址?

解决web3modal_flutter自动获取已连接钱包地址问题
  • 监听连接回调获取地址
    钱包成功连接后,web3modal的onConnect回调会返回包含账户信息的会话对象,直接从会话的accounts列表中取第一个地址即可:

    final web3Modal = Web3Modal(
      clientId: '你的Client ID',
      metadata: const PairingMetadata(
        name: '你的应用名称',
        description: '应用描述',
        url: '你的应用URL',
        icons: ['你的应用图标URL'],
      ),
    );
    
    // 设置连接成功回调
    web3Modal.onConnect((session) {
      final connectedAddress = session.accounts.first;
      // 将地址存储到变量或状态中,供后续签名使用
      print('已连接地址: $connectedAddress');
    });
    
    // 触发钱包连接
    await web3Modal.connect();
    
  • 获取已激活的会话地址
    如果应用重启或需要主动获取当前已连接的钱包地址,可以调用getActiveSession()方法:

    final activeSession = await web3Modal.getActiveSession();
    if (activeSession != null) {
      final connectedAddress = activeSession.accounts.first;
      // 使用该地址进行交易签名
    }
    
  • 签名交易时使用自动获取的地址
    拿到地址后,在构建交易时将from字段指定为该地址,即可完成自动签名:

    final transaction = Transaction(
      from: connectedAddress, // 这里用自动获取的地址
      to: EthereumAddress.fromHex('目标地址'),
      value: EtherAmount.fromUnitAndValue(EtherUnit.ether, 0.01),
    );
    
    // 执行签名
    final signedTx = await web3Modal.signTransaction(session, transaction);
    

内容的提问来源于stack exchange,提问作者Tayyab Chattah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 17:55:57