@haneullabs/deepbook-v3 0.1.0 → 1.0.11
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 +268 -81
- package/dist/client.d.mts +957 -0
- package/dist/client.d.mts.map +1 -0
- package/dist/client.mjs +2293 -0
- package/dist/client.mjs.map +1 -0
- package/dist/contracts/deepbook/account.d.mts +38 -0
- package/dist/contracts/deepbook/account.d.mts.map +1 -0
- package/dist/contracts/deepbook/account.mjs +31 -0
- package/dist/contracts/deepbook/account.mjs.map +1 -0
- package/dist/contracts/deepbook/balances.d.mts +13 -0
- package/dist/contracts/deepbook/balances.d.mts.map +1 -0
- package/dist/contracts/deepbook/balances.mjs +24 -0
- package/dist/contracts/deepbook/balances.mjs.map +1 -0
- package/dist/contracts/deepbook/deep_price.d.mts +13 -0
- package/dist/contracts/deepbook/deep_price.d.mts.map +1 -0
- package/dist/contracts/deepbook/deep_price.mjs +49 -0
- package/dist/contracts/deepbook/deep_price.mjs.map +1 -0
- package/dist/contracts/deepbook/deps/haneul/vec_set.d.mts +22 -0
- package/dist/contracts/deepbook/deps/haneul/vec_set.d.mts.map +1 -0
- package/dist/contracts/deepbook/deps/haneul/vec_set.mjs +26 -0
- package/dist/contracts/deepbook/deps/haneul/vec_set.mjs.map +1 -0
- package/dist/contracts/deepbook/order.d.mts +24 -0
- package/dist/contracts/deepbook/order.d.mts.map +1 -0
- package/dist/contracts/deepbook/order.mjs +63 -0
- package/dist/contracts/deepbook/order.mjs.map +1 -0
- package/dist/contracts/pyth/data_source.mjs +20 -0
- package/dist/contracts/pyth/data_source.mjs.map +1 -0
- package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs +21 -0
- package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs.map +1 -0
- package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs +19 -0
- package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs.map +1 -0
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.mjs +16 -0
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.mjs.map +1 -0
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.mjs +16 -0
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.mjs.map +1 -0
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.mjs +16 -0
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.mjs.map +1 -0
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.mjs +16 -0
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.mjs.map +1 -0
- package/dist/contracts/pyth/i64.mjs +19 -0
- package/dist/contracts/pyth/i64.mjs.map +1 -0
- package/dist/contracts/pyth/price.mjs +22 -0
- package/dist/contracts/pyth/price.mjs.map +1 -0
- package/dist/contracts/pyth/price_feed.mjs +21 -0
- package/dist/contracts/pyth/price_feed.mjs.map +1 -0
- package/dist/contracts/pyth/price_identifier.mjs +16 -0
- package/dist/contracts/pyth/price_identifier.mjs.map +1 -0
- package/dist/contracts/pyth/price_info.mjs +28 -0
- package/dist/contracts/pyth/price_info.mjs.map +1 -0
- package/dist/contracts/pyth/state.mjs +36 -0
- package/dist/contracts/pyth/state.mjs.map +1 -0
- package/dist/contracts/utils/index.d.mts +34 -0
- package/dist/contracts/utils/index.d.mts.map +1 -0
- package/dist/contracts/utils/index.mjs +35 -0
- package/dist/contracts/utils/index.mjs.map +1 -0
- package/dist/contracts/wormhole/bytes32.mjs +16 -0
- package/dist/contracts/wormhole/bytes32.mjs.map +1 -0
- package/dist/contracts/wormhole/consumed_vaas.mjs +16 -0
- package/dist/contracts/wormhole/consumed_vaas.mjs.map +1 -0
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.mjs +16 -0
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.mjs.map +1 -0
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs +21 -0
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs.map +1 -0
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs +19 -0
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs.map +1 -0
- package/dist/contracts/wormhole/external_address.mjs +16 -0
- package/dist/contracts/wormhole/external_address.mjs.map +1 -0
- package/dist/contracts/wormhole/fee_collector.mjs +20 -0
- package/dist/contracts/wormhole/fee_collector.mjs.map +1 -0
- package/dist/contracts/wormhole/set.mjs +16 -0
- package/dist/contracts/wormhole/set.mjs.map +1 -0
- package/dist/contracts/wormhole/state.mjs +31 -0
- package/dist/contracts/wormhole/state.mjs.map +1 -0
- package/dist/index.d.mts +25 -0
- package/dist/index.mjs +26 -0
- package/dist/pyth/PriceServiceConnection.d.mts +26 -0
- package/dist/pyth/PriceServiceConnection.d.mts.map +1 -0
- package/dist/pyth/PriceServiceConnection.mjs +35 -0
- package/dist/pyth/PriceServiceConnection.mjs.map +1 -0
- package/dist/pyth/pyth-helpers.mjs +18 -0
- package/dist/pyth/pyth-helpers.mjs.map +1 -0
- package/dist/pyth/pyth.d.mts +69 -0
- package/dist/pyth/pyth.d.mts.map +1 -0
- package/dist/pyth/pyth.mjs +220 -0
- package/dist/pyth/pyth.mjs.map +1 -0
- package/dist/transactions/balanceManager.d.mts +174 -0
- package/dist/transactions/balanceManager.d.mts.map +1 -0
- package/dist/transactions/balanceManager.mjs +233 -0
- package/dist/transactions/balanceManager.mjs.map +1 -0
- package/dist/transactions/deepbook.d.mts +490 -0
- package/dist/transactions/deepbook.d.mts.map +1 -0
- package/dist/transactions/deepbook.mjs +978 -0
- package/dist/transactions/deepbook.mjs.map +1 -0
- package/dist/transactions/deepbookAdmin.d.mts +111 -0
- package/dist/transactions/deepbookAdmin.d.mts.map +1 -0
- package/dist/transactions/deepbookAdmin.mjs +221 -0
- package/dist/transactions/deepbookAdmin.mjs.map +1 -0
- package/dist/transactions/flashLoans.d.mts +62 -0
- package/dist/transactions/flashLoans.d.mts.map +1 -0
- package/dist/transactions/flashLoans.mjs +75 -0
- package/dist/transactions/flashLoans.mjs.map +1 -0
- package/dist/transactions/governance.d.mts +48 -0
- package/dist/transactions/governance.d.mts.map +1 -0
- package/dist/transactions/governance.mjs +90 -0
- package/dist/transactions/governance.mjs.map +1 -0
- package/dist/transactions/marginAdmin.d.mts +139 -0
- package/dist/transactions/marginAdmin.d.mts.map +1 -0
- package/dist/transactions/marginAdmin.mjs +249 -0
- package/dist/transactions/marginAdmin.mjs.map +1 -0
- package/dist/transactions/marginLiquidations.d.mts +67 -0
- package/dist/transactions/marginLiquidations.d.mts.map +1 -0
- package/dist/transactions/marginLiquidations.mjs +109 -0
- package/dist/transactions/marginLiquidations.mjs.map +1 -0
- package/dist/transactions/marginMaintainer.d.mts +86 -0
- package/dist/transactions/marginMaintainer.d.mts.map +1 -0
- package/dist/transactions/marginMaintainer.mjs +160 -0
- package/dist/transactions/marginMaintainer.mjs.map +1 -0
- package/dist/transactions/marginManager.d.mts +255 -0
- package/dist/transactions/marginManager.d.mts.map +1 -0
- package/dist/transactions/marginManager.mjs +558 -0
- package/dist/transactions/marginManager.mjs.map +1 -0
- package/dist/transactions/marginPool.d.mts +140 -0
- package/dist/transactions/marginPool.d.mts.map +1 -0
- package/dist/transactions/marginPool.mjs +206 -0
- package/dist/transactions/marginPool.mjs.map +1 -0
- package/dist/transactions/marginRegistry.d.mts +100 -0
- package/dist/transactions/marginRegistry.d.mts.map +1 -0
- package/dist/transactions/marginRegistry.mjs +128 -0
- package/dist/transactions/marginRegistry.mjs.map +1 -0
- package/dist/transactions/marginTPSL.d.mts +100 -0
- package/dist/transactions/marginTPSL.d.mts.map +1 -0
- package/dist/transactions/marginTPSL.mjs +175 -0
- package/dist/transactions/marginTPSL.mjs.map +1 -0
- package/dist/transactions/poolProxy.d.mts +123 -0
- package/dist/transactions/poolProxy.d.mts.map +1 -0
- package/dist/transactions/poolProxy.mjs +336 -0
- package/dist/transactions/poolProxy.mjs.map +1 -0
- package/dist/types/bcs.d.mts +5 -0
- package/dist/types/bcs.mjs +7 -0
- package/dist/types/index.d.mts +237 -0
- package/dist/types/index.d.mts.map +1 -0
- package/dist/types/index.mjs +18 -0
- package/dist/types/index.mjs.map +1 -0
- package/dist/utils/config.d.mts +82 -0
- package/dist/utils/config.d.mts.map +1 -0
- package/dist/utils/config.mjs +88 -0
- package/dist/utils/config.mjs.map +1 -0
- package/dist/utils/constants.d.mts +85 -0
- package/dist/utils/constants.d.mts.map +1 -0
- package/dist/utils/constants.mjs +384 -0
- package/dist/utils/constants.mjs.map +1 -0
- package/dist/utils/errors.d.mts +46 -0
- package/dist/utils/errors.d.mts.map +1 -0
- package/dist/utils/errors.mjs +59 -0
- package/dist/utils/errors.mjs.map +1 -0
- package/dist/{cjs/utils/validation.d.ts → utils/validation.d.mts} +11 -7
- package/dist/utils/validation.d.mts.map +1 -0
- package/dist/utils/validation.mjs +76 -0
- package/dist/utils/validation.mjs.map +1 -0
- package/package.json +29 -26
- package/src/client.ts +1016 -545
- package/src/contracts/deepbook/account.ts +15 -15
- package/src/contracts/deepbook/balance_manager.ts +343 -57
- package/src/contracts/deepbook/balances.ts +3 -2
- package/src/contracts/deepbook/big_vector.ts +6 -7
- package/src/contracts/deepbook/book.ts +3 -2
- package/src/contracts/deepbook/constants.ts +95 -3
- package/src/contracts/deepbook/deep_price.ts +7 -7
- package/src/contracts/deepbook/deps/{sui → haneul}/bag.ts +8 -8
- package/src/contracts/deepbook/deps/{sui → haneul}/balance.ts +4 -3
- package/src/contracts/deepbook/deps/{sui → haneul}/table.ts +6 -6
- package/src/contracts/deepbook/deps/{sui → haneul}/vec_map.ts +4 -4
- package/src/contracts/deepbook/deps/{sui → haneul}/vec_set.ts +4 -4
- package/src/contracts/deepbook/deps/{sui → haneul}/versioned.ts +4 -4
- package/src/contracts/deepbook/deps/std/type_name.ts +3 -2
- package/src/contracts/deepbook/ewma.ts +14 -3
- package/src/contracts/deepbook/fill.ts +21 -21
- package/src/contracts/deepbook/governance.ts +4 -3
- package/src/contracts/deepbook/history.ts +4 -3
- package/src/contracts/deepbook/math.ts +15 -15
- package/src/contracts/deepbook/order.ts +16 -16
- package/src/contracts/deepbook/order_info.ts +39 -27
- package/src/contracts/deepbook/order_query.ts +12 -12
- package/src/contracts/deepbook/pool.ts +883 -526
- package/src/contracts/deepbook/registry.ts +149 -38
- package/src/contracts/deepbook/state.ts +14 -3
- package/src/contracts/deepbook/trade_params.ts +3 -2
- package/src/contracts/deepbook/vault.ts +5 -4
- package/src/contracts/pyth/batch_price_attestation.ts +92 -0
- package/src/contracts/pyth/contract_upgrade.ts +54 -0
- package/src/contracts/pyth/data_source.ts +64 -0
- package/src/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.ts +15 -0
- package/src/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.ts +13 -0
- package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.ts +12 -0
- package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.ts +13 -0
- package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.ts +13 -0
- package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.ts +12 -0
- package/src/contracts/pyth/deserialize.ts +117 -0
- package/src/contracts/pyth/event.ts +20 -0
- package/src/contracts/pyth/governance.ts +113 -0
- package/src/contracts/pyth/governance_action.ts +130 -0
- package/src/contracts/pyth/governance_instruction.ts +98 -0
- package/src/contracts/pyth/hot_potato_vector.ts +70 -0
- package/src/contracts/pyth/i64.ts +94 -0
- package/src/contracts/pyth/merkle_tree.ts +41 -0
- package/src/contracts/pyth/migrate.ts +29 -0
- package/src/contracts/pyth/price.ts +102 -0
- package/src/contracts/pyth/price_feed.ts +101 -0
- package/src/contracts/pyth/price_identifier.ts +46 -0
- package/src/contracts/pyth/price_info.ts +220 -0
- package/src/contracts/pyth/price_status.ts +74 -0
- package/src/contracts/pyth/pyth.ts +236 -0
- package/src/contracts/pyth/set.ts +93 -0
- package/src/contracts/pyth/set_data_sources.ts +14 -0
- package/src/contracts/pyth/set_fee_recipient.ts +13 -0
- package/src/contracts/pyth/set_governance_data_source.ts +16 -0
- package/src/contracts/pyth/set_stale_price_threshold.ts +13 -0
- package/src/contracts/pyth/set_update_fee.ts +14 -0
- package/src/contracts/pyth/setup.ts +12 -0
- package/src/contracts/pyth/state.ts +227 -0
- package/src/contracts/pyth/version_control.ts +25 -0
- package/src/contracts/utils/index.ts +100 -50
- package/src/contracts/wormhole/bytes32.ts +12 -0
- package/src/contracts/wormhole/consumed_vaas.ts +13 -0
- package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.ts +12 -0
- package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.ts +15 -0
- package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.ts +13 -0
- package/src/contracts/wormhole/external_address.ts +13 -0
- package/src/contracts/wormhole/fee_collector.ts +15 -0
- package/src/contracts/wormhole/set.ts +12 -0
- package/src/contracts/wormhole/state.ts +25 -0
- package/src/index.ts +17 -3
- package/src/pyth/pyth.ts +51 -50
- package/src/transactions/deepbook.ts +31 -12
- package/src/transactions/deepbookAdmin.ts +3 -3
- package/src/transactions/marginAdmin.ts +11 -8
- package/src/transactions/marginMaintainer.ts +23 -12
- package/src/transactions/marginManager.ts +104 -28
- package/src/transactions/marginPool.ts +5 -6
- package/src/transactions/marginTPSL.ts +5 -5
- package/src/transactions/poolProxy.ts +50 -0
- package/src/types/bcs.ts +1 -1
- package/src/types/index.ts +19 -2
- package/src/utils/config.ts +12 -14
- package/src/utils/constants.ts +44 -12
- package/src/utils/validation.ts +1 -1
- package/dist/cjs/client.d.ts +0 -861
- package/dist/cjs/client.js +0 -1982
- package/dist/cjs/client.js.map +0 -7
- package/dist/cjs/contracts/deepbook/account.d.ts +0 -105
- package/dist/cjs/contracts/deepbook/account.js +0 -163
- package/dist/cjs/contracts/deepbook/account.js.map +0 -7
- package/dist/cjs/contracts/deepbook/balance_manager.d.ts +0 -268
- package/dist/cjs/contracts/deepbook/balance_manager.js +0 -361
- package/dist/cjs/contracts/deepbook/balance_manager.js.map +0 -7
- package/dist/cjs/contracts/deepbook/balances.d.ts +0 -10
- package/dist/cjs/contracts/deepbook/balances.js +0 -35
- package/dist/cjs/contracts/deepbook/balances.js.map +0 -7
- package/dist/cjs/contracts/deepbook/big_vector.d.ts +0 -62
- package/dist/cjs/contracts/deepbook/big_vector.js +0 -80
- package/dist/cjs/contracts/deepbook/big_vector.js.map +0 -7
- package/dist/cjs/contracts/deepbook/book.d.ts +0 -34
- package/dist/cjs/contracts/deepbook/book.js +0 -50
- package/dist/cjs/contracts/deepbook/book.js.map +0 -7
- package/dist/cjs/contracts/deepbook/constants.d.ts +0 -176
- package/dist/cjs/contracts/deepbook/constants.js +0 -338
- package/dist/cjs/contracts/deepbook/constants.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deep_price.d.ts +0 -60
- package/dist/cjs/contracts/deepbook/deep_price.js +0 -87
- package/dist/cjs/contracts/deepbook/deep_price.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deps/std/type_name.d.ts +0 -14
- package/dist/cjs/contracts/deepbook/deps/std/type_name.js +0 -42
- package/dist/cjs/contracts/deepbook/deps/std/type_name.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deps/sui/bag.d.ts +0 -33
- package/dist/cjs/contracts/deepbook/deps/sui/bag.js +0 -47
- package/dist/cjs/contracts/deepbook/deps/sui/bag.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deps/sui/balance.d.ts +0 -9
- package/dist/cjs/contracts/deepbook/deps/sui/balance.js +0 -33
- package/dist/cjs/contracts/deepbook/deps/sui/balance.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deps/sui/object.d.ts +0 -5
- package/dist/cjs/contracts/deepbook/deps/sui/object.js +0 -33
- package/dist/cjs/contracts/deepbook/deps/sui/object.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deps/sui/table.d.ts +0 -28
- package/dist/cjs/contracts/deepbook/deps/sui/table.js +0 -47
- package/dist/cjs/contracts/deepbook/deps/sui/table.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deps/sui/vec_map.d.ts +0 -27
- package/dist/cjs/contracts/deepbook/deps/sui/vec_map.js +0 -45
- package/dist/cjs/contracts/deepbook/deps/sui/vec_map.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deps/sui/vec_set.d.ts +0 -15
- package/dist/cjs/contracts/deepbook/deps/sui/vec_set.js +0 -35
- package/dist/cjs/contracts/deepbook/deps/sui/vec_set.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deps/sui/versioned.d.ts +0 -7
- package/dist/cjs/contracts/deepbook/deps/sui/versioned.js +0 -45
- package/dist/cjs/contracts/deepbook/deps/sui/versioned.js.map +0 -7
- package/dist/cjs/contracts/deepbook/ewma.d.ts +0 -17
- package/dist/cjs/contracts/deepbook/ewma.js +0 -39
- package/dist/cjs/contracts/deepbook/ewma.js.map +0 -7
- package/dist/cjs/contracts/deepbook/fill.d.ts +0 -153
- package/dist/cjs/contracts/deepbook/fill.js +0 -251
- package/dist/cjs/contracts/deepbook/fill.js.map +0 -7
- package/dist/cjs/contracts/deepbook/governance.d.ts +0 -63
- package/dist/cjs/contracts/deepbook/governance.js +0 -79
- package/dist/cjs/contracts/deepbook/governance.js.map +0 -7
- package/dist/cjs/contracts/deepbook/history.d.ts +0 -60
- package/dist/cjs/contracts/deepbook/history.js +0 -78
- package/dist/cjs/contracts/deepbook/history.js.map +0 -7
- package/dist/cjs/contracts/deepbook/math.d.ts +0 -94
- package/dist/cjs/contracts/deepbook/math.js +0 -132
- package/dist/cjs/contracts/deepbook/math.js.map +0 -7
- package/dist/cjs/contracts/deepbook/order.d.ts +0 -135
- package/dist/cjs/contracts/deepbook/order.js +0 -218
- package/dist/cjs/contracts/deepbook/order.js.map +0 -7
- package/dist/cjs/contracts/deepbook/order_info.d.ts +0 -296
- package/dist/cjs/contracts/deepbook/order_info.js +0 -386
- package/dist/cjs/contracts/deepbook/order_info.js.map +0 -7
- package/dist/cjs/contracts/deepbook/order_query.d.ts +0 -85
- package/dist/cjs/contracts/deepbook/order_query.js +0 -96
- package/dist/cjs/contracts/deepbook/order_query.js.map +0 -7
- package/dist/cjs/contracts/deepbook/pool.d.ts +0 -1218
- package/dist/cjs/contracts/deepbook/pool.js +0 -1236
- package/dist/cjs/contracts/deepbook/pool.js.map +0 -7
- package/dist/cjs/contracts/deepbook/registry.d.ts +0 -134
- package/dist/cjs/contracts/deepbook/registry.js +0 -182
- package/dist/cjs/contracts/deepbook/registry.js.map +0 -7
- package/dist/cjs/contracts/deepbook/state.d.ts +0 -117
- package/dist/cjs/contracts/deepbook/state.js +0 -104
- package/dist/cjs/contracts/deepbook/state.js.map +0 -7
- package/dist/cjs/contracts/deepbook/trade_params.d.ts +0 -7
- package/dist/cjs/contracts/deepbook/trade_params.js +0 -35
- package/dist/cjs/contracts/deepbook/trade_params.js.map +0 -7
- package/dist/cjs/contracts/deepbook/vault.d.ts +0 -30
- package/dist/cjs/contracts/deepbook/vault.js +0 -65
- package/dist/cjs/contracts/deepbook/vault.js.map +0 -7
- package/dist/cjs/contracts/utils/index.d.ts +0 -25
- package/dist/cjs/contracts/utils/index.js +0 -148
- package/dist/cjs/contracts/utils/index.js.map +0 -7
- package/dist/cjs/index.d.ts +0 -23
- package/dist/cjs/index.js +0 -81
- package/dist/cjs/index.js.map +0 -7
- package/dist/cjs/package.json +0 -4
- package/dist/cjs/pyth/PriceServiceConnection.d.ts +0 -26
- package/dist/cjs/pyth/PriceServiceConnection.js +0 -68
- package/dist/cjs/pyth/PriceServiceConnection.js.map +0 -7
- package/dist/cjs/pyth/pyth-helpers.d.ts +0 -7
- package/dist/cjs/pyth/pyth-helpers.js +0 -36
- package/dist/cjs/pyth/pyth-helpers.js.map +0 -7
- package/dist/cjs/pyth/pyth.d.ts +0 -65
- package/dist/cjs/pyth/pyth.js +0 -269
- package/dist/cjs/pyth/pyth.js.map +0 -7
- package/dist/cjs/transactions/balanceManager.d.ts +0 -168
- package/dist/cjs/transactions/balanceManager.js +0 -384
- package/dist/cjs/transactions/balanceManager.js.map +0 -7
- package/dist/cjs/transactions/deepbook.d.ts +0 -477
- package/dist/cjs/transactions/deepbook.js +0 -1335
- package/dist/cjs/transactions/deepbook.js.map +0 -7
- package/dist/cjs/transactions/deepbookAdmin.d.ts +0 -105
- package/dist/cjs/transactions/deepbookAdmin.js +0 -334
- package/dist/cjs/transactions/deepbookAdmin.js.map +0 -7
- package/dist/cjs/transactions/flashLoans.d.ts +0 -56
- package/dist/cjs/transactions/flashLoans.js +0 -124
- package/dist/cjs/transactions/flashLoans.js.map +0 -7
- package/dist/cjs/transactions/governance.d.ts +0 -42
- package/dist/cjs/transactions/governance.js +0 -135
- package/dist/cjs/transactions/governance.js.map +0 -7
- package/dist/cjs/transactions/marginAdmin.d.ts +0 -133
- package/dist/cjs/transactions/marginAdmin.js +0 -393
- package/dist/cjs/transactions/marginAdmin.js.map +0 -7
- package/dist/cjs/transactions/marginLiquidations.d.ts +0 -61
- package/dist/cjs/transactions/marginLiquidations.js +0 -173
- package/dist/cjs/transactions/marginLiquidations.js.map +0 -7
- package/dist/cjs/transactions/marginMaintainer.d.ts +0 -80
- package/dist/cjs/transactions/marginMaintainer.js +0 -251
- package/dist/cjs/transactions/marginMaintainer.js.map +0 -7
- package/dist/cjs/transactions/marginManager.d.ts +0 -236
- package/dist/cjs/transactions/marginManager.js +0 -688
- package/dist/cjs/transactions/marginManager.js.map +0 -7
- package/dist/cjs/transactions/marginPool.d.ts +0 -134
- package/dist/cjs/transactions/marginPool.js +0 -330
- package/dist/cjs/transactions/marginPool.js.map +0 -7
- package/dist/cjs/transactions/marginRegistry.d.ts +0 -94
- package/dist/cjs/transactions/marginRegistry.js +0 -221
- package/dist/cjs/transactions/marginRegistry.js.map +0 -7
- package/dist/cjs/transactions/marginTPSL.d.ts +0 -93
- package/dist/cjs/transactions/marginTPSL.js +0 -286
- package/dist/cjs/transactions/marginTPSL.js.map +0 -7
- package/dist/cjs/transactions/poolProxy.d.ts +0 -104
- package/dist/cjs/transactions/poolProxy.js +0 -435
- package/dist/cjs/transactions/poolProxy.js.map +0 -7
- package/dist/cjs/types/bcs.d.ts +0 -5
- package/dist/cjs/types/bcs.js +0 -33
- package/dist/cjs/types/bcs.js.map +0 -7
- package/dist/cjs/types/index.d.ts +0 -218
- package/dist/cjs/types/index.js +0 -38
- package/dist/cjs/types/index.js.map +0 -7
- package/dist/cjs/utils/config.d.ts +0 -65
- package/dist/cjs/utils/config.js +0 -144
- package/dist/cjs/utils/config.js.map +0 -7
- package/dist/cjs/utils/constants.d.ts +0 -76
- package/dist/cjs/utils/constants.js +0 -382
- package/dist/cjs/utils/constants.js.map +0 -7
- package/dist/cjs/utils/errors.d.ts +0 -42
- package/dist/cjs/utils/errors.js +0 -70
- package/dist/cjs/utils/errors.js.map +0 -7
- package/dist/cjs/utils/validation.js +0 -67
- package/dist/cjs/utils/validation.js.map +0 -7
- package/dist/esm/client.d.ts +0 -861
- package/dist/esm/client.js +0 -1967
- package/dist/esm/client.js.map +0 -7
- package/dist/esm/contracts/deepbook/account.d.ts +0 -105
- package/dist/esm/contracts/deepbook/account.js +0 -133
- package/dist/esm/contracts/deepbook/account.js.map +0 -7
- package/dist/esm/contracts/deepbook/balance_manager.d.ts +0 -268
- package/dist/esm/contracts/deepbook/balance_manager.js +0 -331
- package/dist/esm/contracts/deepbook/balance_manager.js.map +0 -7
- package/dist/esm/contracts/deepbook/balances.d.ts +0 -10
- package/dist/esm/contracts/deepbook/balances.js +0 -15
- package/dist/esm/contracts/deepbook/balances.js.map +0 -7
- package/dist/esm/contracts/deepbook/big_vector.d.ts +0 -62
- package/dist/esm/contracts/deepbook/big_vector.js +0 -50
- package/dist/esm/contracts/deepbook/big_vector.js.map +0 -7
- package/dist/esm/contracts/deepbook/book.d.ts +0 -34
- package/dist/esm/contracts/deepbook/book.js +0 -20
- package/dist/esm/contracts/deepbook/book.js.map +0 -7
- package/dist/esm/contracts/deepbook/constants.d.ts +0 -176
- package/dist/esm/contracts/deepbook/constants.js +0 -318
- package/dist/esm/contracts/deepbook/constants.js.map +0 -7
- package/dist/esm/contracts/deepbook/deep_price.d.ts +0 -60
- package/dist/esm/contracts/deepbook/deep_price.js +0 -67
- package/dist/esm/contracts/deepbook/deep_price.js.map +0 -7
- package/dist/esm/contracts/deepbook/deps/std/type_name.d.ts +0 -14
- package/dist/esm/contracts/deepbook/deps/std/type_name.js +0 -22
- package/dist/esm/contracts/deepbook/deps/std/type_name.js.map +0 -7
- package/dist/esm/contracts/deepbook/deps/sui/bag.d.ts +0 -33
- package/dist/esm/contracts/deepbook/deps/sui/bag.js +0 -17
- package/dist/esm/contracts/deepbook/deps/sui/bag.js.map +0 -7
- package/dist/esm/contracts/deepbook/deps/sui/balance.d.ts +0 -9
- package/dist/esm/contracts/deepbook/deps/sui/balance.js +0 -13
- package/dist/esm/contracts/deepbook/deps/sui/balance.js.map +0 -7
- package/dist/esm/contracts/deepbook/deps/sui/object.d.ts +0 -5
- package/dist/esm/contracts/deepbook/deps/sui/object.js +0 -13
- package/dist/esm/contracts/deepbook/deps/sui/object.js.map +0 -7
- package/dist/esm/contracts/deepbook/deps/sui/table.d.ts +0 -28
- package/dist/esm/contracts/deepbook/deps/sui/table.js +0 -17
- package/dist/esm/contracts/deepbook/deps/sui/table.js.map +0 -7
- package/dist/esm/contracts/deepbook/deps/sui/vec_map.d.ts +0 -27
- package/dist/esm/contracts/deepbook/deps/sui/vec_map.js +0 -25
- package/dist/esm/contracts/deepbook/deps/sui/vec_map.js.map +0 -7
- package/dist/esm/contracts/deepbook/deps/sui/vec_set.d.ts +0 -15
- package/dist/esm/contracts/deepbook/deps/sui/vec_set.js +0 -15
- package/dist/esm/contracts/deepbook/deps/sui/vec_set.js.map +0 -7
- package/dist/esm/contracts/deepbook/deps/sui/versioned.d.ts +0 -7
- package/dist/esm/contracts/deepbook/deps/sui/versioned.js +0 -15
- package/dist/esm/contracts/deepbook/deps/sui/versioned.js.map +0 -7
- package/dist/esm/contracts/deepbook/ewma.d.ts +0 -17
- package/dist/esm/contracts/deepbook/ewma.js +0 -19
- package/dist/esm/contracts/deepbook/ewma.js.map +0 -7
- package/dist/esm/contracts/deepbook/fill.d.ts +0 -153
- package/dist/esm/contracts/deepbook/fill.js +0 -221
- package/dist/esm/contracts/deepbook/fill.js.map +0 -7
- package/dist/esm/contracts/deepbook/governance.d.ts +0 -63
- package/dist/esm/contracts/deepbook/governance.js +0 -49
- package/dist/esm/contracts/deepbook/governance.js.map +0 -7
- package/dist/esm/contracts/deepbook/history.d.ts +0 -60
- package/dist/esm/contracts/deepbook/history.js +0 -48
- package/dist/esm/contracts/deepbook/history.js.map +0 -7
- package/dist/esm/contracts/deepbook/math.d.ts +0 -94
- package/dist/esm/contracts/deepbook/math.js +0 -112
- package/dist/esm/contracts/deepbook/math.js.map +0 -7
- package/dist/esm/contracts/deepbook/order.d.ts +0 -135
- package/dist/esm/contracts/deepbook/order.js +0 -188
- package/dist/esm/contracts/deepbook/order.js.map +0 -7
- package/dist/esm/contracts/deepbook/order_info.d.ts +0 -296
- package/dist/esm/contracts/deepbook/order_info.js +0 -356
- package/dist/esm/contracts/deepbook/order_info.js.map +0 -7
- package/dist/esm/contracts/deepbook/order_query.d.ts +0 -85
- package/dist/esm/contracts/deepbook/order_query.js +0 -66
- package/dist/esm/contracts/deepbook/order_query.js.map +0 -7
- package/dist/esm/contracts/deepbook/pool.d.ts +0 -1218
- package/dist/esm/contracts/deepbook/pool.js +0 -1206
- package/dist/esm/contracts/deepbook/pool.js.map +0 -7
- package/dist/esm/contracts/deepbook/registry.d.ts +0 -134
- package/dist/esm/contracts/deepbook/registry.js +0 -152
- package/dist/esm/contracts/deepbook/registry.js.map +0 -7
- package/dist/esm/contracts/deepbook/state.d.ts +0 -117
- package/dist/esm/contracts/deepbook/state.js +0 -74
- package/dist/esm/contracts/deepbook/state.js.map +0 -7
- package/dist/esm/contracts/deepbook/trade_params.d.ts +0 -7
- package/dist/esm/contracts/deepbook/trade_params.js +0 -15
- package/dist/esm/contracts/deepbook/trade_params.js.map +0 -7
- package/dist/esm/contracts/deepbook/vault.d.ts +0 -30
- package/dist/esm/contracts/deepbook/vault.js +0 -35
- package/dist/esm/contracts/deepbook/vault.js.map +0 -7
- package/dist/esm/contracts/utils/index.d.ts +0 -25
- package/dist/esm/contracts/utils/index.js +0 -128
- package/dist/esm/contracts/utils/index.js.map +0 -7
- package/dist/esm/index.d.ts +0 -23
- package/dist/esm/index.js +0 -81
- package/dist/esm/index.js.map +0 -7
- package/dist/esm/package.json +0 -4
- package/dist/esm/pyth/PriceServiceConnection.d.ts +0 -26
- package/dist/esm/pyth/PriceServiceConnection.js +0 -38
- package/dist/esm/pyth/PriceServiceConnection.js.map +0 -7
- package/dist/esm/pyth/pyth-helpers.d.ts +0 -7
- package/dist/esm/pyth/pyth-helpers.js +0 -16
- package/dist/esm/pyth/pyth-helpers.js.map +0 -7
- package/dist/esm/pyth/pyth.d.ts +0 -65
- package/dist/esm/pyth/pyth.js +0 -249
- package/dist/esm/pyth/pyth.js.map +0 -7
- package/dist/esm/transactions/balanceManager.d.ts +0 -168
- package/dist/esm/transactions/balanceManager.js +0 -364
- package/dist/esm/transactions/balanceManager.js.map +0 -7
- package/dist/esm/transactions/deepbook.d.ts +0 -477
- package/dist/esm/transactions/deepbook.js +0 -1321
- package/dist/esm/transactions/deepbook.js.map +0 -7
- package/dist/esm/transactions/deepbookAdmin.d.ts +0 -105
- package/dist/esm/transactions/deepbookAdmin.js +0 -314
- package/dist/esm/transactions/deepbookAdmin.js.map +0 -7
- package/dist/esm/transactions/flashLoans.d.ts +0 -56
- package/dist/esm/transactions/flashLoans.js +0 -104
- package/dist/esm/transactions/flashLoans.js.map +0 -7
- package/dist/esm/transactions/governance.d.ts +0 -42
- package/dist/esm/transactions/governance.js +0 -115
- package/dist/esm/transactions/governance.js.map +0 -7
- package/dist/esm/transactions/marginAdmin.d.ts +0 -133
- package/dist/esm/transactions/marginAdmin.js +0 -373
- package/dist/esm/transactions/marginAdmin.js.map +0 -7
- package/dist/esm/transactions/marginLiquidations.d.ts +0 -61
- package/dist/esm/transactions/marginLiquidations.js +0 -153
- package/dist/esm/transactions/marginLiquidations.js.map +0 -7
- package/dist/esm/transactions/marginMaintainer.d.ts +0 -80
- package/dist/esm/transactions/marginMaintainer.js +0 -231
- package/dist/esm/transactions/marginMaintainer.js.map +0 -7
- package/dist/esm/transactions/marginManager.d.ts +0 -236
- package/dist/esm/transactions/marginManager.js +0 -668
- package/dist/esm/transactions/marginManager.js.map +0 -7
- package/dist/esm/transactions/marginPool.d.ts +0 -134
- package/dist/esm/transactions/marginPool.js +0 -310
- package/dist/esm/transactions/marginPool.js.map +0 -7
- package/dist/esm/transactions/marginRegistry.d.ts +0 -94
- package/dist/esm/transactions/marginRegistry.js +0 -201
- package/dist/esm/transactions/marginRegistry.js.map +0 -7
- package/dist/esm/transactions/marginTPSL.d.ts +0 -93
- package/dist/esm/transactions/marginTPSL.js +0 -266
- package/dist/esm/transactions/marginTPSL.js.map +0 -7
- package/dist/esm/transactions/poolProxy.d.ts +0 -104
- package/dist/esm/transactions/poolProxy.js +0 -415
- package/dist/esm/transactions/poolProxy.js.map +0 -7
- package/dist/esm/types/bcs.d.ts +0 -5
- package/dist/esm/types/bcs.js +0 -13
- package/dist/esm/types/bcs.js.map +0 -7
- package/dist/esm/types/index.d.ts +0 -218
- package/dist/esm/types/index.js +0 -18
- package/dist/esm/types/index.js.map +0 -7
- package/dist/esm/utils/config.d.ts +0 -65
- package/dist/esm/utils/config.js +0 -135
- package/dist/esm/utils/config.js.map +0 -7
- package/dist/esm/utils/constants.d.ts +0 -76
- package/dist/esm/utils/constants.js +0 -362
- package/dist/esm/utils/constants.js.map +0 -7
- package/dist/esm/utils/errors.d.ts +0 -42
- package/dist/esm/utils/errors.js +0 -50
- package/dist/esm/utils/errors.js.map +0 -7
- package/dist/esm/utils/validation.d.ts +0 -50
- package/dist/esm/utils/validation.js +0 -47
- package/dist/esm/utils/validation.js.map +0 -7
- package/dist/tsconfig.esm.tsbuildinfo +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/src/contracts/deepbook/deps/sui/object.ts +0 -14
|
@@ -281,6 +281,25 @@ export class DeepBookContract {
|
|
|
281
281
|
});
|
|
282
282
|
};
|
|
283
283
|
|
|
284
|
+
/**
|
|
285
|
+
* @description Withdraw settled amounts permissionlessly for a balance manager by ID
|
|
286
|
+
* @param {string} poolKey The key to identify the pool
|
|
287
|
+
* @param {string} balanceManagerId The object ID of the BalanceManager
|
|
288
|
+
* @returns A function that takes a Transaction object
|
|
289
|
+
*/
|
|
290
|
+
withdrawSettledAmountsManagerID =
|
|
291
|
+
(poolKey: string, balanceManagerId: string) => (tx: Transaction) => {
|
|
292
|
+
const pool = this.#config.getPool(poolKey);
|
|
293
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
294
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
295
|
+
|
|
296
|
+
tx.moveCall({
|
|
297
|
+
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::withdraw_settled_amounts_permissionless`,
|
|
298
|
+
arguments: [tx.object(pool.address), tx.object(balanceManagerId)],
|
|
299
|
+
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
300
|
+
});
|
|
301
|
+
};
|
|
302
|
+
|
|
284
303
|
/**
|
|
285
304
|
* @description Add a deep price point for a target pool using a reference pool
|
|
286
305
|
* @param {string} targetPoolKey The key to identify the target pool
|
|
@@ -506,7 +525,7 @@ export class DeepBookContract {
|
|
|
506
525
|
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_quote_quantity_out`,
|
|
507
526
|
arguments: [
|
|
508
527
|
tx.object(pool.address),
|
|
509
|
-
tx.pure.u64(baseQuantity * baseCoin.scalar),
|
|
528
|
+
tx.pure.u64(Math.round(baseQuantity * baseCoin.scalar)),
|
|
510
529
|
tx.object.clock(),
|
|
511
530
|
],
|
|
512
531
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
@@ -529,7 +548,7 @@ export class DeepBookContract {
|
|
|
529
548
|
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_base_quantity_out`,
|
|
530
549
|
arguments: [
|
|
531
550
|
tx.object(pool.address),
|
|
532
|
-
tx.pure.u64(quoteQuantity * quoteScalar),
|
|
551
|
+
tx.pure.u64(Math.round(quoteQuantity * quoteScalar)),
|
|
533
552
|
tx.object.clock(),
|
|
534
553
|
],
|
|
535
554
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
@@ -554,8 +573,8 @@ export class DeepBookContract {
|
|
|
554
573
|
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_quantity_out`,
|
|
555
574
|
arguments: [
|
|
556
575
|
tx.object(pool.address),
|
|
557
|
-
tx.pure.u64(baseQuantity * baseCoin.scalar),
|
|
558
|
-
tx.pure.u64(quoteQuantity * quoteScalar),
|
|
576
|
+
tx.pure.u64(Math.round(baseQuantity * baseCoin.scalar)),
|
|
577
|
+
tx.pure.u64(Math.round(quoteQuantity * quoteScalar)),
|
|
559
578
|
tx.object.clock(),
|
|
560
579
|
],
|
|
561
580
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
@@ -599,8 +618,8 @@ export class DeepBookContract {
|
|
|
599
618
|
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_level2_range`,
|
|
600
619
|
arguments: [
|
|
601
620
|
tx.object(pool.address),
|
|
602
|
-
tx.pure.u64((priceLow * FLOAT_SCALAR * quoteCoin.scalar) / baseCoin.scalar),
|
|
603
|
-
tx.pure.u64((priceHigh * FLOAT_SCALAR * quoteCoin.scalar) / baseCoin.scalar),
|
|
621
|
+
tx.pure.u64(Math.round((priceLow * FLOAT_SCALAR * quoteCoin.scalar) / baseCoin.scalar)),
|
|
622
|
+
tx.pure.u64(Math.round((priceHigh * FLOAT_SCALAR * quoteCoin.scalar) / baseCoin.scalar)),
|
|
604
623
|
tx.pure.bool(isBid),
|
|
605
624
|
tx.object.clock(),
|
|
606
625
|
],
|
|
@@ -1193,7 +1212,7 @@ export class DeepBookContract {
|
|
|
1193
1212
|
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_quote_quantity_out_input_fee`,
|
|
1194
1213
|
arguments: [
|
|
1195
1214
|
tx.object(pool.address),
|
|
1196
|
-
tx.pure.u64(baseQuantity * baseCoin.scalar),
|
|
1215
|
+
tx.pure.u64(Math.round(baseQuantity * baseCoin.scalar)),
|
|
1197
1216
|
tx.object.clock(),
|
|
1198
1217
|
],
|
|
1199
1218
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
@@ -1215,7 +1234,7 @@ export class DeepBookContract {
|
|
|
1215
1234
|
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_base_quantity_out_input_fee`,
|
|
1216
1235
|
arguments: [
|
|
1217
1236
|
tx.object(pool.address),
|
|
1218
|
-
tx.pure.u64(quoteQuantity * quoteCoin.scalar),
|
|
1237
|
+
tx.pure.u64(Math.round(quoteQuantity * quoteCoin.scalar)),
|
|
1219
1238
|
tx.object.clock(),
|
|
1220
1239
|
],
|
|
1221
1240
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
@@ -1239,8 +1258,8 @@ export class DeepBookContract {
|
|
|
1239
1258
|
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_quantity_out_input_fee`,
|
|
1240
1259
|
arguments: [
|
|
1241
1260
|
tx.object(pool.address),
|
|
1242
|
-
tx.pure.u64(baseQuantity * baseCoin.scalar),
|
|
1243
|
-
tx.pure.u64(quoteQuantity * quoteCoin.scalar),
|
|
1261
|
+
tx.pure.u64(Math.round(baseQuantity * baseCoin.scalar)),
|
|
1262
|
+
tx.pure.u64(Math.round(quoteQuantity * quoteCoin.scalar)),
|
|
1244
1263
|
tx.object.clock(),
|
|
1245
1264
|
],
|
|
1246
1265
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
@@ -1264,7 +1283,7 @@ export class DeepBookContract {
|
|
|
1264
1283
|
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_base_quantity_in`,
|
|
1265
1284
|
arguments: [
|
|
1266
1285
|
tx.object(pool.address),
|
|
1267
|
-
tx.pure.u64(targetQuoteQuantity * quoteCoin.scalar),
|
|
1286
|
+
tx.pure.u64(Math.round(targetQuoteQuantity * quoteCoin.scalar)),
|
|
1268
1287
|
tx.pure.bool(payWithDeep),
|
|
1269
1288
|
tx.object.clock(),
|
|
1270
1289
|
],
|
|
@@ -1289,7 +1308,7 @@ export class DeepBookContract {
|
|
|
1289
1308
|
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_quote_quantity_in`,
|
|
1290
1309
|
arguments: [
|
|
1291
1310
|
tx.object(pool.address),
|
|
1292
|
-
tx.pure.u64(targetBaseQuantity * baseCoin.scalar),
|
|
1311
|
+
tx.pure.u64(Math.round(targetBaseQuantity * baseCoin.scalar)),
|
|
1293
1312
|
tx.pure.bool(payWithDeep),
|
|
1294
1313
|
tx.object.clock(),
|
|
1295
1314
|
],
|
|
@@ -197,7 +197,7 @@ export class DeepBookAdminContract {
|
|
|
197
197
|
const baseScalar = baseCoin.scalar;
|
|
198
198
|
const quoteScalar = quoteCoin.scalar;
|
|
199
199
|
|
|
200
|
-
const adjustedTickSize = (newTickSize * FLOAT_SCALAR * quoteScalar) / baseScalar;
|
|
200
|
+
const adjustedTickSize = Math.round((newTickSize * FLOAT_SCALAR * quoteScalar) / baseScalar);
|
|
201
201
|
|
|
202
202
|
tx.moveCall({
|
|
203
203
|
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::adjust_tick_size_admin`,
|
|
@@ -227,8 +227,8 @@ export class DeepBookAdminContract {
|
|
|
227
227
|
|
|
228
228
|
const baseScalar = baseCoin.scalar;
|
|
229
229
|
|
|
230
|
-
const adjustedLotSize = newLotSize * baseScalar;
|
|
231
|
-
const adjustedMinSize = newMinSize * baseScalar;
|
|
230
|
+
const adjustedLotSize = Math.round(newLotSize * baseScalar);
|
|
231
|
+
const adjustedMinSize = Math.round(newMinSize * baseScalar);
|
|
232
232
|
|
|
233
233
|
tx.moveCall({
|
|
234
234
|
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::adjust_min_lot_size_admin`,
|
|
@@ -7,7 +7,7 @@ import type { DeepBookConfig } from '../utils/config.js';
|
|
|
7
7
|
import type { TransactionArgument } from '@haneullabs/haneul/transactions';
|
|
8
8
|
import type { PoolConfigParams } from '../types/index.js';
|
|
9
9
|
import { FLOAT_SCALAR } from '../utils/config.js';
|
|
10
|
-
import { hexToBytes } from '@noble/hashes/utils';
|
|
10
|
+
import { hexToBytes } from '@noble/hashes/utils.js';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* MarginAdminContract class for managing admin actions.
|
|
@@ -239,12 +239,12 @@ export class MarginAdminContract {
|
|
|
239
239
|
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::new_pool_config`,
|
|
240
240
|
arguments: [
|
|
241
241
|
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
242
|
-
tx.pure.u64(minWithdrawRiskRatio * FLOAT_SCALAR),
|
|
243
|
-
tx.pure.u64(minBorrowRiskRatio * FLOAT_SCALAR),
|
|
244
|
-
tx.pure.u64(liquidationRiskRatio * FLOAT_SCALAR),
|
|
245
|
-
tx.pure.u64(targetLiquidationRiskRatio * FLOAT_SCALAR),
|
|
246
|
-
tx.pure.u64(userLiquidationReward * FLOAT_SCALAR),
|
|
247
|
-
tx.pure.u64(poolLiquidationReward * FLOAT_SCALAR),
|
|
242
|
+
tx.pure.u64(Math.round(minWithdrawRiskRatio * FLOAT_SCALAR)),
|
|
243
|
+
tx.pure.u64(Math.round(minBorrowRiskRatio * FLOAT_SCALAR)),
|
|
244
|
+
tx.pure.u64(Math.round(liquidationRiskRatio * FLOAT_SCALAR)),
|
|
245
|
+
tx.pure.u64(Math.round(targetLiquidationRiskRatio * FLOAT_SCALAR)),
|
|
246
|
+
tx.pure.u64(Math.round(userLiquidationReward * FLOAT_SCALAR)),
|
|
247
|
+
tx.pure.u64(Math.round(poolLiquidationReward * FLOAT_SCALAR)),
|
|
248
248
|
],
|
|
249
249
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
250
250
|
});
|
|
@@ -262,7 +262,10 @@ export class MarginAdminContract {
|
|
|
262
262
|
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
263
263
|
tx.moveCall({
|
|
264
264
|
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::new_pool_config_with_leverage`,
|
|
265
|
-
arguments: [
|
|
265
|
+
arguments: [
|
|
266
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
267
|
+
tx.pure.u64(Math.round(leverage * FLOAT_SCALAR)),
|
|
268
|
+
],
|
|
266
269
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
267
270
|
});
|
|
268
271
|
};
|
|
@@ -102,9 +102,9 @@ export class MarginMaintainerContract {
|
|
|
102
102
|
return tx.moveCall({
|
|
103
103
|
target: `${this.#config.MARGIN_PACKAGE_ID}::protocol_config::new_margin_pool_config`,
|
|
104
104
|
arguments: [
|
|
105
|
-
tx.pure.u64(supplyCap * coin.scalar),
|
|
106
|
-
tx.pure.u64(maxUtilizationRate * FLOAT_SCALAR),
|
|
107
|
-
tx.pure.u64(referralSpread * FLOAT_SCALAR),
|
|
105
|
+
tx.pure.u64(Math.round(supplyCap * coin.scalar)),
|
|
106
|
+
tx.pure.u64(Math.round(maxUtilizationRate * FLOAT_SCALAR)),
|
|
107
|
+
tx.pure.u64(Math.round(referralSpread * FLOAT_SCALAR)),
|
|
108
108
|
tx.pure.u64(Math.round(minBorrow * coin.scalar)),
|
|
109
109
|
],
|
|
110
110
|
});
|
|
@@ -141,9 +141,9 @@ export class MarginMaintainerContract {
|
|
|
141
141
|
return tx.moveCall({
|
|
142
142
|
target: `${this.#config.MARGIN_PACKAGE_ID}::protocol_config::new_margin_pool_config_with_rate_limit`,
|
|
143
143
|
arguments: [
|
|
144
|
-
tx.pure.u64(supplyCap * coin.scalar),
|
|
145
|
-
tx.pure.u64(maxUtilizationRate * FLOAT_SCALAR),
|
|
146
|
-
tx.pure.u64(referralSpread * FLOAT_SCALAR),
|
|
144
|
+
tx.pure.u64(Math.round(supplyCap * coin.scalar)),
|
|
145
|
+
tx.pure.u64(Math.round(maxUtilizationRate * FLOAT_SCALAR)),
|
|
146
|
+
tx.pure.u64(Math.round(referralSpread * FLOAT_SCALAR)),
|
|
147
147
|
tx.pure.u64(Math.round(minBorrow * coin.scalar)),
|
|
148
148
|
tx.pure.u64(Math.round(rateLimitCapacity * coin.scalar)),
|
|
149
149
|
tx.pure.u64(Math.round(rateLimitRefillRatePerMs * coin.scalar)),
|
|
@@ -162,10 +162,10 @@ export class MarginMaintainerContract {
|
|
|
162
162
|
return tx.moveCall({
|
|
163
163
|
target: `${this.#config.MARGIN_PACKAGE_ID}::protocol_config::new_interest_config`,
|
|
164
164
|
arguments: [
|
|
165
|
-
tx.pure.u64(baseRate * FLOAT_SCALAR),
|
|
166
|
-
tx.pure.u64(baseSlope * FLOAT_SCALAR),
|
|
167
|
-
tx.pure.u64(optimalUtilization * FLOAT_SCALAR),
|
|
168
|
-
tx.pure.u64(excessSlope * FLOAT_SCALAR),
|
|
165
|
+
tx.pure.u64(Math.round(baseRate * FLOAT_SCALAR)),
|
|
166
|
+
tx.pure.u64(Math.round(baseSlope * FLOAT_SCALAR)),
|
|
167
|
+
tx.pure.u64(Math.round(optimalUtilization * FLOAT_SCALAR)),
|
|
168
|
+
tx.pure.u64(Math.round(excessSlope * FLOAT_SCALAR)),
|
|
169
169
|
],
|
|
170
170
|
});
|
|
171
171
|
};
|
|
@@ -253,7 +253,7 @@ export class MarginMaintainerContract {
|
|
|
253
253
|
* @description Update the margin pool config
|
|
254
254
|
* @param {string} coinKey The key to identify the margin pool
|
|
255
255
|
* @param {TransactionObjectArgument} marginPoolCap The margin pool cap
|
|
256
|
-
* @param {MarginPoolConfigParams} marginPoolConfig The configuration for the margin pool
|
|
256
|
+
* @param {MarginPoolConfigParams} marginPoolConfig The configuration for the margin pool (with optional rate limit)
|
|
257
257
|
* @returns A function that takes a Transaction object
|
|
258
258
|
*/
|
|
259
259
|
updateMarginPoolConfig =
|
|
@@ -264,7 +264,18 @@ export class MarginMaintainerContract {
|
|
|
264
264
|
) =>
|
|
265
265
|
(tx: Transaction) => {
|
|
266
266
|
const marginPool = this.#config.getMarginPool(coinKey);
|
|
267
|
-
const
|
|
267
|
+
const hasRateLimit =
|
|
268
|
+
marginPoolConfig.rateLimitCapacity !== undefined &&
|
|
269
|
+
marginPoolConfig.rateLimitRefillRatePerMs !== undefined &&
|
|
270
|
+
marginPoolConfig.rateLimitEnabled !== undefined;
|
|
271
|
+
const marginPoolConfigObject = hasRateLimit
|
|
272
|
+
? this.newMarginPoolConfigWithRateLimit(coinKey, {
|
|
273
|
+
...marginPoolConfig,
|
|
274
|
+
rateLimitCapacity: marginPoolConfig.rateLimitCapacity!,
|
|
275
|
+
rateLimitRefillRatePerMs: marginPoolConfig.rateLimitRefillRatePerMs!,
|
|
276
|
+
rateLimitEnabled: marginPoolConfig.rateLimitEnabled!,
|
|
277
|
+
})(tx)
|
|
278
|
+
: this.newMarginPoolConfig(coinKey, marginPoolConfig)(tx);
|
|
268
279
|
tx.moveCall({
|
|
269
280
|
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_pool::update_margin_pool_config`,
|
|
270
281
|
arguments: [
|
|
@@ -4,6 +4,7 @@ import type { Transaction, TransactionArgument } from '@haneullabs/haneul/transa
|
|
|
4
4
|
import { coinWithBalance } from '@haneullabs/haneul/transactions';
|
|
5
5
|
|
|
6
6
|
import type { DeepBookConfig } from '../utils/config.js';
|
|
7
|
+
import type { DepositParams, DepositDuringInitParams } from '../types/index.js';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* MarginManagerContract class for managing MarginManager operations.
|
|
@@ -81,21 +82,62 @@ export class MarginManagerContract {
|
|
|
81
82
|
});
|
|
82
83
|
};
|
|
83
84
|
|
|
85
|
+
/**
|
|
86
|
+
* @description Deposit into a margin manager during initialization (before sharing).
|
|
87
|
+
* Use this when you need to deposit funds into a newly created manager in the same transaction.
|
|
88
|
+
* @param {DepositDuringInitParams} params The deposit parameters
|
|
89
|
+
* @returns A function that takes a Transaction object
|
|
90
|
+
*/
|
|
91
|
+
depositDuringInitialization = (params: DepositDuringInitParams) => (tx: Transaction) => {
|
|
92
|
+
const { manager, poolKey, coinType } = params;
|
|
93
|
+
const pool = this.#config.getPool(poolKey);
|
|
94
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
95
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
96
|
+
|
|
97
|
+
// Get the deposit coin from config using the coinType key (e.g., 'HANEUL', 'DBUSDC', 'DEEP')
|
|
98
|
+
const depositCoin = this.#config.getCoin(coinType);
|
|
99
|
+
|
|
100
|
+
// If amount is provided, create a coin with balance; otherwise use the provided coin
|
|
101
|
+
const coin =
|
|
102
|
+
'amount' in params && params.amount !== undefined
|
|
103
|
+
? coinWithBalance({
|
|
104
|
+
type: depositCoin.type,
|
|
105
|
+
balance: Math.round(params.amount * depositCoin.scalar),
|
|
106
|
+
})
|
|
107
|
+
: params.coin;
|
|
108
|
+
|
|
109
|
+
tx.moveCall({
|
|
110
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::deposit`,
|
|
111
|
+
arguments: [
|
|
112
|
+
manager,
|
|
113
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
114
|
+
tx.object(baseCoin.priceInfoObjectId!),
|
|
115
|
+
tx.object(quoteCoin.priceInfoObjectId!),
|
|
116
|
+
coin,
|
|
117
|
+
tx.object.clock(),
|
|
118
|
+
],
|
|
119
|
+
typeArguments: [baseCoin.type, quoteCoin.type, depositCoin.type],
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
|
|
84
123
|
/**
|
|
85
124
|
* @description Deposit base into a margin manager
|
|
86
|
-
* @param {
|
|
87
|
-
* @param {number} amount The amount to deposit
|
|
125
|
+
* @param {DepositParams} params The deposit parameters
|
|
88
126
|
* @returns A function that takes a Transaction object
|
|
89
127
|
*/
|
|
90
|
-
depositBase = (
|
|
128
|
+
depositBase = (params: DepositParams) => (tx: Transaction) => {
|
|
129
|
+
const { managerKey } = params;
|
|
91
130
|
const manager = this.#config.getMarginManager(managerKey);
|
|
92
131
|
const pool = this.#config.getPool(manager.poolKey);
|
|
93
132
|
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
94
133
|
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
95
|
-
const coin =
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
134
|
+
const coin =
|
|
135
|
+
'amount' in params && params.amount !== undefined
|
|
136
|
+
? coinWithBalance({
|
|
137
|
+
type: baseCoin.type,
|
|
138
|
+
balance: Math.round(params.amount * baseCoin.scalar),
|
|
139
|
+
})
|
|
140
|
+
: params.coin;
|
|
99
141
|
tx.moveCall({
|
|
100
142
|
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::deposit`,
|
|
101
143
|
arguments: [
|
|
@@ -112,19 +154,22 @@ export class MarginManagerContract {
|
|
|
112
154
|
|
|
113
155
|
/**
|
|
114
156
|
* @description Deposit quote into a margin manager
|
|
115
|
-
* @param {
|
|
116
|
-
* @param {number} amount The amount to deposit
|
|
157
|
+
* @param {DepositParams} params The deposit parameters
|
|
117
158
|
* @returns A function that takes a Transaction object
|
|
118
159
|
*/
|
|
119
|
-
depositQuote = (
|
|
160
|
+
depositQuote = (params: DepositParams) => (tx: Transaction) => {
|
|
161
|
+
const { managerKey } = params;
|
|
120
162
|
const manager = this.#config.getMarginManager(managerKey);
|
|
121
163
|
const pool = this.#config.getPool(manager.poolKey);
|
|
122
164
|
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
123
165
|
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
124
|
-
const coin =
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
166
|
+
const coin =
|
|
167
|
+
'amount' in params && params.amount !== undefined
|
|
168
|
+
? coinWithBalance({
|
|
169
|
+
type: quoteCoin.type,
|
|
170
|
+
balance: Math.round(params.amount * quoteCoin.scalar),
|
|
171
|
+
})
|
|
172
|
+
: params.coin;
|
|
128
173
|
tx.moveCall({
|
|
129
174
|
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::deposit`,
|
|
130
175
|
arguments: [
|
|
@@ -141,20 +186,23 @@ export class MarginManagerContract {
|
|
|
141
186
|
|
|
142
187
|
/**
|
|
143
188
|
* @description Deposit deep into a margin manager
|
|
144
|
-
* @param {
|
|
145
|
-
* @param {number} amount The amount to deposit
|
|
189
|
+
* @param {DepositParams} params The deposit parameters
|
|
146
190
|
* @returns A function that takes a Transaction object
|
|
147
191
|
*/
|
|
148
|
-
depositDeep = (
|
|
192
|
+
depositDeep = (params: DepositParams) => (tx: Transaction) => {
|
|
193
|
+
const { managerKey } = params;
|
|
149
194
|
const manager = this.#config.getMarginManager(managerKey);
|
|
150
195
|
const pool = this.#config.getPool(manager.poolKey);
|
|
151
196
|
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
152
197
|
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
153
198
|
const deepCoin = this.#config.getCoin('DEEP');
|
|
154
|
-
const coin =
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
199
|
+
const coin =
|
|
200
|
+
'amount' in params && params.amount !== undefined
|
|
201
|
+
? coinWithBalance({
|
|
202
|
+
type: deepCoin.type,
|
|
203
|
+
balance: Math.round(params.amount * deepCoin.scalar),
|
|
204
|
+
})
|
|
205
|
+
: params.coin;
|
|
158
206
|
tx.moveCall({
|
|
159
207
|
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::deposit`,
|
|
160
208
|
arguments: [
|
|
@@ -192,7 +240,7 @@ export class MarginManagerContract {
|
|
|
192
240
|
tx.object(baseCoin.priceInfoObjectId!),
|
|
193
241
|
tx.object(quoteCoin.priceInfoObjectId!),
|
|
194
242
|
tx.object(pool.address),
|
|
195
|
-
tx.pure.u64(amount * baseCoin.scalar),
|
|
243
|
+
tx.pure.u64(Math.round(amount * baseCoin.scalar)),
|
|
196
244
|
tx.object.clock(),
|
|
197
245
|
],
|
|
198
246
|
typeArguments: [baseCoin.type, quoteCoin.type, baseCoin.type],
|
|
@@ -222,7 +270,7 @@ export class MarginManagerContract {
|
|
|
222
270
|
tx.object(baseCoin.priceInfoObjectId!),
|
|
223
271
|
tx.object(quoteCoin.priceInfoObjectId!),
|
|
224
272
|
tx.object(pool.address),
|
|
225
|
-
tx.pure.u64(amount * quoteCoin.scalar),
|
|
273
|
+
tx.pure.u64(Math.round(amount * quoteCoin.scalar)),
|
|
226
274
|
tx.object.clock(),
|
|
227
275
|
],
|
|
228
276
|
typeArguments: [baseCoin.type, quoteCoin.type, quoteCoin.type],
|
|
@@ -253,7 +301,7 @@ export class MarginManagerContract {
|
|
|
253
301
|
tx.object(baseCoin.priceInfoObjectId!),
|
|
254
302
|
tx.object(quoteCoin.priceInfoObjectId!),
|
|
255
303
|
tx.object(pool.address),
|
|
256
|
-
tx.pure.u64(amount * deepCoin.scalar),
|
|
304
|
+
tx.pure.u64(Math.round(amount * deepCoin.scalar)),
|
|
257
305
|
tx.object.clock(),
|
|
258
306
|
],
|
|
259
307
|
typeArguments: [baseCoin.type, quoteCoin.type, deepCoin.type],
|
|
@@ -281,7 +329,7 @@ export class MarginManagerContract {
|
|
|
281
329
|
tx.object(baseCoin.priceInfoObjectId!),
|
|
282
330
|
tx.object(quoteCoin.priceInfoObjectId!),
|
|
283
331
|
tx.object(pool.address),
|
|
284
|
-
tx.pure.u64(amount * baseCoin.scalar),
|
|
332
|
+
tx.pure.u64(Math.round(amount * baseCoin.scalar)),
|
|
285
333
|
tx.object.clock(),
|
|
286
334
|
],
|
|
287
335
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
@@ -309,7 +357,7 @@ export class MarginManagerContract {
|
|
|
309
357
|
tx.object(baseCoin.priceInfoObjectId!),
|
|
310
358
|
tx.object(quoteCoin.priceInfoObjectId!),
|
|
311
359
|
tx.object(pool.address),
|
|
312
|
-
tx.pure.u64(amount * quoteCoin.scalar),
|
|
360
|
+
tx.pure.u64(Math.round(amount * quoteCoin.scalar)),
|
|
313
361
|
tx.object.clock(),
|
|
314
362
|
],
|
|
315
363
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
@@ -336,7 +384,7 @@ export class MarginManagerContract {
|
|
|
336
384
|
tx.object(baseMarginPool.address),
|
|
337
385
|
tx.object.option({
|
|
338
386
|
type: 'u64',
|
|
339
|
-
value: amount ? tx.pure.u64(amount * baseCoin.scalar) : null,
|
|
387
|
+
value: amount ? tx.pure.u64(Math.round(amount * baseCoin.scalar)) : null,
|
|
340
388
|
}),
|
|
341
389
|
tx.object.clock(),
|
|
342
390
|
],
|
|
@@ -364,7 +412,7 @@ export class MarginManagerContract {
|
|
|
364
412
|
tx.object(quoteMarginPool.address),
|
|
365
413
|
tx.object.option({
|
|
366
414
|
type: 'u64',
|
|
367
|
-
value: amount ? tx.pure.u64(amount * quoteCoin.scalar) : null,
|
|
415
|
+
value: amount ? tx.pure.u64(Math.round(amount * quoteCoin.scalar)) : null,
|
|
368
416
|
}),
|
|
369
417
|
tx.object.clock(),
|
|
370
418
|
],
|
|
@@ -705,4 +753,32 @@ export class MarginManagerContract {
|
|
|
705
753
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
706
754
|
});
|
|
707
755
|
};
|
|
756
|
+
|
|
757
|
+
/**
|
|
758
|
+
* @description Get account order details for a margin manager.
|
|
759
|
+
* This retrieves the balance manager from the margin manager and calls get_account_order_details.
|
|
760
|
+
* @param {string} poolKey The key to identify the pool
|
|
761
|
+
* @param {string} marginManagerId The ID of the margin manager
|
|
762
|
+
* @returns A function that takes a Transaction object
|
|
763
|
+
*/
|
|
764
|
+
getMarginAccountOrderDetails =
|
|
765
|
+
(poolKey: string, marginManagerId: string) => (tx: Transaction) => {
|
|
766
|
+
const pool = this.#config.getPool(poolKey);
|
|
767
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
768
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
769
|
+
|
|
770
|
+
// Get the balance manager from the margin manager
|
|
771
|
+
const balanceManager = tx.moveCall({
|
|
772
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::balance_manager`,
|
|
773
|
+
arguments: [tx.object(marginManagerId)],
|
|
774
|
+
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
775
|
+
});
|
|
776
|
+
|
|
777
|
+
// Call get_account_order_details with the balance manager
|
|
778
|
+
return tx.moveCall({
|
|
779
|
+
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::get_account_order_details`,
|
|
780
|
+
arguments: [tx.object(pool.address), balanceManager],
|
|
781
|
+
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
782
|
+
});
|
|
783
|
+
};
|
|
708
784
|
}
|
|
@@ -72,10 +72,10 @@ export class MarginPoolContract {
|
|
|
72
72
|
};
|
|
73
73
|
|
|
74
74
|
/**
|
|
75
|
-
* @description Withdraw from a margin pool
|
|
75
|
+
* @description Withdraw from a margin pool. If amountToWithdraw is not provided, withdraws all.
|
|
76
76
|
* @param {string} coinKey The key to identify the pool
|
|
77
77
|
* @param {TransactionObjectArgument} supplierCap The supplier cap object
|
|
78
|
-
* @param {number} amountToWithdraw The amount to withdraw
|
|
78
|
+
* @param {number} [amountToWithdraw] The amount to withdraw. If omitted, withdraws all.
|
|
79
79
|
* @returns A function that takes a Transaction object
|
|
80
80
|
*/
|
|
81
81
|
withdrawFromMarginPool =
|
|
@@ -83,16 +83,15 @@ export class MarginPoolContract {
|
|
|
83
83
|
(tx: Transaction) => {
|
|
84
84
|
const marginPool = this.#config.getMarginPool(coinKey);
|
|
85
85
|
const coin = this.#config.getCoin(coinKey);
|
|
86
|
-
const withdrawInput =
|
|
87
|
-
?
|
|
88
|
-
: null;
|
|
86
|
+
const withdrawInput =
|
|
87
|
+
amountToWithdraw !== undefined ? Math.round(amountToWithdraw * coin.scalar) : null;
|
|
89
88
|
return tx.moveCall({
|
|
90
89
|
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_pool::withdraw`,
|
|
91
90
|
arguments: [
|
|
92
91
|
tx.object(marginPool.address),
|
|
93
92
|
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
94
93
|
supplierCap,
|
|
95
|
-
tx.
|
|
94
|
+
tx.pure.option('u64', withdrawInput),
|
|
96
95
|
tx.object.clock(),
|
|
97
96
|
],
|
|
98
97
|
typeArguments: [marginPool.type],
|
|
@@ -195,20 +195,20 @@ export class MarginTPSLContract {
|
|
|
195
195
|
/**
|
|
196
196
|
* @description Execute conditional orders that have been triggered
|
|
197
197
|
* This is a permissionless function that can be called by anyone
|
|
198
|
-
* @param {string}
|
|
198
|
+
* @param {string} managerAddress The address of the margin manager
|
|
199
|
+
* @param {string} poolKey The key to identify the pool (e.g., 'SUI_USDC')
|
|
199
200
|
* @param {number} maxOrdersToExecute Maximum number of orders to execute in this call
|
|
200
201
|
* @returns A function that takes a Transaction object
|
|
201
202
|
*/
|
|
202
203
|
executeConditionalOrders =
|
|
203
|
-
(
|
|
204
|
-
const
|
|
205
|
-
const pool = this.#config.getPool(manager.poolKey);
|
|
204
|
+
(managerAddress: string, poolKey: string, maxOrdersToExecute: number) => (tx: Transaction) => {
|
|
205
|
+
const pool = this.#config.getPool(poolKey);
|
|
206
206
|
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
207
207
|
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
208
208
|
return tx.moveCall({
|
|
209
209
|
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::execute_conditional_orders`,
|
|
210
210
|
arguments: [
|
|
211
|
-
tx.object(
|
|
211
|
+
tx.object(managerAddress),
|
|
212
212
|
tx.object(pool.address),
|
|
213
213
|
tx.object(baseCoin.priceInfoObjectId!),
|
|
214
214
|
tx.object(quoteCoin.priceInfoObjectId!),
|
|
@@ -435,4 +435,54 @@ export class PoolProxyContract {
|
|
|
435
435
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
436
436
|
});
|
|
437
437
|
};
|
|
438
|
+
|
|
439
|
+
/**
|
|
440
|
+
* @description Withdraw settled amounts permissionlessly for a margin manager by ID
|
|
441
|
+
* @param {string} poolKey The key to identify the pool
|
|
442
|
+
* @param {string} marginManagerId The object ID of the MarginManager
|
|
443
|
+
* @returns A function that takes a Transaction object
|
|
444
|
+
*/
|
|
445
|
+
withdrawMarginSettledAmounts =
|
|
446
|
+
(poolKey: string, marginManagerId: string) => (tx: Transaction) => {
|
|
447
|
+
const pool = this.#config.getPool(poolKey);
|
|
448
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
449
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
450
|
+
tx.moveCall({
|
|
451
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::withdraw_settled_amounts_permissionless`,
|
|
452
|
+
arguments: [
|
|
453
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
454
|
+
tx.object(marginManagerId),
|
|
455
|
+
tx.object(pool.address),
|
|
456
|
+
],
|
|
457
|
+
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
458
|
+
});
|
|
459
|
+
};
|
|
460
|
+
|
|
461
|
+
/**
|
|
462
|
+
* @description Update the current price for a pool using Pyth oracle
|
|
463
|
+
* @param {string} poolKey The key to identify the pool
|
|
464
|
+
* @returns A function that takes a Transaction object
|
|
465
|
+
*/
|
|
466
|
+
updateCurrentPrice = (poolKey: string) => (tx: Transaction) => {
|
|
467
|
+
const pool = this.#config.getPool(poolKey);
|
|
468
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
469
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
470
|
+
if (!baseCoin.priceInfoObjectId) {
|
|
471
|
+
throw new Error(`Missing priceInfoObjectId for ${pool.baseCoin}`);
|
|
472
|
+
}
|
|
473
|
+
if (!quoteCoin.priceInfoObjectId) {
|
|
474
|
+
throw new Error(`Missing priceInfoObjectId for ${pool.quoteCoin}`);
|
|
475
|
+
}
|
|
476
|
+
tx.moveCall({
|
|
477
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::pool_proxy::update_current_price`,
|
|
478
|
+
arguments: [
|
|
479
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
480
|
+
tx.object(pool.address),
|
|
481
|
+
tx.object(baseCoin.priceInfoObjectId),
|
|
482
|
+
tx.object(quoteCoin.priceInfoObjectId),
|
|
483
|
+
tx.object.clock(),
|
|
484
|
+
],
|
|
485
|
+
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
486
|
+
});
|
|
487
|
+
};
|
|
438
488
|
}
|
package/src/types/bcs.ts
CHANGED
|
@@ -5,4 +5,4 @@ export { Account } from '../contracts/deepbook/account.js';
|
|
|
5
5
|
export { Balances } from '../contracts/deepbook/balances.js';
|
|
6
6
|
export { OrderDeepPrice } from '../contracts/deepbook/deep_price.js';
|
|
7
7
|
export { Order } from '../contracts/deepbook/order.js';
|
|
8
|
-
export { VecSet } from '../contracts/deepbook/deps/
|
|
8
|
+
export { VecSet } from '../contracts/deepbook/deps/haneul/vec_set.js';
|
package/src/types/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Mysten Labs, Inc.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import type { TransactionObjectArgument } from '@haneullabs/haneul/transactions';
|
|
4
|
+
import type { TransactionArgument, TransactionObjectArgument } from '@haneullabs/haneul/transactions';
|
|
5
5
|
|
|
6
6
|
// SPDX-License-Identifier: Apache-2.0
|
|
7
7
|
export interface BalanceManager {
|
|
@@ -252,4 +252,21 @@ export interface Config {
|
|
|
252
252
|
DEEP_TREASURY_ID: string;
|
|
253
253
|
}
|
|
254
254
|
|
|
255
|
-
|
|
255
|
+
/**
|
|
256
|
+
* Parameters for depositing into a margin manager.
|
|
257
|
+
* Either `amount` (number) or `coin` (TransactionArgument) must be provided, but not both.
|
|
258
|
+
*/
|
|
259
|
+
export type DepositParams = {
|
|
260
|
+
managerKey: string;
|
|
261
|
+
} & ({ amount: number; coin?: never } | { amount?: never; coin: TransactionArgument });
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Parameters for depositing during margin manager initialization.
|
|
265
|
+
* Either (`coinType` + `amount`) or (`coinType` + `coin`) must be provided.
|
|
266
|
+
* `coinType` should be a coin key from config (e.g., 'HANEUL', 'DBUSDC', 'DEEP').
|
|
267
|
+
*/
|
|
268
|
+
export type DepositDuringInitParams = {
|
|
269
|
+
manager: TransactionArgument;
|
|
270
|
+
poolKey: string;
|
|
271
|
+
coinType: string;
|
|
272
|
+
} & ({ amount: number; coin?: never } | { amount?: never; coin: TransactionArgument });
|