Browse Source

feature(lnd-ipc): replace API with ipc for listPeers

renovate/lint-staged-8.x
Jack Mallers 8 years ago
parent
commit
51311401fa
  1. 13
      app/lnd/index.js
  2. 7
      app/main.dev.js
  3. 13
      app/reducers/info.js
  4. 6
      app/reducers/ipc.js
  5. 15
      app/reducers/peers.js

13
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 { export default {
info info,
peers
} }

7
app/main.dev.js

@ -96,7 +96,12 @@ ipcMain.on('lnd', (event, { msg, data }) => {
switch(msg) { switch(msg) {
case 'info': case 'info':
lnd.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)) .catch(error => console.log('info error: ', error))
break break
default: default:

13
app/reducers/info.js

@ -1,5 +1,4 @@
import { ipcRenderer } from 'electron' import { ipcRenderer } from 'electron'
import { callApi } from '../api'
// ------------------------------------ // ------------------------------------
// Constants // Constants
// ------------------------------------ // ------------------------------------
@ -15,22 +14,14 @@ export function getInfo() {
} }
} }
// Send IPC event for getinfo
export function receiveInfo(data) {
return {
type: RECEIVE_INFO,
data
}
}
// Send IPC event for getifno
export const fetchInfo = () => async (dispatch) => { export const fetchInfo = () => async (dispatch) => {
dispatch(getInfo()) dispatch(getInfo())
ipcRenderer.send('lnd', { msg: 'info' }) ipcRenderer.send('lnd', { msg: 'info' })
} }
// Receive IPC event for 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 // Action Handlers

6
app/reducers/ipc.js

@ -1,9 +1,11 @@
import createIpc from 'redux-electron-ipc' 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 // Import all receiving IPC event handlers and pass them into createIpc
const ipc = createIpc({ const ipc = createIpc({
'receivedInfo': receivedInfo 'receiveInfo': receiveInfo,
'receivePeers': receivePeers
}) })
export default ipc export default ipc

15
app/reducers/peers.js

@ -1,4 +1,5 @@
import { createSelector } from 'reselect' import { createSelector } from 'reselect'
import { ipcRenderer } from 'electron'
import { callApi } from '../api' import { callApi } from '../api'
// ------------------------------------ // ------------------------------------
// Constants // Constants
@ -79,19 +80,15 @@ export function getPeers() {
} }
} }
export function receivePeers({ peers }) { // Send IPC event for peers
return {
type: RECEIVE_PEERS,
peers
}
}
export const fetchPeers = () => async (dispatch) => { export const fetchPeers = () => async (dispatch) => {
dispatch(getPeers()) dispatch(getPeers())
const peers = await callApi('peers') ipcRenderer.send('lnd', { msg: 'peers' })
dispatch(receivePeers(peers.data))
} }
// Receive IPC event for peers
export const receivePeers = (event, { peers }) => dispatch => dispatch({ type: RECEIVE_PEERS, peers })
export const connectRequest = ({ pubkey, host }) => async (dispatch) => { export const connectRequest = ({ pubkey, host }) => async (dispatch) => {
dispatch(connectPeer()) dispatch(connectPeer())
const success = await callApi('connect', 'post', { pubkey, host }) const success = await callApi('connect', 'post', { pubkey, host })

Loading…
Cancel
Save