@qso-soft/shared
Version:
Shared library for QSO-soft
28 lines (27 loc) • 1.27 kB
TypeScript
import { Chain, FallbackTransport, Hex, HttpTransport, PublicClient, TransactionReceipt } from 'viem';
import { LoggerType } from '../logger';
import { Balance, Networks, NumberRange, TokenContract } from '../types';
import { WalletClient } from './common';
export declare class DefaultClient {
privateKey: Hex;
walletAddress: Hex;
rpcs: string[];
publicClient: PublicClient;
walletClient: WalletClient;
chainData: Chain;
logger: LoggerType;
network: Networks;
currentRpc: string;
explorerLink: string;
constructor(privateKey: string, chainData: Chain, logger: LoggerType, network: Networks);
getTransport(rpc: string, index?: number): HttpTransport;
getFallbackTransport(): FallbackTransport;
private getPublicClient;
private getWalletClient;
getNativeBalance(): Promise<Balance>;
getBalanceByContract(contractInfo: TokenContract): Promise<Balance>;
getSymbolByContract(contractInfo: TokenContract): Promise<string>;
approve(tokenContract: Hex, projectContract: Hex, amount: bigint, gweiRange?: NumberRange): Promise<void>;
waitTxReceipt(txHash: Hex): Promise<TransactionReceipt>;
}
export type DefaultClientClass = new (decryptedPrivKey: string, logger: LoggerType) => DefaultClient;