Merge branch 'umbrel-works' into artem

This commit is contained in:
Justin (shocknet) 2024-05-18 20:20:36 -04:00 committed by GitHub
commit 6eb77bbd0c
25 changed files with 1036 additions and 1 deletions

4
.dockerignore Normal file
View file

@ -0,0 +1,4 @@
.git
.github
build
node_modules

47
.github/workflows/push.yml vendored Normal file
View file

@ -0,0 +1,47 @@
name: Create and publish a Docker image
on:
push:
branches: ['umbrel-works']
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build-and-push-image:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
attestations: write
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
- name: Build and push Docker image
id: push
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

11
Dockerfile Normal file
View file

@ -0,0 +1,11 @@
FROM node:18
WORKDIR /app
COPY package*.json /app
RUN npm i
COPY . /app
CMD [ "npm", "start" ]

22
Umbrel/docker-compose.yml Normal file
View file

@ -0,0 +1,22 @@
version: "3.7"
services:
app_proxy:
environment:
APP_HOST: lightning-pub
APP_PORT: 1776
server:
image: ghcr.io/shocknet/lightning.pub:umbrel-works
volumes:
- "${APP_DATA_DIR}/data:/data"
- "${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro"
environment:
LN_BACKEND_TYPE: "LND"
LND_ADDRESS: $APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_GRPC_PORT
LND_CERT_PATH: "/lnd/tls.cert"
LND_MACAROON_PATH: "/lnd/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/admin.macaroon"
DATABASE_FILE: "/data/db.sqlite"
METRICS_DATABASE_FILE: "/data/metrics.sqlite"
PORT: 1776
restart: on-failure
stop_grace_period: 1m

36
Umbrel/umbrel-app.yml Normal file
View file

@ -0,0 +1,36 @@
manifestVersion: 1
id: lightning-pub
category: finance
name: Lightning.Pub
version: "1.0.0"
tagline: lightning, nostr, accounts, lnurl, web
description: >-
"Pub" is a Nostr-native account system designed
to make running Lightning infrastructure for your friends/family/customers
easier than previously thought possible.
Being Nostr-native eliminates the complexity of configuring your node like a server by using commodity Nostr relays.
These relays, unlike LNURL proxies, are trustless by nature of Nostr's own encryption spec (NIP44).
Support for optional services are integrated into Pub for operators seeking backward compatibility with legacy LNURLs and Lightning Addresses.
By solving the networking and programability hurdles, Pub provides Lightning with a 3rd Layer that enables node-runners and
Uncle Jims to more easily bring their personal network into Bitcoin's permissionless economy. In doing so, Pub runners
can keep the Lightning Network decentralized, with custodial scaling that is free of fiat rails, large banks,
and other forms of high-time-preference shitcoinery.
developer: shocknet
website: https://shock.network
dependencies:
- lightning
repo: https://github.com/shocknet/Lightning.Pub
support: https://github.com/shocknet/Lightning.Pub/discussions
port: 1776
gallery:
- 1.jpg
- 2.jpg
- 3.jpg
path: ""
defaultUsername: ""
defaultPassword: ""
submitter: shocknet
submission: https://github.com/getumbrel/umbrel/pull/334

View file

@ -1,3 +1,5 @@
import express from 'express';
import path from 'path';
import { ServerOptions } from "../proto/autogenerated/ts/express_server";
import { AdminContext, MetricsContext } from "../proto/autogenerated/ts/types";
import Main from './services/main'

100
static/backup.html Normal file
View file

