import Bolt11Decoder from "light-bolt11-decoder" export const getSatAmountFromInvoice = (invoice) => { const decoded = Bolt11Decoder.decode(invoice) return decoded.sections[2].value / 1000; } 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.pubkey}:${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; }