UNPKG

send-crypto

Version:

A minimal JavaScript library / wallet for sending crypto assets

85 lines 5.77 kB
export const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); export const extractError = (error) => { if (error && typeof error === "object") { if (error.response) { return extractError(error.response); } if (error.error) { return extractError(error.error); } if (error.message) { return extractError(error.message); } if (error.data) { return extractError(error.data); } if (error.context) { return extractError(error.context); } if (error.statusText) { return extractError(error.statusText); } try { return JSON.stringify(error); } catch (error) { // Ignore JSON error } } // Remove `Error: ` prefix. try { if (typeof error === "string") { if (error.slice(0, 7).toLowerCase() === "Error: ") { // tslint:disable-next-line: no-parameter-reassignment error = error.slice(7); } return error; } return JSON.stringify(error); } catch (error) { // Ignore JSON error } return String(error); }; export const onlyMainnet = (x, testnet) => testnet ? undefined : x; export const onlyTestnet = (x, testnet) => testnet ? x : undefined; export const fallback = async (fallbacks) => { let firstError; for (const fn of fallbacks) { if (!fn) { continue; } try { return await fn(); } catch (error) { firstError = firstError || error; } } throw firstError || new Error("No result returned"); }; export const retryNTimes = async (fnCall, retries) => { let returnError; for (let i = 0; i < retries; i++) { try { return await fnCall(); } catch (error) { if (String(error).match(/timeout of .* exceeded/)) { returnError = error; } else { const errorMessage = extractError(error); if (errorMessage) { // tslint:disable-next-line: no-object-mutation error.message += ` (${errorMessage})`; } throw error; } } await sleep(500); } throw returnError; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3JldHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQ2hDLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBVSxFQUFVLEVBQUU7SUFDL0MsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQ3BDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNoQixPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdkM7UUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDYixPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDcEM7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDZixPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDdEM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDWixPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkM7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDZixPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDdEM7UUFDRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDbEIsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSTtZQUNBLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoQztRQUFDLE9BQU8sS0FBVSxFQUFFO1lBQ2pCLG9CQUFvQjtTQUN2QjtLQUNKO0lBQ0QsMkJBQTJCO0lBQzNCLElBQUk7UUFDQSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLFNBQVMsRUFBRTtnQkFDL0Msc0RBQXNEO2dCQUN0RCxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQjtZQUNELE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2hDO0lBQUMsT0FBTyxLQUFVLEVBQUU7UUFDakIsb0JBQW9CO0tBQ3ZCO0lBQ0QsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUksQ0FBTSxFQUFFLE9BQWdCLEVBQUUsRUFBRSxDQUN2RCxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFJLENBQU0sRUFBRSxPQUFnQixFQUFFLEVBQUUsQ0FDdkQsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUU1QixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsS0FBSyxFQUN6QixTQUFnRCxFQUN0QyxFQUFFO0lBQ1osSUFBSSxVQUE2QixDQUFDO0lBQ2xDLEtBQUssTUFBTSxFQUFFLElBQUksU0FBUyxFQUFFO1FBQ3hCLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDTCxTQUFTO1NBQ1o7UUFDRCxJQUFJO1lBQ0EsT0FBTyxNQUFNLEVBQUUsRUFBRSxDQUFDO1NBQ3JCO1FBQUMsT0FBTyxLQUFVLEVBQUU7WUFDakIsVUFBVSxHQUFHLFVBQVUsSUFBSSxLQUFLLENBQUM7U0FDcEM7S0FDSjtJQUNELE1BQU0sVUFBVSxJQUFJLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFDNUIsTUFBd0IsRUFDeEIsT0FBZSxFQUNqQixFQUFFO0lBQ0EsSUFBSSxXQUFXLENBQUM7SUFDaEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM5QixJQUFJO1lBQ0EsT0FBTyxNQUFNLE1BQU0sRUFBRSxDQUFDO1NBQ3pCO1FBQUMsT0FBTyxLQUFVLEVBQUU7WUFDakIsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLEVBQUU7Z0JBQy9DLFdBQVcsR0FBRyxLQUFLLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0gsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLFlBQVksRUFBRTtvQkFDZCwrQ0FBK0M7b0JBQy9DLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxZQUFZLEdBQUcsQ0FBQztpQkFDekM7Z0JBQ0QsTUFBTSxLQUFLLENBQUM7YUFDZjtTQUNKO1FBQ0QsTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDcEI7SUFDRCxNQUFNLFdBQVcsQ0FBQztBQUN0QixDQUFDLENBQUMifQ==