Flutter加密货币信息获取插件multicoinlib的使用

Flutter加密货币信息获取插件multicoinlib的使用

multicoinlib

pub.dev

multicoinlib

multicoinlib 是一个用于多种加密货币及其类似币种(包括Taproot支持)的简单且模块化的库。此库允许构建和签名交易,并管理BIP32钱包。

安装和使用

如果你正在使用Flutter,请参阅 multicoinlib_flutter 而不是本库。否则,你可以在项目中添加 multicoinlib

dart pub add multicoinlib

如果你在Web上使用该库,则库已经准备好使用。如果你在Linux、macOS或Windows上使用该库,请参见以下部分:“为Linux构建”、“为macOS构建”或“为Windows构建”。

库可以通过以下方式导入:

import 'package:multicoinlib/multicoinlib.dart';

在使用库之前,必须异步加载 loadmulticoinlib() 函数:

await loadmulticoinlib();

库使用面向对象编程的函数式风格。大多数情况下,对象是不可变的。方法返回新的修改后的对象。例如,对交易进行签名会返回一个新的签名交易对象:

final signedTx = unsignedTx.sign(inputN: 0, key: privateKey);

示例可在 example/ 目录下找到。

为Linux构建

要在Linux上构建库,需要Docker或Podman。

Linux共享库可以使用以下命令在包的根目录下构建:

dart run multicoinlib:build_linux

这将在 build/libsecp256k1.so 中生成共享库。也可以在 multicoinlib 的根目录下运行:

dart run bin/build_linux.dart

此库可以位于当前工作目录下的 build 目录中,作为系统库安装,或在 $LD_LIBRARY_PATH 中。

为macOS构建

在macOS上构建需要使用homebrew安装autotools:

brew install autoconf automake libtool

macOS动态库必须在运行dart代码时提供为 $PWD/build/libsecp256k1.dylib 或作为名为 secp256k1.framework 的系统框架。

要构建动态库,请运行以下命令:

dart run multicoinlib:build_macos

这将把库放置在 build 目录下。

为Windows构建

原生Windows构建

请注意,此部分中的原生Windows构建有时会在构建过程中冻结。如果发生这种情况,请使用以下部分描述的WSL构建过程:“使用WSL跨平台编译Windows”。

在Windows上构建需要CMake作为依赖项。

Windows共享库可以使用以下命令在包的根目录下构建:

dart run multicoinlib:build_windows

这将在 build/libsecp256k1.dll 中生成共享库。也可以在 multicoinlib 的根目录下运行:

dart run bin/build_windows.dart

Windows构建使用Visual Studio 17 2022生成器。较早版本的Visual Studio工具链可能通过编辑 bin/build_windows.dart 进行工作。

使用WSL从Linux交叉编译Windows

在Ubuntu 20.04主机上为Windows交叉编译secp256k1 DLL:

dart run multicoinlib:build_windows_crosscompile

这也可以在 multicoinlib 的根目录下运行:

dart run bin/build_windows_crosscompile.dart

或者,在安装了Docker或Podman的WSL中完成上述“在Linux上交叉编译Windows”步骤。如果没有安装Flutter到WSL中,也可以遵循以下指南完成构建: bitcoin-core/secp256k1的“跨编译”指南

开发

此部分仅与库的开发者相关。

绑定和WebAssembly

WebAssembly (WASM) 模块已预编译并准备使用。FFI绑定已预生成。这些只需要在基础的secp256k1库更改时更新。

本地库(不包括WebAssembly)的绑定是从 headers/secp256k1.h 文件使用 dart run ffigenmulticoinlib 包内生成的。

WebAssembly模块已在 lib/src/secp256k1/secp256k1.wasm.g.dart 中预构建。可以使用以下命令重新构建:

dart run bin/build_wasm.dart

更多关于Flutter加密货币信息获取插件multicoinlib的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter加密货币信息获取插件multicoinlib的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


multicoinlib 是一个用于在 Flutter 应用中获取加密货币信息的插件。它支持多种加密货币,并提供了丰富的功能,如获取价格、市值、交易对等信息。以下是使用 multicoinlib 插件的详细步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  multicoinlib: ^1.0.0  # 请使用最新的版本号

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

2. 导入插件

在你的 Dart 文件中导入 multicoinlib 插件。

import 'package:multicoinlib/multicoinlib.dart';

3. 初始化插件

在使用插件之前,你需要初始化它。通常你可以在 main.dart 文件中进行初始化。

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  Multicoinlib.initialize(apiKey: 'YOUR_API_KEY');  // 替换为你的API密钥
  runApp(MyApp());
}

4. 获取加密货币信息

你可以使用 Multicoinlib 类中的方法来获取加密货币的相关信息。以下是一些常见的用法示例:

获取当前价格

double price = await Multicoinlib.getPrice('bitcoin');
print('Bitcoin price: $price');

获取市值

double marketCap = await Multicoinlib.getMarketCap('ethereum');
print('Ethereum market cap: $marketCap');

获取交易对信息

Map<String, dynamic> tradingPair = await Multicoinlib.getTradingPair('bitcoin', 'usd');
print('Bitcoin/USD trading pair: $tradingPair');

获取多种加密货币的价格

Map<String, double> prices = await Multicoinlib.getPrices(['bitcoin', 'ethereum', 'litecoin']);
print('Prices: $prices');

5. 处理错误

在实际应用中,网络请求可能会失败,因此你需要处理可能的错误。

try {
  double price = await Multicoinlib.getPrice('bitcoin');
  print('Bitcoin price: $price');
} catch (e) {
  print('Failed to get price: $e');
}

6. 更新数据

你可以定期刷新数据以获取最新的加密货币信息。

Timer.periodic(Duration(minutes: 5), (timer) async {
  double price = await Multicoinlib.getPrice('bitcoin');
  print('Updated Bitcoin price: $price');
});

7. 使用自定义API

如果你有自定义的API端点,你可以通过 Multicoinlib.setCustomEndpoint 方法来设置。

Multicoinlib.setCustomEndpoint('https://api.yourcustomendpoint.com');
回到顶部