@ -0,0 +1,100 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title></title>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Montserrat"
/>
<link rel="stylesheet" href="css/styles.css" />
<link rel="stylesheet" href="css/backup.css" />
<!-- HTML Meta Tags -->
<title>Lightning.Pub</title>
<meta name="description" content="Lightning for Everyone" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<header>
<img
src="img/pub_logo.png"
width="38px"
height="auto"
alt="Lightning Pub logo"
/>
<img src="img/LightningPub.png" height="33px" alt="Lightning Pub logo" />
</header>
<main>
<section class="setup-header">
<button class="icon-button back-button" onclick="history.back()">
<img src="img/back.svg" alt="" />
</button>
<h2>Backup</h2>
<p class="header-title">
It looks like this is a
<span style="font-weight: bold">new</span> node, it's important
establish backups.
</p>
</section>
<div class="line"></div>
<section class="setup-content">
<div class="description-box">
<div class="description">
In addition to your seed phrase, you'll need a channel backup to
</div>
<div class="description">
recover funds should your node experience a hardware failure.
</div>
<br />
<div class="description">
It's important always to have the latest version of this backup,
</div>
<div class="description">
fortunately they're small enough to be cached on the Nostr relay.
</div>
</div>
<div class="warning-text">
If you did not choose the developers relay, be sure your relay has
adequate storage policies to hold NIP78 events.
</div>
<div class="checkbox-container">
<div class="checkbox" style="margin-top: 12px">
<input type="checkbox" id="backup" />
<div class="checkbox-shape"></div>
<label for="backup">
Encrypted Backup to Nostr Relay
</label>
</div>
</div>
<button
class="push-button hidden-button"
onclick="location.href='seed.html'"
style="margin-top: 92px;"
id="next-button"
>
Next
</button>
</section>
</main>
<footer>
<div class="footer-text">
<div>By proceeding you acknowledge that this is</div>
<div>bleeding-edge software, and agree to the providers</div>
<div>
<span style="color: #c434e0">terms</span> regarding any services
herein.
</div>
</div>
<div class="line"></div>
<p class="marked">Need Help?</p>
</footer>
<script src="js/backup.js"></script>
</body>
</html>

77
static/connect.html Normal file
View file

@ -0,0 +1,77 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title></title>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Montserrat"
/>
<link rel="stylesheet" href="css/styles.css" />
<!-- HTML Meta Tags -->
<title>Lightning.Pub</title>
<meta name="description" content="Lightning for Everyone" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<header>
<img
src="img/pub_logo.png"
width="38px"
height="auto"
alt="Lightning Pub logo"
/>
<img src="img/LightningPub.png" height="33px" alt="Lightning Pub logo" />
</header>
<main>
<section class="setup-header">
<button class="icon-button back-button" onclick="history.back()">
<img src="img/back.svg" alt="" />
</button>
<h2>Connect</h2>
<p class="header-title">
Who's the Nostr user that owns this node, can recover the backups, and
connect to manage it?
</p>
</section>
<div class="line"></div>
<section class="setup-content">
<div id="qrcode"></div>
<p class="text-gray">
strfry.shock.network <br />npub123abcdefghhhhhhhhhhhhhhh
</p>
<br />
<p class="text-gray">Note: Code contains a one-time pairing secret.</p>
</section>
<button
class="push-button"
style="margin-top: 32px"
>
Next
</button>
</main>
<footer>
<div class="footer-text">
<div>By proceeding you acknowledge that this is</div>
<div>bleeding-edge software, and agree to the providers</div>
<div>
<span style="color: #c434e0">terms</span> regarding any services
herein.
</div>
</div>
<div class="line"></div>
<p class="marked">Need Help?</p>
</footer>
<script src="https://cdn.rawgit.com/davidshimjs/qrcodejs/gh-pages/qrcode.min.js"></script>
<script src="js/script.js"></script>
</body>
</html>

18
static/css/backup.css Normal file
View file

@ -0,0 +1,18 @@
.description {
font-size: 14px;
color: #a3a3a3;
text-decoration: none solid rgb(163, 163, 163);
text-align: center;
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
}
.warning-text {
font-size: 14px;
color: #c434e0;
font-style: italic;
text-decoration: none solid rgb(196, 52, 224);
text-align: center;
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
margin-top: 16px;
}

27
static/css/liquidity.css Normal file
View file

@ -0,0 +1,27 @@
.question-box {
display: inline-block;
position: relative;
top: -8px;
left: -4px;
}
.question-box .question-content {
display: none;
position: absolute;
min-width: 280px;
background-color: var(--background-color);
color: #a3a3a3;
padding: 12px;
border: 2px solid #c423e0;
border-radius: 4px;
font-size: 14px;
transform: translate(-50%, -50%);
padding-top: 28px;
z-index: 200;
}
.question-content .close-button {
position: absolute;
top: 4px;
right: 0;
}

35
static/css/seed.css Normal file
View file

@ -0,0 +1,35 @@
.seed-box-container {
display: grid;
grid-template-columns: auto auto auto auto auto auto;
justify-content: center;
row-gap: 4px;
column-gap: 12px;
}
@media (max-width: 680px) {
.seed-box-container {
grid-template-columns: auto auto auto auto;
}
}
.blur-filter {
filter: blur(5px);
}
.seed-box {
display: flex;
align-items: center;
gap: 4px;
}
.reveal-button {
font-size: 14px;
color: #c434e0;
font-style: italic;
text-decoration: none solid rgb(196, 52, 224);
text-align: center;
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
background-color: transparent;
border: none;
margin-top: 16px;
}

