diff --git a/app/lib/lnd/methods/channelController.js b/app/lib/lnd/methods/channelController.js index d7884457..d57ab823 100644 --- a/app/lib/lnd/methods/channelController.js +++ b/app/lib/lnd/methods/channelController.js @@ -19,13 +19,14 @@ function ensurePeerConnected(lnd, pubkey, host) { * @return {[type]} [description] */ export function connectAndOpen(lnd, event, payload) { - const { pubkey, host, localamt } = payload + const { pubkey, host, localamt, private: privateChannel } = payload return ensurePeerConnected(lnd, pubkey, host) .then(() => { const call = lnd.openChannel({ node_pubkey: Buffer.from(pubkey, 'hex'), - local_funding_amount: Number(localamt) + local_funding_amount: Number(localamt), + private: privateChannel }) call.on('data', data => event.sender.send('pushchannelupdated', { pubkey, data })) diff --git a/app/reducers/channels.js b/app/reducers/channels.js index 5402a4ea..d62b9d24 100644 --- a/app/reducers/channels.js +++ b/app/reducers/channels.js @@ -1,5 +1,6 @@ import { createSelector } from 'reselect' import { ipcRenderer } from 'electron' +import Store from 'electron-store' import { btc } from 'lib/utils' import { showNotification } from 'lib/utils/notifications' import { requestSuggestedNodes } from 'lib/utils/api' @@ -191,7 +192,16 @@ export const openChannel = ({ pubkey, host, local_amt }) => (dispatch, getState) dispatch(openingChannel()) dispatch(addLoadingPubkey(pubkey)) - ipcRenderer.send('lnd', { msg: 'connectAndOpen', data: { pubkey, host, localamt } }) + // Grab the activeConnection type from our local store. If the active connection type is local (light clients using + // neutrino) we will flag manually created channels as private. Other connections like remote node and BTCPay Server + // we will announce to the network as these users are using Zap to drive nodes that are online 24/7 + const store = new Store({ name: 'settings' }) + const { type } = store.get('activeConnection', {}) + + ipcRenderer.send('lnd', { + msg: 'connectAndOpen', + data: { pubkey, host, localamt, private: type === 'local' } + }) } // TODO: Decide how to handle streamed updates for channels diff --git a/test/unit/reducers/channels.spec.js b/test/unit/reducers/channels.spec.js index 6beb81b8..fd7dca56 100644 --- a/test/unit/reducers/channels.spec.js +++ b/test/unit/reducers/channels.spec.js @@ -1,3 +1,5 @@ +// @flow + import channelsReducer, { SET_CHANNEL_FORM, SET_CHANNEL,