@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.js CHANGED
@@ -60,6 +60,14 @@ __export(schemas_exports, {
60
60
  LimitOrderQuoteByOutput: () => LimitOrderQuoteByOutput,
61
61
  LimitOrderState: () => LimitOrderState,
62
62
  LimitOrderStateSchema: () => LimitOrderStateSchema,
63
+ LpPositionAutoCompound: () => LpPositionAutoCompound,
64
+ LpPositionAutoCompoundSchema: () => LpPositionAutoCompoundSchema,
65
+ LpPositionLimitOrderSwap: () => LpPositionLimitOrderSwap,
66
+ LpPositionLimitOrderSwapSchema: () => LpPositionLimitOrderSwapSchema,
67
+ LpPositionRebalance: () => LpPositionRebalance,
68
+ LpPositionRebalanceSchema: () => LpPositionRebalanceSchema,
69
+ LpPositionsActionType: () => LpPositionsActionType,
70
+ LpPositionsActionTypeSchema: () => LpPositionsActionTypeSchema,
63
71
  Market: () => Market,
64
72
  Mint: () => Mint,
65
73
  NotificationAction: () => NotificationAction,
@@ -112,6 +120,21 @@ __export(schemas_exports, {
112
120
  TradeHistoryEntryNotification: () => TradeHistoryEntryNotification,
113
121
  TradeHistoryUIDirection: () => TradeHistoryUIDirection,
114
122
  TradeHistoryUIDirectionSchema: () => TradeHistoryUIDirectionSchema,
123
+ TunaLpPosition: () => TunaLpPosition,
124
+ TunaLpPositionAction: () => TunaLpPositionAction,
125
+ TunaLpPositionActionClose: () => TunaLpPositionActionClose,
126
+ TunaLpPositionActionCollectAndCompoundFees: () => TunaLpPositionActionCollectAndCompoundFees,
127
+ TunaLpPositionActionCollectFees: () => TunaLpPositionActionCollectFees,
128
+ TunaLpPositionActionDecreaseLiquidity: () => TunaLpPositionActionDecreaseLiquidity,
129
+ TunaLpPositionActionIncreaseLiquidity: () => TunaLpPositionActionIncreaseLiquidity,
130
+ TunaLpPositionActionLiquidate: () => TunaLpPositionActionLiquidate,
131
+ TunaLpPositionActionOpen: () => TunaLpPositionActionOpen,
132
+ TunaLpPositionActionParametersUpdate: () => TunaLpPositionActionParametersUpdate,
133
+ TunaLpPositionActionRepayDebt: () => TunaLpPositionActionRepayDebt,
134
+ TunaLpPositionParameters: () => TunaLpPositionParameters,
135
+ TunaLpPositionTokenPrices: () => TunaLpPositionTokenPrices,
136
+ TunaLpPositionTransfer: () => TunaLpPositionTransfer,
137
+ TunaLpPositionValue: () => TunaLpPositionValue,
115
138
  TunaPosition: () => TunaPosition,
116
139
  TunaPositionNotification: () => TunaPositionNotification,
117
140
  TunaPositionState: () => TunaPositionState,
@@ -239,6 +262,36 @@ var WalletSubscriptionTopic = {
239
262
  TRADE_HISTORY: "trade_history",
240
263
  ORDER_HISTORY: "order_history"
241
264
  };
265
+ var LpPositionLimitOrderSwap = {
266
+ NO_SWAP: "no_swap",
267
+ SWAP_TO_TOKEN_A: "swap_to_token_a",
268
+ SWAP_TO_TOKEN_B: "swap_to_token_b"
269
+ };
270
+ var LpPositionAutoCompound = {
271
+ NO_AUTO_COMPOUND: "no_auto_compound",
272
+ AUTO_COMPOUND: "auto_compound",
273
+ AUTO_COMPOUND_WITH_LEVERAGE: "auto_compound_with_leverage"
274
+ };
275
+ var LpPositionRebalance = {
276
+ NO_REBALANCE: "no_rebalance",
277
+ AUTO_REBALANCE: "auto_rebalance"
278
+ };
279
+ var LpPositionsActionType = {
280
+ OPEN_POSITION: "open_position",
281
+ CLOSE_POSITION: "close_position",
282
+ INCREASE_LIQUIDITY: "increase_liquidity",
283
+ DECREASE_LIQUIDITY: "decrease_liquidity",
284
+ REPAY_DEBT: "repay_debt",
285
+ LIQUIDATE: "liquidate",
286
+ EXECUTE_LIMIT_ORDER: "execute_limit_order",
287
+ COLLECT_FEES: "collect_fees",
288
+ COLLECT_REWARDS: "collect_rewards",
289
+ COLLECT_AND_COMPOUND_FEES: "collect_and_compound_fees",
290
+ REBALANCE_POSITION: "rebalance_position",
291
+ SET_LIMIT_ORDERS: "set_limit_orders",
292
+ SET_FLAGS: "set_flags",
293
+ SET_REBALANCE_THRESHOLD: "set_rebalance_threshold"
294
+ };
242
295
  var NotificationEntitySchema = import_zod.z.enum([NotificationEntity.POOL_SWAP, ...Object.values(NotificationEntity)]);
243
296
  var NotificationActionSchema = import_zod.z.enum([NotificationAction.CREATE, ...Object.values(NotificationAction)]);
244
297
  var PoolProviderSchema = import_zod.z.enum([PoolProvider.ORCA, ...Object.values(PoolProvider)]);
@@ -274,6 +327,10 @@ var WalletSubscriptionTopicSchema = import_zod.z.enum([
274
327
  WalletSubscriptionTopic.TUNA_POSITIONS,
275
328
  ...Object.values(WalletSubscriptionTopic)
276
329
  ]);
330
+ var LpPositionLimitOrderSwapSchema = import_zod.z.enum(Object.values(LpPositionLimitOrderSwap));
331
+ var LpPositionAutoCompoundSchema = import_zod.z.enum(Object.values(LpPositionAutoCompound));
332
+ var LpPositionRebalanceSchema = import_zod.z.enum(Object.values(LpPositionRebalance));
333
+ var LpPositionsActionTypeSchema = import_zod.z.enum(Object.values(LpPositionsActionType));
277
334
  var PaginationMeta = import_zod.z.object({
278
335
  total: import_zod.z.number()
279
336
  });
@@ -440,6 +497,152 @@ var TunaPosition = import_zod.z.object({
440
497
  updatedAtSlot: import_zod.z.coerce.bigint(),
441
498
  closedAt: import_zod.z.nullable(import_zod.z.coerce.date())
442
499
  });
500
+ var TunaLpPosition = import_zod.z.object({
501
+ positionAddress: import_zod.z.string(),
502
+ authority: import_zod.z.string(),
503
+ pool: import_zod.z.string(),
504
+ state: TunaPositionStateSchema,
505
+ lowerPrice: import_zod.z.number(),
506
+ upperPrice: import_zod.z.number(),
507
+ lowerLimitOrder: import_zod.z.number().nullable(),
508
+ upperLimitOrder: import_zod.z.number().nullable(),
509
+ marketMaker: PoolProviderSchema,
510
+ openedAt: import_zod.z.coerce.date(),
511
+ closedAt: import_zod.z.coerce.date().nullable(),
512
+ totalValueUsd: import_zod.z.number(),
513
+ leverage: import_zod.z.number(),
514
+ initialLeverage: import_zod.z.number(),
515
+ totalDepositUsd: import_zod.z.number(),
516
+ totalWithdrawnUsd: import_zod.z.number(),
517
+ feesSumUsd: import_zod.z.number(),
518
+ closedPnlSumUsd: import_zod.z.number(),
519
+ entryPrice: import_zod.z.number(),
520
+ exitPrice: import_zod.z.number().nullable()
521
+ });
522
+ var TunaLpPositionParameters = import_zod.z.object({
523
+ lowerPrice: import_zod.z.number(),
524
+ upperPrice: import_zod.z.number(),
525
+ lowerLimitOrder: import_zod.z.number().nullable(),
526
+ upperLimitOrder: import_zod.z.number().nullable(),
527
+ lowerLimitOrderSwap: LpPositionLimitOrderSwapSchema,
528
+ upperLimitOrderSwap: LpPositionLimitOrderSwapSchema,
529
+ autoCompound: LpPositionAutoCompoundSchema,
530
+ rebalance: LpPositionRebalanceSchema,
531
+ rebalanceThresholdTicks: import_zod.z.number()
532
+ });
533
+ var TunaLpPositionValue = import_zod.z.object({
534
+ totalValueA: import_zod.z.number(),
535
+ totalValueB: import_zod.z.number(),
536
+ totalValueUsd: import_zod.z.number(),
537
+ loanFundsA: import_zod.z.number(),
538
+ loanFundsB: import_zod.z.number(),
539
+ loanFundsUsd: import_zod.z.number(),
540
+ leverage: import_zod.z.number()
541
+ });
542
+ var TunaLpPositionTransfer = import_zod.z.object({
543
+ amountA: import_zod.z.number(),
544
+ amountB: import_zod.z.number(),
545
+ amountUsd: import_zod.z.number()
546
+ });
547
+ var TunaLpPositionTokenPrices = import_zod.z.object({
548
+ tokenPriceA: import_zod.z.number(),
549
+ tokenPriceB: import_zod.z.number()
550
+ });
551
+ var TunaLpPositionActionOpen = import_zod.z.object({
552
+ parameters: TunaLpPositionParameters
553
+ });
554
+ var TunaLpPositionActionClose = import_zod.z.object({
555
+ toOwner: TunaLpPositionTransfer.nullable(),
556
+ prices: TunaLpPositionTokenPrices.nullable()
557
+ });
558
+ var TunaLpPositionActionIncreaseLiquidity = import_zod.z.object({
559
+ fromPosition: TunaLpPositionValue.nullable(),
560
+ toPosition: TunaLpPositionValue,
561
+ fromOwner: TunaLpPositionTransfer,
562
+ fromLending: TunaLpPositionTransfer,
563
+ protocolFees: TunaLpPositionTransfer,
564
+ prices: TunaLpPositionTokenPrices
565
+ });
566
+ var TunaLpPositionActionDecreaseLiquidity = import_zod.z.object({
567
+ withdrawPercent: import_zod.z.number(),
568
+ closedPnlUsd: import_zod.z.number(),
569
+ fromPosition: TunaLpPositionValue,
570
+ toPosition: TunaLpPositionValue.nullable(),
571
+ toOwner: TunaLpPositionTransfer,
572
+ toLending: TunaLpPositionTransfer,
573
+ collectedFees: TunaLpPositionTransfer,
574
+ prices: TunaLpPositionTokenPrices
575
+ });
576
+ var TunaLpPositionActionLiquidate = import_zod.z.object({
577
+ withdrawPercent: import_zod.z.number(),
578
+ fromPosition: TunaLpPositionValue,
579
+ toLending: TunaLpPositionTransfer,
580
+ protocolFees: TunaLpPositionTransfer,
581
+ prices: TunaLpPositionTokenPrices
582
+ });
583
+ var TunaLpPositionActionRepayDebt = import_zod.z.object({
584
+ fromPosition: TunaLpPositionValue,
585
+ toPosition: TunaLpPositionValue,
586
+ fromOwner: TunaLpPositionTransfer,
587
+ toLending: TunaLpPositionTransfer,
588
+ prices: TunaLpPositionTokenPrices
589
+ });
590
+ var TunaLpPositionActionCollectFees = import_zod.z.object({
591
+ closedPnlUsd: import_zod.z.number(),
592
+ position: TunaLpPositionValue,
593
+ collectedFees: TunaLpPositionTransfer,
594
+ toOwner: TunaLpPositionTransfer,
595
+ prices: TunaLpPositionTokenPrices
596
+ });
597
+ var TunaLpPositionActionCollectAndCompoundFees = import_zod.z.object({
598
+ fromPosition: TunaLpPositionValue,
599
+ toPosition: TunaLpPositionValue,
600
+ collectedFees: TunaLpPositionTransfer,
601
+ fromLending: TunaLpPositionTransfer,
602
+ protocolFees: TunaLpPositionTransfer,
603
+ prices: TunaLpPositionTokenPrices
604
+ });
605
+ var TunaLpPositionActionParametersUpdate = import_zod.z.object({
606
+ fromParameters: TunaLpPositionParameters,
607
+ toParameters: TunaLpPositionParameters
608
+ });
609
+ var TunaLpPositionAction = import_zod.z.object({
610
+ action: LpPositionsActionTypeSchema,
611
+ txSignature: import_zod.z.string(),
612
+ txTimestamp: import_zod.z.coerce.date(),
613
+ data: import_zod.z.object({
614
+ /** defined for: IncreaseLiquidity, DecreaseLiquidity, Liquidate, ExecuteLimitOrder, RepayDebt, CollectAndCompoundFees */
615
+ fromPosition: TunaLpPositionValue.optional().nullable(),
616
+ /** defined for: IncreaseLiquidity, DecreaseLiquidity, Liquidate, ExecuteLimitOrder, RepayDebt, CollectAndCompoundFees */
617
+ toPosition: TunaLpPositionValue.optional().nullable(),
618
+ /** defined for: CollectFees */
619
+ position: TunaLpPositionValue.optional().nullable(),
620
+ /** defined for: IncreaseLiquidity, RepayDebt */
621
+ fromOwner: TunaLpPositionTransfer.optional(),
622
+ /** defined for: DecreaseLiquidity, CollectFees, ClosePosition; nullable for: ClosePosition */
623
+ toOwner: TunaLpPositionTransfer.optional().nullable(),
624
+ /** defined for: IncreaseLiquidity, CollectAndCompoundFees */
625
+ fromLending: TunaLpPositionTransfer.optional(),
626
+ /** defined for: DecreaseLiquidity, Liquidate, ExecuteLimitOrder, RepayDebt */
627
+ toLending: TunaLpPositionTransfer.optional(),
628
+ /** defined for: CollectFees, CollectAndCompoundFees */
629
+ collectedFees: TunaLpPositionTransfer.optional(),
630
+ /** defined for: IncreaseLiquidity, Liquidate, ExecuteLimitOrder, CollectAndCompoundFees */
631
+ protocolFees: TunaLpPositionTransfer.optional(),
632
+ /** defined for: IncreaseLiquidity, DecreaseLiquidity, Liquidate, ExecuteLimitOrder, RepayDebt, CollectFees, CollectAndCompoundFees, ClosePosition; nullable for: ClosePosition */
633
+ prices: TunaLpPositionTokenPrices.optional().nullable(),
634
+ /** defined for: OpenPosition */
635
+ parameters: TunaLpPositionParameters.optional(),
636
+ /** defined for: ParametersUpdate */
637
+ fromParameters: TunaLpPositionParameters.optional(),
638
+ /** defined for: ParametersUpdate */
639
+ toParameters: TunaLpPositionParameters.optional(),
640
+ /** defined for: DecreaseLiquidity */
641
+ withdrawPercent: import_zod.z.number().optional(),
642
+ /** defined for: DecreaseLiquidity, CollectFees */
643
+ closedPnlUsd: import_zod.z.number().optional()
644
+ })
645
+ });
443
646
  var TunaSpotPosition = import_zod.z.object({
444
647
  address: import_zod.z.string(),
445
648
  authority: import_zod.z.string(),
@@ -936,6 +1139,39 @@ var TunaApiClient = class {
936
1139
  const url = this.buildURL(`users/${userAddress}/tuna-positions/${tunaPositionAddress}`);
937
1140
  return await this.httpRequest(url, TunaPosition);
938
1141
  }
1142
+ async getUserLpPositions(userAddress, options) {
1143
+ const query = {};
1144
+ if (options) {
1145
+ if (options.filter) {
1146
+ query.filter = options.filter;
1147
+ }
1148
+ if (options.afterPosition) {
1149
+ query.after_position = options.afterPosition;
1150
+ }
1151
+ if (options.openedAt) {
1152
+ if (options.openedAt.from) {
1153
+ query.opened_at_min = options.openedAt.from.toISOString();
1154
+ }
1155
+ if (options.openedAt.to) {
1156
+ query.opened_at_max = options.openedAt.to.toISOString();
1157
+ }
1158
+ }
1159
+ if (options.closedAt) {
1160
+ if (options.closedAt.from) {
1161
+ query.closed_at_min = options.closedAt.from.toISOString();
1162
+ }
1163
+ if (options.closedAt.to) {
1164
+ query.closed_at_max = options.closedAt.to.toISOString();
1165
+ }
1166
+ }
1167
+ }
1168
+ const url = this.appendUrlSearchParams(this.buildURL(`users/${userAddress}/lp-positions`), query);
1169
+ return await this.httpRequest(url, TunaLpPosition.array());
1170
+ }
1171
+ async getUserLpPositionActions(userAddress, positionAddress) {
1172
+ const url = this.buildURL(`users/${userAddress}/lp-positions/${positionAddress}/actions`);
1173
+ return await this.httpRequest(url, TunaLpPositionAction.array());
1174
+ }
939
1175
  async getUserTunaSpotPositions(userAddress) {
940
1176
  const url = this.buildURL(`users/${userAddress}/spot-positions`);
941
1177
  return await this.httpRequest(url, TunaSpotPosition.array());
@@ -945,7 +1181,7 @@ var TunaApiClient = class {
945
1181
  return await this.httpRequest(url, TunaSpotPosition);
946
1182
  }
947
1183
  async getUserLimitOrders(userAddress, options) {
948
- let query = {};
1184
+ const query = {};
949
1185
  if (options) {
950
1186
  if (options.pool?.length) {
951
1187
  query.pool = options.pool.join(",");
@@ -977,7 +1213,7 @@ var TunaApiClient = class {
977
1213
  return await this.httpRequest(url, LimitOrder);
978
1214
  }
979
1215
  async getUserTradeHistory(userAddress, options) {
980
- let query = {};
1216
+ const query = {};
981
1217
  if (options) {
982
1218
  if (options.pool?.length) {
983
1219
  query.pool = options.pool.join(",");
@@ -1002,7 +1238,7 @@ var TunaApiClient = class {
1002
1238
  return await this.httpRequest(url, TradeHistoryEntry.array());
1003
1239
  }
1004
1240
  async getUserOrderHistory(userAddress, options) {
1005
- let query = {};
1241
+ const query = {};
1006
1242
  if (options) {
1007
1243
  if (options.pool?.length) {
1008
1244
  query.pool = options.pool.join(",");
@@ -1051,7 +1287,7 @@ var TunaApiClient = class {
1051
1287
  }
1052
1288
  async getLimitOrderQuoteByInput(args, config) {
1053
1289
  const { pool, amountIn, aToB, tickIndex } = args;
1054
- let query = {
1290
+ const query = {
1055
1291
  pool,
1056
1292
  amount_in: amountIn.toString(),
1057
1293
  a_to_b: aToB,
@@ -1064,7 +1300,7 @@ var TunaApiClient = class {
1064
1300
  }
1065
1301
  async getLimitOrderQuoteByOutput(args, config) {
1066
1302
  const { pool, amountOut, aToB, tickIndex } = args;
1067
- let query = {
1303
+ const query = {
1068
1304
  pool,
1069
1305
  amount_out: amountOut.toString(),
1070
1306
  a_to_b: aToB,
@@ -1077,7 +1313,7 @@ var TunaApiClient = class {
1077
1313
  }
1078
1314
  async getSwapQuoteByInput(args, config) {
1079
1315
  const { pool, amountIn, aToB, slippageToleranceBps } = args;
1080
- let query = {
1316
+ const query = {
1081
1317
  pool,
1082
1318
  amount_in: amountIn.toString(),
1083
1319
  a_to_b: aToB
@@ -1092,7 +1328,7 @@ var TunaApiClient = class {
1092
1328
  }
1093
1329
  async getSwapQuoteByOutput(args, config) {
1094
1330
  const { pool, amountOut, aToB, slippageToleranceBps } = args;
1095
- let query = {
1331
+ const query = {
1096
1332
  pool,
1097
1333
  amount_out: amountOut.toString(),
1098
1334
  a_to_b: aToB
@@ -1116,7 +1352,7 @@ var TunaApiClient = class {
1116
1352
  positionDebt,
1117
1353
  slippageTolerance
1118
1354
  } = args;
1119
- let query = {
1355
+ const query = {
1120
1356
  market,
1121
1357
  increase_amount: increaseAmount.toString(),
1122
1358
  collateral_token: collateralToken,
@@ -1148,7 +1384,7 @@ var TunaApiClient = class {
1148
1384
  positionDebt,
1149
1385
  slippageTolerance
1150
1386
  } = args;
1151
- let query = {
1387
+ const query = {
1152
1388
  market,
1153
1389
  decrease_amount: decreaseAmount.toString(),
1154
1390
  collateral_token: collateralToken,
@@ -1167,7 +1403,7 @@ var TunaApiClient = class {
1167
1403
  }
1168
1404
  async getCloseSpotPositionQuote(args, config) {
1169
1405
  const { market, decreasePercent, collateralToken, positionToken, positionAmount, positionDebt, slippageTolerance } = args;
1170
- let query = {
1406
+ const query = {
1171
1407
  market,
1172
1408
  decrease_percent: decreasePercent,
1173
1409
  collateral_token: collateralToken,