import { BigNumber, providers } from 'ethers'; import { ChainId } from '../util'; import { CallSameFunctionOnContractWithMultipleParams, CallSameFunctionOnMultipleContractsParams, IMulticallProvider, Result } from './multicall-provider'; export declare type UniswapMulticallConfig = { gasLimitPerCallOverride?: number; }; /** * The UniswapMulticall contract has added functionality for limiting the amount of gas * that each call within the multicall can consume. This is useful for operations where * a call could consume such a large amount of gas that it causes the node to error out * with an out of gas error. * * @export * @class UniswapMulticallProvider */ export declare class UniswapMulticallProvider extends IMulticallProvider { protected chainId: ChainId; protected provider: providers.BaseProvider; protected gasLimitPerCall: number; protected multicallAddressOverride: string; private multicallContract; constructor(chainId: ChainId, provider: providers.BaseProvider, gasLimitPerCall?: number, multicallAddressOverride?: string); callSameFunctionOnMultipleContracts(params: CallSameFunctionOnMultipleContractsParams): Promise<{ blockNumber: BigNumber; results: Result[]; }>; callSameFunctionOnContractWithMultipleParams(params: CallSameFunctionOnContractWithMultipleParams): Promise<{ blockNumber: BigNumber; results: Result[]; approxGasUsedPerSuccessCall: number; }>; }