Compare commits

...

99 Commits

Author SHA1 Message Date
Shahana Farooqui dec7ea7dfd Adding tag name
Adding tag name
2 years ago
Shahana Farooqui d87762f6fb Remove apt clean
Remove apt clean
2 years ago
Shahana Farooqui c80b74976f Testing Actions 2
Testing Actions 2
2 years ago
Shahana Farooqui 9d5e671486 Workflow test fix
Workflow test fix
2 years ago
Shahana Farooqui 04671d9a70 Testing Actions 1
Testing Actions 1
2 years ago
Shahana Farooqui 9df81d47ab Deploy zip without dependencies
Deploy zip without dependencies
2 years ago
Shahana Farooqui e6d4128d51 More workflow updates
More workflow updates
2 years ago
Shahana Farooqui cd72a49beb LND reduce 1,000,000 payments to 100,000
LND reduce 1,000,000 payments to 100,000
3 years ago
Shahana Farooqui d266af596c Merge branch 'master' of https://github.com/miketwenty1/RTL into miketwenty1-master 3 years ago
Shahana Farooqui 04f506959d ng lint another fix
ng lint another fix
3 years ago
Shahana Farooqui 37d1151381 ng test and ng lint fixes
ng test and ng lint fixes
3 years ago
Shahana Farooqui ca961c0de9 Workflow updates incomplete
Workflow updates incomplete
3 years ago
Shahana Farooqui 5613c51ee3 Adding Backend Build Script
Adding Backend Build Script
3 years ago
Shahana Farooqui ecaeb56d30 Deleting Angular folder
Deleting Angular folder
3 years ago
Shahana Farooqui cb62425124 Updating node version
Updating node version
3 years ago
Shahana Farooqui 56f1306807 Merge branch 'pr/890' into Release-0.12.0 3 years ago
Shahana Farooqui bb5342caa5 Bug fixes after Sqlite removal
Bug fixes after Sqlite removal
3 years ago
Shahana Farooqui 0055301391 Removed sqlite3
Removed sqlite3
3 years ago
Michael Tidwell 690f9a69bb reduce to 100 thousand 3 years ago
Shahana Farooqui 0c893baf56 Nomenclature update
Nomenclature update
3 years ago
Shahana Farooqui aaf2aceab2 Paid Offer to Offer Bookmark
Paid Offer to Offer Bookmark
3 years ago
ShahanaFarooqui 5ee58e01f6
Delete Paid Offer (#905)
Delete Paid Offer
3 years ago
Shahana Farooqui 9db07e5b2a Doc file ext update
Doc file ext update
3 years ago
Shahana Farooqui 8293e2ee40 sqlite3 docker script multiarch
sqlite3 docker script multiarch
3 years ago
Shahana Farooqui 9c6ac9013b sqlite3 docker script incomplete
sqlite3 docker script incomplete
3 years ago
Michael Tidwell 75f89aa0c1
Update README.md
Adding stand alone docker run command to docker README.
3 years ago
ShahanaFarooqui 64ae54bd3d
Export Offer to pdf (#901)
Export Offer to pdf
3 years ago
Shahana Farooqui b98e5d0dc8 ECL & CLT Dashboard Layouts
ECL & CLT Dashboard Layouts
3 years ago
Shahana Farooqui 7ffebd30a7 DB Service
DB Service
3 years ago
Shahana Farooqui f85f81df2b Paid Offers ReSend Payment Bug fixes
Paid Offers ReSend Payment Bug fixes
3 years ago
ShahanaFarooqui e410885390
List Paid Offers (#900)
List Paid Offers
3 years ago
ShahanaFarooqui 491a4a0956
Create Offers (#897)
Create Offers
3 years ago
Shahana Farooqui 078107bda4 Moved enableOffers to Experimental Tab
Moved enableOffers to Experimental Tab
3 years ago
ShahanaFarooqui e6ce4014d0
List offers (#893)
Moved QueryRoutes to Graph lookup
Offers List
3 years ago
ShahanaFarooqui bd3002307c
Offers - Experimental configuration (#892)
Offers - Experimental configuration
3 years ago
Shahana Farooqui de5b8aac33 Bug fixes after testing 4
Bug fixes after testing 4
3 years ago
ShahanaFarooqui 7339774701
CLT On chain custom fee rate (#891)
CLT On chain custom fee rate
3 years ago
Shahana Farooqui 69a75640e7 Delete db
Delete db
3 years ago
Shahana Farooqui 247ce8a9f6 Ubuntu access denied error fix
Ubuntu access denied error fix
3 years ago
elbandi 58fb8192e8 Create checks.yml 3 years ago
elbandi 73d34c8298 Add the ng build script command 3 years ago
elbandi a2d6501712 Rewrite dockerfile for missing angular directory 3 years ago
bitbandi 6c90e07ca9 Create ci.yml 3 years ago
bitbandi 38631956a0 Use ChromeHeadless in karma.conf.js 3 years ago
ShahanaFarooqui acd0d720ed
Modal flat and stroked button update (#887)
Modal flat and stroked button update
3 years ago
Shahana Farooqui 3f4be6544b Bug fixes after testing 3
Bug fixes after testing 3
3 years ago
bitbandi 3d46164935
Delete angular directory 3 years ago
ShahanaFarooqui d20ad0235b
Offers Payment and Save to DB (#886)
Offers Payment and Save to DB
3 years ago
Shahana Farooqui 8f3843788f ng build
ng build
3 years ago
Shahana Farooqui d01ffe02fc Invoice information modal bug fix
Invoice information modal bug fix
3 years ago
Shahana Farooqui 6931ee5fe7 Invoice payment animation
Invoice payment animation
3 years ago
Shahana Farooqui f6aa06dd36 Vulnerabilities fixed
Vulnerabilities fixed
3 years ago
Shahana Farooqui b48cd1d872 ng13
ng13
3 years ago
Shahana Farooqui 67cd6a655c vulnerability fix
vulnerability fix
3 years ago
Shahana Farooqui 5c545946ad ng test fix
ng test fix
3 years ago
ShahanaFarooqui 86bfbe4174 cookie parser error fix 3 years ago
Shahana Farooqui 9e06410b03 Bug fixes after testing 2
Bug fixes after testing 2
3 years ago
Shahana Farooqui 58802a45b6 Bug fixes after testing 1
Bug fixes after testing 1
3 years ago
ShahanaFarooqui a55a42504d
Lnd invoice subscribe (#883)
LND Invoice Subscribe
3 years ago
saubyk 69038a9d0e
missing cookie header bug fix
missing cookie header bug fix
3 years ago
saubyk 252ef21e54
missing cookie header bug fix
missing cookie header bug fix
3 years ago
ShahanaFarooqui 0f398dbed2
LND UTXO list Bug fix #852 (#882)
LND UTXO list Bug fix #852
3 years ago
Shahana Farooqui f3a09bc5f8 CLT Version check for WS connection
CLT Version check for WS connection
3 years ago
ShahanaFarooqui 69fc130c89
ECL & CLT Invoice modal should wait for payment status #710 (#881)
ECL & CLT Invoice modal should wait for payment status #710
3 years ago
ShahanaFarooqui f7c80d33e3
Bug Fix: Error message when paying invoice without setting a fee limit #867 (#880)
Bug Fix: Error message when paying invoice without setting a fee limit #867
3 years ago
ShahanaFarooqui d86ec42306
LND bug fix for download payments #826 (#879)
LND bug fix for download payments #826
3 years ago
ShahanaFarooqui 0e75347fd6
Routing peers show msats instead of sats #804 (#878)
Routing peers show msats instead of sats #804
3 years ago
Shahana Farooqui 89d1a2326f Password reset fix after allowPasswordUpdate
Password reset fix after allowPasswordUpdate
3 years ago
Shahana Farooqui f3785cd409 Filter clear bug fix
Filter clear bug fix
3 years ago
ShahanaFarooqui 5299f121d8
Support eclair trampoline routing statistics #611 (#875)
Support eclair trampoline routing statistics #611
3 years ago
ShahanaFarooqui f3b74c4ec5
ECL v6.2 updateRelayFee request signature fix #830 (#874)
ECL v6.2 updateRelayFee request signature fix #830
3 years ago
ShahanaFarooqui deb5bcccdd
Adding APP_PASSWORD as acceptable environment variable (#873)
Adding APP_PASSWORD as acceptable environment variable
3 years ago
Shahana Farooqui b68d3a82c4 Updated the class name and ng build
Updated the class name and ng build
3 years ago
Shahana Farooqui 00b5d64a91 Merge branch 'pr/860' into Release-0.12.0 3 years ago
ShahanaFarooqui 0fde18d896
Channel alias info for update fee, view remote fee and close channel #829 (#869)
Channel alias info for update fee, view remote fee and close channel #829
3 years ago
Shahana Farooqui e10e9459c1 CLT Signet #864 & PR #865
CLT Signet #864 & PR #865
3 years ago
Shahana Farooqui d6f31c4faa Merge branch 'pr/865' into Release-0.12.0 3 years ago
Shahana Farooqui 04d5149c9b Websocket for MultiNode Ln Implementation Finished
Websocket for MultiNode Ln Implementation Finished
3 years ago
pseudozach 54ebb665b7 add signet to c-lightning getinfo so it doesnt get marked as shitcoin 3 years ago
pseudozach 6d0c77ba5f add signet to c-lightning getinfo so it doesnt get marked as shitcoin 3 years ago
elbandi 5fa03eef0b Show invoice right state 3 years ago
Shahana Farooqui 31d95d5751 Websocket for MultiNode Ln Implementation
Websocket for MultiNode Ln Implementation
3 years ago
Shahana Farooqui 272d3bc80d Websocket for MultiNode Ln Implementation
Websocket for MultiNode Ln Implementation
3 years ago
ShahanaFarooqui 17408916d6
Ngrx selectors & ECL Payment relayed (#859)
Ngrx selectors & ECL Payment relayed
3 years ago
ShahanaFarooqui 2b388d37e8
Clt websocket (#851)
Express sessions
CLT Web Sockets
3 years ago
ShahanaFarooqui faa5837280 Updated dependencies and esm imports
Updated dependencies and esm imports
3 years ago
ShahanaFarooqui a41a7ba7f8
Eclair Websocket updates for payment and channel events (#840) 3 years ago
Shahana Farooqui a906c46405 Adding lowdb dependency
Adding lowdb dependency
3 years ago
Shahana Farooqui 9a8e026340 ECMAScript module fixes
ECMAScript module fixes
3 years ago
Shahana Farooqui acfa102f0a JS to TS Final code cleanup
JS to TS Final code cleanup
3 years ago
Shahana Farooqui 2489ff7683 CORS & CSRF Separated
CORS & CSRF Separated
3 years ago
Shahana Farooqui eff5bfa45f Backend migration from Javascript to TypeScript
Backend migration from Javascript to TypeScript
3 years ago
Shahana Farooqui 8b2a9ee3de Backend code rearranged
Backend code rearranged
3 years ago
ShahanaFarooqui d231c9fe1f
Bug fix Empty channel backup #814 (#815)
Bug fix Empty channel backup #814
3 years ago
ShahanaFarooqui 17f630d751
Bug fix Routing peers is not loading #812 (#813)
Bug fix Routing peers is not loading #812
3 years ago
ShahanaFarooqui 3788023a75
Docker solo run (#802)
Docker updates
3 years ago
Shahana Farooqui 091e64ffb1 Build 0.11.3
Build 0.11.3
3 years ago
Shahana Farooqui 31b063958d Revert "pnpm (#787)"
This reverts commit 01bd7981ea.
3 years ago
ShahanaFarooqui 01bd7981ea
pnpm (#787)
pnpm
3 years ago

@ -11,11 +11,11 @@ jobs:
command: |
LATEST_TAG="${CIRCLE_TAG:1}"
DOCKERHUB_DESTINATION="$DOCKERHUB_REPO:$LATEST_TAG-amd64"
DOCKERHUB_DOCKERFILE="docker/Dockerfile"
DOCKERHUB_DOCKERFILE="dockerfiles/Dockerfile"
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker build --pull -t "$DOCKERHUB_DESTINATION" -f "$DOCKERHUB_DOCKERFILE" .
sudo docker push "$DOCKERHUB_DESTINATION"
no_output_timeout: 20m
no_output_timeout: 25m
publish_docker_linuxarm32v7:
machine:
@ -27,11 +27,11 @@ jobs:
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
LATEST_TAG="${CIRCLE_TAG:1}"
DOCKERHUB_DESTINATION="$DOCKERHUB_REPO:$LATEST_TAG-arm32v7"
DOCKERHUB_DOCKERFILE="docker/Dockerfile.arm32v7"
DOCKERHUB_DOCKERFILE="dockerfiles/Dockerfile.arm32v7"
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker build --pull -t "$DOCKERHUB_DESTINATION" -f "$DOCKERHUB_DOCKERFILE" .
sudo docker push "$DOCKERHUB_DESTINATION"
no_output_timeout: 20m
no_output_timeout: 25m
publish_docker_linuxarm64v8:
machine:
@ -43,11 +43,11 @@ jobs:
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
LATEST_TAG="${CIRCLE_TAG:1}"
DOCKERHUB_DESTINATION="$DOCKERHUB_REPO:$LATEST_TAG-arm64v8"
DOCKERHUB_DOCKERFILE="docker/Dockerfile.arm64v8"
DOCKERHUB_DOCKERFILE="dockerfiles/Dockerfile.arm64v8"
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker build --pull -t "$DOCKERHUB_DESTINATION" -f "$DOCKERHUB_DOCKERFILE" .
sudo docker push "$DOCKERHUB_DESTINATION"
no_output_timeout: 20m
no_output_timeout: 25m
publish_docker_multiarch:
machine:
@ -68,7 +68,7 @@ jobs:
sudo docker manifest annotate "$DOCKERHUB_REPO:$LATEST_TAG" "$DOCKERHUB_REPO:$LATEST_TAG-arm32v7" --os linux --arch arm --variant v7
sudo docker manifest annotate "$DOCKERHUB_REPO:$LATEST_TAG" "$DOCKERHUB_REPO:$LATEST_TAG-arm64v8" --os linux --arch arm64 --variant v8
sudo docker manifest push "$DOCKERHUB_REPO:$LATEST_TAG" -p
no_output_timeout: 20m
no_output_timeout: 25m
workflows:
version: 2

@ -0,0 +1,50 @@
.angular/
.circleci/
.git/
.github/
.settings/
.vscode/
frontend/
backend/
backup/
cookies/
coverage/
dist/
docker/
dockerfiles/
logs/
node_modules/
node_modules_old/
node_modules_prod/
node_modules_dev/
out-tsc/
tmp/
typings/
.browserlistrc
_config.yml
.classpath
.DS_Store
.eslintrc.json
.gitattributes
.gitignore
.idea
*.launch
.project
.sass-cache
*.sublime-workspace
.vscode/*
connect.lock
ECLDummyData.log
libpeerconnection.log
npm-debug.log
RTL-Config.json
RTL-Config-Old.json
RTL-Config-1.json
RTL-Multi-Node-Conf.json
RTL.conf
RTL-1.conf
RTL-Multi-Node-Conf-1.json
RTL-Config-for-BTC-Testing.json
testem.log
Thumbs.db
yarn-error.log

@ -3,8 +3,7 @@
"ignorePatterns": [
"projects/**/*",
"rtl.js",
"/routes/**/*.js",
"/controllers/**/*.js",
"/backend/**/*.js",
"/src/prebuild.js"
],
"overrides": [
@ -48,8 +47,7 @@
"curly": "error",
"no-unused-expressions": "error",
"strict": "error",
"max-len": ["error", { "code": 430 }],
"new-parens": "error",
"max-len": ["error", { "code": 450 }],
"no-multiple-empty-lines": "error",
"no-trailing-spaces": "error",
"quote-props": ["error", "as-needed"],
@ -128,14 +126,13 @@
"func-names": "error",
"id-match": "error",
"implicit-arrow-linebreak": "error",
"indent": ["error", 2, { "SwitchCase": 1, "MemberExpression": 1 }],
"indent": ["error", 2, { "SwitchCase": 1, "MemberExpression": 1, "ArrayExpression": "off" }],
"keyword-spacing": ["error", { "before": true, "after": true, "overrides": { "this": { "before": false }}}],
"lines-around-comment": "error",
"max-depth": "error",
"max-depth": ["error", { "max": 6 }],
"max-nested-callbacks": "error",
"max-statements-per-line": ["error", { "max": 2 }],
"max-statements-per-line": ["error", { "max": 3 }],
"no-array-constructor": "error",
"no-bitwise": "error",
"no-continue": "error",
"no-mixed-operators": "error",
"no-multi-assign": "error",

@ -1,10 +1,10 @@
## Ride The Lightning (RTL)
![](../screenshots/RTL-LND-Dashboard.png)
![](./screenshots/RTL-LND-Dashboard.png)
<a href="https://snyk.io/test/github/Ride-The-Lightning/RTL"><img src="https://snyk.io/test/github/Ride-The-Lightning/RTL/badge.svg" alt="Known Vulnerabilities" data-canonical-src="https://snyk.io/test/github/Ride-The-Lightning/RTL" style="max-width:100%;"></a>
[![license](https://img.shields.io/github/license/DAVFoundation/captain-n3m0.svg?style=flat-square)](https://github.com/DAVFoundation/captain-n3m0/blob/master/LICENSE)
**Intro** -- [Application Features](Application_features.md) -- [Road Map](Roadmap.md) -- [Application Configurations](Application_configurations) -- [C-Lightning](C-Lightning-setup.md) -- [Eclair](Eclair-setup.md) -- [Contribution](Contributing.md)
**Intro** -- [Application Features](./docs/Application_features.md) -- [Road Map](./docs/Roadmap.md) -- [Application Configurations](./docs/Application_configurations.md) -- [C-Lightning](./docs/C-Lightning-setup.md) -- [Eclair](./docs/Eclair-setup.md) -- [Contribution](./docs/Contributing.md)
* [Introduction](#intro)
* [Architecture](#arch)
@ -19,8 +19,8 @@
RTL is a full function, device agnostic, web user interface to help manage lightning node operations.
RTL is available on [LND](https://github.com/lightningnetwork/lnd), [C-Lightning](https://github.com/ElementsProject/lightning) and [Eclair](https://github.com/ACINQ/eclair) implementations.
* C-Lightning users, refer to [this](C-Lightning-setup.md) page for install instructions.
* Eclair users, refer to [this](Eclair-setup.md) page for install instructions.
* C-Lightning users, refer to [this](./docs/C-Lightning-setup.md) page for install instructions.
* Eclair users, refer to [this](./docs/Eclair-setup.md) page for install instructions.
* LND users, follow the instructions below
Lightning Network Daemon(LND) is an implementation of Lightning Network BOLT protocol by [Lightning Labs](https://lightning.engineering/).
@ -41,7 +41,7 @@ RTL is available on the below platforms/services:
Docker Image: https://hub.docker.com/r/shahanafarooqui/rtl
### <a name="arch"></a>Architecture
![](../screenshots/RTL-LND-Arch-2.png)
![](./screenshots/RTL-LND-Arch-2.png)
### <a name="prereq"></a>Prerequisites
* Functioning and synced LND lightning node.
@ -56,7 +56,10 @@ To download from master (*not recommended*):
```
$ git clone https://github.com/Ride-The-Lightning/RTL.git
$ cd RTL
$ npm install --only=prod
$ npm install
$ npm run buildfrontend
$ npm run buildbackend
$ npm prune --production
```
#### Or: Update existing dependencies
```
@ -64,12 +67,15 @@ $ cd RTL
$ git reset --hard HEAD
$ git clean -f -d
$ git pull
$ npm install --only=prod
$ npm install
$ npm run buildfrontend
$ npm run buildbackend
$ npm prune --production
```
### <a name="prep"></a>Prep for Execution
RTL requires its own config file `RTL-Config.json`, to start the server and provide user authentication on the app.
*Advanced users can refer to [this page](Multi-Node-setup.md), for config settings required to manage multiple nodes*
*Advanced users can refer to [this page](./docs/Multi-Node-setup.md), for config settings required to manage multiple nodes*
* Copy the file `Sample-RTL-Config.json` from `./RTL/docs` to `./RTL` and rename it to `RTL-Config.json`.
* Locate the complete path of the readable macroon file (admin.macroon) on your node and the lnd.conf file.
@ -114,7 +120,7 @@ Example RTL-Config.json:
]
}
```
For details on all the configuration options refer to [this page](./Application_configurations).
For details on all the configuration options refer to [this page](./docs/Application_configurations.md).
#### User Authentication on RTL
RTL requires the user to be authenticated by the application first, before allowing access to LND functions.
@ -172,11 +178,11 @@ Open your browser at the following address: http://localhost:3000 to access the
* Determine the IP address of your node to access the application.
E.g. if the IP address of your node is 192.168.0.15 then open your browser at the following address: http://192.168.0.15:3000 to access RTL.
3. Config tweaks for running RTL server and LND on separate devices on the same network can be found [here](RTL_setups.md).
3. Config tweaks for running RTL server and LND on separate devices on the same network can be found [here](./docs/RTL_setups.md).
4. Any Other setup: **Please be advised, if you are accessing your node remotely via RTL, its critical to encrypt the communication via use of https. You can use solutions like nginx and letsencrypt or TOR to setup secure access for RTL.**
- Sample SSL setup guide can be found [here](RTL_SSL_setup.md)
- (For advanced users) A sample SSL guide to serve remote access over an encrypted Tor connection can be found [here](RTL_TOR_setup.md)
- Sample SSL setup guide can be found [here](./docs/RTL_SSL_setup.md)
- (For advanced users) A sample SSL guide to serve remote access over an encrypted Tor connection can be found [here](./docs/RTL_TOR_setup.md)
### <a name="trouble"></a>Troubleshooting
In case you are running into issues with the application or if you have feedback, feel free to open issues on our github repo.

@ -1,8 +1,9 @@
RTL allows the user to configure and control specific application parameters for app customization and integration.
The parameters can be configured via RTL-Config.json file or through environment variables defined at the OS level. Required
parameters have `default` values for initial setup and can be updated after RTL server initial start.
#### RTL-Config.json
RTL allows the user to configure and control specific application parameters for app customization and integration.<br />
The parameters can be configured via RTL-Config.json file or through environment variables defined at the OS level. Required <br />
parameters have `default` values for initial setup and can be updated after RTL server initial start.<br />
<br />
### RTL-Config.json<br />
```
{
"multiPass": "<The password in plain text, default 'password', Required>",
"port": "<port number for the rtl node server, default '3000', Required>",
@ -41,24 +42,28 @@ parameters have `default` values for initial setup and can be updated after RTL
}
]
}
#### Environment variables
;The environment variable can also be used for all of the above configurations except the UI settings.
;If the environment variables are set, it will take precedence over the parameters in the RTL-Config.json file.
PORT (port number for the rtl node server, default 3000, Required)
HOST (host for the rtl node server, default localhost, Optional)
LN_IMPLEMENTATION (LND/CLT/ECL. Default 'LND', Required)
LN_SERVER_URL (LN server URL for LNP REST APIs, default https://localhost:8080) (Required)
SWAP_SERVER_URL (Swap server URL for REST APIs, default http://localhost:8081) (Optional)
BOLTZ_SERVER_URL (Boltz server URL for REST APIs, default http://localhost:9003) (Optional)
CONFIG_PATH (Full path of the LNP .conf file including the file name) (Optional for LND & CLT, Mandatory for ECL if LN_API_PASSWORD is undefined)
MACAROON_PATH (Path for the folder containing 'admin.macaroon' (LND)/'access.macaroon' (CLT) file, Required for LND & CLT)
SWAP_MACAROON_PATH (Path for the folder containing Loop's 'loop.macaroon', optional)
BOLTZ_MACAROON_PATH (Path for the folder containing Boltz's 'admin.macaroon', optional)
RTL_SSO (1 - single sign on via an external cookie, 0 - stand alone RTL authentication, Optional)
RTL_COOKIE_PATH (Full path of the cookie file including the file name, Required if RTL_SSO=1 else Optional)
LOGOUT_REDIRECT_LINK (URL to re-direct to after logout/timeout from RTL, Required if RTL_SSO=1 else Optional)
RTL_CONFIG_PATH (Path for the folder containing 'RTL-Config.json' file, Required)
BITCOIND_CONFIG_PATH (Full path of the bitcoind.conf file including the file name, Optional)
CHANNEL_BACKUP_PATH (Folder location for saving the channel backup files, valid for LND implementation only, Required if ln implementation=LND else Optional)
LN_API_PASSWORD (Password for Eclair implementation if the eclair.conf path is not available, Required if ln implementation=ECL && config path is undefined)
```
<br />
### Environment variables<br />
The environment variable can also be used for all of the above configurations except the UI settings.<br />
If the environment variables are set, it will take precedence over the parameters in the RTL-Config.json file.<br />
<br />
PORT (port number for the rtl node server, default 3000, Required)<br />
HOST (host for the rtl node server, default localhost, Optional)<br />
APP_PASSWORD (Plaintext password to be provided by the parent container, NOT suggested for standalone RTL applications, to be used by Umbrel) (Optional)<br />
LN_IMPLEMENTATION (LND/CLT/ECL. Default 'LND', Required)<br />
LN_SERVER_URL (LN server URL for LNP REST APIs, default https://localhost:8080) (Required)<br />
SWAP_SERVER_URL (Swap server URL for REST APIs, default http://localhost:8081) (Optional)<br />
BOLTZ_SERVER_URL (Boltz server URL for REST APIs, default http://localhost:9003) (Optional)<br />
CONFIG_PATH (Full path of the LNP .conf file including the file name) (Optional for LND & CLT, Mandatory for ECL if LN_API_PASSWORD is undefined)<br />
MACAROON_PATH (Path for the folder containing 'admin.macaroon' (LND)/'access.macaroon' (CLT) file, Required for LND & CLT)<br />
SWAP_MACAROON_PATH (Path for the folder containing Loop's 'loop.macaroon', optional)<br />
BOLTZ_MACAROON_PATH (Path for the folder containing Boltz's 'admin.macaroon', optional)<br />
RTL_SSO (1 - single sign on via an external cookie, 0 - stand alone RTL authentication, Optional)<br />
RTL_COOKIE_PATH (Full path of the cookie file including the file name, Required if RTL_SSO=1 else Optional)<br />
LOGOUT_REDIRECT_LINK (URL to re-direct to after logout/timeout from RTL, Required if RTL_SSO=1 else Optional)<br />
RTL_CONFIG_PATH (Path for the folder containing 'RTL-Config.json' file, Required)<br />
BITCOIND_CONFIG_PATH (Full path of the bitcoind.conf file including the file name, Optional)<br />
CHANNEL_BACKUP_PATH (Folder location for saving the channel backup files, valid for LND implementation only, Required if ln implementation=LND else Optional)<br />
ENABLE_OFFERS (Boolean flag to enable the offers feature on Clighning, default false, optional)<br />
LN_API_PASSWORD (Password for Eclair implementation if the eclair.conf path is not available, Required if ln implementation=ECL && config path is undefined)<br />

@ -1,4 +1,4 @@
[Intro](../README.md) -- **Application Features** -- [Road Map](Roadmap.md) -- [Application Configurations](Application_configurations)
[Intro](../README.md) -- **Application Features** -- [Road Map](Roadmap.md) -- [Application Configurations](Application_configurations.md)
## RTL - Feature List

@ -1,4 +1,4 @@
![](../screenshots/RTL-CLT-Dashboard.png)
![](./screenshots/RTL-CLT-Dashboard.png)
## RTL C-lightning setup
@ -21,7 +21,7 @@ Follow the below steps to install and setup RTL to run on C-Lightning.
4. Copy the `access.macaroon` file from `cl-rest` to the device, on which RTL will be installed
### <a name="arch"></a>Architecture
![](../screenshots/RTL-CLT-Arch-2.png)
![](./screenshots/RTL-CLT-Arch-2.png)
### <a name="install"></a>Installation:
To download a specific RTL version follow the instructions on the [release page](https://github.com/Ride-The-Lightning/RTL/releases)
@ -32,7 +32,10 @@ To download from master (*not recommended*):
```
$ git clone https://github.com/Ride-The-Lightning/RTL.git
$ cd RTL
$ npm install --only=prod
$ npm install
$ npm run buildfrontend
$ npm run buildbackend
$ npm prune --production
```
#### Or: Update existing build
@ -41,7 +44,10 @@ $ cd RTL
$ git reset --hard HEAD
$ git clean -f -d
$ git pull
$ npm install --only=prod
$ npm install
$ npm run buildfrontend
$ npm run buildbackend
$ npm prune --production
```
### <a name="prep"></a>Prep for Execution
RTL requires its own config file `RTL-Config.json`, to start the server and provide user authentication on the app.

@ -47,22 +47,23 @@ Contributions via code is the most sought after contribution and something we en
* Sometimes after installation, user receives a message from npm to fix dependency vulnerability by running `npm audit fix`. Please do not follow this step as it can break some of the working RTL code on your machine. We audit and fix these vulnerabilities as soon as possible at our end.
##### Node Server for Development
* To run RTL node server in development mode, go to workspace/RTL and excute `npm run server` in the command window. This will run the script named `server` defined in package.json. This script sets the node environment as development and starts the server from rtl.js. Nodemon restarts the node application when file changes in the directory are detected.
* The RTL server code has been written in typescript and `npm run watchserver` script can be used to compile and generate their javascript equivalents. Keep the script running to watch for realtime changes and compilation. `watchserver` and `buildserver` scripts get the configuration options from tsconfig, read .ts files from the `./server` folder and save the compiled .js and .map files in `./backend` folder.
* To run RTL node server in development mode, open another command window, go to workspace/RTL and excute `npm run server`. This will run the script named `server` defined in package.json. This script sets the node environment as development and starts the server from rtl.js. Nodemon restarts the node application when file changes in the directory are detected.
* This `server` script has been written for windows machine. Please update the script to set the `NODE_ENV=development` according to your machine's OS.
* To check all available scripts for the project, explore the `scripts` section of package.json.
![](../screenshots/node-server-dev.jpg)
![](./screenshots/node-server-dev.jpg)
##### Angular Server for Development
* The last step starts the node server but it cannot detect and update the code written in Angular. We run the angular development server separately while working on the frontend of the project and package the final build once the development is finished.
* To run the angular development server, go to workspace/RTL and run `npm run start`. It will start the angular server at default '4200' port and serve the application on localhost:4200.
![](../screenshots/angular-server-dev.jpg)
![](../screenshots/localhost-ui-dev.jpg)
![](./screenshots/angular-server-dev.jpg)
![](./screenshots/localhost-ui-dev.jpg)
##### Package Angular Build
* If the change/update were only made for the backend, you can directly move to the next step.
* In case the code was updated for the frontend (in the src folder), the Angular application code needs to be compiled into the output directory named `angular` at workspace/RTL. It can be done by running `npm run build` command in the RTL root.
* Please make sure to remove all linting and other errors thrown by the build command before moving to the next step.
![](../screenshots/angular-build.jpg)
![](./screenshots/angular-build.jpg)
##### Create a Pull Request
* Create a new branch on the github to push your updated code.

@ -1,4 +1,4 @@
![](../screenshots/RTL-ECL-Dashboard.png)
![](./screenshots/RTL-ECL-Dashboard.png)
## RTL Eclair setup
@ -28,7 +28,10 @@ To download from master (*not recommended*) follow the below instructions:
```
$ git clone https://github.com/Ride-The-Lightning/RTL.git
$ cd RTL
$ npm install --only=prod
$ npm install
$ npm run buildfrontend
$ npm run buildbackend
$ npm prune --production
```
#### Or: Update existing build
```
@ -36,7 +39,10 @@ $ cd RTL
$ git reset --hard HEAD
$ git clean -f -d
$ git pull
$ npm install --only=prod
$ npm install
$ npm run buildfrontend
$ npm run buildbackend
$ npm prune --production
```
### <a name="prep"></a>Prep for Execution
RTL requires its own config file `RTL-Config.json`, to start the server and provide user authentication on the app.

@ -1,4 +1,4 @@
[Intro](../README.md) -- [Application Features](Application_features.md) -- [Road Map](Roadmap.md) -- **LND API Coverage** -- [Application Configurations](Application_configurations)
[Intro](../README.md) -- [Application Features](Application_features.md) -- [Road Map](Roadmap.md) -- **LND API Coverage** -- [Application Configurations](Application_configurations.md)
- [x] GenSeed
- [x] InitWallet

@ -1,4 +1,4 @@
[Intro](../README.md) -- [Application Features](Application_features.md) -- **Road Map** -- [Application Configurations](Application_configurations)
[Intro](../README.md) -- [Application Features](Application_features.md) -- **Road Map** -- [Application Configurations](Application_configurations.md)
# Product Roadmap for RTL Application

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Before

Width:  |  Height:  |  Size: 297 KiB

After

Width:  |  Height:  |  Size: 297 KiB

Before

Width:  |  Height:  |  Size: 338 KiB

After

Width:  |  Height:  |  Size: 338 KiB

Before

Width:  |  Height:  |  Size: 324 KiB

After

Width:  |  Height:  |  Size: 324 KiB

Before

Width:  |  Height:  |  Size: 280 KiB

After

Width:  |  Height:  |  Size: 280 KiB

Before

Width:  |  Height:  |  Size: 312 KiB

After

Width:  |  Height:  |  Size: 312 KiB

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 140 KiB

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 142 KiB

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 128 KiB

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 142 KiB

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Before

Width:  |  Height:  |  Size: 222 KiB

After

Width:  |  Height:  |  Size: 222 KiB

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 156 KiB

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 146 KiB

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 77 KiB

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

@ -0,0 +1,86 @@
name: Lint & Test
on:
push:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
prepare:
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: 16.x
- name: Cache node_modules
uses: actions/cache@v2
id: cache-npm-packages
with:
path: node_modules
key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }}
- name: Install NPM dependencies
if: steps.cache-npm-packages.outputs.cache-hit != 'true'
run: npm ci
lint:
name: Lint
runs-on: ubuntu-latest
needs: prepare
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: 16.x
- name: Cache node_modules
uses: actions/cache@v2
id: cache-npm-packages
with:
path: node_modules
key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }}
- name: Install NPM dependencies
if: steps.cache-npm-packages.outputs.cache-hit != 'true'
run: npm ci
- name: Lint Scripts
run: npm run lint
test:
name: Test
runs-on: ubuntu-latest
needs: prepare
env:
CI: true
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: 16.x
- name: Cache node_modules
uses: actions/cache@v2
id: cache-npm-packages
with:
path: node_modules
key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }}
- name: Install NPM dependencies
if: steps.cache-npm-packages.outputs.cache-hit != 'true'
run: npm ci
- name: Run tests
run: npm run test

@ -0,0 +1,87 @@
name: Artifact
on:
create:
tags: [ 'v*' ]
push:
branches: [ master, 'Release-*' ]
release:
types: [released]
# Triggers the workflow only when merging pull request to the branches.
pull_request:
types: [closed]
branches: [ master, 'Release-*' ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: 16.x
- name: Cache node_modules
uses: actions/cache@v2
id: cache-npm-packages
with:
path: node_modules
key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }}
- name: Install NPM dependencies
if: steps.cache-npm-packages.outputs.cache-hit != 'true'
run: npm ci
- name: Cache build frontend
uses: actions/cache@v2
id: cache-build-frontend
with:
path: frontend
key: ${{ runner.os }}-frontend-${{ github.sha }}
- name: Run build production application
run: npm run buildfrontend
- name: Cache build backend
uses: actions/cache@v2
id: cache-build-backend
with:
path: backend
key: ${{ runner.os }}-backend-${{ github.sha }}
- name: Run build backend server
run: npm run buildbackend
deploy:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Cache build frontend
uses: actions/cache@v2
id: cache-build-frontend
with:
path: frontend
key: ${{ runner.os }}-frontend-${{ github.sha }}
- name: Cache build backend
uses: actions/cache@v2
id: cache-build-backend
with:
path: backend
key: ${{ runner.os }}-backend-${{ github.sha }}
- name: Compress files
run: tar -czf /tmp/rtlbuild.tar.gz frontend backend rtl.js package.json package-lock.json
- uses: actions/upload-artifact@v2
with:
name: rtlbuild${{ github.event.release.tag_name }}
path: /tmp/rtlbuild.tar.gz

15
.gitignore vendored

@ -1,8 +1,10 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.
# compiled output
/frontend
/dist
/tmp
/out-tsc
/backend
# dependencies
/node_modules
@ -27,22 +29,28 @@
!.vscode/extensions.json
# misc
/.angular/cache
/.sass-cache
/connect.lock
/coverage
/db
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings
channels-backup
logs
cookies
# System Files
.DS_Store
Thumbs.db
/database/*
/logs/*
/cookies/*
/backup/*
/database/rtl-db.sqlite
cookies
.env
RTL-Config.json
@ -53,3 +61,8 @@ RTL-1.conf
RTL-Multi-Node-Conf-1.json
RTL-Config-for-BTC-Testing.json
ECLDummyData.log
_config.yml
.vscode/launch.json
RTL-Config-Docker.json
dockerfiles/RTL-Config.json
dockerfiles/.env

@ -1 +0,0 @@
theme: jekyll-theme-hacker

@ -21,7 +21,7 @@
"builder": "@angular-devkit/build-angular:browser",
"options": {
"baseHref": "/rtl/",
"outputPath": "angular",
"outputPath": "frontend",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
@ -29,7 +29,10 @@
"allowedCommonJsDependencies": [
"sha256",
"qrcode",
"otplib"
"otplib",
"pdfmake/build/pdfmake",
"pdfmake/build/vfs_fonts",
"clone-deep"
],
"assets": [
"src/assets"
@ -68,8 +71,8 @@
},
{
"type": "anyComponentStyle",
"maximumWarning": "5mb",
"maximumError": "10mb"
"maximumWarning": "20mb",
"maximumError": "50mb"
}
]
}
@ -98,7 +101,7 @@
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "src/tsconfig.spec.json",
"karmaConfig": "src/karma.conf.js",
"karmaConfig": "src/karma.conf.cjs",
"assets": [
"src/assets"
],

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="610px" height="524px" viewBox="0 0 610 524" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>RTL-Logo-Single</title>
<desc>Created with Sketch.</desc>
<defs>
<polygon id="path-1" points="0.451852397 0.2573 52.6803 0.2573 52.6803 52 0.451852397 52"></polygon>
</defs>
<g id="RTL-Logo-Single" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="BY_-_RTL_logo_wht" transform="translate(58.000000, 54.000000)">
<g id="Group-3" transform="translate(0.000000, 0.737000)" fill="#FFFFFE">
<path d="M360.6201,52.8608 C362.5721,57.4638 363.3541,61.1008 363.2471,63.1018 C355.6871,58.5468 344.3161,54.6748 338.1131,53.5648 C334.0751,52.8408 347.2931,49.6338 360.6201,52.8608 M371.6051,222.1978 C373.9431,221.7028 376.2931,221.2298 378.6451,220.7688 C381.1041,220.2858 383.5691,219.8228 386.0431,219.3858 C384.0591,218.1358 382.0681,216.8978 380.0641,215.6788 C354.6091,200.1908 327.4751,187.0398 300.6651,174.3118 C283.7451,166.2788 266.5131,158.2938 248.9661,151.0968 C264.2721,130.9078 283.8701,113.7738 304.8171,99.0968 C304.8351,99.0848 304.9201,99.0258 305.0521,98.9328 C309.6371,105.1898 315.4331,109.4478 318.3391,111.0478 C324.0201,114.1778 331.1751,117.1028 337.7531,117.9968 C350.6891,119.7558 361.3701,119.4848 373.1871,117.4478 C374.2521,117.2648 375.3251,117.1348 376.3931,116.9568 C383.9711,115.6898 388.8201,115.4978 393.2591,115.4148 C399.1381,115.3048 402.0501,116.5498 402.7421,116.7298 C404.8421,117.2728 406.6271,118.1718 407.6191,119.3778 C408.7711,120.8458 410.0021,122.2308 411.3211,123.4988 C415.2771,127.4358 419.2051,129.6158 424.9041,130.2408 C432.2391,131.0448 437.4311,128.1758 441.1021,123.4128 C442.8361,121.1638 442.0011,117.6318 441.8111,116.9388 C440.8481,113.3958 438.6251,108.2418 437.0161,103.4438 C436.5991,102.2038 434.5781,98.3918 432.1461,95.8048 C431.3431,94.9488 430.5351,94.0948 429.7281,93.2418 C425.9511,89.2468 422.1441,85.2818 418.3701,81.2898 C403.3111,65.3718 386.9861,50.7158 370.1561,36.7028 C368.4121,35.2508 366.6651,33.7948 364.9151,32.3418 C363.6461,31.2868 362.3721,30.2378 361.1001,29.1868 C360.4531,28.6528 359.8071,28.1198 359.1581,27.5868 C357.7891,26.4608 356.4161,25.3428 355.0401,24.2258 C354.4971,23.7858 353.9521,23.3488 353.4081,22.9098 C352.5511,22.2198 350.5951,20.5728 348.9481,19.2538 C354.4071,13.8118 358.8121,10.4238 366.6311,5.3008 C367.7521,4.5668 373.7921,1.3448 373.5791,0.5268 C373.4511,0.0328 363.5341,0.1448 352.1711,1.6088 C348.1791,2.1228 325.8041,5.4268 310.4411,8.7748 C294.0871,12.3378 276.8181,17.3188 260.9121,22.3258 C214.9671,36.7898 171.0961,56.3918 130.9221,83.0318 C107.8341,98.3418 86.2221,115.2368 65.3621,133.4398 C55.6411,141.9208 45.9791,150.5378 36.5451,159.3928 C35.0671,160.7798 33.6011,162.1788 32.1351,163.5788 C34.1441,163.9548 36.1521,164.3478 38.1561,164.7598 C54.7691,168.1718 71.2001,172.7318 87.1751,177.2978 C106.7131,182.8818 126.4791,188.9018 145.5921,196.2918 C134.7011,206.6528 124.0761,217.2688 113.9611,228.5028 C94.9141,249.6538 77.1581,271.9988 60.5891,295.1368 C38.9991,325.2848 20.5681,357.7988 4.5021,391.3058 C2.9801,394.4758 1.4761,397.6528 0.0001,400.8388 C2.9721,398.4598 5.9621,396.1018 8.9741,393.7648 C34.9841,373.5938 62.4081,354.9428 89.7891,336.9238 C128.3171,311.5688 169.6651,290.6218 212.5711,273.7668 C264.2991,253.4468 317.1251,233.7338 371.6051,222.1978" id="Fill-1"></path>
</g>
<g id="Group-24" transform="translate(172.000000, 352.737000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<g id="Clip-23"></g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="610px" height="524px" viewBox="0 0 610 524" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<title>RTL-Logo-Single</title>
<desc>Created with Sketch.</desc>
<defs>
<polygon id="path-1" points="0.451852397 0.2573 52.6803 0.2573 52.6803 52 0.451852397 52"></polygon>
</defs>
<g id="RTL-Logo-Single" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="BY_-_RTL_logo_wht" transform="translate(58.000000, 54.000000)">
<g id="Group-3" transform="translate(0.000000, 0.737000)" fill="#000001">
<path d="M360.6201,52.8608 C362.5721,57.4638 363.3541,61.1008 363.2471,63.1018 C355.6871,58.5468 344.3161,54.6748 338.1131,53.5648 C334.0751,52.8408 347.2931,49.6338 360.6201,52.8608 M371.6051,222.1978 C373.9431,221.7028 376.2931,221.2298 378.6451,220.7688 C381.1041,220.2858 383.5691,219.8228 386.0431,219.3858 C384.0591,218.1358 382.0681,216.8978 380.0641,215.6788 C354.6091,200.1908 327.4751,187.0398 300.6651,174.3118 C283.7451,166.2788 266.5131,158.2938 248.9661,151.0968 C264.2721,130.9078 283.8701,113.7738 304.8171,99.0968 C304.8351,99.0848 304.9201,99.0258 305.0521,98.9328 C309.6371,105.1898 315.4331,109.4478 318.3391,111.0478 C324.0201,114.1778 331.1751,117.1028 337.7531,117.9968 C350.6891,119.7558 361.3701,119.4848 373.1871,117.4478 C374.2521,117.2648 375.3251,117.1348 376.3931,116.9568 C383.9711,115.6898 388.8201,115.4978 393.2591,115.4148 C399.1381,115.3048 402.0501,116.5498 402.7421,116.7298 C404.8421,117.2728 406.6271,118.1718 407.6191,119.3778 C408.7711,120.8458 410.0021,122.2308 411.3211,123.4988 C415.2771,127.4358 419.2051,129.6158 424.9041,130.2408 C432.2391,131.0448 437.4311,128.1758 441.1021,123.4128 C442.8361,121.1638 442.0011,117.6318 441.8111,116.9388 C440.8481,113.3958 438.6251,108.2418 437.0161,103.4438 C436.5991,102.2038 434.5781,98.3918 432.1461,95.8048 C431.3431,94.9488 430.5351,94.0948 429.7281,93.2418 C425.9511,89.2468 422.1441,85.2818 418.3701,81.2898 C403.3111,65.3718 386.9861,50.7158 370.1561,36.7028 C368.4121,35.2508 366.6651,33.7948 364.9151,32.3418 C363.6461,31.2868 362.3721,30.2378 361.1001,29.1868 C360.4531,28.6528 359.8071,28.1198 359.1581,27.5868 C357.7891,26.4608 356.4161,25.3428 355.0401,24.2258 C354.4971,23.7858 353.9521,23.3488 353.4081,22.9098 C352.5511,22.2198 350.5951,20.5728 348.9481,19.2538 C354.4071,13.8118 358.8121,10.4238 366.6311,5.3008 C367.7521,4.5668 373.7921,1.3448 373.5791,0.5268 C373.4511,0.0328 363.5341,0.1448 352.1711,1.6088 C348.1791,2.1228 325.8041,5.4268 310.4411,8.7748 C294.0871,12.3378 276.8181,17.3188 260.9121,22.3258 C214.9671,36.7898 171.0961,56.3918 130.9221,83.0318 C107.8341,98.3418 86.2221,115.2368 65.3621,133.4398 C55.6411,141.9208 45.9791,150.5378 36.5451,159.3928 C35.0671,160.7798 33.6011,162.1788 32.1351,163.5788 C34.1441,163.9548 36.1521,164.3478 38.1561,164.7598 C54.7691,168.1718 71.2001,172.7318 87.1751,177.2978 C106.7131,182.8818 126.4791,188.9018 145.5921,196.2918 C134.7011,206.6528 124.0761,217.2688 113.9611,228.5028 C94.9141,249.6538 77.1581,271.9988 60.5891,295.1368 C38.9991,325.2848 20.5681,357.7988 4.5021,391.3058 C2.9801,394.4758 1.4761,397.6528 0.0001,400.8388 C2.9721,398.4598 5.9621,396.1018 8.9741,393.7648 C34.9841,373.5938 62.4081,354.9428 89.7891,336.9238 C128.3171,311.5688 169.6651,290.6218 212.5711,273.7668 C264.2991,253.4468 317.1251,233.7338 371.6051,222.1978" id="Fill-1"></path>
</g>
<g id="Group-24" transform="translate(172.000000, 352.737000)">
<mask id="mask-2" fill="#000000">
<use xlink:href="#path-1"></use>
</mask>
<g id="Clip-23"></g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

@ -1,39 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="496.56pt" height="403.737pt" viewBox="0 0 496.56 403.737" version="1.1">
<defs>
<clipPath id="clip1">
<path d="M 461 290 L 496.558594 290 L 496.558594 336 L 461 336 Z M 461 290 "/>
</clipPath>
<clipPath id="clip2">
<path d="M 172 351 L 225 351 L 225 403.738281 L 172 403.738281 Z M 172 351 "/>
</clipPath>
<clipPath id="clip3">
<path d="M 438 351 L 491 351 L 491 403.738281 L 438 403.738281 Z M 438 351 "/>
</clipPath>
</defs>
<g id="surface1">
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 360.621094 52.597656 C 362.570313 57.199219 363.355469 60.835938 363.246094 62.839844 C 355.6875 58.285156 344.316406 54.410156 338.113281 53.300781 C 334.074219 52.578125 347.292969 49.371094 360.621094 52.597656 M 371.605469 221.933594 C 373.941406 221.441406 376.292969 220.96875 378.644531 220.503906 C 381.105469 220.023438 383.570313 219.558594 386.042969 219.121094 C 384.058594 217.871094 382.066406 216.636719 380.0625 215.414063 C 354.609375 199.929688 327.476563 186.777344 300.664063 174.046875 C 283.746094 166.015625 266.511719 158.03125 248.964844 150.832031 C 264.273438 130.644531 283.871094 113.511719 304.816406 98.832031 C 304.835938 98.820313 304.921875 98.761719 305.050781 98.667969 C 309.636719 104.925781 315.433594 109.183594 318.339844 110.785156 C 324.019531 113.914063 331.175781 116.839844 337.753906 117.734375 C 350.6875 119.492188 361.371094 119.222656 373.1875 117.183594 C 374.253906 117 375.324219 116.871094 376.394531 116.695313 C 383.972656 115.425781 388.820313 115.234375 393.257813 115.152344 C 399.136719 115.042969 402.050781 116.285156 402.742188 116.46875 C 404.84375 117.011719 406.628906 117.910156 407.617188 119.113281 C 408.769531 120.582031 410.003906 121.96875 411.320313 123.234375 C 415.277344 127.171875 419.207031 129.351563 424.902344 129.976563 C 432.238281 130.78125 437.429688 127.914063 441.101563 123.148438 C 442.835938 120.902344 442 117.367188 441.8125 116.675781 C 440.847656 113.132813 438.625 107.980469 437.015625 103.179688 C 436.597656 101.941406 434.578125 98.128906 432.144531 95.542969 C 431.34375 94.6875 430.535156 93.832031 429.726563 92.980469 C 425.949219 88.984375 422.144531 85.019531 418.371094 81.027344 C 403.3125 65.109375 386.984375 50.453125 370.15625 36.441406 C 368.410156 34.988281 366.664063 33.53125 364.914063 32.078125 C 363.644531 31.023438 362.371094 29.976563 361.101563 28.921875 C 360.453125 28.390625 359.808594 27.855469 359.15625 27.324219 C 357.789063 26.199219 356.417969 25.078125 355.039063 23.960938 C 354.496094 23.523438 353.953125 23.085938 353.40625 22.648438 C 352.550781 21.957031 350.59375 20.308594 348.949219 18.992188 C 354.40625 13.546875 358.8125 10.160156 366.632813 5.039063 C 367.753906 4.304688 373.792969 1.082031 373.578125 0.265625 C 373.449219 -0.230469 363.535156 -0.117188 352.171875 1.347656 C 348.179688 1.859375 325.804688 5.164063 310.441406 8.511719 C 294.085938 12.074219 276.816406 17.054688 260.910156 22.0625 C 214.96875 36.527344 171.097656 56.128906 130.921875 82.769531 C 107.835938 98.078125 86.222656 114.972656 65.363281 133.175781 C 55.640625 141.65625 45.980469 150.273438 36.546875 159.128906 C 35.066406 160.515625 33.601563 161.914063 32.136719 163.316406 C 34.144531 163.691406 36.152344 164.085938 38.15625 164.496094 C 54.769531 167.910156 71.199219 172.46875 87.175781 177.035156 C 106.714844 182.617188 126.480469 188.640625 145.59375 196.027344 C 134.699219 206.390625 124.074219 217.003906 113.960938 228.238281 C 94.914063 249.390625 77.15625 271.734375 60.589844 294.875 C 39 325.023438 20.566406 357.535156 4.503906 391.042969 C 2.980469 394.210938 1.476563 397.390625 0 400.574219 C 2.972656 398.195313 5.960938 395.839844 8.972656 393.5 C 34.984375 373.332031 62.40625 354.679688 89.789063 336.660156 C 128.316406 311.304688 169.664063 290.359375 212.570313 273.503906 C 264.300781 253.183594 317.125 233.472656 371.605469 221.933594 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 257.601563 306.0625 C 257.03125 309.375 254.542969 311.796875 251.488281 311.796875 L 243.84375 311.796875 L 245.882813 300.332031 L 252.890625 300.332031 C 256.265625 300.332031 258.175781 302.75 257.601563 306.0625 M 267.792969 306.703125 C 268.558594 302.496094 267.601563 298.800781 264.925781 295.621094 C 262.25 292.371094 258.8125 290.777344 254.542969 290.777344 L 237.347656 290.777344 L 229.515625 335.359375 L 239.707031 335.359375 L 242.253906 320.710938 L 247.792969 320.710938 L 253.589844 335.359375 L 263.910156 335.359375 L 257.410156 319.3125 C 262.824219 317.210938 266.710938 312.625 267.792969 306.703125 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 280.019531 335.359375 L 287.851563 290.777344 L 277.664063 290.777344 L 269.828125 335.359375 Z M 280.019531 335.359375 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 322.4375 312.75 C 321.738281 316.636719 320.082031 319.691406 317.40625 322.050781 C 314.730469 324.40625 311.480469 325.550781 307.722656 325.550781 L 300.71875 325.550781 L 305.113281 300.585938 L 312.753906 300.585938 C 319.886719 300.585938 323.773438 305.171875 322.4375 312.75 M 314.476563 290.777344 L 296.640625 290.777344 L 288.808594 335.359375 L 306.640625 335.359375 C 313.074219 335.359375 318.679688 333.324219 323.457031 329.3125 C 328.234375 325.234375 331.164063 320.011719 332.246094 313.707031 C 333.328125 307.402344 332.117188 302.050781 328.550781 297.527344 C 325.046875 293.007813 320.335938 290.777344 314.476563 290.777344 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 348.609375 317.589844 L 364.535156 317.589844 L 366.253906 308.039063 L 350.265625 308.039063 L 351.605469 300.585938 L 369.121094 300.585938 L 370.839844 290.777344 L 343.132813 290.777344 L 335.300781 335.363281 L 363.324219 335.363281 L 365.042969 325.550781 L 347.210938 325.550781 Z M 348.609375 317.589844 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 400.773438 335.359375 L 406.886719 300.585938 L 418.351563 300.585938 L 420.070313 290.777344 L 386.953125 290.777344 L 385.234375 300.585938 L 396.695313 300.585938 L 390.582031 335.359375 Z M 400.773438 335.359375 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 435.863281 290.777344 L 425.671875 290.777344 L 417.839844 335.359375 L 428.03125 335.359375 L 431.148438 317.65625 L 445.164063 317.65625 L 442.042969 335.359375 L 452.230469 335.359375 L 460.066406 290.777344 L 449.875 290.777344 L 446.882813 307.847656 L 432.871094 307.847656 Z M 435.863281 290.777344 "/>
<g clip-path="url(#clip1)" clip-rule="nonzero">
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 494.839844 300.585938 L 496.558594 290.777344 L 468.855469 290.777344 L 461.019531 335.359375 L 489.042969 335.359375 L 490.765625 325.550781 L 472.929688 325.550781 L 474.332031 317.589844 L 490.253906 317.589844 L 491.972656 308.039063 L 475.988281 308.039063 L 477.324219 300.585938 Z M 494.839844 300.585938 "/>
</g>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 133.351563 352.988281 L 121.980469 352.988281 L 115.15625 391.796875 L 113.238281 402.742188 L 142.378906 402.742188 L 144.296875 391.796875 L 126.527344 391.796875 Z M 133.351563 352.988281 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 148.984375 402.742188 L 160.355469 402.742188 L 169.101563 352.988281 L 157.726563 352.988281 Z M 148.984375 402.742188 "/>
<g clip-path="url(#clip2)" clip-rule="nonzero">
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 198.027344 384.972656 L 210.820313 384.972656 C 208.191406 390.089844 203.355469 392.648438 196.25 392.648438 C 191.84375 392.648438 188.503906 391.296875 186.300781 388.597656 C 184.097656 385.898438 183.457031 382.34375 184.238281 377.867188 C 185.019531 373.386719 186.9375 369.832031 189.996094 367.132813 C 193.125 364.433594 196.820313 363.082031 201.15625 363.082031 C 206.628906 363.082031 210.464844 365.214844 212.742188 369.410156 L 223.1875 363.933594 C 219.492188 356.328125 212.242188 351.996094 202.363281 351.996094 C 194.96875 351.996094 188.503906 354.339844 182.960938 359.101563 C 177.484375 363.863281 174.074219 369.832031 172.867188 377.15625 C 171.660156 384.546875 173.082031 390.800781 177.273438 395.992188 C 181.464844 401.179688 187.4375 403.738281 195.113281 403.738281 C 202.503906 403.738281 208.832031 401.605469 214.089844 397.269531 C 219.421875 392.933594 222.691406 386.890625 223.96875 379.285156 L 224.679688 375.023438 L 199.734375 375.023438 Z M 198.027344 384.972656 "/>
</g>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 260.285156 372.035156 L 244.648438 372.035156 L 247.992188 352.988281 L 236.617188 352.988281 L 227.878906 402.742188 L 239.25 402.742188 L 242.730469 382.984375 L 258.367188 382.984375 L 254.886719 402.742188 L 266.257813 402.742188 L 275 352.988281 L 263.628906 352.988281 Z M 260.285156 372.035156 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 318.566406 352.988281 L 281.605469 352.988281 L 279.6875 363.933594 L 292.480469 363.933594 L 285.660156 402.742188 L 297.03125 402.742188 L 303.851563 363.933594 L 316.648438 363.933594 Z M 318.566406 352.988281 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 347.988281 380.921875 L 333.703125 352.988281 L 325.175781 352.988281 L 316.429688 402.742188 L 327.800781 402.742188 L 332.777344 374.808594 L 346.992188 402.742188 L 355.523438 402.742188 L 364.265625 352.988281 L 352.890625 352.988281 Z M 347.988281 380.921875 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 365.683594 402.742188 L 377.054688 402.742188 L 385.800781 352.988281 L 374.425781 352.988281 Z M 365.683594 402.742188 "/>
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 418.777344 380.921875 L 404.492188 352.988281 L 395.960938 352.988281 L 387.21875 402.742188 L 398.589844 402.742188 L 403.566406 374.808594 L 417.78125 402.742188 L 426.308594 402.742188 L 435.050781 352.988281 L 423.679688 352.988281 Z M 418.777344 380.921875 "/>
<g clip-path="url(#clip3)" clip-rule="nonzero">
<path style=" stroke:none;fill-rule:nonzero;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 463.980469 384.972656 L 476.773438 384.972656 C 474.144531 390.089844 469.308594 392.648438 462.203125 392.648438 C 457.796875 392.648438 454.457031 391.296875 452.25 388.597656 C 450.046875 385.898438 449.410156 382.34375 450.191406 377.867188 C 450.972656 373.386719 452.890625 369.832031 455.949219 367.132813 C 459.074219 364.433594 462.773438 363.082031 467.105469 363.082031 C 472.578125 363.082031 476.417969 365.214844 478.691406 369.410156 L 489.140625 363.933594 C 485.445313 356.328125 478.195313 351.996094 468.316406 351.996094 C 460.921875 351.996094 454.457031 354.339844 448.910156 359.101563 C 443.4375 363.863281 440.027344 369.832031 438.820313 377.15625 C 437.609375 384.546875 439.03125 390.800781 443.226563 395.992188 C 447.417969 401.179688 453.386719 403.738281 461.066406 403.738281 C 468.457031 403.738281 474.785156 401.605469 480.042969 397.269531 C 485.375 392.933594 488.640625 386.890625 489.921875 379.285156 L 490.632813 375.023438 L 465.683594 375.023438 Z M 463.980469 384.972656 "/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/mstile-150x150.png"/>
<TileColor>#da532c</TileColor>
</tile>
</msapplication>
</browserconfig>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1009 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save