import { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, PopulatedTransaction, Signer, utils } from "ethers"; import { FunctionFragment, Result } from "@ethersproject/abi"; import { Listener, Provider } from "@ethersproject/providers"; import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface IUniswapV3PoolDerivedStateInterface extends utils.Interface { contractName: "IUniswapV3PoolDerivedState"; functions: { "observe(uint32[])": FunctionFragment; "snapshotCumulativesInside(int24,int24)": FunctionFragment; }; encodeFunctionData(functionFragment: "observe", values: [BigNumberish[]]): string; encodeFunctionData(functionFragment: "snapshotCumulativesInside", values: [BigNumberish, BigNumberish]): string; decodeFunctionResult(functionFragment: "observe", data: BytesLike): Result; decodeFunctionResult(functionFragment: "snapshotCumulativesInside", data: BytesLike): Result; events: {}; } export interface IUniswapV3PoolDerivedState extends BaseContract { contractName: "IUniswapV3PoolDerivedState"; connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: IUniswapV3PoolDerivedStateInterface; 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: { /** * To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick, you must call it with secondsAgos = [3600, 0].The time weighted average tick represents the geometric time weighted average price of the pool, in log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio. * Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp * @param secondsAgos From how long ago each cumulative tick and liquidity value should be returned */ observe(secondsAgos: BigNumberish[], overrides?: CallOverrides): Promise<[ BigNumber[], BigNumber[] ] & { tickCumulatives: BigNumber[]; secondsPerLiquidityCumulativeX128s: BigNumber[]; }>; /** * Snapshots must only be compared to other snapshots, taken over a period for which a position existed. I.e., snapshots cannot be compared if a position is not held for the entire period between when the first snapshot is taken and the second snapshot is taken. * Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range * @param tickLower The lower tick of the range * @param tickUpper The upper tick of the range */ snapshotCumulativesInside(tickLower: BigNumberish, tickUpper: BigNumberish, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, number ] & { tickCumulativeInside: BigNumber; secondsPerLiquidityInsideX128: BigNumber; secondsInside: number; }>; }; /** * To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick, you must call it with secondsAgos = [3600, 0].The time weighted average tick represents the geometric time weighted average price of the pool, in log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio. * Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp * @param secondsAgos From how long ago each cumulative tick and liquidity value should be returned */ observe(secondsAgos: BigNumberish[], overrides?: CallOverrides): Promise<[ BigNumber[], BigNumber[] ] & { tickCumulatives: BigNumber[]; secondsPerLiquidityCumulativeX128s: BigNumber[]; }>; /** * Snapshots must only be compared to other snapshots, taken over a period for which a position existed. I.e., snapshots cannot be compared if a position is not held for the entire period between when the first snapshot is taken and the second snapshot is taken. * Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range * @param tickLower The lower tick of the range * @param tickUpper The upper tick of the range */ snapshotCumulativesInside(tickLower: BigNumberish, tickUpper: BigNumberish, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, number ] & { tickCumulativeInside: BigNumber; secondsPerLiquidityInsideX128: BigNumber; secondsInside: number; }>; callStatic: { /** * To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick, you must call it with secondsAgos = [3600, 0].The time weighted average tick represents the geometric time weighted average price of the pool, in log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio. * Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp * @param secondsAgos From how long ago each cumulative tick and liquidity value should be returned */ observe(secondsAgos: BigNumberish[], overrides?: CallOverrides): Promise<[ BigNumber[], BigNumber[] ] & { tickCumulatives: BigNumber[]; secondsPerLiquidityCumulativeX128s: BigNumber[]; }>; /** * Snapshots must only be compared to other snapshots, taken over a period for which a position existed. I.e., snapshots cannot be compared if a position is not held for the entire period between when the first snapshot is taken and the second snapshot is taken. * Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range * @param tickLower The lower tick of the range * @param tickUpper The upper tick of the range */ snapshotCumulativesInside(tickLower: BigNumberish, tickUpper: BigNumberish, overrides?: CallOverrides): Promise<[ BigNumber, BigNumber, number ] & { tickCumulativeInside: BigNumber; secondsPerLiquidityInsideX128: BigNumber; secondsInside: number; }>; }; filters: {}; estimateGas: { /** * To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick, you must call it with secondsAgos = [3600, 0].The time weighted average tick represents the geometric time weighted average price of the pool, in log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio. * Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp * @param secondsAgos From how long ago each cumulative tick and liquidity value should be returned */ observe(secondsAgos: BigNumberish[], overrides?: CallOverrides): Promise; /** * Snapshots must only be compared to other snapshots, taken over a period for which a position existed. I.e., snapshots cannot be compared if a position is not held for the entire period between when the first snapshot is taken and the second snapshot is taken. * Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range * @param tickLower The lower tick of the range * @param tickUpper The upper tick of the range */ snapshotCumulativesInside(tickLower: BigNumberish, tickUpper: BigNumberish, overrides?: CallOverrides): Promise; }; populateTransaction: { /** * To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick, you must call it with secondsAgos = [3600, 0].The time weighted average tick represents the geometric time weighted average price of the pool, in log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio. * Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp * @param secondsAgos From how long ago each cumulative tick and liquidity value should be returned */ observe(secondsAgos: BigNumberish[], overrides?: CallOverrides): Promise; /** * Snapshots must only be compared to other snapshots, taken over a period for which a position existed. I.e., snapshots cannot be compared if a position is not held for the entire period between when the first snapshot is taken and the second snapshot is taken. * Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range * @param tickLower The lower tick of the range * @param tickUpper The upper tick of the range */ snapshotCumulativesInside(tickLower: BigNumberish, tickUpper: BigNumberish, overrides?: CallOverrides): Promise; }; }