From 1c3520f7850814a6926bf9ec33bfbe35d7c16e57 Mon Sep 17 00:00:00 2001 From: Daniel Lugo Date: Fri, 3 Apr 2020 16:05:12 -0400 Subject: [PATCH 1/5] typo --- services/gunDB/contact-api/actions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/gunDB/contact-api/actions.js b/services/gunDB/contact-api/actions.js index 7f758808..aef38070 100644 --- a/services/gunDB/contact-api/actions.js +++ b/services/gunDB/contact-api/actions.js @@ -1073,7 +1073,7 @@ const sendPayment = async (to, amount, memo) => { if (Utils.successfulHandshakeAlreadyExists(to)) { await sendMessage( to, - encodeSpontaneousPayment(to, memo || 'no memo', preimage), + encodeSpontaneousPayment(amount, memo || 'no memo', preimage), require('../Mediator').getUser(), require('../Mediator').mySEA ) From 72ca45c853acf38fa297397d253bdb8ec49d9384 Mon Sep 17 00:00:00 2001 From: Daniel Lugo Date: Fri, 3 Apr 2020 16:06:09 -0400 Subject: [PATCH 2/5] return preimage from sendPayment() --- services/gunDB/contact-api/actions.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/gunDB/contact-api/actions.js b/services/gunDB/contact-api/actions.js index aef38070..9ddb0502 100644 --- a/services/gunDB/contact-api/actions.js +++ b/services/gunDB/contact-api/actions.js @@ -876,12 +876,13 @@ const sendHRWithInitialMsg = async ( } /** + * Returns the preimage corresponding to the payment. * @param {string} to * @param {number} amount * @param {string} memo * @throws {Error} If no response in less than 20 seconds from the recipient, or * lightning cannot find a route for the payment. - * @returns {Promise} + * @returns {Promise} The payment's preimage. */ const sendPayment = async (to, amount, memo) => { try { @@ -1078,6 +1079,8 @@ const sendPayment = async (to, amount, memo) => { require('../Mediator').mySEA ) } + + return preimage } catch (e) { logger.error('Error inside sendPayment()') logger.error(e) From 43f9795dc79dde48923b9e0c48ab84776d1c35cd Mon Sep 17 00:00:00 2001 From: Daniel Lugo Date: Fri, 3 Apr 2020 16:07:54 -0400 Subject: [PATCH 3/5] typo --- services/gunDB/Mediator/index.js | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/services/gunDB/Mediator/index.js b/services/gunDB/Mediator/index.js index 263da404..9b88fa5e 100644 --- a/services/gunDB/Mediator/index.js +++ b/services/gunDB/Mediator/index.js @@ -776,14 +776,7 @@ class Mediator { await throwOnInvalidToken(token) - await API.Actions.sendPayment( - recipientPub, - amount, - memo, - gun, - user, - mySEA - ) + await API.Actions.sendPayment(recipientPub, amount, memo) this.socket.emit(Action.SEND_PAYMENT, { ok: true, From d89b1284286c9df6754a0af74359487461ea197c Mon Sep 17 00:00:00 2001 From: Daniel Lugo Date: Fri, 3 Apr 2020 16:24:44 -0400 Subject: [PATCH 4/5] typings and typechecking --- services/gunDB/Mediator/index.js | 8 ++++---- utils/encryptionStore.js | 28 +++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/services/gunDB/Mediator/index.js b/services/gunDB/Mediator/index.js index 9b88fa5e..0e34ba4e 100644 --- a/services/gunDB/Mediator/index.js +++ b/services/gunDB/Mediator/index.js @@ -495,7 +495,7 @@ class Mediator { field: 'deviceId', message: 'Please specify a device ID' } - logger.error(error) + logger.error(JSON.stringify(error)) return false } @@ -925,7 +925,7 @@ class Mediator { API.Events.onChats(chats => { if (Config.SHOW_LOG) { logger.info('---chats---') - logger.info(chats) + logger.info(JSON.stringify(chats)) logger.info('-----------------------') } @@ -957,7 +957,7 @@ class Mediator { API.Events.onDisplayName(displayName => { if (Config.SHOW_LOG) { logger.info('---displayName---') - logger.info(displayName) + logger.info(displayName || 'null or empty string') logger.info('-----------------------') } @@ -989,7 +989,7 @@ class Mediator { API.Events.onCurrentHandshakeAddress(addr => { if (Config.SHOW_LOG) { logger.info('---addr---') - logger.info(addr) + logger.info(addr || 'null or empty string') logger.info('-----------------------') } diff --git a/utils/encryptionStore.js b/utils/encryptionStore.js index ba4f8191..a946bc2f 100644 --- a/utils/encryptionStore.js +++ b/utils/encryptionStore.js @@ -16,7 +16,14 @@ const nonEncryptedEvents = [ ] const Encryption = { + /** + * @param {string} event + * @returns {boolean} + */ isNonEncrypted: event => nonEncryptedEvents.includes(event), + /** + * @param {{ deviceId: string , message: string }} arg0 + */ encryptKey: ({ deviceId, message }) => { if (!authorizedDevices.has(deviceId)) { throw { field: 'deviceId', message: 'Unknown Device ID' } @@ -33,6 +40,9 @@ const Encryption = { ) return encryptedData.toString('base64') }, + /** + * @param {{ deviceId: string , message: string }} arg0 + */ decryptKey: ({ deviceId, message }) => { if (!authorizedDevices.has(deviceId)) { throw { field: 'deviceId', message: 'Unknown Device ID' } @@ -49,6 +59,9 @@ const Encryption = { return encryptedData.toString() }, + /** + * @param {{ deviceId: string , message: any , metadata?: any}} arg0 + */ encryptMessage: ({ deviceId, message, metadata }) => { const parsedMessage = typeof message === 'object' ? JSON.stringify(message) : message @@ -68,6 +81,9 @@ const Encryption = { const encryptedData = encryptedBuffer.toString('base64') return { encryptedData, encryptedKey, iv: iv.toString('hex'), metadata } }, + /** + * @param {{ message: string , key: string , iv: string }} arg0 + */ decryptMessage: ({ message, key, iv }) => { const data = Buffer.from(message, 'base64') const cipher = Crypto.createDecipheriv( @@ -84,6 +100,9 @@ const Encryption = { return decryptedData.toString() }, + /** + * @param {{ deviceId: string }} arg0 + */ isAuthorizedDevice: ({ deviceId }) => { if (authorizedDevices.has(deviceId)) { return true @@ -91,6 +110,9 @@ const Encryption = { return false }, + /** + * @param {{ deviceId: string , publicKey: string }} arg0 + */ authorizeDevice: ({ deviceId, publicKey }) => new Promise((resolve, reject) => { authorizedDevices.set(deviceId, publicKey) @@ -109,9 +131,10 @@ const Encryption = { }, (err, publicKey, privateKey) => { if (err) { + // @ts-ignore logger.error(err) reject(err) - return err + return } const exportedKey = { @@ -127,6 +150,9 @@ const Encryption = { } ) }), + /** + * @param {{ deviceId: string }} arg0 + */ unAuthorizeDevice: ({ deviceId }) => { authorizedDevices.delete(deviceId) } From 36b07e87a4f968506a58e8e1fb899a0c99aba1e0 Mon Sep 17 00:00:00 2001 From: Daniel Lugo Date: Fri, 3 Apr 2020 16:25:02 -0400 Subject: [PATCH 5/5] send preimage for sendpayment action --- services/gunDB/Mediator/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/gunDB/Mediator/index.js b/services/gunDB/Mediator/index.js index 0e34ba4e..43627866 100644 --- a/services/gunDB/Mediator/index.js +++ b/services/gunDB/Mediator/index.js @@ -776,11 +776,11 @@ class Mediator { await throwOnInvalidToken(token) - await API.Actions.sendPayment(recipientPub, amount, memo) + const preimage = await API.Actions.sendPayment(recipientPub, amount, memo) this.socket.emit(Action.SEND_PAYMENT, { ok: true, - msg: null, + msg: preimage, origBody: reqBody }) } catch (err) {