import * as ethers from 'ethers'; import { CHAIN_ID } from './constant'; import { ChainInfo, ERC20, Multicall3, TokenAssistant, TokenInfo, BlockInfo, WrappedNative } from './type'; import { BaseLogger, LogLevel } from './util'; import { ContractParser } from './tx'; import { Provider, TransactionReceipt, TransactionResponse } from '@ethersproject/abstract-provider'; import { CallOverrides } from 'ethers'; import { ErrorDescription } from '@ethersproject/abi/lib/interface'; import { EthGasEstimator } from './gasEstimator/estimator'; export interface CallOption { waitReceipt?: boolean; waitTimeout?: number; gasLimitScaler?: number; estimateGas?: boolean; gasPriceScaler?: number; gasEstimator?: EthGasEstimator; useSingleton?: boolean; loggerOps?: { level?: LogLevel; logger?: BaseLogger; }; } export interface ContractCallError { raw: any; code: string; msg: string; description?: ErrorDescription; receipt?: ethers.providers.TransactionReceipt; transaction?: ethers.Transaction; response?: ethers.providers.TransactionResponse; transactionHash?: string; } export declare const DEFAULT_CALL_OPTION: CallOption; export declare class ChainContext { private static instances; private constructor(); static getInstance(chanIdOrName: CHAIN_ID | string, option?: CallOption): ChainContext; private static newInstance; info: ChainInfo; provider: Provider; wssProvider?: ethers.providers.WebSocketProvider; option: Required; tokenInfo: Map; addressToName: Map; nameToAddress: Map; parsers: Map; wrappedNative: WrappedNative; tokenAssistant: TokenAssistant; multicall3: Multicall3; logger: BaseLogger; protected _initLogger(option: CallOption): void; protected _init(info: ChainInfo, option: CallOption): void; static getChainInfo(nameOrId: string | number): ChainInfo; setProvider(provider: Provider): void; getContractParser(address: string): ContractParser | undefined; registerContractParser(address: string, parser: ContractParser): void; get chainId(): CHAIN_ID; get chainName(): string; get nativeToken(): TokenInfo; get wrappedNativeToken(): TokenInfo; isNativeToken(symbolOrAddress: string): boolean; transferNative(signer: ethers.Signer, to: string, value: ethers.BigNumber): Promise; isWrappedNativeToken(symbolOrAddress: string): boolean; getSigner(signerId: string): Promise; getAddressName(address: string): string; getAddress(source: string): Promise; registerAddress(address: string, name: string): void; private registerTokenInfo; getTokenInfo(symbolOrAddress: string): Promise; balanceOfTokenBatch(tokens: string[], targets: string[], batch?: number, overrides?: CallOverrides): Promise<{ blockInfo: BlockInfo; balances: ethers.ethers.BigNumber[][]; }>; erc20: { getContract: (symbolOrAddress: string) => Promise; transfer: (signer: ethers.Signer, erc20Id: string, to: string, amount: ethers.BigNumberish, overrides?: ethers.CallOverrides) => Promise; transferAll: (signer: ethers.Signer, erc20Id: string, to: string, overrides?: ethers.CallOverrides) => Promise; getBalance: (erc20Id: string, user: string, overrides?: ethers.CallOverrides) => Promise; getAllowance: (erc20Id: string, owner: string, spender: string, overrides?: ethers.CallOverrides) => Promise; balanceAndAllowance: (erc20Id: string, owner: string, spender: string, overrides?: ethers.CallOverrides) => Promise<{ balance: any; allowance: any; }>; approveIfNeeded: (signer: ethers.Signer, erc20Address: string, spender: string, amount: ethers.BigNumber, targetAllowance?: ethers.ethers.BigNumber, overrides?: ethers.PayableOverrides) => Promise; }; getExplorerTxLink(txHash: string): string; getTokenAssistant(): TokenAssistant; getMulticall3(): Multicall3; retry(func: () => Promise, retryOption?: { retries: number; onRetry: (error: Error) => void; }): Promise; send2Txs(signers: ethers.Signer[], rawTxs: ethers.PopulatedTransaction[] | Promise[]): Promise; batchSendTxs(signers: ethers.Signer[], rawTxs: ethers.PopulatedTransaction[] | Promise[]): Promise; private setGasLimit; private setGasPrice; getGasPrice(txType?: import("./type").TxType, scale?: number): Promise; sendTx(signer: ethers.Signer, rawTx: ethers.PopulatedTransaction | Promise): Promise; handleRequest(rawTx: ethers.PopulatedTransaction): Promise; handleResponse(response: TransactionResponse): Promise; static getTransactionFee(receipt: TransactionReceipt): number; handleReceipt(receipt: TransactionReceipt, gasLimit?: ethers.BigNumberish): Promise; formatOverrides(overrides: ethers.PayableOverrides): string; formatGas(gasPrice: ethers.BigNumberish): string; deployContract(signer: ethers.Signer, _interface: ethers.utils.Interface, deploymentCode: string, constructorArgs: any[], overrides?: ethers.PayableOverrides): Promise; close(): Promise; normalizeError(e: any): Promise; } //# sourceMappingURL=chainContext.d.ts.map