@mysten/deepbook-v3 1.5.9 → 1.6.2

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 (177) hide show
  1. package/CHANGELOG.md +60 -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/balance_manager.mjs +413 -0
  7. package/dist/contracts/deepbook/balance_manager.mjs.map +1 -0
  8. package/dist/contracts/deepbook/balances.d.mts +4 -4
  9. package/dist/contracts/deepbook/big_vector.mjs +43 -0
  10. package/dist/contracts/deepbook/big_vector.mjs.map +1 -0
  11. package/dist/contracts/deepbook/book.mjs +29 -0
  12. package/dist/contracts/deepbook/book.mjs.map +1 -0
  13. package/dist/contracts/deepbook/deep_price.d.mts +3 -3
  14. package/dist/contracts/deepbook/deep_price.mjs +1 -1
  15. package/dist/contracts/deepbook/deps/std/type_name.mjs +17 -0
  16. package/dist/contracts/deepbook/deps/std/type_name.mjs.map +1 -0
  17. package/dist/contracts/deepbook/deps/sui/bag.mjs +43 -0
  18. package/dist/contracts/deepbook/deps/sui/bag.mjs.map +1 -0
  19. package/dist/contracts/deepbook/deps/sui/balance.mjs +21 -0
  20. package/dist/contracts/deepbook/deps/sui/balance.mjs.map +1 -0
  21. package/dist/contracts/deepbook/deps/sui/table.mjs +38 -0
  22. package/dist/contracts/deepbook/deps/sui/table.mjs.map +1 -0
  23. package/dist/contracts/deepbook/deps/sui/vec_map.mjs +37 -0
  24. package/dist/contracts/deepbook/deps/sui/vec_map.mjs.map +1 -0
  25. package/dist/contracts/deepbook/deps/sui/versioned.mjs +19 -0
  26. package/dist/contracts/deepbook/deps/sui/versioned.mjs.map +1 -0
  27. package/dist/contracts/deepbook/governance.mjs +49 -0
  28. package/dist/contracts/deepbook/governance.mjs.map +1 -0
  29. package/dist/contracts/deepbook/history.mjs +56 -0
  30. package/dist/contracts/deepbook/history.mjs.map +1 -0
  31. package/dist/contracts/deepbook/order.d.mts +12 -12
  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.map +1 -1
  90. package/dist/transactions/balanceManager.mjs +119 -100
  91. package/dist/transactions/balanceManager.mjs.map +1 -1
  92. package/dist/transactions/deepbook.d.mts.map +1 -1
  93. package/dist/transactions/deepbook.mjs +464 -439
  94. package/dist/transactions/deepbook.mjs.map +1 -1
  95. package/dist/transactions/deepbookAdmin.d.mts.map +1 -1
  96. package/dist/transactions/deepbookAdmin.mjs +151 -135
  97. package/dist/transactions/deepbookAdmin.mjs.map +1 -1
  98. package/dist/transactions/flashLoans.d.mts.map +1 -1
  99. package/dist/transactions/flashLoans.mjs +29 -22
  100. package/dist/transactions/flashLoans.mjs.map +1 -1
  101. package/dist/transactions/governance.d.mts.map +1 -1
  102. package/dist/transactions/governance.mjs +34 -33
  103. package/dist/transactions/governance.mjs.map +1 -1
  104. package/dist/transactions/marginAdmin.d.mts +10 -0
  105. package/dist/transactions/marginAdmin.d.mts.map +1 -1
  106. package/dist/transactions/marginAdmin.mjs +186 -169
  107. package/dist/transactions/marginAdmin.mjs.map +1 -1
  108. package/dist/transactions/marginLiquidations.d.mts +3 -3
  109. package/dist/transactions/marginLiquidations.d.mts.map +1 -1
  110. package/dist/transactions/marginLiquidations.mjs +53 -54
  111. package/dist/transactions/marginLiquidations.mjs.map +1 -1
  112. package/dist/transactions/marginMaintainer.d.mts.map +1 -1
  113. package/dist/transactions/marginMaintainer.mjs +83 -83
  114. package/dist/transactions/marginMaintainer.mjs.map +1 -1
  115. package/dist/transactions/marginManager.d.mts.map +1 -1
  116. package/dist/transactions/marginManager.mjs +330 -311
  117. package/dist/transactions/marginManager.mjs.map +1 -1
  118. package/dist/transactions/marginPool.d.mts.map +1 -1
  119. package/dist/transactions/marginPool.mjs +93 -89
  120. package/dist/transactions/marginPool.mjs.map +1 -1
  121. package/dist/transactions/marginRegistry.d.mts +22 -15
  122. package/dist/transactions/marginRegistry.d.mts.map +1 -1
  123. package/dist/transactions/marginRegistry.mjs +101 -68
  124. package/dist/transactions/marginRegistry.mjs.map +1 -1
  125. package/dist/transactions/marginTPSL.d.mts +27 -9
  126. package/dist/transactions/marginTPSL.d.mts.map +1 -1
  127. package/dist/transactions/marginTPSL.mjs +108 -82
  128. package/dist/transactions/marginTPSL.mjs.map +1 -1
  129. package/dist/transactions/poolProxy.d.mts +32 -0
  130. package/dist/transactions/poolProxy.d.mts.map +1 -1
  131. package/dist/transactions/poolProxy.mjs +269 -189
  132. package/dist/transactions/poolProxy.mjs.map +1 -1
  133. package/dist/utils/constants.mjs +4 -4
  134. package/dist/utils/constants.mjs.map +1 -1
  135. package/package.json +2 -2
  136. package/src/client.ts +8 -0
  137. package/src/contracts/deepbook/balance_manager.ts +46 -5
  138. package/src/contracts/deepbook/constants.ts +13 -0
  139. package/src/contracts/deepbook/pool.ts +133 -0
  140. package/src/contracts/deepbook/registry.ts +136 -1
  141. package/src/contracts/deepbook_margin/deps/deepbook/balance_manager.ts +49 -0
  142. package/src/contracts/deepbook_margin/deps/std/type_name.ts +24 -0
  143. package/src/contracts/deepbook_margin/deps/sui/bag.ts +41 -0
  144. package/src/contracts/deepbook_margin/deps/sui/balance.ts +19 -0
  145. package/src/contracts/deepbook_margin/deps/sui/table.ts +36 -0
  146. package/src/contracts/deepbook_margin/deps/sui/vec_map.ts +33 -0
  147. package/src/contracts/deepbook_margin/deps/sui/vec_set.ts +22 -0
  148. package/src/contracts/deepbook_margin/deps/sui/versioned.ts +13 -0
  149. package/src/contracts/deepbook_margin/margin_constants.ts +329 -0
  150. package/src/contracts/deepbook_margin/margin_manager.ts +1772 -0
  151. package/src/contracts/deepbook_margin/margin_pool.ts +1129 -0
  152. package/src/contracts/deepbook_margin/margin_registry.ts +1207 -0
  153. package/src/contracts/deepbook_margin/margin_state.ts +26 -0
  154. package/src/contracts/deepbook_margin/oracle.ts +99 -0
  155. package/src/contracts/deepbook_margin/pool_proxy.ts +1298 -0
  156. package/src/contracts/deepbook_margin/position_manager.ts +28 -0
  157. package/src/contracts/deepbook_margin/protocol_config.ts +163 -0
  158. package/src/contracts/deepbook_margin/protocol_fees.ts +153 -0
  159. package/src/contracts/deepbook_margin/rate_limiter.ts +80 -0
  160. package/src/contracts/deepbook_margin/tpsl.ts +559 -0
  161. package/src/contracts/margin_liquidation/deps/sui/bag.ts +41 -0
  162. package/src/contracts/margin_liquidation/liquidation_vault.ts +401 -0
  163. package/src/queries/registryQueries.ts +15 -0
  164. package/src/transactions/balanceManager.ts +140 -90
  165. package/src/transactions/deepbook.ts +586 -494
  166. package/src/transactions/deepbookAdmin.ts +154 -146
  167. package/src/transactions/flashLoans.ts +29 -20
  168. package/src/transactions/governance.ts +50 -37
  169. package/src/transactions/marginAdmin.ts +247 -188
  170. package/src/transactions/marginLiquidations.ts +70 -55
  171. package/src/transactions/marginMaintainer.ts +106 -88
  172. package/src/transactions/marginManager.ts +414 -348
  173. package/src/transactions/marginPool.ts +140 -103
  174. package/src/transactions/marginRegistry.ts +103 -70
  175. package/src/transactions/marginTPSL.ts +151 -87
  176. package/src/transactions/poolProxy.ts +384 -205
  177. package/src/utils/constants.ts +4 -4
