commit
0df7a4e2c6
3 changed files with 38 additions and 16 deletions
|
|
@ -495,7 +495,7 @@ class Mediator {
|
||||||
field: 'deviceId',
|
field: 'deviceId',
|
||||||
message: 'Please specify a device ID'
|
message: 'Please specify a device ID'
|
||||||
}
|
}
|
||||||
logger.error(error)
|
logger.error(JSON.stringify(error))
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -776,18 +776,11 @@ class Mediator {
|
||||||
|
|
||||||
await throwOnInvalidToken(token)
|
await throwOnInvalidToken(token)
|
||||||
|
|
||||||
await API.Actions.sendPayment(
|
const preimage = await API.Actions.sendPayment(recipientPub, amount, memo)
|
||||||
recipientPub,
|
|
||||||
amount,
|
|
||||||
memo,
|
|
||||||
gun,
|
|
||||||
user,
|
|
||||||
mySEA
|
|
||||||
)
|
|
||||||
|
|
||||||
this.socket.emit(Action.SEND_PAYMENT, {
|
this.socket.emit(Action.SEND_PAYMENT, {
|
||||||
ok: true,
|
ok: true,
|
||||||
msg: null,
|
msg: preimage,
|
||||||
origBody: reqBody
|
origBody: reqBody
|
||||||
})
|
})
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|
@ -932,7 +925,7 @@ class Mediator {
|
||||||
API.Events.onChats(chats => {
|
API.Events.onChats(chats => {
|
||||||
if (Config.SHOW_LOG) {
|
if (Config.SHOW_LOG) {
|
||||||
logger.info('---chats---')
|
logger.info('---chats---')
|
||||||
logger.info(chats)
|
logger.info(JSON.stringify(chats))
|
||||||
logger.info('-----------------------')
|
logger.info('-----------------------')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -964,7 +957,7 @@ class Mediator {
|
||||||
API.Events.onDisplayName(displayName => {
|
API.Events.onDisplayName(displayName => {
|
||||||
if (Config.SHOW_LOG) {
|
if (Config.SHOW_LOG) {
|
||||||
logger.info('---displayName---')
|
logger.info('---displayName---')
|
||||||
logger.info(displayName)
|
logger.info(displayName || 'null or empty string')
|
||||||
logger.info('-----------------------')
|
logger.info('-----------------------')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -996,7 +989,7 @@ class Mediator {
|
||||||
API.Events.onCurrentHandshakeAddress(addr => {
|
API.Events.onCurrentHandshakeAddress(addr => {
|
||||||
if (Config.SHOW_LOG) {
|
if (Config.SHOW_LOG) {
|
||||||
logger.info('---addr---')
|
logger.info('---addr---')
|
||||||
logger.info(addr)
|
logger.info(addr || 'null or empty string')
|
||||||
logger.info('-----------------------')
|
logger.info('-----------------------')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -876,12 +876,13 @@ const sendHRWithInitialMsg = async (
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Returns the preimage corresponding to the payment.
|
||||||
* @param {string} to
|
* @param {string} to
|
||||||
* @param {number} amount
|
* @param {number} amount
|
||||||
* @param {string} memo
|
* @param {string} memo
|
||||||
* @throws {Error} If no response in less than 20 seconds from the recipient, or
|
* @throws {Error} If no response in less than 20 seconds from the recipient, or
|
||||||
* lightning cannot find a route for the payment.
|
* lightning cannot find a route for the payment.
|
||||||
* @returns {Promise<void>}
|
* @returns {Promise<string>} The payment's preimage.
|
||||||
*/
|
*/
|
||||||
const sendPayment = async (to, amount, memo) => {
|
const sendPayment = async (to, amount, memo) => {
|
||||||
try {
|
try {
|
||||||
|
|
@ -1073,11 +1074,13 @@ const sendPayment = async (to, amount, memo) => {
|
||||||
if (Utils.successfulHandshakeAlreadyExists(to)) {
|
if (Utils.successfulHandshakeAlreadyExists(to)) {
|
||||||
await sendMessage(
|
await sendMessage(
|
||||||
to,
|
to,
|
||||||
encodeSpontaneousPayment(to, memo || 'no memo', preimage),
|
encodeSpontaneousPayment(amount, memo || 'no memo', preimage),
|
||||||
require('../Mediator').getUser(),
|
require('../Mediator').getUser(),
|
||||||
require('../Mediator').mySEA
|
require('../Mediator').mySEA
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return preimage
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logger.error('Error inside sendPayment()')
|
logger.error('Error inside sendPayment()')
|
||||||
logger.error(e)
|
logger.error(e)
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,14 @@ const nonEncryptedEvents = [
|
||||||
]
|
]
|
||||||
|
|
||||||
const Encryption = {
|
const Encryption = {
|
||||||
|
/**
|
||||||
|
* @param {string} event
|
||||||
|
* @returns {boolean}
|
||||||
|
*/
|
||||||
isNonEncrypted: event => nonEncryptedEvents.includes(event),
|
isNonEncrypted: event => nonEncryptedEvents.includes(event),
|
||||||
|
/**
|
||||||
|
* @param {{ deviceId: string , message: string }} arg0
|
||||||
|
*/
|
||||||
encryptKey: ({ deviceId, message }) => {
|
encryptKey: ({ deviceId, message }) => {
|
||||||
if (!authorizedDevices.has(deviceId)) {
|
if (!authorizedDevices.has(deviceId)) {
|
||||||
throw { field: 'deviceId', message: 'Unknown Device ID' }
|
throw { field: 'deviceId', message: 'Unknown Device ID' }
|
||||||
|
|
@ -33,6 +40,9 @@ const Encryption = {
|
||||||
)
|
)
|
||||||
return encryptedData.toString('base64')
|
return encryptedData.toString('base64')
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* @param {{ deviceId: string , message: string }} arg0
|
||||||
|
*/
|
||||||
decryptKey: ({ deviceId, message }) => {
|
decryptKey: ({ deviceId, message }) => {
|
||||||
if (!authorizedDevices.has(deviceId)) {
|
if (!authorizedDevices.has(deviceId)) {
|
||||||
throw { field: 'deviceId', message: 'Unknown Device ID' }
|
throw { field: 'deviceId', message: 'Unknown Device ID' }
|
||||||
|
|
@ -49,6 +59,9 @@ const Encryption = {
|
||||||
|
|
||||||
return encryptedData.toString()
|
return encryptedData.toString()
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* @param {{ deviceId: string , message: any , metadata?: any}} arg0
|
||||||
|
*/
|
||||||
encryptMessage: ({ deviceId, message, metadata }) => {
|
encryptMessage: ({ deviceId, message, metadata }) => {
|
||||||
const parsedMessage =
|
const parsedMessage =
|
||||||
typeof message === 'object' ? JSON.stringify(message) : message
|
typeof message === 'object' ? JSON.stringify(message) : message
|
||||||
|
|
@ -68,6 +81,9 @@ const Encryption = {
|
||||||
const encryptedData = encryptedBuffer.toString('base64')
|
const encryptedData = encryptedBuffer.toString('base64')
|
||||||
return { encryptedData, encryptedKey, iv: iv.toString('hex'), metadata }
|
return { encryptedData, encryptedKey, iv: iv.toString('hex'), metadata }
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* @param {{ message: string , key: string , iv: string }} arg0
|
||||||
|
*/
|
||||||
decryptMessage: ({ message, key, iv }) => {
|
decryptMessage: ({ message, key, iv }) => {
|
||||||
const data = Buffer.from(message, 'base64')
|
const data = Buffer.from(message, 'base64')
|
||||||
const cipher = Crypto.createDecipheriv(
|
const cipher = Crypto.createDecipheriv(
|
||||||
|
|
@ -84,6 +100,9 @@ const Encryption = {
|
||||||
|
|
||||||
return decryptedData.toString()
|
return decryptedData.toString()
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* @param {{ deviceId: string }} arg0
|
||||||
|
*/
|
||||||
isAuthorizedDevice: ({ deviceId }) => {
|
isAuthorizedDevice: ({ deviceId }) => {
|
||||||
if (authorizedDevices.has(deviceId)) {
|
if (authorizedDevices.has(deviceId)) {
|
||||||
return true
|
return true
|
||||||
|
|
@ -91,6 +110,9 @@ const Encryption = {
|
||||||
|
|
||||||
return false
|
return false
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* @param {{ deviceId: string , publicKey: string }} arg0
|
||||||
|
*/
|
||||||
authorizeDevice: ({ deviceId, publicKey }) =>
|
authorizeDevice: ({ deviceId, publicKey }) =>
|
||||||
new Promise((resolve, reject) => {
|
new Promise((resolve, reject) => {
|
||||||
authorizedDevices.set(deviceId, publicKey)
|
authorizedDevices.set(deviceId, publicKey)
|
||||||
|
|
@ -109,9 +131,10 @@ const Encryption = {
|
||||||
},
|
},
|
||||||
(err, publicKey, privateKey) => {
|
(err, publicKey, privateKey) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
// @ts-ignore
|
||||||
logger.error(err)
|
logger.error(err)
|
||||||
reject(err)
|
reject(err)
|
||||||
return err
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const exportedKey = {
|
const exportedKey = {
|
||||||
|
|
@ -127,6 +150,9 @@ const Encryption = {
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}),
|
}),
|
||||||
|
/**
|
||||||
|
* @param {{ deviceId: string }} arg0
|
||||||
|
*/
|
||||||
unAuthorizeDevice: ({ deviceId }) => {
|
unAuthorizeDevice: ({ deviceId }) => {
|
||||||
authorizedDevices.delete(deviceId)
|
authorizedDevices.delete(deviceId)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue