UNPKG

@qso-soft/shared

Version:

Shared library for QSO-soft

78 lines (77 loc) 3.16 kB
import { Hex } from 'viem'; import { TransactionCallbackResponse } from '../helpers'; import { LoggerData, LoggerType } from '../logger'; import { MerklyDestUserNetworks, MerklySrcNetworks, MerklySrcUserNetworks } from '../modules/merkly/types'; import { NumberRange, ProxyAgent, ProxyObject, WalletData } from './common'; import { BinanceNetworks, OkxNetworks, SupportedNetworks } from './networks'; import { BaseTokens, BscAvailableSwapTokens } from './tokens'; export type GlobalModuleNames = 'binance-withdraw' | 'okx-withdraw' | 'merkly-refuel' | 'transfer-token' | 'balance-checker'; export type WorkerResponse = Pick<TransactionCallbackResponse, 'status' | 'message'> & { logTemplate: LoggerData; }; export type FindModuleReturnFc = (params: TransformedModuleParams) => Promise<WorkerResponse>; export type AvailableSwapTokens = BscAvailableSwapTokens; export type SwapModuleNames = Extract<QsoGlobal.ModuleNames, 'mySwap'>; export type Tokens = BaseTokens | 'BNB' | 'MATIC' | string; export interface ExtraModuleParams { network?: SupportedNetworks; gweiRange?: NumberRange; maxGas?: [SupportedNetworks, number]; useInvitesAutosave?: boolean; stopWalletOnError?: boolean; destinationNetwork?: string; destinationNetworks?: string[]; contractAddress?: Hex | 'native'; pairs?: [AvailableSwapTokens, AvailableSwapTokens]; networkPairs?: [string, string]; contractPairs?: [Hex, Hex]; reverse?: boolean; slippage?: number; tokenToSupply?: Tokens; collateral?: 'disable' | 'enable'; remainSwaps?: SwapModuleNames[]; tokenToWithdraw?: Tokens; binanceWithdrawNetwork?: BinanceNetworks; okxWithdrawNetwork?: OkxNetworks; okxWithdrawFees?: number; minAndMaxAmount?: NumberRange; minAmount?: number; amount?: number; usePercentBalance?: boolean; minTokenBalance?: number; minNativeBalance?: number; expectedBalance?: NumberRange; merklyNetworkPairs?: [Exclude<MerklySrcUserNetworks, 'auto'>, MerklyDestUserNetworks]; merklyAutoNetworks?: MerklySrcNetworks[]; merklyRandomNetworks?: MerklySrcNetworks[]; zkEraBridgeAmount?: NumberRange; checkZkEraBalance?: boolean; maxTxsCount?: NumberRange; } export type DefaultModuleConfig = ExtraModuleParams & { count: NumberRange; indexGroup: number; delay?: NumberRange; }; export type UserModuleConfig = Partial<DefaultModuleConfig> & { moduleName: QsoGlobal.ModuleNames; }; export type ModuleConfig = Required<UserModuleConfig>; export type GroupedModules = Record<number, ModuleConfig[]>; export type ModuleParams = ModuleConfig & ExtraModuleParams; export type DefaultModuleConfigs = Record<QsoGlobal.ModuleNames, DefaultModuleConfig>; export type TransformedModuleParams = Omit<ModuleParams, 'count'> & { moduleIndex: number; count: number; proxyAgent?: ProxyAgent; proxyObject?: ProxyObject; isReverse?: boolean; logger: LoggerType; wallet: WalletData; baseNetwork: SupportedNetworks; projectName: string; }; export type TransformedModuleConfig = Omit<ModuleConfig, 'count'> & { count: number; isReverse?: boolean; };