UNPKG

send-crypto

Version:

A minimal JavaScript library / wallet for sending crypto assets

39 lines 2.94 kB
import { sleep } from "./retry"; export const subscribeToConfirmations = (promiEvent, cancelled, getConfirmations) => { let mutex; const watchForConfirmations = async () => { const lock = Symbol(); mutex = lock; // Yield to task manager to let the event subscription finish await sleep(0); let confirmations = 0; while (!cancelled() && watchingConfirmations && mutex === lock) { try { const newConfirmations = await getConfirmations(); if (newConfirmations > confirmations) { confirmations = newConfirmations; promiEvent.emit("confirmation", confirmations); } } catch (error) { console.error(error); } await sleep(5000); } }; let watchingConfirmations = 0; promiEvent.on("newListener", (eventName) => { if (eventName === "confirmation") { watchingConfirmations++; if (watchingConfirmations === 1) { watchForConfirmations(); } } }); promiEvent.on("removeListener", (eventName) => { if (eventName === "confirmation") { watchingConfirmations--; } }); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29uZmlybWF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQ3BDLFVBQXlCLEVBQ3pCLFNBQXdCLEVBQ3hCLGdCQUF1QyxFQUN6QyxFQUFFO0lBQ0EsSUFBSSxLQUFLLENBQUM7SUFDVixNQUFNLHFCQUFxQixHQUFHLEtBQUssSUFBSSxFQUFFO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFYiw2REFBNkQ7UUFDN0QsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFZixJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdEIsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLHFCQUFxQixJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDNUQsSUFBSTtnQkFDQSxNQUFNLGdCQUFnQixHQUFHLE1BQU0sZ0JBQWdCLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxnQkFBZ0IsR0FBRyxhQUFhLEVBQUU7b0JBQ2xDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQztvQkFDakMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUM7aUJBQ2xEO2FBQ0o7WUFBQyxPQUFPLEtBQVUsRUFBRTtnQkFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN4QjtZQUNELE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JCO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsSUFBSSxxQkFBcUIsR0FBRyxDQUFDLENBQUM7SUFDOUIsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUN2QyxJQUFJLFNBQVMsS0FBSyxjQUFjLEVBQUU7WUFDOUIscUJBQXFCLEVBQUUsQ0FBQztZQUN4QixJQUFJLHFCQUFxQixLQUFLLENBQUMsRUFBRTtnQkFDN0IscUJBQXFCLEVBQUUsQ0FBQzthQUMzQjtTQUNKO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxVQUFVLENBQUMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUU7UUFDMUMsSUFBSSxTQUFTLEtBQUssY0FBYyxFQUFFO1lBQzlCLHFCQUFxQixFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyJ9