import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "./common"; export type LimitOrderStruct = { trader: AddressLike; amm: AddressLike; side: BigNumberish; trigger: BigNumberish; quoteAmount: BigNumberish; leverage: BigNumberish; reduceOnly: boolean; }; export type LimitOrderStructOutput = [ trader: string, amm: string, side: bigint, trigger: bigint, quoteAmount: bigint, leverage: bigint, reduceOnly: boolean ] & { trader: string; amm: string; side: bigint; trigger: bigint; quoteAmount: bigint; leverage: bigint; reduceOnly: boolean; }; export type TriggerOrderStruct = { trader: AddressLike; amm: AddressLike; trigger: BigNumberish; size: BigNumberish; quoteLimit: BigNumberish; takeProfit: boolean; }; export type TriggerOrderStructOutput = [ trader: string, amm: string, trigger: bigint, size: bigint, quoteLimit: bigint, takeProfit: boolean ] & { trader: string; amm: string; trigger: bigint; size: bigint; quoteLimit: bigint; takeProfit: boolean; }; export type LiquidityAddDataStruct = { index: BigNumberish; margin: BigNumberish; leverage: BigNumberish; }; export type LiquidityAddDataStructOutput = [ index: bigint, margin: bigint, leverage: bigint ] & { index: bigint; margin: bigint; leverage: bigint; }; export type LiquidityAddReturnDataStruct = { pool: AddressLike; shares: BigNumberish; quote: BigNumberish; base: BigNumberish; }; export type LiquidityAddReturnDataStructOutput = [ pool: string, shares: bigint, quote: bigint, base: bigint ] & { pool: string; shares: bigint; quote: bigint; base: bigint; }; export type PositionStruct = { size: BigNumberish; margin: BigNumberish; openNotional: BigNumberish; lastPremiumFraction: BigNumberish; blockNumber: BigNumberish; }; export type PositionStructOutput = [ size: bigint, margin: bigint, openNotional: bigint, lastPremiumFraction: bigint, blockNumber: bigint ] & { size: bigint; margin: bigint; openNotional: bigint; lastPremiumFraction: bigint; blockNumber: bigint; }; export type TotalPositionSizeStruct = { netPositionSize: BigNumberish; positionSizeLong: BigNumberish; positionSizeShort: BigNumberish; }; export type TotalPositionSizeStructOutput = [ netPositionSize: bigint, positionSizeLong: bigint, positionSizeShort: bigint ] & { netPositionSize: bigint; positionSizeLong: bigint; positionSizeShort: bigint; }; export type LiquidityRemoveDataStruct = { index: BigNumberish; shares: BigNumberish; }; export type LiquidityRemoveDataStructOutput = [ index: bigint, shares: bigint ] & { index: bigint; shares: bigint; }; export interface ClearingHouseInterface extends Interface { getFunction(nameOrSignature: "addLiquidity" | "addMargin" | "cancelOwnershipHandover" | "closePosition" | "closePositionKeeper" | "completeOwnershipHandover" | "createLimitOrder" | "createLimitOrderBatch" | "createTriggerOrder" | "deleteLimitOrder" | "deleteLimitOrderBatch" | "deleteTriggerOrder" | "deleverage" | "getCumulativePremiumFraction" | "getDivergenceCap" | "getFreeCollateral" | "getLimitOrder" | "getMinOrderbookMargin" | "getOpenInterestNotional" | "getPosition" | "getPositionNotionalUpnl" | "getReduceOnlyOrders" | "getTotalPositionSize" | "getTriggerOrder" | "getTriggerOrders" | "getValidAMM" | "initialize" | "isActive" | "isLiquidatable" | "isTriggerOrderValid" | "liquidate" | "liquidateMaker" | "openPosition" | "owner" | "ownershipHandoverExpiresAt" | "removeLiquidity" | "removeMargin" | "renounceOwnership" | "requestOwnershipHandover" | "setActive" | "setDivergenceCap" | "setMinOrderbookMargin" | "setValidAMM" | "settleFunding" | "transferOwnership" | "updateLimitOrder" | "updateLimitOrderBatch" | "updateTriggerOrder"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "AMMInvalidated" | "AMMValidated" | "Activated" | "Deactivated" | "DivergenceCapChanged" | "FeeDistributed" | "FundingSettled" | "Initialized" | "LimitOrderRemoved" | "LimitOrderUpdated" | "LiquidityAdded" | "LiquidityRemoved" | "MarginAdded" | "MarginRemoved" | "MinOrderbookMarginChanged" | "OpenInterestChanged" | "OwnershipHandoverCanceled" | "OwnershipHandoverRequested" | "OwnershipTransferred" | "PositionChanged" | "TriggerOrderRemoved" | "TriggerOrderUpdated"): EventFragment; encodeFunctionData(functionFragment: "addLiquidity", values: [AddressLike, LiquidityAddDataStruct[]]): string; encodeFunctionData(functionFragment: "addMargin", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "cancelOwnershipHandover", values?: undefined): string; encodeFunctionData(functionFragment: "closePosition", values: [AddressLike, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "closePositionKeeper", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "completeOwnershipHandover", values: [AddressLike]): string; encodeFunctionData(functionFragment: "createLimitOrder", values: [LimitOrderStruct]): string; encodeFunctionData(functionFragment: "createLimitOrderBatch", values: [LimitOrderStruct[]]): string; encodeFunctionData(functionFragment: "createTriggerOrder", values: [TriggerOrderStruct]): string; encodeFunctionData(functionFragment: "deleteLimitOrder", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "deleteLimitOrderBatch", values: [BigNumberish[]]): string; encodeFunctionData(functionFragment: "deleteTriggerOrder", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "deleverage", values: [AddressLike, AddressLike, AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "getCumulativePremiumFraction", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getDivergenceCap", values?: undefined): string; encodeFunctionData(functionFragment: "getFreeCollateral", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "getLimitOrder", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getMinOrderbookMargin", values?: undefined): string; encodeFunctionData(functionFragment: "getOpenInterestNotional", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getPosition", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "getPositionNotionalUpnl", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "getReduceOnlyOrders", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "getTotalPositionSize", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getTriggerOrder", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getTriggerOrders", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "getValidAMM", values: [AddressLike]): string; encodeFunctionData(functionFragment: "initialize", values: [AddressLike, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "isActive", values?: undefined): string; encodeFunctionData(functionFragment: "isLiquidatable", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "isTriggerOrderValid", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "liquidate", values: [AddressLike, BigNumberish, AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "liquidateMaker", values: [AddressLike, AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "openPosition", values: [ AddressLike, BigNumberish, BigNumberish, BigNumberish, BigNumberish ]): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData(functionFragment: "ownershipHandoverExpiresAt", values: [AddressLike]): string; encodeFunctionData(functionFragment: "removeLiquidity", values: [AddressLike, LiquidityRemoveDataStruct[], BigNumberish]): string; encodeFunctionData(functionFragment: "removeMargin", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string; encodeFunctionData(functionFragment: "requestOwnershipHandover", values?: undefined): string; encodeFunctionData(functionFragment: "setActive", values: [boolean]): string; encodeFunctionData(functionFragment: "setDivergenceCap", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "setMinOrderbookMargin", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "setValidAMM", values: [AddressLike, boolean]): string; encodeFunctionData(functionFragment: "settleFunding", values: [AddressLike]): string; encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updateLimitOrder", values: [BigNumberish, LimitOrderStruct]): string; encodeFunctionData(functionFragment: "updateLimitOrderBatch", values: [BigNumberish[], LimitOrderStruct[]]): string; encodeFunctionData(functionFragment: "updateTriggerOrder", values: [BigNumberish, TriggerOrderStruct]): string; decodeFunctionResult(functionFragment: "addLiquidity", data: BytesLike): Result; decodeFunctionResult(functionFragment: "addMargin", data: BytesLike): Result; decodeFunctionResult(functionFragment: "cancelOwnershipHandover", data: BytesLike): Result; decodeFunctionResult(functionFragment: "closePosition", data: BytesLike): Result; decodeFunctionResult(functionFragment: "closePositionKeeper", data: BytesLike): Result; decodeFunctionResult(functionFragment: "completeOwnershipHandover", data: BytesLike): Result; decodeFunctionResult(functionFragment: "createLimitOrder", data: BytesLike): Result; decodeFunctionResult(functionFragment: "createLimitOrderBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "createTriggerOrder", data: BytesLike): Result; decodeFunctionResult(functionFragment: "deleteLimitOrder", data: BytesLike): Result; decodeFunctionResult(functionFragment: "deleteLimitOrderBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "deleteTriggerOrder", data: BytesLike): Result; decodeFunctionResult(functionFragment: "deleverage", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getCumulativePremiumFraction", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDivergenceCap", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getFreeCollateral", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getLimitOrder", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getMinOrderbookMargin", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getOpenInterestNotional", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPosition", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPositionNotionalUpnl", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getReduceOnlyOrders", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTotalPositionSize", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTriggerOrder", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTriggerOrders", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getValidAMM", data: BytesLike): Result; decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isActive", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isLiquidatable", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isTriggerOrderValid", data: BytesLike): Result; decodeFunctionResult(functionFragment: "liquidate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "liquidateMaker", data: BytesLike): Result; decodeFunctionResult(functionFragment: "openPosition", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "ownershipHandoverExpiresAt", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeLiquidity", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeMargin", data: BytesLike): Result; decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "requestOwnershipHandover", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setActive", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setDivergenceCap", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setMinOrderbookMargin", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setValidAMM", data: BytesLike): Result; decodeFunctionResult(functionFragment: "settleFunding", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateLimitOrder", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateLimitOrderBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateTriggerOrder", data: BytesLike): Result; } export declare namespace AMMInvalidatedEvent { type InputTuple = [amm: AddressLike]; type OutputTuple = [amm: string]; interface OutputObject { amm: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace AMMValidatedEvent { type InputTuple = [amm: AddressLike]; type OutputTuple = [amm: string]; interface OutputObject { amm: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ActivatedEvent { type InputTuple = []; type OutputTuple = []; interface OutputObject { } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace DeactivatedEvent { type InputTuple = []; type OutputTuple = []; interface OutputObject { } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace DivergenceCapChangedEvent { type InputTuple = [divergenceCap: BigNumberish]; type OutputTuple = [divergenceCap: bigint]; interface OutputObject { divergenceCap: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace FeeDistributedEvent { type InputTuple = [ amm: AddressLike, payer: AddressLike, receiver: AddressLike, id: BigNumberish, amount: BigNumberish, feeType: BigNumberish ]; type OutputTuple = [ amm: string, payer: string, receiver: string, id: bigint, amount: bigint, feeType: bigint ]; interface OutputObject { amm: string; payer: string; receiver: string; id: bigint; amount: bigint; feeType: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace FundingSettledEvent { type InputTuple = [ amm: AddressLike, markPrice: BigNumberish, indexPrice: BigNumberish, premiumFraction: BigNumberish ]; type OutputTuple = [ amm: string, markPrice: bigint, indexPrice: bigint, premiumFraction: bigint ]; interface OutputObject { amm: string; markPrice: bigint; indexPrice: bigint; premiumFraction: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace InitializedEvent { type InputTuple = [version: BigNumberish]; type OutputTuple = [version: bigint]; interface OutputObject { version: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace LimitOrderRemovedEvent { type InputTuple = [ id: BigNumberish, amm: AddressLike, trader: AddressLike, result: BigNumberish ]; type OutputTuple = [ id: bigint, amm: string, trader: string, result: bigint ]; interface OutputObject { id: bigint; amm: string; trader: string; result: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace LimitOrderUpdatedEvent { type InputTuple = [ id: BigNumberish, amm: AddressLike, trader: AddressLike, order: LimitOrderStruct ]; type OutputTuple = [ id: bigint, amm: string, trader: string, order: LimitOrderStructOutput ]; interface OutputObject { id: bigint; amm: string; trader: string; order: LimitOrderStructOutput; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace LiquidityAddedEvent { type InputTuple = [amm: AddressLike, maker: AddressLike]; type OutputTuple = [amm: string, maker: string]; interface OutputObject { amm: string; maker: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace LiquidityRemovedEvent { type InputTuple = [amm: AddressLike, trader: AddressLike]; type OutputTuple = [amm: string, trader: string]; interface OutputObject { amm: string; trader: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace MarginAddedEvent { type InputTuple = [ amm: AddressLike, trader: AddressLike, amount: BigNumberish ]; type OutputTuple = [amm: string, trader: string, amount: bigint]; interface OutputObject { amm: string; trader: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace MarginRemovedEvent { type InputTuple = [ amm: AddressLike, trader: AddressLike, amount: BigNumberish ]; type OutputTuple = [amm: string, trader: string, amount: bigint]; interface OutputObject { amm: string; trader: string; amount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace MinOrderbookMarginChangedEvent { type InputTuple = [minOrderbookMargin: BigNumberish]; type OutputTuple = [minOrderbookMargin: bigint]; interface OutputObject { minOrderbookMargin: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace OpenInterestChangedEvent { type InputTuple = [amm: AddressLike, newOpenInterest: BigNumberish]; type OutputTuple = [amm: string, newOpenInterest: bigint]; interface OutputObject { amm: string; newOpenInterest: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace OwnershipHandoverCanceledEvent { type InputTuple = [pendingOwner: AddressLike]; type OutputTuple = [pendingOwner: string]; interface OutputObject { pendingOwner: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace OwnershipHandoverRequestedEvent { type InputTuple = [pendingOwner: AddressLike]; type OutputTuple = [pendingOwner: string]; interface OutputObject { pendingOwner: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace OwnershipTransferredEvent { type InputTuple = [oldOwner: AddressLike, newOwner: AddressLike]; type OutputTuple = [oldOwner: string, newOwner: string]; interface OutputObject { oldOwner: string; newOwner: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace PositionChangedEvent { type InputTuple = [ amm: AddressLike, trader: AddressLike, margin: BigNumberish, size: BigNumberish, openNotional: BigNumberish, exchangedQuote: BigNumberish, exchangedBase: BigNumberish, realizedPnL: BigNumberish, fundingPayment: BigNumberish, markPrice: BigNumberish, tradeType: BigNumberish ]; type OutputTuple = [ amm: string, trader: string, margin: bigint, size: bigint, openNotional: bigint, exchangedQuote: bigint, exchangedBase: bigint, realizedPnL: bigint, fundingPayment: bigint, markPrice: bigint, tradeType: bigint ]; interface OutputObject { amm: string; trader: string; margin: bigint; size: bigint; openNotional: bigint; exchangedQuote: bigint; exchangedBase: bigint; realizedPnL: bigint; fundingPayment: bigint; markPrice: bigint; tradeType: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TriggerOrderRemovedEvent { type InputTuple = [ id: BigNumberish, amm: AddressLike, trader: AddressLike, keeper: AddressLike ]; type OutputTuple = [ id: bigint, amm: string, trader: string, keeper: string ]; interface OutputObject { id: bigint; amm: string; trader: string; keeper: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TriggerOrderUpdatedEvent { type InputTuple = [ id: BigNumberish, amm: AddressLike, trader: AddressLike, order: TriggerOrderStruct ]; type OutputTuple = [ id: bigint, amm: string, trader: string, order: TriggerOrderStructOutput ]; interface OutputObject { id: bigint; amm: string; trader: string; order: TriggerOrderStructOutput; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface ClearingHouse extends BaseContract { connect(runner?: ContractRunner | null): ClearingHouse; waitForDeployment(): Promise; interface: ClearingHouseInterface; queryFilter(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; queryFilter(filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; on(event: TCEvent, listener: TypedListener): Promise; on(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; once(event: TCEvent, listener: TypedListener): Promise; once(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; listeners(event: TCEvent): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners(event?: TCEvent): Promise; addLiquidity: TypedContractMethod<[ amm: AddressLike, data: LiquidityAddDataStruct[] ], [ LiquidityAddReturnDataStructOutput[] ], "nonpayable">; addMargin: TypedContractMethod<[ amm: AddressLike, margin: BigNumberish ], [ void ], "nonpayable">; cancelOwnershipHandover: TypedContractMethod<[], [void], "payable">; closePosition: TypedContractMethod<[ amm: AddressLike, size: BigNumberish, quoteLimit: BigNumberish ], [ bigint ], "nonpayable">; closePositionKeeper: TypedContractMethod<[ id: BigNumberish ], [ bigint ], "nonpayable">; completeOwnershipHandover: TypedContractMethod<[ pendingOwner: AddressLike ], [ void ], "payable">; createLimitOrder: TypedContractMethod<[ order: LimitOrderStruct ], [ bigint ], "nonpayable">; createLimitOrderBatch: TypedContractMethod<[ _orders: LimitOrderStruct[] ], [ bigint[] ], "nonpayable">; createTriggerOrder: TypedContractMethod<[ order: TriggerOrderStruct ], [ bigint ], "nonpayable">; deleteLimitOrder: TypedContractMethod<[ id: BigNumberish ], [ void ], "nonpayable">; deleteLimitOrderBatch: TypedContractMethod<[ ids: BigNumberish[] ], [ void ], "nonpayable">; deleteTriggerOrder: TypedContractMethod<[ id: BigNumberish ], [ void ], "nonpayable">; deleverage: TypedContractMethod<[ amm: AddressLike, taker: AddressLike, maker: AddressLike, size: BigNumberish ], [ void ], "nonpayable">; getCumulativePremiumFraction: TypedContractMethod<[ amm: AddressLike ], [ bigint ], "view">; getDivergenceCap: TypedContractMethod<[], [bigint], "view">; getFreeCollateral: TypedContractMethod<[ amm: AddressLike, trader: AddressLike ], [ bigint ], "nonpayable">; getLimitOrder: TypedContractMethod<[ id: BigNumberish ], [ LimitOrderStructOutput ], "view">; getMinOrderbookMargin: TypedContractMethod<[], [bigint], "view">; getOpenInterestNotional: TypedContractMethod<[ amm: AddressLike ], [ bigint ], "view">; getPosition: TypedContractMethod<[ amm: AddressLike, trader: AddressLike ], [ PositionStructOutput ], "view">; getPositionNotionalUpnl: TypedContractMethod<[ amm: AddressLike, trader: AddressLike ], [ [bigint, bigint] & { positionNotional: bigint; upnl: bigint; } ], "nonpayable">; getReduceOnlyOrders: TypedContractMethod<[ trader: AddressLike, amm: AddressLike ], [ bigint[] ], "view">; getTotalPositionSize: TypedContractMethod<[ amm: AddressLike ], [ TotalPositionSizeStructOutput ], "view">; getTriggerOrder: TypedContractMethod<[ id: BigNumberish ], [ TriggerOrderStructOutput ], "view">; getTriggerOrders: TypedContractMethod<[ trader: AddressLike, amm: AddressLike ], [ bigint[] ], "view">; getValidAMM: TypedContractMethod<[amm: AddressLike], [boolean], "view">; initialize: TypedContractMethod<[ _owner: AddressLike, _divergenceCap: BigNumberish, _minOrderbookMargin: BigNumberish ], [ void ], "nonpayable">; isActive: TypedContractMethod<[], [boolean], "view">; isLiquidatable: TypedContractMethod<[ amm: AddressLike, trader: AddressLike ], [ boolean ], "view">; isTriggerOrderValid: TypedContractMethod<[ id: BigNumberish ], [ boolean ], "view">; liquidate: TypedContractMethod<[ amm: AddressLike, size: BigNumberish, liquidatee: AddressLike, margin: BigNumberish ], [ void ], "nonpayable">; liquidateMaker: TypedContractMethod<[ amm: AddressLike, liquidatee: AddressLike, margin: BigNumberish ], [ void ], "nonpayable">; openPosition: TypedContractMethod<[ amm: AddressLike, side: BigNumberish, quote: BigNumberish, leverage: BigNumberish, baseLimit: BigNumberish ], [ bigint ], "nonpayable">; owner: TypedContractMethod<[], [string], "view">; ownershipHandoverExpiresAt: TypedContractMethod<[ pendingOwner: AddressLike ], [ bigint ], "view">; removeLiquidity: TypedContractMethod<[ amm: AddressLike, data: LiquidityRemoveDataStruct[], addedMargin: BigNumberish ], [ void ], "nonpayable">; removeMargin: TypedContractMethod<[ amm: AddressLike, margin: BigNumberish ], [ void ], "nonpayable">; renounceOwnership: TypedContractMethod<[], [void], "payable">; requestOwnershipHandover: TypedContractMethod<[], [void], "payable">; setActive: TypedContractMethod<[_active: boolean], [void], "nonpayable">; setDivergenceCap: TypedContractMethod<[ _divergenceCap: BigNumberish ], [ void ], "nonpayable">; setMinOrderbookMargin: TypedContractMethod<[ minMargin: BigNumberish ], [ void ], "nonpayable">; setValidAMM: TypedContractMethod<[ amm: AddressLike, valid: boolean ], [ void ], "nonpayable">; settleFunding: TypedContractMethod<[amm: AddressLike], [void], "nonpayable">; transferOwnership: TypedContractMethod<[ newOwner: AddressLike ], [ void ], "payable">; updateLimitOrder: TypedContractMethod<[ id: BigNumberish, order: LimitOrderStruct ], [ void ], "nonpayable">; updateLimitOrderBatch: TypedContractMethod<[ ids: BigNumberish[], _orders: LimitOrderStruct[] ], [ void ], "nonpayable">; updateTriggerOrder: TypedContractMethod<[ id: BigNumberish, order: TriggerOrderStruct ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "addLiquidity"): TypedContractMethod<[ amm: AddressLike, data: LiquidityAddDataStruct[] ], [ LiquidityAddReturnDataStructOutput[] ], "nonpayable">; getFunction(nameOrSignature: "addMargin"): TypedContractMethod<[ amm: AddressLike, margin: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "cancelOwnershipHandover"): TypedContractMethod<[], [void], "payable">; getFunction(nameOrSignature: "closePosition"): TypedContractMethod<[ amm: AddressLike, size: BigNumberish, quoteLimit: BigNumberish ], [ bigint ], "nonpayable">; getFunction(nameOrSignature: "closePositionKeeper"): TypedContractMethod<[id: BigNumberish], [bigint], "nonpayable">; getFunction(nameOrSignature: "completeOwnershipHandover"): TypedContractMethod<[pendingOwner: AddressLike], [void], "payable">; getFunction(nameOrSignature: "createLimitOrder"): TypedContractMethod<[order: LimitOrderStruct], [bigint], "nonpayable">; getFunction(nameOrSignature: "createLimitOrderBatch"): TypedContractMethod<[ _orders: LimitOrderStruct[] ], [ bigint[] ], "nonpayable">; getFunction(nameOrSignature: "createTriggerOrder"): TypedContractMethod<[order: TriggerOrderStruct], [bigint], "nonpayable">; getFunction(nameOrSignature: "deleteLimitOrder"): TypedContractMethod<[id: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "deleteLimitOrderBatch"): TypedContractMethod<[ids: BigNumberish[]], [void], "nonpayable">; getFunction(nameOrSignature: "deleteTriggerOrder"): TypedContractMethod<[id: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "deleverage"): TypedContractMethod<[ amm: AddressLike, taker: AddressLike, maker: AddressLike, size: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "getCumulativePremiumFraction"): TypedContractMethod<[amm: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getDivergenceCap"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getFreeCollateral"): TypedContractMethod<[ amm: AddressLike, trader: AddressLike ], [ bigint ], "nonpayable">; getFunction(nameOrSignature: "getLimitOrder"): TypedContractMethod<[id: BigNumberish], [LimitOrderStructOutput], "view">; getFunction(nameOrSignature: "getMinOrderbookMargin"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getOpenInterestNotional"): TypedContractMethod<[amm: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "getPosition"): TypedContractMethod<[ amm: AddressLike, trader: AddressLike ], [ PositionStructOutput ], "view">; getFunction(nameOrSignature: "getPositionNotionalUpnl"): TypedContractMethod<[ amm: AddressLike, trader: AddressLike ], [ [bigint, bigint] & { positionNotional: bigint; upnl: bigint; } ], "nonpayable">; getFunction(nameOrSignature: "getReduceOnlyOrders"): TypedContractMethod<[ trader: AddressLike, amm: AddressLike ], [ bigint[] ], "view">; getFunction(nameOrSignature: "getTotalPositionSize"): TypedContractMethod<[ amm: AddressLike ], [ TotalPositionSizeStructOutput ], "view">; getFunction(nameOrSignature: "getTriggerOrder"): TypedContractMethod<[ id: BigNumberish ], [ TriggerOrderStructOutput ], "view">; getFunction(nameOrSignature: "getTriggerOrders"): TypedContractMethod<[ trader: AddressLike, amm: AddressLike ], [ bigint[] ], "view">; getFunction(nameOrSignature: "getValidAMM"): TypedContractMethod<[amm: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "initialize"): TypedContractMethod<[ _owner: AddressLike, _divergenceCap: BigNumberish, _minOrderbookMargin: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "isActive"): TypedContractMethod<[], [boolean], "view">; getFunction(nameOrSignature: "isLiquidatable"): TypedContractMethod<[ amm: AddressLike, trader: AddressLike ], [ boolean ], "view">; getFunction(nameOrSignature: "isTriggerOrderValid"): TypedContractMethod<[id: BigNumberish], [boolean], "view">; getFunction(nameOrSignature: "liquidate"): TypedContractMethod<[ amm: AddressLike, size: BigNumberish, liquidatee: AddressLike, margin: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "liquidateMaker"): TypedContractMethod<[ amm: AddressLike, liquidatee: AddressLike, margin: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "openPosition"): TypedContractMethod<[ amm: AddressLike, side: BigNumberish, quote: BigNumberish, leverage: BigNumberish, baseLimit: BigNumberish ], [ bigint ], "nonpayable">; getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "ownershipHandoverExpiresAt"): TypedContractMethod<[pendingOwner: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "removeLiquidity"): TypedContractMethod<[ amm: AddressLike, data: LiquidityRemoveDataStruct[], addedMargin: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "removeMargin"): TypedContractMethod<[ amm: AddressLike, margin: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "renounceOwnership"): TypedContractMethod<[], [void], "payable">; getFunction(nameOrSignature: "requestOwnershipHandover"): TypedContractMethod<[], [void], "payable">; getFunction(nameOrSignature: "setActive"): TypedContractMethod<[_active: boolean], [void], "nonpayable">; getFunction(nameOrSignature: "setDivergenceCap"): TypedContractMethod<[_divergenceCap: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "setMinOrderbookMargin"): TypedContractMethod<[minMargin: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "setValidAMM"): TypedContractMethod<[ amm: AddressLike, valid: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "settleFunding"): TypedContractMethod<[amm: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "transferOwnership"): TypedContractMethod<[newOwner: AddressLike], [void], "payable">; getFunction(nameOrSignature: "updateLimitOrder"): TypedContractMethod<[ id: BigNumberish, order: LimitOrderStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateLimitOrderBatch"): TypedContractMethod<[ ids: BigNumberish[], _orders: LimitOrderStruct[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateTriggerOrder"): TypedContractMethod<[ id: BigNumberish, order: TriggerOrderStruct ], [ void ], "nonpayable">; getEvent(key: "AMMInvalidated"): TypedContractEvent; getEvent(key: "AMMValidated"): TypedContractEvent; getEvent(key: "Activated"): TypedContractEvent; getEvent(key: "Deactivated"): TypedContractEvent; getEvent(key: "DivergenceCapChanged"): TypedContractEvent; getEvent(key: "FeeDistributed"): TypedContractEvent; getEvent(key: "FundingSettled"): TypedContractEvent; getEvent(key: "Initialized"): TypedContractEvent; getEvent(key: "LimitOrderRemoved"): TypedContractEvent; getEvent(key: "LimitOrderUpdated"): TypedContractEvent; getEvent(key: "LiquidityAdded"): TypedContractEvent; getEvent(key: "LiquidityRemoved"): TypedContractEvent; getEvent(key: "MarginAdded"): TypedContractEvent; getEvent(key: "MarginRemoved"): TypedContractEvent; getEvent(key: "MinOrderbookMarginChanged"): TypedContractEvent; getEvent(key: "OpenInterestChanged"): TypedContractEvent; getEvent(key: "OwnershipHandoverCanceled"): TypedContractEvent; getEvent(key: "OwnershipHandoverRequested"): TypedContractEvent; getEvent(key: "OwnershipTransferred"): TypedContractEvent; getEvent(key: "PositionChanged"): TypedContractEvent; getEvent(key: "TriggerOrderRemoved"): TypedContractEvent; getEvent(key: "TriggerOrderUpdated"): TypedContractEvent; filters: { "AMMInvalidated(address)": TypedContractEvent; AMMInvalidated: TypedContractEvent; "AMMValidated(address)": TypedContractEvent; AMMValidated: TypedContractEvent; "Activated()": TypedContractEvent; Activated: TypedContractEvent; "Deactivated()": TypedContractEvent; Deactivated: TypedContractEvent; "DivergenceCapChanged(uint256)": TypedContractEvent; DivergenceCapChanged: TypedContractEvent; "FeeDistributed(address,address,address,uint256,uint256,uint8)": TypedContractEvent; FeeDistributed: TypedContractEvent; "FundingSettled(address,uint256,uint256,int256)": TypedContractEvent; FundingSettled: TypedContractEvent; "Initialized(uint8)": TypedContractEvent; Initialized: TypedContractEvent; "LimitOrderRemoved(uint256,address,address,uint8)": TypedContractEvent; LimitOrderRemoved: TypedContractEvent; "LimitOrderUpdated(uint256,address,address,tuple)": TypedContractEvent; LimitOrderUpdated: TypedContractEvent; "LiquidityAdded(address,address)": TypedContractEvent; LiquidityAdded: TypedContractEvent; "LiquidityRemoved(address,address)": TypedContractEvent; LiquidityRemoved: TypedContractEvent; "MarginAdded(address,address,uint256)": TypedContractEvent; MarginAdded: TypedContractEvent; "MarginRemoved(address,address,uint256)": TypedContractEvent; MarginRemoved: TypedContractEvent; "MinOrderbookMarginChanged(uint256)": TypedContractEvent; MinOrderbookMarginChanged: TypedContractEvent; "OpenInterestChanged(address,uint256)": TypedContractEvent; OpenInterestChanged: TypedContractEvent; "OwnershipHandoverCanceled(address)": TypedContractEvent; OwnershipHandoverCanceled: TypedContractEvent; "OwnershipHandoverRequested(address)": TypedContractEvent; OwnershipHandoverRequested: TypedContractEvent; "OwnershipTransferred(address,address)": TypedContractEvent; OwnershipTransferred: TypedContractEvent; "PositionChanged(address,address,uint256,int256,uint256,uint256,int256,int256,int256,uint256,uint8)": TypedContractEvent; PositionChanged: TypedContractEvent; "TriggerOrderRemoved(uint256,address,address,address)": TypedContractEvent; TriggerOrderRemoved: TypedContractEvent; "TriggerOrderUpdated(uint256,address,address,tuple)": TypedContractEvent; TriggerOrderUpdated: TypedContractEvent; }; }