@typus/typus-perp-sdk 1.0.61-ut-upgrade-b → 1.0.61-ut-upgrade-c

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.
@@ -13,6 +13,11 @@ export interface AddTradingSymbolArgs {
13
13
  basicFundingRate: bigint | TransactionArgument;
14
14
  fundingIntervalTsMs: bigint | TransactionArgument;
15
15
  expMultiplier: bigint | TransactionArgument;
16
+ maxBuyOpenInterest: bigint | TransactionArgument;
17
+ maxSellOpenInterest: bigint | TransactionArgument;
18
+ maintenanceMarginRateBp: bigint | TransactionArgument;
19
+ optionMaintenanceMarginRateBp: bigint | TransactionArgument;
20
+ optionTradingFeeConfig: Array<bigint | TransactionArgument> | TransactionArgument;
16
21
  clock: TransactionObjectInput;
17
22
  }
18
23
  export declare function addTradingSymbol(tx: Transaction, typeArg: string, args: AddTradingSymbolArgs, published_at?: string): import("@mysten/sui/transactions").TransactionResult;
@@ -238,6 +243,14 @@ export interface GetActiveOrdersByOrderTagAndCtokenArgs {
238
243
  orderTypeTag: number | TransactionArgument;
239
244
  }
240
245
  export declare function getActiveOrdersByOrderTagAndCtoken(tx: Transaction, typeArgs: [string, string], args: GetActiveOrdersByOrderTagAndCtokenArgs, published_at?: string): import("@mysten/sui/transactions").TransactionResult;
