@typus/typus-perp-sdk 1.2.2 → 1.3.1

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.
Files changed (71) hide show
  1. package/dist/src/client.d.ts +22 -3
  2. package/dist/src/client.js +66 -8
  3. package/dist/src/fetch.d.ts +61 -17
  4. package/dist/src/fetch.js +20 -14
  5. package/dist/src/generated/typus_perp/admin.d.ts +65 -21
  6. package/dist/src/generated/typus_perp/admin.js +139 -123
  7. package/dist/src/generated/typus_perp/competition.d.ts +5 -17
  8. package/dist/src/generated/typus_perp/competition.js +63 -39
  9. package/dist/src/generated/typus_perp/deps/std/type_name.d.ts +9 -9
  10. package/dist/src/generated/typus_perp/deps/std/type_name.js +13 -16
  11. package/dist/src/generated/typus_perp/deps/sui/balance.d.ts +2 -2
  12. package/dist/src/generated/typus_perp/deps/sui/balance.js +5 -8
  13. package/dist/src/generated/typus_perp/deps/sui/object.d.ts +8 -0
  14. package/dist/src/generated/typus_perp/deps/sui/object.js +13 -0
  15. package/dist/src/generated/typus_perp/deps/sui/object_table.d.ts +5 -3
  16. package/dist/src/generated/typus_perp/deps/sui/object_table.js +40 -9
  17. package/dist/src/generated/typus_perp/deps/sui/table.d.ts +5 -3
  18. package/dist/src/generated/typus_perp/deps/sui/table.js +40 -9
  19. package/dist/src/generated/typus_perp/deps/sui/vec_set.d.ts +5 -3
  20. package/dist/src/generated/typus_perp/deps/sui/vec_set.js +5 -8
  21. package/dist/src/generated/typus_perp/deps/typus/keyed_big_vector.d.ts +4 -2
  22. package/dist/src/generated/typus_perp/deps/typus/keyed_big_vector.js +9 -12
  23. package/dist/src/generated/typus_perp/deps/typus/linked_object_table.d.ts +12 -6
  24. package/dist/src/generated/typus_perp/deps/typus/linked_object_table.js +41 -10
  25. package/dist/src/generated/typus_perp/deps/typus_framework/vault.d.ts +4 -2
  26. package/dist/src/generated/typus_perp/deps/typus_framework/vault.js +40 -9
  27. package/dist/src/generated/typus_perp/error.d.ts +201 -94
  28. package/dist/src/generated/typus_perp/error.js +300 -273
  29. package/dist/src/generated/typus_perp/escrow.d.ts +14 -6
  30. package/dist/src/generated/typus_perp/escrow.js +38 -37
  31. package/dist/src/generated/typus_perp/lending.d.ts +1 -1
  32. package/dist/src/generated/typus_perp/lending.js +3 -3
  33. package/dist/src/generated/typus_perp/lp_pool.d.ts +438 -392
  34. package/dist/src/generated/typus_perp/lp_pool.js +987 -934
  35. package/dist/src/generated/typus_perp/math.d.ts +13 -16
  36. package/dist/src/generated/typus_perp/math.js +51 -50
  37. package/dist/src/generated/typus_perp/position.d.ts +194 -104
  38. package/dist/src/generated/typus_perp/position.js +714 -731
  39. package/dist/src/generated/typus_perp/profit_vault.d.ts +62 -20
  40. package/dist/src/generated/typus_perp/profit_vault.js +162 -148
  41. package/dist/src/generated/typus_perp/symbol.d.ts +12 -5
  42. package/dist/src/generated/typus_perp/symbol.js +28 -25
  43. package/dist/src/generated/typus_perp/trading.d.ts +955 -133
  44. package/dist/src/generated/typus_perp/trading.js +1575 -1146
  45. package/dist/src/generated/typus_perp/treasury_caps.d.ts +16 -7
  46. package/dist/src/generated/typus_perp/treasury_caps.js +60 -24
  47. package/dist/src/generated/typus_perp/user_account.d.ts +40 -0
  48. package/dist/src/generated/typus_perp/user_account.js +66 -0
  49. package/dist/src/generated/typus_stake_pool/admin.d.ts +144 -10
  50. package/dist/src/generated/typus_stake_pool/admin.js +132 -49
  51. package/dist/src/generated/typus_stake_pool/deps/std/type_name.d.ts +9 -9
  52. package/dist/src/generated/typus_stake_pool/deps/std/type_name.js +13 -16
  53. package/dist/src/generated/typus_stake_pool/deps/sui/object.d.ts +8 -0
  54. package/dist/src/generated/typus_stake_pool/deps/sui/object.js +13 -0
  55. package/dist/src/generated/typus_stake_pool/deps/sui/vec_map.d.ts +36 -0
  56. package/dist/src/generated/typus_stake_pool/deps/sui/vec_map.js +31 -0
  57. package/dist/src/generated/typus_stake_pool/deps/sui/vec_set.d.ts +5 -3
  58. package/dist/src/generated/typus_stake_pool/deps/sui/vec_set.js +5 -8
  59. package/dist/src/generated/typus_stake_pool/stake_pool.d.ts +180 -79
  60. package/dist/src/generated/typus_stake_pool/stake_pool.js +446 -414
  61. package/dist/src/generated/utils/index.d.ts +4 -23
  62. package/dist/src/generated/utils/index.js +34 -54
  63. package/dist/src/index.d.ts +5 -0
  64. package/dist/src/index.js +35 -13
  65. package/dist/src/user/order.d.ts +0 -4
  66. package/dist/src/user/order.js +31 -74
  67. package/dist/src/user/orderWithBidReceipt.d.ts +0 -3
  68. package/dist/src/user/orderWithBidReceipt.js +24 -45
  69. package/dist/src/user/tlp.d.ts +0 -5
  70. package/dist/src/user/tlp.js +28 -73
  71. package/package.json +47 -40
@@ -33,10 +33,16 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.RealizeOptionPositionEvent = exports.ExpiredPositionInfo = exports.UpdateFundingRateEvent = exports.SettleReceiptCollateralEvent = exports.LiquidateEvent = exports.LiquidationInfo = exports.ManagerCloseOptionPositionEvent = exports.ManagerClearPositionEvent = exports.ManagerReducePositionEvent = exports.MatchTradingOrderEvent = exports.CreateTradingOrderWithBidReceiptsEvent = exports.IncreaseCollateralEvent = exports.ReleaseCollateralEvent = exports.CancelTradingOrderEvent = exports.ManagerCancelOrdersEvent = exports.CreateTradingOrderEvent = exports.ResumeTradingSymbolEvent = exports.SuspendTradingSymbolEvent = exports.ResumeMarketEvent = exports.SuspendMarketEvent = exports.UpdateMarketConfigEvent = exports.UpdateProtocolFeeShareBpEvent = exports.AddTradingSymbolEvent = exports.NewMarketsEvent = exports.USD = exports.SymbolMarket = exports.MarketConfig = exports.MarketInfo = exports.Markets = exports.MarketRegistry = void 0;
36
+ exports.MigrateMarketOracleIdEvent = exports.RealizeOptionPositionEvent = exports.ExpiredPositionInfo = exports.UpdateFundingRateEvent = exports.SettleReceiptCollateralEvent = exports.LiquidateEvent = exports.LiquidationInfo = exports.ManagerCloseOptionPositionEvent = exports.ManagerClearPositionEvent = exports.ManagerReducePositionEvent = exports.MatchTradingOrderEvent = exports.CreateTradingOrderWithBidReceiptsEvent = exports.IncreaseCollateralEvent = exports.ReleaseCollateralEvent = exports.CancelTradingOrderEvent = exports.ManagerCancelOrdersEvent = exports.CreateTradingOrderEvent = exports.ResumeTradingSymbolEvent = exports.SuspendTradingSymbolEvent = exports.ResumeMarketEvent = exports.SuspendMarketEvent = exports.UpdateMarketConfigEvent = exports.UpdateProtocolFeeShareBpEvent = exports.AddTradingSymbolEvent = exports.NewMarketsEvent = exports.ReferralInfo = exports.Referrals = exports.USD = exports.SymbolMarket = exports.MarketConfig = exports.MarketInfo = exports.Markets = exports.MarketRegistry = void 0;
37
37
  exports.init = init;
38
+ exports.initReferralTable = initReferralTable;
39
+ exports.addReferralInfo = addReferralInfo;
40
+ exports.removeReferralInfo = removeReferralInfo;
41
+ exports.setReferral = setReferral;
42
+ exports.unsetReferral = unsetReferral;
38
43
  exports.newMarkets = newMarkets;
39
44
  exports.addTradingSymbol = addTradingSymbol;
45
+ exports.addTradingSymbolV2 = addTradingSymbolV2;
40
46
  exports.updateProtocolFeeShareBp = updateProtocolFeeShareBp;
41
47
  exports.updateMarketConfig = updateMarketConfig;
42
48
  exports.suspendMarket = suspendMarket;
@@ -45,23 +51,37 @@ exports.suspendTradingSymbol = suspendTradingSymbol;
45
51
  exports.resumeTradingSymbol = resumeTradingSymbol;
46
52
  exports.removeTradingSymbol = removeTradingSymbol;
47
53
  exports.createTradingOrder = createTradingOrder;
54
+ exports.createTradingOrderV2 = createTradingOrderV2;
48
55
  exports.cancelTradingOrder = cancelTradingOrder;
49
56
  exports.releaseCollateral = releaseCollateral;
57
+ exports.releaseCollateralV2 = releaseCollateralV2;
50
58
  exports.increaseCollateral = increaseCollateral;
59
+ exports.increaseCollateralV2 = increaseCollateralV2;
51
60
  exports.collectPositionFundingFee = collectPositionFundingFee;
61
+ exports.collectPositionFundingFeeV2 = collectPositionFundingFeeV2;
52
62
  exports.createTradingOrderWithBidReceipt = createTradingOrderWithBidReceipt;
63
+ exports.createTradingOrderWithBidReceiptV2 = createTradingOrderWithBidReceiptV2;
53
64
  exports.reduceOptionCollateralPositionSize = reduceOptionCollateralPositionSize;
65
+ exports.reduceOptionCollateralPositionSizeV2 = reduceOptionCollateralPositionSizeV2;
54
66
  exports.matchTradingOrder = matchTradingOrder;
67
+ exports.matchTradingOrderV2 = matchTradingOrderV2;
55
68
  exports.cancelLinkedOrders = cancelLinkedOrders;
56
69
  exports.managerReducePosition = managerReducePosition;
70
+ exports.managerReducePositionV2 = managerReducePositionV2;
57
71
  exports.managerClearPosition = managerClearPosition;
58
72
  exports.managerCloseOptionPosition = managerCloseOptionPosition;
73
+ exports.managerCloseOptionPositionV2 = managerCloseOptionPositionV2;
59
74
  exports.getTradingFeeConfig = getTradingFeeConfig;
60
75
  exports.getLiquidationInfo = getLiquidationInfo;
61
76
  exports.liquidate = liquidate;
77
+ exports.liquidateV2 = liquidateV2;
62
78
  exports.settleReceiptCollateral = settleReceiptCollateral;
79
+ exports.settleReceiptCollateralV2 = settleReceiptCollateralV2;
63
80
  exports.updateFundingRate = updateFundingRate;
81
+ exports.updateFundingRateV2 = updateFundingRateV2;
64
82
  exports.getExpiredPositionInfo = getExpiredPositionInfo;
83
+ exports.createUserAccount = createUserAccount;
84
+ exports.withdrawUserAccount = withdrawUserAccount;
65
85
  exports.prepareOrderExecution = prepareOrderExecution;
66
86
  exports.executeOrder_ = executeOrder_;
67
87
  exports.executeOptionCollateralOrder_ = executeOptionCollateralOrder_;
@@ -77,6 +97,7 @@ exports.checkCollateralEnoughWhenReducingPosition = checkCollateralEnoughWhenRed
77
97
  exports.checkOptionCollateralEnough = checkOptionCollateralEnough;
78
98
  exports.checkReserveEnough = checkReserveEnough;
79
99
  exports.getMaxReleasingCollateralAmount_ = getMaxReleasingCollateralAmount_;
100
+ exports.getV2Price = getV2Price;
80
101
  exports.normalSafetyCheck = normalSafetyCheck;
81
102
  exports.validateTradingFeeConfig = validateTradingFeeConfig;
82
103
  exports.adjustMarketInfoUserOrderSize = adjustMarketInfoUserOrderSize;
@@ -84,6 +105,7 @@ exports.adjustMarketInfoUserPositionSize = adjustMarketInfoUserPositionSize;
84
105
  exports.exerciseBidReceipts = exerciseBidReceipts;
85
106
  exports.returnToUser = returnToUser;
86
107
  exports.checkPositionUserMatched = checkPositionUserMatched;
108
+ exports.getUserReferral = getUserReferral;
87
109
  exports.getUserOrders = getUserOrders;
88
110
  exports.getUserPositions = getUserPositions;
89
111
  exports.getAllPositions = getAllPositions;
@@ -94,95 +116,52 @@ exports.calculateTradingFeeRateMbp = calculateTradingFeeRateMbp;
94
116
  exports.getMarketsBcs = getMarketsBcs;
95
117
  exports.getMutMarketId = getMutMarketId;
96
118
  exports.tradingSymbolExists = tradingSymbolExists;
119
+ exports.managerCancelOrderByOpenInterestLimit = managerCancelOrderByOpenInterestLimit;
97
120
  exports.deprecated = deprecated;
121
+ exports.migrateOracleIdToV2 = migrateOracleIdToV2;
98
122
  /**************************************************************
99
123
  * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
100
124
  **************************************************************/
101
- const index_js_1 = require("../utils/index.js");
125
+ const index_1 = require("../utils/index");
102
126
  const bcs_1 = require("@mysten/sui/bcs");
