Polkawallet App

下载

Apple Store Google Play


tag

Polkawallet 采用 Flutter 构建,https://polkawallet.io

简介

Polkawallet 提供跨链资产的一站式管理、便捷的质押和治理操作,并支持私钥自持。

Polkawallet-overview

Polkawallet 旨在为所有 Polkadot/Kusama/Substrate 系列区块链的用户提供更便捷的 Polkadot 网络入口。

  • 友好的用户界面。
  • 安全的本地账户存储。
  • 直观的代币管理。
  • 简化的质押与治理操作。
  • 支持离线签名。
  • 同时支持 iOS 和 Android。
  • 支持任何 Substrate 系列区块链作为插件集成。

待办事项

  • 添加代理账户操作。
  • 支持 walletConnect 协议。

入门

依赖项

  • Flutter 1.22.x 稳定版
  • Dart 2.10.x

开始使用

  1. 通过 git clone https://github.com/polkawallet-io/app.git <可选的本地路径> 将仓库克隆到本地。
  2. 通过运行 flutter pub get 安装依赖项。
  3. 在 Android Studio 中,在 Android 设备上运行 lib/main.dart 并带上参数 --flavor=prod,或者在 iOS 上直接运行 lib/main.dart,无需参数。

贡献

此应用是使用多个仓库构建的,其他 Substrate 系列区块链的开发者可以创建自己的插件并将其放入 polkawallet 应用中。

__ polkawallet-io/app
    |
    |__ polkawallet-io/ui
    |    |__ polkawallet-io/sdk
    |
    |__ polkawallet_plugin_kusama
    |    |__ polkawallet-io/sdk
    |    |__ polkawallet-io/ui
    |
    |__ polkawallet_plugin_acala
    |    |__ polkawallet-io/sdk
    |    |__ polkawallet-io/ui
    |
    |__ polkawallet_plugin_laminar
    |    |__ polkawallet-io/sdk
    |    |__ polkawallet-io/ui
    |
    |__ <plugin of another substrate based chain>
    |__ <...>

1. polkawallet-io/js_api

这是 polkadot-js/api 的封装,将被构建成一个单一的 main.js 文件,在应用内的隐藏 WebView 中运行。因此,该应用将使用 polkadot-js 连接到 Substrate 节点。

我们还将其中的 polkadot-js/keyring 进行了封装,以便应用可以管理 keyPairs。

2. polkawallet-io/sdk

这是 polkawallet-io/js_api 的封装 Dart 包,它包含:

  1. Keyring。管理 keyPairs。
  2. PolkawalletSDK。连接到远程节点并调用 polkadot-js/api 方法。
  3. PolkawalletPlugin。一个基础插件类,定义了将在应用中使用的 API 数据和生命周期方法。

Polkawallet 插件可以从 Keyring 实例中获取应用内的用户 keyPairs。

Polkawallet 插件实现应继承 PolkawalletPlugin 类并定义其自己的 API 数据和生命周期方法。

3. polkawallet-io/ui

polkawallet-io/app 中常用的 Flutter 小部件,例如:

  • AddressInputForm
  • TxConfirmPage
  • ScanPage

4. polkawallet-io/polkawallet_plugin_xxx

示例

  1. polkawallet-io/polkawallet_plugin_kusama
  2. polkawallet-io/polkawallet_plugin_acala
  3. polkawallet-io/polkawallet_plugin_laminar

5. 应用状态管理

我们使用 https://pub.dev/packages/mobx。因此,插件中的目录结构如下:

__ lib
    |__ pages (the UI)
    |__ store (the MobX store)
    |__ service (the Actions fired by UI to mutate the store)
    |__ ...

6. 提交您的插件

当您的插件完成并经过测试后,您可以为此仓库提交一个 issue。我们将审查您的插件并将其添加到应用中。

7. 插件更新

提交更新请求 issue 以更新您的插件。有两种不同类型的更新:

  1. 更新 Dart 包。我们将重新构建应用并发布新版本。
  2. 更新插件的 JS 代码(Dart 代码不受影响)。我们将重建 JS bundle 文件,应用将通过 polkawallet-api 进行热更新。

翻译

Polkawallet App 在 crowdin.com 上有几个翻译项目。

项目中的语言文件以 类 JSON 样式编写。

final enAccount = {
    'key': 'value',
    'key.another': 'Another value for translation.',
    'key.multiline': 'Multiline text are \n split with symbol \n.',
};

/// This 3 strings above will display in the App like:
// value

// Another value for translation.

// Multiline text are
// split with symbol
// .

您需要保持左侧的 'key' 字段不变,只翻译右侧的 'value' 字段。请注意,\n 符号会将长字符串分成多行。

发布检查表

  • sdk 版本代码已更新。
  • sdk jsCodeVersion 代码已更新。
  • polkawallet-io/ui 的 sdk 版本代码已更新。
  • 插件的 sdk 和 ui 依赖项已更新。
  • 插件版本已更新。
  • pubspec.yaml 中的版本代码已更新。
  • lib/common/consts.dart 中的版本代码已更新。
  • Xcode 中 iOS 的版本代码已更新。

GitHub

查看 Github