246
+ export interface GetAllPositionsArgs {
247
+ version: TransactionObjectInput;
248
+ registry: TransactionObjectInput;
249
+ marketIndex: bigint | TransactionArgument;
250
+ slice: bigint | TransactionArgument;
251
+ page: bigint | TransactionArgument;
252
+ }
253
+ export declare function getAllPositions(tx: Transaction, typeArg: string, args: GetAllPositionsArgs, published_at?: string): import("@mysten/sui/transactions").TransactionResult;
241
254
  export interface GetEstimatedLiquidationPriceAndPnlArgs {
242
255
  version: TransactionObjectInput;
243
256
  registry: TransactionObjectInput;
@@ -395,6 +408,12 @@ export interface ManagerCloseOptionPositionV2Args {
395
408
  positionId: bigint | TransactionArgument;
396
409
  }
397
410
  export declare function managerCloseOptionPositionV2(tx: Transaction, typeArgs: [string, string, string], args: ManagerCloseOptionPositionV2Args, published_at?: string): import("@mysten/sui/transactions").TransactionResult;
411
+ export interface ManagerHotfixRemoveMarketSymbolArgs {
412
+ version: TransactionObjectInput;
413
+ registry: TransactionObjectInput;
414
+ marketIndex: bigint | TransactionArgument;
415
+ }
416
+ export declare function managerHotfixRemoveMarketSymbol(tx: Transaction, typeArg: string, args: ManagerHotfixRemoveMarketSymbolArgs, published_at?: string): import("@mysten/sui/transactions").TransactionResult;
398
417
  export interface ManagerReducePositionArgs {
399
418
  version: TransactionObjectInput;
400
419
  registry: TransactionObjectInput;
@@ -592,6 +611,14 @@ export interface ReleaseCollateralArgs {
592
611
  releaseAmount: bigint | TransactionArgument;
593
612
  }
594
613
  export declare function releaseCollateral(tx: Transaction, typeArgs: [string, string], args: ReleaseCollateralArgs, published_at?: string): import("@mysten/sui/transactions").TransactionResult;
614
+ export interface RemoveLinkedOrder_Args {
615
+ version: TransactionObjectInput;
616
+ marketIndex: bigint | TransactionArgument;
617
+ symbolMarket: TransactionObjectInput;
618
+ order: TransactionObjectInput;
619
+ user: string | TransactionArgument;
620
+ }
621
+ export declare function removeLinkedOrder_(tx: Transaction, typeArg: string, args: RemoveLinkedOrder_Args, published_at?: string): import("@mysten/sui/transactions").TransactionResult;
595
622
  export interface RemoveLinkedOrdersArgs {
596
623
  version: TransactionObjectInput;
597
624
  marketIndex: bigint | TransactionArgument;
@@ -676,6 +703,9 @@ export interface UpdateMarketConfigArgs {
676
703
  expMultiplier: bigint | TransactionArgument | TransactionArgument | null;
677
704
  maxBuyOpenInterest: bigint | TransactionArgument | TransactionArgument | null;
678
705
  maxSellOpenInterest: bigint | TransactionArgument | TransactionArgument | null;
706
+ maintenanceMarginRateBp: bigint | TransactionArgument | TransactionArgument | null;
707
+ optionCollateralMaintenanceMarginRateBp: bigint | TransactionArgument | TransactionArgument | null;
708
+ optionCollateralTradingFeeConfig: Array<bigint | TransactionArgument> | TransactionArgument | TransactionArgument | null;
679
709
  }
680
710
  export declare function updateMarketConfig(tx: Transaction, typeArg: string, args: UpdateMarketConfigArgs, published_at?: string): import("@mysten/sui/transactions").TransactionResult;
681
711
  export interface UpdateProtocolFeeShareBpArgs {
@@ -19,6 +19,7 @@ exports.executeOrder_ = executeOrder_;
19
19
  exports.exerciseBidReceipts = exerciseBidReceipts;
20
20
  exports.getActiveOrdersByOrderTag = getActiveOrdersByOrderTag;
21
21
  exports.getActiveOrdersByOrderTagAndCtoken = getActiveOrdersByOrderTagAndCtoken;
22
+ exports.getAllPositions = getAllPositions;
22
23
  exports.getEstimatedLiquidationPriceAndPnl = getEstimatedLiquidationPriceAndPnl;
23
24
  exports.getExpiredPositionInfo = getExpiredPositionInfo;
24
25
  exports.getLinkedPosition = getLinkedPosition;
@@ -35,6 +36,7 @@ exports.liquidate = liquidate;
35
36
  exports.managerCancelOrderByOpenInterestLimit = managerCancelOrderByOpenInterestLimit;
36
37
  exports.managerCloseOptionPosition = managerCloseOptionPosition;
37
38
  exports.managerCloseOptionPositionV2 = managerCloseOptionPositionV2;
39
+ exports.managerHotfixRemoveMarketSymbol = managerHotfixRemoveMarketSymbol;
38
40
  exports.managerReducePosition = managerReducePosition;
39
41
  exports.managerReducePositionV2 = managerReducePositionV2;
40
42
  exports.managerRemoveOrder = managerRemoveOrder;
@@ -48,6 +50,7 @@ exports.newMarkets = newMarkets;
48
50
  exports.reduceOptionCollateralPositionSize = reduceOptionCollateralPositionSize;
49
51
  exports.reduceOptionCollateralPositionSizeV2 = reduceOptionCollateralPositionSizeV2;
50
52
  exports.releaseCollateral = releaseCollateral;
53
+ exports.removeLinkedOrder_ = removeLinkedOrder_;
51
54
  exports.removeLinkedOrders = removeLinkedOrders;
52
55
  exports.removeTradingSymbol = removeTradingSymbol;
53
56
  exports.resumeMarket = resumeMarket;
@@ -83,6 +86,11 @@ function addTradingSymbol(tx, typeArg, args, published_at) {
83
86
  (0, util_1.pure)(tx, args.basicFundingRate, "u64"),
84
87
  (0, util_1.pure)(tx, args.fundingIntervalTsMs, "u64"),
85
88
  (0, util_1.pure)(tx, args.expMultiplier, "u64"),
89
+ (0, util_1.pure)(tx, args.maxBuyOpenInterest, "u64"),
90
+ (0, util_1.pure)(tx, args.maxSellOpenInterest, "u64"),
91
+ (0, util_1.pure)(tx, args.maintenanceMarginRateBp, "u64"),
92
+ (0, util_1.pure)(tx, args.optionMaintenanceMarginRateBp, "u64"),
93
+ (0, util_1.pure)(tx, args.optionTradingFeeConfig, "vector<u64>"),
86
94
  (0, util_1.obj)(tx, args.clock),
87
95
  ],
88
96
  });
@@ -398,6 +406,20 @@ function getActiveOrdersByOrderTagAndCtoken(tx, typeArgs, args, published_at) {
398
406
  arguments: [(0, util_1.obj)(tx, args.version), (0, util_1.obj)(tx, args.registry), (0, util_1.pure)(tx, args.marketIndex, "u64"), (0, util_1.pure)(tx, args.orderTypeTag, "u8")],
399
407
  });
400
408
  }
