import { BigNumber } from "@ethersproject/bignumber"; import { BaseProvider } from "@ethersproject/providers"; import { CallMultipleFunctionsOnSameContractParams, CallSameFunctionOnContractWithMultipleParams, CallSameFunctionOnMultipleContractsParams, IMulticallProvider, Result } from "./multicall-provider"; import { ChainId } from "@onyxcoindev/sdk-core-test"; export type OnyxMulticallConfig = { gasLimitPerCallOverride?: number; }; /** * The OnyxMulticall 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 OnyxMulticallProvider */ export declare class OnyxMulticallProvider extends IMulticallProvider { protected chainId: ChainId; protected provider: BaseProvider; protected gasLimitPerCall: number; private multicallContract; constructor(chainId: ChainId, provider: BaseProvider, gasLimitPerCall?: number); callSameFunctionOnMultipleContracts(params: CallSameFunctionOnMultipleContractsParams): Promise<{ blockNumber: BigNumber; results: Result[]; }>; callSameFunctionOnContractWithMultipleParams(params: CallSameFunctionOnContractWithMultipleParams): Promise<{ blockNumber: BigNumber; results: Result[]; approxGasUsedPerSuccessCall: number; }>; callMultipleFunctionsOnSameContract(params: CallMultipleFunctionsOnSameContractParams): Promise<{ blockNumber: BigNumber; results: Result[]; approxGasUsedPerSuccessCall: number; }>; simulateMulticall(params: CallSameFunctionOnContractWithMultipleParams): Promise<{ blockNumber: BigNumber; returnData: { success: boolean; returnData: string; }[]; }>; }