@mysten/deepbook-v3 1.5.8 → 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 (182) hide show
  1. package/CHANGELOG.md +73 -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/account.d.mts.map +1 -1
  8. package/dist/contracts/deepbook/balance_manager.mjs +413 -0
  9. package/dist/contracts/deepbook/balance_manager.mjs.map +1 -0
  10. package/dist/contracts/deepbook/big_vector.mjs +43 -0
  11. package/dist/contracts/deepbook/big_vector.mjs.map +1 -0
  12. package/dist/contracts/deepbook/book.mjs +29 -0
  13. package/dist/contracts/deepbook/book.mjs.map +1 -0
  14. package/dist/contracts/deepbook/deep_price.d.mts +3 -3
  15. package/dist/contracts/deepbook/deep_price.d.mts.map +1 -1
  16. package/dist/contracts/deepbook/deep_price.mjs +1 -1
  17. package/dist/contracts/deepbook/deps/std/type_name.mjs +17 -0
  18. package/dist/contracts/deepbook/deps/std/type_name.mjs.map +1 -0
  19. package/dist/contracts/deepbook/deps/sui/bag.mjs +43 -0
  20. package/dist/contracts/deepbook/deps/sui/bag.mjs.map +1 -0
  21. package/dist/contracts/deepbook/deps/sui/balance.mjs +21 -0
  22. package/dist/contracts/deepbook/deps/sui/balance.mjs.map +1 -0
  23. package/dist/contracts/deepbook/deps/sui/table.mjs +38 -0
  24. package/dist/contracts/deepbook/deps/sui/table.mjs.map +1 -0
  25. package/dist/contracts/deepbook/deps/sui/vec_map.mjs +37 -0
  26. package/dist/contracts/deepbook/deps/sui/vec_map.mjs.map +1 -0
  27. package/dist/contracts/deepbook/deps/sui/versioned.mjs +19 -0
  28. package/dist/contracts/deepbook/deps/sui/versioned.mjs.map +1 -0
  29. package/dist/contracts/deepbook/governance.mjs +49 -0
  30. package/dist/contracts/deepbook/governance.mjs.map +1 -0
  31. package/dist/contracts/deepbook/history.mjs +56 -0
  32. package/dist/contracts/deepbook/history.mjs.map +1 -0
  33. package/dist/contracts/deepbook/order.d.mts +12 -12
  34. package/dist/contracts/deepbook/pool.mjs +1739 -0
  35. package/dist/contracts/deepbook/pool.mjs.map +1 -0
  36. package/dist/contracts/deepbook/registry.mjs +295 -0
  37. package/dist/contracts/deepbook/registry.mjs.map +1 -0
  38. package/dist/contracts/deepbook/state.mjs +89 -0
  39. package/dist/contracts/deepbook/state.mjs.map +1 -0
  40. package/dist/contracts/deepbook/trade_params.mjs +21 -0
  41. package/dist/contracts/deepbook/trade_params.mjs.map +1 -0
  42. package/dist/contracts/deepbook/vault.mjs +42 -0
  43. package/dist/contracts/deepbook/vault.mjs.map +1 -0
  44. package/dist/contracts/deepbook_margin/deps/deepbook/balance_manager.mjs +53 -0
  45. package/dist/contracts/deepbook_margin/deps/deepbook/balance_manager.mjs.map +1 -0
  46. package/dist/contracts/deepbook_margin/deps/std/type_name.mjs +17 -0
  47. package/dist/contracts/deepbook_margin/deps/std/type_name.mjs.map +1 -0
  48. package/dist/contracts/deepbook_margin/deps/sui/bag.mjs +43 -0
  49. package/dist/contracts/deepbook_margin/deps/sui/bag.mjs.map +1 -0
  50. package/dist/contracts/deepbook_margin/deps/sui/balance.mjs +21 -0
  51. package/dist/contracts/deepbook_margin/deps/sui/balance.mjs.map +1 -0
  52. package/dist/contracts/deepbook_margin/deps/sui/table.mjs +38 -0
  53. package/dist/contracts/deepbook_margin/deps/sui/table.mjs.map +1 -0
  54. package/dist/contracts/deepbook_margin/deps/sui/vec_map.mjs +37 -0
  55. package/dist/contracts/deepbook_margin/deps/sui/vec_map.mjs.map +1 -0
  56. package/dist/contracts/deepbook_margin/deps/sui/vec_set.mjs +26 -0
  57. package/dist/contracts/deepbook_margin/deps/sui/vec_set.mjs.map +1 -0
  58. package/dist/contracts/deepbook_margin/deps/sui/versioned.mjs +19 -0
  59. package/dist/contracts/deepbook_margin/deps/sui/versioned.mjs.map +1 -0
  60. package/dist/contracts/deepbook_margin/margin_manager.mjs +989 -0
  61. package/dist/contracts/deepbook_margin/margin_manager.mjs.map +1 -0
  62. package/dist/contracts/deepbook_margin/margin_pool.mjs +550 -0
  63. package/dist/contracts/deepbook_margin/margin_pool.mjs.map +1 -0
  64. package/dist/contracts/deepbook_margin/margin_registry.mjs +786 -0
  65. package/dist/contracts/deepbook_margin/margin_registry.mjs.map +1 -0
  66. package/dist/contracts/deepbook_margin/margin_state.mjs +30 -0
  67. package/dist/contracts/deepbook_margin/margin_state.mjs.map +1 -0
  68. package/dist/contracts/deepbook_margin/oracle.mjs +82 -0
  69. package/dist/contracts/deepbook_margin/oracle.mjs.map +1 -0
  70. package/dist/contracts/deepbook_margin/pool_proxy.mjs +644 -0
  71. package/dist/contracts/deepbook_margin/pool_proxy.mjs.map +1 -0
  72. package/dist/contracts/deepbook_margin/position_manager.mjs +32 -0
  73. package/dist/contracts/deepbook_margin/position_manager.mjs.map +1 -0
  74. package/dist/contracts/deepbook_margin/protocol_config.mjs +122 -0
  75. package/dist/contracts/deepbook_margin/protocol_config.mjs.map +1 -0
  76. package/dist/contracts/deepbook_margin/protocol_fees.mjs +58 -0
  77. package/dist/contracts/deepbook_margin/protocol_fees.mjs.map +1 -0
  78. package/dist/contracts/deepbook_margin/rate_limiter.mjs +26 -0
  79. package/dist/contracts/deepbook_margin/rate_limiter.mjs.map +1 -0
  80. package/dist/contracts/deepbook_margin/tpsl.mjs +171 -0
  81. package/dist/contracts/deepbook_margin/tpsl.mjs.map +1 -0
  82. package/dist/contracts/margin_liquidation/deps/sui/bag.mjs +43 -0
  83. package/dist/contracts/margin_liquidation/deps/sui/bag.mjs.map +1 -0
  84. package/dist/contracts/margin_liquidation/liquidation_vault.mjs +179 -0
  85. package/dist/contracts/margin_liquidation/liquidation_vault.mjs.map +1 -0
  86. package/dist/contracts/utils/index.d.mts +1 -1
  87. package/dist/contracts/utils/index.mjs +92 -3
  88. package/dist/contracts/utils/index.mjs.map +1 -1
  89. package/dist/queries/registryQueries.mjs +13 -0
  90. package/dist/queries/registryQueries.mjs.map +1 -1
  91. package/dist/transactions/balanceManager.d.mts.map +1 -1
  92. package/dist/transactions/balanceManager.mjs +119 -100
  93. package/dist/transactions/balanceManager.mjs.map +1 -1
  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.map +1 -1
  98. package/dist/transactions/deepbookAdmin.mjs +151 -135
  99. package/dist/transactions/deepbookAdmin.mjs.map +1 -1
  100. package/dist/transactions/flashLoans.d.mts.map +1 -1
  101. package/dist/transactions/flashLoans.mjs +29 -22
  102. package/dist/transactions/flashLoans.mjs.map +1 -1
  103. package/dist/transactions/governance.d.mts.map +1 -1
  104. package/dist/transactions/governance.mjs +34 -33
  105. package/dist/transactions/governance.mjs.map +1 -1
  106. package/dist/transactions/marginAdmin.d.mts +17 -7
  107. package/dist/transactions/marginAdmin.d.mts.map +1 -1
  108. package/dist/transactions/marginAdmin.mjs +186 -169
  109. package/dist/transactions/marginAdmin.mjs.map +1 -1
  110. package/dist/transactions/marginLiquidations.d.mts +3 -3
  111. package/dist/transactions/marginLiquidations.d.mts.map +1 -1
  112. package/dist/transactions/marginLiquidations.mjs +53 -54
  113. package/dist/transactions/marginLiquidations.mjs.map +1 -1
  114. package/dist/transactions/marginMaintainer.d.mts +5 -5
  115. package/dist/transactions/marginMaintainer.d.mts.map +1 -1
  116. package/dist/transactions/marginMaintainer.mjs +83 -83
  117. package/dist/transactions/marginMaintainer.mjs.map +1 -1
  118. package/dist/transactions/marginManager.d.mts +32 -32
  119. package/dist/transactions/marginManager.d.mts.map +1 -1
  120. package/dist/transactions/marginManager.mjs +330 -317
  121. package/dist/transactions/marginManager.mjs.map +1 -1
  122. package/dist/transactions/marginPool.d.mts +18 -18
  123. package/dist/transactions/marginPool.d.mts.map +1 -1
  124. package/dist/transactions/marginPool.mjs +93 -89
  125. package/dist/transactions/marginPool.mjs.map +1 -1
  126. package/dist/transactions/marginRegistry.d.mts +22 -15
  127. package/dist/transactions/marginRegistry.d.mts.map +1 -1
  128. package/dist/transactions/marginRegistry.mjs +101 -68
  129. package/dist/transactions/marginRegistry.mjs.map +1 -1
  130. package/dist/transactions/marginTPSL.d.mts +27 -9
  131. package/dist/transactions/marginTPSL.d.mts.map +1 -1
  132. package/dist/transactions/marginTPSL.mjs +108 -82
  133. package/dist/transactions/marginTPSL.mjs.map +1 -1
  134. package/dist/transactions/poolProxy.d.mts +37 -5
  135. package/dist/transactions/poolProxy.d.mts.map +1 -1
  136. package/dist/transactions/poolProxy.mjs +269 -189
  137. package/dist/transactions/poolProxy.mjs.map +1 -1
  138. package/dist/utils/constants.mjs +4 -4
  139. package/dist/utils/constants.mjs.map +1 -1
  140. package/package.json +3 -3
  141. package/src/client.ts +8 -0
  142. package/src/contracts/deepbook/balance_manager.ts +46 -5
  143. package/src/contracts/deepbook/constants.ts +13 -0
  144. package/src/contracts/deepbook/pool.ts +133 -0
  145. package/src/contracts/deepbook/registry.ts +136 -1
  146. package/src/contracts/deepbook_margin/deps/deepbook/balance_manager.ts +49 -0
  147. package/src/contracts/deepbook_margin/deps/std/type_name.ts +24 -0
  148. package/src/contracts/deepbook_margin/deps/sui/bag.ts +41 -0
  149. package/src/contracts/deepbook_margin/deps/sui/balance.ts +19 -0
  150. package/src/contracts/deepbook_margin/deps/sui/table.ts +36 -0
  151. package/src/contracts/deepbook_margin/deps/sui/vec_map.ts +33 -0
  152. package/src/contracts/deepbook_margin/deps/sui/vec_set.ts +22 -0
  153. package/src/contracts/deepbook_margin/deps/sui/versioned.ts +13 -0
  154. package/src/contracts/deepbook_margin/margin_constants.ts +329 -0
  155. package/src/contracts/deepbook_margin/margin_manager.ts +1772 -0
  156. package/src/contracts/deepbook_margin/margin_pool.ts +1129 -0
  157. package/src/contracts/deepbook_margin/margin_registry.ts +1207 -0
  158. package/src/contracts/deepbook_margin/margin_state.ts +26 -0
  159. package/src/contracts/deepbook_margin/oracle.ts +99 -0
  160. package/src/contracts/deepbook_margin/pool_proxy.ts +1298 -0
  161. package/src/contracts/deepbook_margin/position_manager.ts +28 -0
  162. package/src/contracts/deepbook_margin/protocol_config.ts +163 -0
  163. package/src/contracts/deepbook_margin/protocol_fees.ts +153 -0
  164. package/src/contracts/deepbook_margin/rate_limiter.ts +80 -0
  165. package/src/contracts/deepbook_margin/tpsl.ts +559 -0
  166. package/src/contracts/margin_liquidation/deps/sui/bag.ts +41 -0
  167. package/src/contracts/margin_liquidation/liquidation_vault.ts +401 -0
  168. package/src/queries/registryQueries.ts +15 -0
  169. package/src/transactions/balanceManager.ts +140 -90
  170. package/src/transactions/deepbook.ts +586 -494
  171. package/src/transactions/deepbookAdmin.ts +154 -146
  172. package/src/transactions/flashLoans.ts +29 -20
  173. package/src/transactions/governance.ts +50 -37
  174. package/src/transactions/marginAdmin.ts +247 -188
  175. package/src/transactions/marginLiquidations.ts +70 -55
  176. package/src/transactions/marginMaintainer.ts +106 -88
  177. package/src/transactions/marginManager.ts +414 -348
  178. package/src/transactions/marginPool.ts +140 -103
  179. package/src/transactions/marginRegistry.ts +103 -70
  180. package/src/transactions/marginTPSL.ts +151 -87
  181. package/src/transactions/poolProxy.ts +384 -205
  182. 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);