409
+ function getAllPositions(tx, typeArg, args, published_at) {
410
+ if (published_at === void 0) { published_at = __1.PUBLISHED_AT; }
411
+ return tx.moveCall({
412
+ target: "".concat(published_at, "::trading::get_all_positions"),
413
+ typeArguments: [typeArg],
414
+ arguments: [
415
+ (0, util_1.obj)(tx, args.version),
416
+ (0, util_1.obj)(tx, args.registry),
417
+ (0, util_1.pure)(tx, args.marketIndex, "u64"),
418
+ (0, util_1.pure)(tx, args.slice, "u64"),
419
+ (0, util_1.pure)(tx, args.page, "u64"),
420
+ ],
421
+ });
422
+ }
401
423
  function getEstimatedLiquidationPriceAndPnl(tx, typeArgs, args, published_at) {
402
424
  if (published_at === void 0) { published_at = __1.PUBLISHED_AT; }
403
425
  return tx.moveCall({
@@ -620,6 +642,14 @@ function managerCloseOptionPositionV2(tx, typeArgs, args, published_at) {
620
642
  ],
621
643
  });
622
644
  }
645
+ function managerHotfixRemoveMarketSymbol(tx, typeArg, args, published_at) {
646
+ if (published_at === void 0) { published_at = __1.PUBLISHED_AT; }
647
+ return tx.moveCall({
648
+ target: "".concat(published_at, "::trading::manager_hotfix_remove_market_symbol"),
649
+ typeArguments: [typeArg],
650
+ arguments: [(0, util_1.obj)(tx, args.version), (0, util_1.obj)(tx, args.registry), (0, util_1.pure)(tx, args.marketIndex, "u64")],
651
+ });
652
+ }
623
653
  function managerReducePosition(tx, typeArgs, args, published_at) {
624
654
  if (published_at === void 0) { published_at = __1.PUBLISHED_AT; }
625
655
  return tx.moveCall({
@@ -891,6 +921,20 @@ function releaseCollateral(tx, typeArgs, args, published_at) {
891
921
  ],
892
922
  });
893
923
  }
924
+ function removeLinkedOrder_(tx, typeArg, args, published_at) {
925
+ if (published_at === void 0) { published_at = __1.PUBLISHED_AT; }
926
+ return tx.moveCall({
927
+ target: "".concat(published_at, "::trading::remove_linked_order_"),
928
+ typeArguments: [typeArg],
929
+ arguments: [
930
+ (0, util_1.obj)(tx, args.version),
931
+ (0, util_1.pure)(tx, args.marketIndex, "u64"),
932
+ (0, util_1.obj)(tx, args.symbolMarket),
933
+ (0, util_1.obj)(tx, args.order),
934
+ (0, util_1.pure)(tx, args.user, "address"),
935
+ ],
936
+ });
937
+ }
894
938
  function removeLinkedOrders(tx, typeArg, args, published_at) {
895
939
  if (published_at === void 0) { published_at = __1.PUBLISHED_AT; }
896
940
  return tx.moveCall({
@@ -1018,6 +1062,9 @@ function updateMarketConfig(tx, typeArg, args, published_at) {
1018
1062
  (0, util_1.pure)(tx, args.expMultiplier, "".concat(structs_1.Option.$typeName, "<u64>")),
1019
1063
  (0, util_1.pure)(tx, args.maxBuyOpenInterest, "".concat(structs_1.Option.$typeName, "<u64>")),
1020
1064
  (0, util_1.pure)(tx, args.maxSellOpenInterest, "".concat(structs_1.Option.$typeName, "<u64>")),
1065
+ (0, util_1.pure)(tx, args.maintenanceMarginRateBp, "".concat(structs_1.Option.$typeName, "<u64>")),
1066
+ (0, util_1.pure)(tx, args.optionCollateralMaintenanceMarginRateBp, "".concat(structs_1.Option.$typeName, "<u64>")),
1067
+ (0, util_1.pure)(tx, args.optionCollateralTradingFeeConfig, "".concat(structs_1.Option.$typeName, "<vector<u64>>")),
1021
1068
  ],
1022
1069
  });
1023
1070
  }
@@ -45,6 +45,7 @@ export interface DepositIncentiveArgs {
45
45
  coin: TransactionObjectInput;
46
46
  }
47
47
  export declare function depositIncentive(tx: Transaction, typeArg: string, args: DepositIncentiveArgs, published_at?: string): import("@mysten/sui/transactions").TransactionResult;
