paid-services
Version:
Lightning Paid Services library
44 lines (34 loc) • 969 B
JavaScript
const {encodeTlvStream} = require('bolt01');
const encodeResponseCode = require('./encode_response_code');
const encodeMessage = message => `626f73ff${message}`;
const headers = null;
const params = null;
const version = null;
/** Encode a response to a peer
{
[failure]: [
<Failure Code Number>
<Failure Message String>
]
id: <Request Id Hex String>
[records]: [{
type: <Type Number String>
value: <Value Hex Encoded String>
}]
}
@throws
<Error>
@returns
{
message: <Encoded Hex String>
}
*/
module.exports = ({failure, id, records}) => {
const code = encodeResponseCode({failure}).encoded;
const {encoded} = !!records ? encodeTlvStream({records}) : {};
const response = [version, id, code, params, headers, encoded]
.map((value, type) => ({type, value}))
.filter(n => !!n.value);
const message = encodeMessage(encodeTlvStream({records: response}).encoded);
return {message};
};