Flutter区块链交互插件binance_chain的使用
Flutter区块链交互插件binance_chain的使用
这是针对Binance Chain API的非官方Dart包装器。它受到了 python-binance-chain
和 Binance 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
更多关于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');
}
}