From 0f7d255a21955944adade104d929fd0d1ec475e7 Mon Sep 17 00:00:00 2001 From: Daniel Lugo Date: Fri, 6 Nov 2020 12:28:02 -0400 Subject: [PATCH 1/3] no longer send initial data --- src/routes.js | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/src/routes.js b/src/routes.js index 9c37421d..db22960a 100644 --- a/src/routes.js +++ b/src/routes.js @@ -708,24 +708,6 @@ module.exports = async ( user: { alias, publicKey - }, - follows: await GunGetters.Follows.currentFollows(), - data: { - invoices: await Common.makePromise((res, rej) => { - lightning.listInvoices( - { - reversed: true, - num_max_invoices: 50 - }, - (err, lres) => { - if (err) { - rej(new Error(err.details)) - } else { - res(lres) - } - } - ) - }) } }) From 0bd5fd0be54c667ebc25bc499f98db0b7cb74315 Mon Sep 17 00:00:00 2001 From: Daniel Lugo Date: Fri, 6 Nov 2020 12:59:03 -0400 Subject: [PATCH 2/3] await wallet warmup before lightning interactions --- src/routes.js | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/src/routes.js b/src/routes.js index db22960a..d17990f2 100644 --- a/src/routes.js +++ b/src/routes.js @@ -622,13 +622,39 @@ module.exports = async ( await Storage.set('trustedPKs', [...(trustedKeys || []), publicKey]) } - // Send an event to update lightning's status - mySocketsEvents.emit('updateLightning') + const { lightning } = LightningServices.services + + // Generate auth token and send it as a JSON response + const token = await auth.generateToken() + + // wait for wallet to warm up + await Common.Utils.makePromise((res, rej) => { + let tries = 0 + let intervalID = null + + intervalID = setInterval(() => { + if (tries === 3) { + rej(new Error(`Wallet did not warm up in under 3 seconds.`)) + + clearInterval(intervalID) + return + } + + tries++ + + lightning.listInvoices({}, err => { + if (!err) { + clearInterval(intervalID) + res() + } + }) + }, 1000) + }) //get the latest channel backups before subscribing const user = require('../services/gunDB/Mediator').getUser() const SEA = require('../services/gunDB/Mediator').mySEA - const { lightning } = LightningServices.services + lightning.exportAllChannelBackups({}, (err, channelBackups) => { if (err) { return handleError(res, err) @@ -640,6 +666,9 @@ module.exports = async ( ) }) + // Send an event to update lightning's status + mySocketsEvents.emit('updateLightning') + //register to listen for channel backups const onNewChannelBackup = () => { logger.warn('Subscribing to channel backup ...') @@ -701,8 +730,6 @@ module.exports = async ( onNewChannelBackup() startTipStatusJob() - // Generate auth token and send it as a JSON response - const token = await auth.generateToken() res.json({ authorization: token, user: { From a047dcf4e52df75f76036b17646e0407dbd83c02 Mon Sep 17 00:00:00 2001 From: Daniel Lugo Date: Fri, 6 Nov 2020 13:03:22 -0400 Subject: [PATCH 3/3] avoid duplicate heeaders sent by handleError() --- src/routes.js | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/routes.js b/src/routes.js index d17990f2..741c59da 100644 --- a/src/routes.js +++ b/src/routes.js @@ -655,15 +655,20 @@ module.exports = async ( const user = require('../services/gunDB/Mediator').getUser() const SEA = require('../services/gunDB/Mediator').mySEA - lightning.exportAllChannelBackups({}, (err, channelBackups) => { - if (err) { - return handleError(res, err) - } - GunActions.saveChannelsBackup( - JSON.stringify(channelBackups), - user, - SEA - ) + await Common.Utils.makePromise((res, rej) => { + lightning.exportAllChannelBackups({}, (err, channelBackups) => { + if (err) { + return rej(new Error(err.details)) + } + + res( + GunActions.saveChannelsBackup( + JSON.stringify(channelBackups), + user, + SEA + ) + ) + }) }) // Send an event to update lightning's status