@typus/typus-perp-sdk 1.2.2 → 1.3.0

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