Flutter钱包管理插件stellar_wallet_flutter_sdk的使用

Flutter钱包管理插件stellar_wallet_flutter_sdk的使用

安装

从pub.dev安装

  1. pubspec.yaml文件中添加依赖项:
dependencies:
  stellar_wallet_flutter_sdk: ^1.0.2
  stellar_flutter_sdk: ^1.9.1
  1. 安装依赖项(命令行或IDE):
flutter pub get
  1. 在源文件中导入SDK并初始化使用:
import 'package:stellar_wallet_flutter_sdk/stellar_wallet_flutter_sdk.dart';

Wallet wallet = Wallet.testNet;
Anchor anchor = wallet.anchor(anchorDomain);
AnchorServiceInfo serviceInfo = await anchor.sep24().getServiceInfo();

手动安装

  1. 克隆此仓库。
  2. 在你的IDE(例如Android Studio)中打开项目。
  3. 打开pubspec.yaml文件,并在IDE中按下Pub get按钮。
  4. 转到项目的test目录,运行一个测试,然后你就可以开始使用了!

添加到你的应用中:

  1. 在Flutter应用中,在pubspec.yaml文件中添加本地依赖项,然后运行pub get
dependencies:
   flutter:
     sdk: flutter
   stellar_wallet_flutter_sdk:
     path: ../stellar_wallet_flutter_sdk
  1. 在源文件中导入SDK并初始化使用:
import 'package:stellar_wallet_flutter_sdk/stellar_wallet_flutter_sdk.dart';

Wallet wallet = Wallet.testNet;
Anchor anchor = wallet.anchor(anchorDomain);
AnchorServiceInfo serviceInfo = await anchor.sep24().getServiceInfo();

功能性

钱包SDK提供了与锚点进行交互的简单方式。它支持以下SEPs:

此外,钱包SDK还提供了比Flutter Stellar SDK更多的功能。对于与Stellar网络的交互,Flutter钱包SDK涵盖了典型钱包流程中使用的最基本的功能。

开始使用

使用SDK

让我们从提供所有SDK功能的主要类开始。建议在整个应用程序中共享单例钱包对象。使用默认配置创建连接到Stellar测试网的钱包很简单:

var wallet = Wallet.testNet;

钱包实例可以进一步配置。例如,要连接到公共网络:

var wallet = Wallet(StellarConfiguration.publicNet);

配置自定义HTTP客户端

Flutter钱包SDK使用来自http包的标准客户端进行所有网络请求(Horizon除外,其中使用的是Flutter Stellar SDK的HTTP客户端)。

你可以选择设置自己的客户端以供整个应用使用。客户端可以全局配置:

import 'package:http/http.dart' as http;

// 初始化并配置你的HTTP客户端
// var myClient = ...

// 设置为默认HTTP客户端
var appConfig = ApplicationConfiguration(defaultClient: myClient);
var walletCustomClient = Wallet(StellarConfiguration.testNet, applicationConfiguration: appConfig);

一些测试用例使用了例如MockClient

Stellar基础知识

Flutter钱包SDK在现有的Flutter Stellar SDK之上提供了额外的功能。对于与Stellar网络的交互,Flutter钱包SDK涵盖了典型钱包流程中使用的最基本的功能。对于更高级的用例,应该使用底层的Flutter Stellar SDK

要与前几步配置的Horizon实例进行交互,只需执行以下操作:

var stellar = wallet.stellar();

这个例子将创建一个管理连接到Horizon服务的Stellar类。

你可以阅读更多关于如何与Stellar网络交互的信息在对应的文档部分

Stellar Flutter SDK

Flutter Stellar SDK作为依赖项包含在Flutter钱包SDK中。

使用Flutter Stellar SDK连接到与钱包类相同的Horizon实例非常简单。为此,只需调用:

var stellar = wallet.stellar();
var server = stellar.server;
var transactions = await server.transactions.forAccount(accountId).execute();

但你也可以像这样导入并使用它:

import 'package:stellar_flutter_sdk/stellar_flutter_sdk.dart' as flutter_sdk;

