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)。请参阅 许可证文件 获取更多信息。
