import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers"; import type { FunctionFragment, Result } from "@ethersproject/abi"; import type { Listener, Provider } from "@ethersproject/providers"; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "./common"; export declare namespace Multicall2 { type CallStruct = { target: PromiseOrValue; callData: PromiseOrValue; }; type CallStructOutput = [string, string] & { target: string; callData: string; }; type ResultStruct = { success: PromiseOrValue; returnData: PromiseOrValue; }; type ResultStructOutput = [boolean, string] & { success: boolean; returnData: string; }; } export interface Multicall2Interface extends utils.Interface { functions: { "aggregate((address,bytes)[])": FunctionFragment; "blockAndAggregate((address,bytes)[])": FunctionFragment; "getBlockHash(uint256)": FunctionFragment; "getBlockNumber()": FunctionFragment; "getCurrentBlockCoinbase()": FunctionFragment; "getCurrentBlockDifficulty()": FunctionFragment; "getCurrentBlockGasLimit()": FunctionFragment; "getCurrentBlockTimestamp()": FunctionFragment; "getEthBalance(address)": FunctionFragment; "getLastBlockHash()": FunctionFragment; "tryAggregate(bool,(address,bytes)[])": FunctionFragment; "tryBlockAndAggregate(bool,(address,bytes)[])": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "aggregate" | "blockAndAggregate" | "getBlockHash" | "getBlockNumber" | "getCurrentBlockCoinbase" | "getCurrentBlockDifficulty" | "getCurrentBlockGasLimit" | "getCurrentBlockTimestamp" | "getEthBalance" | "getLastBlockHash" | "tryAggregate" | "tryBlockAndAggregate"): FunctionFragment; encodeFunctionData(functionFragment: "aggregate", values: [Multicall2.CallStruct[]]): string; encodeFunctionData(functionFragment: "blockAndAggregate", values: [Multicall2.CallStruct[]]): string; encodeFunctionData(functionFragment: "getBlockHash", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "getBlockNumber", values?: undefined): string; encodeFunctionData(functionFragment: "getCurrentBlockCoinbase", values?: undefined): string; encodeFunctionData(functionFragment: "getCurrentBlockDifficulty", values?: undefined): string; encodeFunctionData(functionFragment: "getCurrentBlockGasLimit", values?: undefined): string; encodeFunctionData(functionFragment: "getCurrentBlockTimestamp", values?: undefined): string; encodeFunctionData(functionFragment: "getEthBalance", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "getLastBlockHash", values?: undefined): string; encodeFunctionData(functionFragment: "tryAggregate", values: [PromiseOrValue, Multicall2.CallStruct[]]): string; encodeFunctionData(functionFragment: "tryBlockAndAggregate", values: [PromiseOrValue, Multicall2.CallStruct[]]): string; decodeFunctionResult(functionFragment: "aggregate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "blockAndAggregate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getBlockHash", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getBlockNumber", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getCurrentBlockCoinbase", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getCurrentBlockDifficulty", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getCurrentBlockGasLimit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getCurrentBlockTimestamp", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getEthBalance", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getLastBlockHash", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tryAggregate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tryBlockAndAggregate", data: BytesLike): Result; events: {}; } export interface Multicall2 extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: Multicall2Interface; queryFilter(event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>; listeners(eventFilter?: TypedEventFilter): Array>; listeners(eventName?: string): Array; removeAllListeners(eventFilter: TypedEventFilter): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { aggregate(calls: Multicall2.CallStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; blockAndAggregate(calls: Multicall2.CallStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; getBlockHash(blockNumber: PromiseOrValue, overrides?: CallOverrides): Promise<[string] & { blockHash: string; }>; getBlockNumber(overrides?: CallOverrides): Promise<[BigNumber] & { blockNumber: BigNumber; }>; getCurrentBlockCoinbase(overrides?: CallOverrides): Promise<[string] & { coinbase: string; }>; getCurrentBlockDifficulty(overrides?: CallOverrides): Promise<[BigNumber] & { difficulty: BigNumber; }>; getCurrentBlockGasLimit(overrides?: CallOverrides): Promise<[BigNumber] & { gaslimit: BigNumber; }>; getCurrentBlockTimestamp(overrides?: CallOverrides): Promise<[BigNumber] & { timestamp: BigNumber; }>; getEthBalance(addr: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber] & { balance: BigNumber; }>; getLastBlockHash(overrides?: CallOverrides): Promise<[string] & { blockHash: string; }>; tryAggregate(requireSuccess: PromiseOrValue, calls: Multicall2.CallStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; tryBlockAndAggregate(requireSuccess: PromiseOrValue, calls: Multicall2.CallStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; aggregate(calls: Multicall2.CallStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; blockAndAggregate(calls: Multicall2.CallStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; getBlockHash(blockNumber: PromiseOrValue, overrides?: CallOverrides): Promise; getBlockNumber(overrides?: CallOverrides): Promise; getCurrentBlockCoinbase(overrides?: CallOverrides): Promise; getCurrentBlockDifficulty(overrides?: CallOverrides): Promise; getCurrentBlockGasLimit(overrides?: CallOverrides): Promise; getCurrentBlockTimestamp(overrides?: CallOverrides): Promise; getEthBalance(addr: PromiseOrValue, overrides?: CallOverrides): Promise; getLastBlockHash(overrides?: CallOverrides): Promise; tryAggregate(requireSuccess: PromiseOrValue, calls: Multicall2.CallStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; tryBlockAndAggregate(requireSuccess: PromiseOrValue, calls: Multicall2.CallStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; callStatic: { aggregate(calls: Multicall2.CallStruct[], overrides?: CallOverrides): Promise<[ BigNumber, string[] ] & { blockNumber: BigNumber; returnData: string[]; }>; blockAndAggregate(calls: Multicall2.CallStruct[], overrides?: CallOverrides): Promise<[ BigNumber, string, Multicall2.ResultStructOutput[] ] & { blockNumber: BigNumber; blockHash: string; returnData: Multicall2.ResultStructOutput[]; }>; getBlockHash(blockNumber: PromiseOrValue, overrides?: CallOverrides): Promise; getBlockNumber(overrides?: CallOverrides): Promise; getCurrentBlockCoinbase(overrides?: CallOverrides): Promise; getCurrentBlockDifficulty(overrides?: CallOverrides): Promise; getCurrentBlockGasLimit(overrides?: CallOverrides): Promise; getCurrentBlockTimestamp(overrides?: CallOverrides): Promise; getEthBalance(addr: PromiseOrValue, overrides?: CallOverrides): Promise; getLastBlockHash(overrides?: CallOverrides): Promise; tryAggregate(requireSuccess: PromiseOrValue, calls: Multicall2.CallStruct[], overrides?: CallOverrides): Promise; tryBlockAndAggregate(requireSuccess: PromiseOrValue, calls: Multicall2.CallStruct[], overrides?: CallOverrides): Promise<[ BigNumber, string, Multicall2.ResultStructOutput[] ] & { blockNumber: BigNumber; blockHash: string; returnData: Multicall2.ResultStructOutput[]; }>; }; filters: {}; estimateGas: { aggregate(calls: Multicall2.CallStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; blockAndAggregate(calls: Multicall2.CallStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; getBlockHash(blockNumber: PromiseOrValue, overrides?: CallOverrides): Promise; getBlockNumber(overrides?: CallOverrides): Promise; getCurrentBlockCoinbase(overrides?: CallOverrides): Promise; getCurrentBlockDifficulty(overrides?: CallOverrides): Promise; getCurrentBlockGasLimit(overrides?: CallOverrides): Promise; getCurrentBlockTimestamp(overrides?: CallOverrides): Promise; getEthBalance(addr: PromiseOrValue, overrides?: CallOverrides): Promise; getLastBlockHash(overrides?: CallOverrides): Promise; tryAggregate(requireSuccess: PromiseOrValue, calls: Multicall2.CallStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; tryBlockAndAggregate(requireSuccess: PromiseOrValue, calls: Multicall2.CallStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; populateTransaction: { aggregate(calls: Multicall2.CallStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; blockAndAggregate(calls: Multicall2.CallStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; getBlockHash(blockNumber: PromiseOrValue, overrides?: CallOverrides): Promise; getBlockNumber(overrides?: CallOverrides): Promise; getCurrentBlockCoinbase(overrides?: CallOverrides): Promise; getCurrentBlockDifficulty(overrides?: CallOverrides): Promise; getCurrentBlockGasLimit(overrides?: CallOverrides): Promise; getCurrentBlockTimestamp(overrides?: CallOverrides): Promise; getEthBalance(addr: PromiseOrValue, overrides?: CallOverrides): Promise; getLastBlockHash(overrides?: CallOverrides): Promise; tryAggregate(requireSuccess: PromiseOrValue, calls: Multicall2.CallStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; tryBlockAndAggregate(requireSuccess: PromiseOrValue, calls: Multicall2.CallStruct[], overrides?: Overrides & { from?: PromiseOrValue; }): Promise; }; } //# sourceMappingURL=Multicall2.d.ts.map