244
static/css/styles.css Normal file
View file

@ -0,0 +1,244 @@
:root {
--background-color: #16191c;
--color: #ffffff;
--color-marked: #ff7700;
--color-linked: #2aabe9;
--gradient: linear-gradient(60deg, #ff7700 0%, #c740c7 100%);
--font-size-h2: 36px;
--font-size-p: 16px;
}
body {
margin-block-start: 15px;
font-family: Montserrat;
background-color: var(--background-color);
color: var(--color);
text-align: center;
overflow: scroll;
}
header {
background-color: var(--background-color);
padding-inline: 2%;
display: flex;
flex-direction: row;
align-items: center;
gap: 1rem;
}
main {
max-width: 500px;
width: 100%;
margin-inline: auto;
}
* {
box-sizing: border-box;
}
@media (min-width: 768px) {
body {
zoom: 1.4;
}
}
@media (min-width: 2000px) {
body {
zoom: 1.6;
}
}
@media screen and (max-width: 425px) {
header > img:nth-child(1) {
width: 30px;
height: auto;
}
header > img:nth-child(2) {
width: auto;
height: 26px;
}
}
input[type="text"] {
background-color: transparent;
padding: 7px 10px;
border: 1px solid #c740c7;
border-radius: 5px;
font-size: 14px;
color: #999999;
box-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
}
.icon-button {
background-color: transparent;
border: none;
}
.push-button {
background-color: transparent;
padding: 10px 55px;
font-size: 20px;
color: var(--color);
text-align: center;
box-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
background: linear-gradient(var(--background-color), var(--background-color))
padding-box,
var(--gradient) border-box;
border-radius: 5px;
border: 2px solid transparent;
}
h2 {
font-size: var(--font-size-h2);
font-weight: 400;
}
p {
font-size: var(--font-size-p);
}
a {
color: var(--color);
text-decoration: none;
}
.text-gray {
color: #a3a3a3;
margin-block-end: 5px;
}
.checkbox {
position: relative;
}
/* Hide the default checkbox */
.checkbox input[type="checkbox"] {
display: none;
}
/* Create a new box */
.checkbox label {
padding-left: 32px;
display: inline-block;
width: 100%;
font-size: 14px;
color: #a3a3a3;
text-decoration: none solid rgb(163, 163, 163);
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
text-align: left;
}
.checkbox .checkbox-shape {
width: 20px;
height: 20px;
background-color: transparent;
border: 1px solid #a3a3a3;
border-radius: 5px;
position: absolute;
top: 50%;
transform: translate(0, -50%);
z-index: -1;
}
/* Display a checkmark when the checkbox is checked */
.checkbox input[type="checkbox"]:checked + .checkbox-shape::before {
content: "✔";
color: #a012c7;
font-size: 20px;
text-align: center;
line-height: 1;
}
.line {
margin-block: 24px;
background: var(--gradient);
width: 100%;
height: 1px;
margin-inline: auto;
}
.marked {
color: var(--color-marked);
}
.linked {
color: var(--color-linked);
}
.setup-footer > p {
line-height: 4px;
}
.setup-header {
position: relative;
}
.setup-header > .back-button {
position: absolute;
top: 0;
left: 0;
}
.setup-header > h2 {
margin-block-start: 20px;
}
.setup-header .header-title {
font-size: 16px;
text-align: center;
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
}
#qrcode {
display: flex;
margin: auto;
justify-content: center;
margin-block-start: 40px;
margin-block-end: 15px;
}
.input-group {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 8px;
}
.input-group span {
font-size: 16px;
color: #ffffff;
font-weight: bold;
text-decoration: none solid rgb(255, 255, 255);
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
}
.input-group > input {
align-self: center;
}
footer {
display: flex;
flex-direction: column;
align-items: center;
max-width: 500px;
width: 100%;
margin-inline: auto;
margin-top: 18px;
}
footer .footer-text {
font-size: 12px;
color: #999999;
text-align: center;
}
.checkbox-container {
display: flex;
justify-content: center;
margin-top: 12px;
}
.hidden-button {
visibility: hidden;
}

