Awesome
<!-- PROJECT SHIELDS --> <h2 align="center"> <br/> <a href='https://raiden.network/'><img width='400px' alt='' src="https://user-images.githubusercontent.com/35398162/54018436-ee3f6300-4188-11e9-9b4e-0666c44cda53.png" /></a> <br/> Raiden WebUI <br/> </h2> <h4 align="center"> </h4> <p align="center"> <a href="#getting-started">Getting Started</a> ∙ <a href='#contact'>Contact</a> </p> <p align="center"> <a href="https://pypi.org/project/raiden-webui/"> <img alt="PyPI" src="https://img.shields.io/pypi/v/raiden-webui.svg"> </a> <a href="https://circleci.com/gh/raiden-network/webui/tree/master"> <img src="https://circleci.com/gh/raiden-network/webui/tree/master.svg?style=svg" alt="CircleCI Badge"> </a> <a href="https://codecov.io/gh/raiden-network/webui"> <img src="https://codecov.io/github/raiden-network/webui/coverage.svg?precision=2" alt="Codecov Badge"> </a> <a href="https://github.com/prettier/prettier"> <img src="https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square" alt="code style: prettier"> </a> <a href="https://gitter.im/raiden-network/raiden"> <img src="https://badges.gitter.im/gitterHQ/gitter.png" alt="Gitter Raiden Badge"> </a> </p>Raiden WebUI is a simple web application that utilizes the Raiden REST API endpoints to allow the user to interact with token networks, make token payments, see the current status of open channels along with closing and settling channels to name some of the functionality.
Table of Contents
About The Project
The Raiden Network is an off-chain scaling solution, enabling near-instant, low-fee and scalable payments. It’s complementary to the Ethereum blockchain and works with any ERC20 compatible token.
The Raiden client code is available here and has been released for mainnet for the Alderaan release of the Raiden Network in May 2020.
Raiden WebUI is built using the following technologies:
Getting Started
Learn about Raiden
If you haven't used Raiden before, you can:
- Checkout the developer portal
- Look at the documentation
- Learn more by watching explanatory videos
- Read the blog posts on Medium
Using the WebUI
If you want to learn how to use the Raiden WebUI an updated tutorial has been published in the documentation for Raiden.
Prerequisites
If you just want to use the WebUI all you need to do is install and run Raiden. A version of the WebUI comes bundled with each Raiden release and is accessible from http://127.0.0.1:5001
.
For details on how to easily install Raiden:
Read the Quick Start section in the documentation.
If you want to work on the WebUI codebase you need:
- Node >=10.13.0
- A working Raiden client.
- Git for version control.
- Yarn v1 for package management.
Development
Before you start working on the WebUI you need to install the WebUI dependencies.
yarn install
Configuration
Before you begin to work on the WebUI you have to make sure that you have the proper configuration. Check if the proxy configuration corresponds to your actual environment configuration.
Since you will not be running the WebUI embedded into Raiden you need to provide both the Ethereum RPC endpoint
and the Raiden REST API endpoint to the proxy.config.json
.
By default the configurations looks like this:
{
"/api": {
"target": "http://localhost:5001",
"proxyTimeout": 600000
},
"/web3": {
"target": "http://localhost:8545",
"pathRewrite": { "^/web3": "" },
"changeOrigin": true,
"proxyTimeout": 60000
}
}
The configuration assumes that the Ethereum RPC endpoint listens on http://localhost:8545
and the Raiden REST API is on http://localhost:5001
. If you are using a different configuration make sure
to update the corresponding fields in the configuration.
For example if you run Raiden on port 5002
and you use Infura as your RPC provider you would have to
modify the proxy.config.json
to like like:
{
"/api": {
"target": "http://localhost:5002",
"proxyTimeout": 600000
},
"/web3": {
"target": "http://goerli.infura.io/v3/YOUR_API_KEY",
"pathRewrite": { "^/web3": "" },
"changeOrigin": true,
"proxyTimeout": 60000
}
}
Info: On development mode there is no way to guarantee that raiden and the RPC provider run on the same chain. You have to be careful, because if you start for example Raiden on Rinkeby and pass Görli as the RPC endpoint, WebUI will fail to work.
Important: Modifications on
proxy.config.json
make sure never be part of your PR.
Running the WebUI
After you are done with the configuration you can start the development server:
yarn run serve
After the development server starts you have to navigate to http://localhost:4200/ui
, in order to use the WebUI.
Python package
The WebUI is build as a python package and it's available on PyPI. This package is pinned as a dependency on Raiden. The PyPI package provides a precompiled version of the WebUI that is bundled with Raiden and can be used out of the box.
The python package provides a static variable that points to the location of the WebUI static content root directory. This can be imported by raiden to expose the bundled WebUI resources:
from raiden_webui import RAIDEN_WEBUI_PATH
The package can build the python package by calling:
python setup.py build sdist bdist_wheel
The command calls yarn build:prod
to build the static production version of the WebUI so
that it can get included in the python package.
If you need to install the package locally to your development virtual environment you can do so by running:
python setup.py build install
In case you need to use the debug version of the WebUI within your virtual environment you can also run:
python setup.py compile_webui -D install
This will build the debug version of the WebUI to include in your package.
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Also have a look at the Raiden WebUI Development Guide for more info.
License
Distributed under the MIT License.
Contact
Dev Chat: Gitter
Twitter: @raiden_network
Website: Raiden Network
Mail: contact@raiden.network
Project Link: https://github.com/raiden-network/light-client