import { BaseContract, utils } from "ethers"; import { ContractName } from "../../contracts"; import { Multicall2 } from "../../contracts/type"; interface MulticallReaderConfig { contract: Multicall2; } export interface ContractCall { contract: BaseContract; contractName: ContractName; funcName: string; funcParams: any[]; } declare type OptionalParam = { failFirstByContract?: boolean; failFirstByClient?: boolean; returnByContractAndFuncName?: boolean; }; export declare class MulticallReader { readonly contract: Multicall2; constructor({ contract }: MulticallReaderConfig); execute(calls: ContractCall[], options?: OptionalParam): Promise; } export {};