Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
df4b19a
Remove console warnings regarding empty DOM and Hydration
ShahanaFarooqui Dec 5, 2025
677e29e
Fix scss errors
ShahanaFarooqui Dec 6, 2025
bbc6f23
Update Styles after Bootstrap update and fixes
ShahanaFarooqui Dec 9, 2025
daaee7a
Fix console error from currency path
ShahanaFarooqui Dec 9, 2025
eec4350
More UI style fixes
ShahanaFarooqui Dec 9, 2025
a6b623c
Fix Number of Peers animation
ShahanaFarooqui Dec 11, 2025
2a69f31
Lightning Data Pagination SQLs
ShahanaFarooqui Dec 11, 2025
586d799
Updated listPeerChannels with SQL query
ShahanaFarooqui Dec 11, 2025
c39a80d
Removed listNodes Endpoint
ShahanaFarooqui Dec 18, 2025
c011f3e
Updated store & services to use sql queries for transactions and offers
ShahanaFarooqui Dec 19, 2025
01d1ccd
BTC Transactions list infinite scroll
ShahanaFarooqui Dec 23, 2025
a8c5726
CLN transactions & Offers infinite scroll
ShahanaFarooqui Dec 23, 2025
509e3cf
Data cleanup and offer description
ShahanaFarooqui Dec 23, 2025
4ce3dee
Accordion Fix
ShahanaFarooqui Dec 24, 2025
c364118
Remove listPeers and use nodeinfo.num_peers instead
ShahanaFarooqui Dec 24, 2025
adffdc7
Lists Refresh Buttons
ShahanaFarooqui Dec 24, 2025
9f8e19a
Disable gRPC connect option
ShahanaFarooqui Dec 24, 2025
524baa5
Fix Bookkeeper Night mode Styles
ShahanaFarooqui Jan 13, 2026
01ca142
Separated async store setup on page load
ShahanaFarooqui Jan 13, 2026
f24521c
Increase Wait Time
ShahanaFarooqui Jan 13, 2026
01e5f0c
Fix Linting
ShahanaFarooqui Jan 13, 2026
61a6e3c
Fixed Tests
ShahanaFarooqui Jan 13, 2026
bc00af8
Fix build time CSS warnings
ShahanaFarooqui Jan 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
- APP_CONFIG_FILE: Path for cln-application's configuration file (default: `./config.json`)
- APP_LOG_FILE: Path for cln-application's log file (default: `./application-cln.log`)
- APP_MODE: Mode for logging and other settings (valid values: production/development/testing, default: `production`)
- APP_CONNECT: Choose how to connect to CLN (valid values: COMMANDO/REST/GRPC, default: `COMMANDO`)
- APP_CONNECT: Choose how to connect to CLN (valid values: COMMANDO/REST, default: `COMMANDO`)

# Core lightning Values
- LIGHTNING_HOST: IP address of Core lightning node (default: `localhost`)
Expand All @@ -90,9 +90,9 @@
- LIGHTNING_REST_CA_CERT_FILE: CA certificate file path including file name for REST TLS authentication (used by `REST` APP_CONNECT and `https` LIGHTNING_REST_PROTOCOL; default: `./ca.pem`)

