@qso-soft/shared
Version:
Shared library for QSO-soft
78 lines (77 loc) • 3.16 kB
TypeScript
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;
};