搜索插件、代码仓与 APP 分类

wallet_connect 封面
插件详情v1.0.4

wallet_connect

用 Dart 爱意打造的 Wallet Connect 客户端。

AndroidiOSmacOSWindowsLinux
近 30 天下载
116
喜欢数
68
Pub 分数
110

安装插件

flutter pub add wallet_connect

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

Wallet Connect 是一个基于 Dart 的客户端,用于将区块链钱包连接功能集成到 Flutter 应用程序中。精心构建,它可在多个平台上的 dApps 和加密货币钱包之间实现安全的点对点通信。该包支持无缝的钱包配对、会话管理和交易签名,非常适合 Web3 应用开发。它原生支持 Android、iOS、macOS、Windows 和 Linux,确保广泛的兼容性。凭借其简洁的 API 和活跃的开源社区,Wallet Connect 简化了去中心化身份和支付工作流程的集成。

适合场景

  • 连接用户与加密钱包
  • 在应用程序中启用区块链交易
  • 支持 dApp 身份验证
  • 促进跨平台钱包交互
  • 构建支持 Web3 的移动和桌面应用程序

主要特点

  • 跨平台支持(Android、iOS、macOS、Windows、Linux)
  • 安全的点对点连接
  • 会话管理与恢复
  • 通过钱包进行交易签名
  • 开源且持续维护

适合对象

  • Flutter 开发人员构建 dApps
  • Web3 应用程序创建者
  • 加密钱包集成商
  • 移动和桌面区块链应用
  • 需要安全钱包配对的项目

使用建议

  • 需要理解 Web3 概念
  • 依赖外部钱包提供商
  • 配对流程可能需要额外的用户界面
  • 不适用于非区块链用例
  • 除了基本示例外,文档有限

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

Wallet Connect Logo

Wallet Connect

Wallet Connect client in dart highly inspired from wallet-connect-kotlin by Trust Wallet.

Usage

    import 'package:wallet_connect/wallet_connect.dart';
  1. Create instance of Wallet connect client and define callbacks.
    final wcClient = WCClient(
      onConnect: () {
        // Respond to connect callback
      },
      onDisconnect: (code, reason) {
        // Respond to disconnect callback
      },
      onFailure: (error) {
        // Respond to connection failure callback
      },
      onSessionRequest: (id, peerMeta) {
        // Respond to connection request callback
      },
      onEthSign: (id, message) {
        // Respond to personal_sign or eth_sign or eth_signTypedData request callback
      },
      onEthSendTransaction: (id, tx) {
        // Respond to eth_sendTransaction request callback
      },
      onEthSignTransaction: (id, tx) {
        // Respond to eth_signTransaction request callback
      },
    );
  1. Create WCSession object from wc: uri.
    final session = WCSession.from(wcUri);
  1. Create WCPeerMeta object containing metadata for your app.
    final peerMeta = WCPeerMeta(
        name: 'Example Wallet',
        url: 'https://example.wallet',
        description: 'Example Wallet',
        icons: [],
    );
  1. Connect to a new session.
    wcClient.connectNewSession(session: session, peerMeta: peerMeta);
  1. Or connect to a saved session (from step 8).
    wcClient.connectFromSessionStore(sessionStore);
  1. Approve a session connection request.
    wcClient.approveSession(
        accounts: [], // account addresses
        chainId: 1, // chain id
    );
  1. Or reject a session connection request.
    wcClient.rejectSession();
  1. Get active session from sessionStore getter to save for later use.
    final sessionStore = wcClient.sessionStore;
  1. Approve a sign transaction request by signing the transaction and sending the signed hex data.
    wcClient.approveRequest<String>(
        id: id,
        result: signedDataAsHex,
    );
  1. Approve a send transaction request by sending the transaction hash generated from sending the transaction.
    wcClient.approveRequest<String>(
        id: id,
        result: transactionHash,
    );
  1. Approve a sign request by sending the signed data hex generated.
    wcClient.approveRequest<String>(
        id: id,
        result: signedDataAsHex,
    );
  1. Or reject any of the requests above by specifying request id.
    wcClient.rejectRequest(id: id);
  1. Disconnect from a connected session locally.
    wcClient.disconnect();
  1. Permanently close a connected session.
    wcClient.killSession();

所属分类

依赖

依赖清单 8 项

源码仓库

使用此插件的项目

暂无相关数据。