Skip to content

Commit 427426b

Browse files
committed
extend types
1 parent 4f9af17 commit 427426b

File tree

3 files changed

+179
-3
lines changed

3 files changed

+179
-3
lines changed

src/entities/perp/request.ts

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,31 @@ export class ActiveAssetsPerpEvent {
4949
type!: PerpEnum.ASSET_CTXS;
5050
}
5151

52+
export class WebData3PerpEvent {
53+
@ApiProperty()
54+
type!: PerpEnum.WEBDATA3;
55+
56+
@ApiProperty()
57+
user!: string;
58+
}
59+
60+
export class SpotStatePerpEvent {
61+
@ApiProperty()
62+
type!: PerpEnum.SPOT_STATE;
63+
64+
@ApiProperty()
65+
user!: string;
66+
}
67+
5268
@ApiExtraModels(
5369
L2BookPerpEvent,
5470
TradesPerpEvent,
5571
ActiveSpotAssetPerpEvent,
5672
ActiveAssetPerpEvent,
5773
ActiveSpotAssetsPerpEvent,
5874
ActiveAssetsPerpEvent,
75+
WebData3PerpEvent,
76+
SpotStatePerpEvent,
5977
)
6078
export class PerpEvent {
6179
@ApiProperty({
@@ -66,6 +84,8 @@ export class PerpEvent {
6684
{ $ref: getSchemaPath(ActiveAssetPerpEvent) },
6785
{ $ref: getSchemaPath(ActiveSpotAssetsPerpEvent) },
6886
{ $ref: getSchemaPath(ActiveAssetsPerpEvent) },
87+
{ $ref: getSchemaPath(WebData3PerpEvent) },
88+
{ $ref: getSchemaPath(SpotStatePerpEvent) },
6989
],
7090
})
7191
event!:
@@ -74,5 +94,7 @@ export class PerpEvent {
7494
| ActiveSpotAssetPerpEvent
7595
| ActiveAssetPerpEvent
7696
| ActiveSpotAssetsPerpEvent
77-
| ActiveAssetsPerpEvent;
97+
| ActiveAssetsPerpEvent
98+
| WebData3PerpEvent
99+
| SpotStatePerpEvent;
78100
}

src/entities/perp/response.ts

Lines changed: 145 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
import { ApiExtraModels, ApiProperty, getSchemaPath } from '@nestjs/swagger';
2-
import { PerpTradesSide } from '../../enums/perp.enum';
2+
import {
3+
PerpPositionLeverageDirection,
4+
PerpPositionLeverageType,
5+
PerpTradesSide,
6+
} from '../../enums/perp.enum';
37
import { PerpCoinExtendedSlimWs, PerpSpotCoinExtendedSlimWs } from './coins';
48
import {
59
ActiveAssetPerpEvent,
610
ActiveAssetsPerpEvent,
711
ActiveSpotAssetPerpEvent,
812
ActiveSpotAssetsPerpEvent,
913
L2BookPerpEvent,
14+
SpotStatePerpEvent,
1015
TradesPerpEvent,
16+
WebData3PerpEvent,
1117
} from './request';
1218

1319
export class L2BookPerpResponseSingle {
@@ -119,13 +125,146 @@ export class ActiveAssetsPerpResponse extends ActiveAssetsPerpEvent {
119125
tokens!: PerpCoinExtendedSlimWs[];
120126
}
121127

128+
export class Web3DataMarginSummary {
129+
@ApiProperty()
130+
accountValue!: string;
131+
132+
@ApiProperty()
133+
totalNtlPos!: string;
134+
135+
@ApiProperty()
136+
totalRawUsd!: string;
137+
138+
@ApiProperty()
139+
totalMarginUsed!: string;
140+
}
141+
142+
export class Web3DataAssetPositionCumFunding {
143+
@ApiProperty()
144+
allTime!: string;
145+
146+
@ApiProperty()
147+
sinceChange!: string;
148+
149+
@ApiProperty()
150+
sinceOpen!: string;
151+
}
152+
153+
export class Web3DataAssetPositionLeverage {
154+
@ApiProperty()
155+
rawUsd!: string;
156+
157+
@ApiProperty()
158+
type!: PerpPositionLeverageType;
159+
160+
@ApiProperty()
161+
value!: number;
162+
}
163+
164+
export class Web3DataAssetPositionPosition {
165+
@ApiProperty()
166+
coin!: string;
167+
168+
@ApiProperty()
169+
entryPx!: string;
170+
171+
@ApiProperty()
172+
liquidationPx!: string;
173+
174+
@ApiProperty()
175+
marginUsed!: string;
176+
177+
@ApiProperty()
178+
maxLeverage!: number;
179+
180+
@ApiProperty()
181+
positionValue!: string;
182+
183+
@ApiProperty()
184+
returnOnEquity!: string;
185+
186+
@ApiProperty()
187+
szi!: string;
188+
189+
@ApiProperty()
190+
unrealizedPnl!: string;
191+
192+
@ApiProperty()
193+
cumFunding!: Web3DataAssetPositionCumFunding;
194+
}
195+
196+
export class Web3DataAssetPosition {
197+
@ApiProperty()
198+
position!: Web3DataAssetPositionPosition;
199+
200+
@ApiProperty()
201+
type!: PerpPositionLeverageDirection;
202+
}
203+
204+
export class Web3DataClearingHouseState {
205+
@ApiProperty()
206+
crossMaintenanceMarginUsed!: string;
207+
208+
@ApiProperty()
209+
withdrawable!: string;
210+
211+
@ApiProperty()
212+
time!: number;
213+
214+
@ApiProperty()
215+
marginSummary!: Web3DataMarginSummary;
216+
217+
@ApiProperty()
218+
crossMarginSummary!: Web3DataMarginSummary;
219+
220+
@ApiProperty()
221+
assetPositions!: Web3DataAssetPosition[];
222+
}
223+
224+
export class Web3DataPerpDexStates {
225+
@ApiProperty()
226+
totalVaultEquity!: string;
227+
228+
@ApiProperty()
229+
clearingHouseState!: Web3DataClearingHouseState;
230+
}
231+
232+
export class WebData3PerpResponse extends WebData3PerpEvent {
233+
@ApiProperty()
234+
perpDexStates!: Web3DataPerpDexStates[];
235+
}
236+
237+
export class SpotStateBalance {
238+
@ApiProperty()
239+
coin!: string;
240+
241+
@ApiProperty()
242+
token!: number;
243+
244+
@ApiProperty()
245+
total!: string;
246+
247+
@ApiProperty()
248+
hold!: string;
249+
250+
@ApiProperty()
251+
entryNtl!: string;
252+
}
253+
254+
export class SpotStatePerpResponse extends SpotStatePerpEvent {
255+
@ApiProperty()
256+
balances!: SpotStateBalance[];
257+
}
258+
122259
@ApiExtraModels(
123260
L2BookPerpResponse,
124261
TradesPerpResponse,
125262
ActiveSpotAssetPerpResponse,
126263
ActiveAssetPerpResponse,
127264
ActiveSpotAssetsPerpResponse,
128265
ActiveAssetsPerpResponse,
266+
WebData3PerpResponse,
267+
SpotStatePerpResponse,
129268
)
130269
export class PerpResponse {
131270
@ApiProperty({
@@ -136,6 +275,8 @@ export class PerpResponse {
136275
{ $ref: getSchemaPath(ActiveAssetPerpResponse) },
137276
{ $ref: getSchemaPath(ActiveSpotAssetsPerpResponse) },
138277
{ $ref: getSchemaPath(ActiveAssetsPerpResponse) },
278+
{ $ref: getSchemaPath(WebData3PerpResponse) },
279+
{ $ref: getSchemaPath(SpotStatePerpResponse) },
139280
],
140281
})
141282
event!:
@@ -144,5 +285,7 @@ export class PerpResponse {
144285
| ActiveSpotAssetPerpResponse
145286
| ActiveAssetPerpResponse
146287
| ActiveSpotAssetsPerpResponse
147-
| ActiveAssetsPerpResponse;
288+
| ActiveAssetsPerpResponse
289+
| WebData3PerpResponse
290+
| SpotStatePerpResponse;
148291
}

src/enums/perp.enum.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ export enum PerpEnum {
66
SPOT_ASSET_CTXS = 'activeSpotAssetCtxs',
77
ASSET_CTXS = 'activeAssetCtxs',
88
TRADINGVIEW = 'tradingView',
9+
WEBDATA3 = 'webData3',
10+
SPOT_STATE = 'spotState',
911
}
1012

1113
export enum PerpTradesSide {
@@ -60,3 +62,12 @@ export enum PerpAssetSession {
6062
export enum PerpAssetExchange {
6163
DEFAULT = 'Default',
6264
}
65+
66+
export enum PerpPositionLeverageType {
67+
ISOLATED = 'isolated',
68+
CROSS = 'cross',
69+
}
70+
71+
export enum PerpPositionLeverageDirection {
72+
ONE_WAY = 'oneWay',
73+
}

0 commit comments

Comments
 (0)