@crypticdot/defituna-api 1.3.8 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -63,6 +63,14 @@ __export(schemas_exports, {
63
63
  OrderBookEntry: () => OrderBookEntry,
64
64
  OrderBookNotification: () => OrderBookNotification,
65
65
  OrderBookNotificationMeta: () => OrderBookNotificationMeta,
66
+ OrderHistoryEntry: () => OrderHistoryEntry,
67
+ OrderHistoryEntryNotification: () => OrderHistoryEntryNotification,
68
+ OrderHistoryOrderType: () => OrderHistoryOrderType,
69
+ OrderHistoryOrderTypeSchema: () => OrderHistoryOrderTypeSchema,
70
+ OrderHistoryStatus: () => OrderHistoryStatus,
71
+ OrderHistoryStatusSchema: () => OrderHistoryStatusSchema,
72
+ OrderHistoryUIDirection: () => OrderHistoryUIDirection,
73
+ OrderHistoryUIDirectionSchema: () => OrderHistoryUIDirectionSchema,
66
74
  PaginationMeta: () => PaginationMeta,
67
75
  Pool: () => Pool,
68
76
  PoolPriceCandle: () => PoolPriceCandle,
@@ -131,7 +139,8 @@ var NotificationEntity = {
131
139
  LENDING_POSITION: "lending_position",
132
140
  STAKING_POSITION: "staking_position",
133
141
  FUSION_LIMIT_ORDER: "fusion_limit_order",
134
- TRADE_HISTORY_ENTRY: "trade_history_entry"
142
+ TRADE_HISTORY_ENTRY: "trade_history_entry",
143
+ ORDER_HISTORY_ENTRY: "order_history_entry"
135
144
  };
136
145
  var NotificationAction = {
137
146
  CREATE: "create",
@@ -175,6 +184,27 @@ var TradeHistoryUIDirection = {
175
184
  OPEN_SHORT: "open_short",
176
185
  CLOSE_SHORT: "close_short"
177
186
  };
187
+ var OrderHistoryOrderType = {
188
+ MARKET: "market",
189
+ LIMIT: "limit",
190
+ TAKE_PROFIT_MARKET: "take_profit_market",
191
+ STOP_LOSS_MARKET: "stop_loss_market",
192
+ LIQUIDATION_MARKET: "liquidation_market"
193
+ };
194
+ var OrderHistoryStatus = {
195
+ OPEN: "open",
196
+ PARTIALLY_FILLED: "partially_filled",
197
+ FILLED: "filled",
198
+ CANCELLED: "cancelled",
199
+ CLAIMED: "claimed",
200
+ REJECTED: "rejected"
201
+ };
202
+ var OrderHistoryUIDirection = {
203
+ BUY: "buy",
204
+ SELL: "sell",
205
+ LONG: "long",
206
+ SHORT: "short"
207
+ };
178
208
  var StakingPositionHistoryActionType = {
179
209
  STAKE: "stake",
180
210
  UNSTAKE: "unstake",
@@ -193,7 +223,8 @@ var WalletSubscriptionTopic = {
193
223
  LENDING_POSITIONS: "lending_positions",
194
224
  FUSION_LIMIT_ORDERS: "fusion_limit_orders",
195
225
  STAKING_POSITION: "staking_position",
196
- TRADE_HISTORY: "trade_history"
226
+ TRADE_HISTORY: "trade_history",
227
+ ORDER_HISTORY: "order_history"
197
228
  };
198
229
  var NotificationEntitySchema = import_zod.z.enum([NotificationEntity.POOL_SWAP, ...Object.values(NotificationEntity)]);
199
230
  var NotificationActionSchema = import_zod.z.enum([NotificationAction.CREATE, ...Object.values(NotificationAction)]);
@@ -209,6 +240,15 @@ var TradeHistoryUIDirectionSchema = import_zod.z.enum([
209
240
  TradeHistoryUIDirection.BUY,
210
241
  ...Object.values(TradeHistoryUIDirection)
211
242
  ]);
243
+ var OrderHistoryOrderTypeSchema = import_zod.z.enum([
244
+ OrderHistoryOrderType.MARKET,
245
+ ...Object.values(OrderHistoryOrderType)
246
+ ]);
247
+ var OrderHistoryStatusSchema = import_zod.z.enum([OrderHistoryStatus.OPEN, ...Object.values(OrderHistoryStatus)]);
248
+ var OrderHistoryUIDirectionSchema = import_zod.z.enum([
249
+ OrderHistoryUIDirection.BUY,
250
+ ...Object.values(OrderHistoryUIDirection)
251
+ ]);
212
252
  var StakingPositionHistoryActionTypeSchema = import_zod.z.enum([
213
253
  StakingPositionHistoryActionType.STAKE,
214
254
  ...Object.values(StakingPositionHistoryActionType)
@@ -245,13 +285,16 @@ var Market = import_zod.z.object({
245
285
  liquidationThreshold: import_zod.z.number(),
246
286
  oraclePriceDeviationThreshold: import_zod.z.number(),
247
287
  limitOrderExecutionFee: import_zod.z.number(),
288
+ maxSpotPositionSizeA: amountWithUsd,
289
+ maxSpotPositionSizeB: amountWithUsd,
248
290
  borrowedFundsA: amountWithUsd,
249
291
  borrowedFundsB: amountWithUsd,
250
292
  availableBorrowA: amountWithUsd,
251
293
  availableBorrowB: amountWithUsd,
252
294
  borrowLimitA: amountWithUsd,
253
295
  borrowLimitB: amountWithUsd,
254
- disabled: import_zod.z.boolean()
296
+ disabled: import_zod.z.boolean(),
297
+ createdAt: import_zod.z.coerce.date()
255
298
  });
256
299
  var TokenOraclePrice = import_zod.z.object({
257
300
  mint: import_zod.z.string(),
@@ -354,22 +397,9 @@ var TunaPosition = import_zod.z.object({
354
397
  liquidity: import_zod.z.coerce.bigint(),
355
398
  tickLowerIndex: import_zod.z.number(),
356
399
  tickUpperIndex: import_zod.z.number(),
357
- /**
358
- * @deprecated Use entrySqrtPrice
359
- */
360
- tickEntryIndex: import_zod.z.number(),
361
- /**
362
- * @deprecated Use lowerLimitOrderSqrtPrice
363
- */
364
- tickStopLossIndex: import_zod.z.number(),
365
- /**
366
- * @deprecated Use upperLimitOrderSqrtPrice
367
- */
368
- tickTakeProfitIndex: import_zod.z.number(),
369
400
  entrySqrtPrice: import_zod.z.coerce.bigint(),
370
401
  lowerLimitOrderSqrtPrice: import_zod.z.coerce.bigint(),
371
402
  upperLimitOrderSqrtPrice: import_zod.z.coerce.bigint(),
372
- swapToTokenOnLimitOrder: import_zod.z.number(),
373
403
  flags: import_zod.z.number(),
374
404
  pool: import_zod.z.string(),
375
405
  poolSqrtPrice: import_zod.z.coerce.bigint(),
@@ -494,6 +524,29 @@ var TradeHistoryEntry = import_zod.z.object({
494
524
  slot: import_zod.z.coerce.bigint(),
495
525
  ts: import_zod.z.coerce.date()
496
526
  });
527
+ var OrderHistoryEntry = import_zod.z.object({
528
+ // Internal entry ID
529
+ id: import_zod.z.string(),
530
+ pool: import_zod.z.string(),
531
+ authority: import_zod.z.string(),
532
+ orderType: OrderHistoryOrderTypeSchema,
533
+ isReduceOnly: import_zod.z.nullable(import_zod.z.boolean()),
534
+ uiTakeProfitPrice: import_zod.z.nullable(import_zod.z.number()),
535
+ uiStopLossPrice: import_zod.z.nullable(import_zod.z.number()),
536
+ aToB: import_zod.z.boolean(),
537
+ uiDirection: OrderHistoryUIDirectionSchema,
538
+ uiPrice: import_zod.z.nullable(import_zod.z.number()),
539
+ uiExecutionPrice: import_zod.z.nullable(import_zod.z.number()),
540
+ status: OrderHistoryStatusSchema,
541
+ baseToken: amountWithUsd,
542
+ quoteToken: amountWithUsd,
543
+ baseTokenConsumedAmount: import_zod.z.nullable(import_zod.z.coerce.bigint()),
544
+ quoteTokenFilledAmount: import_zod.z.nullable(import_zod.z.coerce.bigint()),
545
+ txSignature: import_zod.z.nullable(import_zod.z.string()),
546
+ positionAddress: import_zod.z.nullable(import_zod.z.string()),
547
+ slot: import_zod.z.coerce.bigint(),
548
+ ts: import_zod.z.coerce.date()
549
+ });
497
550
  var StakingTreasury = import_zod.z.object({
498
551
  address: import_zod.z.string(),
499
552
  stakedTokenMint: import_zod.z.string(),
@@ -613,6 +666,7 @@ var TunaSpotPositionNotification = createNotificationSchema(TunaSpotPosition);
613
666
  var LendingPositionNotification = createNotificationSchema(LendingPosition);
614
667
  var LimitOrderNotification = createNotificationSchema(LimitOrder);
615
668
  var TradeHistoryEntryNotification = createNotificationSchema(TradeHistoryEntry);
669
+ var OrderHistoryEntryNotification = createNotificationSchema(OrderHistoryEntry);
616
670
  var StakingPositionNotification = createNotificationSchema(StakingPosition);
617
671
 
618
672
  // src/client/client.ts
@@ -855,6 +909,28 @@ var TunaApiClient = class {
855
909
  const url = this.appendUrlSearchParams(this.buildURL(`users/${userAddress}/trade-history`), query);
856
910
  return await this.httpRequest(url, TradeHistoryEntry.array());
857
911
  }
912
+ async getUserOrderHistory(userAddress, options) {
913
+ let query = {};
914
+ if (options) {
915
+ if (options.pool?.length) {
916
+ query.pool = options.pool.join(",");
917
+ }
918
+ if (options.orderType?.length) {
919
+ query.order_type = options.orderType.join(",");
920
+ }
921
+ if (options.limit) {
922
+ query.limit = options.limit;
923
+ }
924
+ if (options.cursor) {
925
+ query.cursor = options.cursor;
926
+ }
927
+ if (options.desc !== void 0) {
928
+ query.desc = options.desc;
929
+ }
930
+ }
931
+ const url = this.appendUrlSearchParams(this.buildURL(`users/${userAddress}/order-history`), query);
932
+ return await this.httpRequest(url, OrderHistoryEntry.array());
933
+ }
858
934
  async getUserStakingPosition(userAddress) {
859
935
  const url = this.buildURL(`users/${userAddress}/staking-position`);
860
936
  return await this.httpRequest(url, StakingPosition);
package/dist/index.mjs CHANGED
@@ -28,6 +28,14 @@ __export(schemas_exports, {
28
28
  OrderBookEntry: () => OrderBookEntry,
29
29
  OrderBookNotification: () => OrderBookNotification,
30
30
  OrderBookNotificationMeta: () => OrderBookNotificationMeta,
31
+ OrderHistoryEntry: () => OrderHistoryEntry,
32
+ OrderHistoryEntryNotification: () => OrderHistoryEntryNotification,
33
+ OrderHistoryOrderType: () => OrderHistoryOrderType,
34
+ OrderHistoryOrderTypeSchema: () => OrderHistoryOrderTypeSchema,
35
+ OrderHistoryStatus: () => OrderHistoryStatus,
36
+ OrderHistoryStatusSchema: () => OrderHistoryStatusSchema,
37
+ OrderHistoryUIDirection: () => OrderHistoryUIDirection,
38
+ OrderHistoryUIDirectionSchema: () => OrderHistoryUIDirectionSchema,
31
39
  PaginationMeta: () => PaginationMeta,
32
40
  Pool: () => Pool,
33
41
  PoolPriceCandle: () => PoolPriceCandle,
@@ -96,7 +104,8 @@ var NotificationEntity = {
96
104
  LENDING_POSITION: "lending_position",
97
105
  STAKING_POSITION: "staking_position",
98
106
  FUSION_LIMIT_ORDER: "fusion_limit_order",
99
- TRADE_HISTORY_ENTRY: "trade_history_entry"
107
+ TRADE_HISTORY_ENTRY: "trade_history_entry",
108
+ ORDER_HISTORY_ENTRY: "order_history_entry"
100
109
  };
101
110
  var NotificationAction = {
102
111
  CREATE: "create",
@@ -140,6 +149,27 @@ var TradeHistoryUIDirection = {
140
149
  OPEN_SHORT: "open_short",
141
150
  CLOSE_SHORT: "close_short"
142
151
  };
152
+ var OrderHistoryOrderType = {
153
+ MARKET: "market",
154
+ LIMIT: "limit",
155
+ TAKE_PROFIT_MARKET: "take_profit_market",
156
+ STOP_LOSS_MARKET: "stop_loss_market",
157
+ LIQUIDATION_MARKET: "liquidation_market"
158
+ };
159
+ var OrderHistoryStatus = {
160
+ OPEN: "open",
161
+ PARTIALLY_FILLED: "partially_filled",
162
+ FILLED: "filled",
163
+ CANCELLED: "cancelled",
164
+ CLAIMED: "claimed",
165
+ REJECTED: "rejected"
166
+ };
167
+ var OrderHistoryUIDirection = {
168
+ BUY: "buy",
169
+ SELL: "sell",
170
+ LONG: "long",
171
+ SHORT: "short"
172
+ };
143
173
  var StakingPositionHistoryActionType = {
144
174
  STAKE: "stake",
145
175
  UNSTAKE: "unstake",
@@ -158,7 +188,8 @@ var WalletSubscriptionTopic = {
158
188
  LENDING_POSITIONS: "lending_positions",
159
189
  FUSION_LIMIT_ORDERS: "fusion_limit_orders",
160
190
  STAKING_POSITION: "staking_position",
161
- TRADE_HISTORY: "trade_history"
191
+ TRADE_HISTORY: "trade_history",
192
+ ORDER_HISTORY: "order_history"
162
193
  };
163
194
  var NotificationEntitySchema = z.enum([NotificationEntity.POOL_SWAP, ...Object.values(NotificationEntity)]);
164
195
  var NotificationActionSchema = z.enum([NotificationAction.CREATE, ...Object.values(NotificationAction)]);
@@ -174,6 +205,15 @@ var TradeHistoryUIDirectionSchema = z.enum([
174
205
  TradeHistoryUIDirection.BUY,
175
206
  ...Object.values(TradeHistoryUIDirection)
176
207
  ]);
208
+ var OrderHistoryOrderTypeSchema = z.enum([
209
+ OrderHistoryOrderType.MARKET,
210
+ ...Object.values(OrderHistoryOrderType)
211
+ ]);
212
+ var OrderHistoryStatusSchema = z.enum([OrderHistoryStatus.OPEN, ...Object.values(OrderHistoryStatus)]);
213
+ var OrderHistoryUIDirectionSchema = z.enum([
214
+ OrderHistoryUIDirection.BUY,
215
+ ...Object.values(OrderHistoryUIDirection)
216
+ ]);
177
217
  var StakingPositionHistoryActionTypeSchema = z.enum([
178
218
  StakingPositionHistoryActionType.STAKE,
179
219
  ...Object.values(StakingPositionHistoryActionType)
@@ -210,13 +250,16 @@ var Market = z.object({
210
250
  liquidationThreshold: z.number(),
211
251
  oraclePriceDeviationThreshold: z.number(),
212
252
  limitOrderExecutionFee: z.number(),
253
+ maxSpotPositionSizeA: amountWithUsd,
254
+ maxSpotPositionSizeB: amountWithUsd,
213
255
  borrowedFundsA: amountWithUsd,
214
256
  borrowedFundsB: amountWithUsd,
215
257
  availableBorrowA: amountWithUsd,
216
258
  availableBorrowB: amountWithUsd,
217
259
  borrowLimitA: amountWithUsd,
218
260
  borrowLimitB: amountWithUsd,
219
- disabled: z.boolean()
261
+ disabled: z.boolean(),
262
+ createdAt: z.coerce.date()
220
263
  });
221
264
  var TokenOraclePrice = z.object({
222
265
  mint: z.string(),
@@ -319,22 +362,9 @@ var TunaPosition = z.object({
319
362
  liquidity: z.coerce.bigint(),
320
363
  tickLowerIndex: z.number(),
321
364
  tickUpperIndex: z.number(),
322
- /**
323
- * @deprecated Use entrySqrtPrice
324
- */
325
- tickEntryIndex: z.number(),
326
- /**
327
- * @deprecated Use lowerLimitOrderSqrtPrice
328
- */
329
- tickStopLossIndex: z.number(),
330
- /**
331
- * @deprecated Use upperLimitOrderSqrtPrice
332
- */
333
- tickTakeProfitIndex: z.number(),
334
365
  entrySqrtPrice: z.coerce.bigint(),
335
366
  lowerLimitOrderSqrtPrice: z.coerce.bigint(),
336
367
  upperLimitOrderSqrtPrice: z.coerce.bigint(),
337
- swapToTokenOnLimitOrder: z.number(),
338
368
  flags: z.number(),
339
369
  pool: z.string(),
340
370
  poolSqrtPrice: z.coerce.bigint(),
@@ -459,6 +489,29 @@ var TradeHistoryEntry = z.object({
459
489
  slot: z.coerce.bigint(),
460
490
  ts: z.coerce.date()
461
491
  });
492
+ var OrderHistoryEntry = z.object({
493
+ // Internal entry ID
494
+ id: z.string(),
495
+ pool: z.string(),
496
+ authority: z.string(),
497
+ orderType: OrderHistoryOrderTypeSchema,
498
+ isReduceOnly: z.nullable(z.boolean()),
499
+ uiTakeProfitPrice: z.nullable(z.number()),
500
+ uiStopLossPrice: z.nullable(z.number()),
501
+ aToB: z.boolean(),
502
+ uiDirection: OrderHistoryUIDirectionSchema,
503
+ uiPrice: z.nullable(z.number()),
504
+ uiExecutionPrice: z.nullable(z.number()),
505
+ status: OrderHistoryStatusSchema,
506
+ baseToken: amountWithUsd,
507
+ quoteToken: amountWithUsd,
508
+ baseTokenConsumedAmount: z.nullable(z.coerce.bigint()),
509
+ quoteTokenFilledAmount: z.nullable(z.coerce.bigint()),
510
+ txSignature: z.nullable(z.string()),
511
+ positionAddress: z.nullable(z.string()),
512
+ slot: z.coerce.bigint(),
513
+ ts: z.coerce.date()
514
+ });
462
515
  var StakingTreasury = z.object({
463
516
  address: z.string(),
464
517
  stakedTokenMint: z.string(),
@@ -578,6 +631,7 @@ var TunaSpotPositionNotification = createNotificationSchema(TunaSpotPosition);
578
631
  var LendingPositionNotification = createNotificationSchema(LendingPosition);
579
632
  var LimitOrderNotification = createNotificationSchema(LimitOrder);
580
633
  var TradeHistoryEntryNotification = createNotificationSchema(TradeHistoryEntry);
634
+ var OrderHistoryEntryNotification = createNotificationSchema(OrderHistoryEntry);
581
635
  var StakingPositionNotification = createNotificationSchema(StakingPosition);
582
636
 
583
637
  // src/client/client.ts
@@ -820,6 +874,28 @@ var TunaApiClient = class {
820
874
  const url = this.appendUrlSearchParams(this.buildURL(`users/${userAddress}/trade-history`), query);
821
875
  return await this.httpRequest(url, TradeHistoryEntry.array());
822
876
  }
877
+ async getUserOrderHistory(userAddress, options) {
878
+ let query = {};
879
+ if (options) {
880
+ if (options.pool?.length) {
881
+ query.pool = options.pool.join(",");
882
+ }
883
+ if (options.orderType?.length) {
884
+ query.order_type = options.orderType.join(",");
885
+ }
886
+ if (options.limit) {
887
+ query.limit = options.limit;
888
+ }
889
+ if (options.cursor) {
890
+ query.cursor = options.cursor;
891
+ }
892
+ if (options.desc !== void 0) {
893
+ query.desc = options.desc;
894
+ }
895
+ }
896
+ const url = this.appendUrlSearchParams(this.buildURL(`users/${userAddress}/order-history`), query);
897
+ return await this.httpRequest(url, OrderHistoryEntry.array());
898
+ }
823
899
  async getUserStakingPosition(userAddress) {
824
900
  const url = this.buildURL(`users/${userAddress}/staking-position`);
825
901
  return await this.httpRequest(url, StakingPosition);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crypticdot/defituna-api",
3
- "version": "1.3.8",
3
+ "version": "1.4.0",
4
4
  "private": false,
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",