final sdk = flutter_sdk.StellarSDK.TESTNET;

var accountId = "GASYKQXV47TPTB6HKXWZNB6IRVPMTQ6M6B27IM5L2LYMNYBX2O53YJAL";
var transactions = await sdk.transactions.forAccount(accountId).execute();

锚点基础知识

Flutter钱包SDK的主要用途是通过一组称为SEPs的协议提供一种简单的方式连接到锚点。

让我们看看如何连接到Stellar测试锚点:

var anchor = wallet.anchor("https://testanchor.stellar.org");

最基础的交互是获取一个SEP-001:Stellar信息文件:

var info = await anchor.getInfo();

更多关于Flutter钱包管理插件stellar_wallet_flutter_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter钱包管理插件stellar_wallet_flutter_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


stellar_wallet_flutter_sdk 是一个用于在 Flutter 应用中管理 Stellar 钱包的插件。它提供了一系列功能来创建、管理以及与 Stellar 区块链进行交互。以下是如何使用 stellar_wallet_flutter_sdk 的基本步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  stellar_wallet_flutter_sdk: ^latest_version

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

2. 初始化 SDK

在你的 Flutter 应用中初始化 stellar_wallet_flutter_sdk

import 'package:stellar_wallet_flutter_sdk/stellar_wallet_flutter_sdk.dart';

void main() {
  // 初始化 SDK
  StellarWalletSdk.initialize(
    network: Network.TESTNET, // 或者 Network.PUBLIC
    horizonUrl: 'https://horizon-testnet.stellar.org', // 根据网络选择正确的 Horizon URL
  );

  runApp(MyApp());
}

3. 创建钱包

你可以使用 stellar_wallet_flutter_sdk 来创建一个新的 Stellar 钱包:

import 'package:stellar_wallet_flutter_sdk/stellar_wallet_flutter_sdk.dart';

Future<void> createWallet() async {
  Wallet wallet = Wallet.generate();
  print('Public Key: ${wallet.publicKey}');
  print('Secret Seed: ${wallet.secretSeed}');
}

4. 导入钱包

如果你已经有一个 Stellar 钱包,你可以使用私钥导入它:

import 'package:stellar_wallet_flutter_sdk/stellar_wallet_flutter_sdk.dart';

Future<void> importWallet() async {
  String secretSeed = 'SXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
  Wallet wallet = Wallet.fromSecretSeed(secretSeed);
  print('Public Key: ${wallet.publicKey}');
}

5. 查询账户余额

你可以查询 Stellar 账户的余额:

import 'package:stellar_wallet_flutter_sdk/stellar_wallet_flutter_sdk.dart';

Future<void> checkBalance() async {
  String publicKey = 'GXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
  Account account = await StellarWalletSdk.instance.loadAccount(publicKey);
  print('Balances: ${account.balances}');
}

6. 发送交易

你可以使用 stellar_wallet_flutter_sdk 发送交易:

import 'package:stellar_wallet_flutter_sdk/stellar_wallet_flutter_sdk.dart';

Future<void> sendTransaction() async {
  String secretSeed = 'SXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
  Wallet wallet = Wallet.fromSecretSeed(secretKey);

  String destinationPublicKey = 'GXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
  String amount = '10';
  String assetCode = 'XLM';

  Transaction transaction = await StellarWalletSdk.instance.createPaymentTransaction(
    sourceAccount: wallet,
    destination: destinationPublicKey,
    amount: amount,
    assetCode: assetCode,
  );

  await StellarWalletSdk.instance.signAndSubmitTransaction(transaction, wallet);
  print('Transaction submitted');
}

7. 处理错误

在使用 SDK 时,可能会遇到各种错误。你可以使用 try-catch 块来处理这些错误:

import 'package:stellar_wallet_flutter_sdk/stellar_wallet_flutter_sdk.dart';

Future<void> sendTransaction() async {
  try {
    // 发送交易代码
  } catch (e) {
    print('Error: $e');
  }
}
回到顶部