UNPKG

@faast/tron-payments

Version:

Library to assist in processing tron payments, such as deriving addresses and sweeping funds

37 lines (33 loc) 841 B
import { isMatchingError, Logger } from '@faast/ts-common' import promiseRetry from 'promise-retry' /** Converts strings to Error */ export function toError(e: any): any { if (typeof e === 'string') { return new Error(e) } return e } const RETRYABLE_ERRORS = [ 'Request failed', ] const MAX_RETRIES = 2 export function retryIfDisconnected<T>(fn: () => Promise<T>, logger: Logger): Promise<T> { return promiseRetry( (retry, attempt) => { return fn().catch(async e => { e = toError(e) if (isMatchingError(e, RETRYABLE_ERRORS)) { logger.log( `Retryable error during tron-payments call, retrying ${MAX_RETRIES - attempt} more times`, e.toString(), ) retry(e) } throw e }) }, { retries: MAX_RETRIES, }, ) }