import { providers, BigNumber, BigNumberish } from "ethers"; import { Account } from "../test/types"; import { PerpV2AccountBalance, PerpV2BaseToken, PerpV2ClearingHouseConfig, PerpV2Exchange, PerpV2InsuranceFund, PerpV2Vault, PerpV2OrderBook, PerpV2MarketRegistry, PerpV2ClearingHouse, PerpV2QuoteToken, PerpV2Quoter } from "../contracts/perpV2"; import { UniswapV3Factory, UniswapV3Pool } from "../contracts/uniswapV3"; import { StandardTokenMock, ChainlinkAggregatorMock } from "../contracts"; import { Address } from "../types"; export interface TokensFixture { token0: PerpV2BaseToken; token1: PerpV2QuoteToken; mockAggregator0: ChainlinkAggregatorMock; mockAggregator1: ChainlinkAggregatorMock; } export interface PoolFixture { factory: UniswapV3Factory; pool: UniswapV3Pool; baseToken: PerpV2BaseToken; quoteToken: PerpV2QuoteToken; } export interface BaseTokenFixture { baseToken: PerpV2BaseToken; mockAggregator: ChainlinkAggregatorMock; } export interface PositionInfo { baseToken: Address; baseBalance: BigNumber; quoteBalance: BigNumber; } export declare class PerpV2Fixture { private _deployer; private _ownerAddress; private _ownerSigner; private _feeTier; private _usdcDecimals; private _priceFeeds; private _pools; maker: Account; otherTrader: Account; usdc: StandardTokenMock; clearingHouse: PerpV2ClearingHouse; orderBook: PerpV2OrderBook; accountBalance: PerpV2AccountBalance; marketRegistry: PerpV2MarketRegistry; clearingHouseConfig: PerpV2ClearingHouseConfig; quoter: PerpV2Quoter; exchange: PerpV2Exchange; vault: PerpV2Vault; insuranceFund: PerpV2InsuranceFund; uniV3Factory: UniswapV3Factory; vETHPool: UniswapV3Pool; vBTCPool: UniswapV3Pool; vETH: PerpV2BaseToken; vBTC: PerpV2BaseToken; ethPriceFeed: ChainlinkAggregatorMock; btcPriceFeed: ChainlinkAggregatorMock; vQuote: PerpV2QuoteToken; feeTierPercent: BigNumber; constructor(provider: providers.Web3Provider | providers.JsonRpcProvider, ownerAddress: Address); initialize(_maker: Account, _otherTrader: Account): Promise; deposit(sender: Account, amount: BigNumber, token: StandardTokenMock): Promise; initializePoolWithLiquidityWide(baseToken: PerpV2BaseToken, baseTokenAmount: BigNumberish, quoteTokenAmount: BigNumberish): Promise; initializePoolWithLiquidityWithinTicks(baseToken: PerpV2BaseToken, baseTokenAmount: BigNumberish, quoteTokenAmount: BigNumberish, lowerTick: number, upperTick: number): Promise; setBaseTokenOraclePrice(baseToken: PerpV2BaseToken, price: BigNumber): Promise; getSpotPrice(_baseToken: Address): Promise; getPriceFromSqrtPriceX96(sqrtPriceX96: BigNumber): BigNumber; getSwapQuote(baseToken: Address, baseQuantity: BigNumber, isBuy: boolean): Promise<{ deltaBase: BigNumber; deltaQuote: BigNumber; }>; getCurrentLeverage(_setToken: Address, _positionInfo: PositionInfo, _collateralBalance: BigNumber): Promise; getVTokenInstance(token: Address): Promise; private _getMinTick; private _getMaxTick; private _encodePriceSqrt; _createQuoteTokenFixture(name: string, symbol: string): Promise; _createBaseTokenFixture(name: string, symbol: string): Promise; _tokensFixture(): Promise; private _isAscendingTokenOrder; _token0Fixture(token1Addr: string): Promise; } //# sourceMappingURL=perpV2Fixture.d.ts.map