48
+ export declare function deprecated(tx: Transaction, published_at?: string): import("@mysten/sui/transactions").TransactionResult;
48
49
  export interface GetIncentiveArgs {
49
50
  stakePool: TransactionObjectInput;
50
51
  tokenType: TransactionObjectInput;
@@ -196,3 +197,11 @@ export interface WithdrawIncentiveArgs {
196
197
  amount: bigint | TransactionArgument | TransactionArgument | null;
197
198
  }
198
199
  export declare function withdrawIncentive(tx: Transaction, typeArg: string, args: WithdrawIncentiveArgs, published_at?: string): import("@mysten/sui/transactions").TransactionResult;
200
+ export interface WithdrawIncentiveV2Args {
201
+ version: TransactionObjectInput;
202
+ registry: TransactionObjectInput;
203
+ index: bigint | TransactionArgument;
204
+ amount: bigint | TransactionArgument | TransactionArgument | null;
205
+ clock: TransactionObjectInput;
206
+ }
207
+ export declare function withdrawIncentiveV2(tx: Transaction, typeArg: string, args: WithdrawIncentiveV2Args, published_at?: string): import("@mysten/sui/transactions").TransactionResult;
@@ -7,6 +7,7 @@ exports.calculateIncentive = calculateIncentive;
7
7
  exports.createUserLastIncentiveTsMs = createUserLastIncentiveTsMs;
8
8
  exports.deactivateIncentiveToken = deactivateIncentiveToken;
9
9
  exports.depositIncentive = depositIncentive;
10
+ exports.deprecated = deprecated;
10
11
  exports.getIncentive = getIncentive;
11
12
  exports.getIncentiveTokens = getIncentiveTokens;
12
13
  exports.getLastIncentivePriceIndex = getLastIncentivePriceIndex;
@@ -33,6 +34,7 @@ exports.updateIncentiveConfig = updateIncentiveConfig;
33
34
  exports.updatePoolInfoU64Padding = updatePoolInfoU64Padding;
34
35
  exports.updateUnlockCountdownTsMs = updateUnlockCountdownTsMs;
35
36
  exports.withdrawIncentive = withdrawIncentive;
37
+ exports.withdrawIncentiveV2 = withdrawIncentiveV2;
36
38
  var __1 = require("..");
37
39
  var structs_1 = require("../../_dependencies/source/0x1/option/structs");
38
40
  var util_1 = require("../../_framework/util");
@@ -97,6 +99,10 @@ function depositIncentive(tx, typeArg, args, published_at) {
97
99
  arguments: [(0, util_1.obj)(tx, args.version), (0, util_1.obj)(tx, args.registry), (0, util_1.pure)(tx, args.index, "u64"), (0, util_1.obj)(tx, args.coin)],
98
100
  });
99
101
  }
102
+ function deprecated(tx, published_at) {
103
+ if (published_at === void 0) { published_at = __1.PUBLISHED_AT; }
104
+ return tx.moveCall({ target: "".concat(published_at, "::stake_pool::deprecated"), arguments: [] });
105
+ }
100
106
  function getIncentive(tx, args, published_at) {
101
107
  if (published_at === void 0) { published_at = __1.PUBLISHED_AT; }
102
108
  return tx.moveCall({
@@ -329,3 +335,17 @@ function withdrawIncentive(tx, typeArg, args, published_at) {
329
335
  ],
330
336
  });
331
337
  }
338
+ function withdrawIncentiveV2(tx, typeArg, args, published_at) {
339
+ if (published_at === void 0) { published_at = __1.PUBLISHED_AT; }
340
+ return tx.moveCall({
341
+ target: "".concat(published_at, "::stake_pool::withdraw_incentive_v2"),
342
+ typeArguments: [typeArg],
343
+ arguments: [
344
+ (0, util_1.obj)(tx, args.version),
345
+ (0, util_1.obj)(tx, args.registry),
346
+ (0, util_1.pure)(tx, args.index, "u64"),
347
+ (0, util_1.pure)(tx, args.amount, "".concat(structs_1.Option.$typeName, "<u64>")),
348
+ (0, util_1.obj)(tx, args.clock),
349
+ ],
350
+ });
351
+ }
@@ -14,23 +14,41 @@ export declare function mintStakeLp(config: TypusConfig, tx: Transaction, pythCl
14
14
  amount: string;
15
15
  userShareId: string | null;
16
16
  user: string;
17
+ stake: boolean;
17
18
  }): Promise<Transaction>;