# CLN gRPC Values
- LIGHTNING_GRPC_HOST: IP address/hostname of Core Lightning GRPC interface (used if APP_CONNECT is `GRPC`, default: `localhost`)
- LIGHTNING_GRPC_HOST: IP address/hostname of Core Lightning GRPC interface (default: `localhost`)
- LIGHTNING_GRPC_TOR_HOST: Tor hidden service URL for Core Lightning GRPC interface (default: ``)
- LIGHTNING_GRPC_PORT: Core lightning's GRPC port (used if APP_CONNECT is `GRPC`; default: `9736`)
- LIGHTNING_GRPC_PORT: Core lightning's GRPC port (default: `9736`)
- LIGHTNING_GRPC_PROTO_PATH: URL to directory containing CLN gRPC protocol definitions (default: `https://github.com/ElementsProject/lightning/tree/master/cln-grpc/proto`)
- LIGHTNING_GRPC_CLIENT_KEY_FILE: Client key file path including file name for GRPC TLS authentication (used by `GRPC` APP_CONNECT; default: `./client-key.pem`)
- LIGHTNING_GRPC_CLIENT_CERT_FILE: Client certificate file path including file name for GRPC TLS authentication (used by `GRPC` APP_CONNECT; default: `./client.pem`)
Expand Down
4 changes: 2 additions & 2 deletions apps/backend/source/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,9 @@ async function startServer() {
server.listen({ port: APP_PORT, host: APP_HOST });
} catch (err: any) {
if (err.code) {
logger.error('Server Startup Error: ', err);
logger.error('Server Startup Error:', err);
} else {
logger.error('Server Startup Error: ', throwApiError(err));
logger.error('Server Startup Error:', throwApiError(err));
}
process.exit(1);
}
Expand Down
20 changes: 14 additions & 6 deletions apps/backend/source/service/lightning.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,12 @@ import https from 'https';
import axios, { AxiosHeaders } from 'axios';
import Lnmessage from 'lnmessage';
import { GRPCError, LightningError, ValidationError } from '../models/errors.js';
import { GRPCService } from './grpc.service.js';
import {
HttpStatusCode,
APP_CONSTANTS,
AppConnect,
LN_MESSAGE_CONFIG,
REST_CONFIG,
GRPC_CONFIG,
} from '../shared/consts.js';
import { logger } from '../shared/logger.js';
import { setEnvVariables, validateEnvVariables } from '../shared/utils.js';
Expand Down Expand Up @@ -46,8 +44,13 @@ export class LightningService {
}
break;
case AppConnect.GRPC:
logger.info('GRPC connecting with config: ' + JSON.stringify(GRPC_CONFIG));
this.clnService = new GRPCService(GRPC_CONFIG);
this.clnService = null;
throw new ValidationError(
HttpStatusCode.INVALID_DATA,
'gRPC connection to the Lightning node is not supported. Please use the COMMANDO or REST options for APP_CONNECT.',
);
// logger.info('GRPC connecting with config: ' + JSON.stringify(GRPC_CONFIG));
// this.clnService = new GRPCService(GRPC_CONFIG);
break;
default:
logger.info('lnMessage connecting with config: ' + JSON.stringify(LN_MESSAGE_CONFIG));
Expand All @@ -71,8 +74,13 @@ export class LightningService {
return axios
.post(method, methodParams, this.axiosConfig)
.then((commandRes: any) => {
logger.info('REST response for ' + method + ': ' + JSON.stringify(commandRes.data));
return Promise.resolve(commandRes.data);
logger.info(
'REST response for ' +
method +
': ' +
JSON.stringify(commandRes.data || commandRes.rows),
);
return Promise.resolve(commandRes.data || commandRes.rows);
})
.catch((err: any) => {
logger.error('REST lightning error from ' + method + ' command');
Expand Down
2 changes: 1 addition & 1 deletion apps/backend/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@
"lib": ["ES2022"]
},
"files": ["./source/server.ts"],
"include": ["./source/**/*.d.ts"]
"include": ["./source/**/*.ts"]
}
2 changes: 0 additions & 2 deletions apps/frontend/src/components/App/App.scss
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
@import '../../styles/bootstrap-custom';
@import '../../styles/constants';
@import '../../styles/shared';

.list-scroll-container {
Expand Down
7 changes: 7 additions & 0 deletions apps/frontend/src/components/App/App.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
import './App.scss';
import '../shared/FiatBox/FiatBox.scss';
import '../shared/CurrencyBox/CurrencyBox.scss';
import '../shared/ToastMessage/ToastMessage.scss';
import '../shared/InvalidInputMessage/InvalidInputMessage.scss';
import '../shared/StatusAlert/StatusAlert.scss';
import '../cln/Overview/Overview.scss';

import { Container } from 'react-bootstrap';

import useBreakpoint from '../../hooks/use-breakpoint';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import '../../../../styles/constants.scss';
@use '../../../../styles/constants' as *;

.bkpr-tooltip {
border: 1px solid $light-dark;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import '../../../styles/constants.scss';
@use '../../../styles/constants' as *;

.account-events-container {
padding: 0 1rem;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import '../../../../styles/constants.scss';
@use '../../../../styles/constants' as *;

.account-events-table {
padding: 0 !important;
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
@import '../../../../styles/constants.scss';
@use '../../../../styles/constants' as *;
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import '../../../styles/constants.scss';
@use '../../../styles/constants' as *;

[data-screensize='SM'],
[data-screensize='XS'] {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import '../../../../styles/constants.scss';
@use '../../../../styles/constants' as *;

[data-screensize='SM'],
[data-screensize='XS'] {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import '../../../../styles/constants.scss';
@use '../../../../styles/constants' as *;

[data-screensize='SM'],
[data-screensize='XS'] {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import '../../../../styles/constants.scss';
@use '../../../../styles/constants' as *;

.bkpr-tooltip {
border: 1px solid $light-dark;
Expand All @@ -8,7 +8,7 @@
box-shadow: 0px 4px 8px 0px rgba($gray-400, 0.16);
}

.sats-flow-lagend-bullet {
.col-sats-flow-lagend .sats-flow-lagend-bullet {
width: 12px;
height: 12px;
margin-right: 6px;
Expand Down Expand Up @@ -37,4 +37,7 @@
color: $light-dark;
background-color: $tooltip-bg-dark;
}
.col-sats-flow-lagend .span-sats-flow-lagend {
color: $light-dark;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@ const SatsFlowGraphLegend = (props: any) => {
{payload
.filter((entry: any) => entry.value !== 'net_inflow_msat')
.map((entry: any, index: number) => (
<Col key={`item-${index}`} xs='auto' className='d-flex align-items-center'>
<Col key={`item-${index}`} xs='auto' className='col-sats-flow-lagend d-flex align-items-center'>
<div className='sats-flow-lagend-bullet' style={{ backgroundColor: entry.color }}/>
<span>{titleCase(entry.value.replace(/_/g, ' '))}</span>
<span className='span-sats-flow-lagend'>{titleCase(entry.value.replace(/_/g, ' '))}</span>
</Col>
))
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import '../../../styles/constants.scss';
@use '../../../styles/constants' as *;

.satsflow-container {
padding: 0 1rem;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import '../../../../styles/constants.scss';
@use '../../../../styles/constants' as *;

.volume-graph {
width: 100%;
Expand Down Expand Up @@ -49,4 +49,7 @@
color: $light-dark;
background-color: $tooltip-bg-dark;
}
.volume-graph-legend {
color: $light-dark;
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import '../../../styles/constants.scss';
@use '../../../styles/constants' as *;

.volume-container {
padding: 0 1rem;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
@import '../../../styles/constants.scss';
@use 'sass:color';
@use '../../../styles/constants' as *;

.btc-transaction-placeholder {
transform-origin: top left;
Expand All @@ -13,7 +14,7 @@
cursor: pointer;
&:hover {
svg path {
stroke: darken($primary, 10%);
stroke: color.adjust($primary, $lightness: -10%);
}
}
}
Expand All @@ -24,7 +25,7 @@
cursor: pointer;
&:hover {
svg path {
fill: darken($primary, 10%);
fill: color.adjust($primary, $lightness: -10%);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ const TransactionDetail = ({ transaction, copyHandler, openLinkHandler }) => {
<Col xs={12} className="fs-7 text-light">
Blockheight
</Col>
<Col xs={12} className="fs-7 overflow-x-ellipsis">
<Col xs={12} className="fs-7 text-dark overflow-x-ellipsis">
{transaction.blockheight}
</Col>
</Row>
Expand All @@ -31,7 +31,7 @@ const TransactionDetail = ({ transaction, copyHandler, openLinkHandler }) => {
<Col xs={12} className="fs-7 text-light">
Description
</Col>
<Col xs={12} className="pe-1 fs-7 overflow-x-ellipsis">
<Col xs={12} className="pe-1 fs-7 text-dark overflow-x-ellipsis">
{transaction.description}
</Col>
</Row>
Expand All @@ -43,7 +43,7 @@ const TransactionDetail = ({ transaction, copyHandler, openLinkHandler }) => {
<Col xs={12} className="fs-7 text-light">
Transaction ID
</Col>
<Col xs={10} className="pe-1 fs-7 overflow-x-ellipsis">
<Col xs={10} className="pe-1 fs-7 text-dark overflow-x-ellipsis">
{transaction.txid}
</Col>
<Col xs={1} onClick={copyHandler} className="btc-transaction-copy" id="Transaction ID">
Expand All @@ -61,7 +61,7 @@ const TransactionDetail = ({ transaction, copyHandler, openLinkHandler }) => {
<Col xs={12} className="fs-7 text-light">
Payment ID
</Col>
<Col xs={10} className="pe-1 fs-7 overflow-x-ellipsis">
<Col xs={10} className="pe-1 fs-7 text-dark overflow-x-ellipsis">
{transaction.payment_id}
</Col>
<Col xs={1} onClick={copyHandler} className="btc-transaction-copy" id="Payment ID">
Expand All @@ -79,7 +79,7 @@ const TransactionDetail = ({ transaction, copyHandler, openLinkHandler }) => {
<Col xs={12} className="fs-7 text-light">
Outpoint
</Col>
<Col xs={10} className="pe-1 fs-7 overflow-x-ellipsis">
<Col xs={10} className="pe-1 fs-7 text-dark overflow-x-ellipsis">
{transaction.outpoint}
</Col>
<Col xs={1} onClick={copyHandler} className="btc-transaction-copy" id="Outpoint">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
@import '../../../styles/constants.scss';
@use '../../../styles/constants' as *;
@import 'bootstrap/scss/mixins';

.btc-transactions-list {
cursor: pointer;
Expand Down
Loading