Flutter区块链交互插件binance_chain的使用

Flutter区块链交互插件binance_chain的使用

这是针对Binance Chain API的非官方Dart包装器。它受到了 python-binance-chainBinance Chain Java SDK 的启发。

功能

  • 支持所有BIP39规范的语言。
  • 异步实现的HTTP API(100%覆盖)。
  • 支持迷你(BEP8)代币。
  • 创建、签名和广播消息(交易)。
  • 多重发送和多令牌交易。
  • 带有自动“保持活动”消息和重新连接功能的WebSocket API。
  • 可以从私钥或助记词短语创建钱包。
  • 钱包处理交易的账户序列。
  • 辅助类用于处理来自Binance API的响应。数据模型以解析响应JSON的类形式呈现。
  • 使用 <a href="https://pub.dev/packages/decimal">Decimal</a> 库在发送交易时更准确地表示金额。
  • 100%兼容Flutter。
  • 100%原生Dart。

有用的链接

如何使用:参见Wiki

使用示例

以下是一个简单的使用示例:

import 'package:binance_chain/binance_chain.dart';

void main() async {
  // 设置测试网络环境
  var testnetEnv = BinanceEnvironment.getTestnetEnv();
  var httpClient = HttpApiClient(env: testnetEnv);

  // 从助记词短语创建钱包
  var wallet = Wallet.fromMnemonicPhrase(
    'mnemonic phrase 12-24 words',
    bip39.Language.english,
    testnetEnv
  );

  // 或者从私钥创建钱包
  var wallet = Wallet('private key in hexadecimal', testnetEnv);

  // 获取账户信息
  var account = await httpClient.getAccount('tbnb1v8603f3ene9zd2y44s6czhhjw7sd8gs9v4est4');

  // 获取账户的未完成订单
  var openOrders = await httpClient.getOpenOrders('tbnb1v8603f3ene9zd2y44s6czhhjw7sd8gs9v4est4');

  // 根据订单ID获取订单
  var order = await httpClient.getOrder('9D0537108883C68B8F43811B780327CE97D8E01D-2');

  // 获取账户的交易记录
  var transactions = await httpClient.getTransactions('tbnb1v8603f3ene9zd2y44s6czhhjw7sd8gs9v4est4');
}

TODO

  • 支持WIF和.keystore
  • 测试
  • 更多文档和示例
  • 可能增加JSON-RPC

示例代码

以下是从GitHub上获取的示例代码:

// 查看GitHub Wiki:  https://github.com/andromeda911/binance_chain_dart/wiki

更多关于Flutter区块链交互插件binance_chain的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter区块链交互插件binance_chain的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


binance_chain 是一个用于与币安链(Binance Chain)进行交互的 Flutter 插件。它允许你在 Flutter 应用中与币安链进行交易、查询余额、发送代币等操作。以下是如何使用 binance_chain 插件的基本指南。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 binance_chain 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  binance_chain: ^0.1.0  # 请检查最新版本

然后运行 flutter pub get 来获取依赖。

2. 初始化插件

在你的 Dart 代码中,首先需要导入 binance_chain 插件:

import 'package:binance_chain/binance_chain.dart';

然后,你可以初始化 BinanceChain 实例:

final binanceChain = BinanceChain();

3. 连接到币安链

你可以连接到币安链的测试网或主网。以下是连接到测试网的示例:

await binanceChain.connect(
  network: BinanceNetwork.testnet,
);

4. 查询余额

要查询某个地址的余额,可以使用 getBalance 方法:

final balance = await binanceChain.getBalance('bnb1...'); // 替换为你的地址
print('Balance: $balance');

5. 发送交易

要发送交易,你需要创建一个 Transfer 对象并调用 sendTransfer 方法:

final transfer = Transfer(
  fromAddress: 'bnb1...', // 发送方地址
  toAddress: 'bnb1...',   // 接收方地址
  amount: '1',            // 发送金额
  symbol: 'BNB',          // 代币符号
  memo: 'Test transfer',  // 备注
);

final response = await binanceChain.sendTransfer(transfer);
print('Transaction Hash: ${response.hash}');

6. 处理私钥和签名

在发送交易之前,你可能需要使用私钥对交易进行签名。binance_chain 插件提供了 Wallet 类来处理私钥和签名:

final wallet = Wallet.fromPrivateKey('your_private_key');
final signedTx = await wallet.signTransfer(transfer);
final response = await binanceChain.broadcast(signedTx);

7. 其他功能

binance_chain 插件还提供了其他功能,如查询交易、获取市场数据等。你可以参考插件的文档来了解更多详细信息。

8. 错误处理

在使用 binance_chain 插件时,务必处理可能出现的错误。例如:

try {
  final balance = await binanceChain.getBalance('bnb1...');
  print('Balance: $balance');
} catch (e) {
  print('Error: $e');
}

9. 示例代码

以下是一个完整的示例,展示了如何查询余额并发送交易:

import 'package:binance_chain/binance_chain.dart';

void main() async {
  final binanceChain = BinanceChain();
  await binanceChain.connect(network: BinanceNetwork.testnet);

  try {
    final balance = await binanceChain.getBalance('bnb1...');
    print('Balance: $balance');

    final transfer = Transfer(
      fromAddress: 'bnb1...',
      toAddress: 'bnb1...',
      amount: '1',
      symbol: 'BNB',
      memo: 'Test transfer',
    );

    final wallet = Wallet.fromPrivateKey('your_private_key');
    final signedTx = await wallet.signTransfer(transfer);
    final response = await binanceChain.broadcast(signedTx);
    print('Transaction Hash: ${response.hash}');
  } catch (e) {
    print('Error: $e');
  }
}
回到顶部