mirror of
https://github.com/Ride-The-Lightning/RTL.git
synced 2025-01-19 05:33:33 +01:00
Help section update #1112
Help section update #1112 Liquidity Ads LeaseFeeBase unit bug fix Bitcoind config bug fix
This commit is contained in:
parent
65ee024e8d
commit
4d5bb8e3dc
@ -245,7 +245,7 @@ export const getConfig = (req, res, next) => {
|
||||
if (jsonConfig['Application Options'] && jsonConfig['Application Options'].color) {
|
||||
jsonConfig['Application Options'].color = '#' + jsonConfig['Application Options'].color;
|
||||
}
|
||||
if (req.session.selectedNode.ln_implementation === 'ECL' && !jsonConfig['eclair.api.password']) {
|
||||
if (req.params.nodeType === 'ln' && req.session.selectedNode.ln_implementation === 'ECL' && !jsonConfig['eclair.api.password']) {
|
||||
fileFormat = 'HOCON';
|
||||
jsonConfig = parseHocon(data);
|
||||
}
|
||||
|
@ -13,6 +13,6 @@
|
||||
<style>@font-face{font-family:Roboto;src:url(Roboto-Thin.f7a95c9c5999532c.woff2) format("woff2"),url(Roboto-Thin.c13c157cb81e8ebb.woff) format("woff");font-weight:100;font-style:normal}@font-face{font-family:Roboto;src:url(Roboto-ThinItalic.b0e084abf689f393.woff2) format("woff2"),url(Roboto-ThinItalic.1111028df6cea564.woff) format("woff");font-weight:100;font-style:italic}@font-face{font-family:Roboto;src:url(Roboto-Light.0e01b6cd13b3857f.woff2) format("woff2"),url(Roboto-Light.603ca9a537b88428.woff) format("woff");font-weight:300;font-style:normal}@font-face{font-family:Roboto;src:url(Roboto-LightItalic.232ef4b20215f720.woff2) format("woff2"),url(Roboto-LightItalic.1b5e142f787151c8.woff) format("woff");font-weight:300;font-style:italic}@font-face{font-family:Roboto;src:url(Roboto-Regular.475ba9e4e2d63456.woff2) format("woff2"),url(Roboto-Regular.bcefbfee882bc1cb.woff) format("woff");font-weight:400;font-style:normal}@font-face{font-family:Roboto;src:url(Roboto-RegularItalic.e3a9ebdaac06bbc4.woff2) format("woff2"),url(Roboto-RegularItalic.0668fae6af0cf8c2.woff) format("woff");font-weight:400;font-style:italic}@font-face{font-family:Roboto;src:url(Roboto-Medium.457532032ceb0168.woff2) format("woff2"),url(Roboto-Medium.6e1ae5f0b324a0aa.woff) format("woff");font-weight:500;font-style:normal}@font-face{font-family:Roboto;src:url(Roboto-MediumItalic.872f7060602d55d2.woff2) format("woff2"),url(Roboto-MediumItalic.e06fb533801cbb08.woff) format("woff");font-weight:500;font-style:italic}@font-face{font-family:Roboto;src:url(Roboto-Bold.447291a88c067396.woff2) format("woff2"),url(Roboto-Bold.fc482e6133cf5e26.woff) format("woff");font-weight:700;font-style:normal}@font-face{font-family:Roboto;src:url(Roboto-BoldItalic.1b15168ef6fa4e16.woff2) format("woff2"),url(Roboto-BoldItalic.e26ba339b06f09f7.woff) format("woff");font-weight:700;font-style:italic}@font-face{font-family:Roboto;src:url(Roboto-Black.2eaa390d458c877d.woff2) format("woff2"),url(Roboto-Black.b25f67ad8583da68.woff) format("woff");font-weight:900;font-style:normal}@font-face{font-family:Roboto;src:url(Roboto-BlackItalic.7dc03ee444552bc5.woff2) format("woff2"),url(Roboto-BlackItalic.c8dc642467cb3099.woff) format("woff");font-weight:900;font-style:italic}html{width:100%;height:99%;line-height:1.5;overflow-x:hidden;font-family:Roboto,sans-serif!important;font-size:62.5%}body{box-sizing:border-box;height:100%;margin:0;overflow:hidden}*{margin:0;padding:0}</style><link rel="stylesheet" href="styles.43515fc39338348b.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.43515fc39338348b.css"></noscript></head>
|
||||
<body>
|
||||
<rtl-app></rtl-app>
|
||||
<script src="runtime.3a8ac8969006b863.js" type="module"></script><script src="polyfills.eddc63f1737a019a.js" type="module"></script><script src="main.6973911fedddc5f0.js" type="module"></script>
|
||||
<script src="runtime.3a8ac8969006b863.js" type="module"></script><script src="polyfills.eddc63f1737a019a.js" type="module"></script><script src="main.0a28b146399d54a7.js" type="module"></script>
|
||||
|
||||
</body></html>
|
1
frontend/main.0a28b146399d54a7.js
Normal file
1
frontend/main.0a28b146399d54a7.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -12,7 +12,7 @@
|
||||
"buildfrontend": "ng build --configuration production",
|
||||
"buildbackend": "tsc --project tsconfig.json",
|
||||
"watchbackend": "tsc --project tsconfig.json --watch",
|
||||
"server": "set NODE_ENV=development&&nodemon ./rtl.js",
|
||||
"server": "set NODE_ENV=development&&nodemon --watch backend --watch server ./rtl.js",
|
||||
"serverUbuntu": "NODE_ENV=development nodemon --watch backend --watch server ./rtl.js",
|
||||
"testdev": "ng test --watch=true --code-coverage",
|
||||
"test": "ng test --watch=false",
|
||||
|
@ -241,7 +241,7 @@ export const getConfig = (req, res, next) => {
|
||||
if (jsonConfig['Application Options'] && jsonConfig['Application Options'].color) {
|
||||
jsonConfig['Application Options'].color = '#' + jsonConfig['Application Options'].color;
|
||||
}
|
||||
if (req.session.selectedNode.ln_implementation === 'ECL' && !jsonConfig['eclair.api.password']) {
|
||||
if (req.params.nodeType === 'ln' && req.session.selectedNode.ln_implementation === 'ECL' && !jsonConfig['eclair.api.password']) {
|
||||
fileFormat = 'HOCON';
|
||||
jsonConfig = parseHocon(data);
|
||||
}
|
||||
|
@ -12,7 +12,7 @@
|
||||
</mat-expansion-panel-header>
|
||||
<mat-panel-description fxLayout="column" fxFlex="100" fxLayoutAlign="start start">
|
||||
<span class="pre-wrap" [innerHTML]="helpTopic.help.answer"></span>
|
||||
<a class="mt-2" [routerLink]="flgLoggedIn ? LNPLink + helpTopic.help.link : '/login'">{{!flgLoggedIn ? 'Login to go to the page' : helpTopic.help.linkCaption}}</a>
|
||||
<a class="mt-2" [routerLink]="flgLoggedIn ? helpTopic.help.link : '/login'">{{!flgLoggedIn ? 'Login to go to the page' : helpTopic.help.linkCaption}}</a>
|
||||
</mat-panel-description>
|
||||
</mat-expansion-panel>
|
||||
</div>
|
||||
|
@ -24,7 +24,28 @@ export class HelpComponent implements OnInit, OnDestroy {
|
||||
public flgLoggedIn = false;
|
||||
private unSubs = [new Subject(), new Subject(), new Subject(), new Subject()];
|
||||
|
||||
constructor(private store: Store<RTLState>, private sessionService: SessionService) {
|
||||
constructor(private store: Store<RTLState>, private sessionService: SessionService) {}
|
||||
|
||||
ngOnInit() {
|
||||
this.store.select(rootSelectedNode).pipe(takeUntil(this.unSubs[0])).subscribe((selNode) => {
|
||||
this.selNode = selNode;
|
||||
if (this.selNode.lnImplementation && this.selNode.lnImplementation.trim() !== '') {
|
||||
this.LNPLink = '/' + this.selNode.lnImplementation.toLowerCase() + '/';
|
||||
this.addHelpTopics();
|
||||
}
|
||||
});
|
||||
this.sessionService.watchSession().
|
||||
pipe(takeUntil(this.unSubs[1])).
|
||||
subscribe((session) => {
|
||||
this.flgLoggedIn = !!session.token;
|
||||
});
|
||||
if (this.sessionService.getItem('token')) {
|
||||
this.flgLoggedIn = true;
|
||||
}
|
||||
}
|
||||
|
||||
addHelpTopics() {
|
||||
this.helpTopics = [];
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
question: 'Getting started',
|
||||
answer: 'Funding your node is the first step to get started.\n' +
|
||||
@ -33,8 +54,8 @@ export class HelpComponent implements OnInit, OnDestroy {
|
||||
'2. Send funds to the address.\n' +
|
||||
'3. Wait for the balance to be confirmed on-chain before proceeding further.\n' +
|
||||
'3. Connecting with network peers and opening channels is next.\n',
|
||||
link: 'onchain',
|
||||
linkCaption: 'On-Chain page',
|
||||
link: this.LNPLink + 'onchain/receive/utxos',
|
||||
linkCaption: 'On-Chain',
|
||||
lnImplementation: 'ALL'
|
||||
}));
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
@ -48,24 +69,25 @@ export class HelpComponent implements OnInit, OnDestroy {
|
||||
' a. View Info - View the peer details.\n' +
|
||||
' b. Open Channel - Open channel with the peer.\n' +
|
||||
' c. Disconnect - Disconnect from the peer.\n',
|
||||
link: 'peerschannels',
|
||||
linkCaption: 'Peers/Channels page',
|
||||
link: this.LNPLink + 'connections/peers',
|
||||
linkCaption: 'Peers',
|
||||
lnImplementation: 'ALL'
|
||||
}));
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
question: 'Opening Channels',
|
||||
answer: 'Open channels with a connected network peer.\n' +
|
||||
answer: 'Open channels with a connected peer.\n' +
|
||||
'Go to "Peer/Channels" page under the "Lightning" menu:\n' +
|
||||
'1. On the "Channels" section, select the alias of the connected peer from the drop-down\n' +
|
||||
'1. On the "Channels" section, click on "Open Channel"\n' +
|
||||
'2. On the "Open Channel" modal, select the alias of the connected peer from the drop-down\n' +
|
||||
'2. Specify the amount to commit to the channel and click on "Open Channel".\n' +
|
||||
'3. There are a variety of options available while opening a channel. \n' +
|
||||
' a. Private Channel - When this option is selected, a private channel is opened with the peer. \n' +
|
||||
' b. Priority (advanced option) - Specify either Target confirmation Block or Fee in Sat/vByte. \n' +
|
||||
' c. Spend Unconfirmd Output (advanced option) - Allow channels to be opened with unconfirmed UTXOs.\n' +
|
||||
'4. Track the pending open channels under the "Pending" tab . \n' +
|
||||
'4. Track the pending open channels under the "Pending" tab. \n' +
|
||||
'5. Wait for the channel to be confirmed. Only a confimed channel can be used for payments or routing. \n',
|
||||
link: 'peerschannels',
|
||||
linkCaption: 'Peers/Channels page',
|
||||
link: this.LNPLink + 'connections/channels/open',
|
||||
linkCaption: 'Channels',
|
||||
lnImplementation: 'ALL'
|
||||
}));
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
@ -76,49 +98,70 @@ export class HelpComponent implements OnInit, OnDestroy {
|
||||
' a. View Info - View the channel details.\n' +
|
||||
' b. View Remote Fee - View the fee policy on the channel of the remote peer.\n' +
|
||||
' c. Update Fee Policy - Modify the fee policy on the channel.\n' +
|
||||
' d. Close Channel - Close the channel.\n' +
|
||||
' d. Circular Rebalance - Off-chain rebalance channels by making a payment to yourself across a circular path of chained payment channels.\n' +
|
||||
' e. Close Channel - Close the channel.\n' +
|
||||
'2. Balance Score is a "balancedness" metric score for the channel. \n' +
|
||||
' a. It helps measure how balanced the remote and local balances are, on a channel.\n' +
|
||||
' b. A perfectly balanced channel has a score of one, where as a completely lopsided one has a score of zero.\n' +
|
||||
' c. The formula for calculating the score is "1 - abs((local bal - remote bal)/total bal)".\n',
|
||||
link: 'peerschannels',
|
||||
linkCaption: 'Peers/Channels page',
|
||||
link: this.LNPLink + 'connections/channels/open',
|
||||
linkCaption: 'Channels',
|
||||
lnImplementation: 'ALL'
|
||||
}));
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
question: 'Lightning Transactions - Payments',
|
||||
question: 'Buying Liquidity',
|
||||
answer: 'Buying liquidity for your node.\n' +
|
||||
'Go to "Liquidity Ads" page under the "Lightning" menu:\n' +
|
||||
' 1. Filter ads by liquidity amount and channel opening fee rate.\n' +
|
||||
' 2. Research additionally on liquidity provider nodes before selecting.\n' +
|
||||
' 3. Select the best liquidity node peer for your need and click on "Open Channel" from "Actions" drop-down.\n' +
|
||||
' 4. Confirm amount, rates and total cost on the modal and click on "Execute" to buy liquidity.\n',
|
||||
link: this.LNPLink + 'liquidityads',
|
||||
linkCaption: 'Liquidity Ads',
|
||||
lnImplementation: 'CLN'
|
||||
}));
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
question: 'Payments',
|
||||
answer: 'Sending Payments from your node.\n' +
|
||||
'Go to the "Transactions" page under the "Lightning" menu :\n' +
|
||||
'Payments tab is for making payments via your node\n' +
|
||||
' 1. Input a non-expired lightning invoice (Bolt11 format) in the "Payment request" field and click on "Send Payment" to send.\n' +
|
||||
' 1. Input a non-expired lightning invoice (Bolt11 format) in the "Payment Request" field and click on "Send Payment" to send.\n' +
|
||||
' 2. Advanced option # 1 (LND only) - Specify a limit on the routing fee which you are willing to pay, for the payment.\n' +
|
||||
' 3. Advanced option # 2 (LND only) - Specify the outgoing channel which you want the payment to go through.\n',
|
||||
link: 'transactions',
|
||||
linkCaption: 'Transactions page',
|
||||
link: this.LNPLink + 'transactions/payments',
|
||||
linkCaption: 'Payments',
|
||||
lnImplementation: 'ALL'
|
||||
}));
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
question: 'Lightning Transactions - Invoices',
|
||||
question: 'Invoices',
|
||||
answer: 'Receiving Payments on your node.\n' +
|
||||
'Go to the "Transactions" page under the "Lightning" menu :\n' +
|
||||
'Invoices tab is for receiving payments on your node.\n' +
|
||||
' 1. Memo - Description you want to provide on the invoice.\n' +
|
||||
' 2. Expiry - The time period, after which the invoice will be invalid.\n' +
|
||||
' 3. Private Routing Hints - Generate an invoice with routing hints for private channels.\n',
|
||||
link: 'transactions',
|
||||
linkCaption: 'Transactions page',
|
||||
link: this.LNPLink + 'transactions/invoices',
|
||||
linkCaption: 'Invoices',
|
||||
lnImplementation: 'ALL'
|
||||
}));
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
question: 'Lightning Transactions - Query Route',
|
||||
answer: 'Querying Payment Routes.\n' +
|
||||
question: 'Offers',
|
||||
answer: 'Send offer payments, create offer invoices and bookmark paid offers on your node.\n' +
|
||||
'Go to the "Transactions" page under the "Lightning" menu :\n' +
|
||||
'Query Routes tab is for querying a potential path to a node and a routing fee estimate for a payment amount.\n' +
|
||||
' 1. Destination Pubkey - Pubkey of the node, you want to send the payment to.\n' +
|
||||
' 2. Amount - Amount in Sats, which you want to send to the node.\n',
|
||||
link: 'transactions',
|
||||
linkCaption: 'Transactions page',
|
||||
lnImplementation: 'ALL'
|
||||
'Payment for bolt12 offer invoice can be done on "Payments" tab:\n' +
|
||||
' 1. Click on "Send Payment" button.\n' +
|
||||
' 2. Select "Offer" option on the modal.\n' +
|
||||
' 2. Offer Request - Input offer request (Bolt12 format) in the input box.\n' +
|
||||
' 3. Bookmark - Select the checkbox to bookmark this offer for future use.\n' +
|
||||
'Offers tab is for creating bolt12 offer invoice on your node:\n' +
|
||||
' 1. Click on "Create Offer" button.\n' +
|
||||
' 2. Description - Description you want to provide on the offer invoice.\n' +
|
||||
' 3. Amount - Amount for the offer invoice.\n' +
|
||||
' 4. Vendor - Vendor of the offer.\n' +
|
||||
'Paid offer bookmarks shows the list of paid offers saved for future payments.\n',
|
||||
link: this.LNPLink + 'transactions/offers',
|
||||
linkCaption: 'Offers',
|
||||
lnImplementation: 'CLN'
|
||||
}));
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
question: 'Channel Backups',
|
||||
@ -128,7 +171,7 @@ export class HelpComponent implements OnInit, OnDestroy {
|
||||
'You can verify the all channel backup file by clicking on "Verify All" Button on the backup page.\n' +
|
||||
'You can also backup each channel individually and verify them.\n' +
|
||||
'** Keep taking backups of your channels regularly and store them in redundant locations **.\n',
|
||||
link: 'backup',
|
||||
link: this.LNPLink + 'channelbackup/bckup',
|
||||
linkCaption: 'Channel Backups',
|
||||
lnImplementation: 'LND'
|
||||
}));
|
||||
@ -150,8 +193,8 @@ export class HelpComponent implements OnInit, OnDestroy {
|
||||
'8. The pending close channels can be viewed under the "Pending" tab on the "Peer/Channels" page.\n' +
|
||||
'9. Once the channel is closed, the corresponding pending on-chain transactions can be viewed on the "On-Chain" page.\n' +
|
||||
'10. Once the transactions are confirmed, the channels funds will be restored to your LND Wallet.\n',
|
||||
link: 'backup',
|
||||
linkCaption: 'Channel Backups',
|
||||
link: this.LNPLink + 'channelbackup/restore',
|
||||
linkCaption: 'Channel Restore',
|
||||
lnImplementation: 'LND'
|
||||
}));
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
@ -159,10 +202,19 @@ export class HelpComponent implements OnInit, OnDestroy {
|
||||
answer: 'Transactions routed by the node.\n' +
|
||||
'Go to "Routing" page under the "Lightning" menu :\n' +
|
||||
'Transactions routed by the node are listed on this page along with channels and the fee earned by transaction.\n',
|
||||
link: 'routing',
|
||||
link: this.LNPLink + 'routing/forwardinghistory',
|
||||
linkCaption: 'Forwarding History',
|
||||
lnImplementation: 'ALL'
|
||||
}));
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
question: 'Lightning Reports',
|
||||
answer: 'Routing and transactions data reports.\n' +
|
||||
'Go to "Reports" page under the "Lightning" menu :\n' +
|
||||
'Report can be generated on monthly/yearly basis by selecting the reporting period, month, and year.\n',
|
||||
link: this.LNPLink + 'reports/routingreport',
|
||||
linkCaption: 'Reports',
|
||||
lnImplementation: 'ALL'
|
||||
}));
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
question: 'Graph Lookup',
|
||||
answer: 'Querying your node graph for network node and channel information.\n' +
|
||||
@ -171,48 +223,73 @@ export class HelpComponent implements OnInit, OnDestroy {
|
||||
'You can lookup information on nodes and channels from your graph:\n' +
|
||||
' 1. Node Lookup - Enter the pubkey to perform the lookup.\n' +
|
||||
' 2. Channel Lookup - Enter the short channel ID to perform the lookup.\n',
|
||||
link: 'lookups',
|
||||
linkCaption: 'Graph Lookup page',
|
||||
link: this.LNPLink + 'graph/lookups',
|
||||
linkCaption: 'Graph Lookup',
|
||||
lnImplementation: 'ALL'
|
||||
}));
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
question: 'Settings',
|
||||
answer: 'RTL Offers certain customizations on the UI to personalize your experience on the app\n' +
|
||||
'Go to "Settings" page to access the customization options.\n' +
|
||||
question: 'Query Route',
|
||||
answer: 'Querying Payment Routes.\n' +
|
||||
'Go to the "Graph Lookup" page under the "Lightning" menu :\n' +
|
||||
'Query Routes tab is for querying a potential path to a node and a routing fee estimate for a payment amount.\n' +
|
||||
' 1. Destination Pubkey - Pubkey of the node, you want to send the payment to.\n' +
|
||||
' 2. Amount - Amount in Sats, which you want to send to the node.\n',
|
||||
link: this.LNPLink + 'graph/queryroutes',
|
||||
linkCaption: 'Query Routes',
|
||||
lnImplementation: 'ALL'
|
||||
}));
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
question: 'Sign & Verify Messages',
|
||||
answer: 'Messages signing and verification.\n' +
|
||||
'Go to the "Sign/Verify" page under the "Lightning" menu :\n' +
|
||||
' 1. Sign your message on "Sign" tab.\n' +
|
||||
' 2. Go to "Verify" tab to verify a message.\n',
|
||||
link: this.LNPLink + 'messages/sign',
|
||||
linkCaption: 'Messages',
|
||||
lnImplementation: 'LND'
|
||||
}));
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
question: 'Sign & Verify Messages',
|
||||
answer: 'Messages signing and verification.\n' +
|
||||
'Go to the "Sign/Verify" page under the "Lightning" menu :\n' +
|
||||
' 1. Sign your message on "Sign" tab.\n' +
|
||||
' 2. Go to "Verify" tab to verify a message.\n',
|
||||
link: this.LNPLink + 'messages/sign',
|
||||
linkCaption: 'Messages',
|
||||
lnImplementation: 'CLN'
|
||||
}));
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
question: 'Node Settings',
|
||||
answer: 'RTL offers certain customizations on the UI to personalize your experience on the app\n' +
|
||||
'Go to "Node Config" page to access the customization options.\n' +
|
||||
'Node Layout Options\n' +
|
||||
' 1. User Persona - Two options are available to change the dashboard based on the persona.\n' +
|
||||
' 2. Currency Unit - You can choose your preferred fiat currency, to view the onchain and channel balances in the choosen fiat currency.\n' +
|
||||
' 3. Default Node - If you are managing multiple nodes via RTL UI, you can select the default node to load upon login.\n' +
|
||||
'Other Customizations include day and night mode and a choice of color themes to select from.\n',
|
||||
' 3. Other customizations include day and night mode and a choice of color themes to select from.\n' +
|
||||
'Services Options\n' +
|
||||
' Loop (LND only), Boltz (LND only) & Peerswap (CLN only) services can be configured.\n' +
|
||||
'Experimental Options (CLN only)\n' +
|
||||
' Offers and Liquidity Ads can be enabled/disabled.\n' +
|
||||
'Show LN Config (if configured)\n' +
|
||||
' Shows lightning config file.\n',
|
||||
link: '../config/layout',
|
||||
linkCaption: 'Node Settings',
|
||||
lnImplementation: 'ALL'
|
||||
}));
|
||||
this.helpTopics.push(new HelpTopic({
|
||||
question: 'Application Settings',
|
||||
answer: 'RTL also offers certain customizations on the application level\n' +
|
||||
'Go to top right menu "Settings" page to access these options.\n' +
|
||||
'Default Node Option\n' +
|
||||
'If you are managing multiple nodes via RTL UI, you can select the default node to load upon login.\n' +
|
||||
'Authentication Option\n' +
|
||||
'Password and 2FA update options are available here.\n' +
|
||||
'Show Bitcoin Config (if configured)\n' +
|
||||
' Shows bitcoin config file.\n',
|
||||
link: '../settings/app',
|
||||
linkCaption: 'Application Settings',
|
||||
lnImplementation: 'ALL'
|
||||
}));
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.store.select(rootSelectedNode).pipe(takeUntil(this.unSubs[0])).subscribe((selNode) => {
|
||||
this.selNode = selNode;
|
||||
switch (this.selNode.lnImplementation?.toUpperCase()) {
|
||||
case 'CLN':
|
||||
this.LNPLink = '/cln/';
|
||||
break;
|
||||
|
||||
case 'ECL':
|
||||
this.LNPLink = '/ecl/';
|
||||
break;
|
||||
|
||||
default:
|
||||
this.LNPLink = '/lnd/';
|
||||
break;
|
||||
}
|
||||
});
|
||||
this.sessionService.watchSession().
|
||||
pipe(takeUntil(this.unSubs[1])).
|
||||
subscribe((session) => {
|
||||
this.flgLoggedIn = !!session.token;
|
||||
});
|
||||
if (this.sessionService.getItem('token')) {
|
||||
this.flgLoggedIn = true;
|
||||
}
|
||||
}
|
||||
|
||||
ngOnDestroy() {
|
||||
|
@ -115,7 +115,7 @@ export class ExperimentalSettingsComponent implements OnInit, OnDestroy {
|
||||
onUpdateFundingPolicy() {
|
||||
this.flgUpdateCalled = true;
|
||||
this.updateMsg = {};
|
||||
this.dataService.getOrUpdateFunderPolicy(this.selPolicyType.id, this.policyMod, this.leaseFeeBaseSat, this.leaseFeeBasis, (this.channelFeeMaxBaseSat || 0) * 1000, this.channelFeeMaxProportional ? this.channelFeeMaxProportional / 1000 : 0).
|
||||
this.dataService.getOrUpdateFunderPolicy(this.selPolicyType.id, this.policyMod, ((this.leaseFeeBaseSat || 0) * 1000), this.leaseFeeBasis, (this.channelFeeMaxBaseSat || 0) * 1000, this.channelFeeMaxProportional ? this.channelFeeMaxProportional / 1000 : 0).
|
||||
pipe(takeUntil(this.unSubs[4])).
|
||||
subscribe({
|
||||
next: (updatePolicyRes: any) => {
|
||||
|
@ -16,7 +16,6 @@ import { fetchConfig } from '../../../../store/rtl.actions';
|
||||
})
|
||||
export class LNPConfigComponent implements OnInit, OnDestroy {
|
||||
|
||||
public selectedNodeType = '';
|
||||
public configData = '';
|
||||
public fileFormat = 'INI';
|
||||
public faCog = faCog;
|
||||
@ -25,14 +24,7 @@ export class LNPConfigComponent implements OnInit, OnDestroy {
|
||||
constructor(private store: Store<RTLState>, private rtlEffects: RTLEffects, private router: Router) { }
|
||||
|
||||
ngOnInit() {
|
||||
this.selectedNodeType = (this.router.url.includes('bconfig')) ? 'bitcoind' : 'ln';
|
||||
this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)).
|
||||
subscribe({
|
||||
next: (value: ResolveEnd | Event) => {
|
||||
this.selectedNodeType = ((<ResolveEnd>value).urlAfterRedirects.includes('bconfig')) ? 'bitcoind' : 'ln';
|
||||
}
|
||||
});
|
||||
this.store.dispatch(fetchConfig({ payload: this.selectedNodeType }));
|
||||
this.store.dispatch(fetchConfig({ payload: 'ln' }));
|
||||
this.rtlEffects.showLnConfig.
|
||||
pipe(takeUntil(this.unSubs[1])).
|
||||
subscribe((config: any) => {
|
||||
|
@ -7,7 +7,8 @@
|
||||
<mat-card-content fxLayout="column">
|
||||
<nav mat-tab-nav-bar>
|
||||
<div role="tab" mat-tab-link class="mat-tab-label" [active]="activeLink === links[0].link" (click)="activeLink = links[0].link" routerLink="{{links[0].link}}">{{links[0].name}}</div>
|
||||
<div role="tab" mat-tab-link *ngIf="selNode?.lnImplementation?.toUpperCase() === 'LND' || selNode?.lnImplementation?.toUpperCase() === 'CLN'" class="mat-tab-label" [active]="activeLink === links[1].link" (click)="activeLink = links[1].link" routerLink="{{links[1].link}}" [state]="{ initial: false }">{{links[1].name}}</div>
|
||||
<!-- <div role="tab" mat-tab-link *ngIf="selNode?.lnImplementation?.toUpperCase() === 'LND' || selNode?.lnImplementation?.toUpperCase() === 'CLN'" class="mat-tab-label" [active]="activeLink === links[1].link" (click)="activeLink = links[1].link" routerLink="{{links[1].link}}" [state]="{ initial: false }">{{links[1].name}}</div> -->
|
||||
<div role="tab" mat-tab-link *ngIf="selNode?.lnImplementation?.toUpperCase() === 'LND'" class="mat-tab-label" [active]="activeLink === links[1].link" (click)="activeLink = links[1].link" routerLink="{{links[1].link}}" [state]="{ initial: false }">{{links[1].name}}</div>
|
||||
<div role="tab" mat-tab-link *ngIf="selNode?.lnImplementation?.toUpperCase() === 'CLN'" class="mat-tab-label" [active]="activeLink === links[2].link" (click)="activeLink = links[2].link" routerLink="{{links[2].link}}">{{links[2].name}}</div>
|
||||
<div role="tab" mat-tab-link *ngIf="showLnConfig" class="mat-tab-label" [active]="activeLink === links[3].link" (click)="showLnConfigClicked()">{{links[3].name}}</div>
|
||||
</nav>
|
||||
|
@ -16,7 +16,6 @@ import { fetchConfig } from '../../../../store/rtl.actions';
|
||||
})
|
||||
export class BitcoinConfigComponent implements OnInit, OnDestroy {
|
||||
|
||||
public selectedNodeType = '';
|
||||
public configData = '';
|
||||
public fileFormat = 'INI';
|
||||
public faCog = faCog;
|
||||
@ -25,14 +24,7 @@ export class BitcoinConfigComponent implements OnInit, OnDestroy {
|
||||
constructor(private store: Store<RTLState>, private rtlEffects: RTLEffects, private router: Router) { }
|
||||
|
||||
ngOnInit() {
|
||||
this.selectedNodeType = (this.router.url.includes('bconfig')) ? 'bitcoind' : 'ln';
|
||||
this.router.events.pipe(takeUntil(this.unSubs[0]), filter((e) => e instanceof ResolveEnd)).
|
||||
subscribe({
|
||||
next: (value: ResolveEnd | Event) => {
|
||||
this.selectedNodeType = ((<ResolveEnd>value).urlAfterRedirects.includes('bconfig')) ? 'bitcoind' : 'ln';
|
||||
}
|
||||
});
|
||||
this.store.dispatch(fetchConfig({ payload: this.selectedNodeType }));
|
||||
this.store.dispatch(fetchConfig({ payload: 'bitcoind' }));
|
||||
this.rtlEffects.showLnConfig.
|
||||
pipe(takeUntil(this.unSubs[1])).
|
||||
subscribe((config: any) => {
|
||||
|
@ -550,13 +550,10 @@ export class RTLEffects implements OnDestroy {
|
||||
initializeNode(node: ConfigSettingsNode, isInitialSetup: boolean) {
|
||||
this.logger.info('Initializing node from RTL Effects.');
|
||||
const landingPage = isInitialSetup ? '' : 'HOME';
|
||||
let selNode = {};
|
||||
const selNode = { userPersona: node.settings.userPersona, channelBackupPath: node.settings.channelBackupPath, selCurrencyUnit: node.settings.currencyUnit,
|
||||
currencyUnits: CURRENCY_UNITS, fiatConversion: node.settings.fiatConversion, lnImplementation: node.lnImplementation, swapServerUrl: node.settings.swapServerUrl, boltzServerUrl: node.settings.boltzServerUrl, enableOffers: node.settings.enableOffers, enablePeerswap: node.settings.enablePeerswap };
|
||||
if (node.settings.fiatConversion && node.settings.currencyUnit) {
|
||||
selNode = { userPersona: node.settings.userPersona, channelBackupPath: node.settings.channelBackupPath, selCurrencyUnit: node.settings.currencyUnit,
|
||||
currencyUnits: [...CURRENCY_UNITS, node.settings.currencyUnit], fiatConversion: node.settings.fiatConversion, lnImplementation: node.lnImplementation, swapServerUrl: node.settings.swapServerUrl, boltzServerUrl: node.settings.boltzServerUrl, enableOffers: node.settings.enableOffers, enablePeerswap: node.settings.enablePeerswap };
|
||||
} else {
|
||||
selNode = { userPersona: node.settings.userPersona, channelBackupPath: node.settings.channelBackupPath, selCurrencyUnit: node.settings.currencyUnit,
|
||||
currencyUnits: CURRENCY_UNITS, fiatConversion: node.settings.fiatConversion, lnImplementation: node.lnImplementation, swapServerUrl: node.settings.swapServerUrl, boltzServerUrl: node.settings.boltzServerUrl, enableOffers: node.settings.enableOffers, enablePeerswap: node.settings.enablePeerswap };
|
||||
selNode['currencyUnits'] = [...CURRENCY_UNITS, node.settings.currencyUnit];
|
||||
}
|
||||
this.sessionService.removeItem('lndUnlocked');
|
||||
this.sessionService.removeItem('clUnlocked');
|
||||
|
Loading…
Reference in New Issue
Block a user