BIN
static/img/LightningPub.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

1
static/img/back.svg Normal file
View file

@ -0,0 +1 @@
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="visible" preserveAspectRatio="none" viewBox="0 0 24 24" width="24" height="24"><g><path xmlns:default="http://www.w3.org/2000/svg" d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z" style="fill: rgb(255, 255, 255);" vector-effect="non-scaling-stroke"/></g></svg>

After

Width:  |  Height:  |  Size: 383 B

1
static/img/close.svg Normal file
View file

@ -0,0 +1 @@
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="visible" preserveAspectRatio="none" viewBox="0 0 41 41" width="20" height="20"><g><path xmlns:default="http://www.w3.org/2000/svg" d="M35.6,41.5c-0.8,0-1.6-0.3-2.1-0.9L20.7,27.8L8,40.6c-1.1,1.1-3.1,1.1-4.2,0l-2.8-2.8c-1.2-1.2-1.2-3.1,0-4.3l12.7-12.8 L0.9,7.9C0.3,7.4,0,6.6,0,5.8s0.3-1.6,0.9-2.1l2.8-2.8c1.1-1.1,3.1-1.1,4.2,0l12.7,12.8L33.5,0.9c1.1-1.1,3.1-1.1,4.2,0l2.8,2.8 c0.6,0.6,0.9,1.3,0.9,2.1s-0.3,1.6-0.9,2.1L27.8,20.7l12.7,12.8c1.2,1.2,1.2,3.1,0,4.3l-2.8,2.8C37.1,41.1,36.4,41.5,35.6,41.5z M20.7,25l14.2,14.2c0.4,0.4,1,0.4,1.4,0l2.8-2.8c0.4-0.4,0.4-1,0-1.4L25,20.7L39.1,6.5c0.2-0.2,0.3-0.4,0.3-0.7s-0.1-0.5-0.3-0.7 l-2.8-2.8c-0.4-0.4-1-0.4-1.4,0L20.7,16.5L6.5,2.3c-0.4-0.4-1-0.4-1.4,0L2.3,5.1C2.1,5.3,2,5.6,2,5.8s0.1,0.5,0.3,0.7l14.2,14.2 L2.3,34.9c-0.4,0.4-0.4,1,0,1.4l2.8,2.8c0.4,0.4,1,0.4,1.4,0L20.7,25z" style="fill: rgb(196, 52, 224);" vector-effect="non-scaling-stroke"/></g></svg>

After

Width:  |  Height:  |  Size: 1,008 B

BIN
static/img/pub_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

1
static/img/question.svg Normal file
View file

@ -0,0 +1 @@
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" overflow="visible" preserveAspectRatio="none" viewBox="0 0 24 24" width="16" height="16"><g><path xmlns:default="http://www.w3.org/2000/svg" id="question-circle" d="M13.24,17.24c-0.06,0.06-0.15,0.09-0.24,0.09h-2c-0.18,0.01-0.32-0.13-0.33-0.31c0-0.01,0-0.01,0-0.02 v-2c-0.01-0.18,0.13-0.32,0.31-0.33c0.01,0,0.01,0,0.02,0h2c0.18-0.01,0.32,0.13,0.33,0.31c0,0.01,0,0.01,0,0.02v2 C13.33,17.09,13.3,17.18,13.24,17.24z M16,10c0,0.29-0.04,0.57-0.13,0.84c-0.07,0.22-0.17,0.43-0.29,0.63 c-0.13,0.19-0.28,0.36-0.46,0.5c-0.15,0.13-0.31,0.25-0.48,0.36l-0.51,0.3c-0.23,0.13-0.42,0.31-0.57,0.52 c-0.12,0.15-0.2,0.33-0.22,0.52c0.01,0.18-0.13,0.32-0.31,0.33c-0.01,0-0.02,0-0.03,0h-2c-0.18,0.01-0.32-0.13-0.33-0.31 c0-0.01,0-0.01,0-0.02v-0.38c0.01-0.48,0.21-0.94,0.54-1.29c0.33-0.38,0.74-0.69,1.2-0.9c0.27-0.11,0.51-0.27,0.71-0.47 c0.15-0.18,0.22-0.4,0.21-0.63c-0.02-0.26-0.17-0.49-0.39-0.61c-0.55-0.35-1.24-0.35-1.79,0c-0.34,0.29-0.64,0.63-0.9,1 c-0.06,0.08-0.16,0.12-0.26,0.12c-0.07,0.01-0.14-0.02-0.2-0.06l-1.37-1c-0.14-0.09-0.19-0.27-0.1-0.41 c0.01-0.01,0.01-0.02,0.02-0.03C9.11,7.6,10.6,6.74,12.2,6.79c1.25-0.02,2.44,0.54,3.22,1.51C15.8,8.79,16,9.38,16,10L16,10z M18.93,8c-0.7-1.21-1.71-2.22-2.93-2.92C14.79,4.37,13.41,3.99,12,4c-1.41-0.01-2.79,0.37-4,1.08C6.79,5.78,5.78,6.79,5.08,8 C4.37,9.21,3.99,10.59,4,12c-0.01,1.41,0.36,2.79,1.07,4c0.7,1.21,1.71,2.22,2.93,2.92c1.21,0.71,2.59,1.09,4,1.08 c1.41,0.01,2.79-0.36,4-1.07c1.21-0.7,2.22-1.71,2.92-2.93c0.71-1.21,1.09-2.59,1.08-4c0.01-1.41-0.37-2.79-1.08-4H18.93z" style="fill: rgb(163, 163, 163);" vector-effect="non-scaling-stroke"/></g></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

