Flutter集成ZNN SDK插件znn_sdk_dart的使用

Flutter集成ZNN SDK插件znn_sdk_dart的使用

Zenon Dart SDK

参考实现用于Dart和Flutter应用程序的Zenon SDK,与Zenon Alphanet兼容——Momentum Phase 0网络。它为任何基于Dart或Flutter的项目提供了简单的集成。


安装与配置

要开始使用此库,请编辑项目的pubspec.yaml文件并添加以下内容:

dependencies:
  znn_sdk_dart: ^latest_version

注意:znn_sdk_dart需要Dart版本>=2.14.0

你也可以指定特定的GitHub标签或分支:

dependencies:
  znn_sdk_dart:
    git:
      url: git://github.com/zenon-network/znn_sdk_dart.git
      ref: <tag_or_branch>

示例代码

以下是一个完整的示例代码,展示如何在Flutter项目中使用znn_sdk_dart插件生成密钥对并打印相关信息。

文件位置:example/example.dart

import 'package:hex/hex.dart'; // 导入用于十六进制编码的工具包
import 'package:znn_sdk_dart/znn_sdk_dart.dart'; // 导入ZNN SDK的核心库

// 主函数入口
Future<void> main() async {
  // 示例助记词(请确保在生产环境中使用安全生成的助记词)
  final mnemonic =
      'route become dream access impulse price inform obtain engage ski believe awful absent pig thing vibrant possible exotic flee pepper marble rural fire fancy';

  // 从助记词生成密钥存储对象
  var keyStore = KeyStore.fromMnemonic(mnemonic);

  // 获取第0个账户的密钥对
  var keyPair = keyStore.getKeyPair(0);

  // 提取私钥和公钥
  var privateKey = keyPair.getPrivateKey(); // 私钥
  var publicKey = await keyPair.getPublicKey(); // 公钥

  // 获取地址
  var address = await keyPair.address;

  // 打印生成的信息
  print('熵: ${keyStore.entropy}');
  print('私钥: ${HEX.encode(privateKey!)}'); // 私钥以十六进制格式打印
  print('公钥: ${HEX.encode(publicKey)}'); // 公钥以十六进制格式打印
  print('地址: $address'); // 地址
  print('核心字节: ${HEX.encode(address!.core!)}'); // 地址的核心字节部分
}

运行结果

运行上述代码后,你会看到类似以下的输出:

熵: [16进制表示的熵]
私钥: [16进制表示的私钥]
公钥: [16进制表示的公钥]
地址: [生成的地址]
核心字节: [16进制表示的核心字节]

更多关于Flutter集成ZNN SDK插件znn_sdk_dart的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter集成ZNN SDK插件znn_sdk_dart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter项目中集成ZNN SDK插件 znn_sdk_dart 可以帮助你与ZNN区块链进行交互。以下是如何在Flutter项目中集成和使用 znn_sdk_dart 的步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 znn_sdk_dart 依赖。

dependencies:
  flutter:
    sdk: flutter
  zn_sdk_dart: ^0.1.0  # 请使用最新版本

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

2. 初始化ZNN SDK

在你的Flutter项目中,首先需要初始化ZNN SDK。通常,你可以在 main.dart 或某个初始化文件中进行初始化。

import 'package:znn_sdk_dart/znn_sdk_dart.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // 初始化ZNN SDK
  await ZnnSDK.initialize(
    nodeUrl: 'ws://your.znn.node:35998', // ZNN节点地址
    chainId: 1, // 链ID
  );

  runApp(MyApp());
}

3. 使用ZNN SDK进行交互

初始化完成后,你可以使用 znn_sdk_dart 提供的API与ZNN区块链进行交互。以下是一些常见的操作示例:

获取账户余额

import 'package:znn_sdk_dart/znn_sdk_dart.dart';

Future<void> getAccountBalance(String address) async {
  try {
    var account = await ZnnSDK.api.ledger.getAccountInfoByAddress(address);
    print('Account Balance: ${account.balance}');
  } catch (e) {
    print('Error fetching account balance: $e');
  }
}

发送交易

import 'package:znn_sdk_dart/znn_sdk_dart.dart';

Future<void> sendTransaction(String toAddress, BigInt amount) async {
  try {
    var keyPair = ZnnSDK.wallet.getKeyPair(); // 获取密钥对
    var transaction = await ZnnSDK.api.ledger.send(
      keyPair,
      toAddress,
      amount,
    );
    print('Transaction sent: ${transaction.hash}');
  } catch (e) {
    print('Error sending transaction: $e');
  }
}

查询区块信息

import 'package:znn_sdk_dart/znn_sdk_dart.dart';

Future<void> getBlockInfo(int height) async {
  try {
    var block = await ZnnSDK.api.ledger.getBlockByHeight(height);
    print('Block Info: ${block.toJson()}');
  } catch (e) {
    print('Error fetching block info: $e');
  }
}
回到顶部