Skip to content
This repository has been archived by the owner on Jul 29, 2022. It is now read-only.

Minimal, WASM-light-client-bundled Substrate wallet for balance transfers

License

Notifications You must be signed in to change notification settings

paritytech/substrate-light-ui

Repository files navigation

license Actions Status Dependabot Status CodeClimate

Lichen (working title, previously "Substrate Light UI")

Lichen is a light-client-based, in-browser wallet for Substrate.

The Light UI is meant to be an intuitive interface for beginner users to easily interact with various Substrate chains. It is provided in two forms:

  • A Chrome/Firefox browser extension
  • A desktop application, built with Electron

Both provide the same functionalities and use the same UI, feel free to choose the medium that suits you best.

A very alpha version of the browser extension can be found in the Github Releases page.

You can also check out the master branch and build from source.

Overview

As of v0.3.0, the main functions are as follows:

  • Identity management - manage accounts and addresses, including ability to create, edit, restore, backup, and forget them.
  • Transfer balance - send and receive funds in the currency of the relevant substrate chain.
  • Embed a light client in a browser extension, and let Light UI be the user interface of this extension.

And here is a rough roadmap of what's coming next (see the v0.4.0-MVP milestone for details):

  • Handle changing:
    • provider,
    • chain spec,
    • user uploaded light client WASM blob or chain spec.
  • Provider injection inside dapps.
  • Improve overall beginner-friendliness (e.g. #67).

Build from sources

Dependencies

Make sure you have yarn >= 1.13.0 and nodejs >= 10.10.0. Then run

git clone https://github.com/paritytech/substrate-light-ui
cd ./substrate-light-ui
yarn install

Run the Browser Extension

yarn build:extension

Then install the extension:

  • Chrome:
    • go to chrome://extensions/
    • ensure you have the Development flag set
    • "Load unpacked" and point to packages/extension-app/build
    • if developing, after making changes - refresh the extension
  • Firefox:
    • go to about:debugging#addons
    • check "Enable add-on debugging"
    • click on "Load Temporary Add-on" and point to packages/extension-app/build/manifest.json
    • if developing, after making changes - reload the extension

Run the Electron App

For now, you need to bundle a Substrate node manually into the Electron app. To do so, first build a Substrate node for your platform (note: it can of course be a Polkadot/Kusama node, or any other Substrate node), and copy it as ./packages/electron-app/static/substrate:

cp /path/to/polkadot ./packages/electron-app/static/substrate

Then run:

yarn build:electron

The building might take some time, but you should see an Electron application after a while.

Troubleshooting: If it hangs on a white screen in Electron even though it has compiled and has been syncing for a long time, then simply choose 'View > Reload' (CMD + R on macOS) from the Electron menu.

Contributing

We welcome any and all contributions whether it is in the form of raising an issue, filing a PR, or participating in the discussions. Please read the Contributing Docs first.

Run with Hot-Reloading

If you would like to run this project with hot-reloading, use the following commands:

  • yarn start:ui: If you would only like to modify the UI, run this command and visit http://localhost:3000
  • yarn start:electron: Run the Electron app with hot reloading