import { Interface } from "@ethersproject/abi"; import { StaticJsonRpcProvider } from "@ethersproject/providers"; import { BlockOverrides } from "../order"; export type MulticallParams = { contractInterface: Interface; functionName: string; }; export type MulticallSameContractParams = MulticallParams & { address: string; functionParams: TFunctionParams[]; }; export type MulticallSameFunctionParams = MulticallParams & { addresses: string[]; functionParam: TFunctionParams; }; export type MulticallResult = { success: boolean; returnData: string; }; type Call = { target: string; callData: string; }; export declare function multicallSameContractManyCalls(provider: StaticJsonRpcProvider, params: MulticallSameContractParams, stateOverrrides?: { code?: string; state?: any; }, blockOverrides?: BlockOverrides): Promise; /** * @deprecated Renamed to {@link multicallSameContractManyCalls}. This helper calls a * single function once per entry in `functionParams` -- it varies the arguments, not * the function, which `functionName` being a lone string already implies. To call * different functions in one request, build the calls yourself and use {@link multicall}. */ export declare const multicallSameContractManyFunctions: typeof multicallSameContractManyCalls; export type OrderWithBlockOverrides = { order: { blockOverrides: BlockOverrides; }; }; export declare function multicallOrdersPreservingOrder(provider: StaticJsonRpcProvider, params: MulticallParams & { address: string; }, orders: TOrder[], buildParams: (order: TOrder) => TFunctionParams): Promise; export declare function multicallSameFunctionManyContracts(provider: StaticJsonRpcProvider, params: MulticallSameFunctionParams, stateOverrrides?: { code?: string; state?: any; }, blockOverrides?: BlockOverrides): Promise; export declare function multicall(provider: StaticJsonRpcProvider, calls: Call[], stateOverrides?: { code?: string; state?: any; }, blockOverrides?: BlockOverrides): Promise; export {};