90
static/index.html Normal file
View file

@ -0,0 +1,90 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title></title>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Montserrat"
/>
<link rel="stylesheet" href="css/styles.css" />
<!-- HTML Meta Tags -->
<title>Lightning.Pub</title>
<meta name="description" content="Lightning for Everyone" />
</head>
<body>
<header>
<img
src="img/pub_logo.png"
width="38px"
height="auto"
alt="Lightning Pub logo"
/>
<img src="img/LightningPub.png" height="33px" alt="Lightning Pub logo" />
</header>
<main>
<section class="setup-header">
<h2>Setup</h2>
<p class="header-title">
Let's confirm some things before we start this Pub
</p>
</section>
<div class="line"></div>
<section class="setup-content">
<div class="input-group">
<span>give this node a name that wallet users will see:</span>
<input
type="text"
placeholder="Nodey McNodeFace"
value=""
style="width: 100%"
/>
</div>
<div class="input-group" style="margin-top: 38px">
<span>If you want to use a specific Nostr relay, enter it now:</span>
<input
type="text"
placeholder="wss://relay.lightning.pub"
style="width: 100%"
/>
</div>
<div class="checkbox" style="margin-top: 12px">
<input type="checkbox" id="customCheckbox" />
<div class="checkbox-shape"></div>
<label for="customCheckbox">
Use the default managed relay service and auto-pay 1000 sats
permonth to support developers
</label>
</div>
<button
class="push-button"
onclick="location.href='liquidity.html'"
style="margin-top: 92px"
>
Next
</button>
</section>
</main>
<footer>
<div class="footer-text">
<div>By proceeding you acknowledge that this is</div>
<div>bleeding-edge software, and agree to the providers</div>
<div>
<span style="color: #c434e0">terms</span> regarding any services
herein.
</div>
</div>
<div class="line"></div>
<p class="marked">Need Help?</p>
</footer>
</body>
</html>

11
static/js/backup.js Normal file
View file

@ -0,0 +1,11 @@
$(() => {
$("#backup").click(() => {
const checked = $("#backup").prop("checked");
const nextButton = $("#next-button");
if (checked) {
nextButton.removeClass("hidden-button");
} else {
nextButton.addClass("hidden-button");
}
});
});

9
static/js/liquidity.js Normal file
View file

@ -0,0 +1,9 @@
$(() => {
$("#show-question").click(() => {
$("#question-content").show();
});
$("#close-question").click(() => {
$("#question-content").hide();
});
});

10
static/js/script.js Normal file
View file

@ -0,0 +1,10 @@
$(document).ready(function() {
var qrcode = new QRCode(document.getElementById("qrcode"), {
text: "strfry.shock.network npub123abcdefghhhhhhhhhhhhhhh",
width: 157,
height: 157,
colorDark : "#000000",
colorLight : "#ffffff",
// correctLevel : QRCode.CorrectLevel.H
});
});

15
static/js/seed.js Normal file
View file

@ -0,0 +1,15 @@
$(() => {
$("#reveal-button").click(() => {
$("#seed-box-container").removeClass("blur-filter");
});
$('#copied').click(() => {
const checked = $("#copied").prop('checked');
const nextButton = $("#next-button");
if (checked) {
nextButton.removeClass("hidden-button");
} else {
nextButton.addClass("hidden-button");
}
})
});

