place encoded spont payment in chat

This commit is contained in:
Daniel Lugo 2020-03-27 21:36:52 -04:00
parent 18eba25fdf
commit 65b6e9e0b2

View file

@ -11,7 +11,11 @@ const Getters = require('./getters')
const Key = require('./key') const Key = require('./key')
const Utils = require('./utils') const Utils = require('./utils')
// const { promisifyGunNode: p } = Utils // const { promisifyGunNode: p } = Utils
const { isHandshakeRequest, isOrderResponse } = require('./schema') const {
isHandshakeRequest,
isOrderResponse,
encodeSpontaneousPayment
} = require('./schema')
/** /**
* @typedef {import('./SimpleGUN').GUNNode} GUNNode * @typedef {import('./SimpleGUN').GUNNode} GUNNode
* @typedef {import('./SimpleGUN').ISEA} ISEA * @typedef {import('./SimpleGUN').ISEA} ISEA
@ -1024,6 +1028,7 @@ const sendPayment = async (to, amount, memo) => {
* @typedef {object} SendResponse * @typedef {object} SendResponse
* @prop {string|null} payment_error * @prop {string|null} payment_error
* @prop {any[]|null} payment_route * @prop {any[]|null} payment_route
* @prop {string} payment_preimage
*/ */
logger.info('Will now send payment through lightning') logger.info('Will now send payment through lightning')
@ -1033,7 +1038,8 @@ const sendPayment = async (to, amount, memo) => {
payment_request: orderResponse.response payment_request: orderResponse.response
} }
await new Promise((resolve, rej) => { /** @type {string} */
const preimage = await new Promise((resolve, rej) => {
lightning.sendPaymentSync(sendPaymentSyncArgs, ( lightning.sendPaymentSync(sendPaymentSyncArgs, (
/** @type {SendErr=} */ err, /** @type {SendErr=} */ err,
/** @type {SendResponse} */ res /** @type {SendResponse} */ res
@ -1047,22 +1053,31 @@ const sendPayment = async (to, amount, memo) => {
`sendPaymentSync error response: ${JSON.stringify(res)}` `sendPaymentSync error response: ${JSON.stringify(res)}`
) )
) )
} else if (!res.payment_route) { } else if (!res.payment_route || !res.payment_preimage) {
rej( rej(
new Error( new Error(
`sendPaymentSync no payment route response: ${JSON.stringify( `sendPaymentSync no payment route response or preimage: ${JSON.stringify(
res res
)}` )}`
) )
) )
} else { } else {
resolve() resolve(res.payment_preimage)
} }
} else { } else {
rej(new Error('no error or response received from sendPaymentSync')) rej(new Error('no error or response received from sendPaymentSync'))
} }
}) })
}) })
if (Utils.successfulHandshakeAlreadyExists(to)) {
await sendMessage(
to,
encodeSpontaneousPayment(to, memo || 'no memo', preimage),
require('../Mediator').getUser(),
require('../Mediator').mySEA
)
}
} catch (e) { } catch (e) {
logger.error('Error inside sendPayment()') logger.error('Error inside sendPayment()')
logger.error(e) logger.error(e)