@crypticdot/defituna-api 1.9.0 → 1.10.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.mjs CHANGED
@@ -23,6 +23,14 @@ __export(schemas_exports, {
23
23
  LimitOrderQuoteByOutput: () => LimitOrderQuoteByOutput,
24
24
  LimitOrderState: () => LimitOrderState,
25
25
  LimitOrderStateSchema: () => LimitOrderStateSchema,
26
+ LpPositionAutoCompound: () => LpPositionAutoCompound,
27
+ LpPositionAutoCompoundSchema: () => LpPositionAutoCompoundSchema,
28
+ LpPositionLimitOrderSwap: () => LpPositionLimitOrderSwap,
29
+ LpPositionLimitOrderSwapSchema: () => LpPositionLimitOrderSwapSchema,
30
+ LpPositionRebalance: () => LpPositionRebalance,
31
+ LpPositionRebalanceSchema: () => LpPositionRebalanceSchema,
32
+ LpPositionsActionType: () => LpPositionsActionType,
33
+ LpPositionsActionTypeSchema: () => LpPositionsActionTypeSchema,
26
34
  Market: () => Market,
27
35
  Mint: () => Mint,
28
36
  NotificationAction: () => NotificationAction,
@@ -75,6 +83,21 @@ __export(schemas_exports, {
75
83
  TradeHistoryEntryNotification: () => TradeHistoryEntryNotification,
76
84
  TradeHistoryUIDirection: () => TradeHistoryUIDirection,
77
85
  TradeHistoryUIDirectionSchema: () => TradeHistoryUIDirectionSchema,
86
+ TunaLpPosition: () => TunaLpPosition,
87
+ TunaLpPositionAction: () => TunaLpPositionAction,
88
+ TunaLpPositionActionClose: () => TunaLpPositionActionClose,
89
+ TunaLpPositionActionCollectAndCompoundFees: () => TunaLpPositionActionCollectAndCompoundFees,
90
+ TunaLpPositionActionCollectFees: () => TunaLpPositionActionCollectFees,
91
+ TunaLpPositionActionDecreaseLiquidity: () => TunaLpPositionActionDecreaseLiquidity,
92
+ TunaLpPositionActionIncreaseLiquidity: () => TunaLpPositionActionIncreaseLiquidity,
93
+ TunaLpPositionActionLiquidate: () => TunaLpPositionActionLiquidate,
94
+ TunaLpPositionActionOpen: () => TunaLpPositionActionOpen,
95
+ TunaLpPositionActionParametersUpdate: () => TunaLpPositionActionParametersUpdate,
96
+ TunaLpPositionActionRepayDebt: () => TunaLpPositionActionRepayDebt,
97
+ TunaLpPositionParameters: () => TunaLpPositionParameters,
98
+ TunaLpPositionTokenPrices: () => TunaLpPositionTokenPrices,
99
+ TunaLpPositionTransfer: () => TunaLpPositionTransfer,
100
+ TunaLpPositionValue: () => TunaLpPositionValue,
78
101
  TunaPosition: () => TunaPosition,
79
102
  TunaPositionNotification: () => TunaPositionNotification,
80
103
  TunaPositionState: () => TunaPositionState,
@@ -202,6 +225,36 @@ var WalletSubscriptionTopic = {
202
225
  TRADE_HISTORY: "trade_history",
203
226
  ORDER_HISTORY: "order_history"
204
227
  };
228
+ var LpPositionLimitOrderSwap = {
229
+ NO_SWAP: "no_swap",
230
+ SWAP_TO_TOKEN_A: "swap_to_token_a",
231
+ SWAP_TO_TOKEN_B: "swap_to_token_b"
232
+ };
233
+ var LpPositionAutoCompound = {
234
+ NO_AUTO_COMPOUND: "no_auto_compound",
235
+ AUTO_COMPOUND: "auto_compound",
236
+ AUTO_COMPOUND_WITH_LEVERAGE: "auto_compound_with_leverage"
237
+ };
238
+ var LpPositionRebalance = {
239
+ NO_REBALANCE: "no_rebalance",
240
+ AUTO_REBALANCE: "auto_rebalance"
241
+ };
242
+ var LpPositionsActionType = {
243
+ OPEN_POSITION: "open_position",
244
+ CLOSE_POSITION: "close_position",
245
+ INCREASE_LIQUIDITY: "increase_liquidity",
246
+ DECREASE_LIQUIDITY: "decrease_liquidity",
247
+ REPAY_DEBT: "repay_debt",
248
+ LIQUIDATE: "liquidate",
249
+ EXECUTE_LIMIT_ORDER: "execute_limit_order",
250
+ COLLECT_FEES: "collect_fees",
251
+ COLLECT_REWARDS: "collect_rewards",
252
+ COLLECT_AND_COMPOUND_FEES: "collect_and_compound_fees",
253
+ REBALANCE_POSITION: "rebalance_position",
254
+ SET_LIMIT_ORDERS: "set_limit_orders",
255
+ SET_FLAGS: "set_flags",
256
+ SET_REBALANCE_THRESHOLD: "set_rebalance_threshold"
257
+ };
205
258
  var NotificationEntitySchema = z.enum([NotificationEntity.POOL_SWAP, ...Object.values(NotificationEntity)]);
206
259
  var NotificationActionSchema = z.enum([NotificationAction.CREATE, ...Object.values(NotificationAction)]);
207
260
  var PoolProviderSchema = z.enum([PoolProvider.ORCA, ...Object.values(PoolProvider)]);
@@ -237,6 +290,10 @@ var WalletSubscriptionTopicSchema = z.enum([
237
290
  WalletSubscriptionTopic.TUNA_POSITIONS,
238
291
  ...Object.values(WalletSubscriptionTopic)
239
292
  ]);
293
+ var LpPositionLimitOrderSwapSchema = z.enum(Object.values(LpPositionLimitOrderSwap));
294
+ var LpPositionAutoCompoundSchema = z.enum(Object.values(LpPositionAutoCompound));
295
+ var LpPositionRebalanceSchema = z.enum(Object.values(LpPositionRebalance));
296
+ var LpPositionsActionTypeSchema = z.enum(Object.values(LpPositionsActionType));
240
297
  var PaginationMeta = z.object({
241
298
  total: z.number()
242
299
  });
@@ -403,6 +460,152 @@ var TunaPosition = z.object({
403
460
  updatedAtSlot: z.coerce.bigint(),
404
461
  closedAt: z.nullable(z.coerce.date())
405
462
  });
463
+ var TunaLpPosition = z.object({
464
+ positionAddress: z.string(),
465
+ authority: z.string(),
466
+ pool: z.string(),
467
+ state: TunaPositionStateSchema,
468
+ lowerPrice: z.number(),
469
+ upperPrice: z.number(),
470
+ lowerLimitOrder: z.number().nullable(),
471
+ upperLimitOrder: z.number().nullable(),
472
+ marketMaker: PoolProviderSchema,
473
+ openedAt: z.coerce.date(),
474
+ closedAt: z.coerce.date().nullable(),
475
+ totalValueUsd: z.number(),
476
+ leverage: z.number(),
477
+ initialLeverage: z.number(),
478
+ totalDepositUsd: z.number(),
479
+ totalWithdrawnUsd: z.number(),
480
+ feesSumUsd: z.number(),
481
+ closedPnlSumUsd: z.number(),
482
+ entryPrice: z.number(),
483
+ exitPrice: z.number().nullable()
484
+ });
485
+ var TunaLpPositionParameters = z.object({
486
+ lowerPrice: z.number(),
487
+ upperPrice: z.number(),
488
+ lowerLimitOrder: z.number().nullable(),
489
+ upperLimitOrder: z.number().nullable(),
490
+ lowerLimitOrderSwap: LpPositionLimitOrderSwapSchema,
491
+ upperLimitOrderSwap: LpPositionLimitOrderSwapSchema,
492
+ autoCompound: LpPositionAutoCompoundSchema,
493
+ rebalance: LpPositionRebalanceSchema,
494
+ rebalanceThresholdTicks: z.number()
495
+ });
496
+ var TunaLpPositionValue = z.object({
497
+ totalValueA: z.number(),
498
+ totalValueB: z.number(),
499
+ totalValueUsd: z.number(),
500
+ loanFundsA: z.number(),
501
+ loanFundsB: z.number(),
502
+ loanFundsUsd: z.number(),
503
+ leverage: z.number()
504
+ });
505
+ var TunaLpPositionTransfer = z.object({
506
+ amountA: z.number(),
507
+ amountB: z.number(),
508
+ amountUsd: z.number()
509
+ });
510
+ var TunaLpPositionTokenPrices = z.object({
511
+ tokenPriceA: z.number(),
512
+ tokenPriceB: z.number()
513
+ });
514
+ var TunaLpPositionActionOpen = z.object({
515
+ parameters: TunaLpPositionParameters
516
+ });
517
+ var TunaLpPositionActionClose = z.object({
518
+ toOwner: TunaLpPositionTransfer.nullable(),
519
+ prices: TunaLpPositionTokenPrices.nullable()
520
+ });
521
+ var TunaLpPositionActionIncreaseLiquidity = z.object({
522
+ fromPosition: TunaLpPositionValue.nullable(),
523
+ toPosition: TunaLpPositionValue,
524
+ fromOwner: TunaLpPositionTransfer,
525
+ fromLending: TunaLpPositionTransfer,
526
+ protocolFees: TunaLpPositionTransfer,
527
+ prices: TunaLpPositionTokenPrices
528
+ });
529
+ var TunaLpPositionActionDecreaseLiquidity = z.object({
530
+ withdrawPercent: z.number(),
531
+ closedPnlUsd: z.number(),
532
+ fromPosition: TunaLpPositionValue,
533
+ toPosition: TunaLpPositionValue.nullable(),
534
+ toOwner: TunaLpPositionTransfer,
535
+ toLending: TunaLpPositionTransfer,
536
+ collectedFees: TunaLpPositionTransfer,
537
+ prices: TunaLpPositionTokenPrices
538
+ });
539
+ var TunaLpPositionActionLiquidate = z.object({
540
+ withdrawPercent: z.number(),
541
+ fromPosition: TunaLpPositionValue,
542
+ toLending: TunaLpPositionTransfer,
543
+ protocolFees: TunaLpPositionTransfer,
544
+ prices: TunaLpPositionTokenPrices
545
+ });
546
+ var TunaLpPositionActionRepayDebt = z.object({
547
+ fromPosition: TunaLpPositionValue,
548
+ toPosition: TunaLpPositionValue,
549
+ fromOwner: TunaLpPositionTransfer,
550
+ toLending: TunaLpPositionTransfer,
551
+ prices: TunaLpPositionTokenPrices
552
+ });
553
+ var TunaLpPositionActionCollectFees = z.object({
554
+ closedPnlUsd: z.number(),
555
+ position: TunaLpPositionValue,
556
+ collectedFees: TunaLpPositionTransfer,
557
+ toOwner: TunaLpPositionTransfer,
558
+ prices: TunaLpPositionTokenPrices
559
+ });
560
+ var TunaLpPositionActionCollectAndCompoundFees = z.object({
561
+ fromPosition: TunaLpPositionValue,
562
+ toPosition: TunaLpPositionValue,
563
+ collectedFees: TunaLpPositionTransfer,
564
+ fromLending: TunaLpPositionTransfer,
565
+ protocolFees: TunaLpPositionTransfer,
566
+ prices: TunaLpPositionTokenPrices
567
+ });
568
+ var TunaLpPositionActionParametersUpdate = z.object({
569
+ fromParameters: TunaLpPositionParameters,
570
+ toParameters: TunaLpPositionParameters
571
+ });
572
+ var TunaLpPositionAction = z.object({
573
+ action: LpPositionsActionTypeSchema,
574
+ txSignature: z.string(),
575
+ txTimestamp: z.coerce.date(),
576
+ data: z.object({
577
+ /** defined for: IncreaseLiquidity, DecreaseLiquidity, Liquidate, ExecuteLimitOrder, RepayDebt, CollectAndCompoundFees */
578
+ fromPosition: TunaLpPositionValue.optional().nullable(),
579
+ /** defined for: IncreaseLiquidity, DecreaseLiquidity, Liquidate, ExecuteLimitOrder, RepayDebt, CollectAndCompoundFees */
580
+ toPosition: TunaLpPositionValue.optional().nullable(),
581
+ /** defined for: CollectFees */
582
+ position: TunaLpPositionValue.optional().nullable(),
583
+ /** defined for: IncreaseLiquidity, RepayDebt */
584
+ fromOwner: TunaLpPositionTransfer.optional(),
585
+ /** defined for: DecreaseLiquidity, CollectFees, ClosePosition; nullable for: ClosePosition */
586
+ toOwner: TunaLpPositionTransfer.optional().nullable(),
587
+ /** defined for: IncreaseLiquidity, CollectAndCompoundFees */
588
+ fromLending: TunaLpPositionTransfer.optional(),
589
+ /** defined for: DecreaseLiquidity, Liquidate, ExecuteLimitOrder, RepayDebt */
590
+ toLending: TunaLpPositionTransfer.optional(),
591
+ /** defined for: CollectFees, CollectAndCompoundFees */
592
+ collectedFees: TunaLpPositionTransfer.optional(),
593
+ /** defined for: IncreaseLiquidity, Liquidate, ExecuteLimitOrder, CollectAndCompoundFees */
594
+ protocolFees: TunaLpPositionTransfer.optional(),
595
+ /** defined for: IncreaseLiquidity, DecreaseLiquidity, Liquidate, ExecuteLimitOrder, RepayDebt, CollectFees, CollectAndCompoundFees, ClosePosition; nullable for: ClosePosition */
596
+ prices: TunaLpPositionTokenPrices.optional().nullable(),
597
+ /** defined for: OpenPosition */
598
+ parameters: TunaLpPositionParameters.optional(),
599
+ /** defined for: ParametersUpdate */
600
+ fromParameters: TunaLpPositionParameters.optional(),
601
+ /** defined for: ParametersUpdate */
602
+ toParameters: TunaLpPositionParameters.optional(),
603
+ /** defined for: DecreaseLiquidity */
604
+ withdrawPercent: z.number().optional(),
605
+ /** defined for: DecreaseLiquidity, CollectFees */
606
+ closedPnlUsd: z.number().optional()
607
+ })
608
+ });
406
609
  var TunaSpotPosition = z.object({
407
610
  address: z.string(),
408
611
  authority: z.string(),
@@ -899,6 +1102,39 @@ var TunaApiClient = class {
899
1102
  const url = this.buildURL(`users/${userAddress}/tuna-positions/${tunaPositionAddress}`);
900
1103
  return await this.httpRequest(url, TunaPosition);
901
1104
  }
1105
+ async getUserLpPositions(userAddress, options) {
1106
+ const query = {};
1107
+ if (options) {
1108
+ if (options.filter) {
1109
+ query.filter = options.filter;
1110
+ }
1111
+ if (options.afterPosition) {
1112
+ query.after_position = options.afterPosition;
1113
+ }
1114
+ if (options.openedAt) {
1115
+ if (options.openedAt.from) {
1116
+ query.opened_at_min = options.openedAt.from.toISOString();
1117
+ }
1118
+ if (options.openedAt.to) {
1119
+ query.opened_at_max = options.openedAt.to.toISOString();
1120
+ }
1121
+ }
1122
+ if (options.closedAt) {
1123
+ if (options.closedAt.from) {
1124
+ query.closed_at_min = options.closedAt.from.toISOString();
1125
+ }
1126
+ if (options.closedAt.to) {
1127
+ query.closed_at_max = options.closedAt.to.toISOString();
1128
+ }
1129
+ }
1130
+ }
1131
+ const url = this.appendUrlSearchParams(this.buildURL(`users/${userAddress}/lp-positions`), query);
1132
+ return await this.httpRequest(url, TunaLpPosition.array());
1133
+ }
1134
+ async getUserLpPositionActions(userAddress, positionAddress) {
1135
+ const url = this.buildURL(`users/${userAddress}/lp-positions/${positionAddress}/actions`);
1136
+ return await this.httpRequest(url, TunaLpPositionAction.array());
1137
+ }
902
1138
  async getUserTunaSpotPositions(userAddress) {
903
1139
  const url = this.buildURL(`users/${userAddress}/spot-positions`);
904
1140
  return await this.httpRequest(url, TunaSpotPosition.array());
@@ -908,7 +1144,7 @@ var TunaApiClient = class {
908
1144
  return await this.httpRequest(url, TunaSpotPosition);
909
1145
  }
910
1146
  async getUserLimitOrders(userAddress, options) {
911
- let query = {};
1147
+ const query = {};
912
1148
  if (options) {
913
1149
  if (options.pool?.length) {
914
1150
  query.pool = options.pool.join(",");
@@ -940,7 +1176,7 @@ var TunaApiClient = class {
940
1176
  return await this.httpRequest(url, LimitOrder);
941
1177
  }
942
1178
  async getUserTradeHistory(userAddress, options) {
943
- let query = {};
1179
+ const query = {};
944
1180
  if (options) {
945
1181
  if (options.pool?.length) {
946
1182
  query.pool = options.pool.join(",");
@@ -965,7 +1201,7 @@ var TunaApiClient = class {
965
1201
  return await this.httpRequest(url, TradeHistoryEntry.array());
966
1202
  }
967
1203
  async getUserOrderHistory(userAddress, options) {
968
- let query = {};
1204
+ const query = {};
969
1205
  if (options) {
970
1206
  if (options.pool?.length) {
971
1207
  query.pool = options.pool.join(",");
@@ -1014,7 +1250,7 @@ var TunaApiClient = class {
1014
1250
  }
1015
1251
  async getLimitOrderQuoteByInput(args, config) {
1016
1252
  const { pool, amountIn, aToB, tickIndex } = args;
1017
- let query = {
1253
+ const query = {
1018
1254
  pool,
1019
1255
  amount_in: amountIn.toString(),
1020
1256
  a_to_b: aToB,
@@ -1027,7 +1263,7 @@ var TunaApiClient = class {
1027
1263
  }
1028
1264
  async getLimitOrderQuoteByOutput(args, config) {
1029
1265
  const { pool, amountOut, aToB, tickIndex } = args;
1030
- let query = {
1266
+ const query = {
1031
1267
  pool,
1032
1268
  amount_out: amountOut.toString(),
1033
1269
  a_to_b: aToB,
@@ -1040,7 +1276,7 @@ var TunaApiClient = class {
1040
1276
  }
1041
1277
  async getSwapQuoteByInput(args, config) {
1042
1278
  const { pool, amountIn, aToB, slippageToleranceBps } = args;
1043
- let query = {
1279
+ const query = {
1044
1280
  pool,
1045
1281
  amount_in: amountIn.toString(),
1046
1282
  a_to_b: aToB
@@ -1055,7 +1291,7 @@ var TunaApiClient = class {
1055
1291
  }
1056
1292
  async getSwapQuoteByOutput(args, config) {
1057
1293
  const { pool, amountOut, aToB, slippageToleranceBps } = args;
1058
- let query = {
1294
+ const query = {
1059
1295
  pool,
1060
1296
  amount_out: amountOut.toString(),
1061
1297
  a_to_b: aToB
@@ -1079,7 +1315,7 @@ var TunaApiClient = class {
1079
1315
  positionDebt,
1080
1316
  slippageTolerance
1081
1317
  } = args;
1082
- let query = {
1318
+ const query = {
1083
1319
  market,
1084
1320
  increase_amount: increaseAmount.toString(),
1085
1321
  collateral_token: collateralToken,
@@ -1111,7 +1347,7 @@ var TunaApiClient = class {
1111
1347
  positionDebt,
1112
1348
  slippageTolerance
1113
1349
  } = args;
1114
- let query = {
1350
+ const query = {
1115
1351
  market,
1116
1352
  decrease_amount: decreaseAmount.toString(),
1117
1353
  collateral_token: collateralToken,
@@ -1130,7 +1366,7 @@ var TunaApiClient = class {
1130
1366
  }
1131
1367
  async getCloseSpotPositionQuote(args, config) {
1132
1368
  const { market, decreasePercent, collateralToken, positionToken, positionAmount, positionDebt, slippageTolerance } = args;
1133
- let query = {
1369
+ const query = {
1134
1370
  market,
1135
1371
  decrease_percent: decreasePercent,
1136
1372
  collateral_token: collateralToken,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crypticdot/defituna-api",
3
- "version": "1.9.0",
3
+ "version": "1.10.0",
4
4
  "private": false,
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -15,7 +15,7 @@
15
15
  ],
16
16
  "devDependencies": {
17
17
  "@crypticdot/defituna-client": "^3.0.2",
18
- "@crypticdot/eslint-config": "^1.0.2",
18
+ "@crypticdot/eslint-config": "^1.0.3",
19
19
  "@crypticdot/fusionamm-client": "^1.0.62",
20
20
  "@crypticdot/fusionamm-core": "^1.0.62",
21
21
  "@crypticdot/prettier-config": "^1.0.0",