import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, PayableOverrides, 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 } from './common'; export declare namespace Multicall3 { type CallStruct = { target: string; callData: BytesLike; }; type CallStructOutput = [string, string] & { target: string; callData: string; }; type Call3Struct = { target: string; allowFailure: boolean; callData: BytesLike; }; type Call3StructOutput = [string, boolean, string] & { target: string; allowFailure: boolean; callData: string; }; type ResultStruct = { success: boolean; returnData: BytesLike; }; type ResultStructOutput = [boolean, string] & { success: boolean; returnData: string; }; type Call3ValueStruct = { target: string; allowFailure: boolean; value: BigNumberish; callData: BytesLike; }; type Call3ValueStructOutput = [string, boolean, BigNumber, string] & { target: string; allowFailure: boolean; value: BigNumber; callData: string; }; } export interface Multicall3Interface extends utils.Interface { functions: { 'aggregate((address,bytes)[])': FunctionFragment; 'aggregate3((address,bool,bytes)[])': FunctionFragment; 'aggregate3Value((address,bool,uint256,bytes)[])': FunctionFragment; 'blockAndAggregate((address,bytes)[])': FunctionFragment; 'getBasefee()': FunctionFragment; 'getBlockHash(uint256)': FunctionFragment; 'getBlockNumber()': FunctionFragment; 'getChainId()': 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' | 'aggregate3' | 'aggregate3Value' | 'blockAndAggregate' | 'getBasefee' | 'getBlockHash' | 'getBlockNumber' | 'getChainId' | 'getCurrentBlockCoinbase' | 'getCurrentBlockDifficulty' | 'getCurrentBlockGasLimit' | 'getCurrentBlockTimestamp' | 'getEthBalance' | 'getLastBlockHash' | 'tryAggregate' | 'tryBlockAndAggregate'): FunctionFragment; encodeFunctionData(functionFragment: 'aggregate', values: [Multicall3.CallStruct[]]): string; encodeFunctionData(functionFragment: 'aggregate3', values: [Multicall3.Call3Struct[]]): string; encodeFunctionData(functionFragment: 'aggregate3Value', values: [Multicall3.Call3ValueStruct[]]): string; encodeFunctionData(functionFragment: 'blockAndAggregate', values: [Multicall3.CallStruct[]]): string; encodeFunctionData(functionFragment: 'getBasefee', values?: undefined): string; encodeFunctionData(functionFragment: 'getBlockHash', values: [BigNumberish]): string; encodeFunctionData(functionFragment: 'getBlockNumber', values?: undefined): string; encodeFunctionData(functionFragment: 'getChainId', 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: [string]): string; encodeFunctionData(functionFragment: 'getLastBlockHash', values?: undefined): string; encodeFunctionData(functionFragment: 'tryAggregate', values: [boolean, Multicall3.CallStruct[]]): string; encodeFunctionData(functionFragment: 'tryBlockAndAggregate', values: [boolean, Multicall3.CallStruct[]]): string; decodeFunctionResult(functionFragment: 'aggregate', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'aggregate3', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'aggregate3Value', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'blockAndAggregate', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getBasefee', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getBlockHash', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getBlockNumber', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'getChainId', 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 Multicall3 extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: Multicall3Interface; 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: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; aggregate3(calls: Multicall3.Call3Struct[], overrides?: PayableOverrides & { from?: string; }): Promise; aggregate3Value(calls: Multicall3.Call3ValueStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; blockAndAggregate(calls: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; getBasefee(overrides?: CallOverrides): Promise<[BigNumber] & { basefee: BigNumber; }>; getBlockHash(blockNumber: BigNumberish, overrides?: CallOverrides): Promise<[string] & { blockHash: string; }>; getBlockNumber(overrides?: CallOverrides): Promise<[BigNumber] & { blockNumber: BigNumber; }>; getChainId(overrides?: CallOverrides): Promise<[BigNumber] & { chainid: 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: string, overrides?: CallOverrides): Promise<[BigNumber] & { balance: BigNumber; }>; getLastBlockHash(overrides?: CallOverrides): Promise<[string] & { blockHash: string; }>; tryAggregate(requireSuccess: boolean, calls: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; tryBlockAndAggregate(requireSuccess: boolean, calls: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; }; aggregate(calls: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; aggregate3(calls: Multicall3.Call3Struct[], overrides?: PayableOverrides & { from?: string; }): Promise; aggregate3Value(calls: Multicall3.Call3ValueStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; blockAndAggregate(calls: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; getBasefee(overrides?: CallOverrides): Promise; getBlockHash(blockNumber: BigNumberish, overrides?: CallOverrides): Promise; getBlockNumber(overrides?: CallOverrides): Promise; getChainId(overrides?: CallOverrides): Promise; getCurrentBlockCoinbase(overrides?: CallOverrides): Promise; getCurrentBlockDifficulty(overrides?: CallOverrides): Promise; getCurrentBlockGasLimit(overrides?: CallOverrides): Promise; getCurrentBlockTimestamp(overrides?: CallOverrides): Promise; getEthBalance(addr: string, overrides?: CallOverrides): Promise; getLastBlockHash(overrides?: CallOverrides): Promise; tryAggregate(requireSuccess: boolean, calls: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; tryBlockAndAggregate(requireSuccess: boolean, calls: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; callStatic: { aggregate(calls: Multicall3.CallStruct[], overrides?: CallOverrides): Promise<[BigNumber, string[]] & { blockNumber: BigNumber; returnData: string[]; }>; aggregate3(calls: Multicall3.Call3Struct[], overrides?: CallOverrides): Promise; aggregate3Value(calls: Multicall3.Call3ValueStruct[], overrides?: CallOverrides): Promise; blockAndAggregate(calls: Multicall3.CallStruct[], overrides?: CallOverrides): Promise<[ BigNumber, string, Multicall3.ResultStructOutput[] ] & { blockNumber: BigNumber; blockHash: string; returnData: Multicall3.ResultStructOutput[]; }>; getBasefee(overrides?: CallOverrides): Promise; getBlockHash(blockNumber: BigNumberish, overrides?: CallOverrides): Promise; getBlockNumber(overrides?: CallOverrides): Promise; getChainId(overrides?: CallOverrides): Promise; getCurrentBlockCoinbase(overrides?: CallOverrides): Promise; getCurrentBlockDifficulty(overrides?: CallOverrides): Promise; getCurrentBlockGasLimit(overrides?: CallOverrides): Promise; getCurrentBlockTimestamp(overrides?: CallOverrides): Promise; getEthBalance(addr: string, overrides?: CallOverrides): Promise; getLastBlockHash(overrides?: CallOverrides): Promise; tryAggregate(requireSuccess: boolean, calls: Multicall3.CallStruct[], overrides?: CallOverrides): Promise; tryBlockAndAggregate(requireSuccess: boolean, calls: Multicall3.CallStruct[], overrides?: CallOverrides): Promise<[ BigNumber, string, Multicall3.ResultStructOutput[] ] & { blockNumber: BigNumber; blockHash: string; returnData: Multicall3.ResultStructOutput[]; }>; }; filters: {}; estimateGas: { aggregate(calls: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; aggregate3(calls: Multicall3.Call3Struct[], overrides?: PayableOverrides & { from?: string; }): Promise; aggregate3Value(calls: Multicall3.Call3ValueStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; blockAndAggregate(calls: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; getBasefee(overrides?: CallOverrides): Promise; getBlockHash(blockNumber: BigNumberish, overrides?: CallOverrides): Promise; getBlockNumber(overrides?: CallOverrides): Promise; getChainId(overrides?: CallOverrides): Promise; getCurrentBlockCoinbase(overrides?: CallOverrides): Promise; getCurrentBlockDifficulty(overrides?: CallOverrides): Promise; getCurrentBlockGasLimit(overrides?: CallOverrides): Promise; getCurrentBlockTimestamp(overrides?: CallOverrides): Promise; getEthBalance(addr: string, overrides?: CallOverrides): Promise; getLastBlockHash(overrides?: CallOverrides): Promise; tryAggregate(requireSuccess: boolean, calls: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; tryBlockAndAggregate(requireSuccess: boolean, calls: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; }; populateTransaction: { aggregate(calls: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; aggregate3(calls: Multicall3.Call3Struct[], overrides?: PayableOverrides & { from?: string; }): Promise; aggregate3Value(calls: Multicall3.Call3ValueStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; blockAndAggregate(calls: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; getBasefee(overrides?: CallOverrides): Promise; getBlockHash(blockNumber: BigNumberish, overrides?: CallOverrides): Promise; getBlockNumber(overrides?: CallOverrides): Promise; getChainId(overrides?: CallOverrides): Promise; getCurrentBlockCoinbase(overrides?: CallOverrides): Promise; getCurrentBlockDifficulty(overrides?: CallOverrides): Promise; getCurrentBlockGasLimit(overrides?: CallOverrides): Promise; getCurrentBlockTimestamp(overrides?: CallOverrides): Promise; getEthBalance(addr: string, overrides?: CallOverrides): Promise; getLastBlockHash(overrides?: CallOverrides): Promise; tryAggregate(requireSuccess: boolean, calls: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; tryBlockAndAggregate(requireSuccess: boolean, calls: Multicall3.CallStruct[], overrides?: PayableOverrides & { from?: string; }): Promise; }; }