@d8x/perpetuals-sdk
Version:
Node TypeScript SDK for D8X Perpetual Futures
506 lines (505 loc) • 21.8 kB
TypeScript
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>;
};
}