18
- export declare function unstakeBurn(config: TypusConfig, tx: Transaction, pythClient: PythClient, input: {
19
+ export declare function stakeLp(config: TypusConfig, tx: Transaction, input: {
20
+ stakePool: StakePool;
21
+ lpCoins: string[];
22
+ amount: string;
23
+ userShareId: string | null;
24
+ user: string;
25
+ }): Promise<Transaction>;
26
+ export declare function unstake(config: TypusConfig, tx: Transaction, input: {
19
27
  lpPool: LiquidityPool;
20
28
  stakePool: StakePool;
21
- cTOKEN: TOKEN;
22
29
  userShareId: string;
23
30
  share: string | null;
24
31
  user: string;
25
32
  }): Promise<Transaction>;
26
- export declare function burnTlp(config: TypusConfig, tx: Transaction, pythClient: PythClient, input: {
33
+ export declare function unstakeRedeem(config: TypusConfig, tx: Transaction, pythClient: PythClient, input: {
27
34
  lpPool: LiquidityPool;
28
35
  stakePool: StakePool;
29
- cTOKEN: TOKEN;
30
- lpCoin: string;
36
+ userShareId: string;
37
+ share: string | null;
38
+ user: string;
39
+ }): Promise<Transaction>;
40
+ export declare function redeemTlp(config: TypusConfig, tx: Transaction, pythClient: PythClient, input: {
41
+ lpPool: LiquidityPool;
42
+ lpCoins: string[];
31
43
  share: string | null;
32
44
  user: string;
33
45
  }): Promise<Transaction>;
46
+ export declare function claim(config: TypusConfig, tx: Transaction, pythClient: PythClient, input: {
47
+ lpPool: LiquidityPool;
48
+ stakePool: StakePool;
49
+ cTOKEN: TOKEN;
50
+ user: string;
51
+ }): Promise<Transaction>;
34
52
  export declare function swap(config: TypusConfig, tx: Transaction, pythClient: PythClient, input: {
35
53
  coins: string[];
36
54
  FROM_TOKEN: TOKEN;
@@ -38,10 +56,6 @@ export declare function swap(config: TypusConfig, tx: Transaction, pythClient: P
38
56
  amount: string;
39
57
  user: string;
40
58
  }): Promise<Transaction>;
41
- export declare function unsubscribe(config: TypusConfig, tx: Transaction, input: {
42
- userShareId: string;
43
- share: string | null;
44
- }): Promise<Transaction>;
45
59
  export declare function harvestStakeReward(config: TypusConfig, tx: Transaction, input: {
46
60
  stakePool: StakePool;
47
61
  userShareId: string;
@@ -65,10 +65,12 @@ var __read = (this && this.__read) || function (o, n) {
65
65
  Object.defineProperty(exports, "__esModule", { value: true });
66
66
  exports.snapshot = snapshot;
67
67
  exports.mintStakeLp = mintStakeLp;
68
- exports.unstakeBurn = unstakeBurn;
69
- exports.burnTlp = burnTlp;
68
+ exports.stakeLp = stakeLp;
69
+ exports.unstake = unstake;
70
+ exports.unstakeRedeem = unstakeRedeem;
71
+ exports.redeemTlp = redeemTlp;
72
+ exports.claim = claim;
70
73
  exports.swap = swap;
71
- exports.unsubscribe = unsubscribe;
72
74
  exports.harvestStakeReward = harvestStakeReward;
73
75
  var functions_1 = require("../typus_perp/lp-pool/functions");
74
76
  var functions_2 = require("../typus_stake_pool/stake-pool/functions");
@@ -148,22 +150,78 @@ function mintStakeLp(config, tx, pythClient, input) {
148
150
  coin: coin,
149
151
  clock: constants_1.CLOCK,
150
152
  });
151
- (0, functions_2.stake)(tx, __1.TLP_TOKEN, {
152
- version: __1.STAKE_POOL_VERSION,
153
- registry: __1.STAKE_POOL,
154
- index: BigInt(0),
155
- lpToken: lpCoin,
156
- clock: constants_1.CLOCK,
157
- userShareId: input.userShareId ? BigInt(input.userShareId) : null,
158
- });
153
+ if (input.stake) {
154
+ (0, functions_2.stake)(tx, __1.TLP_TOKEN, {
155
+ version: __1.STAKE_POOL_VERSION,
156
+ registry: __1.STAKE_POOL,
157
+ index: BigInt(0),
158
+ lpToken: lpCoin,
159
+ clock: constants_1.CLOCK,
160
+ userShareId: input.userShareId ? BigInt(input.userShareId) : null,
161
+ });
162
+ }
163
+ else {
164
+ tx.transferObjects([lpCoin], input.user);
165
+ }
159
166
  return [2 /*return*/, tx];
160
167
  }
161
168
  });
162
169
  });
163
170
  }
164
- function unstakeBurn(config, tx, pythClient, input) {
171
+ function stakeLp(config, tx, input) {
172
+ return __awaiter(this, void 0, void 0, function () {
173
+ var coin, destination;
174
+ var _a;
175
+ return __generator(this, function (_b) {
176
+ destination = input.lpCoins.pop();
177
+ if (input.lpCoins.length > 0) {
178
+ tx.mergeCoins(destination, input.lpCoins);
179
+ }
180
+ _a = __read(tx.splitCoins(destination, [input.amount]), 1), coin = _a[0];
181
+ // console.log(iToken);
182
+ if (input.userShareId) {
183
+ harvestStakeReward(config, tx, { stakePool: input.stakePool, userShareId: input.userShareId, user: input.user });
184
+ }
185
+ (0, functions_2.stake)(tx, __1.TLP_TOKEN, {
186
+ version: __1.STAKE_POOL_VERSION,
187
+ registry: __1.STAKE_POOL,
188
+ index: BigInt(0),
189
+ lpToken: coin,
190
+ clock: constants_1.CLOCK,
191
+ userShareId: input.userShareId ? BigInt(input.userShareId) : null,
192
+ });
193
+ return [2 /*return*/, tx];
194
+ });
195
+ });
196
+ }
197
+ function unstake(config, tx, input) {
198
+ return __awaiter(this, void 0, void 0, function () {
199
+ var lpCoin;
200
+ return __generator(this, function (_a) {
201
+ harvestStakeReward(config, tx, { stakePool: input.stakePool, userShareId: input.userShareId, user: input.user });
202
+ (0, functions_2.unsubscribe)(tx, __1.TLP_TOKEN, {
203
+ version: __1.STAKE_POOL_VERSION,
204
+ registry: __1.STAKE_POOL,
205
+ index: BigInt(0),
206
+ userShareId: BigInt(input.userShareId),
207
+ clock: constants_1.CLOCK,
208
+ unsubscribedShares: input.share ? BigInt(input.share) : null,
209
+ });
210
+ lpCoin = (0, functions_2.unstake)(tx, __1.TLP_TOKEN, {
211
+ version: __1.STAKE_POOL_VERSION,
212
+ registry: __1.STAKE_POOL,
213
+ index: BigInt(0),
214
+ userShareId: BigInt(input.userShareId),
215
+ clock: constants_1.CLOCK,
216
+ });
217
+ tx.transferObjects([lpCoin], input.user);
218
+ return [2 /*return*/, tx];
219
+ });
220
+ });
221
+ }
222
+ function unstakeRedeem(config, tx, pythClient, input) {
165
223
  return __awaiter(this, void 0, void 0, function () {
166
- var tokens, tokens_2, tokens_2_1, token, lpCoin, burnCoin, cToken, coin;
224
+ var tokens, tokens_2, tokens_2_1, token, lpCoin, balance;
167
225
  var e_2, _a;
168
226
  return __generator(this, function (_b) {
169
227
  switch (_b.label) {
@@ -193,6 +251,14 @@ function unstakeBurn(config, tx, pythClient, input) {
193
251
  finally { if (e_2) throw e_2.error; }
194
252
  }
195
253
  harvestStakeReward(config, tx, { stakePool: input.stakePool, userShareId: input.userShareId, user: input.user });
254
+ (0, functions_2.unsubscribe)(tx, __1.TLP_TOKEN, {
255
+ version: __1.STAKE_POOL_VERSION,
256
+ registry: __1.STAKE_POOL,
257
+ index: BigInt(0),
258
+ userShareId: BigInt(input.userShareId),
259
+ clock: constants_1.CLOCK,
260
+ unsubscribedShares: input.share ? BigInt(input.share) : null,
261
+ });
196
262
  lpCoin = (0, functions_2.unstake)(tx, __1.TLP_TOKEN, {
197
263
  version: __1.STAKE_POOL_VERSION,
198
264
  registry: __1.STAKE_POOL,
@@ -200,32 +266,26 @@ function unstakeBurn(config, tx, pythClient, input) {
200
266
  userShareId: BigInt(input.userShareId),
201
267
  clock: constants_1.CLOCK,
202
268
  });
203
- if (input.share) {
204
- burnCoin = tx.splitCoins(lpCoin, [input.share]);
205
- tx.transferObjects([lpCoin], input.user);
206
- }
207
- else {
208
- burnCoin = lpCoin;
209
- }
210
- cToken = constants_1.tokenType[__1.NETWORK][input.cTOKEN];
211
- coin = (0, functions_1.burnLp)(tx, [cToken, __1.TLP_TOKEN], {
269
+ balance = tx.moveCall({
270
+ target: "0x2::coin::into_balance",
271
+ typeArguments: [__1.TLP_TOKEN],
272
+ arguments: [lpCoin],
273
+ });
274
+ (0, functions_1.redeem)(tx, __1.TLP_TOKEN, {
212
275
  version: __1.PERP_VERSION,
213
276
  registry: __1.LP_POOL,
214
- treasuryCaps: __1.TLP_TREASURY_CAP,
215
277
  index: BigInt(0),
216
- oracle: constants_1.oracle[__1.NETWORK][input.cTOKEN],
217
- coin: burnCoin,
218
278
  clock: constants_1.CLOCK,
279
+ balance: balance,
219
280
  });
220
- tx.transferObjects([coin], input.user);
221
281
  return [2 /*return*/, tx];
222
282
  }
223
283
  });
224
284
  });
225
285
  }
226
- function burnTlp(config, tx, pythClient, input) {
286
+ function redeemTlp(config, tx, pythClient, input) {
227
287
  return __awaiter(this, void 0, void 0, function () {
228
- var tokens, tokens_3, tokens_3_1, token, lpCoin, burnCoin, cToken, coin;
288
+ var tokens, tokens_3, tokens_3_1, token, destination, lpCoin, burnCoin, balance;
229
289
  var e_3, _a;
230
290
  return __generator(this, function (_b) {
231
291
  switch (_b.label) {
@@ -254,24 +314,75 @@ function burnTlp(config, tx, pythClient, input) {
254
314
  }
255
315
  finally { if (e_3) throw e_3.error; }
256
316
  }
257
- lpCoin = tx.object(input.lpCoin);
317
+ destination = input.lpCoins.pop();
318
+ if (input.lpCoins.length > 0) {
319
+ tx.mergeCoins(destination, input.lpCoins);
320
+ }
321
+ lpCoin = tx.object(destination);
258
322
  if (input.share) {
259
323
  burnCoin = tx.splitCoins(lpCoin, [input.share]);
260
324
  }
261
325
  else {
262
326
  burnCoin = lpCoin;
263
327
  }
328
+ balance = tx.moveCall({
329
+ target: "0x2::coin::into_balance",
330
+ typeArguments: [__1.TLP_TOKEN],
331
+ arguments: [burnCoin],
332
+ });
333
+ (0, functions_1.redeem)(tx, __1.TLP_TOKEN, {
334
+ version: __1.PERP_VERSION,
335
+ registry: __1.LP_POOL,
336
+ index: BigInt(0),
337
+ clock: constants_1.CLOCK,
338
+ balance: balance,
339
+ });
340
+ return [2 /*return*/, tx];
341
+ }
342
+ });
343
+ });
344
+ }
345
+ function claim(config, tx, pythClient, input) {
346
+ return __awaiter(this, void 0, void 0, function () {
347
+ var tokens, tokens_4, tokens_4_1, token_1, cToken, token;
348
+ var e_4, _a;
349
+ return __generator(this, function (_b) {
350
+ switch (_b.label) {
351
+ case 0:
352
+ tokens = input.lpPool.tokenPools.map(function (p) { return (0, constants_1.typeArgToAsset)("0x" + p.tokenType.name); });
353
+ return [4 /*yield*/, (0, utils_1.updatePyth)(pythClient, tx, tokens)];
354
+ case 1:
355
+ _b.sent();
356
+ try {
357
+ for (tokens_4 = __values(tokens), tokens_4_1 = tokens_4.next(); !tokens_4_1.done; tokens_4_1 = tokens_4.next()) {
358
+ token_1 = tokens_4_1.value;
359
+ (0, utils_1.updateOracleWithPythUsd)(pythClient, tx, config.package.oracle, token_1);
360
+ (0, functions_1.updateLiquidityValue)(tx, constants_1.tokenType[__1.NETWORK][token_1], {
361
+ version: __1.PERP_VERSION,
362
+ registry: __1.LP_POOL,
363
+ index: BigInt(0),
364
+ oracle: constants_1.oracle[__1.NETWORK][token_1],
365
+ clock: constants_1.CLOCK,
366
+ });
367
+ }
368
+ }
369
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
370
+ finally {
371
+ try {
372
+ if (tokens_4_1 && !tokens_4_1.done && (_a = tokens_4.return)) _a.call(tokens_4);
373
+ }
374
+ finally { if (e_4) throw e_4.error; }
375
+ }
264
376
  cToken = constants_1.tokenType[__1.NETWORK][input.cTOKEN];
265
- coin = (0, functions_1.burnLp)(tx, [cToken, __1.TLP_TOKEN], {
377
+ token = (0, functions_1.claim)(tx, [__1.TLP_TOKEN, cToken], {
266
378
  version: __1.PERP_VERSION,
267
379
  registry: __1.LP_POOL,
268
- treasuryCaps: __1.TLP_TREASURY_CAP,
269
380
  index: BigInt(0),
270
- oracle: constants_1.oracle[__1.NETWORK][input.cTOKEN],
271
- coin: burnCoin,
272
381
  clock: constants_1.CLOCK,
382
+ treasuryCaps: __1.TLP_TREASURY_CAP,
383
+ oracle: constants_1.oracle[__1.NETWORK][input.cTOKEN],
273
384
  });
274
- tx.transferObjects([coin], input.user);
385
+ tx.transferObjects([token], input.user);
275
386
  return [2 /*return*/, tx];
276
387
  }
277
388
  });
@@ -316,34 +427,10 @@ function swap(config, tx, pythClient, input) {
316
427
  });
317
428
  });
318
429
  }
319
- function unsubscribe(config, tx, input) {
320
- return __awaiter(this, void 0, void 0, function () {
321
- return __generator(this, function (_a) {
322
- (0, functions_2.snapshot)(tx, {
323
- version: __1.STAKE_POOL_VERSION,
324
- registry: __1.STAKE_POOL,
325
- index: BigInt(0),
326
- clock: constants_1.CLOCK,
327
- userShareId: BigInt(input.userShareId),
328
- typusEcosystemVersion: config.version.typus,
329
- typusUserRegistry: config.registry.typus.user,
330
- });
331
- (0, functions_2.unsubscribe)(tx, __1.TLP_TOKEN, {
332
- version: __1.STAKE_POOL_VERSION,
333
- registry: __1.STAKE_POOL,
334
- index: BigInt(0),
335
- userShareId: BigInt(input.userShareId),
336
- clock: constants_1.CLOCK,
337
- unsubscribedShares: input.share ? BigInt(input.share) : null,
338
- });
339
- return [2 /*return*/, tx];
340
- });
341
- });
342
- }
343
430
  function harvestStakeReward(config, tx, input) {
344
431
  return __awaiter(this, void 0, void 0, function () {
345
432
  var iTokens, iTokens_1, iTokens_1_1, iToken, iCoin;
346
- var e_4, _a;
433
+ var e_5, _a;
347
434
  return __generator(this, function (_b) {
348
435
  iTokens = input.stakePool.incentives.map(function (i) { return i.tokenType.name; });
349
436
  (0, functions_2.snapshot)(tx, {
@@ -381,12 +468,12 @@ function harvestStakeReward(config, tx, input) {
381
468
  }
382
469
  }
383
470
  }
384
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
471
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
385
472
  finally {
386
473
  try {
387
474
  if (iTokens_1_1 && !iTokens_1_1.done && (_a = iTokens_1.return)) _a.call(iTokens_1);
388
475
  }
389
- finally { if (e_4) throw e_4.error; }
476
+ finally { if (e_5) throw e_5.error; }
390
477
  }
391
478
  return [2 /*return*/, tx];
392
479
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typus/typus-perp-sdk",
3
- "version": "1.0.61-ut-upgrade-b",
3
+ "version": "1.0.61-ut-upgrade-c",
4
4
  "repository": "https://github.com/Typus-Lab/typus-perp-sdk.git",
5
5
  "author": "Typus",
6
6
  "description": "typus perp sdk",