mirror of
https://github.com/AustinKelsay/plebdevs.git
synced 2025-06-19 05:55:05 +00:00
31 lines
952 B
JavaScript
31 lines
952 B
JavaScript
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;
|
|
};
|