Flutter钱包核心库插件trust_wallet_core_lib的使用

Flutter钱包核心库插件trust_wallet_core_lib的使用

trust_wallet_core_lib 是一个用于访问 Trust Wallet Core API 的 Flutter 插件。该插件支持 Android 和 iOS 平台(仅在 Android 平台上进行过测试)。

Android

要使用 trust_wallet_core_lib,你的 Android 项目需要满足以下条件:

  • minSdk 版本应大于等于 23。
  • MainActivity.kt 文件中添加以下代码以加载本地库:
class MainActivity: FlutterActivity() {
    init {
        System.loadLibrary("TrustWalletCore")
    }
}

iOS

要使用 trust_wallet_core_lib,你的 iOS 项目需要满足以下条件:

  • 最低支持的 iOS 平台版本应为 13.0。

Flutter

在使用此包之前,需要先进行初始化:

FlutterTrustWalletCore.init();

完整示例

以下是一个完整的示例,展示了如何使用 trust_wallet_core_lib 来创建一个钱包并执行一些基本操作。

import 'package:flutter/material.dart';
import 'package:trust_wallet_core_lib/trust_wallet_core_lib.dart';
import 'package:trust_wallet_core_lib_example/bitcoin_address_example.dart';
import 'package:trust_wallet_core_lib_example/bitcoin_transaction_example.dart';
import 'package:trust_wallet_core_lib_example/ethereum_example.dart';
import 'package:trust_wallet_core_lib_example/private_key_is_valid_example.dart';
import 'package:trust_wallet_core_lib_example/tron_example.dart';

List<String> logs = [];

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Example(),
    );
  }
}

class Example extends StatefulWidget {
  [@override](/user/override)
  _ExampleState createState() => _ExampleState();
}

class _ExampleState extends State<Example> {
  late HDWallet wallet;

  [@override](/user/override)
  void initState() {
    TrustWalletCoreLib.init(); // 初始化插件
    super.initState();
    String mnemonic =
        "rent craft script crucial item someone dream federal notice page shrug pipe young hover duty"; // 有测试币的 tron地址
    wallet = HDWallet.createWithMnemonic(mnemonic); // 创建钱包
  }

  Widget _exampleItem({
    required String name,
    required WidgetBuilder builder,
  }) {
    return ElevatedButton(
      onPressed: () {
        Navigator.of(context).push(MaterialPageRoute(builder: builder));
      },
      child: Text(name),
    );
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('wallet core example app'),
      ),
      body: SafeArea(
        child: Column(
          children: [
            Text(wallet.mnemonic()), // 显示助记词
            Expanded(
              child: ListView(
                padding: EdgeInsets.zero,
                children: [
                  _exampleItem(
                    name: 'Ethereum',
                    builder: (_) {
                      return EthereumExample(wallet); // 展示以太坊示例
                    },
                  ),
                  _exampleItem(
                    name: 'Bitcoin Address',
                    builder: (_) {
                      return BitcoinAddressExample(wallet); // 展示比特币地址示例
                    },
                  ),
                  _exampleItem(
                    name: 'Bitcoin Transaction',
                    builder: (_) {
                      return BitcoinTransactionExample(wallet); // 展示比特币交易示例
                    },
                  ),
                  _exampleItem(
                    name: 'Tron',
                    builder: (_) {
                      return TronExample(wallet); // 展示 Tron 示例
                    },
                  ),
                  _exampleItem(
                    name: 'PrivateKey.isValid(a,b)',
                    builder: (_) {
                      return PrivateKeyIsValidExample(wallet); // 展示私钥有效性检查示例
                    },
                  ),
                ],
              ),
            ),
            ElevatedButton(
              onPressed: () async {
                wallet.delete(); // 删除钱包
                wallet = HDWallet(); // 重新生成钱包
                setState(() {});
              },
              child: Text("gen"), // 生成新钱包
            ),
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


trust_wallet_core_lib 是一个用于与 Trust Wallet Core 集成的 Flutter 插件。Trust Wallet Core 是一个强大的区块链库,支持多种加密货币和区块链功能,包括钱包创建、交易签名、地址生成等。

以下是如何在 Flutter 项目中使用 trust_wallet_core_lib 的基本步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 trust_wallet_core_lib 依赖:

dependencies:
  flutter:
    sdk: flutter
  trust_wallet_core_lib: ^0.1.0  # 请根据最新版本号进行替换

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

2. 导入库

在你的 Dart 文件中导入 trust_wallet_core_lib

import 'package:trust_wallet_core_lib/trust_wallet_core_lib.dart';

3. 初始化库

在使用库之前,通常需要初始化它:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await TrustWalletCoreLib.init();
  runApp(MyApp());
}

4. 使用功能

创建钱包

你可以使用 Wallet 类来创建一个新的钱包:

void createWallet() {
  final wallet = Wallet.create();
  print('Mnemonic: ${wallet.mnemonic}');
  print('Private Key: ${wallet.privateKey}');
}

生成地址

你可以使用 Wallet 对象来生成指定币种的地址:

void generateAddress() {
  final wallet = Wallet.create();
  final coinType = CoinType.bitcoin;
  final address = wallet.getAddressForCoin(coinType);
  print('Bitcoin Address: $address');
}

签名交易

你可以使用 Wallet 对象来签名交易:

void signTransaction() {
  final wallet = Wallet.create();
  final coinType = CoinType.ethereum;
  final privateKey = wallet.privateKey;
  
  // 创建交易
  final transaction = EthereumTransaction(
    nonce: 0,
    gasPrice: BigInt.from(2000000000),
    gasLimit: BigInt.from(21000),
    to: '0xRecipientAddress',
    value: BigInt.from(1000000000000000000), // 1 ETH
    data: Uint8List(0),
  );

  // 签名交易
  final signedTransaction = wallet.signEthereumTransaction(transaction, privateKey);
  print('Signed Transaction: $signedTransaction');
}

5. 处理错误

在使用 trust_wallet_core_lib 时,可能会遇到各种错误。确保你正确处理了这些错误:

try {
  final wallet = Wallet.create();
  // 其他操作
} catch (e) {
  print('Error: $e');
}

6. 释放资源

在使用完 Wallet 对象后,确保释放相关资源:

void disposeWallet(Wallet wallet) {
  wallet.dispose();
}
回到顶部