@haneullabs/deepbook-v3 0.1.0 → 1.2.1
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 +342 -81
- package/dist/client.d.mts +238 -0
- package/dist/client.d.mts.map +1 -0
- package/dist/client.mjs +397 -0
- package/dist/client.mjs.map +1 -0
- package/dist/contracts/deepbook/account.d.mts +37 -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 +12 -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 +12 -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 +21 -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 +23 -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/queries/accountQueries.mjs +104 -0
- package/dist/queries/accountQueries.mjs.map +1 -0
- package/dist/queries/balanceManagerQueries.mjs +113 -0
- package/dist/queries/balanceManagerQueries.mjs.map +1 -0
- package/dist/queries/context.mjs +15 -0
- package/dist/queries/context.mjs.map +1 -0
- package/dist/queries/marginManagerQueries.mjs +365 -0
- package/dist/queries/marginManagerQueries.mjs.map +1 -0
- package/dist/queries/marginPoolQueries.mjs +184 -0
- package/dist/queries/marginPoolQueries.mjs.map +1 -0
- package/dist/queries/orderQueries.mjs +165 -0
- package/dist/queries/orderQueries.mjs.map +1 -0
- package/dist/queries/poolQueries.mjs +234 -0
- package/dist/queries/poolQueries.mjs.map +1 -0
- package/dist/queries/priceFeedQueries.mjs +83 -0
- package/dist/queries/priceFeedQueries.mjs.map +1 -0
- package/dist/queries/quantityQueries.mjs +216 -0
- package/dist/queries/quantityQueries.mjs.map +1 -0
- package/dist/queries/referralQueries.mjs +96 -0
- package/dist/queries/referralQueries.mjs.map +1 -0
- package/dist/queries/registryQueries.mjs +162 -0
- package/dist/queries/registryQueries.mjs.map +1 -0
- package/dist/queries/tpslQueries.mjs +62 -0
- package/dist/queries/tpslQueries.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 +234 -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 +979 -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 +222 -0
- package/dist/transactions/deepbookAdmin.mjs.map +1 -0
- package/dist/transactions/flashLoans.d.mts +61 -0
- package/dist/transactions/flashLoans.d.mts.map +1 -0
- package/dist/transactions/flashLoans.mjs +77 -0
- package/dist/transactions/flashLoans.mjs.map +1 -0
- package/dist/transactions/governance.d.mts +47 -0
- package/dist/transactions/governance.d.mts.map +1 -0
- package/dist/transactions/governance.mjs +91 -0
- package/dist/transactions/governance.mjs.map +1 -0
- package/dist/transactions/marginAdmin.d.mts +138 -0
- package/dist/transactions/marginAdmin.d.mts.map +1 -0
- package/dist/transactions/marginAdmin.mjs +250 -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 +110 -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 +161 -0
- package/dist/transactions/marginMaintainer.mjs.map +1 -0
- package/dist/transactions/marginManager.d.mts +247 -0
- package/dist/transactions/marginManager.d.mts.map +1 -0
- package/dist/transactions/marginManager.mjs +548 -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 +207 -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 +173 -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 +374 -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 +90 -0
- package/dist/utils/config.d.mts.map +1 -0
- package/dist/utils/config.mjs +104 -0
- package/dist/utils/config.mjs.map +1 -0
- package/dist/utils/constants.d.mts +93 -0
- package/dist/utils/constants.d.mts.map +1 -0
- package/dist/utils/constants.mjs +408 -0
- package/dist/utils/constants.mjs.map +1 -0
- package/dist/utils/conversion.mjs +26 -0
- package/dist/utils/conversion.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 +30 -26
- package/src/client.ts +467 -2255
- 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 +44 -3
- package/src/pyth/pyth.ts +51 -50
- package/src/queries/accountQueries.ts +117 -0
- package/src/queries/balanceManagerQueries.ts +156 -0
- package/src/queries/context.ts +44 -0
- package/src/queries/index.ts +16 -0
- package/src/queries/marginManagerQueries.ts +575 -0
- package/src/queries/marginPoolQueries.ts +226 -0
- package/src/queries/orderQueries.ts +202 -0
- package/src/queries/poolQueries.ts +266 -0
- package/src/queries/priceFeedQueries.ts +141 -0
- package/src/queries/quantityQueries.ts +266 -0
- package/src/queries/referralQueries.ts +112 -0
- package/src/queries/registryQueries.ts +185 -0
- package/src/queries/tpslQueries.ts +88 -0
- package/src/transactions/balanceManager.ts +5 -4
- package/src/transactions/deepbook.ts +117 -84
- package/src/transactions/deepbookAdmin.ts +10 -9
- package/src/transactions/flashLoans.ts +5 -4
- package/src/transactions/governance.ts +5 -4
- package/src/transactions/marginAdmin.ts +12 -8
- package/src/transactions/marginLiquidations.ts +5 -4
- package/src/transactions/marginMaintainer.ts +28 -16
- package/src/transactions/marginManager.ts +78 -29
- package/src/transactions/marginPool.ts +7 -7
- package/src/transactions/marginTPSL.ts +16 -11
- package/src/transactions/poolProxy.ts +62 -11
- package/src/types/bcs.ts +1 -1
- package/src/types/index.ts +217 -53
- package/src/utils/config.ts +38 -17
- package/src/utils/constants.ts +73 -18
- package/src/utils/conversion.ts +33 -0
- 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
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import type { Transaction, TransactionObjectArgument } from '@haneullabs/haneul/transactions';
|
|
4
4
|
|
|
5
5
|
import type { DeepBookConfig } from '../utils/config.js';
|
|
6
|
+
import { convertQuantity } from '../utils/conversion.js';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* FlashLoanContract class for managing flash loans.
|
|
@@ -27,7 +28,7 @@ export class FlashLoanContract {
|
|
|
27
28
|
const pool = this.#config.getPool(poolKey);
|
|
28
29
|
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
29
30
|
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
30
|
-
const inputQuantity =
|
|
31
|
+
const inputQuantity = convertQuantity(borrowAmount, baseCoin.scalar);
|
|
31
32
|
const [baseCoinResult, flashLoan] = tx.moveCall({
|
|
32
33
|
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::borrow_flashloan_base`,
|
|
33
34
|
arguments: [tx.object(pool.address), tx.pure.u64(inputQuantity)],
|
|
@@ -58,7 +59,7 @@ export class FlashLoanContract {
|
|
|
58
59
|
const borrowScalar = baseCoin.scalar;
|
|
59
60
|
|
|
60
61
|
const [baseCoinReturn] = tx.splitCoins(baseCoinInput, [
|
|
61
|
-
tx.pure.u64(
|
|
62
|
+
tx.pure.u64(convertQuantity(borrowAmount, borrowScalar)),
|
|
62
63
|
]);
|
|
63
64
|
tx.moveCall({
|
|
64
65
|
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::return_flashloan_base`,
|
|
@@ -79,7 +80,7 @@ export class FlashLoanContract {
|
|
|
79
80
|
const pool = this.#config.getPool(poolKey);
|
|
80
81
|
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
81
82
|
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
82
|
-
const inputQuantity =
|
|
83
|
+
const inputQuantity = convertQuantity(borrowAmount, quoteCoin.scalar);
|
|
83
84
|
const [quoteCoinResult, flashLoan] = tx.moveCall({
|
|
84
85
|
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::borrow_flashloan_quote`,
|
|
85
86
|
arguments: [tx.object(pool.address), tx.pure.u64(inputQuantity)],
|
|
@@ -110,7 +111,7 @@ export class FlashLoanContract {
|
|
|
110
111
|
const borrowScalar = quoteCoin.scalar;
|
|
111
112
|
|
|
112
113
|
const [quoteCoinReturn] = tx.splitCoins(quoteCoinInput, [
|
|
113
|
-
tx.pure.u64(
|
|
114
|
+
tx.pure.u64(convertQuantity(borrowAmount, borrowScalar)),
|
|
114
115
|
]);
|
|
115
116
|
tx.moveCall({
|
|
116
117
|
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::return_flashloan_quote`,
|
|
@@ -5,6 +5,7 @@ import type { Transaction } from '@haneullabs/haneul/transactions';
|
|
|
5
5
|
import type { ProposalParams } from '../types/index.js';
|
|
6
6
|
import type { DeepBookConfig } from '../utils/config.js';
|
|
7
7
|
import { DEEP_SCALAR, FLOAT_SCALAR } from '../utils/config.js';
|
|
8
|
+
import { convertQuantity, convertRate } from '../utils/conversion.js';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* GovernanceContract class for managing governance operations in DeepBook.
|
|
@@ -33,7 +34,7 @@ export class GovernanceContract {
|
|
|
33
34
|
const tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));
|
|
34
35
|
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
35
36
|
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
36
|
-
const stakeInput =
|
|
37
|
+
const stakeInput = convertQuantity(stakeAmount, DEEP_SCALAR);
|
|
37
38
|
|
|
38
39
|
tx.moveCall({
|
|
39
40
|
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::stake`,
|
|
@@ -87,9 +88,9 @@ export class GovernanceContract {
|
|
|
87
88
|
tx.object(pool.address),
|
|
88
89
|
tx.object(balanceManager.address),
|
|
89
90
|
tradeProof,
|
|
90
|
-
tx.pure.u64(
|
|
91
|
-
tx.pure.u64(
|
|
92
|
-
tx.pure.u64(
|
|
91
|
+
tx.pure.u64(convertRate(takerFee, FLOAT_SCALAR)),
|
|
92
|
+
tx.pure.u64(convertRate(makerFee, FLOAT_SCALAR)),
|
|
93
|
+
tx.pure.u64(convertQuantity(stakeRequired, DEEP_SCALAR)),
|
|
93
94
|
],
|
|
94
95
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
95
96
|
});
|
|
@@ -7,7 +7,8 @@ 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 {
|
|
10
|
+
import { convertRate } from '../utils/conversion.js';
|
|
11
|
+
import { hexToBytes } from '@noble/hashes/utils.js';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* MarginAdminContract class for managing admin actions.
|
|
@@ -239,12 +240,12 @@ export class MarginAdminContract {
|
|
|
239
240
|
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::new_pool_config`,
|
|
240
241
|
arguments: [
|
|
241
242
|
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
242
|
-
tx.pure.u64(minWithdrawRiskRatio
|
|
243
|
-
tx.pure.u64(minBorrowRiskRatio
|
|
244
|
-
tx.pure.u64(liquidationRiskRatio
|
|
245
|
-
tx.pure.u64(targetLiquidationRiskRatio
|
|
246
|
-
tx.pure.u64(userLiquidationReward
|
|
247
|
-
tx.pure.u64(poolLiquidationReward
|
|
243
|
+
tx.pure.u64(convertRate(minWithdrawRiskRatio, FLOAT_SCALAR)),
|
|
244
|
+
tx.pure.u64(convertRate(minBorrowRiskRatio, FLOAT_SCALAR)),
|
|
245
|
+
tx.pure.u64(convertRate(liquidationRiskRatio, FLOAT_SCALAR)),
|
|
246
|
+
tx.pure.u64(convertRate(targetLiquidationRiskRatio, FLOAT_SCALAR)),
|
|
247
|
+
tx.pure.u64(convertRate(userLiquidationReward, FLOAT_SCALAR)),
|
|
248
|
+
tx.pure.u64(convertRate(poolLiquidationReward, FLOAT_SCALAR)),
|
|
248
249
|
],
|
|
249
250
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
250
251
|
});
|
|
@@ -262,7 +263,10 @@ export class MarginAdminContract {
|
|
|
262
263
|
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
263
264
|
tx.moveCall({
|
|
264
265
|
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::new_pool_config_with_leverage`,
|
|
265
|
-
arguments: [
|
|
266
|
+
arguments: [
|
|
267
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
268
|
+
tx.pure.u64(convertRate(leverage, FLOAT_SCALAR)),
|
|
269
|
+
],
|
|
266
270
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
267
271
|
});
|
|
268
272
|
};
|
|
@@ -4,6 +4,7 @@ import type { Transaction } from '@haneullabs/haneul/transactions';
|
|
|
4
4
|
import { coinWithBalance } from '@haneullabs/haneul/transactions';
|
|
5
5
|
|
|
6
6
|
import type { DeepBookConfig } from '../utils/config.js';
|
|
7
|
+
import { convertQuantity } from '../utils/conversion.js';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* MarginLiquidationsContract class for managing LiquidationVault operations.
|
|
@@ -44,7 +45,7 @@ export class MarginLiquidationsContract {
|
|
|
44
45
|
const coin = this.#config.getCoin(coinKey);
|
|
45
46
|
const depositCoin = coinWithBalance({
|
|
46
47
|
type: coin.type,
|
|
47
|
-
balance: amount
|
|
48
|
+
balance: convertQuantity(amount, coin.scalar),
|
|
48
49
|
});
|
|
49
50
|
tx.moveCall({
|
|
50
51
|
target: `${this.#config.LIQUIDATION_PACKAGE_ID}::liquidation_vault::deposit`,
|
|
@@ -70,7 +71,7 @@ export class MarginLiquidationsContract {
|
|
|
70
71
|
arguments: [
|
|
71
72
|
tx.object(vaultId),
|
|
72
73
|
tx.object(liquidationAdminCap),
|
|
73
|
-
tx.pure.u64(amount
|
|
74
|
+
tx.pure.u64(convertQuantity(amount, coin.scalar)),
|
|
74
75
|
],
|
|
75
76
|
typeArguments: [coin.type],
|
|
76
77
|
});
|
|
@@ -95,7 +96,7 @@ export class MarginLiquidationsContract {
|
|
|
95
96
|
|
|
96
97
|
const repayAmountArg =
|
|
97
98
|
repayAmount !== undefined
|
|
98
|
-
? tx.pure.option('u64',
|
|
99
|
+
? tx.pure.option('u64', convertQuantity(repayAmount, baseCoin.scalar))
|
|
99
100
|
: tx.pure.option('u64', null);
|
|
100
101
|
|
|
101
102
|
tx.moveCall({
|
|
@@ -135,7 +136,7 @@ export class MarginLiquidationsContract {
|
|
|
135
136
|
|
|
136
137
|
const repayAmountArg =
|
|
137
138
|
repayAmount !== undefined
|
|
138
|
-
? tx.pure.option('u64',
|
|
139
|
+
? tx.pure.option('u64', convertQuantity(repayAmount, quoteCoin.scalar))
|
|
139
140
|
: tx.pure.option('u64', null);
|
|
140
141
|
|
|
141
142
|
tx.moveCall({
|
|
@@ -10,6 +10,7 @@ import type {
|
|
|
10
10
|
import type { DeepBookConfig } from '../utils/config.js';
|
|
11
11
|
import type { MarginPoolConfigParams, InterestConfigParams } from '../types/index.js';
|
|
12
12
|
import { FLOAT_SCALAR } from '../utils/config.js';
|
|
13
|
+
import { convertQuantity, convertRate } from '../utils/conversion.js';
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* DeepBookMaintainerContract class for managing maintainer actions.
|
|
@@ -102,10 +103,10 @@ export class MarginMaintainerContract {
|
|
|
102
103
|
return tx.moveCall({
|
|
103
104
|
target: `${this.#config.MARGIN_PACKAGE_ID}::protocol_config::new_margin_pool_config`,
|
|
104
105
|
arguments: [
|
|
105
|
-
tx.pure.u64(supplyCap
|
|
106
|
-
tx.pure.u64(maxUtilizationRate
|
|
107
|
-
tx.pure.u64(referralSpread
|
|
108
|
-
tx.pure.u64(
|
|
106
|
+
tx.pure.u64(convertQuantity(supplyCap, coin.scalar)),
|
|
107
|
+
tx.pure.u64(convertRate(maxUtilizationRate, FLOAT_SCALAR)),
|
|
108
|
+
tx.pure.u64(convertRate(referralSpread, FLOAT_SCALAR)),
|
|
109
|
+
tx.pure.u64(convertQuantity(minBorrow, coin.scalar)),
|
|
109
110
|
],
|
|
110
111
|
});
|
|
111
112
|
};
|
|
@@ -141,12 +142,12 @@ export class MarginMaintainerContract {
|
|
|
141
142
|
return tx.moveCall({
|
|
142
143
|
target: `${this.#config.MARGIN_PACKAGE_ID}::protocol_config::new_margin_pool_config_with_rate_limit`,
|
|
143
144
|
arguments: [
|
|
144
|
-
tx.pure.u64(supplyCap
|
|
145
|
-
tx.pure.u64(maxUtilizationRate
|
|
146
|
-
tx.pure.u64(referralSpread
|
|
147
|
-
tx.pure.u64(
|
|
148
|
-
tx.pure.u64(
|
|
149
|
-
tx.pure.u64(
|
|
145
|
+
tx.pure.u64(convertQuantity(supplyCap, coin.scalar)),
|
|
146
|
+
tx.pure.u64(convertRate(maxUtilizationRate, FLOAT_SCALAR)),
|
|
147
|
+
tx.pure.u64(convertRate(referralSpread, FLOAT_SCALAR)),
|
|
148
|
+
tx.pure.u64(convertQuantity(minBorrow, coin.scalar)),
|
|
149
|
+
tx.pure.u64(convertQuantity(rateLimitCapacity, coin.scalar)),
|
|
150
|
+
tx.pure.u64(convertQuantity(rateLimitRefillRatePerMs, coin.scalar)),
|
|
150
151
|
tx.pure.bool(rateLimitEnabled),
|
|
151
152
|
],
|
|
152
153
|
});
|
|
@@ -162,10 +163,10 @@ export class MarginMaintainerContract {
|
|
|
162
163
|
return tx.moveCall({
|
|
163
164
|
target: `${this.#config.MARGIN_PACKAGE_ID}::protocol_config::new_interest_config`,
|
|
164
165
|
arguments: [
|
|
165
|
-
tx.pure.u64(baseRate
|
|
166
|
-
tx.pure.u64(baseSlope
|
|
167
|
-
tx.pure.u64(optimalUtilization
|
|
168
|
-
tx.pure.u64(excessSlope
|
|
166
|
+
tx.pure.u64(convertRate(baseRate, FLOAT_SCALAR)),
|
|
167
|
+
tx.pure.u64(convertRate(baseSlope, FLOAT_SCALAR)),
|
|
168
|
+
tx.pure.u64(convertRate(optimalUtilization, FLOAT_SCALAR)),
|
|
169
|
+
tx.pure.u64(convertRate(excessSlope, FLOAT_SCALAR)),
|
|
169
170
|
],
|
|
170
171
|
});
|
|
171
172
|
};
|
|
@@ -253,7 +254,7 @@ export class MarginMaintainerContract {
|
|
|
253
254
|
* @description Update the margin pool config
|
|
254
255
|
* @param {string} coinKey The key to identify the margin pool
|
|
255
256
|
* @param {TransactionObjectArgument} marginPoolCap The margin pool cap
|
|
256
|
-
* @param {MarginPoolConfigParams} marginPoolConfig The configuration for the margin pool
|
|
257
|
+
* @param {MarginPoolConfigParams} marginPoolConfig The configuration for the margin pool (with optional rate limit)
|
|
257
258
|
* @returns A function that takes a Transaction object
|
|
258
259
|
*/
|
|
259
260
|
updateMarginPoolConfig =
|
|
@@ -264,7 +265,18 @@ export class MarginMaintainerContract {
|
|
|
264
265
|
) =>
|
|
265
266
|
(tx: Transaction) => {
|
|
266
267
|
const marginPool = this.#config.getMarginPool(coinKey);
|
|
267
|
-
const
|
|
268
|
+
const hasRateLimit =
|
|
269
|
+
marginPoolConfig.rateLimitCapacity !== undefined &&
|
|
270
|
+
marginPoolConfig.rateLimitRefillRatePerMs !== undefined &&
|
|
271
|
+
marginPoolConfig.rateLimitEnabled !== undefined;
|
|
272
|
+
const marginPoolConfigObject = hasRateLimit
|
|
273
|
+
? this.newMarginPoolConfigWithRateLimit(coinKey, {
|
|
274
|
+
...marginPoolConfig,
|
|
275
|
+
rateLimitCapacity: marginPoolConfig.rateLimitCapacity!,
|
|
276
|
+
rateLimitRefillRatePerMs: marginPoolConfig.rateLimitRefillRatePerMs!,
|
|
277
|
+
rateLimitEnabled: marginPoolConfig.rateLimitEnabled!,
|
|
278
|
+
})(tx)
|
|
279
|
+
: this.newMarginPoolConfig(coinKey, marginPoolConfig)(tx);
|
|
268
280
|
tx.moveCall({
|
|
269
281
|
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_pool::update_margin_pool_config`,
|
|
270
282
|
arguments: [
|
|
@@ -4,6 +4,8 @@ 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';
|
|
8
|
+
import { convertQuantity } from '../utils/conversion.js';
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* MarginManagerContract class for managing MarginManager operations.
|
|
@@ -81,21 +83,62 @@ export class MarginManagerContract {
|
|
|
81
83
|
});
|
|
82
84
|
};
|
|
83
85
|
|
|
86
|
+
/**
|
|
87
|
+
* @description Deposit into a margin manager during initialization (before sharing).
|
|
88
|
+
* Use this when you need to deposit funds into a newly created manager in the same transaction.
|
|
89
|
+
* @param {DepositDuringInitParams} params The deposit parameters
|
|
90
|
+
* @returns A function that takes a Transaction object
|
|
91
|
+
*/
|
|
92
|
+
depositDuringInitialization = (params: DepositDuringInitParams) => (tx: Transaction) => {
|
|
93
|
+
const { manager, poolKey, coinType } = params;
|
|
94
|
+
const pool = this.#config.getPool(poolKey);
|
|
95
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
96
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
97
|
+
|
|
98
|
+
// Get the deposit coin from config using the coinType key (e.g., 'HANEUL', 'DBUSDC', 'DEEP')
|
|
99
|
+
const depositCoin = this.#config.getCoin(coinType);
|
|
100
|
+
|
|
101
|
+
// If amount is provided, create a coin with balance; otherwise use the provided coin
|
|
102
|
+
const coin =
|
|
103
|
+
'amount' in params && params.amount !== undefined
|
|
104
|
+
? coinWithBalance({
|
|
105
|
+
type: depositCoin.type,
|
|
106
|
+
balance: convertQuantity(params.amount, depositCoin.scalar),
|
|
107
|
+
})
|
|
108
|
+
: params.coin;
|
|
109
|
+
|
|
110
|
+
tx.moveCall({
|
|
111
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::deposit`,
|
|
112
|
+
arguments: [
|
|
113
|
+
manager,
|
|
114
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
115
|
+
tx.object(baseCoin.priceInfoObjectId!),
|
|
116
|
+
tx.object(quoteCoin.priceInfoObjectId!),
|
|
117
|
+
coin,
|
|
118
|
+
tx.object.clock(),
|
|
119
|
+
],
|
|
120
|
+
typeArguments: [baseCoin.type, quoteCoin.type, depositCoin.type],
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
|
|
84
124
|
/**
|
|
85
125
|
* @description Deposit base into a margin manager
|
|
86
|
-
* @param {
|
|
87
|
-
* @param {number} amount The amount to deposit
|
|
126
|
+
* @param {DepositParams} params The deposit parameters
|
|
88
127
|
* @returns A function that takes a Transaction object
|
|
89
128
|
*/
|
|
90
|
-
depositBase = (
|
|
129
|
+
depositBase = (params: DepositParams) => (tx: Transaction) => {
|
|
130
|
+
const { managerKey } = params;
|
|
91
131
|
const manager = this.#config.getMarginManager(managerKey);
|
|
92
132
|
const pool = this.#config.getPool(manager.poolKey);
|
|
93
133
|
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
94
134
|
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
95
|
-
const coin =
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
135
|
+
const coin =
|
|
136
|
+
'amount' in params && params.amount !== undefined
|
|
137
|
+
? coinWithBalance({
|
|
138
|
+
type: baseCoin.type,
|
|
139
|
+
balance: convertQuantity(params.amount, baseCoin.scalar),
|
|
140
|
+
})
|
|
141
|
+
: params.coin;
|
|
99
142
|
tx.moveCall({
|
|
100
143
|
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::deposit`,
|
|
101
144
|
arguments: [
|
|
@@ -112,19 +155,22 @@ export class MarginManagerContract {
|
|
|
112
155
|
|
|
113
156
|
/**
|
|
114
157
|
* @description Deposit quote into a margin manager
|
|
115
|
-
* @param {
|
|
116
|
-
* @param {number} amount The amount to deposit
|
|
158
|
+
* @param {DepositParams} params The deposit parameters
|
|
117
159
|
* @returns A function that takes a Transaction object
|
|
118
160
|
*/
|
|
119
|
-
depositQuote = (
|
|
161
|
+
depositQuote = (params: DepositParams) => (tx: Transaction) => {
|
|
162
|
+
const { managerKey } = params;
|
|
120
163
|
const manager = this.#config.getMarginManager(managerKey);
|
|
121
164
|
const pool = this.#config.getPool(manager.poolKey);
|
|
122
165
|
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
123
166
|
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
124
|
-
const coin =
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
167
|
+
const coin =
|
|
168
|
+
'amount' in params && params.amount !== undefined
|
|
169
|
+
? coinWithBalance({
|
|
170
|
+
type: quoteCoin.type,
|
|
171
|
+
balance: convertQuantity(params.amount, quoteCoin.scalar),
|
|
172
|
+
})
|
|
173
|
+
: params.coin;
|
|
128
174
|
tx.moveCall({
|
|
129
175
|
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::deposit`,
|
|
130
176
|
arguments: [
|
|
@@ -141,20 +187,23 @@ export class MarginManagerContract {
|
|
|
141
187
|
|
|
142
188
|
/**
|
|
143
189
|
* @description Deposit deep into a margin manager
|
|
144
|
-
* @param {
|
|
145
|
-
* @param {number} amount The amount to deposit
|
|
190
|
+
* @param {DepositParams} params The deposit parameters
|
|
146
191
|
* @returns A function that takes a Transaction object
|
|
147
192
|
*/
|
|
148
|
-
depositDeep = (
|
|
193
|
+
depositDeep = (params: DepositParams) => (tx: Transaction) => {
|
|
194
|
+
const { managerKey } = params;
|
|
149
195
|
const manager = this.#config.getMarginManager(managerKey);
|
|
150
196
|
const pool = this.#config.getPool(manager.poolKey);
|
|
151
197
|
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
152
198
|
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
153
199
|
const deepCoin = this.#config.getCoin('DEEP');
|
|
154
|
-
const coin =
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
200
|
+
const coin =
|
|
201
|
+
'amount' in params && params.amount !== undefined
|
|
202
|
+
? coinWithBalance({
|
|
203
|
+
type: deepCoin.type,
|
|
204
|
+
balance: convertQuantity(params.amount, deepCoin.scalar),
|
|
205
|
+
})
|
|
206
|
+
: params.coin;
|
|
158
207
|
tx.moveCall({
|
|
159
208
|
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::deposit`,
|
|
160
209
|
arguments: [
|
|
@@ -192,7 +241,7 @@ export class MarginManagerContract {
|
|
|
192
241
|
tx.object(baseCoin.priceInfoObjectId!),
|
|
193
242
|
tx.object(quoteCoin.priceInfoObjectId!),
|
|
194
243
|
tx.object(pool.address),
|
|
195
|
-
tx.pure.u64(amount
|
|
244
|
+
tx.pure.u64(convertQuantity(amount, baseCoin.scalar)),
|
|
196
245
|
tx.object.clock(),
|
|
197
246
|
],
|
|
198
247
|
typeArguments: [baseCoin.type, quoteCoin.type, baseCoin.type],
|
|
@@ -222,7 +271,7 @@ export class MarginManagerContract {
|
|
|
222
271
|
tx.object(baseCoin.priceInfoObjectId!),
|
|
223
272
|
tx.object(quoteCoin.priceInfoObjectId!),
|
|
224
273
|
tx.object(pool.address),
|
|
225
|
-
tx.pure.u64(amount
|
|
274
|
+
tx.pure.u64(convertQuantity(amount, quoteCoin.scalar)),
|
|
226
275
|
tx.object.clock(),
|
|
227
276
|
],
|
|
228
277
|
typeArguments: [baseCoin.type, quoteCoin.type, quoteCoin.type],
|
|
@@ -253,7 +302,7 @@ export class MarginManagerContract {
|
|
|
253
302
|
tx.object(baseCoin.priceInfoObjectId!),
|
|
254
303
|
tx.object(quoteCoin.priceInfoObjectId!),
|
|
255
304
|
tx.object(pool.address),
|
|
256
|
-
tx.pure.u64(amount
|
|
305
|
+
tx.pure.u64(convertQuantity(amount, deepCoin.scalar)),
|
|
257
306
|
tx.object.clock(),
|
|
258
307
|
],
|
|
259
308
|
typeArguments: [baseCoin.type, quoteCoin.type, deepCoin.type],
|
|
@@ -281,7 +330,7 @@ export class MarginManagerContract {
|
|
|
281
330
|
tx.object(baseCoin.priceInfoObjectId!),
|
|
282
331
|
tx.object(quoteCoin.priceInfoObjectId!),
|
|
283
332
|
tx.object(pool.address),
|
|
284
|
-
tx.pure.u64(amount
|
|
333
|
+
tx.pure.u64(convertQuantity(amount, baseCoin.scalar)),
|
|
285
334
|
tx.object.clock(),
|
|
286
335
|
],
|
|
287
336
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
@@ -309,7 +358,7 @@ export class MarginManagerContract {
|
|
|
309
358
|
tx.object(baseCoin.priceInfoObjectId!),
|
|
310
359
|
tx.object(quoteCoin.priceInfoObjectId!),
|
|
311
360
|
tx.object(pool.address),
|
|
312
|
-
tx.pure.u64(amount
|
|
361
|
+
tx.pure.u64(convertQuantity(amount, quoteCoin.scalar)),
|
|
313
362
|
tx.object.clock(),
|
|
314
363
|
],
|
|
315
364
|
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
@@ -336,7 +385,7 @@ export class MarginManagerContract {
|
|
|
336
385
|
tx.object(baseMarginPool.address),
|
|
337
386
|
tx.object.option({
|
|
338
387
|
type: 'u64',
|
|
339
|
-
value: amount ? tx.pure.u64(amount
|
|
388
|
+
value: amount ? tx.pure.u64(convertQuantity(amount, baseCoin.scalar)) : null,
|
|
340
389
|
}),
|
|
341
390
|
tx.object.clock(),
|
|
342
391
|
],
|
|
@@ -364,7 +413,7 @@ export class MarginManagerContract {
|
|
|
364
413
|
tx.object(quoteMarginPool.address),
|
|
365
414
|
tx.object.option({
|
|
366
415
|
type: 'u64',
|
|
367
|
-
value: amount ? tx.pure.u64(amount
|
|
416
|
+
value: amount ? tx.pure.u64(convertQuantity(amount, quoteCoin.scalar)) : null,
|
|
368
417
|
}),
|
|
369
418
|
tx.object.clock(),
|
|
370
419
|
],
|
|
@@ -406,7 +455,7 @@ export class MarginManagerContract {
|
|
|
406
455
|
repayCoin,
|
|
407
456
|
tx.object.clock(),
|
|
408
457
|
],
|
|
409
|
-
typeArguments: [baseCoin.type, quoteCoin.type],
|
|
458
|
+
typeArguments: [baseCoin.type, quoteCoin.type, debtIsBase ? baseCoin.type : quoteCoin.type],
|
|
410
459
|
});
|
|
411
460
|
};
|
|
412
461
|
|
|
@@ -4,6 +4,7 @@ import { coinWithBalance } from '@haneullabs/haneul/transactions';
|
|
|
4
4
|
import type { Transaction, TransactionObjectArgument } from '@haneullabs/haneul/transactions';
|
|
5
5
|
|
|
6
6
|
import type { DeepBookConfig } from '../utils/config.js';
|
|
7
|
+
import { convertQuantity } from '../utils/conversion.js';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* MarginPoolContract class for managing MarginPool operations.
|
|
@@ -48,7 +49,7 @@ export class MarginPoolContract {
|
|
|
48
49
|
tx.setSenderIfNotSet(this.#config.address);
|
|
49
50
|
const marginPool = this.#config.getMarginPool(coinKey);
|
|
50
51
|
const coin = this.#config.getCoin(coinKey);
|
|
51
|
-
const depositInput =
|
|
52
|
+
const depositInput = convertQuantity(amountToDeposit, coin.scalar);
|
|
52
53
|
const supply = coinWithBalance({
|
|
53
54
|
type: coin.type,
|
|
54
55
|
balance: depositInput,
|
|
@@ -72,10 +73,10 @@ export class MarginPoolContract {
|
|
|
72
73
|
};
|
|
73
74
|
|
|
74
75
|
/**
|
|
75
|
-
* @description Withdraw from a margin pool
|
|
76
|
+
* @description Withdraw from a margin pool. If amountToWithdraw is not provided, withdraws all.
|
|
76
77
|
* @param {string} coinKey The key to identify the pool
|
|
77
78
|
* @param {TransactionObjectArgument} supplierCap The supplier cap object
|
|
78
|
-
* @param {number} amountToWithdraw The amount to withdraw
|
|
79
|
+
* @param {number} [amountToWithdraw] The amount to withdraw. If omitted, withdraws all.
|
|
79
80
|
* @returns A function that takes a Transaction object
|
|
80
81
|
*/
|
|
81
82
|
withdrawFromMarginPool =
|
|
@@ -83,16 +84,15 @@ export class MarginPoolContract {
|
|
|
83
84
|
(tx: Transaction) => {
|
|
84
85
|
const marginPool = this.#config.getMarginPool(coinKey);
|
|
85
86
|
const coin = this.#config.getCoin(coinKey);
|
|
86
|
-
const withdrawInput =
|
|
87
|
-
?
|
|
88
|
-
: null;
|
|
87
|
+
const withdrawInput =
|
|
88
|
+
amountToWithdraw !== undefined ? convertQuantity(amountToWithdraw, coin.scalar) : null;
|
|
89
89
|
return tx.moveCall({
|
|
90
90
|
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_pool::withdraw`,
|
|
91
91
|
arguments: [
|
|
92
92
|
tx.object(marginPool.address),
|
|
93
93
|
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
94
94
|
supplierCap,
|
|
95
|
-
tx.
|
|
95
|
+
tx.pure.option('u64', withdrawInput),
|
|
96
96
|
tx.object.clock(),
|
|
97
97
|
],
|
|
98
98
|
typeArguments: [marginPool.type],
|
|
@@ -10,6 +10,7 @@ import type {
|
|
|
10
10
|
} from '../types/index.js';
|
|
11
11
|
import { OrderType, SelfMatchingOptions } from '../types/index.js';
|
|
12
12
|
import { MAX_TIMESTAMP, FLOAT_SCALAR } from '../utils/config.js';
|
|
13
|
+
import { convertQuantity, convertPrice } from '../utils/conversion.js';
|
|
13
14
|
|
|
14
15
|
/**
|
|
15
16
|
* MarginTPSLContract class for managing Take Profit / Stop Loss operations.
|
|
@@ -34,12 +35,16 @@ export class MarginTPSLContract {
|
|
|
34
35
|
* @returns A function that takes a Transaction object
|
|
35
36
|
*/
|
|
36
37
|
newCondition =
|
|
37
|
-
(poolKey: string, triggerBelowPrice: boolean, triggerPrice: number
|
|
38
|
+
(poolKey: string, triggerBelowPrice: boolean, triggerPrice: number | bigint) =>
|
|
39
|
+
(tx: Transaction) => {
|
|
38
40
|
const pool = this.#config.getPool(poolKey);
|
|
39
41
|
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
40
42
|
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
41
|
-
const inputPrice =
|
|
42
|
-
|
|
43
|
+
const inputPrice = convertPrice(
|
|
44
|
+
triggerPrice,
|
|
45
|
+
FLOAT_SCALAR,
|
|
46
|
+
quoteCoin.scalar,
|
|
47
|
+
baseCoin.scalar,
|
|
43
48
|
);
|
|
44
49
|
return tx.moveCall({
|
|
45
50
|
target: `${this.#config.MARGIN_PACKAGE_ID}::tpsl::new_condition`,
|
|
@@ -68,8 +73,8 @@ export class MarginTPSLContract {
|
|
|
68
73
|
const pool = this.#config.getPool(poolKey);
|
|
69
74
|
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
70
75
|
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
71
|
-
const inputPrice =
|
|
72
|
-
const inputQuantity =
|
|
76
|
+
const inputPrice = convertPrice(price, FLOAT_SCALAR, quoteCoin.scalar, baseCoin.scalar);
|
|
77
|
+
const inputQuantity = convertQuantity(quantity, baseCoin.scalar);
|
|
73
78
|
return tx.moveCall({
|
|
74
79
|
target: `${this.#config.MARGIN_PACKAGE_ID}::tpsl::new_pending_limit_order`,
|
|
75
80
|
arguments: [
|
|
@@ -102,7 +107,7 @@ export class MarginTPSLContract {
|
|
|
102
107
|
} = params;
|
|
103
108
|
const pool = this.#config.getPool(poolKey);
|
|
104
109
|
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
105
|
-
const inputQuantity =
|
|
110
|
+
const inputQuantity = convertQuantity(quantity, baseCoin.scalar);
|
|
106
111
|
return tx.moveCall({
|
|
107
112
|
target: `${this.#config.MARGIN_PACKAGE_ID}::tpsl::new_pending_market_order`,
|
|
108
113
|
arguments: [
|
|
@@ -195,20 +200,20 @@ export class MarginTPSLContract {
|
|
|
195
200
|
/**
|
|
196
201
|
* @description Execute conditional orders that have been triggered
|
|
197
202
|
* This is a permissionless function that can be called by anyone
|
|
198
|
-
* @param {string}
|
|
203
|
+
* @param {string} managerAddress The address of the margin manager
|
|
204
|
+
* @param {string} poolKey The key to identify the pool (e.g., 'HANEUL_USDC')
|
|
199
205
|
* @param {number} maxOrdersToExecute Maximum number of orders to execute in this call
|
|
200
206
|
* @returns A function that takes a Transaction object
|
|
201
207
|
*/
|
|
202
208
|
executeConditionalOrders =
|
|
203
|
-
(
|
|
204
|
-
const
|
|
205
|
-
const pool = this.#config.getPool(manager.poolKey);
|
|
209
|
+
(managerAddress: string, poolKey: string, maxOrdersToExecute: number) => (tx: Transaction) => {
|
|
210
|
+
const pool = this.#config.getPool(poolKey);
|
|
206
211
|
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
207
212
|
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
208
213
|
return tx.moveCall({
|
|
209
214
|
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_manager::execute_conditional_orders`,
|
|
210
215
|
arguments: [
|
|
211
|
-
tx.object(
|
|
216
|
+
tx.object(managerAddress),
|
|
212
217
|
tx.object(pool.address),
|
|
213
218
|
tx.object(baseCoin.priceInfoObjectId!),
|
|
214
219
|
tx.object(quoteCoin.priceInfoObjectId!),
|