mirror of
https://github.com/Ride-The-Lightning/RTL.git
synced 2026-08-13 12:33:07 +02:00
Lazy Load Completed
Lazy Load Completed
This commit is contained in:
parent
b413992708
commit
108527d94c
10 changed files with 182 additions and 115 deletions
|
|
@ -4,7 +4,7 @@ root = true
|
|||
[*]
|
||||
charset = utf-8
|
||||
indent_style = tab
|
||||
indent_size = 2
|
||||
indent_size = 1
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ exports.updateSelectedNode = (req, res, next) => {
|
|||
const selNodeIndex = req.body.selNodeIndex;
|
||||
common.selectedNode = common.findNode(selNodeIndex);
|
||||
logger.info({fileName: 'RTLConf', msg: 'Selected Node Updated To: ' + JSON.stringify(common.selectedNode.ln_node)});
|
||||
res.status(200).json({status: 'Selected Node Updated!'});
|
||||
res.status(200).json({status: 'Selected Node Updated To: ' + JSON.stringify(common.selectedNode.ln_node) + '!'});
|
||||
};
|
||||
|
||||
exports.getRTLConfig = (req, res, next) => {
|
||||
|
|
|
|||
|
|
@ -23,52 +23,77 @@ export class CLEffects implements OnDestroy {
|
|||
private store: Store<fromRTLReducer.RTLState>,
|
||||
private logger: LoggerService) { }
|
||||
|
||||
@Effect()
|
||||
infoFetchCL = this.actions$.pipe(
|
||||
ofType(RTLActions.FETCH_CL_INFO),
|
||||
withLatestFrom(this.store.select('root')),
|
||||
mergeMap(([action, store]) => {
|
||||
this.store.dispatch(new RTLActions.ClearEffectErrorCl('FetchCLInfo'));
|
||||
return this.httpClient.get<GetInfoCL>(this.CHILD_API_URL + environment.GETINFO_API)
|
||||
.pipe(
|
||||
map((info) => {
|
||||
this.logger.info(info);
|
||||
sessionStorage.setItem('clUnlocked', 'true');
|
||||
return {
|
||||
type: RTLActions.SET_CL_INFO,
|
||||
payload: (undefined !== info) ? info : {}
|
||||
};
|
||||
}),
|
||||
catchError((err) => {
|
||||
this.logger.error(err);
|
||||
this.store.dispatch(new RTLActions.EffectErrorCl({ action: 'FetchCLInfo', code: err.status, message: err.error.error }));
|
||||
return of();
|
||||
})
|
||||
);
|
||||
}
|
||||
));
|
||||
@Effect()
|
||||
infoFetchCL = this.actions$.pipe(
|
||||
ofType(RTLActions.FETCH_CL_INFO),
|
||||
withLatestFrom(this.store.select('root')),
|
||||
mergeMap(([action, store]) => {
|
||||
this.store.dispatch(new RTLActions.ClearEffectErrorCl('FetchCLInfo'));
|
||||
return this.httpClient.get<GetInfoCL>(this.CHILD_API_URL + environment.GETINFO_API)
|
||||
.pipe(
|
||||
map((info) => {
|
||||
this.logger.info(info);
|
||||
let chainObj = {chain: '', network: ''};
|
||||
if (info.network === 'testnet') {
|
||||
chainObj.chain = 'Bitcoin';
|
||||
chainObj.network = 'Testnet';
|
||||
} else if (info.network === 'bitcoin') {
|
||||
chainObj.chain = 'Bitcoin';
|
||||
chainObj.network = 'Mainnet';
|
||||
} else if (info.network === 'litecoin') {
|
||||
chainObj.chain = 'Litecoin';
|
||||
chainObj.network = 'Mainnet';
|
||||
} else if (info.network === 'litecoin-testnet') {
|
||||
chainObj.chain = 'Litecoin';
|
||||
chainObj.network = 'Testnet';
|
||||
}
|
||||
sessionStorage.setItem('clUnlocked', 'true');
|
||||
const node_data = {
|
||||
identity_pubkey: info.id,
|
||||
alias: info.alias,
|
||||
testnet: (info.network === 'testnet' || info.network === 'litecoin-testnet') ? true : false,
|
||||
chains: [chainObj],
|
||||
version: info.version,
|
||||
currency_unit: 'BTC',
|
||||
smaller_currency_unit: 'Sats',
|
||||
numberOfPendingChannels: info.num_pending_channels
|
||||
};
|
||||
this.store.dispatch(new RTLActions.SetNodeData(node_data));
|
||||
return {
|
||||
type: RTLActions.SET_CL_INFO,
|
||||
payload: (undefined !== info) ? info : {}
|
||||
};
|
||||
}),
|
||||
catchError((err) => {
|
||||
this.logger.error(err);
|
||||
this.store.dispatch(new RTLActions.EffectErrorCl({ action: 'FetchCLInfo', code: err.status, message: err.error.error }));
|
||||
return of();
|
||||
})
|
||||
);
|
||||
}
|
||||
));
|
||||
|
||||
@Effect()
|
||||
fetchFeesCL = this.actions$.pipe(
|
||||
ofType(RTLActions.FETCH_CL_FEES),
|
||||
mergeMap((action: RTLActions.FetchCLFees) => {
|
||||
this.store.dispatch(new RTLActions.ClearEffectErrorCl('FetchCLFees'));
|
||||
return this.httpClient.get<FeesCL>(this.CHILD_API_URL + environment.FEES_API);
|
||||
}),
|
||||
map((fees) => {
|
||||
this.logger.info(fees);
|
||||
return {
|
||||
type: RTLActions.SET_CL_FEES,
|
||||
payload: (undefined !== fees) ? fees : {}
|
||||
};
|
||||
}),
|
||||
catchError((err: any) => {
|
||||
@Effect()
|
||||
fetchFeesCL = this.actions$.pipe(
|
||||
ofType(RTLActions.FETCH_CL_FEES),
|
||||
mergeMap((action: RTLActions.FetchCLFees) => {
|
||||
this.store.dispatch(new RTLActions.ClearEffectErrorCl('FetchCLFees'));
|
||||
return this.httpClient.get<FeesCL>(this.CHILD_API_URL + environment.FEES_API);
|
||||
}),
|
||||
map((fees) => {
|
||||
this.logger.info(fees);
|
||||
return {
|
||||
type: RTLActions.SET_CL_FEES,
|
||||
payload: (undefined !== fees) ? fees : {}
|
||||
};
|
||||
}),
|
||||
catchError((err: any) => {
|
||||
this.logger.error(err);
|
||||
this.store.dispatch(new RTLActions.EffectErrorCl({ action: 'FetchCLFees', code: err.status, message: err.error.error }));
|
||||
return of();
|
||||
}
|
||||
));
|
||||
));
|
||||
|
||||
ngOnDestroy() {}
|
||||
ngOnDestroy() { }
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,8 @@ export function CLReducer(state = initCLState, action: RTLActions.RTLActions) {
|
|||
};
|
||||
case RTLActions.RESET_CL_STORE:
|
||||
return {
|
||||
...initCLState
|
||||
...initCLState,
|
||||
nodeSettings: action.payload,
|
||||
};
|
||||
case RTLActions.SET_CL_INFO:
|
||||
return {
|
||||
|
|
|
|||
|
|
@ -19,15 +19,15 @@ export class LNDRootComponent implements OnInit, OnDestroy {
|
|||
constructor(private store: Store<fromRTLReducer.RTLState>, private actions$: Actions, private router: Router, private activatedRoute: ActivatedRoute) {}
|
||||
|
||||
ngOnInit() {
|
||||
this.store.dispatch(new RTLActions.FetchLndInfo());
|
||||
this.store.dispatch(new RTLActions.FetchInfo());
|
||||
this.router.navigate(['./home'], {relativeTo: this.activatedRoute});
|
||||
this.actions$.pipe(takeUntil(this.unsubs[0]), filter((action) => action.type === RTLActions.SET_LND_INFO || action.type === RTLActions.INIT_APP_DATA))
|
||||
.subscribe((infoData: RTLActions.SetLndInfo | RTLActions.InitAppData) => {
|
||||
if(infoData.type === RTLActions.SET_LND_INFO && undefined !== infoData.payload.identity_pubkey) {
|
||||
this.actions$.pipe(takeUntil(this.unsubs[0]), filter((action) => action.type === RTLActions.SET_INFO || action.type === RTLActions.INIT_APP_DATA))
|
||||
.subscribe((infoData: RTLActions.SetInfo | RTLActions.InitAppData) => {
|
||||
if(infoData.type === RTLActions.SET_INFO && undefined !== infoData.payload.identity_pubkey) {
|
||||
this.initializeRemainingData();
|
||||
}
|
||||
if(infoData.type === RTLActions.INIT_APP_DATA) {
|
||||
this.store.dispatch(new RTLActions.FetchLndInfo());
|
||||
this.store.dispatch(new RTLActions.FetchInfo());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import { MatDialog } from '@angular/material';
|
|||
|
||||
import { environment, API_URL } from '../../../environments/environment';
|
||||
import { LoggerService } from '../../shared/services/logger.service';
|
||||
import { GetInfo, Fees, Balance, NetworkInfo, Payment, GraphNode, Transaction, SwitchReq, ListInvoices } from '../../shared/models/lndModels';
|
||||
import { GetInfo, GetInfoChain, Fees, Balance, NetworkInfo, Payment, GraphNode, Transaction, SwitchReq, ListInvoices } from '../../shared/models/lndModels';
|
||||
|
||||
import * as RTLActions from '../../store/rtl.actions';
|
||||
import * as fromRTLReducer from '../../store/rtl.reducers';
|
||||
|
|
@ -32,7 +32,7 @@ export class LNDEffects implements OnDestroy {
|
|||
|
||||
@Effect()
|
||||
infoFetch = this.actions$.pipe(
|
||||
ofType(RTLActions.FETCH_LND_INFO),
|
||||
ofType(RTLActions.FETCH_INFO),
|
||||
withLatestFrom(this.store.select('root')),
|
||||
mergeMap(([action, store]) => {
|
||||
this.store.dispatch(new RTLActions.ClearEffectErrorLnd('FetchInfo'));
|
||||
|
|
@ -45,13 +45,39 @@ export class LNDEffects implements OnDestroy {
|
|||
this.logger.info('Redirecting to Unlock');
|
||||
this.router.navigate(['/lnd/unlocklnd']);
|
||||
return {
|
||||
type: RTLActions.SET_LND_INFO,
|
||||
type: RTLActions.SET_INFO,
|
||||
payload: {}
|
||||
};
|
||||
} else {
|
||||
sessionStorage.setItem('lndUnlocked', 'true');
|
||||
if (undefined !== info.chains) {
|
||||
if (typeof info.chains[0] === 'string') {
|
||||
info.smaller_currency_unit = (info.chains[0].toString().toLowerCase().indexOf('bitcoin') < 0) ? 'Litoshis' : 'Sats';
|
||||
info.currency_unit = (info.chains[0].toString().toLowerCase().indexOf('bitcoin') < 0) ? 'LTC' : 'BTC';
|
||||
} else if (typeof info.chains[0] === 'object' && info.chains[0].hasOwnProperty('chain')) {
|
||||
const getInfoChain = <GetInfoChain>info.chains[0];
|
||||
info.smaller_currency_unit = (getInfoChain.chain.toLowerCase().indexOf('bitcoin') < 0) ? 'Litoshis' : 'Sats';
|
||||
info.currency_unit = (getInfoChain.chain.toLowerCase().indexOf('bitcoin') < 0) ? 'LTC' : 'BTC';
|
||||
}
|
||||
info.version = (undefined === info.version) ? '' : info.version.split(' ')[0];
|
||||
} else {
|
||||
info.smaller_currency_unit = 'Sats';
|
||||
info.currency_unit = 'BTC';
|
||||
info.version = (undefined === info.version) ? '' : info.version.split(' ')[0];
|
||||
}
|
||||
const node_data = {
|
||||
identity_pubkey: info.identity_pubkey,
|
||||
alias: info.alias,
|
||||
testnet: info.testnet,
|
||||
chains: info.chains,
|
||||
version: info.version,
|
||||
currency_unit: info.currency_unit,
|
||||
smaller_currency_unit: info.smaller_currency_unit,
|
||||
numberOfPendingChannels: info.num_pending_channels
|
||||
};
|
||||
this.store.dispatch(new RTLActions.SetNodeData(node_data));
|
||||
return {
|
||||
type: RTLActions.SET_LND_INFO,
|
||||
type: RTLActions.SET_INFO,
|
||||
payload: (undefined !== info) ? info : {}
|
||||
};
|
||||
}
|
||||
|
|
@ -480,9 +506,26 @@ export class LNDEffects implements OnDestroy {
|
|||
map((channels: any) => {
|
||||
this.logger.info(channels);
|
||||
if (action.payload.routeParam === 'pending') {
|
||||
let pendingChannels = -1;
|
||||
if (channels) {
|
||||
pendingChannels = 0;
|
||||
if (channels.pending_closing_channels) {
|
||||
pendingChannels = pendingChannels + channels.pending_closing_channels.length;
|
||||
}
|
||||
if (channels.pending_force_closing_channels) {
|
||||
pendingChannels = pendingChannels + channels.pending_force_closing_channels.length;
|
||||
}
|
||||
if (channels.pending_open_channels) {
|
||||
pendingChannels = pendingChannels + channels.pending_open_channels.length;
|
||||
}
|
||||
if (channels.waiting_close_channels) {
|
||||
pendingChannels = pendingChannels + channels.waiting_close_channels.length;
|
||||
}
|
||||
}
|
||||
this.store.dispatch(new RTLActions.SetNodePendingChannelsData(pendingChannels));
|
||||
return {
|
||||
type: RTLActions.SET_PENDING_CHANNELS,
|
||||
payload: (undefined !== channels) ? channels : {}
|
||||
payload: (undefined !== channels) ? { channels: channels, pendingChannels: pendingChannels } : {channels: {}, pendingChannels: pendingChannels}
|
||||
};
|
||||
} else if (action.payload.routeParam === 'closed') {
|
||||
return {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { SelNodeChild } from '../../shared/models/RTLconfig';
|
||||
import { ErrorPayload } from '../../shared/models/errorPayload';
|
||||
import {
|
||||
GetInfo, GetInfoChain, Peer, AddressType, Fees, NetworkInfo, Balance, Channel, Payment, ListInvoices, PendingChannels, ClosedChannel, Transaction, SwitchRes, QueryRoutes
|
||||
GetInfo, Peer, AddressType, Fees, NetworkInfo, Balance, Channel, Payment, ListInvoices, PendingChannels, ClosedChannel, Transaction, SwitchRes, QueryRoutes
|
||||
} from '../../shared/models/lndModels';
|
||||
import * as RTLActions from '../../store/rtl.actions';
|
||||
|
||||
|
|
@ -79,24 +79,10 @@ export function LNDReducer(state = initLNDState, action: RTLActions.RTLActions)
|
|||
};
|
||||
case RTLActions.RESET_LND_STORE:
|
||||
return {
|
||||
...initLNDState
|
||||
...initLNDState,
|
||||
nodeSettings: action.payload,
|
||||
};
|
||||
case RTLActions.SET_LND_INFO:
|
||||
if (undefined !== action.payload.chains) {
|
||||
if (typeof action.payload.chains[0] === 'string') {
|
||||
action.payload.smaller_currency_unit = (action.payload.chains[0].toString().toLowerCase().indexOf('bitcoin') < 0) ? 'Litoshis' : 'Sats';
|
||||
action.payload.currency_unit = (action.payload.chains[0].toString().toLowerCase().indexOf('bitcoin') < 0) ? 'LTC' : 'BTC';
|
||||
} else if (typeof action.payload.chains[0] === 'object' && action.payload.chains[0].hasOwnProperty('chain')) {
|
||||
const getInfoChain = <GetInfoChain>action.payload.chains[0];
|
||||
action.payload.smaller_currency_unit = (getInfoChain.chain.toLowerCase().indexOf('bitcoin') < 0) ? 'Litoshis' : 'Sats';
|
||||
action.payload.currency_unit = (getInfoChain.chain.toLowerCase().indexOf('bitcoin') < 0) ? 'LTC' : 'BTC';
|
||||
}
|
||||
action.payload.version = (undefined === action.payload.version) ? '' : action.payload.version.split(' ')[0];
|
||||
} else {
|
||||
action.payload.smaller_currency_unit = 'Sats';
|
||||
action.payload.currency_unit = 'BTC';
|
||||
action.payload.version = (undefined === action.payload.version) ? '' : action.payload.version.split(' ')[0];
|
||||
}
|
||||
case RTLActions.SET_INFO:
|
||||
return {
|
||||
...state,
|
||||
information: action.payload
|
||||
|
|
@ -141,26 +127,10 @@ export function LNDReducer(state = initLNDState, action: RTLActions.RTLActions)
|
|||
closedChannels: action.payload,
|
||||
};
|
||||
case RTLActions.SET_PENDING_CHANNELS:
|
||||
let pendingChannels = -1;
|
||||
if (action.payload) {
|
||||
pendingChannels = 0;
|
||||
if (action.payload.pending_closing_channels) {
|
||||
pendingChannels = pendingChannels + action.payload.pending_closing_channels.length;
|
||||
}
|
||||
if (action.payload.pending_force_closing_channels) {
|
||||
pendingChannels = pendingChannels + action.payload.pending_force_closing_channels.length;
|
||||
}
|
||||
if (action.payload.pending_open_channels) {
|
||||
pendingChannels = pendingChannels + action.payload.pending_open_channels.length;
|
||||
}
|
||||
if (action.payload.waiting_close_channels) {
|
||||
pendingChannels = pendingChannels + action.payload.waiting_close_channels.length;
|
||||
}
|
||||
}
|
||||
return {
|
||||
...state,
|
||||
pendingChannels: action.payload,
|
||||
numberOfPendingChannels: pendingChannels,
|
||||
pendingChannels: action.payload.channels,
|
||||
numberOfPendingChannels: action.payload.pendingChannels,
|
||||
};
|
||||
case RTLActions.SET_CHANNELS:
|
||||
let localBal = 0, remoteBal = 0, activeChannels = 0, inactiveChannels = 0;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import { Action } from '@ngrx/store';
|
|||
|
||||
import { GetInfoCL } from '../shared/models/clModels';
|
||||
|
||||
import { RTLConfiguration, Settings, LightningNode } from '../shared/models/RTLconfig';
|
||||
import { RTLConfiguration, Settings, LightningNode, GetInfoRoot, SelNodeChild } from '../shared/models/RTLconfig';
|
||||
import { ErrorPayload } from '../shared/models/errorPayload';
|
||||
import {
|
||||
GetInfo, Peer, Balance, NetworkInfo, Fees, Channel, Invoice, ListInvoices, Payment, GraphNode, AddressType,
|
||||
|
|
@ -11,14 +11,8 @@ import {
|
|||
} from '../shared/models/lndModels';
|
||||
|
||||
export const RESET_ROOT_STORE = 'RESET_ROOT_STORE';
|
||||
export const RESET_LND_STORE = 'RESET_LND_STORE';
|
||||
export const RESET_CL_STORE = 'RESET_CL_STORE';
|
||||
export const CLEAR_EFFECT_ERROR_ROOT = 'CLEAR_EFFECT_ERROR_ROOT';
|
||||
export const EFFECT_ERROR_ROOT = 'EFFECT_ERROR_ROOT';
|
||||
export const CLEAR_EFFECT_ERROR_LND = 'CLEAR_EFFECT_ERROR_LND';
|
||||
export const EFFECT_ERROR_LND = 'EFFECT_ERROR_LND';
|
||||
export const CLEAR_EFFECT_ERROR_CL = 'CLEAR_EFFECT_ERROR_CL';
|
||||
export const EFFECT_ERROR_CL = 'EFFECT_ERROR_CL';
|
||||
export const OPEN_SPINNER = 'OPEN_SPINNER';
|
||||
export const CLOSE_SPINNER = 'CLOSE_SPINNER';
|
||||
export const OPEN_ALERT = 'OPEN_ALERT';
|
||||
|
|
@ -31,8 +25,14 @@ export const FETCH_RTL_CONFIG = 'FETCH_RTL_CONFIG';
|
|||
export const SET_RTL_CONFIG = 'SET_RTL_CONFIG';
|
||||
export const SAVE_SETTINGS = 'SAVE_SETTINGS';
|
||||
export const SET_SELECTED_NODE = 'SET_SELECTED_NODE';
|
||||
export const FETCH_LND_INFO = 'FETCH_LND_INFO';
|
||||
export const SET_LND_INFO = 'SET_LND_INFO';
|
||||
export const SET_NODE_DATA = 'SET_NODE_DATA';
|
||||
export const SET_NODE_PENDING_CHANNELS_DATA = 'SET_NODE_PENDING_CHANNELS_DATA';
|
||||
|
||||
export const RESET_LND_STORE = 'RESET_LND_STORE';
|
||||
export const CLEAR_EFFECT_ERROR_LND = 'CLEAR_EFFECT_ERROR_LND';
|
||||
export const EFFECT_ERROR_LND = 'EFFECT_ERROR_LND';
|
||||
export const FETCH_INFO = 'FETCH_INFO';
|
||||
export const SET_INFO = 'SET_INFO';
|
||||
export const FETCH_PEERS = 'FETCH_PEERS';
|
||||
export const SET_PEERS = 'SET_PEERS';
|
||||
export const SAVE_NEW_PEER = 'SAVE_NEW_PEER';
|
||||
|
|
@ -99,6 +99,9 @@ export const FETCH_CL_INFO = 'FETCH_CL_INFO';
|
|||
export const SET_CL_INFO = 'SET_CL_INFO';
|
||||
export const FETCH_CL_FEES = 'FETCH_CL_FEES';
|
||||
export const SET_CL_FEES = 'SET_CL_FEES';
|
||||
export const RESET_CL_STORE = 'RESET_CL_STORE';
|
||||
export const CLEAR_EFFECT_ERROR_CL = 'CLEAR_EFFECT_ERROR_CL';
|
||||
export const EFFECT_ERROR_CL = 'EFFECT_ERROR_CL';
|
||||
|
||||
export class ClearEffectErrorRoot implements Action {
|
||||
readonly type = CLEAR_EFFECT_ERROR_ROOT;
|
||||
|
|
@ -165,10 +168,12 @@ export class ResetRootStore implements Action {
|
|||
|
||||
export class ResetLNDStore implements Action {
|
||||
readonly type = RESET_LND_STORE;
|
||||
constructor(public payload: SelNodeChild) {}
|
||||
}
|
||||
|
||||
export class ResetCLStore implements Action {
|
||||
readonly type = RESET_CL_STORE;
|
||||
constructor(public payload: SelNodeChild) {}
|
||||
}
|
||||
|
||||
export class FetchRTLConfig implements Action {
|
||||
|
|
@ -190,12 +195,22 @@ export class SetSelelectedNode implements Action {
|
|||
constructor(public payload: LightningNode) {}
|
||||
}
|
||||
|
||||
export class FetchLndInfo implements Action {
|
||||
readonly type = FETCH_LND_INFO;
|
||||
export class SetNodeData implements Action {
|
||||
readonly type = SET_NODE_DATA;
|
||||
constructor(public payload: GetInfoRoot) {}
|
||||
}
|
||||
|
||||
export class SetLndInfo implements Action {
|
||||
readonly type = SET_LND_INFO;
|
||||
export class SetNodePendingChannelsData implements Action {
|
||||
readonly type = SET_NODE_PENDING_CHANNELS_DATA;
|
||||
constructor(public payload: number) {}
|
||||
}
|
||||
|
||||
export class FetchInfo implements Action {
|
||||
readonly type = FETCH_INFO;
|
||||
}
|
||||
|
||||
export class SetInfo implements Action {
|
||||
readonly type = SET_INFO;
|
||||
constructor(public payload: GetInfo) {}
|
||||
}
|
||||
|
||||
|
|
@ -283,7 +298,7 @@ export class UpdateChannels implements Action {
|
|||
|
||||
export class SetPendingChannels implements Action {
|
||||
readonly type = SET_PENDING_CHANNELS;
|
||||
constructor(public payload: PendingChannels) {}
|
||||
constructor(public payload: {channels: PendingChannels, pendingChannels: number}) {}
|
||||
}
|
||||
|
||||
export class SetClosedChannels implements Action {
|
||||
|
|
@ -521,7 +536,7 @@ export type RTLActions =
|
|||
OpenSpinner | CloseSpinner | FetchRTLConfig | SetRTLConfig | SaveSettings |
|
||||
OpenAlert | CloseAlert | OpenConfirmation | CloseConfirmation |
|
||||
ResetRootStore | ResetLNDStore | ResetCLStore |
|
||||
SetSelelectedNode | FetchLndInfo | SetLndInfo |
|
||||
SetSelelectedNode | SetNodeData | SetNodePendingChannelsData | FetchInfo | SetInfo |
|
||||
FetchPeers | SetPeers | AddPeer | DetachPeer | SaveNewPeer | RemovePeer |
|
||||
AddInvoice | SaveNewInvoice | GetForwardingHistory | SetForwardingHistory |
|
||||
FetchFees | SetFees |
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import { MatDialog } from '@angular/material';
|
|||
|
||||
import { environment, API_URL } from '../../environments/environment';
|
||||
import { LoggerService } from '../shared/services/logger.service';
|
||||
import { Settings } from '../shared/models/RTLconfig';
|
||||
import { Settings, RTLConfiguration } from '../shared/models/RTLconfig';
|
||||
import { GetInfo, Fees, Balance, NetworkInfo, Payment, GraphNode, Transaction, SwitchReq, ListInvoices } from '../shared/models/lndModels';
|
||||
|
||||
import { SpinnerDialogComponent } from '../shared/components/spinner-dialog/spinner-dialog.component';
|
||||
|
|
@ -92,9 +92,10 @@ export class RTLEffects implements OnDestroy {
|
|||
this.store.dispatch(new RTLActions.ClearEffectErrorRoot('FetchRTLConfig'));
|
||||
return this.httpClient.get(environment.CONF_API + '/rtlconf');
|
||||
}),
|
||||
map((rtlConfig: any) => {
|
||||
map((rtlConfig: RTLConfiguration) => {
|
||||
this.logger.info(rtlConfig);
|
||||
if (+rtlConfig.sso.rtlSSO) { this.store.dispatch(new RTLActions.Signout()); }
|
||||
this.store.dispatch(new RTLActions.SetSelelectedNode(rtlConfig.nodes.find(node => +node.index === rtlConfig.selectedNodeIndex)))
|
||||
return {
|
||||
type: RTLActions.SET_RTL_CONFIG,
|
||||
payload: rtlConfig
|
||||
|
|
@ -246,18 +247,19 @@ export class RTLEffects implements OnDestroy {
|
|||
this.logger.info(postRes);
|
||||
this.store.dispatch(new RTLActions.CloseSpinner());
|
||||
if (sessionStorage.getItem('token')) {
|
||||
let selNode = { channelBackupPath: action.payload.settings.channelBackupPath, satsToBTC: action.payload.settings.satsToBTC };
|
||||
this.store.dispatch(new RTLActions.ResetRootStore(action.payload));
|
||||
this.store.dispatch(new RTLActions.ResetLNDStore());
|
||||
this.store.dispatch(new RTLActions.ResetCLStore());
|
||||
if(action.payload.lnImplementation.toLowerCase() === 'clightning') {
|
||||
this.store.dispatch(new RTLActions.ResetLNDStore(selNode));
|
||||
this.store.dispatch(new RTLActions.ResetCLStore(selNode));
|
||||
if(action.payload.lnImplementation.toLowerCase() === 'clightning') {
|
||||
this.router.navigate(['/cl/home']);
|
||||
this.CHILD_API_URL = API_URL + '/cl';
|
||||
return { type: RTLActions.FETCH_CL_INFO };
|
||||
} else {
|
||||
this.router.navigate(['/lnd/home']);
|
||||
this.CHILD_API_URL = API_URL + '/lnd';
|
||||
this.store.dispatch(new RTLActions.FetchLndInfo());
|
||||
return { type: RTLActions.FETCH_LND_INFO };
|
||||
this.store.dispatch(new RTLActions.FetchInfo());
|
||||
return { type: RTLActions.FETCH_INFO };
|
||||
}
|
||||
} else {
|
||||
return {
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ export interface RootState {
|
|||
nodeData: GetInfoRoot
|
||||
}
|
||||
|
||||
const initNodeSettings = { flgSidenavOpened: true, flgSidenavPinned: true, menu: 'Vertical', menuType: 'Regular', theme: 'dark-blue', satsToBTC: false };
|
||||
const initNodeSettings = { flgSidenavOpened: true, flgSidenavPinned: true, menu: 'Vertical', menuType: 'Regular', theme: 'dark-blue', satsToBTC: false, channelBackupPath: '' };
|
||||
const initNodeAuthentication = { nodeAuthType: 'CUSTOM', lndConfigPath: '', bitcoindConfigPath: '' };
|
||||
|
||||
const initRootState: RootState = {
|
||||
|
|
@ -24,7 +24,7 @@ const initRootState: RootState = {
|
|||
sso: { rtlSSO: 0, logoutRedirectLink: '/login' },
|
||||
nodes: [{ settings: initNodeSettings, authentication: initNodeAuthentication}]
|
||||
},
|
||||
nodeData: { identity_pubkey: 'abc', alias: 'xyz', testnet: true, chains: [{chain: "bitcoin", network: "testnet"}], version: 'v0', currency_unit: 'BTC', smaller_currency_unit: 'SATS', numberOfPendingChannels: -1 }
|
||||
nodeData: {}
|
||||
};
|
||||
|
||||
export function RootReducer(state = initRootState, action: RTLActions.RTLActions) {
|
||||
|
|
@ -57,10 +57,21 @@ export function RootReducer(state = initRootState, action: RTLActions.RTLActions
|
|||
...state,
|
||||
selNode: action.payload
|
||||
};
|
||||
case RTLActions.SET_NODE_DATA:
|
||||
return {
|
||||
...state,
|
||||
nodeData: action.payload
|
||||
};
|
||||
case RTLActions.SET_NODE_PENDING_CHANNELS_DATA:
|
||||
const newNodeData = state.nodeData;
|
||||
newNodeData.numberOfPendingChannels = action.payload;
|
||||
return {
|
||||
...state,
|
||||
nodeData: newNodeData
|
||||
};
|
||||
case RTLActions.SET_RTL_CONFIG:
|
||||
return {
|
||||
...state,
|
||||
selNode: action.payload.nodes.find(node => +node.index === action.payload.selectedNodeIndex),
|
||||
appConfig: action.payload
|
||||
};
|
||||
default:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue