plebdevs/src/utils/lightning.js

24 lines
934 B
JavaScript
Raw Normal View History

import Bolt11Decoder from "light-bolt11-decoder"
export const getSatAmountFromInvoice = (invoice) => {
const decoded = Bolt11Decoder.decode(invoice)
return decoded.sections[2].value / 1000;
2024-08-13 14:42:36 -05:00
}
export const getTotalFromZaps = (zaps, event) => {
let total = 0;
let uniqueZaps = new Set();
zaps.forEach((zap) => {
// If the zap matches the event or the parameterized event, then add the zap to the total
if ((zap.tags.find(tag => tag[0] === "e" && tag[1] === event.id) || zap.tags.find(tag => tag[0] === "a" && tag[1] === `${event.kind}:${event.id}:${event.d}`)) &&!uniqueZaps.has(zap.id)) {
uniqueZaps.add(zap.id);
const bolt11Tag = zap.tags.find(tag => tag[0] === "bolt11");
const invoice = bolt11Tag ? bolt11Tag[1] : null;
if (invoice) {
const amount = getSatAmountFromInvoice(invoice);
total += amount;
}
}
});
return total;
}