UNPKG

@d8x/perpetuals-sdk

Version:

Node TypeScript SDK for D8X Perpetual Futures

1,682 lines (1,597 loc) 70.2 kB
/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ 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 declare namespace IPerpetualOrder { export type OrderStruct = { leverageTDR: BigNumberish; brokerFeeTbps: BigNumberish; iPerpetualId: BigNumberish; traderAddr: AddressLike; executionTimestamp: BigNumberish; brokerAddr: AddressLike; submittedTimestamp: BigNumberish; flags: BigNumberish; iDeadline: BigNumberish; executorAddr: AddressLike; fAmount: BigNumberish; fLimitPrice: BigNumberish; fTriggerPrice: BigNumberish; brokerSignature: BytesLike; }; export type OrderStructOutput = [ leverageTDR: bigint, brokerFeeTbps: bigint, iPerpetualId: bigint, traderAddr: string, executionTimestamp: bigint, brokerAddr: string, submittedTimestamp: bigint, flags: bigint, iDeadline: bigint, executorAddr: string, fAmount: bigint, fLimitPrice: bigint, fTriggerPrice: bigint, brokerSignature: string ] & { leverageTDR: bigint; brokerFeeTbps: bigint; iPerpetualId: bigint; traderAddr: string; executionTimestamp: bigint; brokerAddr: string; submittedTimestamp: bigint; flags: bigint; iDeadline: bigint; executorAddr: string; fAmount: bigint; fLimitPrice: bigint; fTriggerPrice: bigint; brokerSignature: string; }; } export interface PerpetualManagerProxyInterface extends Interface { getFunction( nameOrSignature: | "brokerVolumeEMA" | "brokerVolumeFeesTbps" | "brokerVolumeTiers" | "getImplementation" | "getModuleImplementationAddress" | "getProxyOwner" | "governance" | "lastBaseToUSDUpdateTs" | "liquidityProvisionIsPaused" | "maintainer" | "pause" | "paused" | "perpBaseToUSDOracle" | "perpToLastBaseToUSD" | "setImplementation" | "setImplementationCrossModules" | "setProxyOwner" | "traderVolumeEMA" | "traderVolumeFeesTbps" | "traderVolumeTiers" | "transferGovernance" | "transferMaintainer" | "unpause" ): FunctionFragment; getEvent( nameOrSignatureOrTopic: | "BrokerLotsTransferred" | "BrokerVolumeTransferred" | "Clear" | "DistributeFees" | "GovernanceTransferred" | "ImplementationChanged" | "Liquidate" | "LiquidityAdded" | "LiquidityPoolCreated" | "LiquidityProvisionPaused" | "LiquidityRemoved" | "LiquidityWithdrawalInitiated" | "MaintainerTransferred" | "Paused" | "PerpetualCreated" | "PerpetualLimitOrderCancelled" | "ProxyOwnershipTransferred" | "RunLiquidityPool" | "SetBlockDelay" | "SetBrokerDesignations" | "SetBrokerTiers" | "SetBrokerVolumeTiers" | "SetClearedState" | "SetDelegate" | "SetEmergencyState" | "SetNormalState" | "SetOracles" | "SetParameter" | "SetParameterPair" | "SetPerpetualBaseParameters" | "SetPerpetualRiskParameters" | "SetPoolParameter" | "SetTraderTiers" | "SetTraderVolumeTiers" | "SetUtilityToken" | "Settle" | "SettleState" | "SettlementComplete" | "TokensDeposited" | "TokensWithdrawn" | "Trade" | "TransferAddressTo" | "Unpaused" | "UpdateBrokerAddedCash" | "UpdateFundingRate" | "UpdateMarginAccount" | "UpdateMarkPrice" ): EventFragment; encodeFunctionData( functionFragment: "brokerVolumeEMA", values: [BigNumberish, AddressLike] ): string; encodeFunctionData( functionFragment: "brokerVolumeFeesTbps", values: [BigNumberish] ): string; encodeFunctionData( functionFragment: "brokerVolumeTiers", values: [BigNumberish] ): string; encodeFunctionData( functionFragment: "getImplementation", values: [BytesLike] ): string; encodeFunctionData( functionFragment: "getModuleImplementationAddress", values: [string] ): string; encodeFunctionData( functionFragment: "getProxyOwner", values?: undefined ): string; encodeFunctionData( functionFragment: "governance", values?: undefined ): string; encodeFunctionData( functionFragment: "lastBaseToUSDUpdateTs", values?: undefined ): string; encodeFunctionData( functionFragment: "liquidityProvisionIsPaused", values: [BigNumberish] ): string; encodeFunctionData( functionFragment: "maintainer", values?: undefined ): string; encodeFunctionData(functionFragment: "pause", values?: undefined): string; encodeFunctionData(functionFragment: "paused", values?: undefined): string; encodeFunctionData( functionFragment: "perpBaseToUSDOracle", values: [BigNumberish] ): string; encodeFunctionData( functionFragment: "perpToLastBaseToUSD", values: [BigNumberish] ): string; encodeFunctionData( functionFragment: "setImplementation", values: [AddressLike] ): string; encodeFunctionData( functionFragment: "setImplementationCrossModules", values: [AddressLike] ): string; encodeFunctionData( functionFragment: "setProxyOwner", values: [AddressLike] ): string; encodeFunctionData( functionFragment: "traderVolumeEMA", values: [BigNumberish, AddressLike] ): string; encodeFunctionData( functionFragment: "traderVolumeFeesTbps", values: [BigNumberish] ): string; encodeFunctionData( functionFragment: "traderVolumeTiers", values: [BigNumberish] ): string; encodeFunctionData( functionFragment: "transferGovernance", values: [AddressLike] ): string; encodeFunctionData( functionFragment: "transferMaintainer", values: [AddressLike] ): string; encodeFunctionData(functionFragment: "unpause", values?: undefined): string; decodeFunctionResult( functionFragment: "brokerVolumeEMA", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "brokerVolumeFeesTbps", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "brokerVolumeTiers", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "getImplementation", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "getModuleImplementationAddress", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "getProxyOwner", data: BytesLike ): Result; decodeFunctionResult(functionFragment: "governance", data: BytesLike): Result; decodeFunctionResult( functionFragment: "lastBaseToUSDUpdateTs", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "liquidityProvisionIsPaused", data: BytesLike ): Result; decodeFunctionResult(functionFragment: "maintainer", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result; decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; decodeFunctionResult( functionFragment: "perpBaseToUSDOracle", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "perpToLastBaseToUSD", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "setImplementation", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "setImplementationCrossModules", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "setProxyOwner", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "traderVolumeEMA", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "traderVolumeFeesTbps", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "traderVolumeTiers", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "transferGovernance", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "transferMaintainer", data: BytesLike ): Result; decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result; } export namespace BrokerLotsTransferredEvent { export type InputTuple = [ poolId: BigNumberish, oldOwner: AddressLike, newOwner: AddressLike, numLots: BigNumberish ]; export type OutputTuple = [ poolId: bigint, oldOwner: string, newOwner: string, numLots: bigint ]; export interface OutputObject { poolId: bigint; oldOwner: string; newOwner: string; numLots: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace BrokerVolumeTransferredEvent { export type InputTuple = [ poolId: BigNumberish, oldOwner: AddressLike, newOwner: AddressLike, fVolume: BigNumberish ]; export type OutputTuple = [ poolId: bigint, oldOwner: string, newOwner: string, fVolume: bigint ]; export interface OutputObject { poolId: bigint; oldOwner: string; newOwner: string; fVolume: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace ClearEvent { export type InputTuple = [perpetualId: BigNumberish, trader: AddressLike]; export type OutputTuple = [perpetualId: bigint, trader: string]; export interface OutputObject { perpetualId: bigint; trader: string; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace DistributeFeesEvent { export type InputTuple = [ poolId: BigNumberish, perpetualId: BigNumberish, trader: AddressLike, protocolFeeCC: BigNumberish, participationFundFeeCC: BigNumberish ]; export type OutputTuple = [ poolId: bigint, perpetualId: bigint, trader: string, protocolFeeCC: bigint, participationFundFeeCC: bigint ]; export interface OutputObject { poolId: bigint; perpetualId: bigint; trader: string; protocolFeeCC: bigint; participationFundFeeCC: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace GovernanceTransferredEvent { export type InputTuple = [ previousGovernance: AddressLike, newGovernance: AddressLike ]; export type OutputTuple = [previousGovernance: string, newGovernance: string]; export interface OutputObject { previousGovernance: string; newGovernance: string; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace ImplementationChangedEvent { export type InputTuple = [ _sig: BytesLike, _oldImplementation: AddressLike, _newImplementation: AddressLike ]; export type OutputTuple = [ _sig: string, _oldImplementation: string, _newImplementation: string ]; export interface OutputObject { _sig: string; _oldImplementation: string; _newImplementation: string; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace LiquidateEvent { export type InputTuple = [ perpetualId: BigNumberish, liquidator: AddressLike, trader: AddressLike, amountLiquidatedBC: BigNumberish, liquidationPrice: BigNumberish, newPositionSizeBC: BigNumberish, fFeeCC: BigNumberish, fPnlCC: BigNumberish ]; export type OutputTuple = [ perpetualId: bigint, liquidator: string, trader: string, amountLiquidatedBC: bigint, liquidationPrice: bigint, newPositionSizeBC: bigint, fFeeCC: bigint, fPnlCC: bigint ]; export interface OutputObject { perpetualId: bigint; liquidator: string; trader: string; amountLiquidatedBC: bigint; liquidationPrice: bigint; newPositionSizeBC: bigint; fFeeCC: bigint; fPnlCC: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace LiquidityAddedEvent { export type InputTuple = [ poolId: BigNumberish, user: AddressLike, tokenAmount: BigNumberish, shareAmount: BigNumberish ]; export type OutputTuple = [ poolId: bigint, user: string, tokenAmount: bigint, shareAmount: bigint ]; export interface OutputObject { poolId: bigint; user: string; tokenAmount: bigint; shareAmount: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace LiquidityPoolCreatedEvent { export type InputTuple = [ id: BigNumberish, marginTokenAddress: AddressLike, shareTokenAddress: AddressLike, iTargetPoolSizeUpdateTime: BigNumberish, fBrokerCollateralLotSize: BigNumberish ]; export type OutputTuple = [ id: bigint, marginTokenAddress: string, shareTokenAddress: string, iTargetPoolSizeUpdateTime: bigint, fBrokerCollateralLotSize: bigint ]; export interface OutputObject { id: bigint; marginTokenAddress: string; shareTokenAddress: string; iTargetPoolSizeUpdateTime: bigint; fBrokerCollateralLotSize: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace LiquidityProvisionPausedEvent { export type InputTuple = [pauseOn: boolean, poolId: BigNumberish]; export type OutputTuple = [pauseOn: boolean, poolId: bigint]; export interface OutputObject { pauseOn: boolean; poolId: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace LiquidityRemovedEvent { export type InputTuple = [ poolId: BigNumberish, user: AddressLike, tokenAmount: BigNumberish, shareAmount: BigNumberish ]; export type OutputTuple = [ poolId: bigint, user: string, tokenAmount: bigint, shareAmount: bigint ]; export interface OutputObject { poolId: bigint; user: string; tokenAmount: bigint; shareAmount: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace LiquidityWithdrawalInitiatedEvent { export type InputTuple = [ poolId: BigNumberish, user: AddressLike, shareAmount: BigNumberish ]; export type OutputTuple = [poolId: bigint, user: string, shareAmount: bigint]; export interface OutputObject { poolId: bigint; user: string; shareAmount: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace MaintainerTransferredEvent { export type InputTuple = [ previousMaintainer: AddressLike, newMaintainer: AddressLike ]; export type OutputTuple = [previousMaintainer: string, newMaintainer: string]; export interface OutputObject { previousMaintainer: string; newMaintainer: string; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace PausedEvent { export type InputTuple = [account: AddressLike]; export type OutputTuple = [account: string]; export interface OutputObject { account: string; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace PerpetualCreatedEvent { export type InputTuple = [ poolId: BigNumberish, id: BigNumberish, baseParams: BigNumberish[], underlyingRiskParams: [ BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish ], defaultFundRiskParams: BigNumberish[], eCollateralCurrency: BigNumberish ]; export type OutputTuple = [ poolId: bigint, id: bigint, baseParams: bigint[], underlyingRiskParams: [bigint, bigint, bigint, bigint, bigint], defaultFundRiskParams: bigint[], eCollateralCurrency: bigint ]; export interface OutputObject { poolId: bigint; id: bigint; baseParams: bigint[]; underlyingRiskParams: [bigint, bigint, bigint, bigint, bigint]; defaultFundRiskParams: bigint[]; eCollateralCurrency: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace PerpetualLimitOrderCancelledEvent { export type InputTuple = [perpetualId: BigNumberish, orderHash: BytesLike]; export type OutputTuple = [perpetualId: bigint, orderHash: string]; export interface OutputObject { perpetualId: bigint; orderHash: string; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace ProxyOwnershipTransferredEvent { export type InputTuple = [_oldOwner: AddressLike, _newOwner: AddressLike]; export type OutputTuple = [_oldOwner: string, _newOwner: string]; export interface OutputObject { _oldOwner: string; _newOwner: string; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace RunLiquidityPoolEvent { export type InputTuple = [_liqPoolID: BigNumberish]; export type OutputTuple = [_liqPoolID: bigint]; export interface OutputObject { _liqPoolID: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetBlockDelayEvent { export type InputTuple = [delay: BigNumberish]; export type OutputTuple = [delay: bigint]; export interface OutputObject { delay: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetBrokerDesignationsEvent { export type InputTuple = [designations: BigNumberish[], fees: BigNumberish[]]; export type OutputTuple = [designations: bigint[], fees: bigint[]]; export interface OutputObject { designations: bigint[]; fees: bigint[]; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetBrokerTiersEvent { export type InputTuple = [tiers: BigNumberish[], feesTbps: BigNumberish[]]; export type OutputTuple = [tiers: bigint[], feesTbps: bigint[]]; export interface OutputObject { tiers: bigint[]; feesTbps: bigint[]; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetBrokerVolumeTiersEvent { export type InputTuple = [tiers: BigNumberish[], feesTbps: BigNumberish[]]; export type OutputTuple = [tiers: bigint[], feesTbps: bigint[]]; export interface OutputObject { tiers: bigint[]; feesTbps: bigint[]; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetClearedStateEvent { export type InputTuple = [perpetualId: BigNumberish]; export type OutputTuple = [perpetualId: bigint]; export interface OutputObject { perpetualId: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetDelegateEvent { export type InputTuple = [ trader: AddressLike, delegate: AddressLike, index: BigNumberish ]; export type OutputTuple = [trader: string, delegate: string, index: bigint]; export interface OutputObject { trader: string; delegate: string; index: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetEmergencyStateEvent { export type InputTuple = [ perpetualId: BigNumberish, fSettlementMarkPremiumRate: BigNumberish, fSettlementS2Price: BigNumberish, fSettlementS3Price: BigNumberish ]; export type OutputTuple = [ perpetualId: bigint, fSettlementMarkPremiumRate: bigint, fSettlementS2Price: bigint, fSettlementS3Price: bigint ]; export interface OutputObject { perpetualId: bigint; fSettlementMarkPremiumRate: bigint; fSettlementS2Price: bigint; fSettlementS3Price: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetNormalStateEvent { export type InputTuple = [perpetualId: BigNumberish]; export type OutputTuple = [perpetualId: bigint]; export interface OutputObject { perpetualId: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetOraclesEvent { export type InputTuple = [ perpetualId: BigNumberish, baseQuoteS2: [BytesLike, BytesLike], baseQuoteS3: [BytesLike, BytesLike] ]; export type OutputTuple = [ perpetualId: bigint, baseQuoteS2: [string, string], baseQuoteS3: [string, string] ]; export interface OutputObject { perpetualId: bigint; baseQuoteS2: [string, string]; baseQuoteS3: [string, string]; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetParameterEvent { export type InputTuple = [ perpetualId: BigNumberish, name: string, value: BigNumberish ]; export type OutputTuple = [perpetualId: bigint, name: string, value: bigint]; export interface OutputObject { perpetualId: bigint; name: string; value: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetParameterPairEvent { export type InputTuple = [ perpetualId: BigNumberish, name: string, value1: BigNumberish, value2: BigNumberish ]; export type OutputTuple = [ perpetualId: bigint, name: string, value1: bigint, value2: bigint ]; export interface OutputObject { perpetualId: bigint; name: string; value1: bigint; value2: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetPerpetualBaseParametersEvent { export type InputTuple = [ perpetualId: BigNumberish, baseParams: BigNumberish[] ]; export type OutputTuple = [perpetualId: bigint, baseParams: bigint[]]; export interface OutputObject { perpetualId: bigint; baseParams: bigint[]; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetPerpetualRiskParametersEvent { export type InputTuple = [ perpetualId: BigNumberish, underlyingRiskParams: [ BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish ], defaultFundRiskParams: BigNumberish[] ]; export type OutputTuple = [ perpetualId: bigint, underlyingRiskParams: [bigint, bigint, bigint, bigint, bigint], defaultFundRiskParams: bigint[] ]; export interface OutputObject { perpetualId: bigint; underlyingRiskParams: [bigint, bigint, bigint, bigint, bigint]; defaultFundRiskParams: bigint[]; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetPoolParameterEvent { export type InputTuple = [ poolId: BigNumberish, name: string, value: BigNumberish ]; export type OutputTuple = [poolId: bigint, name: string, value: bigint]; export interface OutputObject { poolId: bigint; name: string; value: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetTraderTiersEvent { export type InputTuple = [tiers: BigNumberish[], feesTbps: BigNumberish[]]; export type OutputTuple = [tiers: bigint[], feesTbps: bigint[]]; export interface OutputObject { tiers: bigint[]; feesTbps: bigint[]; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetTraderVolumeTiersEvent { export type InputTuple = [tiers: BigNumberish[], feesTbps: BigNumberish[]]; export type OutputTuple = [tiers: bigint[], feesTbps: bigint[]]; export interface OutputObject { tiers: bigint[]; feesTbps: bigint[]; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SetUtilityTokenEvent { export type InputTuple = [tokenAddr: AddressLike]; export type OutputTuple = [tokenAddr: string]; export interface OutputObject { tokenAddr: string; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SettleEvent { export type InputTuple = [ perpetualId: BigNumberish, trader: AddressLike, amount: BigNumberish ]; export type OutputTuple = [ perpetualId: bigint, trader: string, amount: bigint ]; export interface OutputObject { perpetualId: bigint; trader: string; amount: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SettleStateEvent { export type InputTuple = [perpetualId: BigNumberish]; export type OutputTuple = [perpetualId: bigint]; export interface OutputObject { perpetualId: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SettlementCompleteEvent { export type InputTuple = [perpetualId: BigNumberish]; export type OutputTuple = [perpetualId: bigint]; export interface OutputObject { perpetualId: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace TokensDepositedEvent { export type InputTuple = [ perpetualId: BigNumberish, trader: AddressLike, amount: BigNumberish ]; export type OutputTuple = [ perpetualId: bigint, trader: string, amount: bigint ]; export interface OutputObject { perpetualId: bigint; trader: string; amount: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace TokensWithdrawnEvent { export type InputTuple = [ perpetualId: BigNumberish, trader: AddressLike, amount: BigNumberish ]; export type OutputTuple = [ perpetualId: bigint, trader: string, amount: bigint ]; export interface OutputObject { perpetualId: bigint; trader: string; amount: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace TradeEvent { export type InputTuple = [ perpetualId: BigNumberish, trader: AddressLike, order: IPerpetualOrder.OrderStruct, orderDigest: BytesLike, newPositionSizeBC: BigNumberish, price: BigNumberish, fFeeCC: BigNumberish, fPnlCC: BigNumberish, fB2C: BigNumberish ]; export type OutputTuple = [ perpetualId: bigint, trader: string, order: IPerpetualOrder.OrderStructOutput, orderDigest: string, newPositionSizeBC: bigint, price: bigint, fFeeCC: bigint, fPnlCC: bigint, fB2C: bigint ]; export interface OutputObject { perpetualId: bigint; trader: string; order: IPerpetualOrder.OrderStructOutput; orderDigest: string; newPositionSizeBC: bigint; price: bigint; fFeeCC: bigint; fPnlCC: bigint; fB2C: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace TransferAddressToEvent { export type InputTuple = [ name: string, oldOBFactory: AddressLike, newOBFactory: AddressLike ]; export type OutputTuple = [ name: string, oldOBFactory: string, newOBFactory: string ]; export interface OutputObject { name: string; oldOBFactory: string; newOBFactory: string; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace UnpausedEvent { export type InputTuple = [account: AddressLike]; export type OutputTuple = [account: string]; export interface OutputObject { account: string; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace UpdateBrokerAddedCashEvent { export type InputTuple = [ poolId: BigNumberish, iLots: BigNumberish, iNewBrokerLots: BigNumberish ]; export type OutputTuple = [ poolId: bigint, iLots: bigint, iNewBrokerLots: bigint ]; export interface OutputObject { poolId: bigint; iLots: bigint; iNewBrokerLots: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace UpdateFundingRateEvent { export type InputTuple = [ perpetualId: BigNumberish, fFundingRate: BigNumberish ]; export type OutputTuple = [perpetualId: bigint, fFundingRate: bigint]; export interface OutputObject { perpetualId: bigint; fFundingRate: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace UpdateMarginAccountEvent { export type InputTuple = [ perpetualId: BigNumberish, trader: AddressLike, fFundingPaymentCC: BigNumberish ]; export type OutputTuple = [ perpetualId: bigint, trader: string, fFundingPaymentCC: bigint ]; export interface OutputObject { perpetualId: bigint; trader: string; fFundingPaymentCC: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace UpdateMarkPriceEvent { export type InputTuple = [ perpetualId: BigNumberish, fMidPricePremium: BigNumberish, fMarkPricePremium: BigNumberish, fMarkIndexPrice: BigNumberish ]; export type OutputTuple = [ perpetualId: bigint, fMidPricePremium: bigint, fMarkPricePremium: bigint, fMarkIndexPrice: bigint ]; export interface OutputObject { perpetualId: bigint; fMidPricePremium: bigint; fMarkPricePremium: bigint; fMarkIndexPrice: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export interface PerpetualManagerProxy extends BaseContract { connect(runner?: ContractRunner | null): PerpetualManagerProxy; waitForDeployment(): Promise<this>; interface: PerpetualManagerProxyInterface; queryFilter<TCEvent extends TypedContractEvent>( event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined ): Promise<Array<TypedEventLog<TCEvent>>>; queryFilter<TCEvent extends TypedContractEvent>( filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined ): Promise<Array<TypedEventLog<TCEvent>>>; on<TCEvent extends TypedContractEvent>( event: TCEvent, listener: TypedListener<TCEvent> ): Promise<this>; on<TCEvent extends TypedContractEvent>( filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent> ): Promise<this>; once<TCEvent extends TypedContractEvent>( event: TCEvent, listener: TypedListener<TCEvent> ): Promise<this>; once<TCEvent extends TypedContractEvent>( filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent> ): Promise<this>; listeners<TCEvent extends TypedContractEvent>( event: TCEvent ): Promise<Array<TypedListener<TCEvent>>>; listeners(eventName?: string): Promise<Array<Listener>>; removeAllListeners<TCEvent extends TypedContractEvent>( event?: TCEvent ): Promise<this>; brokerVolumeEMA: TypedContractMethod< [arg0: BigNumberish, arg1: AddressLike], [[bigint, bigint] & { fTradingVolumeEMAusd: bigint; timestamp: bigint }], "view" >; brokerVolumeFeesTbps: TypedContractMethod< [arg0: BigNumberish], [bigint], "view" >; brokerVolumeTiers: TypedContractMethod< [arg0: BigNumberish], [bigint], "view" >; getImplementation: TypedContractMethod<[_sig: BytesLike], [string], "view">; getModuleImplementationAddress: TypedContractMethod< [_moduleName: string], [string], "view" >; getProxyOwner: TypedContractMethod<[], [string], "view">; governance: TypedContractMethod<[], [string], "view">; lastBaseToUSDUpdateTs: TypedContractMethod<[], [bigint], "view">; liquidityProvisionIsPaused: TypedContractMethod< [arg0: BigNumberish], [boolean], "view" >; maintainer: TypedContractMethod<[], [string], "view">; pause: TypedContractMethod<[], [void], "nonpayable">; paused: TypedContractMethod<[], [boolean], "view">; perpBaseToUSDOracle: TypedContractMethod< [arg0: BigNumberish], [string], "view" >; perpToLastBaseToUSD: TypedContractMethod< [arg0: BigNumberish], [bigint], "view" >; setImplementation: TypedContractMethod< [_impl: AddressLike], [void], "nonpayable" >; setImplementationCrossModules: TypedContractMethod< [_impl: AddressLike], [void], "nonpayable" >; setProxyOwner: TypedContractMethod< [_owner: AddressLike], [void], "nonpayable" >; traderVolumeEMA: TypedContractMethod< [arg0: BigNumberish, arg1: AddressLike], [[bigint, bigint] & { fTradingVolumeEMAusd: bigint; timestamp: bigint }], "view" >; traderVolumeFeesTbps: TypedContractMethod< [arg0: BigNumberish], [bigint], "view" >; traderVolumeTiers: TypedContractMethod< [arg0: BigNumberish], [bigint], "view" >; transferGovernance: TypedContractMethod< [newGovernance: AddressLike], [void], "nonpayable" >; transferMaintainer: TypedContractMethod< [newMaintainer: AddressLike], [void], "nonpayable" >; unpause: TypedContractMethod<[], [void], "nonpayable">; getFunction<T extends ContractMethod = ContractMethod>( key: string | FunctionFragment ): T; getFunction( nameOrSignature: "brokerVolumeEMA" ): TypedContractMethod< [arg0: BigNumberish, arg1: AddressLike], [[bigint, bigint] & { fTradingVolumeEMAusd: bigint; timestamp: bigint }], "view" >; getFunction( nameOrSignature: "brokerVolumeFeesTbps" ): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">; getFunction( nameOrSignature: "brokerVolumeTiers" ): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">; getFunction( nameOrSignature: "getImplementation" ): TypedContractMethod<[_sig: BytesLike], [string], "view">; getFunction( nameOrSignature: "getModuleImplementationAddress" ): TypedContractMethod<[_moduleName: string], [string], "view">; getFunction( nameOrSignature: "getProxyOwner" ): TypedContractMethod<[], [string], "view">; getFunction( nameOrSignature: "governance" ): TypedContractMethod<[], [string], "view">; getFunction( nameOrSignature: "lastBaseToUSDUpdateTs" ): TypedContractMethod<[], [bigint], "view">; getFunction( nameOrSignature: "liquidityProvisionIsPaused" ): TypedContractMethod<[arg0: BigNumberish], [boolean], "view">; getFunction( nameOrSignature: "maintainer" ): TypedContractMethod<[], [string], "view">; getFunction( nameOrSignature: "pause" ): TypedContractMethod<[], [void], "nonpayable">; getFunction( nameOrSignature: "paused" ): TypedContractMethod<[], [boolean], "view">; getFunction( nameOrSignature: "perpBaseToUSDOracle" ): TypedContractMethod<[arg0: BigNumberish], [string], "view">; getFunction( nameOrSignature: "perpToLastBaseToUSD" ): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">; getFunction( nameOrSignature: "setImplementation" ): TypedContractMethod<[_impl: AddressLike], [void], "nonpayable">; getFunction( nameOrSignature: "setImplementationCrossModules" ): TypedContractMethod<[_impl: AddressLike], [void], "nonpayable">; getFunction( nameOrSignature: "setProxyOwner" ): TypedContractMethod<[_owner: AddressLike], [void], "nonpayable">; getFunction( nameOrSignature: "traderVolumeEMA" ): TypedContractMethod< [arg0: BigNumberish, arg1: AddressLike], [[bigint, bigint] & { fTradingVolumeEMAusd: bigint; timestamp: bigint }], "view" >; getFunction( nameOrSignature: "traderVolumeFeesTbps" ): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">; getFunction( nameOrSignature: "traderVolumeTiers" ): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">; getFunction( nameOrSignature: "transferGovernance" ): TypedContractMethod<[newGovernance: AddressLike], [void], "nonpayable">; getFunction( nameOrSignature: "transferMaintainer" ): TypedContractMethod<[newMaintainer: AddressLike], [void], "nonpayable">; getFunction( nameOrSignature: "unpause" ): TypedContractMethod<[], [void], "nonpayable">; getEvent( key: "BrokerLotsTransferred" ): TypedContractEvent< BrokerLotsTransferredEvent.InputTuple, BrokerLotsTransferredEvent.OutputTuple, BrokerLotsTransferredEvent.OutputObject >; getEvent( key: "BrokerVolumeTransferred" ): TypedContractEvent< BrokerVolumeTransferredEvent.InputTuple, BrokerVolumeTransferredEvent.OutputTuple, BrokerVolumeTransferredEvent.OutputObject >; getEvent( key: "Clear" ): TypedContractEvent< ClearEvent.InputTuple, ClearEvent.OutputTuple, ClearEvent.OutputObject >; getEvent( key: "DistributeFees" ): TypedContractEvent< DistributeFeesEvent.InputTuple, DistributeFeesEvent.OutputTuple, DistributeFeesEvent.OutputObject >; getEvent( key: "GovernanceTransferred" ): TypedContractEvent< GovernanceTransferredEvent.InputTuple, GovernanceTransferredEvent.OutputTuple, GovernanceTransferredEvent.OutputObject >; getEvent( key: "ImplementationChanged" ): TypedContractEvent< ImplementationChangedEvent.InputTuple, ImplementationChangedEvent.OutputTuple, ImplementationChangedEvent.OutputObject >; getEvent( key: "Liquidate" ): TypedContractEvent< LiquidateEvent.InputTuple, LiquidateEvent.OutputTuple, LiquidateEvent.OutputObject >; getEvent( key: "LiquidityAdded" ): TypedContractEvent< LiquidityAddedEvent.InputTuple, LiquidityAddedEvent.OutputTuple, LiquidityAddedEvent.OutputObject >; getEvent( key: "LiquidityPoolCreated" ): TypedContractEvent< LiquidityPoolCreatedEvent.InputTuple, LiquidityPoolCreatedEvent.OutputTuple, LiquidityPoolCreatedEvent.OutputObject >; getEvent( key: "LiquidityProvisionPaused" ): TypedContractEvent< LiquidityProvisionPausedEvent.InputTuple, LiquidityProvisionPausedEvent.OutputTuple, LiquidityProvisionPausedEvent.OutputObject >; getEvent( key: "LiquidityRemoved" ): TypedContractEvent< LiquidityRemovedEvent.InputTuple, LiquidityRemovedEvent.OutputTuple, LiquidityRemovedEvent.OutputObject >; getEvent( key: "LiquidityWithdrawalInitiated" ): TypedContractEvent< LiquidityWithdrawalInitiatedEvent.InputTuple, LiquidityWithdrawalInitiatedEvent.OutputTuple, LiquidityWithdrawalInitiatedEvent.OutputObject >; getEvent( key: "MaintainerTransferred" ): TypedContractEvent< MaintainerTransferredEvent.InputTuple, MaintainerTransferredEvent.OutputTuple, MaintainerTransferredEvent.OutputObject >; getEvent( key: "Paused" ): TypedContractEvent< PausedEvent.InputTuple, PausedEvent.OutputTuple, PausedEvent.OutputObject >; getEvent( key: "PerpetualCreated" ): TypedContractEvent< PerpetualCreatedEvent.InputTuple, PerpetualCreatedEvent.OutputTuple, PerpetualCreatedEvent.OutputObject >; getEvent( key: "PerpetualLimitOrderCancelled" ): TypedContractEvent< PerpetualLimitOrderCancelledEvent.InputTuple, PerpetualLimitOrderCancelledEvent.OutputTuple, PerpetualLimitOrderCancelledEvent.OutputObject >; getEvent( key: "ProxyOwnershipTransferred" ): TypedContractEvent< ProxyOwnershipTransferredEvent.InputTuple, ProxyOwnershipTransferredEvent.OutputTuple, ProxyOwnershipTransferredEvent.OutputObject >; getEvent( key: "RunLiquidityPool" ): TypedContractEvent< RunLiquidityPoolEvent.InputTuple, RunLiquidityPoolEvent.OutputTuple, RunLiquidityPoolEvent.OutputObject >; getEvent( key: "SetBlockDelay" ): TypedContractEvent< SetBlockDelayEvent.InputTuple, SetBlockDelayEvent.OutputTuple, SetBlockDelayEvent.OutputObject >; getEvent( key: "SetBrokerDesignations" ): TypedContractEvent< SetBrokerDesignationsEvent.InputTuple, SetBrokerDesignationsEvent.OutputTuple, SetBrokerDesignationsEvent.OutputObject >; getEvent( key: "SetBrokerTiers" ): TypedContractEvent< SetBrokerTiersEvent.InputTuple, SetBrokerTiersEvent.OutputTuple, SetBrokerTiersEvent.OutputObject >; getEvent( key: "SetBrokerVolumeTiers" ): TypedContractEvent< SetBrokerVolumeTiersEvent.InputTuple, SetBrokerVolumeTiersEvent.OutputTuple, SetBrokerVolumeTiersEvent.OutputObject >; getEvent( key: "SetClearedState" ): TypedContractEvent< SetClearedStateEvent.InputTuple, SetClearedStateEvent.OutputTuple, SetClearedStateEvent.OutputObject >; getEvent( key: "SetDelegate" ): TypedContractEvent< SetDelegateEvent.InputTuple, SetDelegateEvent.OutputTuple, SetDelegateEvent.OutputObject >; getEvent( key: "SetEmergencyState" ): TypedContractEvent< SetEmergencyStateEvent.InputTuple, SetEmergencyStateEvent.OutputTuple, SetEmergencyStateEvent.OutputObject >; getEvent( key: "SetNormalState" ): TypedContractEvent< SetNormalStateEvent.InputTuple, SetNormalStateEvent.OutputTuple, SetNormalStateEvent.OutputObject >; getEvent( key: "SetOracles" ): TypedContractEvent< SetOraclesEvent.InputTuple, SetOraclesEvent.OutputTuple, SetOraclesEvent.OutputObject >; getEvent( key: "SetParameter" ): TypedContractEvent< SetParameterEvent.InputTuple, SetParameterEvent.OutputTuple, SetParameterEvent.OutputObject >; getEvent( key: "SetParameterPair" ): TypedContractEvent< SetParameterPairEvent.InputTuple, SetParameterPairEvent.OutputTuple, SetParameterPairEvent.OutputObject >; getEvent( key: "SetPerpetualBaseParameters" ): TypedContractEvent< SetPerpetualBaseParametersEvent.InputTuple, SetPerpetualBaseParametersEvent.OutputTuple, SetPerpetualBaseParametersEvent.OutputObject >; getEvent( key: "SetPerpetualRiskParameters" ): TypedContractEvent< SetPerpetualRiskParametersEvent.InputTuple, SetPerpetualRiskParametersEvent.OutputTuple, SetPerpetualRiskParametersEvent.OutputObject >; getEvent( key: "SetPoolParameter" ): TypedContractEvent< SetPoolParameterEvent.InputTuple, SetPoolParameterEvent.OutputTuple, SetPoolParameter