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

GitHub 代码仓archethic-foundation/wagmi_flutter_web

wagmi_flutter_web

Flutter Web 的 Wagmi SDK 包装器

wagmi_flutter_web 项目封面
星标
11
复刻
7
最近推送(UTC)
2025年6月19日
项目状态
未归档

原始 README

以下为英文项目原文快照,最新内容请访问 GitHub。

⚠️ Project No Longer Maintained

This package is no longer actively maintained.

We’re incredibly grateful for the support and enthusiasm from the community over time. If you find value in this project, feel free to fork it, build upon it, and even publish a new version on pub.dev if you wish.

Thank you for being part of the journey. ❤️

👋 Looking for an alternative?

New team is actively maintaining a fork of this package — fully compatible with WASM.

📦 Check it out here: [https://pub.dev/packages/wagmi_web] on pub.dev

🤝 Contributions welcome! Bug fixes, new features, or docs — every PR counts!

Wagmi SDK wrapper for Flutter Web

Features

Exposes Wagmi sdk to your Flutter web project.

Wagmi provides developers with intuitive building blocks to build their Ethereum apps.

Getting started

In pubspec.yaml file, add the wagmi_flutter_web dependency :

dependencies:
  wagmi_flutter_web:

Usage

import 'package:wagmi_flutter_web/wagmi.dart' as wagmi;

// Load and initialize Wagmi lib.
await wagmi.init();

// Initializes Web3Modal
wagmi.Web3Modal.init(
    'f642e3f39ba3e375f8f714f18354faa4',
    [wagmi.Chain.ethereum.name!, wagmi.Chain.sepolia.name!],
    true,
    true,
    wagmi.Web3ModalMetadata(
        name: 'Web3Modal',
        description: 'Web3Modal Example',
        url: 'https://web3modal.com',
        icons: ['https://avatars.githubusercontent.com/u/37784886'],
    ),
    false // email
    [], // social networks
    true, // showWallets
    true, // walletFeatures
);

// Opens the Wallet connection modal.
wagmi.Web3Modal.open();
Error management

Errors from wagmi can be handled using the WagmiError object. Wagmi provides an error stack through the cause property. The findError method with the error type allows checking if a specific error is in the error stack.

The different exceptions are available in the WagmiErrors enumeration

 try {
      final transactionHash = await wagmi.Core.writeContract(
        parameters,
      );
    } on wagmi.WagmiError catch (e, stackTrace) {
      if (e.findError(wagmi.WagmiErrors.UserRejectedRequestError) != null) {
        throw Exception('userRejected'); 
      }
      if (e.findError(wagmi.WagmiErrors.InsufficientFundsError) != null) {
         throw Exception('insufficientFunds'); 
      }
      throw Exception('${e.shortMessage}'); 
    }

Available Actions

Status

🔴 Not Implemented Yet.
🟠 Work In Progress.
✅ Implemented.
🛠️ Blocking WASM Support. (Needs rework in future.)
📄 TODO to be managed

For more details, refer to the API documentation.

Action Name Status
call ✅ Implemented
connect 🔴
deployContract 🔴
disconnect ✅ Implemented
estimateFeesPerGas ✅ Implemented
estimateGas ✅ Implemented
estimateMaxPriorityFeePerGas ✅ Implemented
getAccount ✅ Implemented
getBalance ✅ Implemented
getBlock ✅ Implemented
getBlockNumber ✅ Implemented
getBlockTransactionCount ✅ Implemented
getBytecode ✅ Implemented
getChainId ✅ Implemented
getChains ✅ Implemented
getClient 🔴
getConnections ✅ Implemented
getConnectorClient 🔴
getConnectors 🔴
getEnsAddress 🔴
getEnsAvatar 🔴
getEnsName 🔴
getEnsResolver 🔴
getEnsText 🔴
getFeeHistory ✅ Implemented
getGasPrice ✅ Implemented
getProof 🔴
getPublicClient 🔴
getStorageAt 🔴
getToken ✅ Implemented
getTransaction ✅ Implemented
getTransactionConfirmations ✅ Implemented
getTransactionCount ✅ Implemented
getTransactionReceipt ✅ Implemented
getWalletClient 🔴
multicall 🔴
prepareTransactionRequest 🔴
readContract ✅ Implemented
readContracts ✅ Implemented 🛠️
reconnect ✅ Implemented
sendTransaction ✅ Implemented
signMessage ✅ Implemented
signTypedData 🔴
simulateContract 🔴
switchAccount ✅ Implemented
switchChain ✅ Implemented
verifyMessage ✅ Implemented
verifyTypedData 🔴
waitForTransactionReceipt ✅ Implemented
watchAccount ✅ Implemented
watchAsset ✅ Implemented
watchBlockNumber 🔴
watchBlocks 🔴
watchChainId ✅ Implemented
watchClient 🔴
watchConnections ✅ Implemented
watchConnectors 🔴
watchContractEvent ✅ Implemented
watchPendingTransactions 🔴
watchPublicClient 🔴
writeContract ✅ Implemented

Development environment

Prerequisites

You will need the following tools :

  • Flutter >= 3.22.3
  • nodejs >= 18
Compile & run project
Compile TypeScript code

Following commands will build JS code to embed in the web browser.

npm install
npm run build // build production lib
npm run dev // build & watch in dev mode
Run Flutter project

Then, you can run Flutter project as usual.

flutter 
Run Typescript tests
$ npm test

When using VSCode, to enable debugging, create your terminal using the command Debug: JavaScript Debug Terminal.

Run Dart tests
$ dart test -p chrome

# Or with debug
$ dart test -p chrome --pause-after-load     
Archethic Foundation GitHub avatar
GitHub 作者

Archethic Foundation ↗

Digital sovereignty at your fingertips

语言DartTypeScriptHTMLJavaScript

分类

使用的依赖

依赖清单 13 项

如何选择适合项目的代码仓?

先按使用场景筛选,再比较项目活跃情况,最后到原始仓库核对使用要求。

  1. 通过仓库名、作者或描述搜索,再按技术分类缩小范围。
  2. 结合星标、复刻与最近推送比较项目;星标反映社区关注,不代表质量保证。
  3. 使用前在 GitHub 核对 README、许可证与 Issues。

来源与维护

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