Code Monkey home page Code Monkey logo

polkawallet-app's Introduction

Polkawallet App

Download

Apple Store Google Play


Release tag

Polkawallet built with Flutter, https://polkawallet.io

Welcome to Polkawallet

Introduction

Polkawallet provide one-stop management for cross-chain assets, convenient staking and governance operations, and the private key is self-owned.

Polkawallet is aiming to provide a more convenient entrance of the polkadot network for all the users of Polkadot/Kusama/Substrate-based-blockchains.

  • Friendly UI.
  • Secure local accounts storage.
  • Intuitive Tokens management.
  • Simplified staking & governance operations.
  • Offline signature supported.
  • Available for both IOS and Android.
  • Support any Substrate-based-blockchain to integrate as plugins.

Todos

  • Add proxy account operations.
  • Support walletConnect protocol.

Getting Started

Dependencies

  • Flutter 2.5.x statble
  • Dart 2.10.x

To get started

  1. Clone the repo locally, via git clone https://github.com/polkawallet-io/app.git <optional local path>.
  2. Install the dependencies by running flutter pub get.
  3. In AndroidStudio, run lib/main.dart with arguments --flavor=prod on Android Devices, or just run lib/main.dart with no arguments on IOS.

Contribute

This app was built with several repos, developers of other substrate based chain may create their own plugin and put it into polkawallet app:

__ 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

This is a polkadot-js/api wrapper which will be built into a single main.js file to run in a hidden webView inside the App. So the App will connect to a substrate node with polkadot-js.

And we wrapped polkadot-js/keyring in it, so the App can manage keyPairs.

2. polkawallet-io/sdk

This is a polkawallet-io/js_api wrapper dart package, it contains:

  1. Keyring. Managing keyPairs.
  2. PolkawalletSDK. Connect to remote node and call polkadot-js/api methods.
  3. PolkawalletPlugin. A base plugin class, defined the data and life-circle methods which will be used in the App.

A polkawallet plugin can get users' keyPairs in the App from Keyring instance.

A polkawallet plugin implementation should extend the PolkawalletPlugin class and define it's own data & life-circle methods.

3. polkawallet-io/ui

The common used flutter widgets for polkawallet-io/app, like:

  • AddressInputForm
  • TxConfirmPage
  • ScanPage
  • ...

4. polkawallet-io/polkawallet_plugin_xxx

Examples:

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

5. App state management

We use https://pub.dev/packages/mobx. so the directories in a plugin looks like this:

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

6. Submit your plugin

While your plugin was finished and tested, you may submit an issue in this repo. We will check into your plugin and add it into the App.

7. Plugin update

Submit a update request issue to update your plugin. There are two different kinds of update:

  1. Update the dart package. We will rebuild the App and publish a new release.
  2. Update the js code of your plugin (dart code was not affected). We will rebuild the js bundle file and the app will perform a hot-update through polkawallet-api.

Translation

Polkawallet App has several translation projects on crowdin.com:

Language files in the project are written in json-like style:

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
// .

You need to keep the 'key' field on the left as it is, and translate the 'value' field on the right only. Note that the \n symbol split a long string into several lines.

Release checklist

  • sdk version code updated.
  • sdk jsCodeVersion code updated.
  • sdk version code of polkawallet-io/ui updated.
  • sdk & ui dependencies of plugins updated.
  • plugins version updated.
  • plugins node list updated.
  • version code in pubspec.yaml updated.
  • version code in Xcode for IOS updated.

polkawallet-app's People

Contributors

dingzuhua avatar dingzuhua2017 avatar gxhx avatar romeroyang avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.