@mysten/deepbook-v3 0.15.16 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/cjs/client.d.ts +5 -13
- package/dist/cjs/client.js +8 -98
- package/dist/cjs/client.js.map +3 -3
- package/dist/cjs/contracts/deepbook/account.d.ts +105 -0
- package/dist/cjs/contracts/deepbook/account.js +163 -0
- package/dist/cjs/contracts/deepbook/account.js.map +7 -0
- package/dist/cjs/contracts/deepbook/balance_manager.d.ts +268 -0
- package/dist/cjs/contracts/deepbook/balance_manager.js +361 -0
- package/dist/cjs/contracts/deepbook/balance_manager.js.map +7 -0
- package/dist/cjs/contracts/deepbook/balances.d.ts +10 -0
- package/dist/cjs/contracts/deepbook/balances.js +35 -0
- package/dist/cjs/contracts/deepbook/balances.js.map +7 -0
- package/dist/cjs/contracts/deepbook/big_vector.d.ts +62 -0
- package/dist/cjs/contracts/deepbook/big_vector.js +80 -0
- package/dist/cjs/contracts/deepbook/big_vector.js.map +7 -0
- package/dist/cjs/contracts/deepbook/book.d.ts +34 -0
- package/dist/cjs/contracts/deepbook/book.js +50 -0
- package/dist/cjs/contracts/deepbook/book.js.map +7 -0
- package/dist/cjs/contracts/deepbook/constants.d.ts +176 -0
- package/dist/cjs/contracts/deepbook/constants.js +338 -0
- package/dist/cjs/contracts/deepbook/constants.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deep_price.d.ts +60 -0
- package/dist/cjs/contracts/deepbook/deep_price.js +87 -0
- package/dist/cjs/contracts/deepbook/deep_price.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deps/std/type_name.d.ts +14 -0
- package/dist/cjs/contracts/deepbook/deps/std/type_name.js +42 -0
- package/dist/cjs/contracts/deepbook/deps/std/type_name.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deps/sui/bag.d.ts +33 -0
- package/dist/cjs/contracts/deepbook/deps/sui/bag.js +47 -0
- package/dist/cjs/contracts/deepbook/deps/sui/bag.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deps/sui/balance.d.ts +9 -0
- package/dist/cjs/contracts/deepbook/deps/sui/balance.js +33 -0
- package/dist/cjs/contracts/deepbook/deps/sui/balance.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deps/sui/object.d.ts +5 -0
- package/dist/cjs/contracts/deepbook/deps/sui/object.js +33 -0
- package/dist/cjs/contracts/deepbook/deps/sui/object.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deps/sui/table.d.ts +28 -0
- package/dist/cjs/contracts/deepbook/deps/sui/table.js +47 -0
- package/dist/cjs/contracts/deepbook/deps/sui/table.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deps/sui/vec_map.d.ts +27 -0
- package/dist/cjs/contracts/deepbook/deps/sui/vec_map.js +45 -0
- package/dist/cjs/contracts/deepbook/deps/sui/vec_map.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deps/sui/vec_set.d.ts +15 -0
- package/dist/cjs/contracts/deepbook/deps/sui/vec_set.js +35 -0
- package/dist/cjs/contracts/deepbook/deps/sui/vec_set.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deps/sui/versioned.d.ts +7 -0
- package/dist/cjs/contracts/deepbook/deps/sui/versioned.js +45 -0
- package/dist/cjs/contracts/deepbook/deps/sui/versioned.js.map +7 -0
- package/dist/cjs/contracts/deepbook/ewma.d.ts +17 -0
- package/dist/cjs/contracts/deepbook/ewma.js +39 -0
- package/dist/cjs/contracts/deepbook/ewma.js.map +7 -0
- package/dist/cjs/contracts/deepbook/fill.d.ts +153 -0
- package/dist/cjs/contracts/deepbook/fill.js +251 -0
- package/dist/cjs/contracts/deepbook/fill.js.map +7 -0
- package/dist/cjs/contracts/deepbook/governance.d.ts +63 -0
- package/dist/cjs/contracts/deepbook/governance.js +79 -0
- package/dist/cjs/contracts/deepbook/governance.js.map +7 -0
- package/dist/cjs/contracts/deepbook/history.d.ts +60 -0
- package/dist/cjs/contracts/deepbook/history.js +78 -0
- package/dist/cjs/contracts/deepbook/history.js.map +7 -0
- package/dist/cjs/contracts/deepbook/math.d.ts +94 -0
- package/dist/cjs/contracts/deepbook/math.js +132 -0
- package/dist/cjs/contracts/deepbook/math.js.map +7 -0
- package/dist/cjs/contracts/deepbook/order.d.ts +135 -0
- package/dist/cjs/contracts/deepbook/order.js +218 -0
- package/dist/cjs/contracts/deepbook/order.js.map +7 -0
- package/dist/cjs/contracts/deepbook/order_info.d.ts +296 -0
- package/dist/cjs/contracts/deepbook/order_info.js +386 -0
- package/dist/cjs/contracts/deepbook/order_info.js.map +7 -0
- package/dist/cjs/contracts/deepbook/order_query.d.ts +85 -0
- package/dist/cjs/contracts/deepbook/order_query.js +96 -0
- package/dist/cjs/contracts/deepbook/order_query.js.map +7 -0
- package/dist/cjs/contracts/deepbook/pool.d.ts +1218 -0
- package/dist/cjs/contracts/deepbook/pool.js +1236 -0
- package/dist/cjs/contracts/deepbook/pool.js.map +7 -0
- package/dist/cjs/contracts/deepbook/registry.d.ts +134 -0
- package/dist/cjs/contracts/deepbook/registry.js +182 -0
- package/dist/cjs/contracts/deepbook/registry.js.map +7 -0
- package/dist/cjs/contracts/deepbook/state.d.ts +117 -0
- package/dist/cjs/contracts/deepbook/state.js +104 -0
- package/dist/cjs/contracts/deepbook/state.js.map +7 -0
- package/dist/cjs/contracts/deepbook/trade_params.d.ts +7 -0
- package/dist/cjs/contracts/deepbook/trade_params.js +35 -0
- package/dist/cjs/contracts/deepbook/trade_params.js.map +7 -0
- package/dist/cjs/contracts/deepbook/vault.d.ts +30 -0
- package/dist/cjs/contracts/deepbook/vault.js +65 -0
- package/dist/cjs/contracts/deepbook/vault.js.map +7 -0
- package/dist/cjs/contracts/utils/index.d.ts +12 -0
- package/dist/cjs/contracts/utils/index.js +150 -0
- package/dist/cjs/contracts/utils/index.js.map +7 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +7 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/types/bcs.d.ts +5 -0
- package/dist/cjs/types/bcs.js +33 -0
- package/dist/cjs/types/bcs.js.map +7 -0
- package/dist/esm/client.d.ts +5 -13
- package/dist/esm/client.js +3 -93
- package/dist/esm/client.js.map +2 -2
- package/dist/esm/contracts/deepbook/account.d.ts +105 -0
- package/dist/esm/contracts/deepbook/account.js +133 -0
- package/dist/esm/contracts/deepbook/account.js.map +7 -0
- package/dist/esm/contracts/deepbook/balance_manager.d.ts +268 -0
- package/dist/esm/contracts/deepbook/balance_manager.js +331 -0
- package/dist/esm/contracts/deepbook/balance_manager.js.map +7 -0
- package/dist/esm/contracts/deepbook/balances.d.ts +10 -0
- package/dist/esm/contracts/deepbook/balances.js +15 -0
- package/dist/esm/contracts/deepbook/balances.js.map +7 -0
- package/dist/esm/contracts/deepbook/big_vector.d.ts +62 -0
- package/dist/esm/contracts/deepbook/big_vector.js +50 -0
- package/dist/esm/contracts/deepbook/big_vector.js.map +7 -0
- package/dist/esm/contracts/deepbook/book.d.ts +34 -0
- package/dist/esm/contracts/deepbook/book.js +20 -0
- package/dist/esm/contracts/deepbook/book.js.map +7 -0
- package/dist/esm/contracts/deepbook/constants.d.ts +176 -0
- package/dist/esm/contracts/deepbook/constants.js +318 -0
- package/dist/esm/contracts/deepbook/constants.js.map +7 -0
- package/dist/esm/contracts/deepbook/deep_price.d.ts +60 -0
- package/dist/esm/contracts/deepbook/deep_price.js +67 -0
- package/dist/esm/contracts/deepbook/deep_price.js.map +7 -0
- package/dist/esm/contracts/deepbook/deps/std/type_name.d.ts +14 -0
- package/dist/esm/contracts/deepbook/deps/std/type_name.js +22 -0
- package/dist/esm/contracts/deepbook/deps/std/type_name.js.map +7 -0
- package/dist/esm/contracts/deepbook/deps/sui/bag.d.ts +33 -0
- package/dist/esm/contracts/deepbook/deps/sui/bag.js +17 -0
- package/dist/esm/contracts/deepbook/deps/sui/bag.js.map +7 -0
- package/dist/esm/contracts/deepbook/deps/sui/balance.d.ts +9 -0
- package/dist/esm/contracts/deepbook/deps/sui/balance.js +13 -0
- package/dist/esm/contracts/deepbook/deps/sui/balance.js.map +7 -0
- package/dist/esm/contracts/deepbook/deps/sui/object.d.ts +5 -0
- package/dist/esm/contracts/deepbook/deps/sui/object.js +13 -0
- package/dist/esm/contracts/deepbook/deps/sui/object.js.map +7 -0
- package/dist/esm/contracts/deepbook/deps/sui/table.d.ts +28 -0
- package/dist/esm/contracts/deepbook/deps/sui/table.js +17 -0
- package/dist/esm/contracts/deepbook/deps/sui/table.js.map +7 -0
- package/dist/esm/contracts/deepbook/deps/sui/vec_map.d.ts +27 -0
- package/dist/esm/contracts/deepbook/deps/sui/vec_map.js +25 -0
- package/dist/esm/contracts/deepbook/deps/sui/vec_map.js.map +7 -0
- package/dist/esm/contracts/deepbook/deps/sui/vec_set.d.ts +15 -0
- package/dist/esm/contracts/deepbook/deps/sui/vec_set.js +15 -0
- package/dist/esm/contracts/deepbook/deps/sui/vec_set.js.map +7 -0
- package/dist/esm/contracts/deepbook/deps/sui/versioned.d.ts +7 -0
- package/dist/esm/contracts/deepbook/deps/sui/versioned.js +15 -0
- package/dist/esm/contracts/deepbook/deps/sui/versioned.js.map +7 -0
- package/dist/esm/contracts/deepbook/ewma.d.ts +17 -0
- package/dist/esm/contracts/deepbook/ewma.js +19 -0
- package/dist/esm/contracts/deepbook/ewma.js.map +7 -0
- package/dist/esm/contracts/deepbook/fill.d.ts +153 -0
- package/dist/esm/contracts/deepbook/fill.js +221 -0
- package/dist/esm/contracts/deepbook/fill.js.map +7 -0
- package/dist/esm/contracts/deepbook/governance.d.ts +63 -0
- package/dist/esm/contracts/deepbook/governance.js +49 -0
- package/dist/esm/contracts/deepbook/governance.js.map +7 -0
- package/dist/esm/contracts/deepbook/history.d.ts +60 -0
- package/dist/esm/contracts/deepbook/history.js +48 -0
- package/dist/esm/contracts/deepbook/history.js.map +7 -0
- package/dist/esm/contracts/deepbook/math.d.ts +94 -0
- package/dist/esm/contracts/deepbook/math.js +112 -0
- package/dist/esm/contracts/deepbook/math.js.map +7 -0
- package/dist/esm/contracts/deepbook/order.d.ts +135 -0
- package/dist/esm/contracts/deepbook/order.js +188 -0
- package/dist/esm/contracts/deepbook/order.js.map +7 -0
- package/dist/esm/contracts/deepbook/order_info.d.ts +296 -0
- package/dist/esm/contracts/deepbook/order_info.js +356 -0
- package/dist/esm/contracts/deepbook/order_info.js.map +7 -0
- package/dist/esm/contracts/deepbook/order_query.d.ts +85 -0
- package/dist/esm/contracts/deepbook/order_query.js +66 -0
- package/dist/esm/contracts/deepbook/order_query.js.map +7 -0
- package/dist/esm/contracts/deepbook/pool.d.ts +1218 -0
- package/dist/esm/contracts/deepbook/pool.js +1206 -0
- package/dist/esm/contracts/deepbook/pool.js.map +7 -0
- package/dist/esm/contracts/deepbook/registry.d.ts +134 -0
- package/dist/esm/contracts/deepbook/registry.js +152 -0
- package/dist/esm/contracts/deepbook/registry.js.map +7 -0
- package/dist/esm/contracts/deepbook/state.d.ts +117 -0
- package/dist/esm/contracts/deepbook/state.js +74 -0
- package/dist/esm/contracts/deepbook/state.js.map +7 -0
- package/dist/esm/contracts/deepbook/trade_params.d.ts +7 -0
- package/dist/esm/contracts/deepbook/trade_params.js +15 -0
- package/dist/esm/contracts/deepbook/trade_params.js.map +7 -0
- package/dist/esm/contracts/deepbook/vault.d.ts +30 -0
- package/dist/esm/contracts/deepbook/vault.js +35 -0
- package/dist/esm/contracts/deepbook/vault.js.map +7 -0
- package/dist/esm/contracts/utils/index.d.ts +12 -0
- package/dist/esm/contracts/utils/index.js +130 -0
- package/dist/esm/contracts/utils/index.js.map +7 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +7 -1
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/types/bcs.d.ts +5 -0
- package/dist/esm/types/bcs.js +13 -0
- package/dist/esm/types/bcs.js.map +7 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -3
- package/src/client.ts +3 -101
- package/src/contracts/deepbook/account.ts +199 -0
- package/src/contracts/deepbook/balance_manager.ts +532 -0
- package/src/contracts/deepbook/balances.ts +19 -0
- package/src/contracts/deepbook/big_vector.ts +74 -0
- package/src/contracts/deepbook/book.ts +24 -0
- package/src/contracts/deepbook/constants.ts +458 -0
- package/src/contracts/deepbook/deep_price.ts +84 -0
- package/src/contracts/deepbook/deps/std/type_name.ts +23 -0
- package/src/contracts/deepbook/deps/sui/bag.ts +41 -0
- package/src/contracts/deepbook/deps/sui/balance.ts +18 -0
- package/src/contracts/deepbook/deps/sui/object.ts +14 -0
- package/src/contracts/deepbook/deps/sui/table.ts +36 -0
- package/src/contracts/deepbook/deps/sui/vec_map.ts +33 -0
- package/src/contracts/deepbook/deps/sui/vec_set.ts +22 -0
- package/src/contracts/deepbook/deps/sui/versioned.ts +13 -0
- package/src/contracts/deepbook/ewma.ts +26 -0
- package/src/contracts/deepbook/fill.ts +336 -0
- package/src/contracts/deepbook/governance.ts +52 -0
- package/src/contracts/deepbook/history.ts +51 -0
- package/src/contracts/deepbook/math.ts +210 -0
- package/src/contracts/deepbook/order.ts +269 -0
- package/src/contracts/deepbook/order_info.ts +513 -0
- package/src/contracts/deepbook/order_query.ts +115 -0
- package/src/contracts/deepbook/pool.ts +2269 -0
- package/src/contracts/deepbook/registry.ts +242 -0
- package/src/contracts/deepbook/state.ts +74 -0
- package/src/contracts/deepbook/trade_params.ts +16 -0
- package/src/contracts/deepbook/vault.ts +37 -0
- package/src/contracts/utils/index.ts +167 -0
- package/src/index.ts +1 -0
- package/src/types/bcs.ts +8 -0
package/CHANGELOG.md
CHANGED
package/dist/cjs/client.d.ts
CHANGED
|
@@ -108,9 +108,7 @@ export declare class DeepBookClient {
|
|
|
108
108
|
* @returns {Promise<Object>} A promise that resolves to an object containing the order information
|
|
109
109
|
*/
|
|
110
110
|
getOrder(poolKey: string, orderId: string): Promise<{
|
|
111
|
-
balance_manager_id:
|
|
112
|
-
bytes: string;
|
|
113
|
-
};
|
|
111
|
+
balance_manager_id: string;
|
|
114
112
|
order_id: string;
|
|
115
113
|
client_order_id: string;
|
|
116
114
|
quantity: string;
|
|
@@ -139,9 +137,7 @@ export declare class DeepBookClient {
|
|
|
139
137
|
};
|
|
140
138
|
isBid: boolean;
|
|
141
139
|
normalized_price: string;
|
|
142
|
-
balance_manager_id:
|
|
143
|
-
bytes: string;
|
|
144
|
-
};
|
|
140
|
+
balance_manager_id: string;
|
|
145
141
|
order_id: string;
|
|
146
142
|
client_order_id: string;
|
|
147
143
|
fee_is_deep: boolean;
|
|
@@ -158,9 +154,7 @@ export declare class DeepBookClient {
|
|
|
158
154
|
* and expiration timestamp. Returns `null` if the retrieval fails.
|
|
159
155
|
*/
|
|
160
156
|
getOrders(poolKey: string, orderIds: string[]): Promise<{
|
|
161
|
-
balance_manager_id:
|
|
162
|
-
bytes: string;
|
|
163
|
-
};
|
|
157
|
+
balance_manager_id: string;
|
|
164
158
|
order_id: string;
|
|
165
159
|
client_order_id: string;
|
|
166
160
|
quantity: string;
|
|
@@ -253,16 +247,14 @@ export declare class DeepBookClient {
|
|
|
253
247
|
account(poolKey: string, managerKey: string): Promise<{
|
|
254
248
|
epoch: string;
|
|
255
249
|
open_orders: {
|
|
256
|
-
|
|
250
|
+
contents: string[];
|
|
257
251
|
};
|
|
258
252
|
taker_volume: number;
|
|
259
253
|
maker_volume: number;
|
|
260
254
|
active_stake: number;
|
|
261
255
|
inactive_stake: number;
|
|
262
256
|
created_proposal: boolean;
|
|
263
|
-
voted_proposal:
|
|
264
|
-
bytes: string;
|
|
265
|
-
} | null;
|
|
257
|
+
voted_proposal: string | null;
|
|
266
258
|
unclaimed_rebates: {
|
|
267
259
|
base: number;
|
|
268
260
|
quote: number;
|
package/dist/cjs/client.js
CHANGED
|
@@ -29,6 +29,7 @@ __export(client_exports, {
|
|
|
29
29
|
});
|
|
30
30
|
module.exports = __toCommonJS(client_exports);
|
|
31
31
|
var import_bcs = require("@mysten/sui/bcs");
|
|
32
|
+
var import_bcs2 = require("./types/bcs.js");
|
|
32
33
|
var import_transactions = require("@mysten/sui/transactions");
|
|
33
34
|
var import_utils = require("@mysten/sui/utils");
|
|
34
35
|
var import_balanceManager = require("./transactions/balanceManager.js");
|
|
@@ -211,10 +212,7 @@ class DeepBookClient {
|
|
|
211
212
|
transactionBlock: tx
|
|
212
213
|
});
|
|
213
214
|
const order_ids = res.results[0].returnValues[0][0];
|
|
214
|
-
|
|
215
|
-
constants: import_bcs.bcs.vector(import_bcs.bcs.U128)
|
|
216
|
-
});
|
|
217
|
-
return VecSet.parse(new Uint8Array(order_ids)).constants;
|
|
215
|
+
return (0, import_bcs2.VecSet)(import_bcs.bcs.u128()).parse(new Uint8Array(order_ids)).contents;
|
|
218
216
|
}
|
|
219
217
|
/**
|
|
220
218
|
* @description Get the order information for a specific order in a pool
|
|
@@ -229,28 +227,9 @@ class DeepBookClient {
|
|
|
229
227
|
sender: (0, import_utils.normalizeSuiAddress)(__privateGet(this, _address)),
|
|
230
228
|
transactionBlock: tx
|
|
231
229
|
});
|
|
232
|
-
const ID = import_bcs.bcs.struct("ID", {
|
|
233
|
-
bytes: import_bcs.bcs.Address
|
|
234
|
-
});
|
|
235
|
-
const OrderDeepPrice = import_bcs.bcs.struct("OrderDeepPrice", {
|
|
236
|
-
asset_is_base: import_bcs.bcs.bool(),
|
|
237
|
-
deep_per_asset: import_bcs.bcs.u64()
|
|
238
|
-
});
|
|
239
|
-
const Order = import_bcs.bcs.struct("Order", {
|
|
240
|
-
balance_manager_id: ID,
|
|
241
|
-
order_id: import_bcs.bcs.u128(),
|
|
242
|
-
client_order_id: import_bcs.bcs.u64(),
|
|
243
|
-
quantity: import_bcs.bcs.u64(),
|
|
244
|
-
filled_quantity: import_bcs.bcs.u64(),
|
|
245
|
-
fee_is_deep: import_bcs.bcs.bool(),
|
|
246
|
-
order_deep_price: OrderDeepPrice,
|
|
247
|
-
epoch: import_bcs.bcs.u64(),
|
|
248
|
-
status: import_bcs.bcs.u8(),
|
|
249
|
-
expire_timestamp: import_bcs.bcs.u64()
|
|
250
|
-
});
|
|
251
230
|
try {
|
|
252
231
|
const orderInformation = res.results[0].returnValues[0][0];
|
|
253
|
-
return Order.parse(new Uint8Array(orderInformation));
|
|
232
|
+
return import_bcs2.Order.parse(new Uint8Array(orderInformation));
|
|
254
233
|
} catch (e) {
|
|
255
234
|
return null;
|
|
256
235
|
}
|
|
@@ -268,28 +247,9 @@ class DeepBookClient {
|
|
|
268
247
|
sender: (0, import_utils.normalizeSuiAddress)(__privateGet(this, _address)),
|
|
269
248
|
transactionBlock: tx
|
|
270
249
|
});
|
|
271
|
-
const ID = import_bcs.bcs.struct("ID", {
|
|
272
|
-
bytes: import_bcs.bcs.Address
|
|
273
|
-
});
|
|
274
|
-
const OrderDeepPrice = import_bcs.bcs.struct("OrderDeepPrice", {
|
|
275
|
-
asset_is_base: import_bcs.bcs.bool(),
|
|
276
|
-
deep_per_asset: import_bcs.bcs.u64()
|
|
277
|
-
});
|
|
278
|
-
const Order = import_bcs.bcs.struct("Order", {
|
|
279
|
-
balance_manager_id: ID,
|
|
280
|
-
order_id: import_bcs.bcs.u128(),
|
|
281
|
-
client_order_id: import_bcs.bcs.u64(),
|
|
282
|
-
quantity: import_bcs.bcs.u64(),
|
|
283
|
-
filled_quantity: import_bcs.bcs.u64(),
|
|
284
|
-
fee_is_deep: import_bcs.bcs.bool(),
|
|
285
|
-
order_deep_price: OrderDeepPrice,
|
|
286
|
-
epoch: import_bcs.bcs.u64(),
|
|
287
|
-
status: import_bcs.bcs.u8(),
|
|
288
|
-
expire_timestamp: import_bcs.bcs.u64()
|
|
289
|
-
});
|
|
290
250
|
try {
|
|
291
251
|
const orderInformation = res.results[0].returnValues[0][0];
|
|
292
|
-
const orderInfo = Order.parse(new Uint8Array(orderInformation));
|
|
252
|
+
const orderInfo = import_bcs2.Order.parse(new Uint8Array(orderInformation));
|
|
293
253
|
if (!orderInfo) {
|
|
294
254
|
return null;
|
|
295
255
|
}
|
|
@@ -330,28 +290,9 @@ class DeepBookClient {
|
|
|
330
290
|
sender: (0, import_utils.normalizeSuiAddress)(__privateGet(this, _address)),
|
|
331
291
|
transactionBlock: tx
|
|
332
292
|
});
|
|
333
|
-
const ID = import_bcs.bcs.struct("ID", {
|
|
334
|
-
bytes: import_bcs.bcs.Address
|
|
335
|
-
});
|
|
336
|
-
const OrderDeepPrice = import_bcs.bcs.struct("OrderDeepPrice", {
|
|
337
|
-
asset_is_base: import_bcs.bcs.bool(),
|
|
338
|
-
deep_per_asset: import_bcs.bcs.u64()
|
|
339
|
-
});
|
|
340
|
-
const Order = import_bcs.bcs.struct("Order", {
|
|
341
|
-
balance_manager_id: ID,
|
|
342
|
-
order_id: import_bcs.bcs.u128(),
|
|
343
|
-
client_order_id: import_bcs.bcs.u64(),
|
|
344
|
-
quantity: import_bcs.bcs.u64(),
|
|
345
|
-
filled_quantity: import_bcs.bcs.u64(),
|
|
346
|
-
fee_is_deep: import_bcs.bcs.bool(),
|
|
347
|
-
order_deep_price: OrderDeepPrice,
|
|
348
|
-
epoch: import_bcs.bcs.u64(),
|
|
349
|
-
status: import_bcs.bcs.u8(),
|
|
350
|
-
expire_timestamp: import_bcs.bcs.u64()
|
|
351
|
-
});
|
|
352
293
|
try {
|
|
353
294
|
const orderInformation = res.results[0].returnValues[0][0];
|
|
354
|
-
return import_bcs.bcs.vector(Order).parse(new Uint8Array(orderInformation));
|
|
295
|
+
return import_bcs.bcs.vector(import_bcs2.Order).parse(new Uint8Array(orderInformation));
|
|
355
296
|
} catch (e) {
|
|
356
297
|
return null;
|
|
357
298
|
}
|
|
@@ -466,10 +407,7 @@ class DeepBookClient {
|
|
|
466
407
|
sender: (0, import_utils.normalizeSuiAddress)(__privateGet(this, _address)),
|
|
467
408
|
transactionBlock: tx
|
|
468
409
|
});
|
|
469
|
-
const
|
|
470
|
-
bytes: import_bcs.bcs.Address
|
|
471
|
-
});
|
|
472
|
-
const address = ID.parse(new Uint8Array(res.results[0].returnValues[0][0]))["bytes"];
|
|
410
|
+
const address = import_bcs.bcs.Address.parse(new Uint8Array(res.results[0].returnValues[0][0]));
|
|
473
411
|
return address;
|
|
474
412
|
}
|
|
475
413
|
/**
|
|
@@ -555,32 +493,8 @@ class DeepBookClient {
|
|
|
555
493
|
sender: (0, import_utils.normalizeSuiAddress)(__privateGet(this, _address)),
|
|
556
494
|
transactionBlock: tx
|
|
557
495
|
});
|
|
558
|
-
const ID = import_bcs.bcs.struct("ID", {
|
|
559
|
-
bytes: import_bcs.bcs.Address
|
|
560
|
-
});
|
|
561
|
-
const Balances = import_bcs.bcs.struct("Balances", {
|
|
562
|
-
base: import_bcs.bcs.u64(),
|
|
563
|
-
quote: import_bcs.bcs.u64(),
|
|
564
|
-
deep: import_bcs.bcs.u64()
|
|
565
|
-
});
|
|
566
|
-
const VecSet = import_bcs.bcs.struct("VecSet", {
|
|
567
|
-
constants: import_bcs.bcs.vector(import_bcs.bcs.U128)
|
|
568
|
-
});
|
|
569
|
-
const Account = import_bcs.bcs.struct("Account", {
|
|
570
|
-
epoch: import_bcs.bcs.u64(),
|
|
571
|
-
open_orders: VecSet,
|
|
572
|
-
taker_volume: import_bcs.bcs.u128(),
|
|
573
|
-
maker_volume: import_bcs.bcs.u128(),
|
|
574
|
-
active_stake: import_bcs.bcs.u64(),
|
|
575
|
-
inactive_stake: import_bcs.bcs.u64(),
|
|
576
|
-
created_proposal: import_bcs.bcs.bool(),
|
|
577
|
-
voted_proposal: import_bcs.bcs.option(ID),
|
|
578
|
-
unclaimed_rebates: Balances,
|
|
579
|
-
settled_balances: Balances,
|
|
580
|
-
owed_balances: Balances
|
|
581
|
-
});
|
|
582
496
|
const accountInformation = res.results[0].returnValues[0][0];
|
|
583
|
-
const accountInfo = Account.parse(new Uint8Array(accountInformation));
|
|
497
|
+
const accountInfo = import_bcs2.Account.parse(new Uint8Array(accountInformation));
|
|
584
498
|
return {
|
|
585
499
|
epoch: accountInfo.epoch,
|
|
586
500
|
open_orders: accountInfo.open_orders,
|
|
@@ -649,12 +563,8 @@ class DeepBookClient {
|
|
|
649
563
|
sender: (0, import_utils.normalizeSuiAddress)(__privateGet(this, _address)),
|
|
650
564
|
transactionBlock: tx
|
|
651
565
|
});
|
|
652
|
-
const OrderDeepPrice = import_bcs.bcs.struct("OrderDeepPrice", {
|
|
653
|
-
asset_is_base: import_bcs.bcs.bool(),
|
|
654
|
-
deep_per_asset: import_bcs.bcs.u64()
|
|
655
|
-
});
|
|
656
566
|
const poolDeepPriceBytes = res.results[0].returnValues[0][0];
|
|
657
|
-
const poolDeepPrice = OrderDeepPrice.parse(new Uint8Array(poolDeepPriceBytes));
|
|
567
|
+
const poolDeepPrice = import_bcs2.OrderDeepPrice.parse(new Uint8Array(poolDeepPriceBytes));
|
|
658
568
|
if (poolDeepPrice.asset_is_base) {
|
|
659
569
|
return {
|
|
660
570
|
asset_is_base: poolDeepPrice.asset_is_base,
|
package/dist/cjs/client.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/client.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport { bcs } from '@mysten/sui/bcs';\nimport type { SuiClient } from '@mysten/sui/client';\nimport { Transaction } from '@mysten/sui/transactions';\nimport { normalizeSuiAddress } from '@mysten/sui/utils';\n\nimport { BalanceManagerContract } from './transactions/balanceManager.js';\nimport { DeepBookContract } from './transactions/deepbook.js';\nimport { DeepBookAdminContract } from './transactions/deepbookAdmin.js';\nimport { FlashLoanContract } from './transactions/flashLoans.js';\nimport { GovernanceContract } from './transactions/governance.js';\nimport type { BalanceManager, Environment } from './types/index.js';\nimport { DEEP_SCALAR, DeepBookConfig, FLOAT_SCALAR } from './utils/config.js';\nimport type { CoinMap, PoolMap } from './utils/constants.js';\n\n/**\n * DeepBookClient class for managing DeepBook operations.\n */\nexport class DeepBookClient {\n\tclient: SuiClient;\n\t#config: DeepBookConfig;\n\t#address: string;\n\tbalanceManager: BalanceManagerContract;\n\tdeepBook: DeepBookContract;\n\tdeepBookAdmin: DeepBookAdminContract;\n\tflashLoans: FlashLoanContract;\n\tgovernance: GovernanceContract;\n\n\t/**\n\t * @param {SuiClient} client SuiClient instance\n\t * @param {string} address Address of the client\n\t * @param {Environment} env Environment configuration\n\t * @param {Object.<string, BalanceManager>} [balanceManagers] Optional initial BalanceManager map\n\t * @param {CoinMap} [coins] Optional initial CoinMap\n\t * @param {PoolMap} [pools] Optional initial PoolMap\n\t * @param {string} [adminCap] Optional admin capability\n\t */\n\tconstructor({\n\t\tclient,\n\t\taddress,\n\t\tenv,\n\t\tbalanceManagers,\n\t\tcoins,\n\t\tpools,\n\t\tadminCap,\n\t}: {\n\t\tclient: SuiClient;\n\t\taddress: string;\n\t\tenv: Environment;\n\t\tbalanceManagers?: { [key: string]: BalanceManager };\n\t\tcoins?: CoinMap;\n\t\tpools?: PoolMap;\n\t\tadminCap?: string;\n\t}) {\n\t\tthis.client = client;\n\t\tthis.#address = normalizeSuiAddress(address);\n\t\tthis.#config = new DeepBookConfig({\n\t\t\taddress: this.#address,\n\t\t\tenv,\n\t\t\tbalanceManagers,\n\t\t\tcoins,\n\t\t\tpools,\n\t\t\tadminCap,\n\t\t});\n\t\tthis.balanceManager = new BalanceManagerContract(this.#config);\n\t\tthis.deepBook = new DeepBookContract(this.#config);\n\t\tthis.deepBookAdmin = new DeepBookAdminContract(this.#config);\n\t\tthis.flashLoans = new FlashLoanContract(this.#config);\n\t\tthis.governance = new GovernanceContract(this.#config);\n\t}\n\n\t/**\n\t * @description Check the balance of a balance manager for a specific coin\n\t * @param {string} managerKey Key of the balance manager\n\t * @param {string} coinKey Key of the coin\n\t * @returns {Promise<{ coinType: string, balance: number }>} An object with coin type and balance\n\t */\n\tasync checkManagerBalance(managerKey: string, coinKey: string) {\n\t\tconst tx = new Transaction();\n\t\tconst coin = this.#config.getCoin(coinKey);\n\n\t\ttx.add(this.balanceManager.checkManagerBalance(managerKey, coinKey));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: this.#address,\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst bytes = res.results![0].returnValues![0][0];\n\t\tconst parsed_balance = bcs.U64.parse(new Uint8Array(bytes));\n\t\tconst balanceNumber = Number(parsed_balance);\n\t\tconst adjusted_balance = balanceNumber / coin.scalar;\n\n\t\treturn {\n\t\t\tcoinType: coin.type,\n\t\t\tbalance: Number(adjusted_balance.toFixed(9)),\n\t\t};\n\t}\n\n\t/**\n\t * @description Check if a pool is whitelisted\n\t * @param {string} poolKey Key of the pool\n\t * @returns {Promise<boolean>} Boolean indicating if the pool is whitelisted\n\t */\n\tasync whitelisted(poolKey: string) {\n\t\tconst tx = new Transaction();\n\n\t\ttx.add(this.deepBook.whitelisted(poolKey));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst bytes = res.results![0].returnValues![0][0];\n\t\tconst whitelisted = bcs.Bool.parse(new Uint8Array(bytes));\n\n\t\treturn whitelisted;\n\t}\n\n\t/**\n\t * @description Get the quote quantity out for a given base quantity\n\t * @param {string} poolKey Key of the pool\n\t * @param {number} baseQuantity Base quantity to convert\n\t * @returns {Promise<{ baseQuantity: number, baseOut: number, quoteOut: number, deepRequired: number }>}\n\t * An object with base quantity, base out, quote out, and deep required for the dry run\n\t */\n\tasync getQuoteQuantityOut(poolKey: string, baseQuantity: number) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseScalar = this.#config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.deepBook.getQuoteQuantityOut(poolKey, baseQuantity));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![0][0])));\n\t\tconst quoteOut = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![1][0])));\n\t\tconst deepRequired = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![2][0])));\n\n\t\treturn {\n\t\t\tbaseQuantity,\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get the base quantity out for a given quote quantity\n\t * @param {string} poolKey Key of the pool\n\t * @param {number} quoteQuantity Quote quantity to convert\n\t * @returns {Promise<{ quoteQuantity: number, baseOut: number, quoteOut: number, deepRequired: number }>}\n\t * An object with quote quantity, base out, quote out, and deep required for the dry run\n\t */\n\tasync getBaseQuantityOut(poolKey: string, quoteQuantity: number) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseScalar = this.#config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.deepBook.getBaseQuantityOut(poolKey, quoteQuantity));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![0][0])));\n\t\tconst quoteOut = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![1][0])));\n\t\tconst deepRequired = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![2][0])));\n\n\t\treturn {\n\t\t\tquoteQuantity: quoteQuantity,\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get the output quantities for given base and quote quantities. Only one quantity can be non-zero\n\t * @param {string} poolKey Key of the pool\n\t * @param {number} baseQuantity Base quantity to convert\n\t * @param {number} quoteQuantity Quote quantity to convert\n\t * @returns {Promise<{ baseQuantity: number, quoteQuantity: number, baseOut: number, quoteOut: number, deepRequired: number }>}\n\t * An object with base quantity, quote quantity, base out, quote out, and deep required for the dry run\n\t */\n\tasync getQuantityOut(poolKey: string, baseQuantity: number, quoteQuantity: number) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseScalar = this.#config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.deepBook.getQuantityOut(poolKey, baseQuantity, quoteQuantity));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![0][0])));\n\t\tconst quoteOut = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![1][0])));\n\t\tconst deepRequired = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![2][0])));\n\n\t\treturn {\n\t\t\tbaseQuantity,\n\t\t\tquoteQuantity,\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get open orders for a balance manager in a pool\n\t * @param {string} poolKey Key of the pool\n\t * @param {string} managerKey Key of the balance manager\n\t * @returns {Promise<Array>} An array of open order IDs\n\t */\n\tasync accountOpenOrders(poolKey: string, managerKey: string) {\n\t\tconst tx = new Transaction();\n\n\t\ttx.add(this.deepBook.accountOpenOrders(poolKey, managerKey));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst order_ids = res.results![0].returnValues![0][0];\n\t\tconst VecSet = bcs.struct('VecSet', {\n\t\t\tconstants: bcs.vector(bcs.U128),\n\t\t});\n\n\t\treturn VecSet.parse(new Uint8Array(order_ids)).constants;\n\t}\n\n\t/**\n\t * @description Get the order information for a specific order in a pool\n\t * @param {string} poolKey Key of the pool\n\t * @param {string} orderId Order ID\n\t * @returns {Promise<Object>} A promise that resolves to an object containing the order information\n\t */\n\tasync getOrder(poolKey: string, orderId: string) {\n\t\tconst tx = new Transaction();\n\n\t\ttx.add(this.deepBook.getOrder(poolKey, orderId));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst ID = bcs.struct('ID', {\n\t\t\tbytes: bcs.Address,\n\t\t});\n\t\tconst OrderDeepPrice = bcs.struct('OrderDeepPrice', {\n\t\t\tasset_is_base: bcs.bool(),\n\t\t\tdeep_per_asset: bcs.u64(),\n\t\t});\n\t\tconst Order = bcs.struct('Order', {\n\t\t\tbalance_manager_id: ID,\n\t\t\torder_id: bcs.u128(),\n\t\t\tclient_order_id: bcs.u64(),\n\t\t\tquantity: bcs.u64(),\n\t\t\tfilled_quantity: bcs.u64(),\n\t\t\tfee_is_deep: bcs.bool(),\n\t\t\torder_deep_price: OrderDeepPrice,\n\t\t\tepoch: bcs.u64(),\n\t\t\tstatus: bcs.u8(),\n\t\t\texpire_timestamp: bcs.u64(),\n\t\t});\n\n\t\ttry {\n\t\t\tconst orderInformation = res.results![0].returnValues![0][0];\n\t\t\treturn Order.parse(new Uint8Array(orderInformation));\n\t\t} catch (e) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * @description Get the order information for a specific order in a pool, with normalized price\n\t * @param {string} poolKey Key of the pool\n\t * @param {string} orderId Order ID\n\t * @returns {Promise<Object>} A promise that resolves to an object containing the order information with normalized price\n\t */\n\tasync getOrderNormalized(poolKey: string, orderId: string) {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.deepBook.getOrder(poolKey, orderId));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst ID = bcs.struct('ID', {\n\t\t\tbytes: bcs.Address,\n\t\t});\n\t\tconst OrderDeepPrice = bcs.struct('OrderDeepPrice', {\n\t\t\tasset_is_base: bcs.bool(),\n\t\t\tdeep_per_asset: bcs.u64(),\n\t\t});\n\t\tconst Order = bcs.struct('Order', {\n\t\t\tbalance_manager_id: ID,\n\t\t\torder_id: bcs.u128(),\n\t\t\tclient_order_id: bcs.u64(),\n\t\t\tquantity: bcs.u64(),\n\t\t\tfilled_quantity: bcs.u64(),\n\t\t\tfee_is_deep: bcs.bool(),\n\t\t\torder_deep_price: OrderDeepPrice,\n\t\t\tepoch: bcs.u64(),\n\t\t\tstatus: bcs.u8(),\n\t\t\texpire_timestamp: bcs.u64(),\n\t\t});\n\n\t\ttry {\n\t\t\tconst orderInformation = res.results![0].returnValues![0][0];\n\t\t\tconst orderInfo = Order.parse(new Uint8Array(orderInformation));\n\n\t\t\tif (!orderInfo) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst baseCoin = this.#config.getCoin(this.#config.getPool(poolKey).baseCoin);\n\t\t\tconst quoteCoin = this.#config.getCoin(this.#config.getPool(poolKey).quoteCoin);\n\t\t\tconst { isBid, price: rawPrice } = this.decodeOrderId(BigInt(orderInfo.order_id));\n\t\t\tconst normalizedPrice = (rawPrice * baseCoin.scalar) / quoteCoin.scalar / FLOAT_SCALAR;\n\n\t\t\tconst normalizedOrderInfo = {\n\t\t\t\t...orderInfo,\n\t\t\t\tquantity: String((Number(orderInfo.quantity) / baseCoin.scalar).toFixed(9)),\n\t\t\t\tfilled_quantity: String((Number(orderInfo.filled_quantity) / baseCoin.scalar).toFixed(9)),\n\t\t\t\torder_deep_price: {\n\t\t\t\t\t...orderInfo.order_deep_price,\n\t\t\t\t\tdeep_per_asset: String(\n\t\t\t\t\t\t(Number(orderInfo.order_deep_price.deep_per_asset) / DEEP_SCALAR).toFixed(9),\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tisBid,\n\t\t\t\tnormalized_price: normalizedPrice.toFixed(9),\n\t\t\t};\n\t\t\treturn normalizedOrderInfo;\n\t\t} catch (e) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * @description Retrieves information for multiple specific orders in a pool.\n\t * @param {string} poolKey - The key identifying the pool from which to retrieve order information.\n\t * @param {string[]} orderIds - List of order IDs to retrieve information for.\n\t * @returns {Promise<Object[] | null>} A promise that resolves to an array of order objects, each containing details such as\n\t * balance manager ID, order ID, client order ID, quantity, filled quantity, fee information, order price, epoch, status,\n\t * and expiration timestamp. Returns `null` if the retrieval fails.\n\t */\n\tasync getOrders(poolKey: string, orderIds: string[]) {\n\t\tconst tx = new Transaction();\n\n\t\ttx.add(this.deepBook.getOrders(poolKey, orderIds));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst ID = bcs.struct('ID', {\n\t\t\tbytes: bcs.Address,\n\t\t});\n\t\tconst OrderDeepPrice = bcs.struct('OrderDeepPrice', {\n\t\t\tasset_is_base: bcs.bool(),\n\t\t\tdeep_per_asset: bcs.u64(),\n\t\t});\n\t\tconst Order = bcs.struct('Order', {\n\t\t\tbalance_manager_id: ID,\n\t\t\torder_id: bcs.u128(),\n\t\t\tclient_order_id: bcs.u64(),\n\t\t\tquantity: bcs.u64(),\n\t\t\tfilled_quantity: bcs.u64(),\n\t\t\tfee_is_deep: bcs.bool(),\n\t\t\torder_deep_price: OrderDeepPrice,\n\t\t\tepoch: bcs.u64(),\n\t\t\tstatus: bcs.u8(),\n\t\t\texpire_timestamp: bcs.u64(),\n\t\t});\n\n\t\ttry {\n\t\t\tconst orderInformation = res.results![0].returnValues![0][0];\n\t\t\treturn bcs.vector(Order).parse(new Uint8Array(orderInformation));\n\t\t} catch (e) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * @description Get level 2 order book specifying range of price\n\t * @param {string} poolKey Key of the pool\n\t * @param {number} priceLow Lower bound of the price range\n\t * @param {number} priceHigh Upper bound of the price range\n\t * @param {boolean} isBid Whether to get bid or ask orders\n\t * @returns {Promise<{ prices: Array<number>, quantities: Array<number> }>}\n\t * An object with arrays of prices and quantities\n\t */\n\tasync getLevel2Range(poolKey: string, priceLow: number, priceHigh: number, isBid: boolean) {\n\t\tconst tx = new 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\n\t\ttx.add(this.deepBook.getLevel2Range(poolKey, priceLow, priceHigh, isBid));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst prices = res.results![0].returnValues![0][0];\n\t\tconst parsed_prices = bcs.vector(bcs.u64()).parse(new Uint8Array(prices));\n\t\tconst quantities = res.results![0].returnValues![1][0];\n\t\tconst parsed_quantities = bcs.vector(bcs.u64()).parse(new Uint8Array(quantities));\n\n\t\treturn {\n\t\t\tprices: parsed_prices.map((price) =>\n\t\t\t\tNumber(((Number(price) / FLOAT_SCALAR / quoteCoin.scalar) * baseCoin.scalar).toFixed(9)),\n\t\t\t),\n\t\t\tquantities: parsed_quantities.map((price) =>\n\t\t\t\tNumber((Number(price) / baseCoin.scalar).toFixed(9)),\n\t\t\t),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get level 2 order book ticks from mid-price for a pool\n\t * @param {string} poolKey Key of the pool\n\t * @param {number} ticks Number of ticks from mid-price\n\t * @returns {Promise<{ bid_prices: Array<number>, bid_quantities: Array<number>, ask_prices: Array<number>, ask_quantities: Array<number> }>}\n\t * An object with arrays of prices and quantities\n\t */\n\tasync getLevel2TicksFromMid(poolKey: string, ticks: number) {\n\t\tconst tx = new 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\n\t\ttx.add(this.deepBook.getLevel2TicksFromMid(poolKey, ticks));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst bid_prices = res.results![0].returnValues![0][0];\n\t\tconst bid_parsed_prices = bcs.vector(bcs.u64()).parse(new Uint8Array(bid_prices));\n\t\tconst bid_quantities = res.results![0].returnValues![1][0];\n\t\tconst bid_parsed_quantities = bcs.vector(bcs.u64()).parse(new Uint8Array(bid_quantities));\n\n\t\tconst ask_prices = res.results![0].returnValues![2][0];\n\t\tconst ask_parsed_prices = bcs.vector(bcs.u64()).parse(new Uint8Array(ask_prices));\n\t\tconst ask_quantities = res.results![0].returnValues![3][0];\n\t\tconst ask_parsed_quantities = bcs.vector(bcs.u64()).parse(new Uint8Array(ask_quantities));\n\n\t\treturn {\n\t\t\tbid_prices: bid_parsed_prices.map((price) =>\n\t\t\t\tNumber(((Number(price) / FLOAT_SCALAR / quoteCoin.scalar) * baseCoin.scalar).toFixed(9)),\n\t\t\t),\n\t\t\tbid_quantities: bid_parsed_quantities.map((quantity) =>\n\t\t\t\tNumber((Number(quantity) / baseCoin.scalar).toFixed(9)),\n\t\t\t),\n\t\t\task_prices: ask_parsed_prices.map((price) =>\n\t\t\t\tNumber(((Number(price) / FLOAT_SCALAR / quoteCoin.scalar) * baseCoin.scalar).toFixed(9)),\n\t\t\t),\n\t\t\task_quantities: ask_parsed_quantities.map((quantity) =>\n\t\t\t\tNumber((Number(quantity) / baseCoin.scalar).toFixed(9)),\n\t\t\t),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get the vault balances for a pool\n\t * @param {string} poolKey Key of the pool\n\t * @returns {Promise<{ base: number, quote: number, deep: number }>}\n\t * An object with base, quote, and deep balances in the vault\n\t */\n\tasync vaultBalances(poolKey: string) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseScalar = this.#config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.deepBook.vaultBalances(poolKey));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst baseInVault = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![0][0])));\n\t\tconst quoteInVault = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![1][0])));\n\t\tconst deepInVault = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![2][0])));\n\n\t\treturn {\n\t\t\tbase: Number((baseInVault / baseScalar).toFixed(9)),\n\t\t\tquote: Number((quoteInVault / quoteScalar).toFixed(9)),\n\t\t\tdeep: Number((deepInVault / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get the pool ID by asset types\n\t * @param {string} baseType Type of the base asset\n\t * @param {string} quoteType Type of the quote asset\n\t * @returns {Promise<string>} The address of the pool\n\t */\n\tasync getPoolIdByAssets(baseType: string, quoteType: string) {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.deepBook.getPoolIdByAssets(baseType, quoteType));\n\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst ID = bcs.struct('ID', {\n\t\t\tbytes: bcs.Address,\n\t\t});\n\t\tconst address = ID.parse(new Uint8Array(res.results![0].returnValues![0][0]))['bytes'];\n\n\t\treturn address;\n\t}\n\n\t/**\n\t * @description Get the mid price for a pool\n\t * @param {string} poolKey Key of the pool\n\t * @returns {Promise<number>} The mid price\n\t */\n\tasync midPrice(poolKey: string) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\ttx.add(this.deepBook.midPrice(poolKey));\n\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst bytes = res.results![0].returnValues![0][0];\n\t\tconst parsed_mid_price = Number(bcs.U64.parse(new Uint8Array(bytes)));\n\t\tconst adjusted_mid_price =\n\t\t\t(parsed_mid_price * baseCoin.scalar) / quoteCoin.scalar / FLOAT_SCALAR;\n\n\t\treturn Number(adjusted_mid_price.toFixed(9));\n\t}\n\n\t/**\n\t * @description Get the trade parameters for a given pool, including taker fee, maker fee, and stake required.\n\t * @param {string} poolKey Key of the pool\n\t * @returns {Promise<{ takerFee: number, makerFee: number, stakeRequired: number }>}\n\t */\n\tasync poolTradeParams(poolKey: string) {\n\t\tconst tx = new Transaction();\n\n\t\ttx.add(this.deepBook.poolTradeParams(poolKey));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst takerFee = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![0][0])));\n\t\tconst makerFee = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![1][0])));\n\t\tconst stakeRequired = Number(\n\t\t\tbcs.U64.parse(new Uint8Array(res.results![0].returnValues![2][0])),\n\t\t);\n\n\t\treturn {\n\t\t\ttakerFee: Number(takerFee / FLOAT_SCALAR),\n\t\t\tmakerFee: Number(makerFee / FLOAT_SCALAR),\n\t\t\tstakeRequired: Number(stakeRequired / DEEP_SCALAR),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get the trade parameters for a given pool, including tick size, lot size, and min size.\n\t * @param {string} poolKey Key of the pool\n\t * @returns {Promise<{ tickSize: number, lotSize: number, minSize: number }>}\n\t */\n\tasync poolBookParams(poolKey: string) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseScalar = this.#config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.deepBook.poolBookParams(poolKey));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst tickSize = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![0][0])));\n\t\tconst lotSize = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![1][0])));\n\t\tconst minSize = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![2][0])));\n\n\t\treturn {\n\t\t\ttickSize: Number((tickSize * baseScalar) / quoteScalar / FLOAT_SCALAR),\n\t\t\tlotSize: Number(lotSize / baseScalar),\n\t\t\tminSize: Number(minSize / baseScalar),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get the account information for a given pool and balance manager\n\t * @param {string} poolKey Key of the pool\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @returns {Promise<Object>} A promise that resolves to an object containing the account information\n\t */\n\tasync account(poolKey: string, managerKey: string) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseScalar = this.#config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.deepBook.account(poolKey, managerKey));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst ID = bcs.struct('ID', {\n\t\t\tbytes: bcs.Address,\n\t\t});\n\n\t\tconst Balances = bcs.struct('Balances', {\n\t\t\tbase: bcs.u64(),\n\t\t\tquote: bcs.u64(),\n\t\t\tdeep: bcs.u64(),\n\t\t});\n\n\t\tconst VecSet = bcs.struct('VecSet', {\n\t\t\tconstants: bcs.vector(bcs.U128),\n\t\t});\n\n\t\tconst Account = bcs.struct('Account', {\n\t\t\tepoch: bcs.u64(),\n\t\t\topen_orders: VecSet,\n\t\t\ttaker_volume: bcs.u128(),\n\t\t\tmaker_volume: bcs.u128(),\n\t\t\tactive_stake: bcs.u64(),\n\t\t\tinactive_stake: bcs.u64(),\n\t\t\tcreated_proposal: bcs.bool(),\n\t\t\tvoted_proposal: bcs.option(ID),\n\t\t\tunclaimed_rebates: Balances,\n\t\t\tsettled_balances: Balances,\n\t\t\towed_balances: Balances,\n\t\t});\n\n\t\tconst accountInformation = res.results![0].returnValues![0][0];\n\t\tconst accountInfo = Account.parse(new Uint8Array(accountInformation));\n\n\t\treturn {\n\t\t\tepoch: accountInfo.epoch,\n\t\t\topen_orders: accountInfo.open_orders,\n\t\t\ttaker_volume: Number(accountInfo.taker_volume) / baseScalar,\n\t\t\tmaker_volume: Number(accountInfo.maker_volume) / baseScalar,\n\t\t\tactive_stake: Number(accountInfo.active_stake) / DEEP_SCALAR,\n\t\t\tinactive_stake: Number(accountInfo.inactive_stake) / DEEP_SCALAR,\n\t\t\tcreated_proposal: accountInfo.created_proposal,\n\t\t\tvoted_proposal: accountInfo.voted_proposal,\n\t\t\tunclaimed_rebates: {\n\t\t\t\tbase: Number(accountInfo.unclaimed_rebates.base) / baseScalar,\n\t\t\t\tquote: Number(accountInfo.unclaimed_rebates.quote) / quoteScalar,\n\t\t\t\tdeep: Number(accountInfo.unclaimed_rebates.deep) / DEEP_SCALAR,\n\t\t\t},\n\t\t\tsettled_balances: {\n\t\t\t\tbase: Number(accountInfo.settled_balances.base) / baseScalar,\n\t\t\t\tquote: Number(accountInfo.settled_balances.quote) / quoteScalar,\n\t\t\t\tdeep: Number(accountInfo.settled_balances.deep) / DEEP_SCALAR,\n\t\t\t},\n\t\t\towed_balances: {\n\t\t\t\tbase: Number(accountInfo.owed_balances.base) / baseScalar,\n\t\t\t\tquote: Number(accountInfo.owed_balances.quote) / quoteScalar,\n\t\t\t\tdeep: Number(accountInfo.owed_balances.deep) / DEEP_SCALAR,\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @description Get the locked balances for a pool and balance manager\n\t * @param {string} poolKey Key of the pool\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @returns {Promise<{ base: number, quote: number, deep: number }>}\n\t * An object with base, quote, and deep locked for the balance manager in the pool\n\t */\n\tasync lockedBalance(poolKey: string, balanceManagerKey: string) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseScalar = this.#config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.deepBook.lockedBalance(poolKey, balanceManagerKey));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst baseLocked = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![0][0])));\n\t\tconst quoteLocked = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![1][0])));\n\t\tconst deepLocked = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![2][0])));\n\n\t\treturn {\n\t\t\tbase: Number((baseLocked / baseScalar).toFixed(9)),\n\t\t\tquote: Number((quoteLocked / quoteScalar).toFixed(9)),\n\t\t\tdeep: Number((deepLocked / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get the DEEP price conversion for a pool\n\t * @param {string} poolKey Key of the pool\n\t * @returns {Promise<{ asset_is_base: bool, deep_per_quote: number }>} Deep price conversion\n\t */\n\tasync getPoolDeepPrice(poolKey: string) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\ttx.add(this.deepBook.getPoolDeepPrice(poolKey));\n\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\tconst deepCoin = this.#config.getCoin('DEEP');\n\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst OrderDeepPrice = bcs.struct('OrderDeepPrice', {\n\t\t\tasset_is_base: bcs.bool(),\n\t\t\tdeep_per_asset: bcs.u64(),\n\t\t});\n\n\t\tconst poolDeepPriceBytes = res.results![0].returnValues![0][0];\n\t\tconst poolDeepPrice = OrderDeepPrice.parse(new Uint8Array(poolDeepPriceBytes));\n\n\t\tif (poolDeepPrice.asset_is_base) {\n\t\t\treturn {\n\t\t\t\tasset_is_base: poolDeepPrice.asset_is_base,\n\t\t\t\tdeep_per_base:\n\t\t\t\t\t((Number(poolDeepPrice.deep_per_asset) / FLOAT_SCALAR) * baseCoin.scalar) /\n\t\t\t\t\tdeepCoin.scalar,\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tasset_is_base: poolDeepPrice.asset_is_base,\n\t\t\t\tdeep_per_quote:\n\t\t\t\t\t((Number(poolDeepPrice.deep_per_asset) / FLOAT_SCALAR) * quoteCoin.scalar) /\n\t\t\t\t\tdeepCoin.scalar,\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\t * @description Decode the order ID to get bid/ask status, price, and orderId\n\t * @param {bigint} encodedOrderId Encoded order ID\n\t * @returns {Object} Object containing isBid, price, and orderId\n\t */\n\tdecodeOrderId(encodedOrderId: bigint): { isBid: boolean; price: number; orderId: number } {\n\t\tconst isBid = encodedOrderId >> 127n === 0n;\n\t\tconst price = Number((encodedOrderId >> 64n) & ((1n << 63n) - 1n));\n\t\tconst orderId = Number(encodedOrderId & ((1n << 64n) - 1n));\n\n\t\treturn { isBid, price, orderId };\n\t}\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport { bcs } from '@mysten/sui/bcs';\nimport { Account, Order, OrderDeepPrice, VecSet } from './types/bcs.js';\nimport type { SuiClient } from '@mysten/sui/client';\nimport { Transaction } from '@mysten/sui/transactions';\nimport { normalizeSuiAddress } from '@mysten/sui/utils';\n\nimport { BalanceManagerContract } from './transactions/balanceManager.js';\nimport { DeepBookContract } from './transactions/deepbook.js';\nimport { DeepBookAdminContract } from './transactions/deepbookAdmin.js';\nimport { FlashLoanContract } from './transactions/flashLoans.js';\nimport { GovernanceContract } from './transactions/governance.js';\nimport type { BalanceManager, Environment } from './types/index.js';\nimport { DEEP_SCALAR, DeepBookConfig, FLOAT_SCALAR } from './utils/config.js';\nimport type { CoinMap, PoolMap } from './utils/constants.js';\n\n/**\n * DeepBookClient class for managing DeepBook operations.\n */\nexport class DeepBookClient {\n\tclient: SuiClient;\n\t#config: DeepBookConfig;\n\t#address: string;\n\tbalanceManager: BalanceManagerContract;\n\tdeepBook: DeepBookContract;\n\tdeepBookAdmin: DeepBookAdminContract;\n\tflashLoans: FlashLoanContract;\n\tgovernance: GovernanceContract;\n\n\t/**\n\t * @param {SuiClient} client SuiClient instance\n\t * @param {string} address Address of the client\n\t * @param {Environment} env Environment configuration\n\t * @param {Object.<string, BalanceManager>} [balanceManagers] Optional initial BalanceManager map\n\t * @param {CoinMap} [coins] Optional initial CoinMap\n\t * @param {PoolMap} [pools] Optional initial PoolMap\n\t * @param {string} [adminCap] Optional admin capability\n\t */\n\tconstructor({\n\t\tclient,\n\t\taddress,\n\t\tenv,\n\t\tbalanceManagers,\n\t\tcoins,\n\t\tpools,\n\t\tadminCap,\n\t}: {\n\t\tclient: SuiClient;\n\t\taddress: string;\n\t\tenv: Environment;\n\t\tbalanceManagers?: { [key: string]: BalanceManager };\n\t\tcoins?: CoinMap;\n\t\tpools?: PoolMap;\n\t\tadminCap?: string;\n\t}) {\n\t\tthis.client = client;\n\t\tthis.#address = normalizeSuiAddress(address);\n\t\tthis.#config = new DeepBookConfig({\n\t\t\taddress: this.#address,\n\t\t\tenv,\n\t\t\tbalanceManagers,\n\t\t\tcoins,\n\t\t\tpools,\n\t\t\tadminCap,\n\t\t});\n\t\tthis.balanceManager = new BalanceManagerContract(this.#config);\n\t\tthis.deepBook = new DeepBookContract(this.#config);\n\t\tthis.deepBookAdmin = new DeepBookAdminContract(this.#config);\n\t\tthis.flashLoans = new FlashLoanContract(this.#config);\n\t\tthis.governance = new GovernanceContract(this.#config);\n\t}\n\n\t/**\n\t * @description Check the balance of a balance manager for a specific coin\n\t * @param {string} managerKey Key of the balance manager\n\t * @param {string} coinKey Key of the coin\n\t * @returns {Promise<{ coinType: string, balance: number }>} An object with coin type and balance\n\t */\n\tasync checkManagerBalance(managerKey: string, coinKey: string) {\n\t\tconst tx = new Transaction();\n\t\tconst coin = this.#config.getCoin(coinKey);\n\n\t\ttx.add(this.balanceManager.checkManagerBalance(managerKey, coinKey));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: this.#address,\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst bytes = res.results![0].returnValues![0][0];\n\t\tconst parsed_balance = bcs.U64.parse(new Uint8Array(bytes));\n\t\tconst balanceNumber = Number(parsed_balance);\n\t\tconst adjusted_balance = balanceNumber / coin.scalar;\n\n\t\treturn {\n\t\t\tcoinType: coin.type,\n\t\t\tbalance: Number(adjusted_balance.toFixed(9)),\n\t\t};\n\t}\n\n\t/**\n\t * @description Check if a pool is whitelisted\n\t * @param {string} poolKey Key of the pool\n\t * @returns {Promise<boolean>} Boolean indicating if the pool is whitelisted\n\t */\n\tasync whitelisted(poolKey: string) {\n\t\tconst tx = new Transaction();\n\n\t\ttx.add(this.deepBook.whitelisted(poolKey));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst bytes = res.results![0].returnValues![0][0];\n\t\tconst whitelisted = bcs.Bool.parse(new Uint8Array(bytes));\n\n\t\treturn whitelisted;\n\t}\n\n\t/**\n\t * @description Get the quote quantity out for a given base quantity\n\t * @param {string} poolKey Key of the pool\n\t * @param {number} baseQuantity Base quantity to convert\n\t * @returns {Promise<{ baseQuantity: number, baseOut: number, quoteOut: number, deepRequired: number }>}\n\t * An object with base quantity, base out, quote out, and deep required for the dry run\n\t */\n\tasync getQuoteQuantityOut(poolKey: string, baseQuantity: number) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseScalar = this.#config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.deepBook.getQuoteQuantityOut(poolKey, baseQuantity));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![0][0])));\n\t\tconst quoteOut = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![1][0])));\n\t\tconst deepRequired = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![2][0])));\n\n\t\treturn {\n\t\t\tbaseQuantity,\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get the base quantity out for a given quote quantity\n\t * @param {string} poolKey Key of the pool\n\t * @param {number} quoteQuantity Quote quantity to convert\n\t * @returns {Promise<{ quoteQuantity: number, baseOut: number, quoteOut: number, deepRequired: number }>}\n\t * An object with quote quantity, base out, quote out, and deep required for the dry run\n\t */\n\tasync getBaseQuantityOut(poolKey: string, quoteQuantity: number) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseScalar = this.#config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.deepBook.getBaseQuantityOut(poolKey, quoteQuantity));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![0][0])));\n\t\tconst quoteOut = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![1][0])));\n\t\tconst deepRequired = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![2][0])));\n\n\t\treturn {\n\t\t\tquoteQuantity: quoteQuantity,\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get the output quantities for given base and quote quantities. Only one quantity can be non-zero\n\t * @param {string} poolKey Key of the pool\n\t * @param {number} baseQuantity Base quantity to convert\n\t * @param {number} quoteQuantity Quote quantity to convert\n\t * @returns {Promise<{ baseQuantity: number, quoteQuantity: number, baseOut: number, quoteOut: number, deepRequired: number }>}\n\t * An object with base quantity, quote quantity, base out, quote out, and deep required for the dry run\n\t */\n\tasync getQuantityOut(poolKey: string, baseQuantity: number, quoteQuantity: number) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseScalar = this.#config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.deepBook.getQuantityOut(poolKey, baseQuantity, quoteQuantity));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![0][0])));\n\t\tconst quoteOut = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![1][0])));\n\t\tconst deepRequired = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![2][0])));\n\n\t\treturn {\n\t\t\tbaseQuantity,\n\t\t\tquoteQuantity,\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get open orders for a balance manager in a pool\n\t * @param {string} poolKey Key of the pool\n\t * @param {string} managerKey Key of the balance manager\n\t * @returns {Promise<Array>} An array of open order IDs\n\t */\n\tasync accountOpenOrders(poolKey: string, managerKey: string) {\n\t\tconst tx = new Transaction();\n\n\t\ttx.add(this.deepBook.accountOpenOrders(poolKey, managerKey));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst order_ids = res.results![0].returnValues![0][0];\n\n\t\treturn VecSet(bcs.u128()).parse(new Uint8Array(order_ids)).contents;\n\t}\n\n\t/**\n\t * @description Get the order information for a specific order in a pool\n\t * @param {string} poolKey Key of the pool\n\t * @param {string} orderId Order ID\n\t * @returns {Promise<Object>} A promise that resolves to an object containing the order information\n\t */\n\tasync getOrder(poolKey: string, orderId: string) {\n\t\tconst tx = new Transaction();\n\n\t\ttx.add(this.deepBook.getOrder(poolKey, orderId));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\ttry {\n\t\t\tconst orderInformation = res.results![0].returnValues![0][0];\n\t\t\treturn Order.parse(new Uint8Array(orderInformation));\n\t\t} catch (e) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * @description Get the order information for a specific order in a pool, with normalized price\n\t * @param {string} poolKey Key of the pool\n\t * @param {string} orderId Order ID\n\t * @returns {Promise<Object>} A promise that resolves to an object containing the order information with normalized price\n\t */\n\tasync getOrderNormalized(poolKey: string, orderId: string) {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.deepBook.getOrder(poolKey, orderId));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\ttry {\n\t\t\tconst orderInformation = res.results![0].returnValues![0][0];\n\t\t\tconst orderInfo = Order.parse(new Uint8Array(orderInformation));\n\n\t\t\tif (!orderInfo) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tconst baseCoin = this.#config.getCoin(this.#config.getPool(poolKey).baseCoin);\n\t\t\tconst quoteCoin = this.#config.getCoin(this.#config.getPool(poolKey).quoteCoin);\n\t\t\tconst { isBid, price: rawPrice } = this.decodeOrderId(BigInt(orderInfo.order_id));\n\t\t\tconst normalizedPrice = (rawPrice * baseCoin.scalar) / quoteCoin.scalar / FLOAT_SCALAR;\n\n\t\t\tconst normalizedOrderInfo = {\n\t\t\t\t...orderInfo,\n\t\t\t\tquantity: String((Number(orderInfo.quantity) / baseCoin.scalar).toFixed(9)),\n\t\t\t\tfilled_quantity: String((Number(orderInfo.filled_quantity) / baseCoin.scalar).toFixed(9)),\n\t\t\t\torder_deep_price: {\n\t\t\t\t\t...orderInfo.order_deep_price,\n\t\t\t\t\tdeep_per_asset: String(\n\t\t\t\t\t\t(Number(orderInfo.order_deep_price.deep_per_asset) / DEEP_SCALAR).toFixed(9),\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tisBid,\n\t\t\t\tnormalized_price: normalizedPrice.toFixed(9),\n\t\t\t};\n\t\t\treturn normalizedOrderInfo;\n\t\t} catch (e) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * @description Retrieves information for multiple specific orders in a pool.\n\t * @param {string} poolKey - The key identifying the pool from which to retrieve order information.\n\t * @param {string[]} orderIds - List of order IDs to retrieve information for.\n\t * @returns {Promise<Object[] | null>} A promise that resolves to an array of order objects, each containing details such as\n\t * balance manager ID, order ID, client order ID, quantity, filled quantity, fee information, order price, epoch, status,\n\t * and expiration timestamp. Returns `null` if the retrieval fails.\n\t */\n\tasync getOrders(poolKey: string, orderIds: string[]) {\n\t\tconst tx = new Transaction();\n\n\t\ttx.add(this.deepBook.getOrders(poolKey, orderIds));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\ttry {\n\t\t\tconst orderInformation = res.results![0].returnValues![0][0];\n\t\t\treturn bcs.vector(Order).parse(new Uint8Array(orderInformation));\n\t\t} catch (e) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * @description Get level 2 order book specifying range of price\n\t * @param {string} poolKey Key of the pool\n\t * @param {number} priceLow Lower bound of the price range\n\t * @param {number} priceHigh Upper bound of the price range\n\t * @param {boolean} isBid Whether to get bid or ask orders\n\t * @returns {Promise<{ prices: Array<number>, quantities: Array<number> }>}\n\t * An object with arrays of prices and quantities\n\t */\n\tasync getLevel2Range(poolKey: string, priceLow: number, priceHigh: number, isBid: boolean) {\n\t\tconst tx = new 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\n\t\ttx.add(this.deepBook.getLevel2Range(poolKey, priceLow, priceHigh, isBid));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst prices = res.results![0].returnValues![0][0];\n\t\tconst parsed_prices = bcs.vector(bcs.u64()).parse(new Uint8Array(prices));\n\t\tconst quantities = res.results![0].returnValues![1][0];\n\t\tconst parsed_quantities = bcs.vector(bcs.u64()).parse(new Uint8Array(quantities));\n\n\t\treturn {\n\t\t\tprices: parsed_prices.map((price) =>\n\t\t\t\tNumber(((Number(price) / FLOAT_SCALAR / quoteCoin.scalar) * baseCoin.scalar).toFixed(9)),\n\t\t\t),\n\t\t\tquantities: parsed_quantities.map((price) =>\n\t\t\t\tNumber((Number(price) / baseCoin.scalar).toFixed(9)),\n\t\t\t),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get level 2 order book ticks from mid-price for a pool\n\t * @param {string} poolKey Key of the pool\n\t * @param {number} ticks Number of ticks from mid-price\n\t * @returns {Promise<{ bid_prices: Array<number>, bid_quantities: Array<number>, ask_prices: Array<number>, ask_quantities: Array<number> }>}\n\t * An object with arrays of prices and quantities\n\t */\n\tasync getLevel2TicksFromMid(poolKey: string, ticks: number) {\n\t\tconst tx = new 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\n\t\ttx.add(this.deepBook.getLevel2TicksFromMid(poolKey, ticks));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst bid_prices = res.results![0].returnValues![0][0];\n\t\tconst bid_parsed_prices = bcs.vector(bcs.u64()).parse(new Uint8Array(bid_prices));\n\t\tconst bid_quantities = res.results![0].returnValues![1][0];\n\t\tconst bid_parsed_quantities = bcs.vector(bcs.u64()).parse(new Uint8Array(bid_quantities));\n\n\t\tconst ask_prices = res.results![0].returnValues![2][0];\n\t\tconst ask_parsed_prices = bcs.vector(bcs.u64()).parse(new Uint8Array(ask_prices));\n\t\tconst ask_quantities = res.results![0].returnValues![3][0];\n\t\tconst ask_parsed_quantities = bcs.vector(bcs.u64()).parse(new Uint8Array(ask_quantities));\n\n\t\treturn {\n\t\t\tbid_prices: bid_parsed_prices.map((price) =>\n\t\t\t\tNumber(((Number(price) / FLOAT_SCALAR / quoteCoin.scalar) * baseCoin.scalar).toFixed(9)),\n\t\t\t),\n\t\t\tbid_quantities: bid_parsed_quantities.map((quantity) =>\n\t\t\t\tNumber((Number(quantity) / baseCoin.scalar).toFixed(9)),\n\t\t\t),\n\t\t\task_prices: ask_parsed_prices.map((price) =>\n\t\t\t\tNumber(((Number(price) / FLOAT_SCALAR / quoteCoin.scalar) * baseCoin.scalar).toFixed(9)),\n\t\t\t),\n\t\t\task_quantities: ask_parsed_quantities.map((quantity) =>\n\t\t\t\tNumber((Number(quantity) / baseCoin.scalar).toFixed(9)),\n\t\t\t),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get the vault balances for a pool\n\t * @param {string} poolKey Key of the pool\n\t * @returns {Promise<{ base: number, quote: number, deep: number }>}\n\t * An object with base, quote, and deep balances in the vault\n\t */\n\tasync vaultBalances(poolKey: string) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseScalar = this.#config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.deepBook.vaultBalances(poolKey));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst baseInVault = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![0][0])));\n\t\tconst quoteInVault = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![1][0])));\n\t\tconst deepInVault = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![2][0])));\n\n\t\treturn {\n\t\t\tbase: Number((baseInVault / baseScalar).toFixed(9)),\n\t\t\tquote: Number((quoteInVault / quoteScalar).toFixed(9)),\n\t\t\tdeep: Number((deepInVault / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get the pool ID by asset types\n\t * @param {string} baseType Type of the base asset\n\t * @param {string} quoteType Type of the quote asset\n\t * @returns {Promise<string>} The address of the pool\n\t */\n\tasync getPoolIdByAssets(baseType: string, quoteType: string) {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.deepBook.getPoolIdByAssets(baseType, quoteType));\n\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst address = bcs.Address.parse(new Uint8Array(res.results![0].returnValues![0][0]));\n\n\t\treturn address;\n\t}\n\n\t/**\n\t * @description Get the mid price for a pool\n\t * @param {string} poolKey Key of the pool\n\t * @returns {Promise<number>} The mid price\n\t */\n\tasync midPrice(poolKey: string) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\ttx.add(this.deepBook.midPrice(poolKey));\n\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst bytes = res.results![0].returnValues![0][0];\n\t\tconst parsed_mid_price = Number(bcs.U64.parse(new Uint8Array(bytes)));\n\t\tconst adjusted_mid_price =\n\t\t\t(parsed_mid_price * baseCoin.scalar) / quoteCoin.scalar / FLOAT_SCALAR;\n\n\t\treturn Number(adjusted_mid_price.toFixed(9));\n\t}\n\n\t/**\n\t * @description Get the trade parameters for a given pool, including taker fee, maker fee, and stake required.\n\t * @param {string} poolKey Key of the pool\n\t * @returns {Promise<{ takerFee: number, makerFee: number, stakeRequired: number }>}\n\t */\n\tasync poolTradeParams(poolKey: string) {\n\t\tconst tx = new Transaction();\n\n\t\ttx.add(this.deepBook.poolTradeParams(poolKey));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst takerFee = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![0][0])));\n\t\tconst makerFee = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![1][0])));\n\t\tconst stakeRequired = Number(\n\t\t\tbcs.U64.parse(new Uint8Array(res.results![0].returnValues![2][0])),\n\t\t);\n\n\t\treturn {\n\t\t\ttakerFee: Number(takerFee / FLOAT_SCALAR),\n\t\t\tmakerFee: Number(makerFee / FLOAT_SCALAR),\n\t\t\tstakeRequired: Number(stakeRequired / DEEP_SCALAR),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get the trade parameters for a given pool, including tick size, lot size, and min size.\n\t * @param {string} poolKey Key of the pool\n\t * @returns {Promise<{ tickSize: number, lotSize: number, minSize: number }>}\n\t */\n\tasync poolBookParams(poolKey: string) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseScalar = this.#config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.deepBook.poolBookParams(poolKey));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst tickSize = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![0][0])));\n\t\tconst lotSize = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![1][0])));\n\t\tconst minSize = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![2][0])));\n\n\t\treturn {\n\t\t\ttickSize: Number((tickSize * baseScalar) / quoteScalar / FLOAT_SCALAR),\n\t\t\tlotSize: Number(lotSize / baseScalar),\n\t\t\tminSize: Number(minSize / baseScalar),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get the account information for a given pool and balance manager\n\t * @param {string} poolKey Key of the pool\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @returns {Promise<Object>} A promise that resolves to an object containing the account information\n\t */\n\tasync account(poolKey: string, managerKey: string) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseScalar = this.#config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.deepBook.account(poolKey, managerKey));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst accountInformation = res.results![0].returnValues![0][0];\n\t\tconst accountInfo = Account.parse(new Uint8Array(accountInformation));\n\n\t\treturn {\n\t\t\tepoch: accountInfo.epoch,\n\t\t\topen_orders: accountInfo.open_orders,\n\t\t\ttaker_volume: Number(accountInfo.taker_volume) / baseScalar,\n\t\t\tmaker_volume: Number(accountInfo.maker_volume) / baseScalar,\n\t\t\tactive_stake: Number(accountInfo.active_stake) / DEEP_SCALAR,\n\t\t\tinactive_stake: Number(accountInfo.inactive_stake) / DEEP_SCALAR,\n\t\t\tcreated_proposal: accountInfo.created_proposal,\n\t\t\tvoted_proposal: accountInfo.voted_proposal,\n\t\t\tunclaimed_rebates: {\n\t\t\t\tbase: Number(accountInfo.unclaimed_rebates.base) / baseScalar,\n\t\t\t\tquote: Number(accountInfo.unclaimed_rebates.quote) / quoteScalar,\n\t\t\t\tdeep: Number(accountInfo.unclaimed_rebates.deep) / DEEP_SCALAR,\n\t\t\t},\n\t\t\tsettled_balances: {\n\t\t\t\tbase: Number(accountInfo.settled_balances.base) / baseScalar,\n\t\t\t\tquote: Number(accountInfo.settled_balances.quote) / quoteScalar,\n\t\t\t\tdeep: Number(accountInfo.settled_balances.deep) / DEEP_SCALAR,\n\t\t\t},\n\t\t\towed_balances: {\n\t\t\t\tbase: Number(accountInfo.owed_balances.base) / baseScalar,\n\t\t\t\tquote: Number(accountInfo.owed_balances.quote) / quoteScalar,\n\t\t\t\tdeep: Number(accountInfo.owed_balances.deep) / DEEP_SCALAR,\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * @description Get the locked balances for a pool and balance manager\n\t * @param {string} poolKey Key of the pool\n\t * @param {string} managerKey The key of the BalanceManager\n\t * @returns {Promise<{ base: number, quote: number, deep: number }>}\n\t * An object with base, quote, and deep locked for the balance manager in the pool\n\t */\n\tasync lockedBalance(poolKey: string, balanceManagerKey: string) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseScalar = this.#config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.deepBook.lockedBalance(poolKey, balanceManagerKey));\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst baseLocked = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![0][0])));\n\t\tconst quoteLocked = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![1][0])));\n\t\tconst deepLocked = Number(bcs.U64.parse(new Uint8Array(res.results![0].returnValues![2][0])));\n\n\t\treturn {\n\t\t\tbase: Number((baseLocked / baseScalar).toFixed(9)),\n\t\t\tquote: Number((quoteLocked / quoteScalar).toFixed(9)),\n\t\t\tdeep: Number((deepLocked / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\t/**\n\t * @description Get the DEEP price conversion for a pool\n\t * @param {string} poolKey Key of the pool\n\t * @returns {Promise<{ asset_is_base: bool, deep_per_quote: number }>} Deep price conversion\n\t */\n\tasync getPoolDeepPrice(poolKey: string) {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\ttx.add(this.deepBook.getPoolDeepPrice(poolKey));\n\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\tconst deepCoin = this.#config.getCoin('DEEP');\n\n\t\tconst res = await this.client.devInspectTransactionBlock({\n\t\t\tsender: normalizeSuiAddress(this.#address),\n\t\t\ttransactionBlock: tx,\n\t\t});\n\n\t\tconst poolDeepPriceBytes = res.results![0].returnValues![0][0];\n\t\tconst poolDeepPrice = OrderDeepPrice.parse(new Uint8Array(poolDeepPriceBytes));\n\n\t\tif (poolDeepPrice.asset_is_base) {\n\t\t\treturn {\n\t\t\t\tasset_is_base: poolDeepPrice.asset_is_base,\n\t\t\t\tdeep_per_base:\n\t\t\t\t\t((Number(poolDeepPrice.deep_per_asset) / FLOAT_SCALAR) * baseCoin.scalar) /\n\t\t\t\t\tdeepCoin.scalar,\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\tasset_is_base: poolDeepPrice.asset_is_base,\n\t\t\t\tdeep_per_quote:\n\t\t\t\t\t((Number(poolDeepPrice.deep_per_asset) / FLOAT_SCALAR) * quoteCoin.scalar) /\n\t\t\t\t\tdeepCoin.scalar,\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\t * @description Decode the order ID to get bid/ask status, price, and orderId\n\t * @param {bigint} encodedOrderId Encoded order ID\n\t * @returns {Object} Object containing isBid, price, and orderId\n\t */\n\tdecodeOrderId(encodedOrderId: bigint): { isBid: boolean; price: number; orderId: number } {\n\t\tconst isBid = encodedOrderId >> 127n === 0n;\n\t\tconst price = Number((encodedOrderId >> 64n) & ((1n << 63n) - 1n));\n\t\tconst orderId = Number(encodedOrderId & ((1n << 64n) - 1n));\n\n\t\treturn { isBid, price, orderId };\n\t}\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_bcs"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/** Account module manages the account data for each user. */
|
|
2
|
+
import { MoveStruct } from '../utils/index.js';
|
|
3
|
+
import type { RawTransactionArgument } from '../utils/index.js';
|
|
4
|
+
import type { Transaction } from '@mysten/sui/transactions';
|
|
5
|
+
export declare const Account: MoveStruct<{
|
|
6
|
+
epoch: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
7
|
+
open_orders: MoveStruct<{
|
|
8
|
+
contents: import("@mysten/sui/bcs").BcsType<string[], Iterable<string | number | bigint> & {
|
|
9
|
+
length: number;
|
|
10
|
+
}, string>;
|
|
11
|
+
}, "0x2::vec_set::VecSet<u128>">;
|
|
12
|
+
taker_volume: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u128">;
|
|
13
|
+
maker_volume: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u128">;
|
|
14
|
+
active_stake: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
15
|
+
inactive_stake: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
16
|
+
created_proposal: import("@mysten/sui/bcs").BcsType<boolean, boolean, "bool">;
|
|
17
|
+
voted_proposal: import("@mysten/sui/bcs").BcsType<string | null, string | Uint8Array<ArrayBufferLike> | null | undefined, "Option<bytes[32]>">;
|
|
18
|
+
unclaimed_rebates: MoveStruct<{
|
|
19
|
+
base: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
20
|
+
quote: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
21
|
+
deep: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
22
|
+
}, "@deepbook/core::balances::Balances">;
|
|
23
|
+
settled_balances: MoveStruct<{
|
|
24
|
+
base: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
25
|
+
quote: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
26
|
+
deep: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
27
|
+
}, "@deepbook/core::balances::Balances">;
|
|
28
|
+
owed_balances: MoveStruct<{
|
|
29
|
+
base: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
30
|
+
quote: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
31
|
+
deep: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
32
|
+
}, "@deepbook/core::balances::Balances">;
|
|
33
|
+
}, "@deepbook/core::account::Account">;
|
|
34
|
+
export interface OpenOrdersArguments {
|
|
35
|
+
self: RawTransactionArgument<string>;
|
|
36
|
+
}
|
|
37
|
+
export interface OpenOrdersOptions {
|
|
38
|
+
package?: string;
|
|
39
|
+
arguments: OpenOrdersArguments | [self: RawTransactionArgument<string>];
|
|
40
|
+
}
|
|
41
|
+
export declare function openOrders(options: OpenOrdersOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
42
|
+
export interface TakerVolumeArguments {
|
|
43
|
+
self: RawTransactionArgument<string>;
|
|
44
|
+
}
|
|
45
|
+
export interface TakerVolumeOptions {
|
|
46
|
+
package?: string;
|
|
47
|
+
arguments: TakerVolumeArguments | [self: RawTransactionArgument<string>];
|
|
48
|
+
}
|
|
49
|
+
export declare function takerVolume(options: TakerVolumeOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
50
|
+
export interface MakerVolumeArguments {
|
|
51
|
+
self: RawTransactionArgument<string>;
|
|
52
|
+
}
|
|
53
|
+
export interface MakerVolumeOptions {
|
|
54
|
+
package?: string;
|
|
55
|
+
arguments: MakerVolumeArguments | [self: RawTransactionArgument<string>];
|
|
56
|
+
}
|
|
57
|
+
export declare function makerVolume(options: MakerVolumeOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
58
|
+
export interface TotalVolumeArguments {
|
|
59
|
+
self: RawTransactionArgument<string>;
|
|
60
|
+
}
|
|
61
|
+
export interface TotalVolumeOptions {
|
|
62
|
+
package?: string;
|
|
63
|
+
arguments: TotalVolumeArguments | [self: RawTransactionArgument<string>];
|
|
64
|
+
}
|
|
65
|
+
export declare function totalVolume(options: TotalVolumeOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
66
|
+
export interface ActiveStakeArguments {
|
|
67
|
+
self: RawTransactionArgument<string>;
|
|
68
|
+
}
|
|
69
|
+
export interface ActiveStakeOptions {
|
|
70
|
+
package?: string;
|
|
71
|
+
arguments: ActiveStakeArguments | [self: RawTransactionArgument<string>];
|
|
72
|
+
}
|
|
73
|
+
export declare function activeStake(options: ActiveStakeOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
74
|
+
export interface InactiveStakeArguments {
|
|
75
|
+
self: RawTransactionArgument<string>;
|
|
76
|
+
}
|
|
77
|
+
export interface InactiveStakeOptions {
|
|
78
|
+
package?: string;
|
|
79
|
+
arguments: InactiveStakeArguments | [self: RawTransactionArgument<string>];
|
|
80
|
+
}
|
|
81
|
+
export declare function inactiveStake(options: InactiveStakeOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
82
|
+
export interface CreatedProposalArguments {
|
|
83
|
+
self: RawTransactionArgument<string>;
|
|
84
|
+
}
|
|
85
|
+
export interface CreatedProposalOptions {
|
|
86
|
+
package?: string;
|
|
87
|
+
arguments: CreatedProposalArguments | [self: RawTransactionArgument<string>];
|
|
88
|
+
}
|
|
89
|
+
export declare function createdProposal(options: CreatedProposalOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
90
|
+
export interface VotedProposalArguments {
|
|
91
|
+
self: RawTransactionArgument<string>;
|
|
92
|
+
}
|
|
93
|
+
export interface VotedProposalOptions {
|
|
94
|
+
package?: string;
|
|
95
|
+
arguments: VotedProposalArguments | [self: RawTransactionArgument<string>];
|
|
96
|
+
}
|
|
97
|
+
export declare function votedProposal(options: VotedProposalOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
98
|
+
export interface SettledBalancesArguments {
|
|
99
|
+
self: RawTransactionArgument<string>;
|
|
100
|
+
}
|
|
101
|
+
export interface SettledBalancesOptions {
|
|
102
|
+
package?: string;
|
|
103
|
+
arguments: SettledBalancesArguments | [self: RawTransactionArgument<string>];
|
|
104
|
+
}
|
|
105
|
+
export declare function settledBalances(options: SettledBalancesOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|