zxxiang

开源了一个 Flutter 多链钱包:支持 12 条主网

  •  
  •   zxxiang · 1 day ago · 403 views

    开源了一个 Flutter 多链钱包:支持 12 条主网

    最近我开源了一个基于 Flutter + GetX 开发的多链本地热钱包项目:

    Flutter Wallet

    GitHub:

    https://github.com/zhangxiang0316/flutter-wallet

    这个项目最开始只是为了学习 Flutter 在 Web3 钱包场景中的实现方式,后来不断补充功能,现在已经覆盖了钱包创建、导入、多链资产、转账收款、交易记录、网络管理、自定义 Token 、行情估值等比较完整的功能。

    目前项目内置支持 12 条主网,包括:

    • Ethereum
    • BNB Smart Chain
    • Arbitrum
    • X Layer
    • Base
    • Polygon
    • Avalanche
    • Bitcoin
    • Solana
    • TRON
    • Sui
    • Aptos

    也就是说,它不仅仅支持 EVM ,还包含 Bitcoin 的 UTXO 模型、Solana 、TRON ,以及 Sui 、Aptos 这类 Move 系公链。

    主要功能

    钱包部分支持:

    • 创建 12 个英文单词助记词
    • 助记词、私钥导入
    • 多钱包管理
    • 多链地址派生
    • 本地加密保存私钥和助记词
    • 敏感操作密码验证

    资产方面支持原生币以及 ERC20 、TRC20 、SPL Token 等资产,还可以添加自定义 EVM Token 。

    项目首页现在采用的是按 Token 聚合,而不是按链展示

    例如用户同时在 Ethereum 、BSC 、Polygon 上持有 USDT ,首页会直接展示 USDT 的总数量和总 USD 价值,点击之后再查看不同网络上的具体余额。

    同时为了避免假 Token 被错误合并,只有可信资产才会通过 canonicalTokenId 进行跨链聚合,同名自定义 Token 仍然保持独立。

    多链余额加载优化

    支持的链越来越多以后,钱包首页最大的一个问题就是加载速度。

    目前项目采用了:

    • 本地余额缓存
    • Cache First
    • 多链并发查询
    • 链级渐进刷新
    • EVM JSON-RPC Batch
    • Shimmer 骨架屏

    打开钱包时会优先展示上一次成功获取的余额,然后后台刷新。不同链同时请求,哪条链先返回,页面就先更新哪条链,不需要等全部网络加载完成。

    转账和交易历史

    目前已经支持:

    • EVM 原生币 / ERC20 转账
    • TRX / TRC20 转账
    • SOL / SPL Token 转账
    • Bitcoin Native SegWit 转账
    • Sui 转账
    • Aptos 转账

    Bitcoin 部分实现了 UTXO 选择、动态手续费、找零、本地签名和 Esplora 广播。

    交易历史则根据不同链使用不同的数据源,比如:

    • Etherscan
    • Moralis
    • Blockscout
    • Helius
    • TronGrid
    • mempool.space
    • Sui GraphQL
    • Aptos Indexer

    因为普通 RPC 往往无法直接提供完整的地址交易历史,所以这一部分也是多链钱包比较复杂的地方。

    项目定位

    这个项目目前主要定位为:

    Flutter + Web3 学习、钱包开发研究和测试用途。

    它并不是经过专业安全审计的生产级钱包,因此不建议直接存放大额真实资产。

    如果你正在学习:

    • Flutter
    • Web3
    • HD Wallet
    • 助记词和私钥
    • 多链地址派生
    • RPC
    • ERC20 / TRC20 / SPL Token
    • Bitcoin UTXO
    • 多链钱包架构

    这个项目应该会有一些参考价值。

    项目还在持续完善中,后续也计划继续增加 WalletConnect 、DApp 、Swap 、NFT 等能力。

    GitHub:

    https://github.com/zhangxiang0316/flutter-wallet

    如果觉得项目有帮助,欢迎 Star 、Fork 、提 Issue 或 PR

    也欢迎一起交流 Flutter 和 Web3 钱包开发。

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1216 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 23:48 · PVG 07:48 · LAX 16:48 · JFK 19:48
    ♥ Do have faith in what you're doing.