Browse Source

IT FUCKING WORKED

renovate/lint-staged-8.x
Jack Mallers 8 years ago
parent
commit
ee5a3a540e
  1. 8
      app/generate_certs.sh
  2. 19
      app/lnd/index.js
  3. 5
      app/lnd/methods/index.js
  4. 89
      app/main.dev.js
  5. 1
      gang.txt
  6. 19
      generate_certs.sh
  7. 3
      package.json
  8. BIN
      resources/binaries/lnd
  9. 18
      webpack.config.renderer.dev.js
  10. 16
      yarn.lock

8
app/generate_certs.sh

@ -0,0 +1,8 @@
# Generate Node.js compatible certs
echo >> file.txt
echo "HERE CREATING COMPATIBLE CERTS"
openssl ecparam -genkey -name prime256v1 -out ~/Library/Application\ Support/Lnd/tls.key
openssl req -new -sha256 -key ~/Library/Application\ Support/Lnd/tls.key -out ~/Library/Application\ Support/Lnd/csr.csr -subj '/CN=localhost/O=lnd'
openssl req -x509 -sha256 -days 3650 -key ~/Library/Application\ Support/Lnd/tls.key -in ~/Library/Application\ Support/Lnd/csr.csr -out ~/Library/Application\ Support/Lnd/tls.cert
rm ~/Library/Application\ Support/Lnd/csr.csr
echo "DONE CREATING COMPATIBLE CERTS YO"

19
app/lnd/index.js

@ -3,12 +3,25 @@ import lightning from './lib/lightning'
import subscribe from './subscribe' import subscribe from './subscribe'
import methods from './methods' import methods from './methods'
// const lnd = lightning(config.lightningRpc, config.lightningHost)
// const lndSubscribe = mainWindow => subscribe(mainWindow, lnd)
// const lndMethods = (event, msg, data) => methods(lnd, event, msg, data)
// export default {
// lndMethods,
// lndSubscribe
// }
export default (callback) => {
console.log('here')
const lnd = lightning(config.lightningRpc, config.lightningHost) const lnd = lightning(config.lightningRpc, config.lightningHost)
console.log('lnd: ', lnd)
const lndSubscribe = mainWindow => subscribe(mainWindow, lnd) const lndSubscribe = mainWindow => subscribe(mainWindow, lnd)
const lndMethods = (event, msg, data) => methods(lnd, event, msg, data) const lndMethods = (event, msg, data) => methods(lnd, event, msg, data)
export default { callback(lndSubscribe, lndMethods)
lndMethods,
lndSubscribe
} }

5
app/lnd/methods/index.js

