From 51311401faa7509599ca550cf407c4ce9a63ca52 Mon Sep 17 00:00:00 2001 From: Jack Mallers Date: Fri, 18 Aug 2017 00:13:34 -0500 Subject: [PATCH] feature(lnd-ipc): replace API with ipc for listPeers --- app/lnd/index.js | 13 ++++++++++++- app/main.dev.js | 7 ++++++- app/reducers/info.js | 13 ++----------- app/reducers/ipc.js | 6 ++++-- app/reducers/peers.js | 15 ++++++--------- 5 files changed, 30 insertions(+), 24 deletions(-) diff --git a/app/lnd/index.js b/app/lnd/index.js index 7ec9df01..eaabff61 100644 --- a/app/lnd/index.js +++ b/app/lnd/index.js @@ -13,6 +13,17 @@ export function info() { }) } +export function peers() { + return new Promise((resolve, reject) => { + lnd.listPeers({}, (err, data) => { + if (err) { reject(err) } + + resolve(data) + }) + }) +} + export default { - info + info, + peers } \ No newline at end of file diff --git a/app/main.dev.js b/app/main.dev.js index de3ef5fd..42dbb633 100644 --- a/app/main.dev.js +++ b/app/main.dev.js @@ -96,7 +96,12 @@ ipcMain.on('lnd', (event, { msg, data }) => { switch(msg) { case 'info': lnd.info() - .then(info => event.sender.send('receivedInfo', info)) + .then(info => event.sender.send('receiveInfo', info)) + .catch(error => console.log('info error: ', error)) + break + case 'peers': + lnd.peers() + .then(peers => event.sender.send('receivePeers', peers)) .catch(error => console.log('info error: ', error)) break default: diff --git a/app/reducers/info.js b/app/reducers/info.js index 6b661214..9be0c5a2 100644 --- a/app/reducers/info.js +++ b/app/reducers/info.js @@ -1,5 +1,4 @@ import { ipcRenderer } from 'electron' -import { callApi } from '../api' // ------------------------------------ // Constants // ------------------------------------ @@ -15,22 +14,14 @@ export function getInfo() { } } - -export function receiveInfo(data) { - return { - type: RECEIVE_INFO, - data - } -} - -// Send IPC event for getifno +// Send IPC event for getinfo export const fetchInfo = () => async (dispatch) => { dispatch(getInfo()) ipcRenderer.send('lnd', { msg: 'info' }) } // Receive IPC event for info -export const receivedInfo = (event, data) => dispatch => dispatch({ type: RECEIVE_INFO, data }) +export const receiveInfo = (event, data) => dispatch => dispatch({ type: RECEIVE_INFO, data }) // ------------------------------------ // Action Handlers diff --git a/app/reducers/ipc.js b/app/reducers/ipc.js index f52e3856..02a68711 100644 --- a/app/reducers/ipc.js +++ b/app/reducers/ipc.js @@ -1,9 +1,11 @@ import createIpc from 'redux-electron-ipc' -import { receivedInfo } from './info' +import { receiveInfo } from './info' +import { receivePeers } from './peers' // Import all receiving IPC event handlers and pass them into createIpc const ipc = createIpc({ - 'receivedInfo': receivedInfo + 'receiveInfo': receiveInfo, + 'receivePeers': receivePeers }) export default ipc \ No newline at end of file diff --git a/app/reducers/peers.js b/app/reducers/peers.js index 8862e7e1..b2fb2c59 100644 --- a/app/reducers/peers.js +++ b/app/reducers/peers.js @@ -1,4 +1,5 @@ import { createSelector } from 'reselect' +import { ipcRenderer } from 'electron' import { callApi } from '../api' // ------------------------------------ // Constants @@ -79,19 +80,15 @@ export function getPeers() { } } -export function receivePeers({ peers }) { - return { - type: RECEIVE_PEERS, - peers - } -} - +// Send IPC event for peers export const fetchPeers = () => async (dispatch) => { dispatch(getPeers()) - const peers = await callApi('peers') - dispatch(receivePeers(peers.data)) + ipcRenderer.send('lnd', { msg: 'peers' }) } +// Receive IPC event for peers +export const receivePeers = (event, { peers }) => dispatch => dispatch({ type: RECEIVE_PEERS, peers }) + export const connectRequest = ({ pubkey, host }) => async (dispatch) => { dispatch(connectPeer()) const success = await callApi('connect', 'post', { pubkey, host })