93
static/liquidity.html Normal file
View file

@ -0,0 +1,93 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title></title>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Montserrat"
/>
<link rel="stylesheet" href="css/styles.css" />
<link rel="stylesheet" href="css/liquidity.css" />
<!-- HTML Meta Tags -->
<title>Lightning.Pub</title>
<meta name="description" content="Lightning for Everyone" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<header>
<img
src="img/pub_logo.png"
width="38px"
height="auto"
alt="Lightning Pub logo"
/>
<img src="img/LightningPub.png" height="33px" alt="Lightning Pub logo" />
</header>
<main>
<section class="setup-header">
<button class="icon-button back-button" onclick="history.back()">
<img src="img/back.svg" alt="" />
</button>
<h2>Liquidity</h2>
<p class="header-title">
How do you want to manage Lightning connectivity?
</p>
</section>
<div class="line"></div>
<section class="setup-content">
<div class="checkbox" style="margin-top: 60px">
<input type="checkbox" id="automate" />
<div class="checkbox-shape"></div>
<label for="automate">
Use Boostrap Service to Automate
<div class="question-box">
<button class="icon-button" id="show-question">
<img src="img/question.svg" />
</button>
<div class="question-content" id="question-content">
Bootstrapping uses a trusted peer until channel management
events cost less than 1% to execute
<button class="icon-button close-button" id="close-question">
<img src="img/close.svg" alt="" />
</button>
</div>
</div>
</label>
</div>
<div class="checkbox" style="margin-top: 60px">
<input type="checkbox" id="manual" />
<div class="checkbox-shape"></div>
<label for="manual">Manage my channels manually</label>
</div>
<button
class="push-button"
onclick="location.href='backup.html'"
style="margin-top: 92px"
>
Next
</button>
</section>
</main>
<footer>
<div class="footer-text">
<div>By proceeding you acknowledge that this is</div>
<div>bleeding-edge software, and agree to the providers</div>
<div>
<span style="color: #c434e0">terms</span> regarding any services
herein.
</div>
</div>
<div class="line"></div>
<p class="marked">Need Help?</p>
</footer>
<script src="js/liquidity.js"></script>
</body>
</html>

181
static/seed.html Normal file
View file

@ -0,0 +1,181 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title></title>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Montserrat"
/>
<link rel="stylesheet" href="css/styles.css" />
<link rel="stylesheet" href="css/seed.css" />
<!-- HTML Meta Tags -->
<title>Lightning.Pub</title>
<meta name="description" content="Lightning for Everyone" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<header>
<img
src="img/pub_logo.png"
width="38px"
height="auto"
alt="Lightning Pub logo"
/>
<img src="img/LightningPub.png" height="33px" alt="Lightning Pub logo" />
</header>
<main>
<section class="setup-header">
<button class="icon-button back-button" onclick="history.back()">
<img src="img/back.svg" alt="" />
</button>
<h2>Seed Phrase</h2>
<p class="header-title">
Store your seed phrase somewhere safe, you'll need it if something
ever goes wrong with your nodes hard drive.
</p>
</section>
<div class="line"></div>
<section class="setup-content">
<div class="seed-box-container blur-filter" id="seed-box-container">
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
<div class="seed-box">
<span>1</span>
<span>albert</span>
</div>
</div>
<button class="reveal-button" id="reveal-button">Click To Reveal</button>
<div class="checkbox-container">
<div class="checkbox" style="margin-top: 12px">
<input type="checkbox" id="copied" />
<div class="checkbox-shape"></div>
<label for="copied">
I have copied this somewhere safe
</label>
</div>
</div>
<button
id="next-button"
class="push-button hidden-button"
onclick="location.href='connect.html'"
style="margin-top: 92px"
>
Next
</button>
</section>
</main>
<footer>
<div class="footer-text">
<div>By proceeding you acknowledge that this is</div>
<div>bleeding-edge software, and agree to the providers</div>
<div>
<span style="color: #c434e0">terms</span> regarding any services
herein.
</div>
</div>
<div class="line"></div>
<p class="marked">Need Help?</p>
</footer>
<script src="js/seed.js"></script>
</body>
</html>

View file

@ -68,4 +68,4 @@
"exclude": [
"./tests"
],
}
}