-
Notifications
You must be signed in to change notification settings - Fork 54
/
loadTxWorker.ts
29 lines (24 loc) · 1.09 KB
/
loadTxWorker.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import { CommonProgramOptions } from './Options';
import { Logger } from 'ts-log';
import { TxSubmitWorkerConfig } from '../TxSubmit';
import { createDnsResolver } from './utils';
import { createLogger } from 'bunyan';
import { getOgmiosTxSubmitProvider, getRunningTxSubmitWorker } from './services';
export type TxWorkerOptions = CommonProgramOptions &
Pick<TxSubmitWorkerConfig, 'parallel' | 'parallelTxs' | 'pollingCycle'>;
export interface TxWorkerArgs {
options: TxWorkerOptions;
}
export const loadAndStartTxWorker = async (args: TxWorkerArgs, logger?: Logger) => {
const { loggerMinSeverity, serviceDiscoveryBackoffFactor, serviceDiscoveryTimeout } = args.options;
if (!logger) logger = createLogger({ level: loggerMinSeverity, name: 'tx-worker' });
const dnsResolver = createDnsResolver(
{
factor: serviceDiscoveryBackoffFactor,
maxRetryTime: serviceDiscoveryTimeout
},
logger
);
const txSubmitProvider = await getOgmiosTxSubmitProvider(dnsResolver, logger, args.options);
return await getRunningTxSubmitWorker(dnsResolver, txSubmitProvider, logger, args.options);
};