@ -1,4 +1,5 @@
/* eslint no-console: 0 */ // --> OFF /* eslint no-console: 0 */ // --> OFF
// import grpc from 'grpc'
import * as invoicesController from './invoicesController' import * as invoicesController from './invoicesController'
import * as channelController from './channelController' import * as channelController from './channelController'
@ -17,6 +18,10 @@ import * as networkController from './networkController'
// TODO - SendPayment // TODO - SendPayment
// TODO - DeleteAllPayments // TODO - DeleteAllPayments
// const metadata = new grpc.Metadata()
// var macaroonHex = fs.readFileSync('~/Library/Application Support/Lnd/admin.macaroon').toString('hex')
// metadata.add('macaroon', macaroonHex)
export default function (lnd, event, msg, data) { export default function (lnd, event, msg, data) {
switch (msg) { switch (msg) {

89
app/main.dev.js

@ -12,10 +12,17 @@
* @flow * @flow
*/ */
import { app, BrowserWindow, ipcMain } from 'electron' import { app, BrowserWindow, ipcMain } from 'electron'
import fs from 'fs'
import { spawn, exec } from 'child_process'
import { lookup } from 'ps-node'
import { userInfo } from 'os'
import MenuBuilder from './menu' import MenuBuilder from './menu'
import { lndSubscribe, lndMethods } from './lnd' // import { lndSubscribe, lndMethods } from './lnd'
import lnd from './lnd'
let mainWindow = null
let neutrino = null
let mainWindow = null;
if (process.env.NODE_ENV === 'production') { if (process.env.NODE_ENV === 'production') {
const sourceMapSupport = require('source-map-support'); const sourceMapSupport = require('source-map-support');
@ -91,11 +98,85 @@ app.on('ready', async () => {
const menuBuilder = new MenuBuilder(mainWindow); const menuBuilder = new MenuBuilder(mainWindow);
menuBuilder.buildMenu(); menuBuilder.buildMenu();
// Subscribe to LND events // Check to see if LND is running. If not, start it.
let neutrino = null
lookup({ command: 'lnd' }, (err, results) => {
if (err) { throw new Error( err ) }
if (!results.length) {
const lndCertPath = `/Users/${userInfo().username}/Library/Application Support/Lnd/tls.cert`
if (!fs.existsSync(lndCertPath)) {
console.log('GENERATING CERTS')
spawn(
'npm',
['run', 'generate_certs'],
{ shell: true }
)
}
// Alert user that LND is starting
console.log('STARTING LND')
// Start LND
neutrino = spawn(
'lnd',
[
'--bitcoin.active',
'--bitcoin.testnet',
'--neutrino.active',
'--neutrino.connect=faucet.lightning.community:18333',
'--autopilot.active',
'--debuglevel=debug',
'--no-macaroons'
]
)
.on('close', code => console.log(`lnd shutting down ${code}`))
neutrino.stdout.on('data', data => {
let line = data.toString('utf8')
console.log('line: ', line)
if (line.includes('Done catching up block hashes')) {
console.log('CERT EXISTS AND DONE CATCHING UP BLOCK HASHES')
lnd((lndSubscribe, lndMethods) => {
console.log('lndSubscribe: ', lndSubscribe)
console.log('lndMethods: ', lndMethods)
lndSubscribe(mainWindow)
ipcMain.on('lnd', (event, { msg, data }) => {
lndMethods(event, msg, data)
})
})
}
})
} else {
console.log('LND ALREADY RUNNING')
setTimeout(() => {
lnd((lndSubscribe, lndMethods) => {
console.log('lndSubscribe: ', lndSubscribe)
console.log('lndMethods: ', lndMethods)
lndSubscribe(mainWindow) lndSubscribe(mainWindow)
// LND CRUD methods
ipcMain.on('lnd', (event, { msg, data }) => { ipcMain.on('lnd', (event, { msg, data }) => {
lndMethods(event, msg, data) lndMethods(event, msg, data)
}) })
})
}, 10000)
}
})
// let neutrino = null
// spawn('lnd')
// lnd func
// const lnd = lnd((lndSubscribe, lndMethods) => {
// })
// Subscribe to LND events
// lndSubscribe(mainWindow)
// // LND CRUD methods
// ipcMain.on('lnd', (event, { msg, data }) => {
// lndMethods(event, msg, data)
// })
}); });

1
gang.txt

@ -0,0 +1 @@

19
generate_certs.sh

@ -0,0 +1,19 @@
# Generate Node.js compatible certs
echo >> gang.txt
# If Lnd folder doesn't exist we have to create it
if [ ! -d ~/Library/Application\ Support/Lnd ]; then
mkdir -p ~/Library/Application\ Support/Lnd;
fi
# Generate compatible certs
openssl ecparam -genkey -name prime256v1 -out ~/Library/Application\ Support/Lnd/tls.key
openssl req -new -sha256 -key ~/Library/Application\ Support/Lnd/tls.key -out ~/Library/Application\ Support/Lnd/csr.csr -subj '/CN=localhost/O=lnd'
openssl req -x509 -sha256 -days 3650 -key ~/Library/Application\ Support/Lnd/tls.key -in ~/Library/Application\ Support/Lnd/csr.csr -out ~/Library/Application\ Support/Lnd/tls.cert
rm ~/Library/Application\ Support/Lnd/csr.csr
# Linux
# openssl ecparam -genkey -name prime256v1 -out ~/.lnd/tls.key
# openssl req -new -sha256 -key ~/.lnd/tls.key -out ~/.lnd/csr.csr -subj '/CN=localhost/O=lnd'
# openssl req -x509 -sha256 -days 3650 -key ~/.lnd/tls.key -in ~/.lnd/csr.csr -out ~/.lnd/tls.cert
# rm ~/.lnd/csr.csr

3
package.json

@ -28,7 +28,7 @@
"test-all": "npm run lint && npm run flow && npm run build && npm run test && npm run test-e2e", "test-all": "npm run lint && npm run flow && npm run build && npm run test && npm run test-e2e",
"test-e2e": "cross-env NODE_ENV=test BABEL_DISABLE_CACHE=1 node --trace-warnings ./test/runTests.js e2e", "test-e2e": "cross-env NODE_ENV=test BABEL_DISABLE_CACHE=1 node --trace-warnings ./test/runTests.js e2e",
"test-watch": "npm test -- --watch", "test-watch": "npm test -- --watch",
"lnd": "lnd --bitcoin.active --bitcoin.testnet --debuglevel=debug --neutrino.active --neutrino.connect=faucet.lightning.community:18333 --no-macaroons" "generate_certs": "concurrently \"chmod +x generate_certs.sh\" \"./generate_certs.sh\""
}, },
"browserslist": "electron 1.6", "browserslist": "electron 1.6",
"build": { "build": {
@ -198,6 +198,7 @@
"lodash": "^4.17.4", "lodash": "^4.17.4",
"moment-timezone": "^0.5.13", "moment-timezone": "^0.5.13",
"prop-types": "^15.5.10", "prop-types": "^15.5.10",
"ps-node": "^0.1.6",
"qrcode.react": "^0.7.1", "qrcode.react": "^0.7.1",
"react": "^15.6.1", "react": "^15.6.1",
"react-addons-css-transition-group": "^15.6.0", "react-addons-css-transition-group": "^15.6.0",

BIN
resources/binaries/lnd

Binary file not shown.

18
webpack.config.renderer.dev.js

@ -8,15 +8,15 @@
* https://webpack.js.org/concepts/hot-module-replacement/ * https://webpack.js.org/concepts/hot-module-replacement/
*/ */
import path from 'path'; import path from 'path'
import fs from 'fs'; import fs from 'fs'
import webpack from 'webpack'; import webpack from 'webpack'
import chalk from 'chalk'; import chalk from 'chalk'
import merge from 'webpack-merge'; import merge from 'webpack-merge'
import { spawn, execSync } from 'child_process'; import { spawn, execSync } from 'child_process'
import ExtractTextPlugin from 'extract-text-webpack-plugin'; import ExtractTextPlugin from 'extract-text-webpack-plugin'
import baseConfig from './webpack.config.base'; import baseConfig from './webpack.config.base'
import CheckNodeEnv from './internals/scripts/CheckNodeEnv'; import CheckNodeEnv from './internals/scripts/CheckNodeEnv'
CheckNodeEnv('development'); CheckNodeEnv('development');

16
yarn.lock

@ -2189,6 +2189,10 @@ connect-history-api-fallback@^1.3.0:
version "1.3.0" version "1.3.0"
resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169"
connected-domain@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/connected-domain/-/connected-domain-1.0.0.tgz#bfe77238c74be453a79f0cb6058deeb4f2358e93"
console-browserify@^1.1.0: console-browserify@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
@ -7033,6 +7037,12 @@ prr@~0.0.0:
version "0.0.0" version "0.0.0"
resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
ps-node@^0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/ps-node/-/ps-node-0.1.6.tgz#9af67a99d7b1d0132e51a503099d38a8d2ace2c3"
dependencies:
table-parser "^0.1.3"
pseudomap@^1.0.1, pseudomap@^1.0.2: pseudomap@^1.0.1, pseudomap@^1.0.2:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
@ -8467,6 +8477,12 @@ synesthesia@^1.0.1:
dependencies: dependencies:
css-color-names "0.0.3" css-color-names "0.0.3"
table-parser@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/table-parser/-/table-parser-0.1.3.tgz#0441cfce16a59481684c27d1b5a67ff15a43c7b0"
dependencies:
connected-domain "^1.0.0"
table@^3.7.8: table@^3.7.8:
version "3.8.3" version "3.8.3"
resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"

Loading…
Cancel
Save