UNPKG

send-crypto

Version:

A minimal JavaScript library / wallet for sending crypto assets

43 lines 3.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.subscribeToConfirmations = void 0; const retry_1 = require("./retry"); 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 (0, retry_1.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 (0, retry_1.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--; } }); }; exports.subscribeToConfirmations = subscribeToConfirmations; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29uZmlybWF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtQ0FBZ0M7QUFFekIsTUFBTSx3QkFBd0IsR0FBRyxDQUNwQyxVQUF5QixFQUN6QixTQUF3QixFQUN4QixnQkFBdUMsRUFDekMsRUFBRTtJQUNBLElBQUksS0FBSyxDQUFDO0lBQ1YsTUFBTSxxQkFBcUIsR0FBRyxLQUFLLElBQUksRUFBRTtRQUNyQyxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUN0QixLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRWIsNkRBQTZEO1FBQzdELE1BQU0sSUFBQSxhQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFFZixJQUFJLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdEIsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLHFCQUFxQixJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDNUQsSUFBSTtnQkFDQSxNQUFNLGdCQUFnQixHQUFHLE1BQU0sZ0JBQWdCLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxnQkFBZ0IsR0FBRyxhQUFhLEVBQUU7b0JBQ2xDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQztvQkFDakMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUM7aUJBQ2xEO2FBQ0o7WUFBQyxPQUFPLEtBQVUsRUFBRTtnQkFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN4QjtZQUNELE1BQU0sSUFBQSxhQUFLLEVBQUMsSUFBSSxDQUFDLENBQUM7U0FDckI7SUFDTCxDQUFDLENBQUM7SUFFRixJQUFJLHFCQUFxQixHQUFHLENBQUMsQ0FBQztJQUM5QixVQUFVLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFO1FBQ3ZDLElBQUksU0FBUyxLQUFLLGNBQWMsRUFBRTtZQUM5QixxQkFBcUIsRUFBRSxDQUFDO1lBQ3hCLElBQUkscUJBQXFCLEtBQUssQ0FBQyxFQUFFO2dCQUM3QixxQkFBcUIsRUFBRSxDQUFDO2FBQzNCO1NBQ0o7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFVBQVUsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUMxQyxJQUFJLFNBQVMsS0FBSyxjQUFjLEVBQUU7WUFDOUIscUJBQXFCLEVBQUUsQ0FBQztTQUMzQjtJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBM0NXLFFBQUEsd0JBQXdCLDRCQTJDbkMifQ==