/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ import { ethers, EventFilter, Signer, BigNumber, BigNumberish, PopulatedTransaction, BaseContract, ContractTransaction, Overrides, CallOverrides, } from "ethers"; import { BytesLike } from "@ethersproject/bytes"; import { Listener, Provider } from "@ethersproject/providers"; import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; import type { TypedEventFilter, TypedEvent, TypedListener } from "./common"; interface IPerpetualMarketInterface extends ethers.utils.Interface { functions: { "addMargin(uint256,int256)": FunctionFragment; "deposit(uint256)": FunctionFragment; "execHedge(bool,uint256)": FunctionFragment; "getLPTokenPrice(int256)": FunctionFragment; "getMinCollateralToAddPosition(uint256,int128[2])": FunctionFragment; "getTokenAmountForHedging()": FunctionFragment; "getTradePrice(uint256,int256[2])": FunctionFragment; "getTraderVault(uint256)": FunctionFragment; "getVaultStatus(uint256)": FunctionFragment; "initialize(uint256,int256)": FunctionFragment; "liquidateByPool(uint256)": FunctionFragment; "trade((uint256,tuple[],int256,uint256))": FunctionFragment; "withdraw(uint128)": FunctionFragment; }; encodeFunctionData( functionFragment: "addMargin", values: [BigNumberish, BigNumberish] ): string; encodeFunctionData( functionFragment: "deposit", values: [BigNumberish] ): string; encodeFunctionData( functionFragment: "execHedge", values: [boolean, BigNumberish] ): string; encodeFunctionData( functionFragment: "getLPTokenPrice", values: [BigNumberish] ): string; encodeFunctionData( functionFragment: "getMinCollateralToAddPosition", values: [BigNumberish, [BigNumberish, BigNumberish]] ): string; encodeFunctionData( functionFragment: "getTokenAmountForHedging", values?: undefined ): string; encodeFunctionData( functionFragment: "getTradePrice", values: [BigNumberish, [BigNumberish, BigNumberish]] ): string; encodeFunctionData( functionFragment: "getTraderVault", values: [BigNumberish] ): string; encodeFunctionData( functionFragment: "getVaultStatus", values: [BigNumberish] ): string; encodeFunctionData( functionFragment: "initialize", values: [BigNumberish, BigNumberish] ): string; encodeFunctionData( functionFragment: "liquidateByPool", values: [BigNumberish] ): string; encodeFunctionData( functionFragment: "trade", values: [ { vaultId: BigNumberish; trades: { productId: BigNumberish; subVaultIndex: BigNumberish; tradeAmount: BigNumberish; limitPrice: BigNumberish; metadata: BytesLike; }[]; marginAmount: BigNumberish; deadline: BigNumberish; } ] ): string; encodeFunctionData( functionFragment: "withdraw", values: [BigNumberish] ): string; decodeFunctionResult(functionFragment: "addMargin", data: BytesLike): Result; decodeFunctionResult(functionFragment: "deposit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "execHedge", data: BytesLike): Result; decodeFunctionResult( functionFragment: "getLPTokenPrice", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "getMinCollateralToAddPosition", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "getTokenAmountForHedging", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "getTradePrice", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "getTraderVault", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "getVaultStatus", data: BytesLike ): Result; decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; decodeFunctionResult( functionFragment: "liquidateByPool", data: BytesLike ): Result; decodeFunctionResult(functionFragment: "trade", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; events: {}; } export class IPerpetualMarket extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; listeners, EventArgsObject>( eventFilter?: TypedEventFilter ): Array>; off, EventArgsObject>( eventFilter: TypedEventFilter, listener: TypedListener ): this; on, EventArgsObject>( eventFilter: TypedEventFilter, listener: TypedListener ): this; once, EventArgsObject>( eventFilter: TypedEventFilter, listener: TypedListener ): this; removeListener, EventArgsObject>( eventFilter: TypedEventFilter, listener: TypedListener ): this; removeAllListeners, EventArgsObject>( eventFilter: TypedEventFilter ): this; listeners(eventName?: string): Array; off(eventName: string, listener: Listener): this; on(eventName: string, listener: Listener): this; once(eventName: string, listener: Listener): this; removeListener(eventName: string, listener: Listener): this; removeAllListeners(eventName?: string): this; queryFilter, EventArgsObject>( event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined ): Promise>>; interface: IPerpetualMarketInterface; functions: { addMargin( _vaultId: BigNumberish, _marginToAdd: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; deposit( _depositAmount: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; execHedge( _withRebalance: boolean, _amountUsdc: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; getLPTokenPrice( _deltaLiquidityAmount: BigNumberish, overrides?: CallOverrides ): Promise<[BigNumber]>; getMinCollateralToAddPosition( _vaultId: BigNumberish, _tradeAmounts: [BigNumberish, BigNumberish], overrides?: CallOverrides ): Promise<[BigNumber] & { minCollateral: BigNumber }>; getTokenAmountForHedging( overrides?: CallOverrides ): Promise<[boolean, BigNumber, BigNumber]>; getTradePrice( _productId: BigNumberish, _tradeAmounts: [BigNumberish, BigNumberish], overrides?: CallOverrides ): Promise< [ [ BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber ] & { tradePrice: BigNumber; indexPrice: BigNumber; fundingRate: BigNumber; tradeFee: BigNumber; protocolFee: BigNumber; fundingFee: BigNumber; totalValue: BigNumber; totalFee: BigNumber; } ] & { tradePriceInfo: [ BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber ] & { tradePrice: BigNumber; indexPrice: BigNumber; fundingRate: BigNumber; tradeFee: BigNumber; protocolFee: BigNumber; fundingFee: BigNumber; totalValue: BigNumber; totalFee: BigNumber; }; } >; getTraderVault( _vaultId: BigNumberish, overrides?: CallOverrides ): Promise< [ [ BigNumber, ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[] ] & { positionUsdc: BigNumber; subVaults: ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[]; } ] >; getVaultStatus( _vaultId: BigNumberish, overrides?: CallOverrides ): Promise< [ [ BigNumber, BigNumber, [BigNumber, BigNumber][], [BigNumber, BigNumber][], [ BigNumber, ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[] ] & { positionUsdc: BigNumber; subVaults: ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[]; } ] & { positionValue: BigNumber; minCollateral: BigNumber; positionValues: [BigNumber, BigNumber][]; fundingPaid: [BigNumber, BigNumber][]; rawVaultData: [ BigNumber, ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[] ] & { positionUsdc: BigNumber; subVaults: ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[]; }; } ] >; initialize( _depositAmount: BigNumberish, _initialFundingRate: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; liquidateByPool( _vaultId: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; trade( _tradeParams: { vaultId: BigNumberish; trades: { productId: BigNumberish; subVaultIndex: BigNumberish; tradeAmount: BigNumberish; limitPrice: BigNumberish; metadata: BytesLike; }[]; marginAmount: BigNumberish; deadline: BigNumberish; }, overrides?: Overrides & { from?: string | Promise } ): Promise; withdraw( _withdrawnAmount: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; }; addMargin( _vaultId: BigNumberish, _marginToAdd: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; deposit( _depositAmount: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; execHedge( _withRebalance: boolean, _amountUsdc: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; getLPTokenPrice( _deltaLiquidityAmount: BigNumberish, overrides?: CallOverrides ): Promise; getMinCollateralToAddPosition( _vaultId: BigNumberish, _tradeAmounts: [BigNumberish, BigNumberish], overrides?: CallOverrides ): Promise; getTokenAmountForHedging( overrides?: CallOverrides ): Promise<[boolean, BigNumber, BigNumber]>; getTradePrice( _productId: BigNumberish, _tradeAmounts: [BigNumberish, BigNumberish], overrides?: CallOverrides ): Promise< [ BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber ] & { tradePrice: BigNumber; indexPrice: BigNumber; fundingRate: BigNumber; tradeFee: BigNumber; protocolFee: BigNumber; fundingFee: BigNumber; totalValue: BigNumber; totalFee: BigNumber; } >; getTraderVault( _vaultId: BigNumberish, overrides?: CallOverrides ): Promise< [ BigNumber, ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[] ] & { positionUsdc: BigNumber; subVaults: ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[]; } >; getVaultStatus( _vaultId: BigNumberish, overrides?: CallOverrides ): Promise< [ BigNumber, BigNumber, [BigNumber, BigNumber][], [BigNumber, BigNumber][], [ BigNumber, ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[] ] & { positionUsdc: BigNumber; subVaults: ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[]; } ] & { positionValue: BigNumber; minCollateral: BigNumber; positionValues: [BigNumber, BigNumber][]; fundingPaid: [BigNumber, BigNumber][]; rawVaultData: [ BigNumber, ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[] ] & { positionUsdc: BigNumber; subVaults: ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[]; }; } >; initialize( _depositAmount: BigNumberish, _initialFundingRate: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; liquidateByPool( _vaultId: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; trade( _tradeParams: { vaultId: BigNumberish; trades: { productId: BigNumberish; subVaultIndex: BigNumberish; tradeAmount: BigNumberish; limitPrice: BigNumberish; metadata: BytesLike; }[]; marginAmount: BigNumberish; deadline: BigNumberish; }, overrides?: Overrides & { from?: string | Promise } ): Promise; withdraw( _withdrawnAmount: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; callStatic: { addMargin( _vaultId: BigNumberish, _marginToAdd: BigNumberish, overrides?: CallOverrides ): Promise; deposit( _depositAmount: BigNumberish, overrides?: CallOverrides ): Promise; execHedge( _withRebalance: boolean, _amountUsdc: BigNumberish, overrides?: CallOverrides ): Promise; getLPTokenPrice( _deltaLiquidityAmount: BigNumberish, overrides?: CallOverrides ): Promise; getMinCollateralToAddPosition( _vaultId: BigNumberish, _tradeAmounts: [BigNumberish, BigNumberish], overrides?: CallOverrides ): Promise; getTokenAmountForHedging( overrides?: CallOverrides ): Promise<[boolean, BigNumber, BigNumber]>; getTradePrice( _productId: BigNumberish, _tradeAmounts: [BigNumberish, BigNumberish], overrides?: CallOverrides ): Promise< [ BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber ] & { tradePrice: BigNumber; indexPrice: BigNumber; fundingRate: BigNumber; tradeFee: BigNumber; protocolFee: BigNumber; fundingFee: BigNumber; totalValue: BigNumber; totalFee: BigNumber; } >; getTraderVault( _vaultId: BigNumberish, overrides?: CallOverrides ): Promise< [ BigNumber, ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[] ] & { positionUsdc: BigNumber; subVaults: ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[]; } >; getVaultStatus( _vaultId: BigNumberish, overrides?: CallOverrides ): Promise< [ BigNumber, BigNumber, [BigNumber, BigNumber][], [BigNumber, BigNumber][], [ BigNumber, ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[] ] & { positionUsdc: BigNumber; subVaults: ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[]; } ] & { positionValue: BigNumber; minCollateral: BigNumber; positionValues: [BigNumber, BigNumber][]; fundingPaid: [BigNumber, BigNumber][]; rawVaultData: [ BigNumber, ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[] ] & { positionUsdc: BigNumber; subVaults: ([ [BigNumber, BigNumber], [BigNumber, BigNumber], [BigNumber, BigNumber] ] & { positionPerpetuals: [BigNumber, BigNumber]; entryPrices: [BigNumber, BigNumber]; entryFundingFee: [BigNumber, BigNumber]; })[]; }; } >; initialize( _depositAmount: BigNumberish, _initialFundingRate: BigNumberish, overrides?: CallOverrides ): Promise; liquidateByPool( _vaultId: BigNumberish, overrides?: CallOverrides ): Promise; trade( _tradeParams: { vaultId: BigNumberish; trades: { productId: BigNumberish; subVaultIndex: BigNumberish; tradeAmount: BigNumberish; limitPrice: BigNumberish; metadata: BytesLike; }[]; marginAmount: BigNumberish; deadline: BigNumberish; }, overrides?: CallOverrides ): Promise; withdraw( _withdrawnAmount: BigNumberish, overrides?: CallOverrides ): Promise; }; filters: {}; estimateGas: { addMargin( _vaultId: BigNumberish, _marginToAdd: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; deposit( _depositAmount: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; execHedge( _withRebalance: boolean, _amountUsdc: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; getLPTokenPrice( _deltaLiquidityAmount: BigNumberish, overrides?: CallOverrides ): Promise; getMinCollateralToAddPosition( _vaultId: BigNumberish, _tradeAmounts: [BigNumberish, BigNumberish], overrides?: CallOverrides ): Promise; getTokenAmountForHedging(overrides?: CallOverrides): Promise; getTradePrice( _productId: BigNumberish, _tradeAmounts: [BigNumberish, BigNumberish], overrides?: CallOverrides ): Promise; getTraderVault( _vaultId: BigNumberish, overrides?: CallOverrides ): Promise; getVaultStatus( _vaultId: BigNumberish, overrides?: CallOverrides ): Promise; initialize( _depositAmount: BigNumberish, _initialFundingRate: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; liquidateByPool( _vaultId: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; trade( _tradeParams: { vaultId: BigNumberish; trades: { productId: BigNumberish; subVaultIndex: BigNumberish; tradeAmount: BigNumberish; limitPrice: BigNumberish; metadata: BytesLike; }[]; marginAmount: BigNumberish; deadline: BigNumberish; }, overrides?: Overrides & { from?: string | Promise } ): Promise; withdraw( _withdrawnAmount: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; }; populateTransaction: { addMargin( _vaultId: BigNumberish, _marginToAdd: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; deposit( _depositAmount: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; execHedge( _withRebalance: boolean, _amountUsdc: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; getLPTokenPrice( _deltaLiquidityAmount: BigNumberish, overrides?: CallOverrides ): Promise; getMinCollateralToAddPosition( _vaultId: BigNumberish, _tradeAmounts: [BigNumberish, BigNumberish], overrides?: CallOverrides ): Promise; getTokenAmountForHedging( overrides?: CallOverrides ): Promise; getTradePrice( _productId: BigNumberish, _tradeAmounts: [BigNumberish, BigNumberish], overrides?: CallOverrides ): Promise; getTraderVault( _vaultId: BigNumberish, overrides?: CallOverrides ): Promise; getVaultStatus( _vaultId: BigNumberish, overrides?: CallOverrides ): Promise; initialize( _depositAmount: BigNumberish, _initialFundingRate: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; liquidateByPool( _vaultId: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; trade( _tradeParams: { vaultId: BigNumberish; trades: { productId: BigNumberish; subVaultIndex: BigNumberish; tradeAmount: BigNumberish; limitPrice: BigNumberish; metadata: BytesLike; }[]; marginAmount: BigNumberish; deadline: BigNumberish; }, overrides?: Overrides & { from?: string | Promise } ): Promise; withdraw( _withdrawnAmount: BigNumberish, overrides?: Overrides & { from?: string | Promise } ): Promise; }; }