103
- const linked_object_table = __importStar(require("./deps/typus/linked_object_table.js"));
104
- const type_name = __importStar(require("./deps/std/type_name.js"));
105
- const type_name_1 = __importStar(require("./deps/std/type_name.js"));
106
- const type_name_2 = __importStar(require("./deps/std/type_name.js"));
107
- const object_table = __importStar(require("./deps/sui/object_table.js"));
108
- const keyed_big_vector = __importStar(require("./deps/typus/keyed_big_vector.js"));
109
- const type_name_3 = __importStar(require("./deps/std/type_name.js"));
110
- const type_name_4 = __importStar(require("./deps/std/type_name.js"));
111
- const type_name_5 = __importStar(require("./deps/std/type_name.js"));
112
- const type_name_6 = __importStar(require("./deps/std/type_name.js"));
113
- const type_name_7 = __importStar(require("./deps/std/type_name.js"));
114
- const type_name_8 = __importStar(require("./deps/std/type_name.js"));
115
- const type_name_9 = __importStar(require("./deps/std/type_name.js"));
116
- const type_name_10 = __importStar(require("./deps/std/type_name.js"));
117
- const type_name_11 = __importStar(require("./deps/std/type_name.js"));
118
- const type_name_12 = __importStar(require("./deps/std/type_name.js"));
119
- const type_name_13 = __importStar(require("./deps/std/type_name.js"));
120
- const type_name_14 = __importStar(require("./deps/std/type_name.js"));
121
- const type_name_15 = __importStar(require("./deps/std/type_name.js"));
122
- const type_name_16 = __importStar(require("./deps/std/type_name.js"));
123
- const type_name_17 = __importStar(require("./deps/std/type_name.js"));
124
- const type_name_18 = __importStar(require("./deps/std/type_name.js"));
125
- const type_name_19 = __importStar(require("./deps/std/type_name.js"));
126
- const type_name_20 = __importStar(require("./deps/std/type_name.js"));
127
- const type_name_21 = __importStar(require("./deps/std/type_name.js"));
128
- const type_name_22 = __importStar(require("./deps/std/type_name.js"));
129
- const type_name_23 = __importStar(require("./deps/std/type_name.js"));
130
- const type_name_24 = __importStar(require("./deps/std/type_name.js"));
131
- const type_name_25 = __importStar(require("./deps/std/type_name.js"));
132
- const type_name_26 = __importStar(require("./deps/std/type_name.js"));
133
- const type_name_27 = __importStar(require("./deps/std/type_name.js"));
134
- const type_name_28 = __importStar(require("./deps/std/type_name.js"));
135
- const type_name_29 = __importStar(require("./deps/std/type_name.js"));
136
- const type_name_30 = __importStar(require("./deps/std/type_name.js"));
137
- const type_name_31 = __importStar(require("./deps/std/type_name.js"));
138
- const type_name_32 = __importStar(require("./deps/std/type_name.js"));
139
- const type_name_33 = __importStar(require("./deps/std/type_name.js"));
140
- const type_name_34 = __importStar(require("./deps/std/type_name.js"));
141
- const type_name_35 = __importStar(require("./deps/std/type_name.js"));
142
- const type_name_36 = __importStar(require("./deps/std/type_name.js"));
143
- const type_name_37 = __importStar(require("./deps/std/type_name.js"));
144
- const type_name_38 = __importStar(require("./deps/std/type_name.js"));
145
- const type_name_39 = __importStar(require("./deps/std/type_name.js"));
146
- const $moduleName = "@typus/perp::trading";
147
- exports.MarketRegistry = new index_js_1.MoveStruct({
148
- name: `${$moduleName}::MarketRegistry`,
149
- fields: {
150
- id: bcs_1.bcs.Address,
127
+ const object = __importStar(require("./deps/sui/object"));
128
+ const linked_object_table = __importStar(require("./deps/typus/linked_object_table"));
129
+ const type_name = __importStar(require("./deps/std/type_name"));
130
+ const object_table = __importStar(require("./deps/sui/object_table"));
131
+ const keyed_big_vector = __importStar(require("./deps/typus/keyed_big_vector"));
132
+ const table = __importStar(require("./deps/sui/table"));
133
+ const $moduleName = '@typus/perp::trading';
134
+ exports.MarketRegistry = new index_1.MoveStruct({ name: `${$moduleName}::MarketRegistry`, fields: {
135
+ id: object.UID,
151
136
  /** The UID of the referral registry. */
152
- referral_registry: bcs_1.bcs.Address,
137
+ referral_registry: object.UID,
153
138
  /** A linked object table of markets. */
154
139
  markets: linked_object_table.LinkedObjectTable(bcs_1.bcs.u64()),
155
140
  /** The number of markets. */
156
141
  num_market: bcs_1.bcs.u64(),
157
142
  /** Padding for future use. */
158
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
159
- },
160
- });
161
- exports.Markets = new index_js_1.MoveStruct({
162
- name: `${$moduleName}::Markets`,
163
- fields: {
164
- id: bcs_1.bcs.Address,
143
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
144
+ } });
145
+ exports.Markets = new index_1.MoveStruct({ name: `${$moduleName}::Markets`, fields: {
146
+ id: object.UID,
165
147
  /** The index of the market. */
166
148
  index: bcs_1.bcs.u64(),
167
149
  /** The type name of the LP token. */
168
150
  lp_token_type: type_name.TypeName,
169
151
  /** The type name of the quote token. */
170
- quote_token_type: type_name_1.TypeName,
152
+ quote_token_type: type_name.TypeName,
171
153
  /** Whether the market is active. */
172
154
  is_active: bcs_1.bcs.bool(),
173
155
  /** The protocol's share of the trading fee in basis points. */
174
156
  protocol_fee_share_bp: bcs_1.bcs.u64(),
175
157
  /** A vector of the symbols in the market. */
176
- symbols: bcs_1.bcs.vector(type_name_2.TypeName),
158
+ symbols: bcs_1.bcs.vector(type_name.TypeName),
177
159
  /** An object table of the symbol markets. */
178
160
  symbol_markets: object_table.ObjectTable,
179
161
  /** Padding for future use. */
180
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
181
- },
182
- });
183
- exports.MarketInfo = new index_js_1.MoveStruct({
184
- name: `${$moduleName}::MarketInfo`,
185
- fields: {
162
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
163
+ } });
164
+ exports.MarketInfo = new index_1.MoveStruct({ name: `${$moduleName}::MarketInfo`, fields: {
186
165
  /** Whether the market is active. */
187
166
  is_active: bcs_1.bcs.bool(),
188
167
  /** The number of decimals for the size. */
@@ -212,12 +191,9 @@ exports.MarketInfo = new index_js_1.MoveStruct({
212
191
  /** The previous cumulative funding rate index. */
213
192
  previous_cumulative_funding_rate_index: bcs_1.bcs.u64(),
214
193
  /** Padding for future use. */
215
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
216
- },
217
- });
218
- exports.MarketConfig = new index_js_1.MoveStruct({
219
- name: `${$moduleName}::MarketConfig`,
220
- fields: {
194
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
195
+ } });
196
+ exports.MarketConfig = new index_1.MoveStruct({ name: `${$moduleName}::MarketConfig`, fields: {
221
197
  /** The address of the oracle. */
222
198
  oracle_id: bcs_1.bcs.Address,
223
199
  /** The maximum leverage in mega basis points. */
@@ -236,111 +212,89 @@ exports.MarketConfig = new index_js_1.MoveStruct({
236
212
  funding_interval_ts_ms: bcs_1.bcs.u64(),
237
213
  /** The experience multiplier. */
238
214
  exp_multiplier: bcs_1.bcs.u64(),
239
- /** The position cool-down threshold in milliseconds. */
215
+ /** The cool-down threshold in milliseconds. */
240
216
  cool_down_threshold_ts_ms: bcs_1.bcs.u64(),
241
217
  /** Padding for future use. */
242
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
243
- },
244
- });
245
- exports.SymbolMarket = new index_js_1.MoveStruct({
246
- name: `${$moduleName}::SymbolMarket`,
247
- fields: {
248
- id: bcs_1.bcs.Address,
218
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
219
+ } });
220
+ exports.SymbolMarket = new index_1.MoveStruct({ name: `${$moduleName}::SymbolMarket`, fields: {
221
+ id: object.UID,
249
222
  /** A keyed big vector of user positions. */
250
223
  user_positions: keyed_big_vector.KeyedBigVector,
251
224
  /** The UID of the token collateral orders. */
252
- token_collateral_orders: bcs_1.bcs.Address,
225
+ token_collateral_orders: object.UID,
253
226
  /** The UID of the option collateral orders. */
254
- option_collateral_orders: bcs_1.bcs.Address,
227
+ option_collateral_orders: object.UID,
255
228
  /** Information about the market. */
256
229
  market_info: exports.MarketInfo,
257
230
  /** Configuration for the market. */
258
- market_config: exports.MarketConfig,
259
- },
260
- });
261
- exports.USD = new index_js_1.MoveStruct({
262
- name: `${$moduleName}::USD`,
263
- fields: {
264
- dummy_field: bcs_1.bcs.bool(),
265
- },
266
- });
267
- exports.NewMarketsEvent = new index_js_1.MoveStruct({
268
- name: `${$moduleName}::NewMarketsEvent`,
269
- fields: {
231
+ market_config: exports.MarketConfig
232
+ } });
233
+ exports.USD = new index_1.MoveStruct({ name: `${$moduleName}::USD`, fields: {
234
+ dummy_field: bcs_1.bcs.bool()
235
+ } });
236
+ exports.Referrals = new index_1.MoveStruct({ name: `${$moduleName}::Referrals`, fields: {
237
+ id: object.UID,
238
+ referral_infos: table.Table,
239
+ referrals: table.Table,
240
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
241
+ } });
242
+ exports.ReferralInfo = new index_1.MoveStruct({ name: `${$moduleName}::ReferralInfo`, fields: {
243
+ id: bcs_1.bcs.u64(),
244
+ fee_reduction_bp: bcs_1.bcs.u64(),
245
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
246
+ } });
247
+ exports.NewMarketsEvent = new index_1.MoveStruct({ name: `${$moduleName}::NewMarketsEvent`, fields: {
270
248
  index: bcs_1.bcs.u64(),
271
- lp_token_type: type_name_3.TypeName,
272
- quote_token_type: type_name_4.TypeName,
249
+ lp_token_type: type_name.TypeName,
250
+ quote_token_type: type_name.TypeName,
273
251
  protocol_fee_share_bp: bcs_1.bcs.u64(),
274
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
275
- },
276
- });
277
- exports.AddTradingSymbolEvent = new index_js_1.MoveStruct({
278
- name: `${$moduleName}::AddTradingSymbolEvent`,
279
- fields: {
252
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
253
+ } });
254
+ exports.AddTradingSymbolEvent = new index_1.MoveStruct({ name: `${$moduleName}::AddTradingSymbolEvent`, fields: {
280
255
  index: bcs_1.bcs.u64(),
281
- base_token_type: type_name_5.TypeName,
256
+ base_token_type: type_name.TypeName,
282
257
  market_info: exports.MarketInfo,
283
258
  market_config: exports.MarketConfig,
284
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
285
- },
286
- });
287
- exports.UpdateProtocolFeeShareBpEvent = new index_js_1.MoveStruct({
288
- name: `${$moduleName}::UpdateProtocolFeeShareBpEvent`,
289
- fields: {
259
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
260
+ } });
261
+ exports.UpdateProtocolFeeShareBpEvent = new index_1.MoveStruct({ name: `${$moduleName}::UpdateProtocolFeeShareBpEvent`, fields: {
290
262
  index: bcs_1.bcs.u64(),
291
263
  previous_protocol_fee_share_bp: bcs_1.bcs.u64(),
292
264
  new_protocol_fee_share_bp: bcs_1.bcs.u64(),
293
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
294
- },
295
- });
296
- exports.UpdateMarketConfigEvent = new index_js_1.MoveStruct({
297
- name: `${$moduleName}::UpdateMarketConfigEvent`,
298
- fields: {
265
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
266
+ } });
267
+ exports.UpdateMarketConfigEvent = new index_1.MoveStruct({ name: `${$moduleName}::UpdateMarketConfigEvent`, fields: {
299
268
  index: bcs_1.bcs.u64(),
300
- base_token_type: type_name_6.TypeName,
269
+ base_token_type: type_name.TypeName,
301
270
  previous_market_config: exports.MarketConfig,
302
271
  new_market_config: exports.MarketConfig,
303
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
304
- },
305
- });
306
- exports.SuspendMarketEvent = new index_js_1.MoveStruct({
307
- name: `${$moduleName}::SuspendMarketEvent`,
308
- fields: {
272
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
273
+ } });
274
+ exports.SuspendMarketEvent = new index_1.MoveStruct({ name: `${$moduleName}::SuspendMarketEvent`, fields: {
309
275
  index: bcs_1.bcs.u64(),
310
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
311
- },
312
- });
313
- exports.ResumeMarketEvent = new index_js_1.MoveStruct({
314
- name: `${$moduleName}::ResumeMarketEvent`,
315
- fields: {
276
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
277
+ } });
278
+ exports.ResumeMarketEvent = new index_1.MoveStruct({ name: `${$moduleName}::ResumeMarketEvent`, fields: {
316
279
  index: bcs_1.bcs.u64(),
317
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
318
- },
319
- });
320
- exports.SuspendTradingSymbolEvent = new index_js_1.MoveStruct({
321
- name: `${$moduleName}::SuspendTradingSymbolEvent`,
322
- fields: {
280
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
281
+ } });
282
+ exports.SuspendTradingSymbolEvent = new index_1.MoveStruct({ name: `${$moduleName}::SuspendTradingSymbolEvent`, fields: {
323
283
  index: bcs_1.bcs.u64(),
324
- suspended_base_token: type_name_7.TypeName,
325
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
326
- },
327
- });
328
- exports.ResumeTradingSymbolEvent = new index_js_1.MoveStruct({
329
- name: `${$moduleName}::ResumeTradingSymbolEvent`,
330
- fields: {
284
+ suspended_base_token: type_name.TypeName,
285
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
286
+ } });
287
+ exports.ResumeTradingSymbolEvent = new index_1.MoveStruct({ name: `${$moduleName}::ResumeTradingSymbolEvent`, fields: {
331
288
  index: bcs_1.bcs.u64(),
332
- resumed_base_token: type_name_8.TypeName,
333
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
334
- },
335
- });
336
- exports.CreateTradingOrderEvent = new index_js_1.MoveStruct({
337
- name: `${$moduleName}::CreateTradingOrderEvent`,
338
- fields: {
289
+ resumed_base_token: type_name.TypeName,
290
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
291
+ } });
292
+ exports.CreateTradingOrderEvent = new index_1.MoveStruct({ name: `${$moduleName}::CreateTradingOrderEvent`, fields: {
339
293
  user: bcs_1.bcs.Address,
340
294
  market_index: bcs_1.bcs.u64(),
341
295
  pool_index: bcs_1.bcs.u64(),
342
- collateral_token: type_name_9.TypeName,
343
- base_token: type_name_10.TypeName,
296
+ collateral_token: type_name.TypeName,
297
+ base_token: type_name.TypeName,
344
298
  order_id: bcs_1.bcs.u64(),
345
299
  linked_position_id: bcs_1.bcs.option(bcs_1.bcs.u64()),
346
300
  collateral_amount: bcs_1.bcs.u64(),
@@ -353,72 +307,57 @@ exports.CreateTradingOrderEvent = new index_js_1.MoveStruct({
353
307
  trading_pair_oracle_price: bcs_1.bcs.u64(),
354
308
  filled: bcs_1.bcs.bool(),
355
309
  filled_price: bcs_1.bcs.option(bcs_1.bcs.u64()),
356
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
357
- },
358
- });
359
- exports.ManagerCancelOrdersEvent = new index_js_1.MoveStruct({
360
- name: `${$moduleName}::ManagerCancelOrdersEvent`,
361
- fields: {
310
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
311
+ } });
312
+ exports.ManagerCancelOrdersEvent = new index_1.MoveStruct({ name: `${$moduleName}::ManagerCancelOrdersEvent`, fields: {
362
313
  reason: bcs_1.bcs.string(),
363
- collateral_token: type_name_11.TypeName,
364
- base_token: type_name_12.TypeName,
314
+ collateral_token: type_name.TypeName,
315
+ base_token: type_name.TypeName,
365
316
  order_type_tag: bcs_1.bcs.u8(),
366
317
  order_id: bcs_1.bcs.u64(),
367
318
  order_size: bcs_1.bcs.u64(),
368
319
  order_price: bcs_1.bcs.u64(),
369
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
370
- },
371
- });
372
- exports.CancelTradingOrderEvent = new index_js_1.MoveStruct({
373
- name: `${$moduleName}::CancelTradingOrderEvent`,
374
- fields: {
320
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
321
+ } });
322
+ exports.CancelTradingOrderEvent = new index_1.MoveStruct({ name: `${$moduleName}::CancelTradingOrderEvent`, fields: {
375
323
  user: bcs_1.bcs.Address,
376
324
  market_index: bcs_1.bcs.u64(),
377
325
  order_id: bcs_1.bcs.u64(),
378
326
  trigger_price: bcs_1.bcs.u64(),
379
- collateral_token: type_name_13.TypeName,
380
- base_token: type_name_14.TypeName,
327
+ collateral_token: type_name.TypeName,
328
+ base_token: type_name.TypeName,
381
329
  released_collateral_amount: bcs_1.bcs.u64(),
382
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
383
- },
384
- });
385
- exports.ReleaseCollateralEvent = new index_js_1.MoveStruct({
386
- name: `${$moduleName}::ReleaseCollateralEvent`,
387
- fields: {
330
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
331
+ } });
332
+ exports.ReleaseCollateralEvent = new index_1.MoveStruct({ name: `${$moduleName}::ReleaseCollateralEvent`, fields: {
388
333
  user: bcs_1.bcs.Address,
389
334
  market_index: bcs_1.bcs.u64(),
390
335
  pool_index: bcs_1.bcs.u64(),
391
336
  position_id: bcs_1.bcs.u64(),
392
- collateral_token: type_name_15.TypeName,
393
- base_token: type_name_16.TypeName,
337
+ collateral_token: type_name.TypeName,
338
+ base_token: type_name.TypeName,
394
339
  released_collateral_amount: bcs_1.bcs.u64(),
395
340
  remaining_collateral_amount: bcs_1.bcs.u64(),
396
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
397
- },
398
- });
399
- exports.IncreaseCollateralEvent = new index_js_1.MoveStruct({
400
- name: `${$moduleName}::IncreaseCollateralEvent`,
401
- fields: {
341
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
342
+ } });
343
+ exports.IncreaseCollateralEvent = new index_1.MoveStruct({ name: `${$moduleName}::IncreaseCollateralEvent`, fields: {
402
344
  user: bcs_1.bcs.Address,
403
345
  market_index: bcs_1.bcs.u64(),
404
346
  pool_index: bcs_1.bcs.u64(),
405
347
  position_id: bcs_1.bcs.u64(),
406
- collateral_token: type_name_17.TypeName,
407
- base_token: type_name_18.TypeName,
348
+ collateral_token: type_name.TypeName,
349
+ base_token: type_name.TypeName,
408
350
  increased_collateral_amount: bcs_1.bcs.u64(),
409
351
  remaining_collateral_amount: bcs_1.bcs.u64(),
410
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
411
- },
412
- });
413
- exports.CreateTradingOrderWithBidReceiptsEvent = new index_js_1.MoveStruct({
414
- name: `${$moduleName}::CreateTradingOrderWithBidReceiptsEvent`,
415
- fields: {
352
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
353
+ } });
354
+ exports.CreateTradingOrderWithBidReceiptsEvent = new index_1.MoveStruct({ name: `${$moduleName}::CreateTradingOrderWithBidReceiptsEvent`, fields: {
416
355
  user: bcs_1.bcs.Address,
417
356
  market_index: bcs_1.bcs.u64(),
418
357
  pool_index: bcs_1.bcs.u64(),
419
358
  dov_index: bcs_1.bcs.u64(),
420
- collateral_token: type_name_19.TypeName,
421
- base_token: type_name_20.TypeName,
359
+ collateral_token: type_name.TypeName,
360
+ base_token: type_name.TypeName,
422
361
  order_id: bcs_1.bcs.u64(),
423
362
  collateral_in_deposit_token: bcs_1.bcs.u64(),
424
363
  is_long: bcs_1.bcs.bool(),
@@ -426,124 +365,94 @@ exports.CreateTradingOrderWithBidReceiptsEvent = new index_js_1.MoveStruct({
426
365
  trigger_price: bcs_1.bcs.u64(),
427
366
  filled: bcs_1.bcs.bool(),
428
367
  filled_price: bcs_1.bcs.option(bcs_1.bcs.u64()),
429
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
430
- },
431
- });
432
- exports.MatchTradingOrderEvent = new index_js_1.MoveStruct({
433
- name: `${$moduleName}::MatchTradingOrderEvent`,
434
- fields: {
435
- collateral_token: type_name_21.TypeName,
436
- base_token: type_name_22.TypeName,
368
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
369
+ } });
370
+ exports.MatchTradingOrderEvent = new index_1.MoveStruct({ name: `${$moduleName}::MatchTradingOrderEvent`, fields: {
371
+ collateral_token: type_name.TypeName,
372
+ base_token: type_name.TypeName,
437
373
  matched_order_ids: bcs_1.bcs.vector(bcs_1.bcs.u64()),
438
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
439
- },
440
- });
441
- exports.ManagerReducePositionEvent = new index_js_1.MoveStruct({
442
- name: `${$moduleName}::ManagerReducePositionEvent`,
443
- fields: {
374
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
375
+ } });
376
+ exports.ManagerReducePositionEvent = new index_1.MoveStruct({ name: `${$moduleName}::ManagerReducePositionEvent`, fields: {
444
377
  user: bcs_1.bcs.Address,
445
- collateral_token: type_name_23.TypeName,
446
- base_token: type_name_24.TypeName,
378
+ collateral_token: type_name.TypeName,
379
+ base_token: type_name.TypeName,
447
380
  position_id: bcs_1.bcs.u64(),
448
381
  reduced_size: bcs_1.bcs.u64(),
449
382
  collateral_price: bcs_1.bcs.u64(),
450
383
  trading_price: bcs_1.bcs.u64(),
451
384
  cancelled_order_ids: bcs_1.bcs.vector(bcs_1.bcs.u64()),
452
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
453
- },
454
- });
455
- exports.ManagerClearPositionEvent = new index_js_1.MoveStruct({
456
- name: `${$moduleName}::ManagerClearPositionEvent`,
457
- fields: {
385
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
386
+ } });
387
+ exports.ManagerClearPositionEvent = new index_1.MoveStruct({ name: `${$moduleName}::ManagerClearPositionEvent`, fields: {
458
388
  user: bcs_1.bcs.Address,
459
- collateral_token: type_name_25.TypeName,
460
- base_token: type_name_26.TypeName,
389
+ collateral_token: type_name.TypeName,
390
+ base_token: type_name.TypeName,
461
391
  position_id: bcs_1.bcs.u64(),
462
392
  removed_size: bcs_1.bcs.u64(),
463
393
  cancelled_order_ids: bcs_1.bcs.vector(bcs_1.bcs.u64()),
464
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
465
- },
466
- });
467
- exports.ManagerCloseOptionPositionEvent = new index_js_1.MoveStruct({
468
- name: `${$moduleName}::ManagerCloseOptionPositionEvent`,
469
- fields: {
394
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
395
+ } });
396
+ exports.ManagerCloseOptionPositionEvent = new index_1.MoveStruct({ name: `${$moduleName}::ManagerCloseOptionPositionEvent`, fields: {
470
397
  user: bcs_1.bcs.Address,
471
- collateral_token: type_name_27.TypeName,
472
- base_token: type_name_28.TypeName,
398
+ collateral_token: type_name.TypeName,
399
+ base_token: type_name.TypeName,
473
400
  position_id: bcs_1.bcs.u64(),
474
401
  order_size: bcs_1.bcs.u64(),
475
402
  collateral_price: bcs_1.bcs.u64(),
476
403
  trading_price: bcs_1.bcs.u64(),
477
404
  cancelled_order_ids: bcs_1.bcs.vector(bcs_1.bcs.u64()),
478
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
479
- },
480
- });
481
- exports.LiquidationInfo = new index_js_1.MoveStruct({
482
- name: `${$moduleName}::LiquidationInfo`,
483
- fields: {
405
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
406
+ } });
407
+ exports.LiquidationInfo = new index_1.MoveStruct({ name: `${$moduleName}::LiquidationInfo`, fields: {
484
408
  position_id: bcs_1.bcs.u64(),
485
409
  dov_index: bcs_1.bcs.option(bcs_1.bcs.u64()),
486
- bid_token: bcs_1.bcs.option(type_name_29.TypeName),
487
- },
488
- });
489
- exports.LiquidateEvent = new index_js_1.MoveStruct({
490
- name: `${$moduleName}::LiquidateEvent`,
491
- fields: {
410
+ bid_token: bcs_1.bcs.option(type_name.TypeName)
411
+ } });
412
+ exports.LiquidateEvent = new index_1.MoveStruct({ name: `${$moduleName}::LiquidateEvent`, fields: {
492
413
  user: bcs_1.bcs.Address,
493
- collateral_token: type_name_30.TypeName,
494
- base_token: type_name_31.TypeName,
414
+ collateral_token: type_name.TypeName,
415
+ base_token: type_name.TypeName,
495
416
  position_id: bcs_1.bcs.u64(),
496
417
  collateral_price: bcs_1.bcs.u64(),
497
418
  trading_price: bcs_1.bcs.u64(),
498
419
  realized_liquidator_fee: bcs_1.bcs.u64(),
499
420
  realized_value_for_lp_pool: bcs_1.bcs.u64(),
500
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
501
- },
502
- });
503
- exports.SettleReceiptCollateralEvent = new index_js_1.MoveStruct({
504
- name: `${$moduleName}::SettleReceiptCollateralEvent`,
505
- fields: {
421
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
422
+ } });
423
+ exports.SettleReceiptCollateralEvent = new index_1.MoveStruct({ name: `${$moduleName}::SettleReceiptCollateralEvent`, fields: {
506
424
  user: bcs_1.bcs.Address,
507
- collateral_token: type_name_32.TypeName,
508
- bid_token: type_name_33.TypeName,
425
+ collateral_token: type_name.TypeName,
426
+ bid_token: type_name.TypeName,
509
427
  position_id: bcs_1.bcs.u64(),
510
428
  realized_liquidator_fee: bcs_1.bcs.u64(),
511
429
  remaining_unrealized_sign: bcs_1.bcs.bool(),
512
430
  remaining_unrealized_value: bcs_1.bcs.u64(),
513
431
  remaining_value_for_lp_pool: bcs_1.bcs.u64(),
514
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
515
- },
516
- });
517
- exports.UpdateFundingRateEvent = new index_js_1.MoveStruct({
518
- name: `${$moduleName}::UpdateFundingRateEvent`,
519
- fields: {
520
- base_token: type_name_34.TypeName,
432
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
433
+ } });
434
+ exports.UpdateFundingRateEvent = new index_1.MoveStruct({ name: `${$moduleName}::UpdateFundingRateEvent`, fields: {
435
+ base_token: type_name.TypeName,
521
436
  new_funding_ts_ms: bcs_1.bcs.u64(),
522
437
  intervals_count: bcs_1.bcs.u64(),
523
438
  previous_cumulative_funding_rate_index_sign: bcs_1.bcs.bool(),
524
439
  previous_cumulative_funding_rate_index: bcs_1.bcs.u64(),
525
440
  cumulative_funding_rate_index_sign: bcs_1.bcs.bool(),
526
441
  cumulative_funding_rate_index: bcs_1.bcs.u64(),
527
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
528
- },
529
- });
530
- exports.ExpiredPositionInfo = new index_js_1.MoveStruct({
531
- name: `${$moduleName}::ExpiredPositionInfo`,
532
- fields: {
442
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
443
+ } });
444
+ exports.ExpiredPositionInfo = new index_1.MoveStruct({ name: `${$moduleName}::ExpiredPositionInfo`, fields: {
533
445
  position_id: bcs_1.bcs.u64(),
534
446
  dov_index: bcs_1.bcs.u64(),
535
- collateral_token: type_name_35.TypeName,
536
- bid_token: type_name_36.TypeName,
537
- base_token: type_name_37.TypeName,
538
- },
539
- });
540
- exports.RealizeOptionPositionEvent = new index_js_1.MoveStruct({
541
- name: `${$moduleName}::RealizeOptionPositionEvent`,
542
- fields: {
447
+ collateral_token: type_name.TypeName,
448
+ bid_token: type_name.TypeName,
449
+ base_token: type_name.TypeName
450
+ } });
451
+ exports.RealizeOptionPositionEvent = new index_1.MoveStruct({ name: `${$moduleName}::RealizeOptionPositionEvent`, fields: {
543
452
  position_user: bcs_1.bcs.Address,
544
453
  position_id: bcs_1.bcs.u64(),
545
- trading_symbol: type_name_38.TypeName,
546
- realize_balance_token_type: type_name_39.TypeName,
454
+ trading_symbol: type_name.TypeName,
455
+ realize_balance_token_type: type_name.TypeName,
547
456
  exercise_balance_value: bcs_1.bcs.u64(),
548
457
  user_remaining_value: bcs_1.bcs.u64(),
549
458
  user_remaining_in_usd: bcs_1.bcs.u64(),
@@ -551,1135 +460,1605 @@ exports.RealizeOptionPositionEvent = new index_js_1.MoveStruct({
551
460
  fee_value: bcs_1.bcs.u64(),
552
461
  realized_trading_fee: bcs_1.bcs.u64(),
553
462
  realized_borrow_fee: bcs_1.bcs.u64(),
554
- u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64()),
555
- },
556
- });
463
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
464
+ } });
465
+ exports.MigrateMarketOracleIdEvent = new index_1.MoveStruct({ name: `${$moduleName}::MigrateMarketOracleIdEvent`, fields: {
466
+ sender: bcs_1.bcs.Address,
467
+ new_oracle_id: bcs_1.bcs.Address,
468
+ u64_padding: bcs_1.bcs.vector(bcs_1.bcs.u64())
469
+ } });
557
470
  function init(options = {}) {
558
- const packageAddress = options.package ?? "@typus/perp";
471
+ const packageAddress = options.package ?? '@typus/perp';
472
+ return (tx) => tx.moveCall({
473
+ package: packageAddress,
474
+ module: 'trading',
475
+ function: 'init',
476
+ });
477
+ }
478
+ function initReferralTable(options) {
479
+ const packageAddress = options.package ?? '@typus/perp';
480
+ const argumentsTypes = [
481
+ `${packageAddress}::admin::Version`,
482
+ `${packageAddress}::trading::MarketRegistry`
483
+ ];
484
+ const parameterNames = ["version", "registry"];
485
+ return (tx) => tx.moveCall({
486
+ package: packageAddress,
487
+ module: 'trading',
488
+ function: 'init_referral_table',
489
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
490
+ });
491
+ }
492
+ function addReferralInfo(options) {
493
+ const packageAddress = options.package ?? '@typus/perp';
494
+ const argumentsTypes = [
495
+ `${packageAddress}::admin::Version`,
496
+ `${packageAddress}::trading::MarketRegistry`,
497
+ '0x0000000000000000000000000000000000000000000000000000000000000001::string::String',
498
+ 'u64'
499
+ ];
500
+ const parameterNames = ["version", "registry", "code", "feeReductionBp"];
501
+ return (tx) => tx.moveCall({
502
+ package: packageAddress,
503
+ module: 'trading',
504
+ function: 'add_referral_info',
505
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
506
+ });
507
+ }
508
+ function removeReferralInfo(options) {
509
+ const packageAddress = options.package ?? '@typus/perp';
510
+ const argumentsTypes = [
511
+ `${packageAddress}::admin::Version`,
512
+ `${packageAddress}::trading::MarketRegistry`,
513
+ '0x0000000000000000000000000000000000000000000000000000000000000001::string::String'
514
+ ];
515
+ const parameterNames = ["version", "registry", "code"];
516
+ return (tx) => tx.moveCall({
517
+ package: packageAddress,
518
+ module: 'trading',
519
+ function: 'remove_referral_info',
520
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
521
+ });
522
+ }
523
+ function setReferral(options) {
524
+ const packageAddress = options.package ?? '@typus/perp';
525
+ const argumentsTypes = [
526
+ `${packageAddress}::admin::Version`,
527
+ `${packageAddress}::trading::MarketRegistry`,
528
+ '0x0000000000000000000000000000000000000000000000000000000000000001::string::String'
529
+ ];
530
+ const parameterNames = ["version", "registry", "code"];
531
+ return (tx) => tx.moveCall({
532
+ package: packageAddress,
533
+ module: 'trading',
534
+ function: 'set_referral',
535
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
536
+ });
537
+ }
538
+ function unsetReferral(options) {
539
+ const packageAddress = options.package ?? '@typus/perp';
540
+ const argumentsTypes = [
541
+ `${packageAddress}::admin::Version`,
542
+ `${packageAddress}::trading::MarketRegistry`,
543
+ 'address'
544
+ ];
545
+ const parameterNames = ["version", "registry", "user"];
559
546
  return (tx) => tx.moveCall({
560
547
  package: packageAddress,
561
- module: "trading",
562
- function: "init",
548
+ module: 'trading',
549
+ function: 'unset_referral',
550
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
563
551
  });
564
552
  }
565
553
  /** [Authorized Function] Creates a new market. */
566
554
  function newMarkets(options) {
567
- const packageAddress = options.package ?? "@typus/perp";
568
- const argumentsTypes = [null, null, "u64"];
555
+ const packageAddress = options.package ?? '@typus/perp';
556
+ const argumentsTypes = [
557
+ `${packageAddress}::admin::Version`,
558
+ `${packageAddress}::trading::MarketRegistry`,
559
+ 'u64'
560
+ ];
569
561
  const parameterNames = ["version", "registry", "protocolFeeShareBp"];
570
562
  return (tx) => tx.moveCall({
571
563
  package: packageAddress,
572
- module: "trading",
573
- function: "new_markets",
574
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
575
- typeArguments: options.typeArguments,
564
+ module: 'trading',
565
+ function: 'new_markets',
566
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
567
+ typeArguments: options.typeArguments
576
568
  });
577
569
  }
578
- /** [Authorized Function] Adds a new trading symbol to a market. */
570
+ /** [DEPRECATED] Use `add_trading_symbol_v2` with `&OracleV2` instead. */
579
571
  function addTradingSymbol(options) {
580
- const packageAddress = options.package ?? "@typus/perp";
581
- const argumentsTypes = [
582
- null,
583
- null,
584
- "u64",
585
- "u64",
586
- null,
587
- "u64",
588
- "u64",
589
- "u64",
590
- "u64",
591
- "vector<u64>",
592
- "u64",
593
- "u64",
594
- "u64",
595
- "u64",
596
- "u64",
597
- "u64",
598
- "u64",
599
- "u64",
600
- "vector<u64>",
601
- "u64",
602
- "u64",
603
- "0x2::clock::Clock",
604
- ];
605
- const parameterNames = [
606
- "version",
607
- "registry",
608
- "marketIndex",
609
- "sizeDecimal",
610
- "oracle",
611
- "maxLeverageMbp",
612
- "optionCollateralMaxLeverageMbp",
613
- "minSize",
614
- "lotSize",
615
- "tradingFeeConfig",
616
- "basicFundingRate",
617
- "fundingIntervalTsMs",
618
- "expMultiplier",
619
- "coolDownThresholdTsMs",
620
- "maxBuyOpenInterest",
621
- "maxSellOpenInterest",
622
- "maintenanceMarginRateBp",
623
- "optionMaintenanceMarginRateBp",
624
- "optionTradingFeeConfig",
625
- "tradingFeeFormulaVersion",
626
- "profitVaultFlag",
627
- ];
628
- return (tx) => tx.moveCall({
629
- package: packageAddress,
630
- module: "trading",
631
- function: "add_trading_symbol",
632
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
633
- typeArguments: options.typeArguments,
572
+ const packageAddress = options.package ?? '@typus/perp';
573
+ const argumentsTypes = [
574
+ `${packageAddress}::admin::Version`,
575
+ `${packageAddress}::trading::MarketRegistry`,
576
+ 'u64',
577
+ 'u64',
578
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
579
+ 'u64',
580
+ 'u64',
581
+ 'u64',
582
+ 'u64',
583
+ 'vector<u64>',
584
+ 'u64',
585
+ 'u64',
586
+ 'u64',
587
+ 'u64',
588
+ 'u64',
589
+ 'u64',
590
+ 'u64',
591
+ 'vector<u64>',
592
+ 'u64',
593
+ 'u64',
594
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock'
595
+ ];
596
+ const parameterNames = ["version", "registry", "marketIndex", "sizeDecimal", "oracle", "maxLeverageMbp", "optionCollateralMaxLeverageMbp", "minSize", "lotSize", "tradingFeeConfig", "basicFundingRate", "fundingIntervalTsMs", "expMultiplier", "maxBuyOpenInterest", "maxSellOpenInterest", "maintenanceMarginRateBp", "optionMaintenanceMarginRateBp", "optionTradingFeeConfig", "tradingFeeFormulaVersion", "profitVaultFlag"];
597
+ return (tx) => tx.moveCall({
598
+ package: packageAddress,
599
+ module: 'trading',
600
+ function: 'add_trading_symbol',
601
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
602
+ typeArguments: options.typeArguments
603
+ });
604
+ }
605
+ /** [Authorized Function] Adds a new trading symbol to a market. */
606
+ function addTradingSymbolV2(options) {
607
+ const packageAddress = options.package ?? '@typus/perp';
608
+ const argumentsTypes = [
609
+ `${packageAddress}::admin::Version`,
610
+ `${packageAddress}::trading::MarketRegistry`,
611
+ 'u64',
612
+ 'u64',
613
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
614
+ 'u64',
615
+ 'u64',
616
+ 'u64',
617
+ 'u64',
618
+ 'vector<u64>',
619
+ 'u64',
620
+ 'u64',
621
+ 'u64',
622
+ 'u64',
623
+ 'u64',
624
+ 'u64',
625
+ 'u64',
626
+ 'vector<u64>',
627
+ 'u64',
628
+ 'u64',
629
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock'
630
+ ];
631
+ const parameterNames = ["version", "registry", "marketIndex", "sizeDecimal", "oracleV2", "maxLeverageMbp", "optionCollateralMaxLeverageMbp", "minSize", "lotSize", "tradingFeeConfig", "basicFundingRate", "fundingIntervalTsMs", "expMultiplier", "maxBuyOpenInterest", "maxSellOpenInterest", "maintenanceMarginRateBp", "optionMaintenanceMarginRateBp", "optionTradingFeeConfig", "tradingFeeFormulaVersion", "profitVaultFlag"];
632
+ return (tx) => tx.moveCall({
633
+ package: packageAddress,
634
+ module: 'trading',
635
+ function: 'add_trading_symbol_v2',
636
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
637
+ typeArguments: options.typeArguments
634
638
  });
635
639
  }
636
640
  /** [Authorized Function] Updates the protocol fee share. */
637
641
  function updateProtocolFeeShareBp(options) {
638
- const packageAddress = options.package ?? "@typus/perp";
639
- const argumentsTypes = [null, null, "u64", "u64"];
642
+ const packageAddress = options.package ?? '@typus/perp';
643
+ const argumentsTypes = [
644
+ `${packageAddress}::admin::Version`,
645
+ `${packageAddress}::trading::MarketRegistry`,
646
+ 'u64',
647
+ 'u64'
648
+ ];
640
649
  const parameterNames = ["version", "registry", "marketIndex", "protocolFeeShareBp"];
641
650
  return (tx) => tx.moveCall({
642
651
  package: packageAddress,
643
- module: "trading",
644
- function: "update_protocol_fee_share_bp",
645
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
652
+ module: 'trading',
653
+ function: 'update_protocol_fee_share_bp',
654
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
646
655
  });
647
656
  }
648
657
  /** [Authorized Function] Updates the market configuration. */
649
658
  function updateMarketConfig(options) {
650
- const packageAddress = options.package ?? "@typus/perp";
651
- const argumentsTypes = [
652
- null,
653
- null,
654
- "u64",
655
- "0x1::option::Option<address>",
656
- "0x1::option::Option<u64>",
657
- "0x1::option::Option<u64>",
658
- "0x1::option::Option<u64>",
659
- "0x1::option::Option<u64>",
660
- "0x1::option::Option<vector<u64>>",
661
- "0x1::option::Option<u64>",
662
- "0x1::option::Option<u64>",
663
- "0x1::option::Option<u64>",
664
- "0x1::option::Option<u64>",
665
- "0x1::option::Option<u64>",
666
- "0x1::option::Option<u64>",
667
- "0x1::option::Option<u64>",
668
- "0x1::option::Option<u64>",
669
- "0x1::option::Option<vector<u64>>",
670
- "0x1::option::Option<u64>",
671
- "0x1::option::Option<u64>",
672
- ];
673
- const parameterNames = [
674
- "version",
675
- "registry",
676
- "marketIndex",
677
- "oracleId",
678
- "maxLeverageMbp",
679
- "optionCollateralMaxLeverageMbp",
680
- "minSize",
681
- "lotSize",
682
- "tradingFeeConfig",
683
- "basicFundingRate",
684
- "fundingIntervalTsMs",
685
- "expMultiplier",
686
- "coolDownThresholdTsMs",
687
- "maxBuyOpenInterest",
688
- "maxSellOpenInterest",
689
- "maintenanceMarginRateBp",
690
- "optionCollateralMaintenanceMarginRateBp",
691
- "optionCollateralTradingFeeConfig",
692
- "tradingFeeFormulaVersion",
693
- "profitVaultFlag",
694
- ];
695
- return (tx) => tx.moveCall({
696
- package: packageAddress,
697
- module: "trading",
698
- function: "update_market_config",
699
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
700
- typeArguments: options.typeArguments,
659
+ const packageAddress = options.package ?? '@typus/perp';
660
+ const argumentsTypes = [
661
+ `${packageAddress}::admin::Version`,
662
+ `${packageAddress}::trading::MarketRegistry`,
663
+ 'u64',
664
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<address>',
665
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>',
666
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>',
667
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>',
668
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>',
669
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<vector<u64>>',
670
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>',
671
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>',
672
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>',
673
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>',
674
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>',
675
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>',
676
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>',
677
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<vector<u64>>',
678
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>',
679
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>'
680
+ ];
681
+ const parameterNames = ["version", "registry", "marketIndex", "oracleId", "maxLeverageMbp", "optionCollateralMaxLeverageMbp", "minSize", "lotSize", "tradingFeeConfig", "basicFundingRate", "fundingIntervalTsMs", "expMultiplier", "maxBuyOpenInterest", "maxSellOpenInterest", "maintenanceMarginRateBp", "optionCollateralMaintenanceMarginRateBp", "optionCollateralTradingFeeConfig", "tradingFeeFormulaVersion", "profitVaultFlag"];
682
+ return (tx) => tx.moveCall({
683
+ package: packageAddress,
684
+ module: 'trading',
685
+ function: 'update_market_config',
686
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
687
+ typeArguments: options.typeArguments
701
688
  });
702
689
  }
703
690
  /** [Authorized Function] Suspends a market. */
704
691
  function suspendMarket(options) {
705
- const packageAddress = options.package ?? "@typus/perp";
706
- const argumentsTypes = [null, null, "u64"];
692
+ const packageAddress = options.package ?? '@typus/perp';
693
+ const argumentsTypes = [
694
+ `${packageAddress}::admin::Version`,
695
+ `${packageAddress}::trading::MarketRegistry`,
696
+ 'u64'
697
+ ];
707
698
  const parameterNames = ["version", "registry", "marketIndex"];
708
699
  return (tx) => tx.moveCall({
709
700
  package: packageAddress,
710
- module: "trading",
711
- function: "suspend_market",
712
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
701
+ module: 'trading',
702
+ function: 'suspend_market',
703
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
713
704
  });
714
705
  }
715
706
  /** [Authorized Function] Resumes a market. */
716
707
  function resumeMarket(options) {
717
- const packageAddress = options.package ?? "@typus/perp";
718
- const argumentsTypes = [null, null, "u64"];
708
+ const packageAddress = options.package ?? '@typus/perp';
709
+ const argumentsTypes = [
710
+ `${packageAddress}::admin::Version`,
711
+ `${packageAddress}::trading::MarketRegistry`,
712
+ 'u64'
713
+ ];
719
714
  const parameterNames = ["version", "registry", "marketIndex"];
720
715
  return (tx) => tx.moveCall({
721
716
  package: packageAddress,
722
- module: "trading",
723
- function: "resume_market",
724
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
717
+ module: 'trading',
718
+ function: 'resume_market',
719
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
725
720
  });
726
721
  }
727
722
  /** [Authorized Function] Suspends a trading symbol. */
728
723
  function suspendTradingSymbol(options) {
729
- const packageAddress = options.package ?? "@typus/perp";
730
- const argumentsTypes = [null, null, "u64"];
724
+ const packageAddress = options.package ?? '@typus/perp';
725
+ const argumentsTypes = [
726
+ `${packageAddress}::admin::Version`,
727
+ `${packageAddress}::trading::MarketRegistry`,
728
+ 'u64'
729
+ ];
731
730
  const parameterNames = ["version", "registry", "marketIndex"];
732
731
  return (tx) => tx.moveCall({
733
732
  package: packageAddress,
734
- module: "trading",
735
- function: "suspend_trading_symbol",
736
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
737
- typeArguments: options.typeArguments,
733
+ module: 'trading',
734
+ function: 'suspend_trading_symbol',
735
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
736
+ typeArguments: options.typeArguments
738
737
  });
739
738
  }
740
739
  /** [Authorized Function] Resumes a trading symbol. */
741
740
  function resumeTradingSymbol(options) {
742
- const packageAddress = options.package ?? "@typus/perp";
743
- const argumentsTypes = [null, null, "u64"];
741
+ const packageAddress = options.package ?? '@typus/perp';
742
+ const argumentsTypes = [
743
+ `${packageAddress}::admin::Version`,
744
+ `${packageAddress}::trading::MarketRegistry`,
745
+ 'u64'
746
+ ];
744
747
  const parameterNames = ["version", "registry", "marketIndex"];
745
748
  return (tx) => tx.moveCall({
746
749
  package: packageAddress,
747
- module: "trading",
748
- function: "resume_trading_symbol",
749
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
750
- typeArguments: options.typeArguments,
750
+ module: 'trading',
751
+ function: 'resume_trading_symbol',
752
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
753
+ typeArguments: options.typeArguments
751
754
  });
752
755
  }
753
756
  /** [Authorized Function] Removes a trading symbol from a market. */
754
757
  function removeTradingSymbol(options) {
755
- const packageAddress = options.package ?? "@typus/perp";
756
- const argumentsTypes = [null, null, "u64"];
758
+ const packageAddress = options.package ?? '@typus/perp';
759
+ const argumentsTypes = [
760
+ `${packageAddress}::admin::Version`,
761
+ `${packageAddress}::trading::MarketRegistry`,
762
+ 'u64'
763
+ ];
757
764
  const parameterNames = ["version", "registry", "marketIndex"];
758
765
  return (tx) => tx.moveCall({
759
766
  package: packageAddress,
760
- module: "trading",
761
- function: "remove_trading_symbol",
762
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
763
- typeArguments: options.typeArguments,
767
+ module: 'trading',
768
+ function: 'remove_trading_symbol',
769
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
770
+ typeArguments: options.typeArguments
764
771
  });
765
772
  }
766
- /** [User Function] Creates a new trading order. */
773
+ /** [DEPRECATED] Use `create_trading_order_v2` with `&OracleV2` instead. */
767
774
  function createTradingOrder(options) {
768
- const packageAddress = options.package ?? "@typus/perp";
769
- const argumentsTypes = [
770
- null,
771
- null,
772
- null,
773
- null,
774
- null,
775
- "0x2::clock::Clock",
776
- "u64",
777
- "u64",
778
- "0x1::option::Option<u64>",
779
- null,
780
- "bool",
781
- "bool",
782
- "bool",
783
- "u64",
784
- "u64",
785
- ];
786
- const parameterNames = [
787
- "version",
788
- "registry",
789
- "poolRegistry",
790
- "typusOracleCToken",
791
- "typusOracleTradingSymbol",
792
- "marketIndex",
793
- "poolIndex",
794
- "linkedPositionId",
795
- "collateral",
796
- "reduceOnly",
797
- "isLong",
798
- "isStopOrder",
799
- "size",
800
- "triggerPrice",
801
- ];
802
- return (tx) => tx.moveCall({
803
- package: packageAddress,
804
- module: "trading",
805
- function: "create_trading_order",
806
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
807
- typeArguments: options.typeArguments,
775
+ const packageAddress = options.package ?? '@typus/perp';
776
+ const argumentsTypes = [
777
+ `${packageAddress}::admin::Version`,
778
+ `${packageAddress}::trading::MarketRegistry`,
779
+ `${packageAddress}::lp_pool::Registry`,
780
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
781
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
782
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
783
+ 'u64',
784
+ 'u64',
785
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>',
786
+ `0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<${options.typeArguments[0]}>`,
787
+ 'bool',
788
+ 'bool',
789
+ 'bool',
790
+ 'u64',
791
+ 'u64'
792
+ ];
793
+ const parameterNames = ["version", "registry", "poolRegistry", "typusOracleCToken", "typusOracleTradingSymbol", "marketIndex", "poolIndex", "linkedPositionId", "collateral", "reduceOnly", "isLong", "isStopOrder", "size", "triggerPrice"];
794
+ return (tx) => tx.moveCall({
795
+ package: packageAddress,
796
+ module: 'trading',
797
+ function: 'create_trading_order',
798
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
799
+ typeArguments: options.typeArguments
800
+ });
801
+ }
802
+ /** [User Function] Creates a new trading order. */
803
+ function createTradingOrderV2(options) {
804
+ const packageAddress = options.package ?? '@typus/perp';
805
+ const argumentsTypes = [
806
+ `${packageAddress}::admin::Version`,
807
+ `${packageAddress}::trading::MarketRegistry`,
808
+ `${packageAddress}::lp_pool::Registry`,
809
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
810
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
811
+ 'u64',
812
+ 'u64',
813
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>',
814
+ `0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<${options.typeArguments[0]}>`,
815
+ 'bool',
816
+ 'bool',
817
+ 'bool',
818
+ 'u64',
819
+ 'u64'
820
+ ];
821
+ const parameterNames = ["version", "registry", "poolRegistry", "oracleV2", "marketIndex", "poolIndex", "linkedPositionId", "collateral", "reduceOnly", "isLong", "isStopOrder", "size", "triggerPrice"];
822
+ return (tx) => tx.moveCall({
823
+ package: packageAddress,
824
+ module: 'trading',
825
+ function: 'create_trading_order_v2',
826
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
827
+ typeArguments: options.typeArguments
808
828
  });
809
829
  }
810
830
  /** [User Function] Cancels a trading order. */
811
831
  function cancelTradingOrder(options) {
812
- const packageAddress = options.package ?? "@typus/perp";
813
- const argumentsTypes = [null, null, "u64", "u64", "u64", "0x1::option::Option<address>"];
832
+ const packageAddress = options.package ?? '@typus/perp';
833
+ const argumentsTypes = [
834
+ `${packageAddress}::admin::Version`,
835
+ `${packageAddress}::trading::MarketRegistry`,
836
+ 'u64',
837
+ 'u64',
838
+ 'u64',
839
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<address>'
840
+ ];
814
841
  const parameterNames = ["version", "registry", "marketIndex", "orderId", "triggerPrice", "orderUser"];
815
842
  return (tx) => tx.moveCall({
816
843
  package: packageAddress,
817
- module: "trading",
818
- function: "cancel_trading_order",
819
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
820
- typeArguments: options.typeArguments,
844
+ module: 'trading',
845
+ function: 'cancel_trading_order',
846
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
847
+ typeArguments: options.typeArguments
848
+ });
849
+ }
850
+ /** [DEPRECATED] Use `release_collateral_v2` with `&OracleV2` instead. */
851
+ function releaseCollateral(options) {
852
+ const packageAddress = options.package ?? '@typus/perp';
853
+ const argumentsTypes = [
854
+ `${packageAddress}::admin::Version`,
855
+ `${packageAddress}::trading::MarketRegistry`,
856
+ `${packageAddress}::lp_pool::Registry`,
857
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
858
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
859
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
860
+ 'u64',
861
+ 'u64',
862
+ 'u64',
863
+ 'u64'
864
+ ];
865
+ const parameterNames = ["version", "registry", "poolRegistry", "typusOracleCToken", "typusOracleTradingSymbol", "marketIndex", "poolIndex", "positionId", "releaseAmount"];
866
+ return (tx) => tx.moveCall({
867
+ package: packageAddress,
868
+ module: 'trading',
869
+ function: 'release_collateral',
870
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
871
+ typeArguments: options.typeArguments
821
872
  });
822
873
  }
823
874
  /**
824
875
  * [User Function] Releases collateral from a position. Safe with
825
876
  * `check_position_user_matched`
826
877
  */
827
- function releaseCollateral(options) {
828
- const packageAddress = options.package ?? "@typus/perp";
829
- const argumentsTypes = [null, null, null, null, null, "0x2::clock::Clock", "u64", "u64", "u64", "u64"];
830
- const parameterNames = [
831
- "version",
832
- "registry",
833
- "poolRegistry",
834
- "typusOracleCToken",
835
- "typusOracleTradingSymbol",
836
- "marketIndex",
837
- "poolIndex",
838
- "positionId",
839
- "releaseAmount",
878
+ function releaseCollateralV2(options) {
879
+ const packageAddress = options.package ?? '@typus/perp';
880
+ const argumentsTypes = [
881
+ `${packageAddress}::admin::Version`,
882
+ `${packageAddress}::trading::MarketRegistry`,
883
+ `${packageAddress}::lp_pool::Registry`,
884
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
885
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
886
+ 'u64',
887
+ 'u64',
888
+ 'u64',
889
+ 'u64'
840
890
  ];
891
+ const parameterNames = ["version", "registry", "poolRegistry", "oracleV2", "marketIndex", "poolIndex", "positionId", "releaseAmount"];
841
892
  return (tx) => tx.moveCall({
842
893
  package: packageAddress,
843
- module: "trading",
844
- function: "release_collateral",
845
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
846
- typeArguments: options.typeArguments,
894
+ module: 'trading',
895
+ function: 'release_collateral_v2',
896
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
897
+ typeArguments: options.typeArguments
898
+ });
899
+ }
900
+ /** [DEPRECATED] Use `increase_collateral_v2` with `&OracleV2` instead. */
901
+ function increaseCollateral(options) {
902
+ const packageAddress = options.package ?? '@typus/perp';
903
+ const argumentsTypes = [
904
+ `${packageAddress}::admin::Version`,
905
+ `${packageAddress}::trading::MarketRegistry`,
906
+ `${packageAddress}::lp_pool::Registry`,
907
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
908
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
909
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
910
+ 'u64',
911
+ 'u64',
912
+ 'u64',
913
+ `0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<${options.typeArguments[0]}>`
914
+ ];
915
+ const parameterNames = ["version", "registry", "poolRegistry", "typusOracleCToken", "typusOracleTradingSymbol", "marketIndex", "poolIndex", "positionId", "collateral"];
916
+ return (tx) => tx.moveCall({
917
+ package: packageAddress,
918
+ module: 'trading',
919
+ function: 'increase_collateral',
920
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
921
+ typeArguments: options.typeArguments
847
922
  });
848
923
  }
849
924
  /**
850
925
  * [User Function] Increases the collateral of a position. Safe with
851
926
  * `check_position_user_matched`
852
927
  */
853
- function increaseCollateral(options) {
854
- const packageAddress = options.package ?? "@typus/perp";
855
- const argumentsTypes = [null, null, null, null, null, "0x2::clock::Clock", "u64", "u64", "u64", null];
856
- const parameterNames = [
857
- "version",
858
- "registry",
859
- "poolRegistry",
860
- "typusOracleCToken",
861
- "typusOracleTradingSymbol",
862
- "marketIndex",
863
- "poolIndex",
864
- "positionId",
865
- "collateral",
928
+ function increaseCollateralV2(options) {
929
+ const packageAddress = options.package ?? '@typus/perp';
930
+ const argumentsTypes = [
931
+ `${packageAddress}::admin::Version`,
932
+ `${packageAddress}::trading::MarketRegistry`,
933
+ `${packageAddress}::lp_pool::Registry`,
934
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
935
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
936
+ 'u64',
937
+ 'u64',
938
+ 'u64',
939
+ `0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<${options.typeArguments[0]}>`
866
940
  ];
941
+ const parameterNames = ["version", "registry", "poolRegistry", "oracleV2", "marketIndex", "poolIndex", "positionId", "collateral"];
867
942
  return (tx) => tx.moveCall({
868
943
  package: packageAddress,
869
- module: "trading",
870
- function: "increase_collateral",
871
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
872
- typeArguments: options.typeArguments,
944
+ module: 'trading',
945
+ function: 'increase_collateral_v2',
946
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
947
+ typeArguments: options.typeArguments
873
948
  });
874
949
  }
875
- /** Collects the funding fee for a position. Safe with `check_position_user_matched` */
950
+ /** [DEPRECATED] Use `collect_position_funding_fee_v2` with `&OracleV2` instead. */
876
951
  function collectPositionFundingFee(options) {
877
- const packageAddress = options.package ?? "@typus/perp";
878
- const argumentsTypes = [null, null, null, null, null, "0x2::clock::Clock", "u64", "u64", "u64"];
879
- const parameterNames = [
880
- "version",
881
- "registry",
882
- "poolRegistry",
883
- "typusOracleCToken",
884
- "typusOracleTradingSymbol",
885
- "marketIndex",
886
- "poolIndex",
887
- "positionId",
952
+ const packageAddress = options.package ?? '@typus/perp';
953
+ const argumentsTypes = [
954
+ `${packageAddress}::admin::Version`,
955
+ `${packageAddress}::trading::MarketRegistry`,
956
+ `${packageAddress}::lp_pool::Registry`,
957
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
958
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
959
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
960
+ 'u64',
961
+ 'u64',
962
+ 'u64'
888
963
  ];
964
+ const parameterNames = ["version", "registry", "poolRegistry", "typusOracleCToken", "typusOracleTradingSymbol", "marketIndex", "poolIndex", "positionId"];
889
965
  return (tx) => tx.moveCall({
890
966
  package: packageAddress,
891
- module: "trading",
892
- function: "collect_position_funding_fee",
893
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
894
- typeArguments: options.typeArguments,
967
+ module: 'trading',
968
+ function: 'collect_position_funding_fee',
969
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
970
+ typeArguments: options.typeArguments
895
971
  });
896
972
  }
897
- /** [User Function] Creates a new trading order with a bid receipt as collateral. */
973
+ /** Collects the funding fee for a position. Safe with `check_position_user_matched` */
974
+ function collectPositionFundingFeeV2(options) {
975
+ const packageAddress = options.package ?? '@typus/perp';
976
+ const argumentsTypes = [
977
+ `${packageAddress}::admin::Version`,
978
+ `${packageAddress}::trading::MarketRegistry`,
979
+ `${packageAddress}::lp_pool::Registry`,
980
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
981
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
982
+ 'u64',
983
+ 'u64',
984
+ 'u64'
985
+ ];
986
+ const parameterNames = ["version", "registry", "poolRegistry", "oracleV2", "marketIndex", "poolIndex", "positionId"];
987
+ return (tx) => tx.moveCall({
988
+ package: packageAddress,
989
+ module: 'trading',
990
+ function: 'collect_position_funding_fee_v2',
991
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
992
+ typeArguments: options.typeArguments
993
+ });
994
+ }
995
+ /**
996
+ * [DEPRECATED] Use `create_trading_order_with_bid_receipt_v2` with `&OracleV2`
997
+ * instead.
998
+ */
898
999
  function createTradingOrderWithBidReceipt(options) {
899
- const packageAddress = options.package ?? "@typus/perp";
900
- const argumentsTypes = [
901
- null,
902
- null,
903
- null,
904
- null,
905
- null,
906
- null,
907
- "0x2::clock::Clock",
908
- "u64",
909
- "u64",
910
- null,
911
- null,
912
- null,
913
- null,
914
- null,
915
- null,
916
- "bool",
917
- ];
918
- const parameterNames = [
919
- "version",
920
- "registry",
921
- "poolRegistry",
922
- "dovRegistry",
923
- "typusOracleCToken",
924
- "typusOracleTradingSymbol",
925
- "marketIndex",
926
- "poolIndex",
927
- "typusEcosystemVersion",
928
- "typusUserRegistry",
929
- "typusLeaderboardRegistry",
930
- "tailsStakingRegistry",
931
- "competitionConfig",
932
- "collateralBidReceipt",
933
- "isLong",
934
- ];
935
- return (tx) => tx.moveCall({
936
- package: packageAddress,
937
- module: "trading",
938
- function: "create_trading_order_with_bid_receipt",
939
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
940
- typeArguments: options.typeArguments,
1000
+ const packageAddress = options.package ?? '@typus/perp';
1001
+ const argumentsTypes = [
1002
+ `${packageAddress}::admin::Version`,
1003
+ `${packageAddress}::trading::MarketRegistry`,
1004
+ `${packageAddress}::lp_pool::Registry`,
1005
+ '0x02821e55ac15f878ebc46f5bbd611de4d683c70e6308abb78880fd7f9d1d98ed::typus_dov_single::Registry',
1006
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
1007
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
1008
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1009
+ 'u64',
1010
+ 'u64',
1011
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::ecosystem::Version',
1012
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::user::TypusUserRegistry',
1013
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::leaderboard::TypusLeaderboardRegistry',
1014
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::tails_staking::TailsStakingRegistry',
1015
+ `${packageAddress}::competition::CompetitionConfig`,
1016
+ '0x908a10789a1a6953e0b73a997c10e3552f7ce4e2907afd00a334ed74bd973ded::vault::TypusBidReceipt',
1017
+ 'bool'
1018
+ ];
1019
+ const parameterNames = ["version", "registry", "poolRegistry", "dovRegistry", "typusOracleCToken", "typusOracleTradingSymbol", "marketIndex", "poolIndex", "typusEcosystemVersion", "typusUserRegistry", "typusLeaderboardRegistry", "tailsStakingRegistry", "competitionConfig", "collateralBidReceipt", "isLong"];
1020
+ return (tx) => tx.moveCall({
1021
+ package: packageAddress,
1022
+ module: 'trading',
1023
+ function: 'create_trading_order_with_bid_receipt',
1024
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1025
+ typeArguments: options.typeArguments
941
1026
  });
942
1027
  }
943
- /** [User Function] Reduces the size of an option collateral position. */
1028
+ /** [User Function] Creates a new trading order with a bid receipt as collateral. */
1029
+ function createTradingOrderWithBidReceiptV2(options) {
1030
+ const packageAddress = options.package ?? '@typus/perp';
1031
+ const argumentsTypes = [
1032
+ `${packageAddress}::admin::Version`,
1033
+ `${packageAddress}::trading::MarketRegistry`,
1034
+ `${packageAddress}::lp_pool::Registry`,
1035
+ '0x02821e55ac15f878ebc46f5bbd611de4d683c70e6308abb78880fd7f9d1d98ed::typus_dov_single::Registry',
1036
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
1037
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1038
+ 'u64',
1039
+ 'u64',
1040
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::ecosystem::Version',
1041
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::user::TypusUserRegistry',
1042
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::leaderboard::TypusLeaderboardRegistry',
1043
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::tails_staking::TailsStakingRegistry',
1044
+ `${packageAddress}::competition::CompetitionConfig`,
1045
+ '0x908a10789a1a6953e0b73a997c10e3552f7ce4e2907afd00a334ed74bd973ded::vault::TypusBidReceipt',
1046
+ 'bool'
1047
+ ];
1048
+ const parameterNames = ["version", "registry", "poolRegistry", "dovRegistry", "oracleV2", "marketIndex", "poolIndex", "typusEcosystemVersion", "typusUserRegistry", "typusLeaderboardRegistry", "tailsStakingRegistry", "competitionConfig", "collateralBidReceipt", "isLong"];
1049
+ return (tx) => tx.moveCall({
1050
+ package: packageAddress,
1051
+ module: 'trading',
1052
+ function: 'create_trading_order_with_bid_receipt_v2',
1053
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1054
+ typeArguments: options.typeArguments
1055
+ });
1056
+ }
1057
+ /**
1058
+ * [DEPRECATED] Use `reduce_option_collateral_position_size_v2` with `&OracleV2`
1059
+ * instead.
1060
+ */
944
1061
  function reduceOptionCollateralPositionSize(options) {
945
- const packageAddress = options.package ?? "@typus/perp";
946
- const argumentsTypes = [
947
- null,
948
- null,
949
- null,
950
- null,
951
- null,
952
- null,
953
- "0x2::clock::Clock",
954
- "u64",
955
- "u64",
956
- null,
957
- null,
958
- null,
959
- null,
960
- null,
961
- "u64",
962
- "0x1::option::Option<u64>",
963
- ];
964
- const parameterNames = [
965
- "version",
966
- "registry",
967
- "poolRegistry",
968
- "dovRegistry",
969
- "typusOracleCToken",
970
- "typusOracleTradingSymbol",
971
- "marketIndex",
972
- "poolIndex",
973
- "typusEcosystemVersion",
974
- "typusUserRegistry",
975
- "typusLeaderboardRegistry",
976
- "tailsStakingRegistry",
977
- "competitionConfig",
978
- "positionId",
979
- "orderSize",
980
- ];
981
- return (tx) => tx.moveCall({
982
- package: packageAddress,
983
- module: "trading",
984
- function: "reduce_option_collateral_position_size",
985
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
986
- typeArguments: options.typeArguments,
1062
+ const packageAddress = options.package ?? '@typus/perp';
1063
+ const argumentsTypes = [
1064
+ `${packageAddress}::admin::Version`,
1065
+ `${packageAddress}::trading::MarketRegistry`,
1066
+ `${packageAddress}::lp_pool::Registry`,
1067
+ '0x02821e55ac15f878ebc46f5bbd611de4d683c70e6308abb78880fd7f9d1d98ed::typus_dov_single::Registry',
1068
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
1069
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
1070
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1071
+ 'u64',
1072
+ 'u64',
1073
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::ecosystem::Version',
1074
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::user::TypusUserRegistry',
1075
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::leaderboard::TypusLeaderboardRegistry',
1076
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::tails_staking::TailsStakingRegistry',
1077
+ `${packageAddress}::competition::CompetitionConfig`,
1078
+ 'u64',
1079
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>'
1080
+ ];
1081
+ const parameterNames = ["version", "registry", "poolRegistry", "dovRegistry", "typusOracleCToken", "typusOracleTradingSymbol", "marketIndex", "poolIndex", "typusEcosystemVersion", "typusUserRegistry", "typusLeaderboardRegistry", "tailsStakingRegistry", "competitionConfig", "positionId", "orderSize"];
1082
+ return (tx) => tx.moveCall({
1083
+ package: packageAddress,
1084
+ module: 'trading',
1085
+ function: 'reduce_option_collateral_position_size',
1086
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1087
+ typeArguments: options.typeArguments
987
1088
  });
988
1089
  }
989
- /** [Authorized Function] Matches trading orders. */
1090
+ /** [User Function] Reduces the size of an option collateral position. */
1091
+ function reduceOptionCollateralPositionSizeV2(options) {
1092
+ const packageAddress = options.package ?? '@typus/perp';
1093
+ const argumentsTypes = [
1094
+ `${packageAddress}::admin::Version`,
1095
+ `${packageAddress}::trading::MarketRegistry`,
1096
+ `${packageAddress}::lp_pool::Registry`,
1097
+ '0x02821e55ac15f878ebc46f5bbd611de4d683c70e6308abb78880fd7f9d1d98ed::typus_dov_single::Registry',
1098
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
1099
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1100
+ 'u64',
1101
+ 'u64',
1102
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::ecosystem::Version',
1103
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::user::TypusUserRegistry',
1104
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::leaderboard::TypusLeaderboardRegistry',
1105
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::tails_staking::TailsStakingRegistry',
1106
+ `${packageAddress}::competition::CompetitionConfig`,
1107
+ 'u64',
1108
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>'
1109
+ ];
1110
+ const parameterNames = ["version", "registry", "poolRegistry", "dovRegistry", "oracleV2", "marketIndex", "poolIndex", "typusEcosystemVersion", "typusUserRegistry", "typusLeaderboardRegistry", "tailsStakingRegistry", "competitionConfig", "positionId", "orderSize"];
1111
+ return (tx) => tx.moveCall({
1112
+ package: packageAddress,
1113
+ module: 'trading',
1114
+ function: 'reduce_option_collateral_position_size_v2',
1115
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1116
+ typeArguments: options.typeArguments
1117
+ });
1118
+ }
1119
+ /** [DEPRECATED] Use `match_trading_order_v2` with `&OracleV2` instead. */
990
1120
  function matchTradingOrder(options) {
991
- const packageAddress = options.package ?? "@typus/perp";
992
- const argumentsTypes = [
993
- null,
994
- null,
995
- null,
996
- null,
997
- null,
998
- null,
999
- "0x2::clock::Clock",
1000
- "u64",
1001
- "u64",
1002
- null,
1003
- null,
1004
- null,
1005
- null,
1006
- null,
1007
- "u8",
1008
- "u64",
1009
- "u64",
1010
- ];
1011
- const parameterNames = [
1012
- "version",
1013
- "registry",
1014
- "poolRegistry",
1015
- "profitVault",
1016
- "typusOracleCToken",
1017
- "typusOracleTradingSymbol",
1018
- "marketIndex",
1019
- "poolIndex",
1020
- "typusEcosystemVersion",
1021
- "typusUserRegistry",
1022
- "typusLeaderboardRegistry",
1023
- "tailsStakingRegistry",
1024
- "competitionConfig",
1025
- "orderTypeTag",
1026
- "triggerPrice",
1027
- "maxOperationCount",
1028
- ];
1029
- return (tx) => tx.moveCall({
1030
- package: packageAddress,
1031
- module: "trading",
1032
- function: "match_trading_order",
1033
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1034
- typeArguments: options.typeArguments,
1121
+ const packageAddress = options.package ?? '@typus/perp';
1122
+ const argumentsTypes = [
1123
+ `${packageAddress}::admin::Version`,
1124
+ `${packageAddress}::trading::MarketRegistry`,
1125
+ `${packageAddress}::lp_pool::Registry`,
1126
+ `${packageAddress}::profit_vault::ProfitVault`,
1127
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
1128
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
1129
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1130
+ 'u64',
1131
+ 'u64',
1132
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::ecosystem::Version',
1133
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::user::TypusUserRegistry',
1134
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::leaderboard::TypusLeaderboardRegistry',
1135
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::tails_staking::TailsStakingRegistry',
1136
+ `${packageAddress}::competition::CompetitionConfig`,
1137
+ 'u8',
1138
+ 'u64',
1139
+ 'u64'
1140
+ ];
1141
+ const parameterNames = ["version", "registry", "poolRegistry", "profitVault", "typusOracleCToken", "typusOracleTradingSymbol", "marketIndex", "poolIndex", "typusEcosystemVersion", "typusUserRegistry", "typusLeaderboardRegistry", "tailsStakingRegistry", "competitionConfig", "orderTypeTag", "triggerPrice", "maxOperationCount"];
1142
+ return (tx) => tx.moveCall({
1143
+ package: packageAddress,
1144
+ module: 'trading',
1145
+ function: 'match_trading_order',
1146
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1147
+ typeArguments: options.typeArguments
1148
+ });
1149
+ }
1150
+ /** [Authorized Function] Matches trading orders. */
1151
+ function matchTradingOrderV2(options) {
1152
+ const packageAddress = options.package ?? '@typus/perp';
1153
+ const argumentsTypes = [
1154
+ `${packageAddress}::admin::Version`,
1155
+ `${packageAddress}::trading::MarketRegistry`,
1156
+ `${packageAddress}::lp_pool::Registry`,
1157
+ `${packageAddress}::profit_vault::ProfitVault`,
1158
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
1159
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1160
+ 'u64',
1161
+ 'u64',
1162
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::ecosystem::Version',
1163
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::user::TypusUserRegistry',
1164
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::leaderboard::TypusLeaderboardRegistry',
1165
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::tails_staking::TailsStakingRegistry',
1166
+ `${packageAddress}::competition::CompetitionConfig`,
1167
+ 'u8',
1168
+ 'u64',
1169
+ 'u64'
1170
+ ];
1171
+ const parameterNames = ["version", "registry", "poolRegistry", "profitVault", "oracleV2", "marketIndex", "poolIndex", "typusEcosystemVersion", "typusUserRegistry", "typusLeaderboardRegistry", "tailsStakingRegistry", "competitionConfig", "orderTypeTag", "triggerPrice", "maxOperationCount"];
1172
+ return (tx) => tx.moveCall({
1173
+ package: packageAddress,
1174
+ module: 'trading',
1175
+ function: 'match_trading_order_v2',
1176
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1177
+ typeArguments: options.typeArguments
1035
1178
  });
1036
1179
  }
1037
1180
  /** [Authorized Function] Cancels linked orders. */
1038
1181
  function cancelLinkedOrders(options) {
1039
- const packageAddress = options.package ?? "@typus/perp";
1040
- const argumentsTypes = [null, null, "u64", "vector<u64>", "vector<u64>", "address"];
1182
+ const packageAddress = options.package ?? '@typus/perp';
1183
+ const argumentsTypes = [
1184
+ `${packageAddress}::admin::Version`,
1185
+ `${packageAddress}::trading::MarketRegistry`,
1186
+ 'u64',
1187
+ 'vector<u64>',
1188
+ 'vector<u64>',
1189
+ 'address'
1190
+ ];
1041
1191
  const parameterNames = ["version", "registry", "marketIndex", "linkedOrderIds", "linkedOrderPrices", "user"];
1042
1192
  return (tx) => tx.moveCall({
1043
1193
  package: packageAddress,
1044
- module: "trading",
1045
- function: "cancel_linked_orders",
1046
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1047
- typeArguments: options.typeArguments,
1194
+ module: 'trading',
1195
+ function: 'cancel_linked_orders',
1196
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1197
+ typeArguments: options.typeArguments
1048
1198
  });
1049
1199
  }
1050
- /** [Authorized Function] Reduces a position by the manager. */
1200
+ /** [DEPRECATED] Use `manager_reduce_position_v2` with `&OracleV2` instead. */
1051
1201
  function managerReducePosition(options) {
1052
- const packageAddress = options.package ?? "@typus/perp";
1053
- const argumentsTypes = [
1054
- null,
1055
- null,
1056
- null,
1057
- null,
1058
- null,
1059
- null,
1060
- "0x2::clock::Clock",
1061
- "u64",
1062
- "u64",
1063
- null,
1064
- null,
1065
- null,
1066
- null,
1067
- null,
1068
- "u64",
1069
- "u64",
1070
- ];
1071
- const parameterNames = [
1072
- "version",
1073
- "registry",
1074
- "poolRegistry",
1075
- "profitVault",
1076
- "typusOracleCToken",
1077
- "typusOracleTradingSymbol",
1078
- "marketIndex",
1079
- "poolIndex",
1080
- "typusEcosystemVersion",
1081
- "typusUserRegistry",
1082
- "typusLeaderboardRegistry",
1083
- "tailsStakingRegistry",
1084
- "competitionConfig",
1085
- "positionId",
1086
- "reducedRatioBp",
1087
- ];
1088
- return (tx) => tx.moveCall({
1089
- package: packageAddress,
1090
- module: "trading",
1091
- function: "manager_reduce_position",
1092
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1093
- typeArguments: options.typeArguments,
1202
+ const packageAddress = options.package ?? '@typus/perp';
1203
+ const argumentsTypes = [
1204
+ `${packageAddress}::admin::Version`,
1205
+ `${packageAddress}::trading::MarketRegistry`,
1206
+ `${packageAddress}::lp_pool::Registry`,
1207
+ `${packageAddress}::profit_vault::ProfitVault`,
1208
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
1209
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
1210
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1211
+ 'u64',
1212
+ 'u64',
1213
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::ecosystem::Version',
1214
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::user::TypusUserRegistry',
1215
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::leaderboard::TypusLeaderboardRegistry',
1216
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::tails_staking::TailsStakingRegistry',
1217
+ `${packageAddress}::competition::CompetitionConfig`,
1218
+ 'u64',
1219
+ 'u64'
1220
+ ];
1221
+ const parameterNames = ["version", "registry", "poolRegistry", "profitVault", "typusOracleCToken", "typusOracleTradingSymbol", "marketIndex", "poolIndex", "typusEcosystemVersion", "typusUserRegistry", "typusLeaderboardRegistry", "tailsStakingRegistry", "competitionConfig", "positionId", "reducedRatioBp"];
1222
+ return (tx) => tx.moveCall({
1223
+ package: packageAddress,
1224
+ module: 'trading',
1225
+ function: 'manager_reduce_position',
1226
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1227
+ typeArguments: options.typeArguments
1228
+ });
1229
+ }
1230
+ /** [Authorized Function] Reduces a position by the manager. */
1231
+ function managerReducePositionV2(options) {
1232
+ const packageAddress = options.package ?? '@typus/perp';
1233
+ const argumentsTypes = [
1234
+ `${packageAddress}::admin::Version`,
1235
+ `${packageAddress}::trading::MarketRegistry`,
1236
+ `${packageAddress}::lp_pool::Registry`,
1237
+ `${packageAddress}::profit_vault::ProfitVault`,
1238
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
1239
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1240
+ 'u64',
1241
+ 'u64',
1242
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::ecosystem::Version',
1243
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::user::TypusUserRegistry',
1244
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::leaderboard::TypusLeaderboardRegistry',
1245
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::tails_staking::TailsStakingRegistry',
1246
+ `${packageAddress}::competition::CompetitionConfig`,
1247
+ 'u64',
1248
+ 'u64'
1249
+ ];
1250
+ const parameterNames = ["version", "registry", "poolRegistry", "profitVault", "oracleV2", "marketIndex", "poolIndex", "typusEcosystemVersion", "typusUserRegistry", "typusLeaderboardRegistry", "tailsStakingRegistry", "competitionConfig", "positionId", "reducedRatioBp"];
1251
+ return (tx) => tx.moveCall({
1252
+ package: packageAddress,
1253
+ module: 'trading',
1254
+ function: 'manager_reduce_position_v2',
1255
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1256
+ typeArguments: options.typeArguments
1094
1257
  });
1095
1258
  }
1096
1259
  function managerClearPosition(options) {
1097
- const packageAddress = options.package ?? "@typus/perp";
1098
- const argumentsTypes = [null, null, null, "u64", "u64", "u64"];
1260
+ const packageAddress = options.package ?? '@typus/perp';
1261
+ const argumentsTypes = [
1262
+ `${packageAddress}::admin::Version`,
1263
+ `${packageAddress}::trading::MarketRegistry`,
1264
+ `${packageAddress}::lp_pool::Registry`,
1265
+ 'u64',
1266
+ 'u64',
1267
+ 'u64'
1268
+ ];
1099
1269
  const parameterNames = ["version", "registry", "poolRegistry", "marketIndex", "poolIndex", "positionId"];
1100
1270
  return (tx) => tx.moveCall({
1101
1271
  package: packageAddress,
1102
- module: "trading",
1103
- function: "manager_clear_position",
1104
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1105
- typeArguments: options.typeArguments,
1272
+ module: 'trading',
1273
+ function: 'manager_clear_position',
1274
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1275
+ typeArguments: options.typeArguments
1106
1276
  });
1107
1277
  }
1108
- /** [Authorized Function] Closes an option position by the manager. */
1278
+ /** [DEPRECATED] Use `manager_close_option_position_v2` with `&OracleV2` instead. */
1109
1279
  function managerCloseOptionPosition(options) {
1110
- const packageAddress = options.package ?? "@typus/perp";
1111
- const argumentsTypes = [
1112
- null,
1113
- null,
1114
- null,
1115
- null,
1116
- null,
1117
- null,
1118
- "0x2::clock::Clock",
1119
- "u64",
1120
- "u64",
1121
- null,
1122
- null,
1123
- null,
1124
- null,
1125
- null,
1126
- "u64",
1127
- ];
1128
- const parameterNames = [
1129
- "version",
1130
- "registry",
1131
- "poolRegistry",
1132
- "dovRegistry",
1133
- "typusOracleCToken",
1134
- "typusOracleTradingSymbol",
1135
- "marketIndex",
1136
- "poolIndex",
1137
- "typusEcosystemVersion",
1138
- "typusUserRegistry",
1139
- "typusLeaderboardRegistry",
1140
- "tailsStakingRegistry",
1141
- "competitionConfig",
1142
- "positionId",
1143
- ];
1144
- return (tx) => tx.moveCall({
1145
- package: packageAddress,
1146
- module: "trading",
1147
- function: "manager_close_option_position",
1148
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1149
- typeArguments: options.typeArguments,
1280
+ const packageAddress = options.package ?? '@typus/perp';
1281
+ const argumentsTypes = [
1282
+ `${packageAddress}::admin::Version`,
1283
+ `${packageAddress}::trading::MarketRegistry`,
1284
+ `${packageAddress}::lp_pool::Registry`,
1285
+ '0x02821e55ac15f878ebc46f5bbd611de4d683c70e6308abb78880fd7f9d1d98ed::typus_dov_single::Registry',
1286
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
1287
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
1288
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1289
+ 'u64',
1290
+ 'u64',
1291
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::ecosystem::Version',
1292
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::user::TypusUserRegistry',
1293
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::leaderboard::TypusLeaderboardRegistry',
1294
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::tails_staking::TailsStakingRegistry',
1295
+ `${packageAddress}::competition::CompetitionConfig`,
1296
+ 'u64'
1297
+ ];
1298
+ const parameterNames = ["version", "registry", "poolRegistry", "dovRegistry", "typusOracleCToken", "typusOracleTradingSymbol", "marketIndex", "poolIndex", "typusEcosystemVersion", "typusUserRegistry", "typusLeaderboardRegistry", "tailsStakingRegistry", "competitionConfig", "positionId"];
1299
+ return (tx) => tx.moveCall({
1300
+ package: packageAddress,
1301
+ module: 'trading',
1302
+ function: 'manager_close_option_position',
1303
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1304
+ typeArguments: options.typeArguments
1305
+ });
1306
+ }
1307
+ /** [Authorized Function] Closes an option position by the manager. */
1308
+ function managerCloseOptionPositionV2(options) {
1309
+ const packageAddress = options.package ?? '@typus/perp';
1310
+ const argumentsTypes = [
1311
+ `${packageAddress}::admin::Version`,
1312
+ `${packageAddress}::trading::MarketRegistry`,
1313
+ `${packageAddress}::lp_pool::Registry`,
1314
+ '0x02821e55ac15f878ebc46f5bbd611de4d683c70e6308abb78880fd7f9d1d98ed::typus_dov_single::Registry',
1315
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
1316
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1317
+ 'u64',
1318
+ 'u64',
1319
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::ecosystem::Version',
1320
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::user::TypusUserRegistry',
1321
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::leaderboard::TypusLeaderboardRegistry',
1322
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::tails_staking::TailsStakingRegistry',
1323
+ `${packageAddress}::competition::CompetitionConfig`,
1324
+ 'u64'
1325
+ ];
1326
+ const parameterNames = ["version", "registry", "poolRegistry", "dovRegistry", "oracleV2", "marketIndex", "poolIndex", "typusEcosystemVersion", "typusUserRegistry", "typusLeaderboardRegistry", "tailsStakingRegistry", "competitionConfig", "positionId"];
1327
+ return (tx) => tx.moveCall({
1328
+ package: packageAddress,
1329
+ module: 'trading',
1330
+ function: 'manager_close_option_position_v2',
1331
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1332
+ typeArguments: options.typeArguments
1150
1333
  });
1151
1334
  }
1152
1335
  function getTradingFeeConfig(options) {
1153
- const packageAddress = options.package ?? "@typus/perp";
1154
- const argumentsTypes = [null, "bool"];
1336
+ const packageAddress = options.package ?? '@typus/perp';
1337
+ const argumentsTypes = [
1338
+ `${packageAddress}::trading::MarketConfig`,
1339
+ 'bool'
1340
+ ];
1155
1341
  const parameterNames = ["marketConfig", "isOptionPosition"];
1156
1342
  return (tx) => tx.moveCall({
1157
1343
  package: packageAddress,
1158
- module: "trading",
1159
- function: "get_trading_fee_config",
1160
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1344
+ module: 'trading',
1345
+ function: 'get_trading_fee_config',
1346
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1161
1347
  });
1162
1348
  }
1163
1349
  /** [View Function] Gets the liquidation information for a position. */
1164
1350
  function getLiquidationInfo(options) {
1165
- const packageAddress = options.package ?? "@typus/perp";
1166
- const argumentsTypes = [null, null, null, null, null, null, "0x2::clock::Clock", "u64", "u64", "bool"];
1167
- const parameterNames = [
1168
- "version",
1169
- "registry",
1170
- "poolRegistry",
1171
- "dovRegistry",
1172
- "typusOracleCToken",
1173
- "typusOracleTradingSymbol",
1174
- "marketIndex",
1175
- "poolIndex",
1176
- "getAll",
1351
+ const packageAddress = options.package ?? '@typus/perp';
1352
+ const argumentsTypes = [
1353
+ `${packageAddress}::admin::Version`,
1354
+ `${packageAddress}::trading::MarketRegistry`,
1355
+ `${packageAddress}::lp_pool::Registry`,
1356
+ '0x02821e55ac15f878ebc46f5bbd611de4d683c70e6308abb78880fd7f9d1d98ed::typus_dov_single::Registry',
1357
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
1358
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1359
+ 'u64',
1360
+ 'u64',
1361
+ 'bool'
1177
1362
  ];
1363
+ const parameterNames = ["version", "registry", "poolRegistry", "dovRegistry", "oracleV2", "marketIndex", "poolIndex", "getAll"];
1178
1364
  return (tx) => tx.moveCall({
1179
1365
  package: packageAddress,
1180
- module: "trading",
1181
- function: "get_liquidation_info",
1182
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1183
- typeArguments: options.typeArguments,
1366
+ module: 'trading',
1367
+ function: 'get_liquidation_info',
1368
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1369
+ typeArguments: options.typeArguments
1184
1370
  });
1185
1371
  }
1186
- /** [Authorized Function] Liquidates a position. */
1372
+ /** [DEPRECATED] Use `liquidate_v2` with `&OracleV2` instead. */
1187
1373
  function liquidate(options) {
1188
- const packageAddress = options.package ?? "@typus/perp";
1189
- const argumentsTypes = [null, null, null, null, null, null, "u64", "u64", "0x2::clock::Clock", "u64"];
1190
- const parameterNames = [
1191
- "version",
1192
- "registry",
1193
- "poolRegistry",
1194
- "dovRegistry",
1195
- "typusOracleCToken",
1196
- "typusOracleTradingSymbol",
1197
- "marketIndex",
1198
- "poolIndex",
1199
- "positionId",
1374
+ const packageAddress = options.package ?? '@typus/perp';
1375
+ const argumentsTypes = [
1376
+ `${packageAddress}::admin::Version`,
1377
+ `${packageAddress}::trading::MarketRegistry`,
1378
+ `${packageAddress}::lp_pool::Registry`,
1379
+ '0x02821e55ac15f878ebc46f5bbd611de4d683c70e6308abb78880fd7f9d1d98ed::typus_dov_single::Registry',
1380
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
1381
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
1382
+ 'u64',
1383
+ 'u64',
1384
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1385
+ 'u64'
1200
1386
  ];
1387
+ const parameterNames = ["version", "registry", "poolRegistry", "dovRegistry", "typusOracleCToken", "typusOracleTradingSymbol", "marketIndex", "poolIndex", "positionId"];
1201
1388
  return (tx) => tx.moveCall({
1202
1389
  package: packageAddress,
1203
- module: "trading",
1204
- function: "liquidate",
1205
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1206
- typeArguments: options.typeArguments,
1390
+ module: 'trading',
1391
+ function: 'liquidate',
1392
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1393
+ typeArguments: options.typeArguments
1207
1394
  });
1208
1395
  }
1209
- /** [Authorized Function] Settles receipt collateral. */
1396
+ /** [Authorized Function] Liquidates a position. */
1397
+ function liquidateV2(options) {
1398
+ const packageAddress = options.package ?? '@typus/perp';
1399
+ const argumentsTypes = [
1400
+ `${packageAddress}::admin::Version`,
1401
+ `${packageAddress}::trading::MarketRegistry`,
1402
+ `${packageAddress}::lp_pool::Registry`,
1403
+ '0x02821e55ac15f878ebc46f5bbd611de4d683c70e6308abb78880fd7f9d1d98ed::typus_dov_single::Registry',
1404
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
1405
+ 'u64',
1406
+ 'u64',
1407
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1408
+ 'u64'
1409
+ ];
1410
+ const parameterNames = ["version", "registry", "poolRegistry", "dovRegistry", "oracleV2", "marketIndex", "poolIndex", "positionId"];
1411
+ return (tx) => tx.moveCall({
1412
+ package: packageAddress,
1413
+ module: 'trading',
1414
+ function: 'liquidate_v2',
1415
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1416
+ typeArguments: options.typeArguments
1417
+ });
1418
+ }
1419
+ /** [DEPRECATED] Use `settle_receipt_collateral_v2` with `&OracleV2` instead. */
1210
1420
  function settleReceiptCollateral(options) {
1211
- const packageAddress = options.package ?? "@typus/perp";
1212
- const argumentsTypes = [null, null, null, null, null, "0x2::clock::Clock", "u64", "u64"];
1421
+ const packageAddress = options.package ?? '@typus/perp';
1422
+ const argumentsTypes = [
1423
+ `${packageAddress}::admin::Version`,
1424
+ `${packageAddress}::trading::MarketRegistry`,
1425
+ `${packageAddress}::lp_pool::Registry`,
1426
+ '0x02821e55ac15f878ebc46f5bbd611de4d683c70e6308abb78880fd7f9d1d98ed::typus_dov_single::Registry',
1427
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
1428
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1429
+ 'u64',
1430
+ 'u64'
1431
+ ];
1213
1432
  const parameterNames = ["version", "registry", "poolRegistry", "dovRegistry", "typusOracleCToken", "marketIndex", "poolIndex"];
1214
1433
  return (tx) => tx.moveCall({
1215
1434
  package: packageAddress,
1216
- module: "trading",
1217
- function: "settle_receipt_collateral",
1218
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1219
- typeArguments: options.typeArguments,
1435
+ module: 'trading',
1436
+ function: 'settle_receipt_collateral',
1437
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1438
+ typeArguments: options.typeArguments
1220
1439
  });
1221
1440
  }
1222
- /** [Authorized Function] Updates the funding rate. */
1441
+ /** [Authorized Function] Settles receipt collateral. */
1442
+ function settleReceiptCollateralV2(options) {
1443
+ const packageAddress = options.package ?? '@typus/perp';
1444
+ const argumentsTypes = [
1445
+ `${packageAddress}::admin::Version`,
1446
+ `${packageAddress}::trading::MarketRegistry`,
1447
+ `${packageAddress}::lp_pool::Registry`,
1448
+ '0x02821e55ac15f878ebc46f5bbd611de4d683c70e6308abb78880fd7f9d1d98ed::typus_dov_single::Registry',
1449
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
1450
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1451
+ 'u64',
1452
+ 'u64'
1453
+ ];
1454
+ const parameterNames = ["version", "registry", "poolRegistry", "dovRegistry", "oracleV2", "marketIndex", "poolIndex"];
1455
+ return (tx) => tx.moveCall({
1456
+ package: packageAddress,
1457
+ module: 'trading',
1458
+ function: 'settle_receipt_collateral_v2',
1459
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1460
+ typeArguments: options.typeArguments
1461
+ });
1462
+ }
1463
+ /** [DEPRECATED] Use `update_funding_rate_v2` with `&OracleV2` instead. */
1223
1464
  function updateFundingRate(options) {
1224
- const packageAddress = options.package ?? "@typus/perp";
1225
- const argumentsTypes = [null, null, null, null, "0x2::clock::Clock", "u64", "u64"];
1465
+ const packageAddress = options.package ?? '@typus/perp';
1466
+ const argumentsTypes = [
1467
+ `${packageAddress}::admin::Version`,
1468
+ `${packageAddress}::trading::MarketRegistry`,
1469
+ `${packageAddress}::lp_pool::Registry`,
1470
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle::Oracle',
1471
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1472
+ 'u64',
1473
+ 'u64'
1474
+ ];
1226
1475
  const parameterNames = ["version", "registry", "poolRegistry", "typusOracleTradingSymbol", "marketIndex", "poolIndex"];
1227
1476
  return (tx) => tx.moveCall({
1228
1477
  package: packageAddress,
1229
- module: "trading",
1230
- function: "update_funding_rate",
1231
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1232
- typeArguments: options.typeArguments,
1478
+ module: 'trading',
1479
+ function: 'update_funding_rate',
1480
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1481
+ typeArguments: options.typeArguments
1482
+ });
1483
+ }
1484
+ /** [Authorized Function] Updates the funding rate. */
1485
+ function updateFundingRateV2(options) {
1486
+ const packageAddress = options.package ?? '@typus/perp';
1487
+ const argumentsTypes = [
1488
+ `${packageAddress}::admin::Version`,
1489
+ `${packageAddress}::trading::MarketRegistry`,
1490
+ `${packageAddress}::lp_pool::Registry`,
1491
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
1492
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
1493
+ 'u64',
1494
+ 'u64'
1495
+ ];
1496
+ const parameterNames = ["version", "registry", "poolRegistry", "oracleV2", "marketIndex", "poolIndex"];
1497
+ return (tx) => tx.moveCall({
1498
+ package: packageAddress,
1499
+ module: 'trading',
1500
+ function: 'update_funding_rate_v2',
1501
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1502
+ typeArguments: options.typeArguments
1233
1503
  });
1234
1504
  }
1235
1505
  function getExpiredPositionInfo(options) {
1236
- const packageAddress = options.package ?? "@typus/perp";
1237
- const argumentsTypes = [null, null, null, null, "u64", "u64"];
1506
+ const packageAddress = options.package ?? '@typus/perp';
1507
+ const argumentsTypes = [
1508
+ `${packageAddress}::admin::Version`,
1509
+ `${packageAddress}::trading::MarketRegistry`,
1510
+ `${packageAddress}::lp_pool::Registry`,
1511
+ '0x02821e55ac15f878ebc46f5bbd611de4d683c70e6308abb78880fd7f9d1d98ed::typus_dov_single::Registry',
1512
+ 'u64',
1513
+ 'u64'
1514
+ ];
1238
1515
  const parameterNames = ["version", "registry", "poolRegistry", "dovRegistry", "marketIndex", "poolIndex"];
1239
1516
  return (tx) => tx.moveCall({
1240
1517
  package: packageAddress,
1241
- module: "trading",
1242
- function: "get_expired_position_info",
1243
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1518
+ module: 'trading',
1519
+ function: 'get_expired_position_info',
1520
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1521
+ });
1522
+ }
1523
+ /** [User Function] Creates a new user account. */
1524
+ function createUserAccount(options) {
1525
+ const packageAddress = options.package ?? '@typus/perp';
1526
+ const argumentsTypes = [
1527
+ `${packageAddress}::admin::Version`,
1528
+ `${packageAddress}::trading::MarketRegistry`,
1529
+ 'u64'
1530
+ ];
1531
+ const parameterNames = ["version", "registry", "marketIndex"];
1532
+ return (tx) => tx.moveCall({
1533
+ package: packageAddress,
1534
+ module: 'trading',
1535
+ function: 'create_user_account',
1536
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1537
+ });
1538
+ }
1539
+ /** Withdraws collateral from a user account. Safe with `UserAccountCap` */
1540
+ function withdrawUserAccount(options) {
1541
+ const packageAddress = options.package ?? '@typus/perp';
1542
+ const argumentsTypes = [
1543
+ `${packageAddress}::admin::Version`,
1544
+ `${packageAddress}::trading::MarketRegistry`,
1545
+ 'u64',
1546
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>',
1547
+ `${packageAddress}::user_account::UserAccountCap`
1548
+ ];
1549
+ const parameterNames = ["version", "registry", "marketIndex", "amount", "userAccountCap"];
1550
+ return (tx) => tx.moveCall({
1551
+ package: packageAddress,
1552
+ module: 'trading',
1553
+ function: 'withdraw_user_account',
1554
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1555
+ typeArguments: options.typeArguments
1244
1556
  });
1245
1557
  }
1246
1558
  function prepareOrderExecution(options) {
1247
- const packageAddress = options.package ?? "@typus/perp";
1248
- const argumentsTypes = [null, null, null];
1559
+ const packageAddress = options.package ?? '@typus/perp';
1560
+ const argumentsTypes = [
1561
+ `${packageAddress}::trading::SymbolMarket`,
1562
+ `${packageAddress}::lp_pool::LiquidityPool`,
1563
+ `${packageAddress}::position::TradingOrder`
1564
+ ];
1249
1565
  const parameterNames = ["symbolMarket", "liquidityPool", "order"];
1250
1566
  return (tx) => tx.moveCall({
1251
1567
  package: packageAddress,
1252
- module: "trading",
1253
- function: "prepare_order_execution",
1254
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1255
- typeArguments: options.typeArguments,
1568
+ module: 'trading',
1569
+ function: 'prepare_order_execution',
1570
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1571
+ typeArguments: options.typeArguments
1256
1572
  });
1257
1573
  }
1258
1574
  function executeOrder_(options) {
1259
- const packageAddress = options.package ?? "@typus/perp";
1260
- const argumentsTypes = [
1261
- null,
1262
- "u64",
1263
- null,
1264
- null,
1265
- null,
1266
- null,
1267
- "u64",
1268
- "u64",
1269
- "u64",
1270
- "u64",
1271
- "u64",
1272
- null,
1273
- null,
1274
- null,
1275
- null,
1276
- null,
1277
- "0x2::clock::Clock",
1278
- ];
1279
- const parameterNames = [
1280
- "version",
1281
- "marketIndex",
1282
- "symbolMarket",
1283
- "liquidityPool",
1284
- "profitVault",
1285
- "order",
1286
- "protocolFeeShareBp",
1287
- "collateralOraclePrice",
1288
- "collateralOraclePriceDecimal",
1289
- "tradingPairOraclePrice",
1290
- "tradingPairOraclePriceDecimal",
1291
- "typusEcosystemVersion",
1292
- "typusUserRegistry",
1293
- "typusLeaderboardRegistry",
1294
- "tailsStakingRegistry",
1295
- "competitionConfig",
1296
- ];
1297
- return (tx) => tx.moveCall({
1298
- package: packageAddress,
1299
- module: "trading",
1300
- function: "execute_order_",
1301
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1302
- typeArguments: options.typeArguments,
1575
+ const packageAddress = options.package ?? '@typus/perp';
1576
+ const argumentsTypes = [
1577
+ `${packageAddress}::admin::Version`,
1578
+ `${packageAddress}::trading::Referrals`,
1579
+ 'u64',
1580
+ `${packageAddress}::trading::SymbolMarket`,
1581
+ `${packageAddress}::lp_pool::LiquidityPool`,
1582
+ `${packageAddress}::profit_vault::ProfitVault`,
1583
+ `${packageAddress}::position::TradingOrder`,
1584
+ 'u64',
1585
+ 'u64',
1586
+ 'u64',
1587
+ 'u64',
1588
+ 'u64',
1589
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::ecosystem::Version',
1590
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::user::TypusUserRegistry',
1591
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::leaderboard::TypusLeaderboardRegistry',
1592
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::tails_staking::TailsStakingRegistry',
1593
+ `${packageAddress}::competition::CompetitionConfig`,
1594
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock'
1595
+ ];
1596
+ const parameterNames = ["version", "referrals", "marketIndex", "symbolMarket", "liquidityPool", "profitVault", "order", "protocolFeeShareBp", "collateralOraclePrice", "collateralOraclePriceDecimal", "tradingPairOraclePrice", "tradingPairOraclePriceDecimal", "typusEcosystemVersion", "typusUserRegistry", "typusLeaderboardRegistry", "tailsStakingRegistry", "competitionConfig"];
1597
+ return (tx) => tx.moveCall({
1598
+ package: packageAddress,
1599
+ module: 'trading',
1600
+ function: 'execute_order_',
1601
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1602
+ typeArguments: options.typeArguments
1303
1603
  });
1304
1604
  }
1305
1605
  function executeOptionCollateralOrder_(options) {
1306
- const packageAddress = options.package ?? "@typus/perp";
1307
- const argumentsTypes = [
1308
- null,
1309
- null,
1310
- null,
1311
- null,
1312
- null,
1313
- null,
1314
- null,
1315
- "u64",
1316
- "u64",
1317
- "u64",
1318
- "u64",
1319
- "u64",
1320
- "u64",
1321
- null,
1322
- null,
1323
- null,
1324
- null,
1325
- null,
1326
- "0x2::clock::Clock",
1327
- ];
1328
- const parameterNames = [
1329
- "version",
1330
- "dovRegistry",
1331
- "typusOracleTradingSymbol",
1332
- "typusOracleCToken",
1333
- "symbolMarket",
1334
- "liquidityPool",
1335
- "order",
1336
- "protocolFeeShareBp",
1337
- "collateralOraclePrice",
1338
- "collateralOraclePriceDecimal",
1339
- "tradingPairOraclePrice",
1340
- "tradingPairOraclePriceDecimal",
1341
- "tradingFeeMbp",
1342
- "typusEcosystemVersion",
1343
- "typusUserRegistry",
1344
- "typusLeaderboardRegistry",
1345
- "tailsStakingRegistry",
1346
- "competitionConfig",
1347
- ];
1348
- return (tx) => tx.moveCall({
1349
- package: packageAddress,
1350
- module: "trading",
1351
- function: "execute_option_collateral_order_",
1352
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1353
- typeArguments: options.typeArguments,
1606
+ const packageAddress = options.package ?? '@typus/perp';
1607
+ const argumentsTypes = [
1608
+ `${packageAddress}::admin::Version`,
1609
+ `${packageAddress}::trading::Referrals`,
1610
+ '0x02821e55ac15f878ebc46f5bbd611de4d683c70e6308abb78880fd7f9d1d98ed::typus_dov_single::Registry',
1611
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
1612
+ `${packageAddress}::trading::SymbolMarket`,
1613
+ `${packageAddress}::lp_pool::LiquidityPool`,
1614
+ `${packageAddress}::position::TradingOrder`,
1615
+ 'u64',
1616
+ 'u64',
1617
+ 'u64',
1618
+ 'u64',
1619
+ 'u64',
1620
+ 'u64',
1621
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::ecosystem::Version',
1622
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::user::TypusUserRegistry',
1623
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::leaderboard::TypusLeaderboardRegistry',
1624
+ '0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::tails_staking::TailsStakingRegistry',
1625
+ `${packageAddress}::competition::CompetitionConfig`,
1626
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock'
1627
+ ];
1628
+ const parameterNames = ["version", "referrals", "dovRegistry", "oracleV2", "symbolMarket", "liquidityPool", "order", "protocolFeeShareBp", "collateralOraclePrice", "collateralOraclePriceDecimal", "tradingPairOraclePrice", "tradingPairOraclePriceDecimal", "tradingFeeMbp", "typusEcosystemVersion", "typusUserRegistry", "typusLeaderboardRegistry", "tailsStakingRegistry", "competitionConfig"];
1629
+ return (tx) => tx.moveCall({
1630
+ package: packageAddress,
1631
+ module: 'trading',
1632
+ function: 'execute_option_collateral_order_',
1633
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1634
+ typeArguments: options.typeArguments
1354
1635
  });
1355
1636
  }
1356
1637
  function removeLinkedOrders(options) {
1357
- const packageAddress = options.package ?? "@typus/perp";
1358
- const argumentsTypes = [null, "u64", null, "vector<u64>", "vector<u64>", "address"];
1638
+ const packageAddress = options.package ?? '@typus/perp';
1639
+ const argumentsTypes = [
1640
+ `${packageAddress}::admin::Version`,
1641
+ 'u64',
1642
+ `${packageAddress}::trading::SymbolMarket`,
1643
+ 'vector<u64>',
1644
+ 'vector<u64>',
1645
+ 'address'
1646
+ ];
1359
1647
  const parameterNames = ["version", "marketIndex", "symbolMarket", "linkedOrderIds", "linkedOrderPrices", "user"];
1360
1648
  return (tx) => tx.moveCall({
1361
1649
  package: packageAddress,
1362
- module: "trading",
1363
- function: "remove_linked_orders",
1364
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1365
- typeArguments: options.typeArguments,
1650
+ module: 'trading',
1651
+ function: 'remove_linked_orders',
1652
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1653
+ typeArguments: options.typeArguments
1366
1654
  });
1367
1655
  }
1368
1656
  function removeLinkedOrder_(options) {
1369
- const packageAddress = options.package ?? "@typus/perp";
1370
- const argumentsTypes = [null, "u64", null, null, "address"];
1657
+ const packageAddress = options.package ?? '@typus/perp';
1658
+ const argumentsTypes = [
1659
+ `${packageAddress}::admin::Version`,
1660
+ 'u64',
1661
+ `${packageAddress}::trading::SymbolMarket`,
1662
+ `${packageAddress}::position::TradingOrder`,
1663
+ 'address'
1664
+ ];
1371
1665
  const parameterNames = ["version", "marketIndex", "symbolMarket", "order", "user"];
1372
1666
  return (tx) => tx.moveCall({
1373
1667
  package: packageAddress,
1374
- module: "trading",
1375
- function: "remove_linked_order_",
1376
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1377
- typeArguments: options.typeArguments,
1668
+ module: 'trading',
1669
+ function: 'remove_linked_order_',
1670
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1671
+ typeArguments: options.typeArguments
1378
1672
  });
1379
1673
  }
1380
1674
  function getMutOrders(options) {
1381
- const packageAddress = options.package ?? "@typus/perp";
1382
- const argumentsTypes = [null, "bool", "u8"];
1675
+ const packageAddress = options.package ?? '@typus/perp';
1676
+ const argumentsTypes = [
1677
+ `${packageAddress}::trading::SymbolMarket`,
1678
+ 'bool',
1679
+ 'u8'
1680
+ ];
1383
1681
  const parameterNames = ["symbolMarket", "isTokenCollateral", "orderTypeTag"];
1384
1682
  return (tx) => tx.moveCall({
1385
1683
  package: packageAddress,
1386
- module: "trading",
1387
- function: "get_mut_orders",
1388
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1684
+ module: 'trading',
1685
+ function: 'get_mut_orders',
1686
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1389
1687
  });
1390
1688
  }
1391
1689
  function getOrders(options) {
1392
- const packageAddress = options.package ?? "@typus/perp";
1393
- const argumentsTypes = [null, "bool", "u8"];
1690
+ const packageAddress = options.package ?? '@typus/perp';
1691
+ const argumentsTypes = [
1692
+ `${packageAddress}::trading::SymbolMarket`,
1693
+ 'bool',
1694
+ 'u8'
1695
+ ];
1394
1696
  const parameterNames = ["symbolMarket", "isTokenCollateral", "orderTypeTag"];
1395
1697
  return (tx) => tx.moveCall({
1396
1698
  package: packageAddress,
1397
- module: "trading",
1398
- function: "get_orders",
1399
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1699
+ module: 'trading',
1700
+ function: 'get_orders',
1701
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1400
1702
  });
1401
1703
  }
1402
1704
  function getOrderKey(options) {
1403
- const packageAddress = options.package ?? "@typus/perp";
1404
- const argumentsTypes = ["u8"];
1705
+ const packageAddress = options.package ?? '@typus/perp';
1706
+ const argumentsTypes = [
1707
+ 'u8'
1708
+ ];
1405
1709
  const parameterNames = ["orderTypeTag"];
1406
1710
  return (tx) => tx.moveCall({
1407
1711
  package: packageAddress,
1408
- module: "trading",
1409
- function: "get_order_key",
1410
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1712
+ module: 'trading',
1713
+ function: 'get_order_key',
1714
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1411
1715
  });
1412
1716
  }
1413
1717
  function takeOrderByOrderIdAndPrice(options) {
1414
- const packageAddress = options.package ?? "@typus/perp";
1415
- const argumentsTypes = [null, "u64", "u64", "bool", "address"];
1718
+ const packageAddress = options.package ?? '@typus/perp';
1719
+ const argumentsTypes = [
1720
+ `${packageAddress}::trading::SymbolMarket`,
1721
+ 'u64',
1722
+ 'u64',
1723
+ 'bool',
1724
+ 'address'
1725
+ ];
1416
1726
  const parameterNames = ["symbolMarket", "triggerPrice", "orderId", "isTokenCollateral", "user"];
1417
1727
  return (tx) => tx.moveCall({
1418
1728
  package: packageAddress,
1419
- module: "trading",
1420
- function: "take_order_by_order_id_and_price",
1421
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1729
+ module: 'trading',
1730
+ function: 'take_order_by_order_id_and_price',
1731
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1422
1732
  });
1423
1733
  }
1424
1734
  function getLinkedPosition(options) {
1425
- const packageAddress = options.package ?? "@typus/perp";
1426
- const argumentsTypes = [null, "0x1::option::Option<u64>", "address"];
1735
+ const packageAddress = options.package ?? '@typus/perp';
1736
+ const argumentsTypes = [
1737
+ `${packageAddress}::trading::SymbolMarket`,
1738
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>',
1739
+ 'address'
1740
+ ];
1427
1741
  const parameterNames = ["symbolMarket", "linkedPositionId", "user"];
1428
1742
  return (tx) => tx.moveCall({
1429
1743
  package: packageAddress,
1430
- module: "trading",
1431
- function: "get_linked_position",
1432
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1744
+ module: 'trading',
1745
+ function: 'get_linked_position',
1746
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1433
1747
  });
1434
1748
  }
1435
1749
  function checkCollateralEnoughWhenAddingPosition(options) {
1436
- const packageAddress = options.package ?? "@typus/perp";
1437
- const argumentsTypes = [null, null, "u64", "u64", "u64", "u64", "u64"];
1438
- const parameterNames = [
1439
- "symbolMarket",
1440
- "order",
1441
- "collateralOraclePrice",
1442
- "collateralOraclePriceDecimal",
1443
- "tradingPairOraclePrice",
1444
- "tradingPairOraclePriceDecimal",
1445
- "tradingFeeMbp",
1750
+ const packageAddress = options.package ?? '@typus/perp';
1751
+ const argumentsTypes = [
1752
+ `${packageAddress}::trading::SymbolMarket`,
1753
+ `${packageAddress}::position::TradingOrder`,
1754
+ 'u64',
1755
+ 'u64',
1756
+ 'u64',
1757
+ 'u64',
1758
+ 'u64'
1446
1759
  ];
1760
+ const parameterNames = ["symbolMarket", "order", "collateralOraclePrice", "collateralOraclePriceDecimal", "tradingPairOraclePrice", "tradingPairOraclePriceDecimal", "tradingFeeMbp"];
1447
1761
  return (tx) => tx.moveCall({
1448
1762
  package: packageAddress,
1449
- module: "trading",
1450
- function: "check_collateral_enough_when_adding_position",
1451
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1452
- typeArguments: options.typeArguments,
1763
+ module: 'trading',
1764
+ function: 'check_collateral_enough_when_adding_position',
1765
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1766
+ typeArguments: options.typeArguments
1453
1767
  });
1454
1768
  }
1455
1769
  function checkCollateralEnoughWhenReducingPosition(options) {
1456
- const packageAddress = options.package ?? "@typus/perp";
1457
- const argumentsTypes = [null, null, "u64", "u64", "u64", "u64", "u64"];
1458
- const parameterNames = [
1459
- "symbolMarket",
1460
- "order",
1461
- "collateralOraclePrice",
1462
- "collateralOraclePriceDecimal",
1463
- "tradingPairOraclePrice",
1464
- "tradingPairOraclePriceDecimal",
1465
- "tradingFeeMbp",
1770
+ const packageAddress = options.package ?? '@typus/perp';
1771
+ const argumentsTypes = [
1772
+ `${packageAddress}::trading::SymbolMarket`,
1773
+ `${packageAddress}::position::TradingOrder`,
1774
+ 'u64',
1775
+ 'u64',
1776
+ 'u64',
1777
+ 'u64',
1778
+ 'u64'
1466
1779
  ];
1780
+ const parameterNames = ["symbolMarket", "order", "collateralOraclePrice", "collateralOraclePriceDecimal", "tradingPairOraclePrice", "tradingPairOraclePriceDecimal", "tradingFeeMbp"];
1467
1781
  return (tx) => tx.moveCall({
1468
1782
  package: packageAddress,
1469
- module: "trading",
1470
- function: "check_collateral_enough_when_reducing_position",
1471
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1472
- typeArguments: options.typeArguments,
1783
+ module: 'trading',
1784
+ function: 'check_collateral_enough_when_reducing_position',
1785
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1786
+ typeArguments: options.typeArguments
1473
1787
  });
1474
1788
  }
1475
1789
  function checkOptionCollateralEnough(options) {
1476
- const packageAddress = options.package ?? "@typus/perp";
1477
- const argumentsTypes = [null, null, null, null, null, "u64", "u64", "u64", "u64", "u64", "0x2::clock::Clock"];
1478
- const parameterNames = [
1479
- "dovRegistry",
1480
- "typusOracleTradingSymbol",
1481
- "typusOracleCToken",
1482
- "symbolMarket",
1483
- "order",
1484
- "collateralOraclePrice",
1485
- "collateralOraclePriceDecimal",
1486
- "tradingPairOraclePrice",
1487
- "tradingPairOraclePriceDecimal",
1488
- "tradingFeeMbp",
1790
+ const packageAddress = options.package ?? '@typus/perp';
1791
+ const argumentsTypes = [
1792
+ '0x02821e55ac15f878ebc46f5bbd611de4d683c70e6308abb78880fd7f9d1d98ed::typus_dov_single::Registry',
1793
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
1794
+ `${packageAddress}::trading::SymbolMarket`,
1795
+ `${packageAddress}::position::TradingOrder`,
1796
+ 'u64',
1797
+ 'u64',
1798
+ 'u64',
1799
+ 'u64',
1800
+ 'u64',
1801
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock'
1489
1802
  ];
1803
+ const parameterNames = ["dovRegistry", "oracleV2", "symbolMarket", "order", "collateralOraclePrice", "collateralOraclePriceDecimal", "tradingPairOraclePrice", "tradingPairOraclePriceDecimal", "tradingFeeMbp"];
1490
1804
  return (tx) => tx.moveCall({
1491
1805
  package: packageAddress,
1492
- module: "trading",
1493
- function: "check_option_collateral_enough",
1494
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1495
- typeArguments: options.typeArguments,
1806
+ module: 'trading',
1807
+ function: 'check_option_collateral_enough',
1808
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1809
+ typeArguments: options.typeArguments
1496
1810
  });
1497
1811
  }
1498
1812
  function checkReserveEnough(options) {
1499
- const packageAddress = options.package ?? "@typus/perp";
1500
- const argumentsTypes = [null, null, null, "u64", "u64", "u64", "u64"];
1501
- const parameterNames = [
1502
- "symbolMarket",
1503
- "liquidityPool",
1504
- "order",
1505
- "collateralOraclePrice",
1506
- "collateralOraclePriceDecimal",
1507
- "tradingPairOraclePrice",
1508
- "tradingPairOraclePriceDecimal",
1813
+ const packageAddress = options.package ?? '@typus/perp';
1814
+ const argumentsTypes = [
1815
+ `${packageAddress}::trading::SymbolMarket`,
1816
+ `${packageAddress}::lp_pool::LiquidityPool`,
1817
+ `${packageAddress}::position::TradingOrder`,
1818
+ 'u64',
1819
+ 'u64',
1820
+ 'u64',
1821
+ 'u64'
1509
1822
  ];
1823
+ const parameterNames = ["symbolMarket", "liquidityPool", "order", "collateralOraclePrice", "collateralOraclePriceDecimal", "tradingPairOraclePrice", "tradingPairOraclePriceDecimal"];
1510
1824
  return (tx) => tx.moveCall({
1511
1825
  package: packageAddress,
1512
- module: "trading",
1513
- function: "check_reserve_enough",
1514
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1515
- typeArguments: options.typeArguments,
1826
+ module: 'trading',
1827
+ function: 'check_reserve_enough',
1828
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1829
+ typeArguments: options.typeArguments
1516
1830
  });
1517
1831
  }
1518
1832
  function getMaxReleasingCollateralAmount_(options) {
1519
- const packageAddress = options.package ?? "@typus/perp";
1520
- const argumentsTypes = [null, null, null, null, null, "u64", "u64", "u64", "u64", "u64"];
1521
- const parameterNames = [
1522
- "liquidityPool",
1523
- "position",
1524
- "marketInfo",
1525
- "marketConfig",
1526
- "collateralToken",
1527
- "collateralOraclePrice",
1528
- "collateralOraclePriceDecimal",
1529
- "tradingPairOraclePrice",
1530
- "tradingPairOraclePriceDecimal",
1531
- "cumulativeBorrowRate",
1833
+ const packageAddress = options.package ?? '@typus/perp';
1834
+ const argumentsTypes = [
1835
+ `${packageAddress}::lp_pool::LiquidityPool`,
1836
+ `${packageAddress}::position::Position`,
1837
+ `${packageAddress}::trading::MarketInfo`,
1838
+ `${packageAddress}::trading::MarketConfig`,
1839
+ '0x0000000000000000000000000000000000000000000000000000000000000001::type_name::TypeName',
1840
+ 'u64',
1841
+ 'u64',
1842
+ 'u64',
1843
+ 'u64',
1844
+ 'u64'
1845
+ ];
1846
+ const parameterNames = ["liquidityPool", "position", "marketInfo", "marketConfig", "collateralToken", "collateralOraclePrice", "collateralOraclePriceDecimal", "tradingPairOraclePrice", "tradingPairOraclePriceDecimal", "cumulativeBorrowRate"];
1847
+ return (tx) => tx.moveCall({
1848
+ package: packageAddress,
1849
+ module: 'trading',
1850
+ function: 'get_max_releasing_collateral_amount_',
1851
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1852
+ });
1853
+ }
1854
+ function getV2Price(options) {
1855
+ const packageAddress = options.package ?? '@typus/perp';
1856
+ const argumentsTypes = [
1857
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
1858
+ '0x0000000000000000000000000000000000000000000000000000000000000001::type_name::TypeName',
1859
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock'
1532
1860
  ];
1861
+ const parameterNames = ["oracleV2", "tokenType"];
1533
1862
  return (tx) => tx.moveCall({
1534
1863
  package: packageAddress,
1535
- module: "trading",
1536
- function: "get_max_releasing_collateral_amount_",
1537
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1864
+ module: 'trading',
1865
+ function: 'get_v2_price',
1866
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1538
1867
  });
1539
1868
  }
1540
1869
  function normalSafetyCheck(options) {
1541
- const packageAddress = options.package ?? "@typus/perp";
1542
- const argumentsTypes = [null, null, null, null, null, "u64", "u64", "0x1::option::Option<u64>"];
1543
- const parameterNames = [
1544
- "version",
1545
- "registry",
1546
- "poolRegistry",
1547
- "typusOracleCToken",
1548
- "typusOracleTradingSymbol",
1549
- "marketIndex",
1550
- "poolIndex",
1551
- "positionId",
1870
+ const packageAddress = options.package ?? '@typus/perp';
1871
+ const argumentsTypes = [
1872
+ `${packageAddress}::admin::Version`,
1873
+ `${packageAddress}::trading::MarketRegistry`,
1874
+ `${packageAddress}::lp_pool::Registry`,
1875
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
1876
+ 'u64',
1877
+ 'u64',
1878
+ '0x0000000000000000000000000000000000000000000000000000000000000001::option::Option<u64>'
1552
1879
  ];
1880
+ const parameterNames = ["version", "registry", "poolRegistry", "oracleV2", "marketIndex", "poolIndex", "positionId"];
1553
1881
  return (tx) => tx.moveCall({
1554
1882
  package: packageAddress,
1555
- module: "trading",
1556
- function: "normal_safety_check",
1557
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1558
- typeArguments: options.typeArguments,
1883
+ module: 'trading',
1884
+ function: 'normal_safety_check',
1885
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1886
+ typeArguments: options.typeArguments
1559
1887
  });
1560
1888
  }
1561
1889
  function validateTradingFeeConfig(options) {
1562
- const packageAddress = options.package ?? "@typus/perp";
1563
- const argumentsTypes = ["vector<u64>"];
1890
+ const packageAddress = options.package ?? '@typus/perp';
1891
+ const argumentsTypes = [
1892
+ 'vector<u64>'
1893
+ ];
1564
1894
  const parameterNames = ["config"];
1565
1895
  return (tx) => tx.moveCall({
1566
1896
  package: packageAddress,
1567
- module: "trading",
1568
- function: "validate_trading_fee_config",
1569
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1897
+ module: 'trading',
1898
+ function: 'validate_trading_fee_config',
1899
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1570
1900
  });
1571
1901
  }
1572
1902
  function adjustMarketInfoUserOrderSize(options) {
1573
- const packageAddress = options.package ?? "@typus/perp";
1574
- const argumentsTypes = [null, "bool", "bool", "u64"];
1903
+ const packageAddress = options.package ?? '@typus/perp';
1904
+ const argumentsTypes = [
1905
+ `${packageAddress}::trading::SymbolMarket`,
1906
+ 'bool',
1907
+ 'bool',
1908
+ 'u64'
1909
+ ];
1575
1910
  const parameterNames = ["symbolMarket", "long", "filledOrCancelled", "size"];
1576
1911
  return (tx) => tx.moveCall({
1577
1912
  package: packageAddress,
1578
- module: "trading",
1579
- function: "adjust_market_info_user_order_size",
1580
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1913
+ module: 'trading',
1914
+ function: 'adjust_market_info_user_order_size',
1915
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1581
1916
  });
1582
1917
  }
1583
1918
  function adjustMarketInfoUserPositionSize(options) {
1584
- const packageAddress = options.package ?? "@typus/perp";
1585
- const argumentsTypes = [null, "bool", "bool", "u64"];
1919
+ const packageAddress = options.package ?? '@typus/perp';
1920
+ const argumentsTypes = [
1921
+ `${packageAddress}::trading::SymbolMarket`,
1922
+ 'bool',
1923
+ 'bool',
1924
+ 'u64'
1925
+ ];
1586
1926
  const parameterNames = ["symbolMarket", "filledOrderIsLong", "reducingPosition", "size"];
1587
1927
  return (tx) => tx.moveCall({
1588
1928
  package: packageAddress,
1589
- module: "trading",
1590
- function: "adjust_market_info_user_position_size",
1591
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1929
+ module: 'trading',
1930
+ function: 'adjust_market_info_user_position_size',
1931
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1592
1932
  });
1593
1933
  }
1594
1934
  function exerciseBidReceipts(options) {
1595
- const packageAddress = options.package ?? "@typus/perp";
1596
- const argumentsTypes = [null, "vector<null>"];
1935
+ const packageAddress = options.package ?? '@typus/perp';
1936
+ const argumentsTypes = [
1937
+ '0x02821e55ac15f878ebc46f5bbd611de4d683c70e6308abb78880fd7f9d1d98ed::typus_dov_single::Registry',
1938
+ 'vector<0x908a10789a1a6953e0b73a997c10e3552f7ce4e2907afd00a334ed74bd973ded::vault::TypusBidReceipt>'
1939
+ ];
1597
1940
  const parameterNames = ["dovRegistry", "bidReceipts"];
1598
1941
  return (tx) => tx.moveCall({
1599
1942
  package: packageAddress,
1600
- module: "trading",
1601
- function: "exercise_bid_receipts",
1602
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1603
- typeArguments: options.typeArguments,
1943
+ module: 'trading',
1944
+ function: 'exercise_bid_receipts',
1945
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1946
+ typeArguments: options.typeArguments
1604
1947
  });
1605
1948
  }
1606
1949
  function returnToUser(options) {
1607
- const packageAddress = options.package ?? "@typus/perp";
1608
- const argumentsTypes = [null, "address"];
1950
+ const packageAddress = options.package ?? '@typus/perp';
1951
+ const argumentsTypes = [
1952
+ `0x0000000000000000000000000000000000000000000000000000000000000002::balance::Balance<${options.typeArguments[0]}>`,
1953
+ 'address'
1954
+ ];
1609
1955
  const parameterNames = ["balance", "user"];
1610
1956
  return (tx) => tx.moveCall({
1611
1957
  package: packageAddress,
1612
- module: "trading",
1613
- function: "return_to_user",
1614
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1615
- typeArguments: options.typeArguments,
1958
+ module: 'trading',
1959
+ function: 'return_to_user',
1960
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1961
+ typeArguments: options.typeArguments
1616
1962
  });
1617
1963
  }
1618
1964
  function checkPositionUserMatched(options) {
1619
- const packageAddress = options.package ?? "@typus/perp";
1620
- const argumentsTypes = [null, "address"];
1965
+ const packageAddress = options.package ?? '@typus/perp';
1966
+ const argumentsTypes = [
1967
+ `${packageAddress}::position::Position`,
1968
+ 'address'
1969
+ ];
1621
1970
  const parameterNames = ["position", "user"];
1622
1971
  return (tx) => tx.moveCall({
1623
1972
  package: packageAddress,
1624
- module: "trading",
1625
- function: "check_position_user_matched",
1626
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1973
+ module: 'trading',
1974
+ function: 'check_position_user_matched',
1975
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1976
+ });
1977
+ }
1978
+ function getUserReferral(options) {
1979
+ const packageAddress = options.package ?? '@typus/perp';
1980
+ const argumentsTypes = [
1981
+ `${packageAddress}::admin::Version`,
1982
+ `${packageAddress}::trading::MarketRegistry`,
1983
+ 'address'
1984
+ ];
1985
+ const parameterNames = ["version", "registry", "user"];
1986
+ return (tx) => tx.moveCall({
1987
+ package: packageAddress,
1988
+ module: 'trading',
1989
+ function: 'get_user_referral',
1990
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1627
1991
  });
1628
1992
  }
1629
1993
  /** [View Function] Gets the user's orders. */
1630
1994
  function getUserOrders(options) {
1631
- const packageAddress = options.package ?? "@typus/perp";
1632
- const argumentsTypes = [null, null, "u64", "address"];
1995
+ const packageAddress = options.package ?? '@typus/perp';
1996
+ const argumentsTypes = [
1997
+ `${packageAddress}::admin::Version`,
1998
+ `${packageAddress}::trading::MarketRegistry`,
1999
+ 'u64',
2000
+ 'address'
2001
+ ];
1633
2002
  const parameterNames = ["version", "registry", "marketIndex", "user"];
1634
2003
  return (tx) => tx.moveCall({
1635
2004
  package: packageAddress,
1636
- module: "trading",
1637
- function: "get_user_orders",
1638
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2005
+ module: 'trading',
2006
+ function: 'get_user_orders',
2007
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1639
2008
  });
1640
2009
  }
1641
2010
  /** [View Function] Gets the user's positions. */
1642
2011
  function getUserPositions(options) {
1643
- const packageAddress = options.package ?? "@typus/perp";
1644
- const argumentsTypes = [null, null, "u64", "address"];
2012
+ const packageAddress = options.package ?? '@typus/perp';
2013
+ const argumentsTypes = [
2014
+ `${packageAddress}::admin::Version`,
2015
+ `${packageAddress}::trading::MarketRegistry`,
2016
+ 'u64',
2017
+ 'address'
2018
+ ];
1645
2019
  const parameterNames = ["version", "registry", "marketIndex", "user"];
1646
2020
  return (tx) => tx.moveCall({
1647
2021
  package: packageAddress,
1648
- module: "trading",
1649
- function: "get_user_positions",
1650
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2022
+ module: 'trading',
2023
+ function: 'get_user_positions',
2024
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1651
2025
  });
1652
2026
  }
1653
2027
  /** [View Function] Gets all positions. */
1654
2028
  function getAllPositions(options) {
1655
- const packageAddress = options.package ?? "@typus/perp";
2029
+ const packageAddress = options.package ?? '@typus/perp';
1656
2030
  const argumentsTypes = [
1657
2031
  `${packageAddress}::admin::Version`,
1658
2032
  `${packageAddress}::trading::MarketRegistry`,
1659
- "u64",
1660
- "u64",
1661
- "u64",
2033
+ 'u64',
2034
+ 'u64',
2035
+ 'u64'
1662
2036
  ];
1663
2037
  const parameterNames = ["version", "registry", "marketIndex", "slice", "page"];
1664
2038
  return (tx) => tx.moveCall({
1665
2039
  package: packageAddress,
1666
- module: "trading",
1667
- function: "get_all_positions",
1668
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1669
- typeArguments: options.typeArguments,
2040
+ module: 'trading',
2041
+ function: 'get_all_positions',
2042
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2043
+ typeArguments: options.typeArguments
1670
2044
  });
1671
2045
  }
1672
2046
  /** [View Function] Gets active orders by order type tag. */
1673
2047
  function getActiveOrdersByOrderTag(options) {
1674
- const packageAddress = options.package ?? "@typus/perp";
1675
- const argumentsTypes = [null, null, "u64", "u8"];
2048
+ const packageAddress = options.package ?? '@typus/perp';
2049
+ const argumentsTypes = [
2050
+ `${packageAddress}::admin::Version`,
2051
+ `${packageAddress}::trading::MarketRegistry`,
2052
+ 'u64',
2053
+ 'u8'
2054
+ ];
1676
2055
  const parameterNames = ["version", "registry", "marketIndex", "orderTypeTag"];
1677
2056
  return (tx) => tx.moveCall({
1678
2057
  package: packageAddress,
1679
- module: "trading",
1680
- function: "get_active_orders_by_order_tag",
1681
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1682
- typeArguments: options.typeArguments,
2058
+ module: 'trading',
2059
+ function: 'get_active_orders_by_order_tag',
2060
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2061
+ typeArguments: options.typeArguments
1683
2062
  });
1684
2063
  }
1685
2064
  /**
@@ -1687,112 +2066,162 @@ function getActiveOrdersByOrderTag(options) {
1687
2066
  * a position.
1688
2067
  */
1689
2068
  function getMaxReleasingCollateralAmount(options) {
1690
- const packageAddress = options.package ?? "@typus/perp";
1691
- const argumentsTypes = [null, null, null, null, null, "0x2::clock::Clock", "u64", "u64", "u64"];
1692
- const parameterNames = [
1693
- "version",
1694
- "registry",
1695
- "poolRegistry",
1696
- "typusOracleCToken",
1697
- "typusOracleTradingSymbol",
1698
- "marketIndex",
1699
- "poolIndex",
1700
- "positionId",
2069
+ const packageAddress = options.package ?? '@typus/perp';
2070
+ const argumentsTypes = [
2071
+ `${packageAddress}::admin::Version`,
2072
+ `${packageAddress}::trading::MarketRegistry`,
2073
+ `${packageAddress}::lp_pool::Registry`,
2074
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
2075
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
2076
+ 'u64',
2077
+ 'u64',
2078
+ 'u64'
1701
2079
  ];
2080
+ const parameterNames = ["version", "registry", "poolRegistry", "oracleV2", "marketIndex", "poolIndex", "positionId"];
1702
2081
  return (tx) => tx.moveCall({
1703
2082
  package: packageAddress,
1704
- module: "trading",
1705
- function: "get_max_releasing_collateral_amount",
1706
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1707
- typeArguments: options.typeArguments,
2083
+ module: 'trading',
2084
+ function: 'get_max_releasing_collateral_amount',
2085
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2086
+ typeArguments: options.typeArguments
1708
2087
  });
1709
2088
  }
1710
2089
  /** [View Functio Only] Gets the estimated liquidation price and PnL for a position. */
1711
2090
  function getEstimatedLiquidationPriceAndPnl(options) {
1712
- const packageAddress = options.package ?? "@typus/perp";
1713
- const argumentsTypes = [null, null, null, null, null, null, "u64", "u64", "0x2::clock::Clock", "u64"];
1714
- const parameterNames = [
1715
- "version",
1716
- "registry",
1717
- "poolRegistry",
1718
- "dovRegistry",
1719
- "typusOracleCToken",
1720
- "typusOracleTradingSymbol",
1721
- "marketIndex",
1722
- "poolIndex",
1723
- "positionId",
2091
+ const packageAddress = options.package ?? '@typus/perp';
2092
+ const argumentsTypes = [
2093
+ `${packageAddress}::admin::Version`,
2094
+ `${packageAddress}::trading::MarketRegistry`,
2095
+ `${packageAddress}::lp_pool::Registry`,
2096
+ '0x02821e55ac15f878ebc46f5bbd611de4d683c70e6308abb78880fd7f9d1d98ed::typus_dov_single::Registry',
2097
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2',
2098
+ 'u64',
2099
+ 'u64',
2100
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
2101
+ 'u64'
1724
2102
  ];
2103
+ const parameterNames = ["version", "registry", "poolRegistry", "dovRegistry", "oracleV2", "marketIndex", "poolIndex", "positionId"];
1725
2104
  return (tx) => tx.moveCall({
1726
2105
  package: packageAddress,
1727
- module: "trading",
1728
- function: "get_estimated_liquidation_price_and_pnl",
1729
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1730
- typeArguments: options.typeArguments,
2106
+ module: 'trading',
2107
+ function: 'get_estimated_liquidation_price_and_pnl',
2108
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2109
+ typeArguments: options.typeArguments
1731
2110
  });
1732
2111
  }
1733
2112
  function calculateTradingFeeRateMbp(options) {
1734
- const packageAddress = options.package ?? "@typus/perp";
1735
- const argumentsTypes = ["u64", "u64", "u64", "u64", "u64", "u64", "u64", "bool", "u64", "vector<u64>"];
1736
- const parameterNames = [
1737
- "formulaVersion",
1738
- "userLongPositionSize",
1739
- "userShortPositionSize",
1740
- "tvlUsd",
1741
- "sizeDecimal",
1742
- "tradingPairOraclePrice",
1743
- "tradingPairOraclePriceDecimal",
1744
- "orderSide",
1745
- "orderSize",
1746
- "tradingFeeConfig",
2113
+ const packageAddress = options.package ?? '@typus/perp';
2114
+ const argumentsTypes = [
2115
+ 'u64',
2116
+ 'u64',
2117
+ 'u64',
2118
+ 'u64',
2119
+ 'u64',
2120
+ 'u64',
2121
+ 'u64',
2122
+ 'bool',
2123
+ 'u64',
2124
+ 'vector<u64>'
1747
2125
  ];
2126
+ const parameterNames = ["formulaVersion", "userLongPositionSize", "userShortPositionSize", "tvlUsd", "sizeDecimal", "tradingPairOraclePrice", "tradingPairOraclePriceDecimal", "orderSide", "orderSize", "tradingFeeConfig"];
1748
2127
  return (tx) => tx.moveCall({
1749
2128
  package: packageAddress,
1750
- module: "trading",
1751
- function: "calculate_trading_fee_rate_mbp",
1752
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2129
+ module: 'trading',
2130
+ function: 'calculate_trading_fee_rate_mbp',
2131
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1753
2132
  });
1754
2133
  }
1755
2134
  /** [View Function] Gets the BCS-serialized markets. */
1756
2135
  function getMarketsBcs(options) {
1757
- const packageAddress = options.package ?? "@typus/perp";
1758
- const argumentsTypes = [null, "vector<u64>"];
2136
+ const packageAddress = options.package ?? '@typus/perp';
2137
+ const argumentsTypes = [
2138
+ `${packageAddress}::trading::MarketRegistry`,
2139
+ 'vector<u64>'
2140
+ ];
1759
2141
  const parameterNames = ["registry", "indexes"];
1760
2142
  return (tx) => tx.moveCall({
1761
2143
  package: packageAddress,
1762
- module: "trading",
1763
- function: "get_markets_bcs",
1764
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2144
+ module: 'trading',
2145
+ function: 'get_markets_bcs',
2146
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1765
2147
  });
1766
2148
  }
1767
2149
  /** Gets a mutable reference to the market ID. WARNING: no authority check inside */
1768
2150
  function getMutMarketId(options) {
1769
- const packageAddress = options.package ?? "@typus/perp";
1770
- const argumentsTypes = [null, "u64"];
2151
+ const packageAddress = options.package ?? '@typus/perp';
2152
+ const argumentsTypes = [
2153
+ `${packageAddress}::trading::MarketRegistry`,
2154
+ 'u64'
2155
+ ];
1771
2156
  const parameterNames = ["registry", "marketIndex"];
1772
2157
  return (tx) => tx.moveCall({
1773
2158
  package: packageAddress,
1774
- module: "trading",
1775
- function: "get_mut_market_id",
1776
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2159
+ module: 'trading',
2160
+ function: 'get_mut_market_id',
2161
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1777
2162
  });
1778
2163
  }
1779
2164
  function tradingSymbolExists(options) {
1780
- const packageAddress = options.package ?? "@typus/perp";
1781
- const argumentsTypes = [null];
2165
+ const packageAddress = options.package ?? '@typus/perp';
2166
+ const argumentsTypes = [
2167
+ `${packageAddress}::trading::Markets`
2168
+ ];
1782
2169
  const parameterNames = ["market"];
1783
2170
  return (tx) => tx.moveCall({
1784
2171
  package: packageAddress,
1785
- module: "trading",
1786
- function: "trading_symbol_exists",
1787
- arguments: (0, index_js_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1788
- typeArguments: options.typeArguments,
2172
+ module: 'trading',
2173
+ function: 'trading_symbol_exists',
2174
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2175
+ typeArguments: options.typeArguments
2176
+ });
2177
+ }
2178
+ function managerCancelOrderByOpenInterestLimit(options) {
2179
+ const packageAddress = options.package ?? '@typus/perp';
2180
+ const argumentsTypes = [
2181
+ `${packageAddress}::admin::Version`,
2182
+ `${packageAddress}::trading::MarketRegistry`,
2183
+ `${packageAddress}::lp_pool::Registry`,
2184
+ '0x0000000000000000000000000000000000000000000000000000000000000002::clock::Clock',
2185
+ 'u64',
2186
+ 'u64',
2187
+ 'u8',
2188
+ 'u64',
2189
+ 'u64'
2190
+ ];
2191
+ const parameterNames = ["version", "registry", "poolRegistry", "marketIndex", "poolIndex", "orderTypeTag", "triggerPrice", "maxOperationCount"];
2192
+ return (tx) => tx.moveCall({
2193
+ package: packageAddress,
2194
+ module: 'trading',
2195
+ function: 'manager_cancel_order_by_open_interest_limit',
2196
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
2197
+ typeArguments: options.typeArguments
1789
2198
  });
1790
2199
  }
1791
2200
  function deprecated(options = {}) {
1792
- const packageAddress = options.package ?? "@typus/perp";
2201
+ const packageAddress = options.package ?? '@typus/perp';
2202
+ return (tx) => tx.moveCall({
2203
+ package: packageAddress,
2204
+ module: 'trading',
2205
+ function: 'deprecated',
2206
+ });
2207
+ }
2208
+ /**
2209
+ * [Authorized Function] Overwrite every SymbolMarket's `oracle_id` with the live
2210
+ * `OracleV2` id. Run once after upgrading typus_perp to point all market configs
2211
+ * at the redeployed OracleV2.
2212
+ */
2213
+ function migrateOracleIdToV2(options) {
2214
+ const packageAddress = options.package ?? '@typus/perp';
2215
+ const argumentsTypes = [
2216
+ `${packageAddress}::admin::Version`,
2217
+ `${packageAddress}::trading::MarketRegistry`,
2218
+ '0xd2e030ab7f0fc956c7e683cf3c6faf3d22868dee81a4aae9f4a10a6d998a8a02::oracle_v2::OracleV2'
2219
+ ];
2220
+ const parameterNames = ["version", "registry", "oracleV2"];
1793
2221
  return (tx) => tx.moveCall({
1794
2222
  package: packageAddress,
1795
- module: "trading",
1796
- function: "deprecated",
2223
+ module: 'trading',
2224
+ function: 'migrate_oracle_id_to_v2',
2225
+ arguments: (0, index_1.normalizeMoveArguments)(options.arguments, argumentsTypes, parameterNames),
1797
2226
  });
1798
2227
  }