|
@ -40,6 +40,7 @@ export interface ConnectionInfo { |
|
|
readOnly?: string; |
|
|
readOnly?: string; |
|
|
cert?: string; |
|
|
cert?: string; |
|
|
}; |
|
|
}; |
|
|
|
|
|
p2pUriExternal: string; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
interface Props { |
|
|
interface Props { |
|
@ -51,8 +52,9 @@ const ConnectTab: React.FC<Props> = ({ node }) => { |
|
|
const [authType, setAuthType] = useState<string>('paths'); |
|
|
const [authType, setAuthType] = useState<string>('paths'); |
|
|
const { openInBrowser } = useStoreActions(s => s.app); |
|
|
const { openInBrowser } = useStoreActions(s => s.app); |
|
|
const nodeState = useStoreState(s => s.lightning.nodes[node.name]); |
|
|
const nodeState = useStoreState(s => s.lightning.nodes[node.name]); |
|
|
|
|
|
const pubkey = nodeState && nodeState.info ? nodeState.info.pubkey : ''; |
|
|
|
|
|
const p2pLnUrlInternal = nodeState && nodeState.info ? nodeState.info.rpcUrl : ''; |
|
|
|
|
|
|
|
|
const lnUrl = nodeState && nodeState.info ? nodeState.info.rpcUrl : ''; |
|
|
|
|
|
const info = useMemo((): ConnectionInfo => { |
|
|
const info = useMemo((): ConnectionInfo => { |
|
|
if (node.status === Status.Started) { |
|
|
if (node.status === Status.Started) { |
|
|
if (node.implementation === 'LND') { |
|
|
if (node.implementation === 'LND') { |
|
@ -67,6 +69,7 @@ const ConnectTab: React.FC<Props> = ({ node }) => { |
|
|
readOnly: lnd.paths.readonlyMacaroon, |
|
|
readOnly: lnd.paths.readonlyMacaroon, |
|
|
cert: lnd.paths.tlsCert, |
|
|
cert: lnd.paths.tlsCert, |
|
|
}, |
|
|
}, |
|
|
|
|
|
p2pUriExternal: `${pubkey}@127.0.0.1:${lnd.ports.p2p}`, |
|
|
}; |
|
|
}; |
|
|
} else if (node.implementation === 'c-lightning') { |
|
|
} else if (node.implementation === 'c-lightning') { |
|
|
const cln = node as CLightningNode; |
|
|
const cln = node as CLightningNode; |
|
@ -76,6 +79,7 @@ const ConnectTab: React.FC<Props> = ({ node }) => { |
|
|
credentials: { |
|
|
credentials: { |
|
|
admin: cln.paths.macaroon, |
|
|
admin: cln.paths.macaroon, |
|
|
}, |
|
|
}, |
|
|
|
|
|
p2pUriExternal: `${pubkey}@127.0.0.1:${cln.ports.p2p}`, |
|
|
}; |
|
|
}; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -85,7 +89,7 @@ const ConnectTab: React.FC<Props> = ({ node }) => { |
|
|
restDocsUrl: '', |
|
|
restDocsUrl: '', |
|
|
credentials: {}, |
|
|
credentials: {}, |
|
|
} as ConnectionInfo; |
|
|
} as ConnectionInfo; |
|
|
}, [node]); |
|
|
}, [node, pubkey]); |
|
|
|
|
|
|
|
|
if (node.status !== Status.Started) { |
|
|
if (node.status !== Status.Started) { |
|
|
return <>{l('notStarted')}</>; |
|
|
return <>{l('notStarted')}</>; |
|
@ -95,7 +99,12 @@ const ConnectTab: React.FC<Props> = ({ node }) => { |
|
|
const hosts: DetailValues = [ |
|
|
const hosts: DetailValues = [ |
|
|
[l('grpcHost'), grpcUrl, grpcUrl], |
|
|
[l('grpcHost'), grpcUrl, grpcUrl], |
|
|
[l('restHost'), restUrl, restUrl], |
|
|
[l('restHost'), restUrl, restUrl], |
|
|
[l('p2pLnUrl'), lnUrl, ellipseInner(lnUrl, 3, 19)], |
|
|
[l('p2pLnUrlInternal'), info.p2pUriExternal, ellipseInner(p2pLnUrlInternal, 3, 17)], |
|
|
|
|
|
[ |
|
|
|
|
|
l('p2pLnUrlExternal'), |
|
|
|
|
|
info.p2pUriExternal, |
|
|
|
|
|
ellipseInner(info.p2pUriExternal, 3, 17), |
|
|
|
|
|
], |
|
|
] |
|
|
] |
|
|
.filter(h => !!h[1]) // exclude empty values
|
|
|
.filter(h => !!h[1]) // exclude empty values
|
|
|
.map(([label, value, text]) => ({ |
|
|
.map(([label, value, text]) => ({ |
|
|