パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細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はモバイルおよびウェブアプリへの暗号機能の統合を簡素化します。

用途

  • クロスプラットフォームの暗号資産ウォレットの構築
  • Flutterアプリでブロックチェーン取引を有効化する
  • マルチチェーンサポートの統合
  • 分散型金融(DeFi)アプリケーションの開発
  • NFTマーケットプレイスの作成
  • QRコードまたはリンクを通じたウォレット接続の促進

主な機能

  • マルチチェーン互換性
  • 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 件

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。