搜索插件、代码仓与 APP 分类

插件详情v1.0.0-beta.15

flutterchain

用于与区块链系统通信的多链库。基于 WalletCore。

AndroidiOSWeb
近 30 天下载
192
喜欢数
23
Pub 分数
110

安装插件

flutter pub add flutterchain

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

Flutterchain 是一个跨链库,可在 Flutter 应用中实现与区块链系统的无缝通信。基于 WalletCore 构建,它支持多个区块链之间的互操作性,为开发者提供统一的接口,用于钱包管理、交易签名和区块链交互。该库针对 Android、iOS 和 Web 平台进行了优化,非常适合跨平台 Web3 应用。凭借强大的安全功能和对区块链协议的底层访问,Flutterchain 简化了将加密功能集成到移动和 Web 应用中的过程。

适合场景

  • 构建跨平台加密钱包
  • 在Flutter应用中启用区块链交易
  • 集成多链支持
  • 开发去中心化金融(DeFi)应用
  • 创建NFT市场
  • 通过二维码或链接实现钱包连接

主要特点

  • 多链兼容性
  • 基于 WalletCore 的架构
  • 对 Android、iOS 和 Web 的支持
  • 安全交易签名
  • 低级别区块链协议访问
  • 跨平台一致性

适合对象

  • Web3 应用开发者
  • 加密钱包创建者
  • DeFi 平台构建者
  • NFT 应用团队
  • 区块链集成商

使用建议

  • 需要了解区块链基础知识
  • 依赖于 WalletCore 的稳定性
  • 可能需要为自定义链进行额外设置
  • 除了基本用法外,文档有限
  • 不适合非Web3项目

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

About FlutterChain

FlutterChain is a library that provides developers with a simple API to communicate with different blockchains. It allows developers to easily integrate popular cryptocurrencies into their web 3.0 projects without needing to have an in-depth understanding of the underlying blockchain technology. With FlutterChain, developers can easily interact with smart contracts, send transfers, and perform various transaction types. It's an easy-to-use and flexible solution for developers looking to build blockchain-based applications.

Installing

  1. Add This code to the index.html For Web project
<head>
  <!-- other head elements -->
  <script type="application/javascript" src="flutter.js" defer></script>
  <script type="application/javascript" src="/assets/packages/flutter_inappwebview_web/assets/web/web_support.js" defer></script>
  <script type="module" src="/assets/packages/flutterchain/assets/crypto-lib/dist/bundle.js"></script>
  <script type="application/javascript" src="/assets/packages/flutterchain/assets/crypto-lib/dist/dop_bundle.js"></script>
  <link rel="modulepreload" crossorigin href="/assets/packages/flutterchain/assets/crypto-lib/dist/bundle2.js">


</head>

<body>
  <script>
    window.addEventListener("load", async function (ev) {
      {{flutter_js}}
      {{flutter_build_config}}
      
      _flutter.loader.load({
        serviceWorkerSettings: {
          serviceWorkerVersion: {{flutter_service_worker_version}},
        },
      });
    });
  </script>
</body>
  1. Set Android: minSdkVersion >= 19, compileSdk >= 34, AGP version >= 7.3.0 in the android/app/build.gradle file and add to the AndroidManifest.xml usesCleartextTraffic param and Internet permission:
  <manifest> ...
    <application> ...
      android:usesCleartextTraffic="true"
    </application>
    <uses-permission android:name="android.permission.INTERNET"/>
  </manifest>
  1. Initialize the flutterchain library after WidgetsFlutterBinding.ensureInitialized() in the main function.
void main() {
  WidgetsFlutterBinding.ensureInitialized();
  initFlutterChainLib();
  ...
  runApp(MyApp());
}

How to use

This library provides interfaces to interact with various blockchains. You can achieve this by using an implementation of BlockChainService or BlockchainServiceWithSmartContractCallSupport for your selected blockchain. For example:

  final service = NearBlockChainService.defaultInstance(); // NearBlockChainService implements BlockchainServiceWithSmartContractCallSupport
  final amount = await service
      .getWalletBalance(NearAccountInfoRequest(accountId: "test.near"));

The library also includes its own wallet controller (FlutterChainLibrary), allowing you to create wallets for different blockchains simultaneously, securely store them and manage, and execute standardized operations like transferring coins or interacting with smart contracts (where supported by the blockchain). It also provides access to the blockchain specific methods interface. For example:

  final flutterChainLibrary = FlutterChainLibrary.defaultInstance();

  final wallet = await flutterChainLibrary.createWalletWithGeneratedMnemonic(
      walletName: "my wallet");

  final derivationPathData =
      wallet.blockchainsData?[BlockChains.near]?.first.derivationPath;

  // call from FlutterChainLibrary

  final response = await flutterChainLibrary.sendTransferNativeCoin(
    blockchainType: BlockChains.near,
    derivationPathData: derivationPathData!,
    walletId: wallet.id,
    toAddress: "someAddress",
    transferAmount: "1000",
  );

  //call from blockchainService interface

  final NearBlockChainService nearBlockChainService = flutterChainLibrary
      .blockchainService
      .blockchainServices[BlockChains.near] as NearBlockChainService;

  // final NearBlockChainData blockChainData = wallet.blockchainsData![BlockChains.near]?.first as NearBlockChainData;
  final NearBlockChainData blockChainData = await nearBlockChainService
      .getBlockChainData(mnemonic: wallet.mnemonic) as NearBlockChainData;

  final response2 = await nearBlockChainService.sendTransferNativeCoin(
    NearTransferRequest(
      publicKey: blockChainData.publicKey,
      privateKey: blockChainData.privateKey,
      toAddress: "someAddress",
      transferAmount: "1000",
    ),
  );

  await flutterChainLibrary.deleteAllWallets();

Important Notes and Tips

FlutterChainLibrary and BlockchainServiceWithSmartContractCallSupport/BlockchainService implementations aren't singletons. Each time a new instance is created, a jsVMService (a service that handles blockchain operations behind the scenes) is also instantiated. For optimal performance, it is recommended to reuse the same instance of the blockchain service throughout your app. This can be easily managed by using dependency injection libraries like flutter_modular or get_it.

For more detailed information, refer to the documentation and tests. You'll find guidance on how to use FlutterChainLibrary or various BlockchainServices. Additionally, you can explore different use cases through the examples provided:

You can see the architecture in the draw.io file flutterchain_arch.drawio inside the library.

Running Examples

Instructions for running the included examples.

  1. Navigate to the example directory: cd example
  2. Run flutter run to launch the example app on your preferred device.
  3. Explore the example app to see how to use the library in your own project.

Contributing

Instructions for contributing to this library:

  1. Fork this repository
  2. Create a new branch: git checkout -b my-new-branch
  3. Make changes and commit them: git commit -m "My message"
  4. Push to the remote branch: git push origin my-new-branch
  5. Create a pull request

List any dependencies or prerequisites needed before getting started with editing this library:

  • Node JS
  • Flutter
  • Installed Android Studio and Android SDK (For Android dev)
  • Installed Xcode (For IOS, Mac OS dev)

Instructions for building the library from source code:

  1. Clone this repository: git clone https://github.com/vlmoon99/flutterchain
  2. Navigate to the project root directory: cd flutterchain
  3. Run bash build.sh for building flutterchain lib

所属分类

依赖

依赖清单 10 项

源码仓库

使用此插件的项目

暂无相关数据。