@@ -0,0 +1,401 @@
1
+ /**************************************************************
2
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
+ **************************************************************/
4
+ import { MoveStruct, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.js';
5
+ import { bcs } from '@mysten/sui/bcs';
6
+ import { type Transaction } from '@mysten/sui/transactions';
7
+ import * as bag from './deps/sui/bag.js';
8
+ const $moduleName = '@deepbook/margin-liquidation::liquidation_vault';
9
+ export const LIQUIDATION_VAULT = new MoveStruct({
10
+ name: `${$moduleName}::LIQUIDATION_VAULT`,
11
+ fields: {
12
+ dummy_field: bcs.bool(),
13
+ },
14
+ });
15
+ export const LiquidationVault = new MoveStruct({
16
+ name: `${$moduleName}::LiquidationVault`,
17
+ fields: {
18
+ id: bcs.Address,
19
+ vault: bag.Bag,
20
+ },
21
+ });
22
+ export const BalanceKey = new MoveStruct({
23
+ name: `${$moduleName}::BalanceKey<phantom T>`,
24
+ fields: {
25
+ dummy_field: bcs.bool(),
26
+ },
27
+ });
28
+ export const AuthorizedTradersKey = new MoveStruct({
29
+ name: `${$moduleName}::AuthorizedTradersKey`,
30
+ fields: {
31
+ dummy_field: bcs.bool(),
32
+ },
33
+ });
34
+ export const LiquidationAdminCap = new MoveStruct({
35
+ name: `${$moduleName}::LiquidationAdminCap`,
36
+ fields: {
37
+ id: bcs.Address,
38
+ },
39
+ });
40
+ export const LiquidationByVault = new MoveStruct({
41
+ name: `${$moduleName}::LiquidationByVault`,
42
+ fields: {
43
+ vault_id: bcs.Address,
44
+ margin_manager_id: bcs.Address,
45
+ margin_pool_id: bcs.Address,
46
+ base_in: bcs.u64(),
47
+ base_out: bcs.u64(),
48
+ quote_in: bcs.u64(),
49
+ quote_out: bcs.u64(),
50
+ repay_balance_remaining: bcs.u64(),
51
+ base_liquidation: bcs.bool(),
52
+ },
53
+ });
54
+ export interface DepositArguments {
55
+ self: RawTransactionArgument<string>;
56
+ LiquidationCap: RawTransactionArgument<string>;
57
+ coin: RawTransactionArgument<string>;
58
+ }
59
+ export interface DepositOptions {
60
+ package?: string;
61
+ arguments:
62
+ | DepositArguments
63
+ | [
64
+ self: RawTransactionArgument<string>,
65
+ LiquidationCap: RawTransactionArgument<string>,
66
+ coin: RawTransactionArgument<string>,
67
+ ];
68
+ typeArguments: [string];
69
+ }
70
+ export function deposit(options: DepositOptions) {
71
+ const packageAddress = options.package ?? '@deepbook/margin-liquidation';
72
+ const argumentsTypes = [null, null, null] satisfies (string | null)[];
73
+ const parameterNames = ['self', 'LiquidationCap', 'coin'];
74
+ return (tx: Transaction) =>
75
+ tx.moveCall({
76
+ package: packageAddress,
77
+ module: 'liquidation_vault',
78
+ function: 'deposit',
79
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
80
+ typeArguments: options.typeArguments,
81
+ });
82
+ }
83
+ export interface WithdrawArguments {
84
+ self: RawTransactionArgument<string>;
85
+ LiquidationCap: RawTransactionArgument<string>;
86
+ amount: RawTransactionArgument<number | bigint>;
87
+ }
88
+ export interface WithdrawOptions {
89
+ package?: string;
90
+ arguments:
91
+ | WithdrawArguments
92
+ | [
93
+ self: RawTransactionArgument<string>,
94
+ LiquidationCap: RawTransactionArgument<string>,
95
+ amount: RawTransactionArgument<number | bigint>,
96
+ ];
97
+ typeArguments: [string];
98
+ }
99
+ export function withdraw(options: WithdrawOptions) {
100
+ const packageAddress = options.package ?? '@deepbook/margin-liquidation';
101
+ const argumentsTypes = [null, null, 'u64'] satisfies (string | null)[];
102
+ const parameterNames = ['self', 'LiquidationCap', 'amount'];
103
+ return (tx: Transaction) =>
104
+ tx.moveCall({
105
+ package: packageAddress,
106
+ module: 'liquidation_vault',
107
+ function: 'withdraw',
108
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
109
+ typeArguments: options.typeArguments,
110
+ });
111
+ }
112
+ export interface CreateLiquidationVaultArguments {
113
+ LiquidationCap: RawTransactionArgument<string>;
114
+ }
115
+ export interface CreateLiquidationVaultOptions {
116
+ package?: string;
117
+ arguments: CreateLiquidationVaultArguments | [LiquidationCap: RawTransactionArgument<string>];
118
+ }
119
+ export function createLiquidationVault(options: CreateLiquidationVaultOptions) {
120
+ const packageAddress = options.package ?? '@deepbook/margin-liquidation';
121
+ const argumentsTypes = [null] satisfies (string | null)[];
122
+ const parameterNames = ['LiquidationCap'];
123
+ return (tx: Transaction) =>
124
+ tx.moveCall({
125
+ package: packageAddress,
126
+ module: 'liquidation_vault',
127
+ function: 'create_liquidation_vault',
128
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
129
+ });
130
+ }
131
+ export interface AuthorizeTraderArguments {
132
+ self: RawTransactionArgument<string>;
133
+ LiquidationCap: RawTransactionArgument<string>;
134
+ authorizedAddress: RawTransactionArgument<string>;
135
+ }
136
+ export interface AuthorizeTraderOptions {
137
+ package?: string;
138
+ arguments:
139
+ | AuthorizeTraderArguments
140
+ | [
141
+ self: RawTransactionArgument<string>,
142
+ LiquidationCap: RawTransactionArgument<string>,
143
+ authorizedAddress: RawTransactionArgument<string>,
144
+ ];
145
+ }
146
+ export function authorizeTrader(options: AuthorizeTraderOptions) {
147
+ const packageAddress = options.package ?? '@deepbook/margin-liquidation';
148
+ const argumentsTypes = [null, null, 'address'] satisfies (string | null)[];
149
+ const parameterNames = ['self', 'LiquidationCap', 'authorizedAddress'];
150
+ return (tx: Transaction) =>
151
+ tx.moveCall({
152
+ package: packageAddress,
153
+ module: 'liquidation_vault',
154
+ function: 'authorize_trader',
155
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
156
+ });
157
+ }
158
+ export interface DeauthorizeTraderArguments {
159
+ self: RawTransactionArgument<string>;
160
+ LiquidationCap: RawTransactionArgument<string>;
161
+ authorizedAddress: RawTransactionArgument<string>;
162
+ }
163
+ export interface DeauthorizeTraderOptions {
164
+ package?: string;
165
+ arguments:
166
+ | DeauthorizeTraderArguments
167
+ | [
168
+ self: RawTransactionArgument<string>,
169
+ LiquidationCap: RawTransactionArgument<string>,
170
+ authorizedAddress: RawTransactionArgument<string>,
171
+ ];
172
+ }
173
+ export function deauthorizeTrader(options: DeauthorizeTraderOptions) {
174
+ const packageAddress = options.package ?? '@deepbook/margin-liquidation';
175
+ const argumentsTypes = [null, null, 'address'] satisfies (string | null)[];
176
+ const parameterNames = ['self', 'LiquidationCap', 'authorizedAddress'];
177
+ return (tx: Transaction) =>
178
+ tx.moveCall({
179
+ package: packageAddress,
180
+ module: 'liquidation_vault',
181
+ function: 'deauthorize_trader',
182
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
183
+ });
184
+ }
185
+ export interface SwapBaseToQuoteArguments {
186
+ self: RawTransactionArgument<string>;
187
+ pool: RawTransactionArgument<string>;
188
+ baseIn: RawTransactionArgument<number | bigint>;
189
+ deepIn: RawTransactionArgument<number | bigint>;
190
+ minQuoteOut: RawTransactionArgument<number | bigint>;
191
+ }
192
+ export interface SwapBaseToQuoteOptions {
193
+ package?: string;
194
+ arguments:
195
+ | SwapBaseToQuoteArguments
196
+ | [
197
+ self: RawTransactionArgument<string>,
198
+ pool: RawTransactionArgument<string>,
199
+ baseIn: RawTransactionArgument<number | bigint>,
200
+ deepIn: RawTransactionArgument<number | bigint>,
201
+ minQuoteOut: RawTransactionArgument<number | bigint>,
202
+ ];
203
+ typeArguments: [string, string];
204
+ }
205
+ export function swapBaseToQuote(options: SwapBaseToQuoteOptions) {
206
+ const packageAddress = options.package ?? '@deepbook/margin-liquidation';
207
+ const argumentsTypes = [null, null, 'u64', 'u64', 'u64', '0x2::clock::Clock'] satisfies (
208
+ | string
209
+ | null
210
+ )[];
211
+ const parameterNames = ['self', 'pool', 'baseIn', 'deepIn', 'minQuoteOut'];
212
+ return (tx: Transaction) =>
213
+ tx.moveCall({
214
+ package: packageAddress,
215
+ module: 'liquidation_vault',
216
+ function: 'swap_base_to_quote',
217
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
218
+ typeArguments: options.typeArguments,
219
+ });
220
+ }
221
+ export interface SwapQuoteToBaseArguments {
222
+ self: RawTransactionArgument<string>;
223
+ pool: RawTransactionArgument<string>;
224
+ quoteIn: RawTransactionArgument<number | bigint>;
225
+ deepIn: RawTransactionArgument<number | bigint>;
226
+ minBaseOut: RawTransactionArgument<number | bigint>;
227
+ }
228
+ export interface SwapQuoteToBaseOptions {
229
+ package?: string;
230
+ arguments:
231
+ | SwapQuoteToBaseArguments
232
+ | [
233
+ self: RawTransactionArgument<string>,
234
+ pool: RawTransactionArgument<string>,
235
+ quoteIn: RawTransactionArgument<number | bigint>,
236
+ deepIn: RawTransactionArgument<number | bigint>,
237
+ minBaseOut: RawTransactionArgument<number | bigint>,
238
+ ];
239
+ typeArguments: [string, string];
240
+ }
241
+ export function swapQuoteToBase(options: SwapQuoteToBaseOptions) {
242
+ const packageAddress = options.package ?? '@deepbook/margin-liquidation';
243
+ const argumentsTypes = [null, null, 'u64', 'u64', 'u64', '0x2::clock::Clock'] satisfies (
244
+ | string
245
+ | null
246
+ )[];
247
+ const parameterNames = ['self', 'pool', 'quoteIn', 'deepIn', 'minBaseOut'];
248
+ return (tx: Transaction) =>
249
+ tx.moveCall({
250
+ package: packageAddress,
251
+ module: 'liquidation_vault',
252
+ function: 'swap_quote_to_base',
253
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
254
+ typeArguments: options.typeArguments,
255
+ });
256
+ }
257
+ export interface LiquidateBaseArguments {
258
+ self: RawTransactionArgument<string>;
259
+ marginManager: RawTransactionArgument<string>;
260
+ registry: RawTransactionArgument<string>;
261
+ baseOracle: RawTransactionArgument<string>;
262
+ quoteOracle: RawTransactionArgument<string>;
263
+ baseMarginPool: RawTransactionArgument<string>;
264
+ quoteMarginPool: RawTransactionArgument<string>;
265
+ pool: RawTransactionArgument<string>;
266
+ repayAmount: RawTransactionArgument<number | bigint | null>;
267
+ }
268
+ export interface LiquidateBaseOptions {
269
+ package?: string;
270
+ arguments:
271
+ | LiquidateBaseArguments
272
+ | [
273
+ self: RawTransactionArgument<string>,
274
+ marginManager: RawTransactionArgument<string>,
275
+ registry: RawTransactionArgument<string>,
276
+ baseOracle: RawTransactionArgument<string>,
277
+ quoteOracle: RawTransactionArgument<string>,
278
+ baseMarginPool: RawTransactionArgument<string>,
279
+ quoteMarginPool: RawTransactionArgument<string>,
280
+ pool: RawTransactionArgument<string>,
281
+ repayAmount: RawTransactionArgument<number | bigint | null>,
282
+ ];
283
+ typeArguments: [string, string];
284
+ }
285
+ export function liquidateBase(options: LiquidateBaseOptions) {
286
+ const packageAddress = options.package ?? '@deepbook/margin-liquidation';
287
+ const argumentsTypes = [
288
+ null,
289
+ null,
290
+ null,
291
+ null,
292
+ null,
293
+ null,
294
+ null,
295
+ null,
296
+ '0x1::option::Option<u64>',
297
+ '0x2::clock::Clock',
298
+ ] satisfies (string | null)[];
299
+ const parameterNames = [
300
+ 'self',
301
+ 'marginManager',
302
+ 'registry',
303
+ 'baseOracle',
304
+ 'quoteOracle',
305
+ 'baseMarginPool',
306
+ 'quoteMarginPool',
307
+ 'pool',
308
+ 'repayAmount',
309
+ ];
310
+ return (tx: Transaction) =>
311
+ tx.moveCall({
312
+ package: packageAddress,
313
+ module: 'liquidation_vault',
314
+ function: 'liquidate_base',
315
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
316
+ typeArguments: options.typeArguments,
317
+ });
318
+ }
319
+ export interface LiquidateQuoteArguments {
320
+ self: RawTransactionArgument<string>;
321
+ marginManager: RawTransactionArgument<string>;
322
+ registry: RawTransactionArgument<string>;
323
+ baseOracle: RawTransactionArgument<string>;
324
+ quoteOracle: RawTransactionArgument<string>;
325
+ baseMarginPool: RawTransactionArgument<string>;
326
+ quoteMarginPool: RawTransactionArgument<string>;
327
+ pool: RawTransactionArgument<string>;
328
+ repayAmount: RawTransactionArgument<number | bigint | null>;
329
+ }
330
+ export interface LiquidateQuoteOptions {
331
+ package?: string;
332
+ arguments:
333
+ | LiquidateQuoteArguments
334
+ | [
335
+ self: RawTransactionArgument<string>,
336
+ marginManager: RawTransactionArgument<string>,
337
+ registry: RawTransactionArgument<string>,
338
+ baseOracle: RawTransactionArgument<string>,
339
+ quoteOracle: RawTransactionArgument<string>,
340
+ baseMarginPool: RawTransactionArgument<string>,
341
+ quoteMarginPool: RawTransactionArgument<string>,
342
+ pool: RawTransactionArgument<string>,
343
+ repayAmount: RawTransactionArgument<number | bigint | null>,
344
+ ];
345
+ typeArguments: [string, string];
346
+ }
347
+ export function liquidateQuote(options: LiquidateQuoteOptions) {
348
+ const packageAddress = options.package ?? '@deepbook/margin-liquidation';
349
+ const argumentsTypes = [
350
+ null,
351
+ null,
352
+ null,
353
+ null,
354
+ null,
355
+ null,
356
+ null,
357
+ null,
358
+ '0x1::option::Option<u64>',
359
+ '0x2::clock::Clock',
360
+ ] satisfies (string | null)[];
361
+ const parameterNames = [
362
+ 'self',
363
+ 'marginManager',
364
+ 'registry',
365
+ 'baseOracle',
366
+ 'quoteOracle',
367
+ 'baseMarginPool',
368
+ 'quoteMarginPool',
369
+ 'pool',
370
+ 'repayAmount',
371
+ ];
372
+ return (tx: Transaction) =>
373
+ tx.moveCall({
374
+ package: packageAddress,
375
+ module: 'liquidation_vault',
376
+ function: 'liquidate_quote',
377
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
378
+ typeArguments: options.typeArguments,
379
+ });
380
+ }
381
+ export interface BalanceArguments {
382
+ self: RawTransactionArgument<string>;
383
+ }
384
+ export interface BalanceOptions {
385
+ package?: string;
386
+ arguments: BalanceArguments | [self: RawTransactionArgument<string>];
387
+ typeArguments: [string];
388
+ }
389
+ export function balance(options: BalanceOptions) {
390
+ const packageAddress = options.package ?? '@deepbook/margin-liquidation';
391
+ const argumentsTypes = [null] satisfies (string | null)[];
392
+ const parameterNames = ['self'];
393
+ return (tx: Transaction) =>
394
+ tx.moveCall({
395
+ package: packageAddress,
396
+ module: 'liquidation_vault',
397
+ function: 'balance',
398
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
399
+ typeArguments: options.typeArguments,
400
+ });
401
+ }
@@ -105,6 +105,21 @@ export class RegistryQueries {
105
105
  return ratio / FLOAT_SCALAR;
106
106
  }
107
107
 
108
+ async getMinOpenRiskRatio(poolKey: string): Promise<number> {
109
+ const tx = new Transaction();
110
+ tx.setSender(this.#ctx.address);
111
+ tx.add(this.#ctx.marginRegistry.minOpenRiskRatio(poolKey));
112
+
113
+ const res = await this.#ctx.client.core.simulateTransaction({
114
+ transaction: tx,
115
+ include: { commandResults: true, effects: true },
116
+ });
117
+
118
+ const bytes = res.commandResults![0].returnValues[0].bcs;
119
+ const ratio = Number(bcs.U64.parse(bytes));
120
+ return ratio / FLOAT_SCALAR;
121
+ }
122
+
108
123
  async getLiquidationRiskRatio(poolKey: string): Promise<number> {
109
124
  const tx = new Transaction();
110
125
  tx.setSender(this.#ctx.address);