@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
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { PRICE_INFO_OBJECT_MAX_AGE_MS } from "../utils/config.mjs";
|
|
2
|
+
import { PriceInfoObject } from "../contracts/pyth/price_info.mjs";
|
|
3
|
+
import { HaneulPriceServiceConnection, HaneulPythClient } from "../pyth/pyth.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/queries/priceFeedQueries.ts
|
|
6
|
+
var PriceFeedQueries = class {
|
|
7
|
+
#ctx;
|
|
8
|
+
constructor(ctx) {
|
|
9
|
+
this.#ctx = ctx;
|
|
10
|
+
}
|
|
11
|
+
async getPriceInfoObject(tx, coinKey) {
|
|
12
|
+
this.#ctx.config.requirePyth();
|
|
13
|
+
const currentTime = Date.now();
|
|
14
|
+
const priceInfoObjectAge = await this.getPriceInfoObjectAge(coinKey);
|
|
15
|
+
if (priceInfoObjectAge && currentTime - priceInfoObjectAge * 1e3 < PRICE_INFO_OBJECT_MAX_AGE_MS) return await this.#ctx.config.getCoin(coinKey).priceInfoObjectId;
|
|
16
|
+
const connection = new HaneulPriceServiceConnection(this.#ctx.config.network === "testnet" ? "https://hermes-beta.pyth.network" : "https://hermes.pyth.network");
|
|
17
|
+
const priceIDs = [this.#ctx.config.getCoin(coinKey).feed];
|
|
18
|
+
const priceUpdateData = await connection.getPriceFeedsUpdateData(priceIDs);
|
|
19
|
+
const wormholeStateId = this.#ctx.config.pyth.wormholeStateId;
|
|
20
|
+
const pythStateId = this.#ctx.config.pyth.pythStateId;
|
|
21
|
+
return (await new HaneulPythClient(this.#ctx.client, pythStateId, wormholeStateId).updatePriceFeeds(tx, priceUpdateData, priceIDs))[0];
|
|
22
|
+
}
|
|
23
|
+
async getPriceInfoObjects(tx, coinKeys) {
|
|
24
|
+
this.#ctx.config.requirePyth();
|
|
25
|
+
if (coinKeys.length === 0) return {};
|
|
26
|
+
const currentTime = Date.now();
|
|
27
|
+
const coinToObjectId = {};
|
|
28
|
+
const objectIds = [];
|
|
29
|
+
for (const coinKey of coinKeys) {
|
|
30
|
+
const priceInfoObjectId = this.#ctx.config.getCoin(coinKey).priceInfoObjectId;
|
|
31
|
+
coinToObjectId[coinKey] = priceInfoObjectId;
|
|
32
|
+
objectIds.push(priceInfoObjectId);
|
|
33
|
+
}
|
|
34
|
+
const res = await this.#ctx.client.core.getObjects({
|
|
35
|
+
objectIds,
|
|
36
|
+
include: { content: true }
|
|
37
|
+
});
|
|
38
|
+
const staleCoinKeys = [];
|
|
39
|
+
const result = {};
|
|
40
|
+
for (let i = 0; i < coinKeys.length; i++) {
|
|
41
|
+
const coinKey = coinKeys[i];
|
|
42
|
+
const obj = res.objects[i];
|
|
43
|
+
if (obj instanceof Error || !obj?.content) {
|
|
44
|
+
staleCoinKeys.push(coinKey);
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const priceInfoObject = PriceInfoObject.parse(obj.content);
|
|
48
|
+
if (currentTime - Number(priceInfoObject.price_info.arrival_time) * 1e3 >= PRICE_INFO_OBJECT_MAX_AGE_MS) staleCoinKeys.push(coinKey);
|
|
49
|
+
else result[coinKey] = coinToObjectId[coinKey];
|
|
50
|
+
}
|
|
51
|
+
if (staleCoinKeys.length === 0) return result;
|
|
52
|
+
const staleFeedIds = [];
|
|
53
|
+
const feedIdToCoinKey = {};
|
|
54
|
+
for (const coinKey of staleCoinKeys) {
|
|
55
|
+
const feedId = this.#ctx.config.getCoin(coinKey).feed;
|
|
56
|
+
staleFeedIds.push(feedId);
|
|
57
|
+
feedIdToCoinKey[feedId] = coinKey;
|
|
58
|
+
}
|
|
59
|
+
const priceUpdateData = await new HaneulPriceServiceConnection(this.#ctx.config.network === "testnet" ? "https://hermes-beta.pyth.network" : "https://hermes.pyth.network").getPriceFeedsUpdateData(staleFeedIds);
|
|
60
|
+
const wormholeStateId = this.#ctx.config.pyth.wormholeStateId;
|
|
61
|
+
const pythStateId = this.#ctx.config.pyth.pythStateId;
|
|
62
|
+
const updatedObjectIds = await new HaneulPythClient(this.#ctx.client, pythStateId, wormholeStateId).updatePriceFeeds(tx, priceUpdateData, staleFeedIds);
|
|
63
|
+
for (let i = 0; i < staleFeedIds.length; i++) {
|
|
64
|
+
const coinKey = feedIdToCoinKey[staleFeedIds[i]];
|
|
65
|
+
result[coinKey] = updatedObjectIds[i];
|
|
66
|
+
}
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
69
|
+
async getPriceInfoObjectAge(coinKey) {
|
|
70
|
+
const priceInfoObjectId = this.#ctx.config.getCoin(coinKey).priceInfoObjectId;
|
|
71
|
+
const res = await this.#ctx.client.core.getObject({
|
|
72
|
+
objectId: priceInfoObjectId,
|
|
73
|
+
include: { content: true }
|
|
74
|
+
});
|
|
75
|
+
if (!res.object?.content) throw new Error(`Price info object not found for ${coinKey}`);
|
|
76
|
+
const priceInfoObject = PriceInfoObject.parse(res.object.content);
|
|
77
|
+
return Number(priceInfoObject.price_info.arrival_time);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
//#endregion
|
|
82
|
+
export { PriceFeedQueries };
|
|
83
|
+
//# sourceMappingURL=priceFeedQueries.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"priceFeedQueries.mjs","names":["#ctx"],"sources":["../../src/queries/priceFeedQueries.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Transaction } from '@haneullabs/haneul/transactions';\n\nimport { PriceInfoObject } from '../contracts/pyth/price_info.js';\nimport { HaneulPriceServiceConnection, HaneulPythClient } from '../pyth/pyth.js';\nimport { PRICE_INFO_OBJECT_MAX_AGE_MS } from '../utils/config.js';\nimport type { QueryContext } from './context.js';\n\nexport class PriceFeedQueries {\n\t#ctx: QueryContext;\n\n\tconstructor(ctx: QueryContext) {\n\t\tthis.#ctx = ctx;\n\t}\n\n\tasync getPriceInfoObject(tx: Transaction, coinKey: string): Promise<string> {\n\t\tthis.#ctx.config.requirePyth();\n\t\tconst currentTime = Date.now();\n\t\tconst priceInfoObjectAge = await this.getPriceInfoObjectAge(coinKey);\n\t\tif (\n\t\t\tpriceInfoObjectAge &&\n\t\t\tcurrentTime - priceInfoObjectAge * 1000 < PRICE_INFO_OBJECT_MAX_AGE_MS\n\t\t) {\n\t\t\treturn await this.#ctx.config.getCoin(coinKey).priceInfoObjectId!;\n\t\t}\n\n\t\tconst endpoint =\n\t\t\tthis.#ctx.config.network === 'testnet'\n\t\t\t\t? 'https://hermes-beta.pyth.network'\n\t\t\t\t: 'https://hermes.pyth.network';\n\t\tconst connection = new HaneulPriceServiceConnection(endpoint);\n\n\t\tconst priceIDs = [this.#ctx.config.getCoin(coinKey).feed!];\n\n\t\tconst priceUpdateData = await connection.getPriceFeedsUpdateData(priceIDs);\n\n\t\tconst wormholeStateId = this.#ctx.config.pyth.wormholeStateId;\n\t\tconst pythStateId = this.#ctx.config.pyth.pythStateId;\n\n\t\tconst client = new HaneulPythClient(this.#ctx.client, pythStateId, wormholeStateId);\n\n\t\treturn (await client.updatePriceFeeds(tx, priceUpdateData, priceIDs))[0];\n\t}\n\n\tasync getPriceInfoObjects(tx: Transaction, coinKeys: string[]): Promise<Record<string, string>> {\n\t\tthis.#ctx.config.requirePyth();\n\t\tif (coinKeys.length === 0) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst currentTime = Date.now();\n\n\t\tconst coinToObjectId: Record<string, string> = {};\n\t\tconst objectIds: string[] = [];\n\t\tfor (const coinKey of coinKeys) {\n\t\t\tconst priceInfoObjectId = this.#ctx.config.getCoin(coinKey).priceInfoObjectId!;\n\t\t\tcoinToObjectId[coinKey] = priceInfoObjectId;\n\t\t\tobjectIds.push(priceInfoObjectId);\n\t\t}\n\n\t\tconst res = await this.#ctx.client.core.getObjects({\n\t\t\tobjectIds,\n\t\t\tinclude: { content: true },\n\t\t});\n\n\t\tconst staleCoinKeys: string[] = [];\n\t\tconst result: Record<string, string> = {};\n\n\t\tfor (let i = 0; i < coinKeys.length; i++) {\n\t\t\tconst coinKey = coinKeys[i];\n\t\t\tconst obj = res.objects[i];\n\n\t\t\tif (obj instanceof Error || !obj?.content) {\n\t\t\t\tstaleCoinKeys.push(coinKey);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst priceInfoObject = PriceInfoObject.parse(obj.content);\n\t\t\tconst arrivalTime = Number(priceInfoObject.price_info.arrival_time);\n\t\t\tconst age = currentTime - arrivalTime * 1000;\n\n\t\t\tif (age >= PRICE_INFO_OBJECT_MAX_AGE_MS) {\n\t\t\t\tstaleCoinKeys.push(coinKey);\n\t\t\t} else {\n\t\t\t\tresult[coinKey] = coinToObjectId[coinKey];\n\t\t\t}\n\t\t}\n\n\t\tif (staleCoinKeys.length === 0) {\n\t\t\treturn result;\n\t\t}\n\n\t\tconst staleFeedIds: string[] = [];\n\t\tconst feedIdToCoinKey: Record<string, string> = {};\n\t\tfor (const coinKey of staleCoinKeys) {\n\t\t\tconst feedId = this.#ctx.config.getCoin(coinKey).feed!;\n\t\t\tstaleFeedIds.push(feedId);\n\t\t\tfeedIdToCoinKey[feedId] = coinKey;\n\t\t}\n\n\t\tconst endpoint =\n\t\t\tthis.#ctx.config.network === 'testnet'\n\t\t\t\t? 'https://hermes-beta.pyth.network'\n\t\t\t\t: 'https://hermes.pyth.network';\n\t\tconst connection = new HaneulPriceServiceConnection(endpoint);\n\n\t\tconst priceUpdateData = await connection.getPriceFeedsUpdateData(staleFeedIds);\n\n\t\tconst wormholeStateId = this.#ctx.config.pyth.wormholeStateId;\n\t\tconst pythStateId = this.#ctx.config.pyth.pythStateId;\n\t\tconst pythClient = new HaneulPythClient(this.#ctx.client, pythStateId, wormholeStateId);\n\n\t\tconst updatedObjectIds = await pythClient.updatePriceFeeds(tx, priceUpdateData, staleFeedIds);\n\n\t\tfor (let i = 0; i < staleFeedIds.length; i++) {\n\t\t\tconst coinKey = feedIdToCoinKey[staleFeedIds[i]];\n\t\t\tresult[coinKey] = updatedObjectIds[i];\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tasync getPriceInfoObjectAge(coinKey: string): Promise<number> {\n\t\tconst priceInfoObjectId = this.#ctx.config.getCoin(coinKey).priceInfoObjectId!;\n\t\tconst res = await this.#ctx.client.core.getObject({\n\t\t\tobjectId: priceInfoObjectId,\n\t\t\tinclude: {\n\t\t\t\tcontent: true,\n\t\t\t},\n\t\t});\n\n\t\tif (!res.object?.content) {\n\t\t\tthrow new Error(`Price info object not found for ${coinKey}`);\n\t\t}\n\n\t\tconst priceInfoObject = PriceInfoObject.parse(res.object.content);\n\t\treturn Number(priceInfoObject.price_info.arrival_time);\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { DEEP_SCALAR } from "../utils/config.mjs";
|
|
2
|
+
import { bcs } from "@haneullabs/haneul/bcs";
|
|
3
|
+
import { Transaction } from "@haneullabs/haneul/transactions";
|
|
4
|
+
|
|
5
|
+
//#region src/queries/quantityQueries.ts
|
|
6
|
+
var QuantityQueries = class {
|
|
7
|
+
#ctx;
|
|
8
|
+
constructor(ctx) {
|
|
9
|
+
this.#ctx = ctx;
|
|
10
|
+
}
|
|
11
|
+
async getQuoteQuantityOut(poolKey, baseQuantity) {
|
|
12
|
+
const tx = new Transaction();
|
|
13
|
+
const pool = this.#ctx.config.getPool(poolKey);
|
|
14
|
+
const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
|
|
15
|
+
const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
|
|
16
|
+
tx.add(this.#ctx.deepBook.getQuoteQuantityOut(poolKey, baseQuantity));
|
|
17
|
+
const res = await this.#ctx.client.core.simulateTransaction({
|
|
18
|
+
transaction: tx,
|
|
19
|
+
include: {
|
|
20
|
+
commandResults: true,
|
|
21
|
+
effects: true
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
const baseOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
|
|
25
|
+
const quoteOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
|
|
26
|
+
const deepRequired = Number(bcs.U64.parse(res.commandResults[0].returnValues[2].bcs));
|
|
27
|
+
return {
|
|
28
|
+
baseQuantity: Number(baseQuantity),
|
|
29
|
+
baseOut: Number((baseOut / baseScalar).toFixed(9)),
|
|
30
|
+
quoteOut: Number((quoteOut / quoteScalar).toFixed(9)),
|
|
31
|
+
deepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9))
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
async getBaseQuantityOut(poolKey, quoteQuantity) {
|
|
35
|
+
const tx = new Transaction();
|
|
36
|
+
const pool = this.#ctx.config.getPool(poolKey);
|
|
37
|
+
const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
|
|
38
|
+
const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
|
|
39
|
+
tx.add(this.#ctx.deepBook.getBaseQuantityOut(poolKey, quoteQuantity));
|
|
40
|
+
const res = await this.#ctx.client.core.simulateTransaction({
|
|
41
|
+
transaction: tx,
|
|
42
|
+
include: {
|
|
43
|
+
commandResults: true,
|
|
44
|
+
effects: true
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
const baseOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
|
|
48
|
+
const quoteOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
|
|
49
|
+
const deepRequired = Number(bcs.U64.parse(res.commandResults[0].returnValues[2].bcs));
|
|
50
|
+
return {
|
|
51
|
+
quoteQuantity: Number(quoteQuantity),
|
|
52
|
+
baseOut: Number((baseOut / baseScalar).toFixed(9)),
|
|
53
|
+
quoteOut: Number((quoteOut / quoteScalar).toFixed(9)),
|
|
54
|
+
deepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9))
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
async getQuantityOut(poolKey, baseQuantity, quoteQuantity) {
|
|
58
|
+
const tx = new Transaction();
|
|
59
|
+
const pool = this.#ctx.config.getPool(poolKey);
|
|
60
|
+
const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
|
|
61
|
+
const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
|
|
62
|
+
tx.add(this.#ctx.deepBook.getQuantityOut(poolKey, baseQuantity, quoteQuantity));
|
|
63
|
+
const res = await this.#ctx.client.core.simulateTransaction({
|
|
64
|
+
transaction: tx,
|
|
65
|
+
include: {
|
|
66
|
+
commandResults: true,
|
|
67
|
+
effects: true
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
const baseOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
|
|
71
|
+
const quoteOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
|
|
72
|
+
const deepRequired = Number(bcs.U64.parse(res.commandResults[0].returnValues[2].bcs));
|
|
73
|
+
return {
|
|
74
|
+
baseQuantity: Number(baseQuantity),
|
|
75
|
+
quoteQuantity: Number(quoteQuantity),
|
|
76
|
+
baseOut: Number((baseOut / baseScalar).toFixed(9)),
|
|
77
|
+
quoteOut: Number((quoteOut / quoteScalar).toFixed(9)),
|
|
78
|
+
deepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9))
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
async getQuoteQuantityOutInputFee(poolKey, baseQuantity) {
|
|
82
|
+
const tx = new Transaction();
|
|
83
|
+
const pool = this.#ctx.config.getPool(poolKey);
|
|
84
|
+
const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
|
|
85
|
+
const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
|
|
86
|
+
tx.add(this.#ctx.deepBook.getQuoteQuantityOutInputFee(poolKey, baseQuantity));
|
|
87
|
+
const res = await this.#ctx.client.core.simulateTransaction({
|
|
88
|
+
transaction: tx,
|
|
89
|
+
include: {
|
|
90
|
+
commandResults: true,
|
|
91
|
+
effects: true
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
const baseOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
|
|
95
|
+
const quoteOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
|
|
96
|
+
const deepRequired = Number(bcs.U64.parse(res.commandResults[0].returnValues[2].bcs));
|
|
97
|
+
return {
|
|
98
|
+
baseQuantity: Number(baseQuantity),
|
|
99
|
+
baseOut: Number((baseOut / baseScalar).toFixed(9)),
|
|
100
|
+
quoteOut: Number((quoteOut / quoteScalar).toFixed(9)),
|
|
101
|
+
deepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9))
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
async getBaseQuantityOutInputFee(poolKey, quoteQuantity) {
|
|
105
|
+
const tx = new Transaction();
|
|
106
|
+
const pool = this.#ctx.config.getPool(poolKey);
|
|
107
|
+
const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
|
|
108
|
+
const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
|
|
109
|
+
tx.add(this.#ctx.deepBook.getBaseQuantityOutInputFee(poolKey, quoteQuantity));
|
|
110
|
+
const res = await this.#ctx.client.core.simulateTransaction({
|
|
111
|
+
transaction: tx,
|
|
112
|
+
include: {
|
|
113
|
+
commandResults: true,
|
|
114
|
+
effects: true
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
const baseOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
|
|
118
|
+
const quoteOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
|
|
119
|
+
const deepRequired = Number(bcs.U64.parse(res.commandResults[0].returnValues[2].bcs));
|
|
120
|
+
return {
|
|
121
|
+
quoteQuantity: Number(quoteQuantity),
|
|
122
|
+
baseOut: Number((baseOut / baseScalar).toFixed(9)),
|
|
123
|
+
quoteOut: Number((quoteOut / quoteScalar).toFixed(9)),
|
|
124
|
+
deepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9))
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
async getQuantityOutInputFee(poolKey, baseQuantity, quoteQuantity) {
|
|
128
|
+
const tx = new Transaction();
|
|
129
|
+
const pool = this.#ctx.config.getPool(poolKey);
|
|
130
|
+
const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
|
|
131
|
+
const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
|
|
132
|
+
tx.add(this.#ctx.deepBook.getQuantityOutInputFee(poolKey, baseQuantity, quoteQuantity));
|
|
133
|
+
const res = await this.#ctx.client.core.simulateTransaction({
|
|
134
|
+
transaction: tx,
|
|
135
|
+
include: {
|
|
136
|
+
commandResults: true,
|
|
137
|
+
effects: true
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
const baseOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
|
|
141
|
+
const quoteOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
|
|
142
|
+
const deepRequired = Number(bcs.U64.parse(res.commandResults[0].returnValues[2].bcs));
|
|
143
|
+
return {
|
|
144
|
+
baseQuantity: Number(baseQuantity),
|
|
145
|
+
quoteQuantity: Number(quoteQuantity),
|
|
146
|
+
baseOut: Number((baseOut / baseScalar).toFixed(9)),
|
|
147
|
+
quoteOut: Number((quoteOut / quoteScalar).toFixed(9)),
|
|
148
|
+
deepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9))
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
async getBaseQuantityIn(poolKey, targetQuoteQuantity, payWithDeep) {
|
|
152
|
+
const tx = new Transaction();
|
|
153
|
+
const pool = this.#ctx.config.getPool(poolKey);
|
|
154
|
+
const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
|
|
155
|
+
const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
|
|
156
|
+
tx.add(this.#ctx.deepBook.getBaseQuantityIn(poolKey, targetQuoteQuantity, payWithDeep));
|
|
157
|
+
const res = await this.#ctx.client.core.simulateTransaction({
|
|
158
|
+
transaction: tx,
|
|
159
|
+
include: {
|
|
160
|
+
commandResults: true,
|
|
161
|
+
effects: true
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
const baseIn = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
|
|
165
|
+
const quoteOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
|
|
166
|
+
const deepRequired = Number(bcs.U64.parse(res.commandResults[0].returnValues[2].bcs));
|
|
167
|
+
return {
|
|
168
|
+
baseIn: Number((baseIn / baseScalar).toFixed(9)),
|
|
169
|
+
quoteOut: Number((quoteOut / quoteScalar).toFixed(9)),
|
|
170
|
+
deepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9))
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
async getQuoteQuantityIn(poolKey, targetBaseQuantity, payWithDeep) {
|
|
174
|
+
const tx = new Transaction();
|
|
175
|
+
const pool = this.#ctx.config.getPool(poolKey);
|
|
176
|
+
const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
|
|
177
|
+
const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
|
|
178
|
+
tx.add(this.#ctx.deepBook.getQuoteQuantityIn(poolKey, targetBaseQuantity, payWithDeep));
|
|
179
|
+
const res = await this.#ctx.client.core.simulateTransaction({
|
|
180
|
+
transaction: tx,
|
|
181
|
+
include: {
|
|
182
|
+
commandResults: true,
|
|
183
|
+
effects: true
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
const baseOut = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
|
|
187
|
+
const quoteIn = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
|
|
188
|
+
const deepRequired = Number(bcs.U64.parse(res.commandResults[0].returnValues[2].bcs));
|
|
189
|
+
return {
|
|
190
|
+
baseOut: Number((baseOut / baseScalar).toFixed(9)),
|
|
191
|
+
quoteIn: Number((quoteIn / quoteScalar).toFixed(9)),
|
|
192
|
+
deepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9))
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
async getOrderDeepRequired(poolKey, baseQuantity, price) {
|
|
196
|
+
const tx = new Transaction();
|
|
197
|
+
tx.add(this.#ctx.deepBook.getOrderDeepRequired(poolKey, baseQuantity, price));
|
|
198
|
+
const res = await this.#ctx.client.core.simulateTransaction({
|
|
199
|
+
transaction: tx,
|
|
200
|
+
include: {
|
|
201
|
+
commandResults: true,
|
|
202
|
+
effects: true
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
const deepRequiredTaker = Number(bcs.U64.parse(res.commandResults[0].returnValues[0].bcs));
|
|
206
|
+
const deepRequiredMaker = Number(bcs.U64.parse(res.commandResults[0].returnValues[1].bcs));
|
|
207
|
+
return {
|
|
208
|
+
deepRequiredTaker: Number((deepRequiredTaker / DEEP_SCALAR).toFixed(9)),
|
|
209
|
+
deepRequiredMaker: Number((deepRequiredMaker / DEEP_SCALAR).toFixed(9))
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
//#endregion
|
|
215
|
+
export { QuantityQueries };
|
|
216
|
+
//# sourceMappingURL=quantityQueries.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quantityQueries.mjs","names":["#ctx"],"sources":["../../src/queries/quantityQueries.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@haneullabs/haneul/bcs';\nimport { Transaction } from '@haneullabs/haneul/transactions';\n\nimport type {\n\tBaseQuantityIn,\n\tBaseQuantityOut,\n\tOrderDeepRequiredResult,\n\tQuantityOut,\n\tQuoteQuantityIn,\n\tQuoteQuantityOut,\n} from '../types/index.js';\nimport { DEEP_SCALAR } from '../utils/config.js';\nimport type { QueryContext } from './context.js';\n\nexport class QuantityQueries {\n\t#ctx: QueryContext;\n\n\tconstructor(ctx: QueryContext) {\n\t\tthis.#ctx = ctx;\n\t}\n\n\tasync getQuoteQuantityOut(\n\t\tpoolKey: string,\n\t\tbaseQuantity: number | bigint,\n\t): Promise<QuoteQuantityOut> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getQuoteQuantityOut(poolKey, baseQuantity));\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst quoteOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\t\tconst deepRequired = Number(bcs.U64.parse(res.commandResults![0].returnValues[2].bcs));\n\n\t\treturn {\n\t\t\tbaseQuantity: Number(baseQuantity),\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\tasync getBaseQuantityOut(\n\t\tpoolKey: string,\n\t\tquoteQuantity: number | bigint,\n\t): Promise<BaseQuantityOut> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getBaseQuantityOut(poolKey, quoteQuantity));\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst quoteOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\t\tconst deepRequired = Number(bcs.U64.parse(res.commandResults![0].returnValues[2].bcs));\n\n\t\treturn {\n\t\t\tquoteQuantity: Number(quoteQuantity),\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\tasync getQuantityOut(\n\t\tpoolKey: string,\n\t\tbaseQuantity: number | bigint,\n\t\tquoteQuantity: number | bigint,\n\t): Promise<QuantityOut> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getQuantityOut(poolKey, baseQuantity, quoteQuantity));\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst quoteOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\t\tconst deepRequired = Number(bcs.U64.parse(res.commandResults![0].returnValues[2].bcs));\n\n\t\treturn {\n\t\t\tbaseQuantity: Number(baseQuantity),\n\t\t\tquoteQuantity: Number(quoteQuantity),\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\tasync getQuoteQuantityOutInputFee(\n\t\tpoolKey: string,\n\t\tbaseQuantity: number | bigint,\n\t): Promise<QuoteQuantityOut> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getQuoteQuantityOutInputFee(poolKey, baseQuantity));\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst quoteOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\t\tconst deepRequired = Number(bcs.U64.parse(res.commandResults![0].returnValues[2].bcs));\n\n\t\treturn {\n\t\t\tbaseQuantity: Number(baseQuantity),\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\tasync getBaseQuantityOutInputFee(\n\t\tpoolKey: string,\n\t\tquoteQuantity: number | bigint,\n\t): Promise<BaseQuantityOut> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getBaseQuantityOutInputFee(poolKey, quoteQuantity));\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst quoteOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\t\tconst deepRequired = Number(bcs.U64.parse(res.commandResults![0].returnValues[2].bcs));\n\n\t\treturn {\n\t\t\tquoteQuantity: Number(quoteQuantity),\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\tasync getQuantityOutInputFee(\n\t\tpoolKey: string,\n\t\tbaseQuantity: number | bigint,\n\t\tquoteQuantity: number | bigint,\n\t): Promise<QuantityOut> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getQuantityOutInputFee(poolKey, baseQuantity, quoteQuantity));\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst quoteOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\t\tconst deepRequired = Number(bcs.U64.parse(res.commandResults![0].returnValues[2].bcs));\n\n\t\treturn {\n\t\t\tbaseQuantity: Number(baseQuantity),\n\t\t\tquoteQuantity: Number(quoteQuantity),\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\tasync getBaseQuantityIn(\n\t\tpoolKey: string,\n\t\ttargetQuoteQuantity: number | bigint,\n\t\tpayWithDeep: boolean,\n\t): Promise<BaseQuantityIn> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getBaseQuantityIn(poolKey, targetQuoteQuantity, payWithDeep));\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseIn = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst quoteOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\t\tconst deepRequired = Number(bcs.U64.parse(res.commandResults![0].returnValues[2].bcs));\n\n\t\treturn {\n\t\t\tbaseIn: Number((baseIn / baseScalar).toFixed(9)),\n\t\t\tquoteOut: Number((quoteOut / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\tasync getQuoteQuantityIn(\n\t\tpoolKey: string,\n\t\ttargetBaseQuantity: number | bigint,\n\t\tpayWithDeep: boolean,\n\t): Promise<QuoteQuantityIn> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getQuoteQuantityIn(poolKey, targetBaseQuantity, payWithDeep));\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseOut = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst quoteIn = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\t\tconst deepRequired = Number(bcs.U64.parse(res.commandResults![0].returnValues[2].bcs));\n\n\t\treturn {\n\t\t\tbaseOut: Number((baseOut / baseScalar).toFixed(9)),\n\t\t\tquoteIn: Number((quoteIn / quoteScalar).toFixed(9)),\n\t\t\tdeepRequired: Number((deepRequired / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n\n\tasync getOrderDeepRequired(\n\t\tpoolKey: string,\n\t\tbaseQuantity: number | bigint,\n\t\tprice: number | bigint,\n\t): Promise<OrderDeepRequiredResult> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.deepBook.getOrderDeepRequired(poolKey, baseQuantity, price));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst deepRequiredTaker = Number(bcs.U64.parse(res.commandResults![0].returnValues[0].bcs));\n\t\tconst deepRequiredMaker = Number(bcs.U64.parse(res.commandResults![0].returnValues[1].bcs));\n\n\t\treturn {\n\t\t\tdeepRequiredTaker: Number((deepRequiredTaker / DEEP_SCALAR).toFixed(9)),\n\t\t\tdeepRequiredMaker: Number((deepRequiredMaker / DEEP_SCALAR).toFixed(9)),\n\t\t};\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { DEEP_SCALAR, FLOAT_SCALAR } from "../utils/config.mjs";
|
|
2
|
+
import { bcs } from "@haneullabs/haneul/bcs";
|
|
3
|
+
import { Transaction } from "@haneullabs/haneul/transactions";
|
|
4
|
+
import { normalizeHaneulAddress } from "@haneullabs/haneul/utils";
|
|
5
|
+
|
|
6
|
+
//#region src/queries/referralQueries.ts
|
|
7
|
+
var ReferralQueries = class {
|
|
8
|
+
#ctx;
|
|
9
|
+
constructor(ctx) {
|
|
10
|
+
this.#ctx = ctx;
|
|
11
|
+
}
|
|
12
|
+
async balanceManagerReferralOwner(referral) {
|
|
13
|
+
const tx = new Transaction();
|
|
14
|
+
tx.add(this.#ctx.balanceManager.balanceManagerReferralOwner(referral));
|
|
15
|
+
const bytes = (await this.#ctx.client.core.simulateTransaction({
|
|
16
|
+
transaction: tx,
|
|
17
|
+
include: {
|
|
18
|
+
commandResults: true,
|
|
19
|
+
effects: true
|
|
20
|
+
}
|
|
21
|
+
})).commandResults[0].returnValues[0].bcs;
|
|
22
|
+
return bcs.Address.parse(bytes);
|
|
23
|
+
}
|
|
24
|
+
async getPoolReferralBalances(poolKey, referral) {
|
|
25
|
+
const tx = new Transaction();
|
|
26
|
+
const pool = this.#ctx.config.getPool(poolKey);
|
|
27
|
+
const baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;
|
|
28
|
+
const quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;
|
|
29
|
+
tx.add(this.#ctx.deepBook.getPoolReferralBalances(poolKey, referral));
|
|
30
|
+
const res = await this.#ctx.client.core.simulateTransaction({
|
|
31
|
+
transaction: tx,
|
|
32
|
+
include: {
|
|
33
|
+
commandResults: true,
|
|
34
|
+
effects: true
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
const baseBytes = res.commandResults[0].returnValues[0].bcs;
|
|
38
|
+
const quoteBytes = res.commandResults[0].returnValues[1].bcs;
|
|
39
|
+
const deepBytes = res.commandResults[0].returnValues[2].bcs;
|
|
40
|
+
const baseBalance = Number(bcs.U64.parse(baseBytes));
|
|
41
|
+
const quoteBalance = Number(bcs.U64.parse(quoteBytes));
|
|
42
|
+
const deepBalance = Number(bcs.U64.parse(deepBytes));
|
|
43
|
+
return {
|
|
44
|
+
base: baseBalance / baseScalar,
|
|
45
|
+
quote: quoteBalance / quoteScalar,
|
|
46
|
+
deep: deepBalance / DEEP_SCALAR
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
async balanceManagerReferralPoolId(referral) {
|
|
50
|
+
const tx = new Transaction();
|
|
51
|
+
tx.add(this.#ctx.balanceManager.balanceManagerReferralPoolId(referral));
|
|
52
|
+
const bytes = (await this.#ctx.client.core.simulateTransaction({
|
|
53
|
+
transaction: tx,
|
|
54
|
+
include: {
|
|
55
|
+
commandResults: true,
|
|
56
|
+
effects: true
|
|
57
|
+
}
|
|
58
|
+
})).commandResults[0].returnValues[0].bcs;
|
|
59
|
+
return normalizeHaneulAddress(bcs.Address.parse(bytes));
|
|
60
|
+
}
|
|
61
|
+
async poolReferralMultiplier(poolKey, referral) {
|
|
62
|
+
const tx = new Transaction();
|
|
63
|
+
tx.add(this.#ctx.deepBook.poolReferralMultiplier(poolKey, referral));
|
|
64
|
+
const bytes = (await this.#ctx.client.core.simulateTransaction({
|
|
65
|
+
transaction: tx,
|
|
66
|
+
include: {
|
|
67
|
+
commandResults: true,
|
|
68
|
+
effects: true
|
|
69
|
+
}
|
|
70
|
+
})).commandResults[0].returnValues[0].bcs;
|
|
71
|
+
return Number(bcs.U64.parse(bytes)) / FLOAT_SCALAR;
|
|
72
|
+
}
|
|
73
|
+
async getBalanceManagerReferralId(managerKey, poolKey) {
|
|
74
|
+
const tx = new Transaction();
|
|
75
|
+
tx.add(this.#ctx.balanceManager.getBalanceManagerReferralId(managerKey, poolKey));
|
|
76
|
+
const res = await this.#ctx.client.core.simulateTransaction({
|
|
77
|
+
transaction: tx,
|
|
78
|
+
include: {
|
|
79
|
+
commandResults: true,
|
|
80
|
+
effects: true
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
try {
|
|
84
|
+
const bytes = res.commandResults[0].returnValues[0].bcs;
|
|
85
|
+
const optionId = bcs.option(bcs.Address).parse(bytes);
|
|
86
|
+
if (optionId === null) return null;
|
|
87
|
+
return normalizeHaneulAddress(optionId);
|
|
88
|
+
} catch {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
//#endregion
|
|
95
|
+
export { ReferralQueries };
|
|
96
|
+
//# sourceMappingURL=referralQueries.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"referralQueries.mjs","names":["#ctx"],"sources":["../../src/queries/referralQueries.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@haneullabs/haneul/bcs';\nimport { Transaction } from '@haneullabs/haneul/transactions';\nimport { normalizeHaneulAddress } from '@haneullabs/haneul/utils';\n\nimport type { ReferralBalances } from '../types/index.js';\nimport { DEEP_SCALAR, FLOAT_SCALAR } from '../utils/config.js';\nimport type { QueryContext } from './context.js';\n\nexport class ReferralQueries {\n\t#ctx: QueryContext;\n\n\tconstructor(ctx: QueryContext) {\n\t\tthis.#ctx = ctx;\n\t}\n\n\tasync balanceManagerReferralOwner(referral: string): Promise<string> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.balanceManager.balanceManagerReferralOwner(referral));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\treturn bcs.Address.parse(bytes);\n\t}\n\n\tasync getPoolReferralBalances(poolKey: string, referral: string): Promise<ReferralBalances> {\n\t\tconst tx = new Transaction();\n\t\tconst pool = this.#ctx.config.getPool(poolKey);\n\t\tconst baseScalar = this.#ctx.config.getCoin(pool.baseCoin).scalar;\n\t\tconst quoteScalar = this.#ctx.config.getCoin(pool.quoteCoin).scalar;\n\n\t\ttx.add(this.#ctx.deepBook.getPoolReferralBalances(poolKey, referral));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst baseBytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst quoteBytes = res.commandResults![0].returnValues[1].bcs;\n\t\tconst deepBytes = res.commandResults![0].returnValues[2].bcs;\n\n\t\tconst baseBalance = Number(bcs.U64.parse(baseBytes));\n\t\tconst quoteBalance = Number(bcs.U64.parse(quoteBytes));\n\t\tconst deepBalance = Number(bcs.U64.parse(deepBytes));\n\n\t\treturn {\n\t\t\tbase: baseBalance / baseScalar,\n\t\t\tquote: quoteBalance / quoteScalar,\n\t\t\tdeep: deepBalance / DEEP_SCALAR,\n\t\t};\n\t}\n\n\tasync balanceManagerReferralPoolId(referral: string): Promise<string> {\n\t\tconst tx = new Transaction();\n\n\t\ttx.add(this.#ctx.balanceManager.balanceManagerReferralPoolId(referral));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst poolId = bcs.Address.parse(bytes);\n\n\t\treturn normalizeHaneulAddress(poolId);\n\t}\n\n\tasync poolReferralMultiplier(poolKey: string, referral: string): Promise<number> {\n\t\tconst tx = new Transaction();\n\n\t\ttx.add(this.#ctx.deepBook.poolReferralMultiplier(poolKey, referral));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst multiplier = Number(bcs.U64.parse(bytes));\n\n\t\treturn multiplier / FLOAT_SCALAR;\n\t}\n\n\tasync getBalanceManagerReferralId(managerKey: string, poolKey: string): Promise<string | null> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.balanceManager.getBalanceManagerReferralId(managerKey, poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\ttry {\n\t\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\t\tconst optionId = bcs.option(bcs.Address).parse(bytes);\n\t\t\tif (optionId === null) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn normalizeHaneulAddress(optionId);\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;AAWA,IAAa,kBAAb,MAA6B;CAC5B;CAEA,YAAY,KAAmB;AAC9B,QAAKA,MAAO;;CAGb,MAAM,4BAA4B,UAAmC;EACpE,MAAM,KAAK,IAAI,aAAa;AAC5B,KAAG,IAAI,MAAKA,IAAK,eAAe,4BAA4B,SAAS,CAAC;EAOtE,MAAM,SALM,MAAM,MAAKA,IAAK,OAAO,KAAK,oBAAoB;GAC3D,aAAa;GACb,SAAS;IAAE,gBAAgB;IAAM,SAAS;IAAM;GAChD,CAAC,EAEgB,eAAgB,GAAG,aAAa,GAAG;AACrD,SAAO,IAAI,QAAQ,MAAM,MAAM;;CAGhC,MAAM,wBAAwB,SAAiB,UAA6C;EAC3F,MAAM,KAAK,IAAI,aAAa;EAC5B,MAAM,OAAO,MAAKA,IAAK,OAAO,QAAQ,QAAQ;EAC9C,MAAM,aAAa,MAAKA,IAAK,OAAO,QAAQ,KAAK,SAAS,CAAC;EAC3D,MAAM,cAAc,MAAKA,IAAK,OAAO,QAAQ,KAAK,UAAU,CAAC;AAE7D,KAAG,IAAI,MAAKA,IAAK,SAAS,wBAAwB,SAAS,SAAS,CAAC;EAErE,MAAM,MAAM,MAAM,MAAKA,IAAK,OAAO,KAAK,oBAAoB;GAC3D,aAAa;GACb,SAAS;IAAE,gBAAgB;IAAM,SAAS;IAAM;GAChD,CAAC;EAEF,MAAM,YAAY,IAAI,eAAgB,GAAG,aAAa,GAAG;EACzD,MAAM,aAAa,IAAI,eAAgB,GAAG,aAAa,GAAG;EAC1D,MAAM,YAAY,IAAI,eAAgB,GAAG,aAAa,GAAG;EAEzD,MAAM,cAAc,OAAO,IAAI,IAAI,MAAM,UAAU,CAAC;EACpD,MAAM,eAAe,OAAO,IAAI,IAAI,MAAM,WAAW,CAAC;EACtD,MAAM,cAAc,OAAO,IAAI,IAAI,MAAM,UAAU,CAAC;AAEpD,SAAO;GACN,MAAM,cAAc;GACpB,OAAO,eAAe;GACtB,MAAM,cAAc;GACpB;;CAGF,MAAM,6BAA6B,UAAmC;EACrE,MAAM,KAAK,IAAI,aAAa;AAE5B,KAAG,IAAI,MAAKA,IAAK,eAAe,6BAA6B,SAAS,CAAC;EAOvE,MAAM,SALM,MAAM,MAAKA,IAAK,OAAO,KAAK,oBAAoB;GAC3D,aAAa;GACb,SAAS;IAAE,gBAAgB;IAAM,SAAS;IAAM;GAChD,CAAC,EAEgB,eAAgB,GAAG,aAAa,GAAG;AAGrD,SAAO,uBAFQ,IAAI,QAAQ,MAAM,MAAM,CAEF;;CAGtC,MAAM,uBAAuB,SAAiB,UAAmC;EAChF,MAAM,KAAK,IAAI,aAAa;AAE5B,KAAG,IAAI,MAAKA,IAAK,SAAS,uBAAuB,SAAS,SAAS,CAAC;EAOpE,MAAM,SALM,MAAM,MAAKA,IAAK,OAAO,KAAK,oBAAoB;GAC3D,aAAa;GACb,SAAS;IAAE,gBAAgB;IAAM,SAAS;IAAM;GAChD,CAAC,EAEgB,eAAgB,GAAG,aAAa,GAAG;AAGrD,SAFmB,OAAO,IAAI,IAAI,MAAM,MAAM,CAAC,GAE3B;;CAGrB,MAAM,4BAA4B,YAAoB,SAAyC;EAC9F,MAAM,KAAK,IAAI,aAAa;AAC5B,KAAG,IAAI,MAAKA,IAAK,eAAe,4BAA4B,YAAY,QAAQ,CAAC;EAEjF,MAAM,MAAM,MAAM,MAAKA,IAAK,OAAO,KAAK,oBAAoB;GAC3D,aAAa;GACb,SAAS;IAAE,gBAAgB;IAAM,SAAS;IAAM;GAChD,CAAC;AAEF,MAAI;GACH,MAAM,QAAQ,IAAI,eAAgB,GAAG,aAAa,GAAG;GACrD,MAAM,WAAW,IAAI,OAAO,IAAI,QAAQ,CAAC,MAAM,MAAM;AACrD,OAAI,aAAa,KAChB,QAAO;AAER,UAAO,uBAAuB,SAAS;UAChC;AACP,UAAO"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { VecSet } from "../contracts/deepbook/deps/haneul/vec_set.mjs";
|
|
2
|
+
import "../types/bcs.mjs";
|
|
3
|
+
import { FLOAT_SCALAR } from "../utils/config.mjs";
|
|
4
|
+
import { bcs } from "@haneullabs/haneul/bcs";
|
|
5
|
+
import { Transaction } from "@haneullabs/haneul/transactions";
|
|
6
|
+
import { normalizeHaneulAddress } from "@haneullabs/haneul/utils";
|
|
7
|
+
|
|
8
|
+
//#region src/queries/registryQueries.ts
|
|
9
|
+
var RegistryQueries = class {
|
|
10
|
+
#ctx;
|
|
11
|
+
constructor(ctx) {
|
|
12
|
+
this.#ctx = ctx;
|
|
13
|
+
}
|
|
14
|
+
async isPoolEnabledForMargin(poolKey) {
|
|
15
|
+
const tx = new Transaction();
|
|
16
|
+
tx.add(this.#ctx.marginRegistry.poolEnabled(poolKey));
|
|
17
|
+
const bytes = (await this.#ctx.client.core.simulateTransaction({
|
|
18
|
+
transaction: tx,
|
|
19
|
+
include: {
|
|
20
|
+
commandResults: true,
|
|
21
|
+
effects: true
|
|
22
|
+
}
|
|
23
|
+
})).commandResults[0].returnValues[0].bcs;
|
|
24
|
+
return bcs.Bool.parse(bytes);
|
|
25
|
+
}
|
|
26
|
+
async getMarginManagerIdsForOwner(owner) {
|
|
27
|
+
const tx = new Transaction();
|
|
28
|
+
tx.add(this.#ctx.marginRegistry.getMarginManagerIds(owner));
|
|
29
|
+
const bytes = (await this.#ctx.client.core.simulateTransaction({
|
|
30
|
+
transaction: tx,
|
|
31
|
+
include: {
|
|
32
|
+
commandResults: true,
|
|
33
|
+
effects: true
|
|
34
|
+
}
|
|
35
|
+
})).commandResults[0].returnValues[0].bcs;
|
|
36
|
+
return VecSet(bcs.Address).parse(bytes).contents.map((id) => normalizeHaneulAddress(id));
|
|
37
|
+
}
|
|
38
|
+
async getBaseMarginPoolId(poolKey) {
|
|
39
|
+
const tx = new Transaction();
|
|
40
|
+
tx.add(this.#ctx.marginRegistry.baseMarginPoolId(poolKey));
|
|
41
|
+
const bytes = (await this.#ctx.client.core.simulateTransaction({
|
|
42
|
+
transaction: tx,
|
|
43
|
+
include: {
|
|
44
|
+
commandResults: true,
|
|
45
|
+
effects: true
|
|
46
|
+
}
|
|
47
|
+
})).commandResults[0].returnValues[0].bcs;
|
|
48
|
+
return "0x" + bcs.Address.parse(bytes);
|
|
49
|
+
}
|
|
50
|
+
async getQuoteMarginPoolId(poolKey) {
|
|
51
|
+
const tx = new Transaction();
|
|
52
|
+
tx.add(this.#ctx.marginRegistry.quoteMarginPoolId(poolKey));
|
|
53
|
+
const bytes = (await this.#ctx.client.core.simulateTransaction({
|
|
54
|
+
transaction: tx,
|
|
55
|
+
include: {
|
|
56
|
+
commandResults: true,
|
|
57
|
+
effects: true
|
|
58
|
+
}
|
|
59
|
+
})).commandResults[0].returnValues[0].bcs;
|
|
60
|
+
return "0x" + bcs.Address.parse(bytes);
|
|
61
|
+
}
|
|
62
|
+
async getMinWithdrawRiskRatio(poolKey) {
|
|
63
|
+
const tx = new Transaction();
|
|
64
|
+
tx.add(this.#ctx.marginRegistry.minWithdrawRiskRatio(poolKey));
|
|
65
|
+
const bytes = (await this.#ctx.client.core.simulateTransaction({
|
|
66
|
+
transaction: tx,
|
|
67
|
+
include: {
|
|
68
|
+
commandResults: true,
|
|
69
|
+
effects: true
|
|
70
|
+
}
|
|
71
|
+
})).commandResults[0].returnValues[0].bcs;
|
|
72
|
+
return Number(bcs.U64.parse(bytes)) / FLOAT_SCALAR;
|
|
73
|
+
}
|
|
74
|
+
async getMinBorrowRiskRatio(poolKey) {
|
|
75
|
+
const tx = new Transaction();
|
|
76
|
+
tx.add(this.#ctx.marginRegistry.minBorrowRiskRatio(poolKey));
|
|
77
|
+
const bytes = (await this.#ctx.client.core.simulateTransaction({
|
|
78
|
+
transaction: tx,
|
|
79
|
+
include: {
|
|
80
|
+
commandResults: true,
|
|
81
|
+
effects: true
|
|
82
|
+
}
|
|
83
|
+
})).commandResults[0].returnValues[0].bcs;
|
|
84
|
+
return Number(bcs.U64.parse(bytes)) / FLOAT_SCALAR;
|
|
85
|
+
}
|
|
86
|
+
async getLiquidationRiskRatio(poolKey) {
|
|
87
|
+
const tx = new Transaction();
|
|
88
|
+
tx.add(this.#ctx.marginRegistry.liquidationRiskRatio(poolKey));
|
|
89
|
+
const bytes = (await this.#ctx.client.core.simulateTransaction({
|
|
90
|
+
transaction: tx,
|
|
91
|
+
include: {
|
|
92
|
+
commandResults: true,
|
|
93
|
+
effects: true
|
|
94
|
+
}
|
|
95
|
+
})).commandResults[0].returnValues[0].bcs;
|
|
96
|
+
return Number(bcs.U64.parse(bytes)) / FLOAT_SCALAR;
|
|
97
|
+
}
|
|
98
|
+
async getTargetLiquidationRiskRatio(poolKey) {
|
|
99
|
+
const tx = new Transaction();
|
|
100
|
+
tx.add(this.#ctx.marginRegistry.targetLiquidationRiskRatio(poolKey));
|
|
101
|
+
const bytes = (await this.#ctx.client.core.simulateTransaction({
|
|
102
|
+
transaction: tx,
|
|
103
|
+
include: {
|
|
104
|
+
commandResults: true,
|
|
105
|
+
effects: true
|
|
106
|
+
}
|
|
107
|
+
})).commandResults[0].returnValues[0].bcs;
|
|
108
|
+
return Number(bcs.U64.parse(bytes)) / FLOAT_SCALAR;
|
|
109
|
+
}
|
|
110
|
+
async getUserLiquidationReward(poolKey) {
|
|
111
|
+
const tx = new Transaction();
|
|
112
|
+
tx.add(this.#ctx.marginRegistry.userLiquidationReward(poolKey));
|
|
113
|
+
const bytes = (await this.#ctx.client.core.simulateTransaction({
|
|
114
|
+
transaction: tx,
|
|
115
|
+
include: {
|
|
116
|
+
commandResults: true,
|
|
117
|
+
effects: true
|
|
118
|
+
}
|
|
119
|
+
})).commandResults[0].returnValues[0].bcs;
|
|
120
|
+
return Number(bcs.U64.parse(bytes)) / FLOAT_SCALAR;
|
|
121
|
+
}
|
|
122
|
+
async getPoolLiquidationReward(poolKey) {
|
|
123
|
+
const tx = new Transaction();
|
|
124
|
+
tx.add(this.#ctx.marginRegistry.poolLiquidationReward(poolKey));
|
|
125
|
+
const bytes = (await this.#ctx.client.core.simulateTransaction({
|
|
126
|
+
transaction: tx,
|
|
127
|
+
include: {
|
|
128
|
+
commandResults: true,
|
|
129
|
+
effects: true
|
|
130
|
+
}
|
|
131
|
+
})).commandResults[0].returnValues[0].bcs;
|
|
132
|
+
return Number(bcs.U64.parse(bytes)) / FLOAT_SCALAR;
|
|
133
|
+
}
|
|
134
|
+
async getAllowedMaintainers() {
|
|
135
|
+
const tx = new Transaction();
|
|
136
|
+
tx.add(this.#ctx.marginRegistry.allowedMaintainers());
|
|
137
|
+
const bytes = (await this.#ctx.client.core.simulateTransaction({
|
|
138
|
+
transaction: tx,
|
|
139
|
+
include: {
|
|
140
|
+
commandResults: true,
|
|
141
|
+
effects: true
|
|
142
|
+
}
|
|
143
|
+
})).commandResults[0].returnValues[0].bcs;
|
|
144
|
+
return VecSet(bcs.Address).parse(bytes).contents.map((id) => normalizeHaneulAddress(id));
|
|
145
|
+
}
|
|
146
|
+
async getAllowedPauseCaps() {
|
|
147
|
+
const tx = new Transaction();
|
|
148
|
+
tx.add(this.#ctx.marginRegistry.allowedPauseCaps());
|
|
149
|
+
const bytes = (await this.#ctx.client.core.simulateTransaction({
|
|
150
|
+
transaction: tx,
|
|
151
|
+
include: {
|
|
152
|
+
commandResults: true,
|
|
153
|
+
effects: true
|
|
154
|
+
}
|
|
155
|
+
})).commandResults[0].returnValues[0].bcs;
|
|
156
|
+
return VecSet(bcs.Address).parse(bytes).contents.map((id) => normalizeHaneulAddress(id));
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
//#endregion
|
|
161
|
+
export { RegistryQueries };
|
|
162
|
+
//# sourceMappingURL=registryQueries.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registryQueries.mjs","names":["#ctx"],"sources":["../../src/queries/registryQueries.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@haneullabs/haneul/bcs';\nimport { Transaction } from '@haneullabs/haneul/transactions';\nimport { normalizeHaneulAddress } from '@haneullabs/haneul/utils';\n\nimport { VecSet } from '../types/bcs.js';\nimport { FLOAT_SCALAR } from '../utils/config.js';\nimport type { QueryContext } from './context.js';\n\nexport class RegistryQueries {\n\t#ctx: QueryContext;\n\n\tconstructor(ctx: QueryContext) {\n\t\tthis.#ctx = ctx;\n\t}\n\n\tasync isPoolEnabledForMargin(poolKey: string): Promise<boolean> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.poolEnabled(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\treturn bcs.Bool.parse(bytes);\n\t}\n\n\tasync getMarginManagerIdsForOwner(owner: string): Promise<string[]> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.getMarginManagerIds(owner));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst vecSet = VecSet(bcs.Address).parse(bytes);\n\t\treturn vecSet.contents.map((id) => normalizeHaneulAddress(id));\n\t}\n\n\tasync getBaseMarginPoolId(poolKey: string): Promise<string> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.baseMarginPoolId(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst id = bcs.Address.parse(bytes);\n\t\treturn '0x' + id;\n\t}\n\n\tasync getQuoteMarginPoolId(poolKey: string): Promise<string> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.quoteMarginPoolId(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst id = bcs.Address.parse(bytes);\n\t\treturn '0x' + id;\n\t}\n\n\tasync getMinWithdrawRiskRatio(poolKey: string): Promise<number> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.minWithdrawRiskRatio(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst ratio = Number(bcs.U64.parse(bytes));\n\t\treturn ratio / FLOAT_SCALAR;\n\t}\n\n\tasync getMinBorrowRiskRatio(poolKey: string): Promise<number> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.minBorrowRiskRatio(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst ratio = Number(bcs.U64.parse(bytes));\n\t\treturn ratio / FLOAT_SCALAR;\n\t}\n\n\tasync getLiquidationRiskRatio(poolKey: string): Promise<number> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.liquidationRiskRatio(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst ratio = Number(bcs.U64.parse(bytes));\n\t\treturn ratio / FLOAT_SCALAR;\n\t}\n\n\tasync getTargetLiquidationRiskRatio(poolKey: string): Promise<number> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.targetLiquidationRiskRatio(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst ratio = Number(bcs.U64.parse(bytes));\n\t\treturn ratio / FLOAT_SCALAR;\n\t}\n\n\tasync getUserLiquidationReward(poolKey: string): Promise<number> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.userLiquidationReward(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst reward = Number(bcs.U64.parse(bytes));\n\t\treturn reward / FLOAT_SCALAR;\n\t}\n\n\tasync getPoolLiquidationReward(poolKey: string): Promise<number> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.poolLiquidationReward(poolKey));\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst reward = Number(bcs.U64.parse(bytes));\n\t\treturn reward / FLOAT_SCALAR;\n\t}\n\n\tasync getAllowedMaintainers(): Promise<string[]> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.allowedMaintainers());\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst vecSet = VecSet(bcs.Address).parse(bytes);\n\t\treturn vecSet.contents.map((id) => normalizeHaneulAddress(id));\n\t}\n\n\tasync getAllowedPauseCaps(): Promise<string[]> {\n\t\tconst tx = new Transaction();\n\t\ttx.add(this.#ctx.marginRegistry.allowedPauseCaps());\n\n\t\tconst res = await this.#ctx.client.core.simulateTransaction({\n\t\t\ttransaction: tx,\n\t\t\tinclude: { commandResults: true, effects: true },\n\t\t});\n\n\t\tconst bytes = res.commandResults![0].returnValues[0].bcs;\n\t\tconst vecSet = VecSet(bcs.Address).parse(bytes);\n\t\treturn vecSet.contents.map((id) => normalizeHaneulAddress(id));\n\t}\n}\n"],"mappings":"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"}
|