UNPKG

@d8x/perpetuals-sdk

Version:

Node TypeScript SDK for D8X Perpetual Futures

506 lines (505 loc) 21.8 kB
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 { 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; }; 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 declare namespace IClientOrder { type ClientOrderStruct = { iPerpetualId: BigNumberish; fLimitPrice: BigNumberish; leverageTDR: BigNumberish; executionTimestamp: BigNumberish; flags: BigNumberish; iDeadline: BigNumberish; brokerAddr: AddressLike; fTriggerPrice: BigNumberish; fAmount: BigNumberish; parentChildDigest1: BytesLike; traderAddr: AddressLike; parentChildDigest2: BytesLike; brokerFeeTbps: BigNumberish; brokerSignature: BytesLike; callbackTarget: AddressLike; }; type ClientOrderStructOutput = [ iPerpetualId: bigint, fLimitPrice: bigint, leverageTDR: bigint, executionTimestamp: bigint, flags: bigint, iDeadline: bigint, brokerAddr: string, fTriggerPrice: bigint, fAmount: bigint, parentChildDigest1: string, traderAddr: string, parentChildDigest2: string, brokerFeeTbps: bigint, brokerSignature: string, callbackTarget: string ] & { iPerpetualId: bigint; fLimitPrice: bigint; leverageTDR: bigint; executionTimestamp: bigint; flags: bigint; iDeadline: bigint; brokerAddr: string; fTriggerPrice: bigint; fAmount: bigint; parentChildDigest1: string; traderAddr: string; parentChildDigest2: string; brokerFeeTbps: bigint; brokerSignature: string; callbackTarget: string; }; } export interface LimitOrderBookInterface extends Interface { getFunction(nameOrSignature: "CALLBACK_GAS_LIMIT" | "actvDigestPos" | "callbackFunctions" | "cancelOrder" | "digestsOfTrader" | "executeOrders" | "getOrderStatus" | "getOrders" | "getTrader" | "initialize" | "lastOrderHash" | "limitDigestsOfTrader" | "marketCloseSwitchTimestamp" | "numberOfDigestsOfTrader" | "orderCount" | "orderDependency" | "orderOfDigest" | "perpManager" | "perpetualId" | "pollRange" | "postOrders"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "Callback" | "ExecutionFailed" | "Initialized" | "PerpetualLimitOrderCreated"): EventFragment; encodeFunctionData(functionFragment: "CALLBACK_GAS_LIMIT", values?: undefined): string; encodeFunctionData(functionFragment: "actvDigestPos", values: [BytesLike]): string; encodeFunctionData(functionFragment: "callbackFunctions", values: [BytesLike]): string; encodeFunctionData(functionFragment: "cancelOrder", values: [BytesLike, BytesLike, BytesLike[], BigNumberish[]]): string; encodeFunctionData(functionFragment: "digestsOfTrader", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "executeOrders", values: [BytesLike[], AddressLike, BytesLike[], BigNumberish[]]): string; encodeFunctionData(functionFragment: "getOrderStatus", values: [BytesLike]): string; encodeFunctionData(functionFragment: "getOrders", values: [AddressLike, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getTrader", values: [BytesLike]): string; encodeFunctionData(functionFragment: "initialize", values: [AddressLike, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "lastOrderHash", values?: undefined): string; encodeFunctionData(functionFragment: "limitDigestsOfTrader", values: [AddressLike, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "marketCloseSwitchTimestamp", values?: undefined): string; encodeFunctionData(functionFragment: "numberOfDigestsOfTrader", values: [AddressLike]): string; encodeFunctionData(functionFragment: "orderCount", values?: undefined): string; encodeFunctionData(functionFragment: "orderDependency", values: [BytesLike]): string; encodeFunctionData(functionFragment: "orderOfDigest", values: [BytesLike]): string; encodeFunctionData(functionFragment: "perpManager", values?: undefined): string; encodeFunctionData(functionFragment: "perpetualId", values?: undefined): string; encodeFunctionData(functionFragment: "pollRange", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "postOrders", values: [IClientOrder.ClientOrderStruct[], BytesLike[]]): string; decodeFunctionResult(functionFragment: "CALLBACK_GAS_LIMIT", data: BytesLike): Result; decodeFunctionResult(functionFragment: "actvDigestPos", data: BytesLike): Result; decodeFunctionResult(functionFragment: "callbackFunctions", data: BytesLike): Result; decodeFunctionResult(functionFragment: "cancelOrder", data: BytesLike): Result; decodeFunctionResult(functionFragment: "digestsOfTrader", data: BytesLike): Result; decodeFunctionResult(functionFragment: "executeOrders", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getOrderStatus", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getOrders", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTrader", data: BytesLike): Result; decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; decodeFunctionResult(functionFragment: "lastOrderHash", data: BytesLike): Result; decodeFunctionResult(functionFragment: "limitDigestsOfTrader", data: BytesLike): Result; decodeFunctionResult(functionFragment: "marketCloseSwitchTimestamp", data: BytesLike): Result; decodeFunctionResult(functionFragment: "numberOfDigestsOfTrader", data: BytesLike): Result; decodeFunctionResult(functionFragment: "orderCount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "orderDependency", data: BytesLike): Result; decodeFunctionResult(functionFragment: "orderOfDigest", data: BytesLike): Result; decodeFunctionResult(functionFragment: "perpManager", data: BytesLike): Result; decodeFunctionResult(functionFragment: "perpetualId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pollRange", data: BytesLike): Result; decodeFunctionResult(functionFragment: "postOrders", data: BytesLike): Result; } export declare namespace CallbackEvent { type InputTuple = [ callbackTarget: AddressLike, success: boolean, gasLimit: BigNumberish ]; type OutputTuple = [ callbackTarget: string, success: boolean, gasLimit: bigint ]; interface OutputObject { callbackTarget: string; success: boolean; gasLimit: bigint; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace ExecutionFailedEvent { type InputTuple = [ perpetualId: BigNumberish, trader: AddressLike, digest: BytesLike, reason: string ]; type OutputTuple = [ perpetualId: bigint, trader: string, digest: string, reason: string ]; interface OutputObject { perpetualId: bigint; trader: string; digest: string; reason: string; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace InitializedEvent { type InputTuple = [version: BigNumberish]; type OutputTuple = [version: bigint]; interface OutputObject { version: bigint; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export declare namespace PerpetualLimitOrderCreatedEvent { type InputTuple = [ perpetualId: BigNumberish, trader: AddressLike, brokerAddr: AddressLike, order: IPerpetualOrder.OrderStruct, digest: BytesLike ]; type OutputTuple = [ perpetualId: bigint, trader: string, brokerAddr: string, order: IPerpetualOrder.OrderStructOutput, digest: string ]; interface OutputObject { perpetualId: bigint; trader: string; brokerAddr: string; order: IPerpetualOrder.OrderStructOutput; digest: string; } type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; type Filter = TypedDeferredTopicFilter<Event>; type Log = TypedEventLog<Event>; type LogDescription = TypedLogDescription<Event>; } export interface LimitOrderBook extends BaseContract { connect(runner?: ContractRunner | null): LimitOrderBook; waitForDeployment(): Promise<this>; interface: LimitOrderBookInterface; 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>; CALLBACK_GAS_LIMIT: TypedContractMethod<[], [bigint], "view">; actvDigestPos: TypedContractMethod<[arg0: BytesLike], [bigint], "view">; callbackFunctions: TypedContractMethod<[arg0: BytesLike], [string], "view">; cancelOrder: TypedContractMethod<[ _digest: BytesLike, _signature: BytesLike, _updateData: BytesLike[], _publishTimes: BigNumberish[] ], [ void ], "payable">; digestsOfTrader: TypedContractMethod<[ arg0: AddressLike, arg1: BigNumberish ], [ string ], "view">; executeOrders: TypedContractMethod<[ _digests: BytesLike[], _executorAddr: AddressLike, _updateData: BytesLike[], _publishTimes: BigNumberish[] ], [ void ], "payable">; getOrderStatus: TypedContractMethod<[_digest: BytesLike], [bigint], "view">; getOrders: TypedContractMethod<[ trader: AddressLike, offset: BigNumberish, limit: BigNumberish ], [ IClientOrder.ClientOrderStructOutput[] ], "view">; getTrader: TypedContractMethod<[digest: BytesLike], [string], "view">; initialize: TypedContractMethod<[ _perpetualManagerAddr: AddressLike, _perpetualId: BigNumberish, _iCancelDelaySec: BigNumberish ], [ void ], "nonpayable">; lastOrderHash: TypedContractMethod<[], [string], "view">; limitDigestsOfTrader: TypedContractMethod<[ trader: AddressLike, page: BigNumberish, limit: BigNumberish ], [ string[] ], "view">; marketCloseSwitchTimestamp: TypedContractMethod<[], [bigint], "view">; numberOfDigestsOfTrader: TypedContractMethod<[ trader: AddressLike ], [ bigint ], "view">; orderCount: TypedContractMethod<[], [bigint], "view">; orderDependency: TypedContractMethod<[ arg0: BytesLike ], [ [ string, string ] & { parentChildDigest1: string; parentChildDigest2: string; } ], "view">; orderOfDigest: TypedContractMethod<[ arg0: BytesLike ], [ [ bigint, bigint, bigint, string, bigint, string, bigint, bigint, bigint, string, bigint, bigint, bigint, 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; } ], "view">; perpManager: TypedContractMethod<[], [string], "view">; perpetualId: TypedContractMethod<[], [bigint], "view">; pollRange: TypedContractMethod<[ _from: BigNumberish, _numElements: BigNumberish ], [ [ IClientOrder.ClientOrderStructOutput[], string[], bigint[] ] & { orders: IClientOrder.ClientOrderStructOutput[]; orderHashes: string[]; submittedTs: bigint[]; } ], "view">; postOrders: TypedContractMethod<[ _orders: IClientOrder.ClientOrderStruct[], _signatures: BytesLike[] ], [ void ], "nonpayable">; getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T; getFunction(nameOrSignature: "CALLBACK_GAS_LIMIT"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "actvDigestPos"): TypedContractMethod<[arg0: BytesLike], [bigint], "view">; getFunction(nameOrSignature: "callbackFunctions"): TypedContractMethod<[arg0: BytesLike], [string], "view">; getFunction(nameOrSignature: "cancelOrder"): TypedContractMethod<[ _digest: BytesLike, _signature: BytesLike, _updateData: BytesLike[], _publishTimes: BigNumberish[] ], [ void ], "payable">; getFunction(nameOrSignature: "digestsOfTrader"): TypedContractMethod<[ arg0: AddressLike, arg1: BigNumberish ], [ string ], "view">; getFunction(nameOrSignature: "executeOrders"): TypedContractMethod<[ _digests: BytesLike[], _executorAddr: AddressLike, _updateData: BytesLike[], _publishTimes: BigNumberish[] ], [ void ], "payable">; getFunction(nameOrSignature: "getOrderStatus"): TypedContractMethod<[_digest: BytesLike], [bigint], "view">; getFunction(nameOrSignature: "getOrders"): TypedContractMethod<[ trader: AddressLike, offset: BigNumberish, limit: BigNumberish ], [ IClientOrder.ClientOrderStructOutput[] ], "view">; getFunction(nameOrSignature: "getTrader"): TypedContractMethod<[digest: BytesLike], [string], "view">; getFunction(nameOrSignature: "initialize"): TypedContractMethod<[ _perpetualManagerAddr: AddressLike, _perpetualId: BigNumberish, _iCancelDelaySec: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "lastOrderHash"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "limitDigestsOfTrader"): TypedContractMethod<[ trader: AddressLike, page: BigNumberish, limit: BigNumberish ], [ string[] ], "view">; getFunction(nameOrSignature: "marketCloseSwitchTimestamp"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "numberOfDigestsOfTrader"): TypedContractMethod<[trader: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "orderCount"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "orderDependency"): TypedContractMethod<[ arg0: BytesLike ], [ [ string, string ] & { parentChildDigest1: string; parentChildDigest2: string; } ], "view">; getFunction(nameOrSignature: "orderOfDigest"): TypedContractMethod<[ arg0: BytesLike ], [ [ bigint, bigint, bigint, string, bigint, string, bigint, bigint, bigint, string, bigint, bigint, bigint, 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; } ], "view">; getFunction(nameOrSignature: "perpManager"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "perpetualId"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "pollRange"): TypedContractMethod<[ _from: BigNumberish, _numElements: BigNumberish ], [ [ IClientOrder.ClientOrderStructOutput[], string[], bigint[] ] & { orders: IClientOrder.ClientOrderStructOutput[]; orderHashes: string[]; submittedTs: bigint[]; } ], "view">; getFunction(nameOrSignature: "postOrders"): TypedContractMethod<[ _orders: IClientOrder.ClientOrderStruct[], _signatures: BytesLike[] ], [ void ], "nonpayable">; getEvent(key: "Callback"): TypedContractEvent<CallbackEvent.InputTuple, CallbackEvent.OutputTuple, CallbackEvent.OutputObject>; getEvent(key: "ExecutionFailed"): TypedContractEvent<ExecutionFailedEvent.InputTuple, ExecutionFailedEvent.OutputTuple, ExecutionFailedEvent.OutputObject>; getEvent(key: "Initialized"): TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>; getEvent(key: "PerpetualLimitOrderCreated"): TypedContractEvent<PerpetualLimitOrderCreatedEvent.InputTuple, PerpetualLimitOrderCreatedEvent.OutputTuple, PerpetualLimitOrderCreatedEvent.OutputObject>; filters: { "Callback(address,bool,uint32)": TypedContractEvent<CallbackEvent.InputTuple, CallbackEvent.OutputTuple, CallbackEvent.OutputObject>; Callback: TypedContractEvent<CallbackEvent.InputTuple, CallbackEvent.OutputTuple, CallbackEvent.OutputObject>; "ExecutionFailed(uint24,address,bytes32,string)": TypedContractEvent<ExecutionFailedEvent.InputTuple, ExecutionFailedEvent.OutputTuple, ExecutionFailedEvent.OutputObject>; ExecutionFailed: TypedContractEvent<ExecutionFailedEvent.InputTuple, ExecutionFailedEvent.OutputTuple, ExecutionFailedEvent.OutputObject>; "Initialized(uint8)": TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>; Initialized: TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>; "PerpetualLimitOrderCreated(uint24,address,address,tuple,bytes32)": TypedContractEvent<PerpetualLimitOrderCreatedEvent.InputTuple, PerpetualLimitOrderCreatedEvent.OutputTuple, PerpetualLimitOrderCreatedEvent.OutputObject>; PerpetualLimitOrderCreated: TypedContractEvent<PerpetualLimitOrderCreatedEvent.InputTuple, PerpetualLimitOrderCreatedEvent.OutputTuple, PerpetualLimitOrderCreatedEvent.OutputObject>; }; }