Buscar pacotes, repositórios e categorias de apps

Capa de walletconnect_dart
Detalhes do pacotev0.0.11

walletconnect_dart

Protocolo aberto para conectar aplicações descentralizadas a carteiras móveis por meio de escaneamento de código QR ou link profundo.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
773
Curtidas
115
Pontos Pub
130

Instalar pacote

flutter pub add walletconnect_dart

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

O WalletConnect Dart é um SDK leve que permite que aplicações descentralizadas se conectem com carteiras móveis de forma segura por meio da leitura de códigos QR ou deep linking. Ele oferece integração multiplataforma para Android, iOS, Web, macOS, Windows e Linux, facilitando interações sem problemas com blockchains. Construído sobre o protocolo aberto WalletConnect, garante comunicação criptografada entre dApps e carteiras sem expor chaves privadas. O pacote simplifica o emparelhamento de carteiras, gerenciamento de sessões e assinatura de transações em aplicativos Flutter. Ideal para desenvolvedores que constroem aplicações nativas de cripto com conectividade segura e amigável ao usuário.

Casos de uso

  • Conectando dApps a carteiras móveis
  • Habilitar transações de blockchain
  • Suporte a aplicativos de cripto multiplataforma
  • Facilitando o emparelhamento seguro de carteiras
  • Implementando autenticação baseada em código QR
  • Integração com Ethereum e outras blockchains

Principais recursos

  • Suporte multiplataforma
  • Emparelhamento de código QR e link profundo
  • Comunicação de sessão criptografada
  • assinatura de transação segura
  • Integração fácil com o Flutter
  • Design leve e modular

Indicado para

  • Desenvolvedores Flutter construindo dApps
  • Integrações de carteira cripto
  • criadores de aplicativos Web3
  • equipes de projetos de blockchain
  • Plataformas de cripto com foco em dispositivos móveis
  • aplicativos de finanças descentralizadas (DeFi)

Considerações

  • Requer carteiras móveis compatíveis
  • Necessita de tratamento adequado de erros para falhas de conexão
  • Depende da disponibilidade de carteira externa
  • Pode ser necessário uma interface de usuário adicional para escaneamento QR
  • Não adequado para casos de uso não baseados em blockchain
  • O gerenciamento de sessão deve ser tratado com cuidado

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

pub.dev Effective Dart Stars Issues MIT License

WalletConnect is an open source protocol for connecting decentralised applications to mobile wallets with QR code scanning or deep linking. A user can interact securely with any Dapp from their mobile phone, making WalletConnect wallets a safer choice compared to desktop or browser extension wallets.

Introduction

WalletConnect connects mobile & web applications to supported mobile wallets. The WalletConnect session is started by scanning a QR code (desktop) or by clicking an application deep link (mobile).

WalletConnect-Dart-SDK is a community SDK and port of the official WalletConnect-monorepo.

WalletConnect-Dart currently supports:

  • Algorand
  • Ethereum

You can easily add your own network by extending from WalletConnectProvider and implementing the required methods using sendCustomRequest. An example from Binance Smart Chain can be found here. For more information regarding the implementation, check out EthereumWalletConnectProvider and AlgorandWalletConnectProvider.

WalletConnect lets you build:

  • Decentralized web applications and display QR codes with qr_flutter
  • Mobile dApps with deep linking using url_launcher
  • Cross-platform wallets

Once installed, you can simply connect your application to a wallet.

// 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'
      ],
    ),
);

Usage

Dapps

Initiate connection

// 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),
    );
}

Sign transaction

final sender = Address.fromAlgorandAddress(address: session.accounts[0]);

// Fetch the suggested transaction params
final params = await algorand.getSuggestedTransactionParams();

// Build the transaction
final tx = await (PaymentTransactionBuilder()
  ..sender = sender
  ..noteText = 'Signed with WalletConnect'
  ..amount = Algo.toMicroAlgos(0.0001)
  ..receiver = sender
  ..suggestedParams = params)
    .build();

// Sign the transaction
final signedBytes = await provider.signTransaction(
    tx.toBytes(),
    params: {
    'message': 'Optional description message',
    },
);

// Broadcast the transaction
final txId = await algorand.sendRawTransactions(
    signedBytes,
    waitForConfirmation: true,
);

// Kill the session
connector.killSession();
Wallets

Initiate connection

// 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));

Manage connection

// 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']));

Kill session

await connector.killSession();

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing & Pull Requests

Feel free to send pull requests.

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.

Categorias

Dependências

Lista de dependências 6 itens

Repositório-fonte

Projetos que usam este pacote