@qso-soft/shared
Version:
Shared library for QSO-soft
49 lines (48 loc) • 1.74 kB
TypeScript
import { BinanceNetworks, NumberRange, OkxNetworks, SupportedNetworks } from '../../types';
import { ClientType } from '../clients';
interface ICalculateAmount {
minAndMaxAmount: NumberRange;
usePercentBalance?: boolean;
decimals?: number;
}
type NumberCalculateAmount = ICalculateAmount & {
isBigInt?: false;
balance: number;
};
type BigIntCalculateAmount = ICalculateAmount & {
isBigInt: true;
balance: bigint;
};
export declare function calculateAmount(args: NumberCalculateAmount): number;
export declare function calculateAmount(args: BigIntCalculateAmount): bigint;
export declare const getExpectedBalance: (expectedBalance?: NumberRange) => {
currentExpectedBalance: number;
isTopUpByExpectedBalance: boolean;
};
interface GetTopUpOptions {
isTopUpByExpectedBalance: boolean;
currentExpectedBalance: number;
tokenToWithdraw: string;
client: ClientType;
minAndMaxAmount: NumberRange;
network: SupportedNetworks | BinanceNetworks | OkxNetworks;
amount?: number;
percentToAdd?: number;
minNativeBalance?: number;
fee?: number;
}
export declare const getTopUpOptions: ({ isTopUpByExpectedBalance, currentExpectedBalance, tokenToWithdraw, client, amount, minAndMaxAmount, network, percentToAdd, minNativeBalance, fee, }: GetTopUpOptions) => Promise<{
isDone: boolean;
successMessage: string;
currentAmount?: undefined;
shouldTopUp?: undefined;
prevNativeBalance?: undefined;
} | {
currentAmount: number;
shouldTopUp: boolean;
prevNativeBalance: number;
isDone?: undefined;
successMessage?: undefined;
}>;
export declare const calculateAmountWithFee: (amount: number, fee: number, percentToAdd?: number) => number;
export {};