pub.dev
Effective Dart
Stars
Issues
MIT License

WalletConnect 是一个开源协议,用于将去中心化应用程序连接到移动钱包
通过二维码扫描或深度链接。用户可以安全地与任何 Dapp 进行交互,从他们的手机上
手机,与桌面或浏览器扩展钱包相比,WalletConnect 钱包是更安全的选择。

简介

WalletConnect 将移动和 Web 应用程序连接到支持的移动钱包。WalletConnect 会话通过扫描二维码(桌面)或点击应用程序的深度链接(移动)启动。

WalletConnect-Dart-SDK 是一个社区 SDK,也是官方 WalletConnect monorepo 的移植。

⚠️ 目前只支持 Algorand

WalletConnect 让您构建

  • 去中心化 Web 应用程序,并使用 qr_flutter 显示二维码
  • 移动 dApps,通过深度链接使用 url_launcher
  • 跨平台钱包

安装后,您可以轻松地将您的应用程序连接到钱包。

// Create a connector
final connector = WalletConnect(
    bridge: 'https://bridge.walletconnect.org',
    clientMeta: PeerMeta(
      name: 'WalletConnect',
      description: 'WalletConnect Developer App',
      url: 'https://walletconnect.org',
      icons: [
        'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media'
      ],
    ),
);

用法

Dapps

发起连接

// Create a connector
final connector = WalletConnect(
    bridge: 'https://bridge.walletconnect.org',
    clientMeta: PeerMeta(
      name: 'WalletConnect',
      description: 'WalletConnect Developer App',
      url: 'https://walletconnect.org',
      icons: [
        'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media'
      ],
    ),
);

// Subscribe to events
connector.on('connect', (session) => print(session));
connector.on('session_update', (payload) => print(payload));
connector.on('disconnect', (session) => print(session));

// Create a new session
if (!connector.connected) {
    final session = await connector.createSession(
        chainId: 4160,
        onDisplayUri: (uri) => print(uri),
    );
}

签名交易

// Set a default walletconnect provider
connector.setDefaultProvider(AlgorandWCProvider(connector));

// Sign the transaction
final txBytes = Encoder.encodeMessagePack(transaction.toMessagePack());
final signedBytes = await connector.signTransaction(
    txBytes,
    params: {
      'message': 'Optional description message',
    },
);

钱包

发起连接

// Create a connector
final connector = WalletConnect(
    uri: 'wc:8a5e5bdc-a0e4-47...TJRNmhWJmoxdFo6UDk2WlhaOyQ5N0U=',
    clientMeta: PeerMeta(
      name: 'WalletConnect',
      description: 'WalletConnect Developer App',
      url: 'https://walletconnect.org',
      icons: [
        'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media'
      ],
    ),
);

// Subscribe to events
connector.on('connect', (session) => print(session));
connector.on('session_request', (payload) => print(payload));
connector.on('disconnect', (session) => print(session));

管理连接

// Approve session
await connector.approveSession(chainId: 4160, accounts: ['0x4292...931B3']);

// Reject session
await connector.rejectSession(message: 'Optional error message');

// Update session
await connector.updateSession(SessionStatus(chainId: 4000, accounts: ['0x4292...931B3']));

结束会话

await connector.killSession();

更新日志

请参阅 更改日志 以获取有关近期更改的更多信息。

贡献与拉取请求

欢迎发送拉取请求。

请参阅 贡献指南 获取详细信息。

鸣谢

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 获取更多信息。

GitHub

查看 Github