Compare commits
No commits in common. 'master' and 'v0.13.1' have entirely different histories.
@ -0,0 +1,17 @@
|
||||
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
|
||||
# For additional information regarding the format and rule options, please see:
|
||||
# https://github.com/browserslist/browserslist#queries
|
||||
|
||||
# For the full list of supported browsers by the Angular framework, please see:
|
||||
# https://angular.io/guide/browser-support
|
||||
|
||||
# You can see what browsers were selected by your queries by running:
|
||||
# npx browserslist
|
||||
|
||||
last 1 Chrome version
|
||||
last 1 Firefox version
|
||||
last 2 Edge major versions
|
||||
last 2 Safari major versions
|
||||
last 2 iOS major versions
|
||||
Firefox ESR
|
||||
not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line.
|
@ -0,0 +1,71 @@
|
||||
### Core Lightning Commands Covered on RTL
|
||||
|
||||
=== bitcoin ===
|
||||
- [x] feerates
|
||||
- [x] newaddr
|
||||
- [ ] txdiscard
|
||||
- [ ] txprepare
|
||||
- [ ] txsend
|
||||
- [x] withdraw
|
||||
|
||||
=== channels ===
|
||||
- [x] close
|
||||
- [ ] fundchannel_cancel
|
||||
- [ ] fundchannel_complete
|
||||
- [ ] fundchannel_start
|
||||
- [x] getroute
|
||||
- [x] listchannels
|
||||
- [x] listforwards
|
||||
- [x] setchannelfee
|
||||
|
||||
=== network ===
|
||||
- [x] connect
|
||||
- [x] disconnect
|
||||
- [x] listnodes
|
||||
- [x] listpeers
|
||||
- [ ] ping
|
||||
|
||||
=== payment ===
|
||||
- [ ] createonion
|
||||
- [x] decodepay
|
||||
- [x] delexpiredinvoice
|
||||
- [ ] delinvoice
|
||||
- [x] invoice
|
||||
- [x] listinvoices
|
||||
- [x] listsendpays
|
||||
- [ ] listtransactions
|
||||
- [ ] sendonion
|
||||
- [ ] sendpay
|
||||
- [ ] waitanyinvoice
|
||||
- [ ] waitinvoice
|
||||
- [ ] waitsendpay
|
||||
|
||||
=== plugin ===
|
||||
- [ ] autocleaninvoice
|
||||
- [ ] estimatefees
|
||||
- [x] fundchannel
|
||||
- [ ] getchaininfo
|
||||
- [ ] getrawblockbyheight
|
||||
- [ ] getutxout
|
||||
- [x] listpays
|
||||
- [x] pay
|
||||
- [ ] paystatus
|
||||
- [ ] plugin
|
||||
- [ ] sendrawtransaction
|
||||
|
||||
=== utility ===
|
||||
- [ ] check
|
||||
- [x] checkmessage
|
||||
- [x] getinfo
|
||||
- [ ] getlog
|
||||
- [ ] getsharedsecret
|
||||
- [ ] help
|
||||
- [ ] listconfigs
|
||||
- [x] listfunds
|
||||
- [x] signmessage
|
||||
- [ ] stop
|
||||
- [ ] waitblockheight
|
||||
|
||||
=== developer ===
|
||||
- [ ] dev-listaddrs
|
||||
- [ ] dev-rescan-outputs
|
@ -0,0 +1,57 @@
|
||||
[Intro](../README.md) -- [Application Features](Application_features.md) -- [Road Map](Roadmap.md) -- **LND API Coverage** -- [Application Configurations](Application_configurations.md)
|
||||
|
||||
- [x] GenSeed
|
||||
- [x] InitWallet
|
||||
- [x] UnlockWallet
|
||||
- [ ] ChangePassword
|
||||
- [x] WalletBalance
|
||||
- [x] ChannelBalance
|
||||
- [x] GetTransactions
|
||||
- [ ] EstimateFee
|
||||
- [x] SendCoins
|
||||
- [ ] ListUnspent
|
||||
- [ ] SubscribeTransactions
|
||||
- [ ] SendMany
|
||||
- [x] NewAddress
|
||||
- [x] SignMessage
|
||||
- [x] VerifyMessage
|
||||
- [x] ConnectPeer
|
||||
- [x] DisconnectPeer
|
||||
- [x] ListPeers
|
||||
- [x] GetInfo
|
||||
- [x] PendingChannels
|
||||
- [x] ListChannels
|
||||
- [ ] SubscribeChannelEvents
|
||||
- [x] ClosedChannels
|
||||
- [ ] OpenChannelSync
|
||||
- [x] OpenChannel
|
||||
- [x] CloseChannel
|
||||
- [ ] AbandonChannel
|
||||
- [x] SendPayment
|
||||
- [ ] SendPaymentSync
|
||||
- [ ] SendToRoute
|
||||
- [ ] SendToRouteSync
|
||||
- [x] AddInvoice
|
||||
- [x] ListInvoices
|
||||
- [ ] LookupInvoice
|
||||
- [ ] SubscribeInvoices
|
||||
- [x] DecodePayReq
|
||||
- [x] ListPayments
|
||||
- [ ] DeleteAllPayments
|
||||
- [ ] DescribeGraph
|
||||
- [x] GetChanInfo
|
||||
- [x] GetNodeInfo
|
||||
- [x] QueryRoutes
|
||||
- [x] GetNetworkInfo
|
||||
- [ ] StopDaemon
|
||||
- [ ] SubscribeChannelGraph
|
||||
- [ ] DebugLevel
|
||||
- [x] FeeReport
|
||||
- [x] UpdateChannelPolicy
|
||||
- [x] ForwardingHistory
|
||||
- [x] ExportChannelBackup
|
||||
- [x] ExportAllChannelBackups
|
||||
- [x] VerifyChanBackup
|
||||
- [x] RestoreChannelBackups
|
||||
- [ ] SubscribeChannelBackups
|
||||
- [ ] Messages
|
Binary file not shown.
Before Width: | Height: | Size: 139 KiB |
@ -0,0 +1,30 @@
|
||||
import request from 'request-promise';
|
||||
import { Logger } from '../../utils/logger.js';
|
||||
import { Common } from '../../utils/common.js';
|
||||
let options = null;
|
||||
const logger = Logger;
|
||||
const common = Common;
|
||||
export const getBalance = (req, res, next) => {
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Balance', msg: 'Getting Balance..' });
|
||||
options = common.getOptions(req);
|
||||
if (options.error) {
|
||||
return res.status(options.statusCode).json({ message: options.message, error: options.error });
|
||||
}
|
||||
options.url = req.session.selectedNode.ln_server_url + '/v1/getBalance';
|
||||
request(options).then((body) => {
|
||||
if (!body.totalBalance) {
|
||||
body.totalBalance = 0;
|
||||
}
|
||||
if (!body.confBalance) {
|
||||
body.confBalance = 0;
|
||||
}
|
||||
if (!body.unconfBalance) {
|
||||
body.unconfBalance = 0;
|
||||
}
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Balance', msg: 'Balance Received', data: body });
|
||||
res.status(200).json(body);
|
||||
}).catch((errRes) => {
|
||||
const err = common.handleError(errRes, 'Balance', 'Get Balance Error', req.session.selectedNode);
|
||||
return res.status(err.statusCode).json({ message: err.message, error: err.error });
|
||||
});
|
||||
};
|
@ -1,33 +0,0 @@
|
||||
import { Database } from '../../utils/database.js';
|
||||
import { Logger } from '../../utils/logger.js';
|
||||
import { Common } from '../../utils/common.js';
|
||||
import { CollectionsEnum } from '../../models/database.model.js';
|
||||
const logger = Logger;
|
||||
const common = Common;
|
||||
const databaseService = Database;
|
||||
export const getPageSettings = (req, res, next) => {
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Page Settings', msg: 'Getting Page Settings..' });
|
||||
databaseService.find(req.session.selectedNode, CollectionsEnum.PAGE_SETTINGS).then((settings) => {
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Page Settings', msg: 'Page Settings Received', data: settings });
|
||||
res.status(200).json(settings);
|
||||
}).catch((errRes) => {
|
||||
const err = common.handleError(errRes, 'Page Settings', 'Page Settings Error', req.session.selectedNode);
|
||||
return res.status(err.statusCode).json({ message: err.message, error: err.error });
|
||||
});
|
||||
};
|
||||
export const savePageSettings = (req, res, next) => {
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Page Settings', msg: 'Saving Page Settings..' });
|
||||
// eslint-disable-next-line arrow-body-style
|
||||
return Promise.all(req.body.map((page) => databaseService.validateDocument(CollectionsEnum.PAGE_SETTINGS, page))).then((values) => {
|
||||
return databaseService.insert(req.session.selectedNode, CollectionsEnum.PAGE_SETTINGS, req.body).then((insertRes) => {
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Page Settings', msg: 'Page Settings Updated', data: insertRes });
|
||||
res.status(201).json(insertRes);
|
||||
}).catch((insertErrRes) => {
|
||||
const err = common.handleError(insertErrRes, 'Page Settings', 'Page Settings Update Error', req.session.selectedNode);
|
||||
return res.status(err.statusCode).json({ message: err.message, error: err.error });
|
||||
});
|
||||
}).catch((errRes) => {
|
||||
const err = common.handleError(errRes, 'Page Settings', 'Page Settings Validation Error', req.session.selectedNode);
|
||||
return res.status(err.statusCode).json({ message: err.message, error: err.error });
|
||||
});
|
||||
};
|
@ -1,12 +0,0 @@
|
||||
export var ECLWSEventsEnum;
|
||||
(function (ECLWSEventsEnum) {
|
||||
ECLWSEventsEnum["PAY_RECEIVED"] = "payment-received";
|
||||
ECLWSEventsEnum["PAY_RELAYED"] = "payment-relayed";
|
||||
ECLWSEventsEnum["PAY_SENT"] = "payment-sent";
|
||||
ECLWSEventsEnum["PAY_SETTLING_ONCHAIN"] = "payment-settling-onchain";
|
||||
ECLWSEventsEnum["PAY_FAILED"] = "payment-failed";
|
||||
ECLWSEventsEnum["CHANNEL_OPENED"] = "channel-opened";
|
||||
ECLWSEventsEnum["CHANNEL_STATE_CHANGED"] = "channel-state-changed";
|
||||
ECLWSEventsEnum["CHANNEL_CLOSED"] = "channel-closed";
|
||||
ECLWSEventsEnum["ONION_MESSAGE_RECEIVED"] = "onion-message-received";
|
||||
})(ECLWSEventsEnum || (ECLWSEventsEnum = {}));
|
@ -1,12 +1,14 @@
|
||||
import exprs from 'express';
|
||||
const { Router } = exprs;
|
||||
import { isAuthenticated } from '../../utils/authCheck.js';
|
||||
import { listPeerChannels, openChannel, setChannelFee, closeChannel, listForwards, funderUpdatePolicy } from '../../controllers/cln/channels.js';
|
||||
import { listChannels, openChannel, setChannelFee, closeChannel, getLocalRemoteBalance, listForwards, funderUpdatePolicy, listForwardsPaginated } from '../../controllers/cln/channels.js';
|
||||
const router = Router();
|
||||
router.get('/listPeerChannels', isAuthenticated, listPeerChannels);
|
||||
router.get('/listChannels', isAuthenticated, listChannels);
|
||||
router.post('/', isAuthenticated, openChannel);
|
||||
router.post('/setChannelFee', isAuthenticated, setChannelFee);
|
||||
router.post('/close/', isAuthenticated, closeChannel);
|
||||
router.post('/listForwards', isAuthenticated, listForwards);
|
||||
router.delete('/:channelId', isAuthenticated, closeChannel);
|
||||
router.get('/localRemoteBalance', isAuthenticated, getLocalRemoteBalance);
|
||||
router.get('/listForwards', isAuthenticated, listForwards);
|
||||
router.get('/listForwardsPaginated', isAuthenticated, listForwardsPaginated);
|
||||
router.post('/funderUpdate', isAuthenticated, funderUpdatePolicy);
|
||||
export default router;
|
||||
|
@ -1,10 +1,11 @@
|
||||
import exprs from 'express';
|
||||
const { Router } = exprs;
|
||||
import { isAuthenticated } from '../../utils/authCheck.js';
|
||||
import { getRoute, listChannels, feeRates, listNodes } from '../../controllers/cln/network.js';
|
||||
import { getRoute, listNode, listChannel, feeRates, listNodes } from '../../controllers/cln/network.js';
|
||||
const router = Router();
|
||||
router.post('/listNodes', isAuthenticated, listNodes);
|
||||
router.post('/getRoute', isAuthenticated, getRoute);
|
||||
router.post('/feeRates', isAuthenticated, feeRates);
|
||||
router.post('/listChannels', isAuthenticated, listChannels);
|
||||
router.get('/getRoute/:destPubkey/:amount', isAuthenticated, getRoute);
|
||||
router.get('/listNode/:id', isAuthenticated, listNode);
|
||||
router.get('/listChannel/:channelShortId', isAuthenticated, listChannel);
|
||||
router.get('/feeRates/:feeRateStyle', isAuthenticated, feeRates);
|
||||
router.get('/listNodes', isAuthenticated, listNodes);
|
||||
export default router;
|
||||
|
@ -1,12 +1,11 @@
|
||||
import exprs from 'express';
|
||||
const { Router } = exprs;
|
||||
import { isAuthenticated } from '../../utils/authCheck.js';
|
||||
import { getChannels, getChannelStats, openChannel, updateChannelRelayFee, closeChannel, circularRebalance } from '../../controllers/eclair/channels.js';
|
||||
import { getChannels, getChannelStats, openChannel, updateChannelRelayFee, closeChannel } from '../../controllers/eclair/channels.js';
|
||||
const router = Router();
|
||||
router.get('/', isAuthenticated, getChannels);
|
||||
router.get('/stats', isAuthenticated, getChannelStats);
|
||||
router.post('/', isAuthenticated, openChannel);
|
||||
router.post('/updateRelayFee', isAuthenticated, updateChannelRelayFee);
|
||||
router.post('/circularRebalance', circularRebalance);
|
||||
router.delete('/', isAuthenticated, closeChannel);
|
||||
export default router;
|
||||
|
@ -1,8 +1,7 @@
|
||||
import exprs from 'express';
|
||||
const { Router } = exprs;
|
||||
import { isAuthenticated } from '../../utils/authCheck.js';
|
||||
import { getNodes, findRouteBetweenNodes } from '../../controllers/eclair/network.js';
|
||||
import { getNodes } from '../../controllers/eclair/network.js';
|
||||
const router = Router();
|
||||
router.get('/nodes/:id', isAuthenticated, getNodes);
|
||||
router.get('/routebetweennodes', isAuthenticated, findRouteBetweenNodes);
|
||||
export default router;
|
||||
|
@ -1,11 +1,10 @@
|
||||
import exprs from 'express';
|
||||
const { Router } = exprs;
|
||||
import { isAuthenticated } from '../../utils/authCheck.js';
|
||||
import { queryPaymentRoute, decodePayment, getSentPaymentsInformation, postPayment, sendPaymentToRoute } from '../../controllers/eclair/payments.js';
|
||||
import { queryPaymentRoute, decodePayment, getSentPaymentsInformation, postPayment } from '../../controllers/eclair/payments.js';
|
||||
const router = Router();
|
||||
router.get('/route/', isAuthenticated, queryPaymentRoute);
|
||||
router.get('/decode/:invoice', isAuthenticated, decodePayment);
|
||||
router.post('/getsentinfos', isAuthenticated, getSentPaymentsInformation);
|
||||
router.post('/sendtoroute', isAuthenticated, sendPaymentToRoute);
|
||||
router.post('/', isAuthenticated, postPayment);
|
||||
export default router;
|
||||
|
@ -1,8 +0,0 @@
|
||||
import exprs from 'express';
|
||||
const { Router } = exprs;
|
||||
import { isAuthenticated } from '../../utils/authCheck.js';
|
||||
import { getPageSettings, savePageSettings } from '../../controllers/shared/pageSettings.js';
|
||||
const router = Router();
|
||||
router.get('/', isAuthenticated, getPageSettings);
|
||||
router.post('/', isAuthenticated, savePageSettings);
|
||||
export default router;
|
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 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 one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
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
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue