@mysten/deepbook-v3 1.5.9 → 1.6.3

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 (183) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/dist/client.d.mts +5 -0
  3. package/dist/client.d.mts.map +1 -1
  4. package/dist/client.mjs +7 -0
  5. package/dist/client.mjs.map +1 -1
  6. package/dist/contracts/deepbook/account.d.mts +18 -18
  7. package/dist/contracts/deepbook/balance_manager.mjs +413 -0
  8. package/dist/contracts/deepbook/balance_manager.mjs.map +1 -0
  9. package/dist/contracts/deepbook/balances.d.mts +4 -4
  10. package/dist/contracts/deepbook/balances.d.mts.map +1 -1
  11. package/dist/contracts/deepbook/big_vector.mjs +43 -0
  12. package/dist/contracts/deepbook/big_vector.mjs.map +1 -0
  13. package/dist/contracts/deepbook/book.mjs +29 -0
  14. package/dist/contracts/deepbook/book.mjs.map +1 -0
  15. package/dist/contracts/deepbook/deep_price.mjs +1 -1
  16. package/dist/contracts/deepbook/deps/std/type_name.mjs +17 -0
  17. package/dist/contracts/deepbook/deps/std/type_name.mjs.map +1 -0
  18. package/dist/contracts/deepbook/deps/sui/bag.mjs +43 -0
  19. package/dist/contracts/deepbook/deps/sui/bag.mjs.map +1 -0
  20. package/dist/contracts/deepbook/deps/sui/balance.mjs +21 -0
  21. package/dist/contracts/deepbook/deps/sui/balance.mjs.map +1 -0
  22. package/dist/contracts/deepbook/deps/sui/table.mjs +38 -0
  23. package/dist/contracts/deepbook/deps/sui/table.mjs.map +1 -0
  24. package/dist/contracts/deepbook/deps/sui/vec_map.mjs +37 -0
  25. package/dist/contracts/deepbook/deps/sui/vec_map.mjs.map +1 -0
  26. package/dist/contracts/deepbook/deps/sui/versioned.mjs +19 -0
  27. package/dist/contracts/deepbook/deps/sui/versioned.mjs.map +1 -0
  28. package/dist/contracts/deepbook/governance.mjs +49 -0
  29. package/dist/contracts/deepbook/governance.mjs.map +1 -0
  30. package/dist/contracts/deepbook/history.mjs +56 -0
  31. package/dist/contracts/deepbook/history.mjs.map +1 -0
  32. package/dist/contracts/deepbook/pool.mjs +1739 -0
  33. package/dist/contracts/deepbook/pool.mjs.map +1 -0
  34. package/dist/contracts/deepbook/registry.mjs +295 -0
  35. package/dist/contracts/deepbook/registry.mjs.map +1 -0
  36. package/dist/contracts/deepbook/state.mjs +89 -0
  37. package/dist/contracts/deepbook/state.mjs.map +1 -0
  38. package/dist/contracts/deepbook/trade_params.mjs +21 -0
  39. package/dist/contracts/deepbook/trade_params.mjs.map +1 -0
  40. package/dist/contracts/deepbook/vault.mjs +42 -0
  41. package/dist/contracts/deepbook/vault.mjs.map +1 -0
  42. package/dist/contracts/deepbook_margin/deps/deepbook/balance_manager.mjs +53 -0
  43. package/dist/contracts/deepbook_margin/deps/deepbook/balance_manager.mjs.map +1 -0
  44. package/dist/contracts/deepbook_margin/deps/std/type_name.mjs +17 -0
  45. package/dist/contracts/deepbook_margin/deps/std/type_name.mjs.map +1 -0
  46. package/dist/contracts/deepbook_margin/deps/sui/bag.mjs +43 -0
  47. package/dist/contracts/deepbook_margin/deps/sui/bag.mjs.map +1 -0
  48. package/dist/contracts/deepbook_margin/deps/sui/balance.mjs +21 -0
  49. package/dist/contracts/deepbook_margin/deps/sui/balance.mjs.map +1 -0
  50. package/dist/contracts/deepbook_margin/deps/sui/table.mjs +38 -0
  51. package/dist/contracts/deepbook_margin/deps/sui/table.mjs.map +1 -0
  52. package/dist/contracts/deepbook_margin/deps/sui/vec_map.mjs +37 -0
  53. package/dist/contracts/deepbook_margin/deps/sui/vec_map.mjs.map +1 -0
  54. package/dist/contracts/deepbook_margin/deps/sui/vec_set.mjs +26 -0
  55. package/dist/contracts/deepbook_margin/deps/sui/vec_set.mjs.map +1 -0
  56. package/dist/contracts/deepbook_margin/deps/sui/versioned.mjs +19 -0
  57. package/dist/contracts/deepbook_margin/deps/sui/versioned.mjs.map +1 -0
  58. package/dist/contracts/deepbook_margin/margin_manager.mjs +989 -0
  59. package/dist/contracts/deepbook_margin/margin_manager.mjs.map +1 -0
  60. package/dist/contracts/deepbook_margin/margin_pool.mjs +550 -0
  61. package/dist/contracts/deepbook_margin/margin_pool.mjs.map +1 -0
  62. package/dist/contracts/deepbook_margin/margin_registry.mjs +786 -0
  63. package/dist/contracts/deepbook_margin/margin_registry.mjs.map +1 -0
  64. package/dist/contracts/deepbook_margin/margin_state.mjs +30 -0
  65. package/dist/contracts/deepbook_margin/margin_state.mjs.map +1 -0
  66. package/dist/contracts/deepbook_margin/oracle.mjs +82 -0
  67. package/dist/contracts/deepbook_margin/oracle.mjs.map +1 -0
  68. package/dist/contracts/deepbook_margin/pool_proxy.mjs +644 -0
  69. package/dist/contracts/deepbook_margin/pool_proxy.mjs.map +1 -0
  70. package/dist/contracts/deepbook_margin/position_manager.mjs +32 -0
  71. package/dist/contracts/deepbook_margin/position_manager.mjs.map +1 -0
  72. package/dist/contracts/deepbook_margin/protocol_config.mjs +122 -0
  73. package/dist/contracts/deepbook_margin/protocol_config.mjs.map +1 -0
  74. package/dist/contracts/deepbook_margin/protocol_fees.mjs +58 -0
  75. package/dist/contracts/deepbook_margin/protocol_fees.mjs.map +1 -0
  76. package/dist/contracts/deepbook_margin/rate_limiter.mjs +26 -0
  77. package/dist/contracts/deepbook_margin/rate_limiter.mjs.map +1 -0
  78. package/dist/contracts/deepbook_margin/tpsl.mjs +171 -0
  79. package/dist/contracts/deepbook_margin/tpsl.mjs.map +1 -0
  80. package/dist/contracts/margin_liquidation/deps/sui/bag.mjs +43 -0
  81. package/dist/contracts/margin_liquidation/deps/sui/bag.mjs.map +1 -0
  82. package/dist/contracts/margin_liquidation/liquidation_vault.mjs +179 -0
  83. package/dist/contracts/margin_liquidation/liquidation_vault.mjs.map +1 -0
  84. package/dist/contracts/utils/index.d.mts +1 -1
  85. package/dist/contracts/utils/index.mjs +92 -3
  86. package/dist/contracts/utils/index.mjs.map +1 -1
  87. package/dist/queries/registryQueries.mjs +13 -0
  88. package/dist/queries/registryQueries.mjs.map +1 -1
  89. package/dist/transactions/balanceManager.d.mts +12 -12
  90. package/dist/transactions/balanceManager.d.mts.map +1 -1
  91. package/dist/transactions/balanceManager.mjs +119 -100
  92. package/dist/transactions/balanceManager.mjs.map +1 -1
  93. package/dist/transactions/deepbook.d.mts +20 -20
  94. package/dist/transactions/deepbook.d.mts.map +1 -1
  95. package/dist/transactions/deepbook.mjs +464 -439
  96. package/dist/transactions/deepbook.mjs.map +1 -1
  97. package/dist/transactions/deepbookAdmin.d.mts +4 -4
  98. package/dist/transactions/deepbookAdmin.d.mts.map +1 -1
  99. package/dist/transactions/deepbookAdmin.mjs +151 -135
  100. package/dist/transactions/deepbookAdmin.mjs.map +1 -1
  101. package/dist/transactions/flashLoans.d.mts.map +1 -1
  102. package/dist/transactions/flashLoans.mjs +29 -22
  103. package/dist/transactions/flashLoans.mjs.map +1 -1
  104. package/dist/transactions/governance.d.mts.map +1 -1
  105. package/dist/transactions/governance.mjs +34 -33
  106. package/dist/transactions/governance.mjs.map +1 -1
  107. package/dist/transactions/marginAdmin.d.mts +17 -7
  108. package/dist/transactions/marginAdmin.d.mts.map +1 -1
  109. package/dist/transactions/marginAdmin.mjs +186 -169
  110. package/dist/transactions/marginAdmin.mjs.map +1 -1
  111. package/dist/transactions/marginLiquidations.d.mts +3 -3
  112. package/dist/transactions/marginLiquidations.d.mts.map +1 -1
  113. package/dist/transactions/marginLiquidations.mjs +53 -54
  114. package/dist/transactions/marginLiquidations.mjs.map +1 -1
  115. package/dist/transactions/marginMaintainer.d.mts +5 -5
  116. package/dist/transactions/marginMaintainer.d.mts.map +1 -1
  117. package/dist/transactions/marginMaintainer.mjs +83 -83
  118. package/dist/transactions/marginMaintainer.mjs.map +1 -1
  119. package/dist/transactions/marginManager.d.mts +32 -32
  120. package/dist/transactions/marginManager.d.mts.map +1 -1
  121. package/dist/transactions/marginManager.mjs +330 -311
  122. package/dist/transactions/marginManager.mjs.map +1 -1
  123. package/dist/transactions/marginPool.d.mts +18 -18
  124. package/dist/transactions/marginPool.d.mts.map +1 -1
  125. package/dist/transactions/marginPool.mjs +93 -89
  126. package/dist/transactions/marginPool.mjs.map +1 -1
  127. package/dist/transactions/marginRegistry.d.mts +22 -15
  128. package/dist/transactions/marginRegistry.d.mts.map +1 -1
  129. package/dist/transactions/marginRegistry.mjs +101 -68
  130. package/dist/transactions/marginRegistry.mjs.map +1 -1
  131. package/dist/transactions/marginTPSL.d.mts +27 -9
  132. package/dist/transactions/marginTPSL.d.mts.map +1 -1
  133. package/dist/transactions/marginTPSL.mjs +108 -82
  134. package/dist/transactions/marginTPSL.mjs.map +1 -1
  135. package/dist/transactions/poolProxy.d.mts +37 -5
  136. package/dist/transactions/poolProxy.d.mts.map +1 -1
  137. package/dist/transactions/poolProxy.mjs +269 -189
  138. package/dist/transactions/poolProxy.mjs.map +1 -1
  139. package/dist/utils/constants.mjs +4 -4
  140. package/dist/utils/constants.mjs.map +1 -1
  141. package/package.json +2 -2
  142. package/src/client.ts +8 -0
  143. package/src/contracts/deepbook/balance_manager.ts +46 -5
  144. package/src/contracts/deepbook/constants.ts +13 -0
  145. package/src/contracts/deepbook/pool.ts +133 -0
  146. package/src/contracts/deepbook/registry.ts +136 -1
  147. package/src/contracts/deepbook_margin/deps/deepbook/balance_manager.ts +49 -0
  148. package/src/contracts/deepbook_margin/deps/std/type_name.ts +24 -0
  149. package/src/contracts/deepbook_margin/deps/sui/bag.ts +41 -0
  150. package/src/contracts/deepbook_margin/deps/sui/balance.ts +19 -0
  151. package/src/contracts/deepbook_margin/deps/sui/table.ts +36 -0
  152. package/src/contracts/deepbook_margin/deps/sui/vec_map.ts +33 -0
  153. package/src/contracts/deepbook_margin/deps/sui/vec_set.ts +22 -0
  154. package/src/contracts/deepbook_margin/deps/sui/versioned.ts +13 -0
  155. package/src/contracts/deepbook_margin/margin_constants.ts +329 -0
  156. package/src/contracts/deepbook_margin/margin_manager.ts +1772 -0
  157. package/src/contracts/deepbook_margin/margin_pool.ts +1129 -0
  158. package/src/contracts/deepbook_margin/margin_registry.ts +1207 -0
  159. package/src/contracts/deepbook_margin/margin_state.ts +26 -0
  160. package/src/contracts/deepbook_margin/oracle.ts +99 -0
  161. package/src/contracts/deepbook_margin/pool_proxy.ts +1298 -0
  162. package/src/contracts/deepbook_margin/position_manager.ts +28 -0
  163. package/src/contracts/deepbook_margin/protocol_config.ts +163 -0
  164. package/src/contracts/deepbook_margin/protocol_fees.ts +153 -0
  165. package/src/contracts/deepbook_margin/rate_limiter.ts +80 -0
  166. package/src/contracts/deepbook_margin/tpsl.ts +559 -0
  167. package/src/contracts/margin_liquidation/deps/sui/bag.ts +41 -0
  168. package/src/contracts/margin_liquidation/liquidation_vault.ts +401 -0
  169. package/src/queries/registryQueries.ts +15 -0
  170. package/src/transactions/balanceManager.ts +140 -90
  171. package/src/transactions/deepbook.ts +586 -494
  172. package/src/transactions/deepbookAdmin.ts +154 -146
  173. package/src/transactions/flashLoans.ts +29 -20
  174. package/src/transactions/governance.ts +50 -37
  175. package/src/transactions/marginAdmin.ts +247 -188
  176. package/src/transactions/marginLiquidations.ts +70 -55
  177. package/src/transactions/marginMaintainer.ts +106 -88
  178. package/src/transactions/marginManager.ts +414 -348
  179. package/src/transactions/marginPool.ts +140 -103
  180. package/src/transactions/marginRegistry.ts +103 -70
  181. package/src/transactions/marginTPSL.ts +151 -87
  182. package/src/transactions/poolProxy.ts +384 -205
  183. package/src/utils/constants.ts +4 -4
@@ -1,3 +1,5 @@
1
+ import { allowedMaintainers, allowedPauseCaps, baseMarginPoolId, getDeepbookPoolMarginPoolIds, getMarginManagerIds, getMarginPoolId, liquidationRiskRatio, minBorrowRiskRatio, minOpenRiskRatio, minWithdrawRiskRatio, poolEnabled, poolLiquidationReward, quoteMarginPoolId, targetLiquidationRiskRatio, userLiquidationReward } from "../contracts/deepbook_margin/margin_registry.mjs";
2
+
1
3
  //#region src/transactions/marginRegistry.ts
2
4
  /**
3
5
  * MarginRegistryContract class for managing MarginRegistry read-only operations.
@@ -12,112 +14,143 @@ var MarginRegistryContract = class {
12
14
  const pool = this.#config.getPool(poolKey);
13
15
  const baseCoin = this.#config.getCoin(pool.baseCoin);
14
16
  const quoteCoin = this.#config.getCoin(pool.quoteCoin);
15
- return tx.moveCall({
16
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::pool_enabled`,
17
- arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.object(pool.address)],
17
+ return tx.add(poolEnabled({
18
+ package: this.#config.MARGIN_PACKAGE_ID,
19
+ arguments: {
20
+ self: this.#config.MARGIN_REGISTRY_ID,
21
+ pool: pool.address
22
+ },
18
23
  typeArguments: [baseCoin.type, quoteCoin.type]
19
- });
24
+ }));
20
25
  };
21
26
  this.getMarginPoolId = (coinKey) => (tx) => {
22
27
  const coin = this.#config.getCoin(coinKey);
23
- return tx.moveCall({
24
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::get_margin_pool_id`,
25
- arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID)],
28
+ return tx.add(getMarginPoolId({
29
+ package: this.#config.MARGIN_PACKAGE_ID,
30
+ arguments: { self: this.#config.MARGIN_REGISTRY_ID },
26
31
  typeArguments: [coin.type]
27
- });
32
+ }));
28
33
  };
29
34
  this.getDeepbookPoolMarginPoolIds = (poolKey) => (tx) => {
30
35
  const pool = this.#config.getPool(poolKey);
31
- return tx.moveCall({
32
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::get_deepbook_pool_margin_pool_ids`,
33
- arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],
34
- typeArguments: []
35
- });
36
+ return tx.add(getDeepbookPoolMarginPoolIds({
37
+ package: this.#config.MARGIN_PACKAGE_ID,
38
+ arguments: {
39
+ self: this.#config.MARGIN_REGISTRY_ID,
40
+ deepbookPoolId: pool.address
41
+ }
42
+ }));
36
43
  };
37
44
  this.getMarginManagerIds = (owner) => (tx) => {
38
- return tx.moveCall({
39
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::get_margin_manager_ids`,
40
- arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.address(owner)],
41
- typeArguments: []
42
- });
45
+ return tx.add(getMarginManagerIds({
46
+ package: this.#config.MARGIN_PACKAGE_ID,
47
+ arguments: {
48
+ self: this.#config.MARGIN_REGISTRY_ID,
49
+ owner
50
+ }
51
+ }));
43
52
  };
44
53
  this.baseMarginPoolId = (poolKey) => (tx) => {
45
54
  const pool = this.#config.getPool(poolKey);
46
- return tx.moveCall({
47
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::base_margin_pool_id`,
48
- arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],
49
- typeArguments: []
50
- });
55
+ return tx.add(baseMarginPoolId({
56
+ package: this.#config.MARGIN_PACKAGE_ID,
57
+ arguments: {
58
+ self: this.#config.MARGIN_REGISTRY_ID,
59
+ deepbookPoolId: pool.address
60
+ }
61
+ }));
51
62
  };
52
63
  this.quoteMarginPoolId = (poolKey) => (tx) => {
53
64
  const pool = this.#config.getPool(poolKey);
54
- return tx.moveCall({
55
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::quote_margin_pool_id`,
56
- arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],
57
- typeArguments: []
58
- });
65
+ return tx.add(quoteMarginPoolId({
66
+ package: this.#config.MARGIN_PACKAGE_ID,
67
+ arguments: {
68
+ self: this.#config.MARGIN_REGISTRY_ID,
69
+ deepbookPoolId: pool.address
70
+ }
71
+ }));
59
72
  };
60
73
  this.minWithdrawRiskRatio = (poolKey) => (tx) => {
61
74
  const pool = this.#config.getPool(poolKey);
62
- return tx.moveCall({
63
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::min_withdraw_risk_ratio`,
64
- arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],
65
- typeArguments: []
66
- });
75
+ return tx.add(minWithdrawRiskRatio({
76
+ package: this.#config.MARGIN_PACKAGE_ID,
77
+ arguments: {
78
+ self: this.#config.MARGIN_REGISTRY_ID,
79
+ deepbookPoolId: pool.address
80
+ }
81
+ }));
67
82
  };
68
83
  this.minBorrowRiskRatio = (poolKey) => (tx) => {
69
84
  const pool = this.#config.getPool(poolKey);
70
- return tx.moveCall({
71
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::min_borrow_risk_ratio`,
72
- arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],
73
- typeArguments: []
74
- });
85
+ return tx.add(minBorrowRiskRatio({
86
+ package: this.#config.MARGIN_PACKAGE_ID,
87
+ arguments: {
88
+ self: this.#config.MARGIN_REGISTRY_ID,
89
+ deepbookPoolId: pool.address
90
+ }
91
+ }));
92
+ };
93
+ this.minOpenRiskRatio = (poolKey) => (tx) => {
94
+ const pool = this.#config.getPool(poolKey);
95
+ return tx.add(minOpenRiskRatio({
96
+ package: this.#config.MARGIN_PACKAGE_ID,
97
+ arguments: {
98
+ self: this.#config.MARGIN_REGISTRY_ID,
99
+ deepbookPoolId: pool.address
100
+ }
101
+ }));
75
102
  };
76
103
  this.liquidationRiskRatio = (poolKey) => (tx) => {
77
104
  const pool = this.#config.getPool(poolKey);
78
- return tx.moveCall({
79
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::liquidation_risk_ratio`,
80
- arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],
81
- typeArguments: []
82
- });
105
+ return tx.add(liquidationRiskRatio({
106
+ package: this.#config.MARGIN_PACKAGE_ID,
107
+ arguments: {
108
+ self: this.#config.MARGIN_REGISTRY_ID,
109
+ deepbookPoolId: pool.address
110
+ }
111
+ }));
83
112
  };
84
113
  this.targetLiquidationRiskRatio = (poolKey) => (tx) => {
85
114
  const pool = this.#config.getPool(poolKey);
86
- return tx.moveCall({
87
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::target_liquidation_risk_ratio`,
88
- arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],
89
- typeArguments: []
90
- });
115
+ return tx.add(targetLiquidationRiskRatio({
116
+ package: this.#config.MARGIN_PACKAGE_ID,
117
+ arguments: {
118
+ self: this.#config.MARGIN_REGISTRY_ID,
119
+ deepbookPoolId: pool.address
120
+ }
121
+ }));
91
122
  };
92
123
  this.userLiquidationReward = (poolKey) => (tx) => {
93
124
  const pool = this.#config.getPool(poolKey);
94
- return tx.moveCall({
95
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::user_liquidation_reward`,
96
- arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],
97
- typeArguments: []
98
- });
125
+ return tx.add(userLiquidationReward({
126
+ package: this.#config.MARGIN_PACKAGE_ID,
127
+ arguments: {
128
+ self: this.#config.MARGIN_REGISTRY_ID,
129
+ deepbookPoolId: pool.address
130
+ }
131
+ }));
99
132
  };
100
133
  this.poolLiquidationReward = (poolKey) => (tx) => {
101
134
  const pool = this.#config.getPool(poolKey);
102
- return tx.moveCall({
103
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::pool_liquidation_reward`,
104
- arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],
105
- typeArguments: []
106
- });
135
+ return tx.add(poolLiquidationReward({
136
+ package: this.#config.MARGIN_PACKAGE_ID,
137
+ arguments: {
138
+ self: this.#config.MARGIN_REGISTRY_ID,
139
+ deepbookPoolId: pool.address
140
+ }
141
+ }));
107
142
  };
108
143
  this.allowedMaintainers = () => (tx) => {
109
- return tx.moveCall({
110
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::allowed_maintainers`,
111
- arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID)],
112
- typeArguments: []
113
- });
144
+ return tx.add(allowedMaintainers({
145
+ package: this.#config.MARGIN_PACKAGE_ID,
146
+ arguments: { self: this.#config.MARGIN_REGISTRY_ID }
147
+ }));
114
148
  };
115
149
  this.allowedPauseCaps = () => (tx) => {
116
- return tx.moveCall({
117
- target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::allowed_pause_caps`,
118
- arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID)],
119
- typeArguments: []
120
- });
150
+ return tx.add(allowedPauseCaps({
151
+ package: this.#config.MARGIN_PACKAGE_ID,
152
+ arguments: { self: this.#config.MARGIN_REGISTRY_ID }
153
+ }));
121
154
  };
122
155
  this.#config = config;
123
156
  }
@@ -1 +1 @@
1
- {"version":3,"file":"marginRegistry.mjs","names":["#config"],"sources":["../../src/transactions/marginRegistry.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport type { Transaction } from '@mysten/sui/transactions';\n\nimport type { DeepBookConfig } from '../utils/config.js';\n\n/**\n * MarginRegistryContract class for managing MarginRegistry read-only operations.\n */\nexport class MarginRegistryContract {\n\t#config: DeepBookConfig;\n\n\t/**\n\t * @param {DeepBookConfig} config Configuration for MarginRegistryContract\n\t */\n\tconstructor(config: DeepBookConfig) {\n\t\tthis.#config = config;\n\t}\n\n\t/**\n\t * @description Check if a deepbook pool is enabled for margin trading\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tpoolEnabled = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::pool_enabled`,\n\t\t\targuments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.object(pool.address)],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get the margin pool ID for a given asset\n\t * @param {string} coinKey The key to identify the coin\n\t * @returns A function that takes a Transaction object\n\t */\n\tgetMarginPoolId = (coinKey: string) => (tx: Transaction) => {\n\t\tconst coin = this.#config.getCoin(coinKey);\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::get_margin_pool_id`,\n\t\t\targuments: [tx.object(this.#config.MARGIN_REGISTRY_ID)],\n\t\t\ttypeArguments: [coin.type],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get the margin pool IDs (base and quote) for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tgetDeepbookPoolMarginPoolIds = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::get_deepbook_pool_margin_pool_ids`,\n\t\t\targuments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],\n\t\t\ttypeArguments: [],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get the margin manager IDs for a given owner\n\t * @param {string} owner The owner address\n\t * @returns A function that takes a Transaction object\n\t */\n\tgetMarginManagerIds = (owner: string) => (tx: Transaction) => {\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::get_margin_manager_ids`,\n\t\t\targuments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.address(owner)],\n\t\t\ttypeArguments: [],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get the base margin pool ID for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tbaseMarginPoolId = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::base_margin_pool_id`,\n\t\t\targuments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],\n\t\t\ttypeArguments: [],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get the quote margin pool ID for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tquoteMarginPoolId = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::quote_margin_pool_id`,\n\t\t\targuments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],\n\t\t\ttypeArguments: [],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get the minimum withdraw risk ratio for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tminWithdrawRiskRatio = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::min_withdraw_risk_ratio`,\n\t\t\targuments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],\n\t\t\ttypeArguments: [],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get the minimum borrow risk ratio for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tminBorrowRiskRatio = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::min_borrow_risk_ratio`,\n\t\t\targuments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],\n\t\t\ttypeArguments: [],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get the liquidation risk ratio for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tliquidationRiskRatio = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::liquidation_risk_ratio`,\n\t\t\targuments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],\n\t\t\ttypeArguments: [],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get the target liquidation risk ratio for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\ttargetLiquidationRiskRatio = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::target_liquidation_risk_ratio`,\n\t\t\targuments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],\n\t\t\ttypeArguments: [],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get the user liquidation reward for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tuserLiquidationReward = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::user_liquidation_reward`,\n\t\t\targuments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],\n\t\t\ttypeArguments: [],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get the pool liquidation reward for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tpoolLiquidationReward = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::pool_liquidation_reward`,\n\t\t\targuments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.id(pool.address)],\n\t\t\ttypeArguments: [],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get all allowed maintainer cap IDs\n\t * @returns A function that takes a Transaction object\n\t */\n\tallowedMaintainers = () => (tx: Transaction) => {\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::allowed_maintainers`,\n\t\t\targuments: [tx.object(this.#config.MARGIN_REGISTRY_ID)],\n\t\t\ttypeArguments: [],\n\t\t});\n\t};\n\n\t/**\n\t * @description Get all allowed pause cap IDs\n\t * @returns A function that takes a Transaction object\n\t */\n\tallowedPauseCaps = () => (tx: Transaction) => {\n\t\treturn tx.moveCall({\n\t\t\ttarget: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::allowed_pause_caps`,\n\t\t\targuments: [tx.object(this.#config.MARGIN_REGISTRY_ID)],\n\t\t\ttypeArguments: [],\n\t\t});\n\t};\n}\n"],"mappings":";;;;AASA,IAAa,yBAAb,MAAoC;CACnC;;;;CAKA,YAAY,QAAwB;sBASrB,aAAqB,OAAoB;GACvD,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;AACtD,UAAO,GAAG,SAAS;IAClB,QAAQ,GAAG,MAAKA,OAAQ,kBAAkB;IAC1C,WAAW,CAAC,GAAG,OAAO,MAAKA,OAAQ,mBAAmB,EAAE,GAAG,OAAO,KAAK,QAAQ,CAAC;IAChF,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;;0BAQgB,aAAqB,OAAoB;GAC3D,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;AAC1C,UAAO,GAAG,SAAS;IAClB,QAAQ,GAAG,MAAKA,OAAQ,kBAAkB;IAC1C,WAAW,CAAC,GAAG,OAAO,MAAKA,OAAQ,mBAAmB,CAAC;IACvD,eAAe,CAAC,KAAK,KAAK;IAC1B,CAAC;;uCAQ6B,aAAqB,OAAoB;GACxE,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;AAC1C,UAAO,GAAG,SAAS;IAClB,QAAQ,GAAG,MAAKA,OAAQ,kBAAkB;IAC1C,WAAW,CAAC,GAAG,OAAO,MAAKA,OAAQ,mBAAmB,EAAE,GAAG,KAAK,GAAG,KAAK,QAAQ,CAAC;IACjF,eAAe,EAAE;IACjB,CAAC;;8BAQoB,WAAmB,OAAoB;AAC7D,UAAO,GAAG,SAAS;IAClB,QAAQ,GAAG,MAAKA,OAAQ,kBAAkB;IAC1C,WAAW,CAAC,GAAG,OAAO,MAAKA,OAAQ,mBAAmB,EAAE,GAAG,KAAK,QAAQ,MAAM,CAAC;IAC/E,eAAe,EAAE;IACjB,CAAC;;2BAQiB,aAAqB,OAAoB;GAC5D,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;AAC1C,UAAO,GAAG,SAAS;IAClB,QAAQ,GAAG,MAAKA,OAAQ,kBAAkB;IAC1C,WAAW,CAAC,GAAG,OAAO,MAAKA,OAAQ,mBAAmB,EAAE,GAAG,KAAK,GAAG,KAAK,QAAQ,CAAC;IACjF,eAAe,EAAE;IACjB,CAAC;;4BAQkB,aAAqB,OAAoB;GAC7D,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;AAC1C,UAAO,GAAG,SAAS;IAClB,QAAQ,GAAG,MAAKA,OAAQ,kBAAkB;IAC1C,WAAW,CAAC,GAAG,OAAO,MAAKA,OAAQ,mBAAmB,EAAE,GAAG,KAAK,GAAG,KAAK,QAAQ,CAAC;IACjF,eAAe,EAAE;IACjB,CAAC;;+BAQqB,aAAqB,OAAoB;GAChE,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;AAC1C,UAAO,GAAG,SAAS;IAClB,QAAQ,GAAG,MAAKA,OAAQ,kBAAkB;IAC1C,WAAW,CAAC,GAAG,OAAO,MAAKA,OAAQ,mBAAmB,EAAE,GAAG,KAAK,GAAG,KAAK,QAAQ,CAAC;IACjF,eAAe,EAAE;IACjB,CAAC;;6BAQmB,aAAqB,OAAoB;GAC9D,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;AAC1C,UAAO,GAAG,SAAS;IAClB,QAAQ,GAAG,MAAKA,OAAQ,kBAAkB;IAC1C,WAAW,CAAC,GAAG,OAAO,MAAKA,OAAQ,mBAAmB,EAAE,GAAG,KAAK,GAAG,KAAK,QAAQ,CAAC;IACjF,eAAe,EAAE;IACjB,CAAC;;+BAQqB,aAAqB,OAAoB;GAChE,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;AAC1C,UAAO,GAAG,SAAS;IAClB,QAAQ,GAAG,MAAKA,OAAQ,kBAAkB;IAC1C,WAAW,CAAC,GAAG,OAAO,MAAKA,OAAQ,mBAAmB,EAAE,GAAG,KAAK,GAAG,KAAK,QAAQ,CAAC;IACjF,eAAe,EAAE;IACjB,CAAC;;qCAQ2B,aAAqB,OAAoB;GACtE,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;AAC1C,UAAO,GAAG,SAAS;IAClB,QAAQ,GAAG,MAAKA,OAAQ,kBAAkB;IAC1C,WAAW,CAAC,GAAG,OAAO,MAAKA,OAAQ,mBAAmB,EAAE,GAAG,KAAK,GAAG,KAAK,QAAQ,CAAC;IACjF,eAAe,EAAE;IACjB,CAAC;;gCAQsB,aAAqB,OAAoB;GACjE,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;AAC1C,UAAO,GAAG,SAAS;IAClB,QAAQ,GAAG,MAAKA,OAAQ,kBAAkB;IAC1C,WAAW,CAAC,GAAG,OAAO,MAAKA,OAAQ,mBAAmB,EAAE,GAAG,KAAK,GAAG,KAAK,QAAQ,CAAC;IACjF,eAAe,EAAE;IACjB,CAAC;;gCAQsB,aAAqB,OAAoB;GACjE,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;AAC1C,UAAO,GAAG,SAAS;IAClB,QAAQ,GAAG,MAAKA,OAAQ,kBAAkB;IAC1C,WAAW,CAAC,GAAG,OAAO,MAAKA,OAAQ,mBAAmB,EAAE,GAAG,KAAK,GAAG,KAAK,QAAQ,CAAC;IACjF,eAAe,EAAE;IACjB,CAAC;;mCAOyB,OAAoB;AAC/C,UAAO,GAAG,SAAS;IAClB,QAAQ,GAAG,MAAKA,OAAQ,kBAAkB;IAC1C,WAAW,CAAC,GAAG,OAAO,MAAKA,OAAQ,mBAAmB,CAAC;IACvD,eAAe,EAAE;IACjB,CAAC;;iCAOuB,OAAoB;AAC7C,UAAO,GAAG,SAAS;IAClB,QAAQ,GAAG,MAAKA,OAAQ,kBAAkB;IAC1C,WAAW,CAAC,GAAG,OAAO,MAAKA,OAAQ,mBAAmB,CAAC;IACvD,eAAe,EAAE;IACjB,CAAC;;AAjMF,QAAKA,SAAU"}
1
+ {"version":3,"file":"marginRegistry.mjs","names":["#config","marginRegistryMoveCalls.poolEnabled","marginRegistryMoveCalls.getMarginPoolId","marginRegistryMoveCalls.getDeepbookPoolMarginPoolIds","marginRegistryMoveCalls.getMarginManagerIds","marginRegistryMoveCalls.baseMarginPoolId","marginRegistryMoveCalls.quoteMarginPoolId","marginRegistryMoveCalls.minWithdrawRiskRatio","marginRegistryMoveCalls.minBorrowRiskRatio","marginRegistryMoveCalls.minOpenRiskRatio","marginRegistryMoveCalls.liquidationRiskRatio","marginRegistryMoveCalls.targetLiquidationRiskRatio","marginRegistryMoveCalls.userLiquidationReward","marginRegistryMoveCalls.poolLiquidationReward","marginRegistryMoveCalls.allowedMaintainers","marginRegistryMoveCalls.allowedPauseCaps"],"sources":["../../src/transactions/marginRegistry.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport type { Transaction } from '@mysten/sui/transactions';\n\nimport type { DeepBookConfig } from '../utils/config.js';\nimport * as marginRegistryMoveCalls from '../contracts/deepbook_margin/margin_registry.js';\n\n/**\n * MarginRegistryContract class for managing MarginRegistry read-only operations.\n */\nexport class MarginRegistryContract {\n\t#config: DeepBookConfig;\n\n\t/**\n\t * @param {DeepBookConfig} config Configuration for MarginRegistryContract\n\t */\n\tconstructor(config: DeepBookConfig) {\n\t\tthis.#config = config;\n\t}\n\n\t/**\n\t * @description Check if a deepbook pool is enabled for margin trading\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tpoolEnabled = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\treturn tx.add(\n\t\t\tmarginRegistryMoveCalls.poolEnabled({\n\t\t\t\tpackage: this.#config.MARGIN_PACKAGE_ID,\n\t\t\t\targuments: { self: this.#config.MARGIN_REGISTRY_ID, pool: pool.address },\n\t\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the margin pool ID for a given asset\n\t * @param {string} coinKey The key to identify the coin\n\t * @returns A function that takes a Transaction object\n\t */\n\tgetMarginPoolId = (coinKey: string) => (tx: Transaction) => {\n\t\tconst coin = this.#config.getCoin(coinKey);\n\t\treturn tx.add(\n\t\t\tmarginRegistryMoveCalls.getMarginPoolId({\n\t\t\t\tpackage: this.#config.MARGIN_PACKAGE_ID,\n\t\t\t\targuments: { self: this.#config.MARGIN_REGISTRY_ID },\n\t\t\t\ttypeArguments: [coin.type],\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the margin pool IDs (base and quote) for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tgetDeepbookPoolMarginPoolIds = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.add(\n\t\t\tmarginRegistryMoveCalls.getDeepbookPoolMarginPoolIds({\n\t\t\t\tpackage: this.#config.MARGIN_PACKAGE_ID,\n\t\t\t\targuments: { self: this.#config.MARGIN_REGISTRY_ID, deepbookPoolId: pool.address },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the margin manager IDs for a given owner\n\t * @param {string} owner The owner address\n\t * @returns A function that takes a Transaction object\n\t */\n\tgetMarginManagerIds = (owner: string) => (tx: Transaction) => {\n\t\treturn tx.add(\n\t\t\tmarginRegistryMoveCalls.getMarginManagerIds({\n\t\t\t\tpackage: this.#config.MARGIN_PACKAGE_ID,\n\t\t\t\targuments: { self: this.#config.MARGIN_REGISTRY_ID, owner },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the base margin pool ID for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tbaseMarginPoolId = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.add(\n\t\t\tmarginRegistryMoveCalls.baseMarginPoolId({\n\t\t\t\tpackage: this.#config.MARGIN_PACKAGE_ID,\n\t\t\t\targuments: { self: this.#config.MARGIN_REGISTRY_ID, deepbookPoolId: pool.address },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the quote margin pool ID for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tquoteMarginPoolId = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.add(\n\t\t\tmarginRegistryMoveCalls.quoteMarginPoolId({\n\t\t\t\tpackage: this.#config.MARGIN_PACKAGE_ID,\n\t\t\t\targuments: { self: this.#config.MARGIN_REGISTRY_ID, deepbookPoolId: pool.address },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the minimum withdraw risk ratio for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tminWithdrawRiskRatio = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.add(\n\t\t\tmarginRegistryMoveCalls.minWithdrawRiskRatio({\n\t\t\t\tpackage: this.#config.MARGIN_PACKAGE_ID,\n\t\t\t\targuments: { self: this.#config.MARGIN_REGISTRY_ID, deepbookPoolId: pool.address },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the minimum borrow risk ratio for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tminBorrowRiskRatio = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.add(\n\t\t\tmarginRegistryMoveCalls.minBorrowRiskRatio({\n\t\t\t\tpackage: this.#config.MARGIN_PACKAGE_ID,\n\t\t\t\targuments: { self: this.#config.MARGIN_REGISTRY_ID, deepbookPoolId: pool.address },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the minimum risk ratio required to open a new position on\n\t * a deepbook pool. Distinct from `minBorrowRiskRatio`, which gates borrowing.\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tminOpenRiskRatio = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.add(\n\t\t\tmarginRegistryMoveCalls.minOpenRiskRatio({\n\t\t\t\tpackage: this.#config.MARGIN_PACKAGE_ID,\n\t\t\t\targuments: { self: this.#config.MARGIN_REGISTRY_ID, deepbookPoolId: pool.address },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the liquidation risk ratio for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tliquidationRiskRatio = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.add(\n\t\t\tmarginRegistryMoveCalls.liquidationRiskRatio({\n\t\t\t\tpackage: this.#config.MARGIN_PACKAGE_ID,\n\t\t\t\targuments: { self: this.#config.MARGIN_REGISTRY_ID, deepbookPoolId: pool.address },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the target liquidation risk ratio for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\ttargetLiquidationRiskRatio = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.add(\n\t\t\tmarginRegistryMoveCalls.targetLiquidationRiskRatio({\n\t\t\t\tpackage: this.#config.MARGIN_PACKAGE_ID,\n\t\t\t\targuments: { self: this.#config.MARGIN_REGISTRY_ID, deepbookPoolId: pool.address },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the user liquidation reward for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tuserLiquidationReward = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.add(\n\t\t\tmarginRegistryMoveCalls.userLiquidationReward({\n\t\t\t\tpackage: this.#config.MARGIN_PACKAGE_ID,\n\t\t\t\targuments: { self: this.#config.MARGIN_REGISTRY_ID, deepbookPoolId: pool.address },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get the pool liquidation reward for a deepbook pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @returns A function that takes a Transaction object\n\t */\n\tpoolLiquidationReward = (poolKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\treturn tx.add(\n\t\t\tmarginRegistryMoveCalls.poolLiquidationReward({\n\t\t\t\tpackage: this.#config.MARGIN_PACKAGE_ID,\n\t\t\t\targuments: { self: this.#config.MARGIN_REGISTRY_ID, deepbookPoolId: pool.address },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get all allowed maintainer cap IDs\n\t * @returns A function that takes a Transaction object\n\t */\n\tallowedMaintainers = () => (tx: Transaction) => {\n\t\treturn tx.add(\n\t\t\tmarginRegistryMoveCalls.allowedMaintainers({\n\t\t\t\tpackage: this.#config.MARGIN_PACKAGE_ID,\n\t\t\t\targuments: { self: this.#config.MARGIN_REGISTRY_ID },\n\t\t\t}),\n\t\t);\n\t};\n\n\t/**\n\t * @description Get all allowed pause cap IDs\n\t * @returns A function that takes a Transaction object\n\t */\n\tallowedPauseCaps = () => (tx: Transaction) => {\n\t\treturn tx.add(\n\t\t\tmarginRegistryMoveCalls.allowedPauseCaps({\n\t\t\t\tpackage: this.#config.MARGIN_PACKAGE_ID,\n\t\t\t\targuments: { self: this.#config.MARGIN_REGISTRY_ID },\n\t\t\t}),\n\t\t);\n\t};\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { AddConditionalOrderParams, PendingLimitOrderParams, PendingMarketOrderParams } from "../types/index.mjs";
2
2
  import { DeepBookConfig } from "../utils/config.mjs";
3
- import * as _mysten_sui_transactions94 from "@mysten/sui/transactions";
3
+ import * as _mysten_sui_transactions54 from "@mysten/sui/transactions";
4
4
  import { Transaction } from "@mysten/sui/transactions";
5
5
 
6
6
  //#region src/transactions/marginTPSL.d.ts
@@ -20,21 +20,21 @@ declare class MarginTPSLContract {
20
20
  * @param {number} triggerPrice The price at which to trigger the order
21
21
  * @returns A function that takes a Transaction object
22
22
  */
23
- newCondition: (poolKey: string, triggerBelowPrice: boolean, triggerPrice: number | bigint) => (tx: Transaction) => _mysten_sui_transactions94.TransactionResult;
23
+ newCondition: (poolKey: string, triggerBelowPrice: boolean, triggerPrice: number | bigint) => (tx: Transaction) => _mysten_sui_transactions54.TransactionResult;
24
24
  /**
25
25
  * @description Create a new pending limit order for use in conditional orders
26
26
  * @param {string} poolKey The key to identify the pool
27
27
  * @param {PendingLimitOrderParams} params Parameters for the pending limit order
28
28
  * @returns A function that takes a Transaction object
29
29
  */
30
- newPendingLimitOrder: (poolKey: string, params: PendingLimitOrderParams) => (tx: Transaction) => _mysten_sui_transactions94.TransactionResult;
30
+ newPendingLimitOrder: (poolKey: string, params: PendingLimitOrderParams) => (tx: Transaction) => _mysten_sui_transactions54.TransactionResult;
31
31
  /**
32
32
  * @description Create a new pending market order for use in conditional orders
33
33
  * @param {string} poolKey The key to identify the pool
34
34
  * @param {PendingMarketOrderParams} params Parameters for the pending market order
35
35
  * @returns A function that takes a Transaction object
36
36
  */
37
- newPendingMarketOrder: (poolKey: string, params: PendingMarketOrderParams) => (tx: Transaction) => _mysten_sui_transactions94.TransactionResult;
37
+ newPendingMarketOrder: (poolKey: string, params: PendingMarketOrderParams) => (tx: Transaction) => _mysten_sui_transactions54.TransactionResult;
38
38
  /**
39
39
  * @description Add a conditional order (take profit or stop loss)
40
40
  * @param {AddConditionalOrderParams} params Parameters for adding the conditional order
@@ -65,14 +65,32 @@ declare class MarginTPSLContract {
65
65
  * @param {number} maxOrdersToExecute Maximum number of orders to execute in this call
66
66
  * @returns A function that takes a Transaction object
67
67
  */
68
- executeConditionalOrders: (managerAddress: string, poolKey: string, maxOrdersToExecute: number) => (tx: Transaction) => _mysten_sui_transactions94.TransactionResult;
68
+ executeConditionalOrders: (managerAddress: string, poolKey: string, maxOrdersToExecute: number) => (tx: Transaction) => _mysten_sui_transactions54.TransactionResult;
69
+ /**
70
+ * @description Execute conditional orders, deleveraging on each market-type
71
+ * fill. Permissionless, with the same trigger and cancellation handling as
72
+ * {@link executeConditionalOrders}, but the market proceeds are repaid into
73
+ * the loan before the risk check, and the gate is the *net* post-repay
74
+ * `risk_ratio` being at least the pre-fill ratio.
75
+ *
76
+ * This is what lets a stop-loss fire in the `liquidation..min_borrow` danger
77
+ * band: a swap alone only lowers the oracle-valued ratio (so the v2
78
+ * borrow-floor gate rejects it), while repaying actually improves it. If a
79
+ * single triggered fill would worsen net solvency the whole txn aborts — no
80
+ * partial-state landing.
81
+ * @param {string} managerAddress The address of the margin manager
82
+ * @param {string} poolKey The key to identify the pool (e.g., 'SUI_USDC')
83
+ * @param {number} maxOrdersToExecute Maximum number of orders to execute in this call
84
+ * @returns A function that takes a Transaction object
85
+ */
86
+ executeConditionalOrdersV3: (managerAddress: string, poolKey: string, maxOrdersToExecute: number) => (tx: Transaction) => _mysten_sui_transactions54.TransactionResult;
69
87
  /**
70
88
  * @description Get all conditional order IDs for a margin manager
71
89
  * @param {string} poolKey The key to identify the pool
72
90
  * @param {string} marginManagerId The ID of the margin manager
73
91
  * @returns A function that takes a Transaction object
74
92
  */
75
- conditionalOrderIds: (poolKey: string, marginManagerId: string) => (tx: Transaction) => _mysten_sui_transactions94.TransactionResult;
93
+ conditionalOrderIds: (poolKey: string, marginManagerId: string) => (tx: Transaction) => _mysten_sui_transactions54.TransactionResult;
76
94
  /**
77
95
  * @description Get a specific conditional order by ID
78
96
  * @param {string} poolKey The key to identify the pool
@@ -80,7 +98,7 @@ declare class MarginTPSLContract {
80
98
  * @param {string} conditionalOrderId The ID of the conditional order
81
99
  * @returns A function that takes a Transaction object
82
100
  */
83
- conditionalOrder: (poolKey: string, marginManagerId: string, conditionalOrderId: string) => (tx: Transaction) => _mysten_sui_transactions94.TransactionResult;
101
+ conditionalOrder: (poolKey: string, marginManagerId: string, conditionalOrderId: string) => (tx: Transaction) => _mysten_sui_transactions54.TransactionResult;
84
102
  /**
85
103
  * @description Get the lowest trigger price for trigger_above orders
86
104
  * Returns constants::max_u64() if there are no trigger_above orders
@@ -88,7 +106,7 @@ declare class MarginTPSLContract {
88
106
  * @param {string} marginManagerId The ID of the margin manager
89
107
  * @returns A function that takes a Transaction object
90
108
  */
91
- lowestTriggerAbovePrice: (poolKey: string, marginManagerId: string) => (tx: Transaction) => _mysten_sui_transactions94.TransactionResult;
109
+ lowestTriggerAbovePrice: (poolKey: string, marginManagerId: string) => (tx: Transaction) => _mysten_sui_transactions54.TransactionResult;
92
110
  /**
93
111
  * @description Get the highest trigger price for trigger_below orders
94
112
  * Returns 0 if there are no trigger_below orders
@@ -96,7 +114,7 @@ declare class MarginTPSLContract {
96
114
  * @param {string} marginManagerId The ID of the margin manager
97
115
  * @returns A function that takes a Transaction object
98
116
  */
99
- highestTriggerBelowPrice: (poolKey: string, marginManagerId: string) => (tx: Transaction) => _mysten_sui_transactions94.TransactionResult;
117
+ highestTriggerBelowPrice: (poolKey: string, marginManagerId: string) => (tx: Transaction) => _mysten_sui_transactions54.TransactionResult;
100
118
  }
101
119
  //#endregion
102
120
  export { MarginTPSLContract };
@@ -1 +1 @@
1
- {"version":3,"file":"marginTPSL.d.mts","names":[],"sources":["../../src/transactions/marginTPSL.ts"],"mappings":";;;;;;;;;cAiBa,kBAAA;EAAA;;;;cAMA,MAAA,EAAQ,cAAA;EAsCO;;;;;;;EAzB3B,YAAA,GACE,OAAA,UAAiB,iBAAA,WAA4B,YAAA,uBAC7C,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAkI+C;;;;;;EA5GhE,oBAAA,GACE,OAAA,UAAiB,MAAA,EAAQ,uBAAA,MAA6B,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAwMoB;;;;;;EAnK3F,qBAAA,GACE,OAAA,UAAiB,MAAA,EAAQ,wBAAA,MAA8B,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;;;;;;EA8BxE,mBAAA,GAAuB,MAAA,EAAQ,yBAAA,MAA+B,EAAA,EAAI,WAAA;EA5F/C;;;;;EAmInB,0BAAA,GAA8B,gBAAA,cAA8B,EAAA,EAAI,WAAA;EA3G9D;;;;;;EA6HF,sBAAA,GACE,gBAAA,UAA0B,kBAAA,cAAgC,EAAA,EAAI,WAAA;EAxF9D;;;;;;;;;;;EA+GF,wBAAA,GACE,cAAA,UAAwB,OAAA,UAAiB,kBAAA,cAAgC,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EA3C5D;;;;;;EA0E9B,mBAAA,GAAuB,OAAA,UAAiB,eAAA,cAA6B,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAvDxB;;;;;;;EAyE5D,gBAAA,GACE,OAAA,UAAiB,eAAA,UAAyB,kBAAA,cAAgC,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAnB3F;;;;;;;EAqCA,uBAAA,GAA2B,OAAA,UAAiB,eAAA,cAA6B,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAlBrE;;;;;;;EAoCnB,wBAAA,GAA4B,OAAA,UAAiB,eAAA,cAA6B,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;AAAA"}
1
+ {"version":3,"file":"marginTPSL.d.mts","names":[],"sources":["../../src/transactions/marginTPSL.ts"],"mappings":";;;;;;;;;cAmBa,kBAAA;EAAA;;;;cAMA,MAAA,EAAQ,cAAA;EAwCO;;;;;;;EA3B3B,YAAA,GACE,OAAA,UAAiB,iBAAA,WAA4B,YAAA,uBAC7C,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAyI+C;;;;;;EAjHhE,oBAAA,GACE,OAAA,UAAiB,MAAA,EAAQ,uBAAA,MAA6B,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAyOa;;;;;;EAlMpF,qBAAA,GACE,OAAA,UAAiB,MAAA,EAAQ,wBAAA,MAA8B,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EA8PiB;;;;;EA9NzF,mBAAA,GAAuB,MAAA,EAAQ,yBAAA,MAA+B,EAAA,EAAI,WAAA;EAnGlE;;;;;EA2IA,0BAAA,GAA8B,gBAAA,cAA8B,EAAA,EAAI,WAAA;EAzI/C;;;;;;EA6JjB,sBAAA,GACE,gBAAA,UAA0B,kBAAA,cAAgC,EAAA,EAAI,WAAA;EArIO;;;;;;;;;;;EA8JvE,wBAAA,GACE,cAAA,UAAwB,OAAA,UAAiB,kBAAA,cAAgC,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAvF5B;;;;;;;;;;;;;;;;;EAgI9D,0BAAA,GACE,cAAA,UAAwB,OAAA,UAAiB,kBAAA,cAAgC,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAAxF;;;;;;EAgCF,mBAAA,GAAuB,OAAA,UAAiB,eAAA,cAA6B,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAA7D;;;;;;;EAoBvB,gBAAA,GACE,OAAA,UAAiB,eAAA,UAAyB,kBAAA,cAAgC,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAA/C;;;;;;;EAoB5C,uBAAA,GAA2B,OAAA,UAAiB,eAAA,cAA6B,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAAf;;;;;;;EAoBzE,wBAAA,GAA4B,OAAA,UAAiB,eAAA,cAA6B,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;AAAA"}