@haneullabs/deepbook-v3 0.1.0 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +268 -81
- package/dist/client.d.mts +957 -0
- package/dist/client.d.mts.map +1 -0
- package/dist/client.mjs +2293 -0
- package/dist/client.mjs.map +1 -0
- package/dist/contracts/deepbook/account.d.mts +38 -0
- package/dist/contracts/deepbook/account.d.mts.map +1 -0
- package/dist/contracts/deepbook/account.mjs +31 -0
- package/dist/contracts/deepbook/account.mjs.map +1 -0
- package/dist/contracts/deepbook/balances.d.mts +13 -0
- package/dist/contracts/deepbook/balances.d.mts.map +1 -0
- package/dist/contracts/deepbook/balances.mjs +24 -0
- package/dist/contracts/deepbook/balances.mjs.map +1 -0
- package/dist/contracts/deepbook/deep_price.d.mts +13 -0
- package/dist/contracts/deepbook/deep_price.d.mts.map +1 -0
- package/dist/contracts/deepbook/deep_price.mjs +49 -0
- package/dist/contracts/deepbook/deep_price.mjs.map +1 -0
- package/dist/contracts/deepbook/deps/haneul/vec_set.d.mts +22 -0
- package/dist/contracts/deepbook/deps/haneul/vec_set.d.mts.map +1 -0
- package/dist/contracts/deepbook/deps/haneul/vec_set.mjs +26 -0
- package/dist/contracts/deepbook/deps/haneul/vec_set.mjs.map +1 -0
- package/dist/contracts/deepbook/order.d.mts +24 -0
- package/dist/contracts/deepbook/order.d.mts.map +1 -0
- package/dist/contracts/deepbook/order.mjs +63 -0
- package/dist/contracts/deepbook/order.mjs.map +1 -0
- package/dist/contracts/pyth/data_source.mjs +20 -0
- package/dist/contracts/pyth/data_source.mjs.map +1 -0
- package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs +21 -0
- package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs.map +1 -0
- package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs +19 -0
- package/dist/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs.map +1 -0
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.mjs +16 -0
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.mjs.map +1 -0
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.mjs +16 -0
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.mjs.map +1 -0
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.mjs +16 -0
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.mjs.map +1 -0
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.mjs +16 -0
- package/dist/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.mjs.map +1 -0
- package/dist/contracts/pyth/i64.mjs +19 -0
- package/dist/contracts/pyth/i64.mjs.map +1 -0
- package/dist/contracts/pyth/price.mjs +22 -0
- package/dist/contracts/pyth/price.mjs.map +1 -0
- package/dist/contracts/pyth/price_feed.mjs +21 -0
- package/dist/contracts/pyth/price_feed.mjs.map +1 -0
- package/dist/contracts/pyth/price_identifier.mjs +16 -0
- package/dist/contracts/pyth/price_identifier.mjs.map +1 -0
- package/dist/contracts/pyth/price_info.mjs +28 -0
- package/dist/contracts/pyth/price_info.mjs.map +1 -0
- package/dist/contracts/pyth/state.mjs +36 -0
- package/dist/contracts/pyth/state.mjs.map +1 -0
- package/dist/contracts/utils/index.d.mts +34 -0
- package/dist/contracts/utils/index.d.mts.map +1 -0
- package/dist/contracts/utils/index.mjs +35 -0
- package/dist/contracts/utils/index.mjs.map +1 -0
- package/dist/contracts/wormhole/bytes32.mjs +16 -0
- package/dist/contracts/wormhole/bytes32.mjs.map +1 -0
- package/dist/contracts/wormhole/consumed_vaas.mjs +16 -0
- package/dist/contracts/wormhole/consumed_vaas.mjs.map +1 -0
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.mjs +16 -0
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.mjs.map +1 -0
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs +21 -0
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.mjs.map +1 -0
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs +19 -0
- package/dist/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.mjs.map +1 -0
- package/dist/contracts/wormhole/external_address.mjs +16 -0
- package/dist/contracts/wormhole/external_address.mjs.map +1 -0
- package/dist/contracts/wormhole/fee_collector.mjs +20 -0
- package/dist/contracts/wormhole/fee_collector.mjs.map +1 -0
- package/dist/contracts/wormhole/set.mjs +16 -0
- package/dist/contracts/wormhole/set.mjs.map +1 -0
- package/dist/contracts/wormhole/state.mjs +31 -0
- package/dist/contracts/wormhole/state.mjs.map +1 -0
- package/dist/index.d.mts +25 -0
- package/dist/index.mjs +26 -0
- package/dist/pyth/PriceServiceConnection.d.mts +26 -0
- package/dist/pyth/PriceServiceConnection.d.mts.map +1 -0
- package/dist/pyth/PriceServiceConnection.mjs +35 -0
- package/dist/pyth/PriceServiceConnection.mjs.map +1 -0
- package/dist/pyth/pyth-helpers.mjs +18 -0
- package/dist/pyth/pyth-helpers.mjs.map +1 -0
- package/dist/pyth/pyth.d.mts +69 -0
- package/dist/pyth/pyth.d.mts.map +1 -0
- package/dist/pyth/pyth.mjs +220 -0
- package/dist/pyth/pyth.mjs.map +1 -0
- package/dist/transactions/balanceManager.d.mts +174 -0
- package/dist/transactions/balanceManager.d.mts.map +1 -0
- package/dist/transactions/balanceManager.mjs +233 -0
- package/dist/transactions/balanceManager.mjs.map +1 -0
- package/dist/transactions/deepbook.d.mts +490 -0
- package/dist/transactions/deepbook.d.mts.map +1 -0
- package/dist/transactions/deepbook.mjs +978 -0
- package/dist/transactions/deepbook.mjs.map +1 -0
- package/dist/transactions/deepbookAdmin.d.mts +111 -0
- package/dist/transactions/deepbookAdmin.d.mts.map +1 -0
- package/dist/transactions/deepbookAdmin.mjs +221 -0
- package/dist/transactions/deepbookAdmin.mjs.map +1 -0
- package/dist/transactions/flashLoans.d.mts +62 -0
- package/dist/transactions/flashLoans.d.mts.map +1 -0
- package/dist/transactions/flashLoans.mjs +75 -0
- package/dist/transactions/flashLoans.mjs.map +1 -0
- package/dist/transactions/governance.d.mts +48 -0
- package/dist/transactions/governance.d.mts.map +1 -0
- package/dist/transactions/governance.mjs +90 -0
- package/dist/transactions/governance.mjs.map +1 -0
- package/dist/transactions/marginAdmin.d.mts +139 -0
- package/dist/transactions/marginAdmin.d.mts.map +1 -0
- package/dist/transactions/marginAdmin.mjs +249 -0
- package/dist/transactions/marginAdmin.mjs.map +1 -0
- package/dist/transactions/marginLiquidations.d.mts +67 -0
- package/dist/transactions/marginLiquidations.d.mts.map +1 -0
- package/dist/transactions/marginLiquidations.mjs +109 -0
- package/dist/transactions/marginLiquidations.mjs.map +1 -0
- package/dist/transactions/marginMaintainer.d.mts +86 -0
- package/dist/transactions/marginMaintainer.d.mts.map +1 -0
- package/dist/transactions/marginMaintainer.mjs +160 -0
- package/dist/transactions/marginMaintainer.mjs.map +1 -0
- package/dist/transactions/marginManager.d.mts +255 -0
- package/dist/transactions/marginManager.d.mts.map +1 -0
- package/dist/transactions/marginManager.mjs +558 -0
- package/dist/transactions/marginManager.mjs.map +1 -0
- package/dist/transactions/marginPool.d.mts +140 -0
- package/dist/transactions/marginPool.d.mts.map +1 -0
- package/dist/transactions/marginPool.mjs +206 -0
- package/dist/transactions/marginPool.mjs.map +1 -0
- package/dist/transactions/marginRegistry.d.mts +100 -0
- package/dist/transactions/marginRegistry.d.mts.map +1 -0
- package/dist/transactions/marginRegistry.mjs +128 -0
- package/dist/transactions/marginRegistry.mjs.map +1 -0
- package/dist/transactions/marginTPSL.d.mts +100 -0
- package/dist/transactions/marginTPSL.d.mts.map +1 -0
- package/dist/transactions/marginTPSL.mjs +175 -0
- package/dist/transactions/marginTPSL.mjs.map +1 -0
- package/dist/transactions/poolProxy.d.mts +123 -0
- package/dist/transactions/poolProxy.d.mts.map +1 -0
- package/dist/transactions/poolProxy.mjs +336 -0
- package/dist/transactions/poolProxy.mjs.map +1 -0
- package/dist/types/bcs.d.mts +5 -0
- package/dist/types/bcs.mjs +7 -0
- package/dist/types/index.d.mts +237 -0
- package/dist/types/index.d.mts.map +1 -0
- package/dist/types/index.mjs +18 -0
- package/dist/types/index.mjs.map +1 -0
- package/dist/utils/config.d.mts +82 -0
- package/dist/utils/config.d.mts.map +1 -0
- package/dist/utils/config.mjs +88 -0
- package/dist/utils/config.mjs.map +1 -0
- package/dist/utils/constants.d.mts +85 -0
- package/dist/utils/constants.d.mts.map +1 -0
- package/dist/utils/constants.mjs +384 -0
- package/dist/utils/constants.mjs.map +1 -0
- package/dist/utils/errors.d.mts +46 -0
- package/dist/utils/errors.d.mts.map +1 -0
- package/dist/utils/errors.mjs +59 -0
- package/dist/utils/errors.mjs.map +1 -0
- package/dist/{cjs/utils/validation.d.ts → utils/validation.d.mts} +11 -7
- package/dist/utils/validation.d.mts.map +1 -0
- package/dist/utils/validation.mjs +76 -0
- package/dist/utils/validation.mjs.map +1 -0
- package/package.json +29 -26
- package/src/client.ts +1016 -545
- package/src/contracts/deepbook/account.ts +15 -15
- package/src/contracts/deepbook/balance_manager.ts +343 -57
- package/src/contracts/deepbook/balances.ts +3 -2
- package/src/contracts/deepbook/big_vector.ts +6 -7
- package/src/contracts/deepbook/book.ts +3 -2
- package/src/contracts/deepbook/constants.ts +95 -3
- package/src/contracts/deepbook/deep_price.ts +7 -7
- package/src/contracts/deepbook/deps/{sui → haneul}/bag.ts +8 -8
- package/src/contracts/deepbook/deps/{sui → haneul}/balance.ts +4 -3
- package/src/contracts/deepbook/deps/{sui → haneul}/table.ts +6 -6
- package/src/contracts/deepbook/deps/{sui → haneul}/vec_map.ts +4 -4
- package/src/contracts/deepbook/deps/{sui → haneul}/vec_set.ts +4 -4
- package/src/contracts/deepbook/deps/{sui → haneul}/versioned.ts +4 -4
- package/src/contracts/deepbook/deps/std/type_name.ts +3 -2
- package/src/contracts/deepbook/ewma.ts +14 -3
- package/src/contracts/deepbook/fill.ts +21 -21
- package/src/contracts/deepbook/governance.ts +4 -3
- package/src/contracts/deepbook/history.ts +4 -3
- package/src/contracts/deepbook/math.ts +15 -15
- package/src/contracts/deepbook/order.ts +16 -16
- package/src/contracts/deepbook/order_info.ts +39 -27
- package/src/contracts/deepbook/order_query.ts +12 -12
- package/src/contracts/deepbook/pool.ts +883 -526
- package/src/contracts/deepbook/registry.ts +149 -38
- package/src/contracts/deepbook/state.ts +14 -3
- package/src/contracts/deepbook/trade_params.ts +3 -2
- package/src/contracts/deepbook/vault.ts +5 -4
- package/src/contracts/pyth/batch_price_attestation.ts +92 -0
- package/src/contracts/pyth/contract_upgrade.ts +54 -0
- package/src/contracts/pyth/data_source.ts +64 -0
- package/src/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.ts +15 -0
- package/src/contracts/pyth/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.ts +13 -0
- package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32.ts +12 -0
- package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed_vaas.ts +13 -0
- package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external_address.ts +13 -0
- package/src/contracts/pyth/deps/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set.ts +12 -0
- package/src/contracts/pyth/deserialize.ts +117 -0
- package/src/contracts/pyth/event.ts +20 -0
- package/src/contracts/pyth/governance.ts +113 -0
- package/src/contracts/pyth/governance_action.ts +130 -0
- package/src/contracts/pyth/governance_instruction.ts +98 -0
- package/src/contracts/pyth/hot_potato_vector.ts +70 -0
- package/src/contracts/pyth/i64.ts +94 -0
- package/src/contracts/pyth/merkle_tree.ts +41 -0
- package/src/contracts/pyth/migrate.ts +29 -0
- package/src/contracts/pyth/price.ts +102 -0
- package/src/contracts/pyth/price_feed.ts +101 -0
- package/src/contracts/pyth/price_identifier.ts +46 -0
- package/src/contracts/pyth/price_info.ts +220 -0
- package/src/contracts/pyth/price_status.ts +74 -0
- package/src/contracts/pyth/pyth.ts +236 -0
- package/src/contracts/pyth/set.ts +93 -0
- package/src/contracts/pyth/set_data_sources.ts +14 -0
- package/src/contracts/pyth/set_fee_recipient.ts +13 -0
- package/src/contracts/pyth/set_governance_data_source.ts +16 -0
- package/src/contracts/pyth/set_stale_price_threshold.ts +13 -0
- package/src/contracts/pyth/set_update_fee.ts +14 -0
- package/src/contracts/pyth/setup.ts +12 -0
- package/src/contracts/pyth/state.ts +227 -0
- package/src/contracts/pyth/version_control.ts +25 -0
- package/src/contracts/utils/index.ts +100 -50
- package/src/contracts/wormhole/bytes32.ts +12 -0
- package/src/contracts/wormhole/consumed_vaas.ts +13 -0
- package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/balance.ts +12 -0
- package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/package.ts +15 -0
- package/src/contracts/wormhole/deps/0x0000000000000000000000000000000000000000000000000000000000000002/table.ts +13 -0
- package/src/contracts/wormhole/external_address.ts +13 -0
- package/src/contracts/wormhole/fee_collector.ts +15 -0
- package/src/contracts/wormhole/set.ts +12 -0
- package/src/contracts/wormhole/state.ts +25 -0
- package/src/index.ts +17 -3
- package/src/pyth/pyth.ts +51 -50
- package/src/transactions/deepbook.ts +31 -12
- package/src/transactions/deepbookAdmin.ts +3 -3
- package/src/transactions/marginAdmin.ts +11 -8
- package/src/transactions/marginMaintainer.ts +23 -12
- package/src/transactions/marginManager.ts +104 -28
- package/src/transactions/marginPool.ts +5 -6
- package/src/transactions/marginTPSL.ts +5 -5
- package/src/transactions/poolProxy.ts +50 -0
- package/src/types/bcs.ts +1 -1
- package/src/types/index.ts +19 -2
- package/src/utils/config.ts +12 -14
- package/src/utils/constants.ts +44 -12
- package/src/utils/validation.ts +1 -1
- package/dist/cjs/client.d.ts +0 -861
- package/dist/cjs/client.js +0 -1982
- package/dist/cjs/client.js.map +0 -7
- package/dist/cjs/contracts/deepbook/account.d.ts +0 -105
- package/dist/cjs/contracts/deepbook/account.js +0 -163
- package/dist/cjs/contracts/deepbook/account.js.map +0 -7
- package/dist/cjs/contracts/deepbook/balance_manager.d.ts +0 -268
- package/dist/cjs/contracts/deepbook/balance_manager.js +0 -361
- package/dist/cjs/contracts/deepbook/balance_manager.js.map +0 -7
- package/dist/cjs/contracts/deepbook/balances.d.ts +0 -10
- package/dist/cjs/contracts/deepbook/balances.js +0 -35
- package/dist/cjs/contracts/deepbook/balances.js.map +0 -7
- package/dist/cjs/contracts/deepbook/big_vector.d.ts +0 -62
- package/dist/cjs/contracts/deepbook/big_vector.js +0 -80
- package/dist/cjs/contracts/deepbook/big_vector.js.map +0 -7
- package/dist/cjs/contracts/deepbook/book.d.ts +0 -34
- package/dist/cjs/contracts/deepbook/book.js +0 -50
- package/dist/cjs/contracts/deepbook/book.js.map +0 -7
- package/dist/cjs/contracts/deepbook/constants.d.ts +0 -176
- package/dist/cjs/contracts/deepbook/constants.js +0 -338
- package/dist/cjs/contracts/deepbook/constants.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deep_price.d.ts +0 -60
- package/dist/cjs/contracts/deepbook/deep_price.js +0 -87
- package/dist/cjs/contracts/deepbook/deep_price.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deps/std/type_name.d.ts +0 -14
- package/dist/cjs/contracts/deepbook/deps/std/type_name.js +0 -42
- package/dist/cjs/contracts/deepbook/deps/std/type_name.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deps/sui/bag.d.ts +0 -33
- package/dist/cjs/contracts/deepbook/deps/sui/bag.js +0 -47
- package/dist/cjs/contracts/deepbook/deps/sui/bag.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deps/sui/balance.d.ts +0 -9
- package/dist/cjs/contracts/deepbook/deps/sui/balance.js +0 -33
- package/dist/cjs/contracts/deepbook/deps/sui/balance.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deps/sui/object.d.ts +0 -5
- package/dist/cjs/contracts/deepbook/deps/sui/object.js +0 -33
- package/dist/cjs/contracts/deepbook/deps/sui/object.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deps/sui/table.d.ts +0 -28
- package/dist/cjs/contracts/deepbook/deps/sui/table.js +0 -47
- package/dist/cjs/contracts/deepbook/deps/sui/table.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deps/sui/vec_map.d.ts +0 -27
- package/dist/cjs/contracts/deepbook/deps/sui/vec_map.js +0 -45
- package/dist/cjs/contracts/deepbook/deps/sui/vec_map.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deps/sui/vec_set.d.ts +0 -15
- package/dist/cjs/contracts/deepbook/deps/sui/vec_set.js +0 -35
- package/dist/cjs/contracts/deepbook/deps/sui/vec_set.js.map +0 -7
- package/dist/cjs/contracts/deepbook/deps/sui/versioned.d.ts +0 -7
- package/dist/cjs/contracts/deepbook/deps/sui/versioned.js +0 -45
- package/dist/cjs/contracts/deepbook/deps/sui/versioned.js.map +0 -7
- package/dist/cjs/contracts/deepbook/ewma.d.ts +0 -17
- package/dist/cjs/contracts/deepbook/ewma.js +0 -39
- package/dist/cjs/contracts/deepbook/ewma.js.map +0 -7
- package/dist/cjs/contracts/deepbook/fill.d.ts +0 -153
- package/dist/cjs/contracts/deepbook/fill.js +0 -251
- package/dist/cjs/contracts/deepbook/fill.js.map +0 -7
- package/dist/cjs/contracts/deepbook/governance.d.ts +0 -63
- package/dist/cjs/contracts/deepbook/governance.js +0 -79
- package/dist/cjs/contracts/deepbook/governance.js.map +0 -7
- package/dist/cjs/contracts/deepbook/history.d.ts +0 -60
- package/dist/cjs/contracts/deepbook/history.js +0 -78
- package/dist/cjs/contracts/deepbook/history.js.map +0 -7
- package/dist/cjs/contracts/deepbook/math.d.ts +0 -94
- package/dist/cjs/contracts/deepbook/math.js +0 -132
- package/dist/cjs/contracts/deepbook/math.js.map +0 -7
- package/dist/cjs/contracts/deepbook/order.d.ts +0 -135
- package/dist/cjs/contracts/deepbook/order.js +0 -218
- package/dist/cjs/contracts/deepbook/order.js.map +0 -7
- package/dist/cjs/contracts/deepbook/order_info.d.ts +0 -296
- package/dist/cjs/contracts/deepbook/order_info.js +0 -386
- package/dist/cjs/contracts/deepbook/order_info.js.map +0 -7
- package/dist/cjs/contracts/deepbook/order_query.d.ts +0 -85
- package/dist/cjs/contracts/deepbook/order_query.js +0 -96
- package/dist/cjs/contracts/deepbook/order_query.js.map +0 -7
- package/dist/cjs/contracts/deepbook/pool.d.ts +0 -1218
- package/dist/cjs/contracts/deepbook/pool.js +0 -1236
- package/dist/cjs/contracts/deepbook/pool.js.map +0 -7
- package/dist/cjs/contracts/deepbook/registry.d.ts +0 -134
- package/dist/cjs/contracts/deepbook/registry.js +0 -182
- package/dist/cjs/contracts/deepbook/registry.js.map +0 -7
- package/dist/cjs/contracts/deepbook/state.d.ts +0 -117
- package/dist/cjs/contracts/deepbook/state.js +0 -104
- package/dist/cjs/contracts/deepbook/state.js.map +0 -7
- package/dist/cjs/contracts/deepbook/trade_params.d.ts +0 -7
- package/dist/cjs/contracts/deepbook/trade_params.js +0 -35
- package/dist/cjs/contracts/deepbook/trade_params.js.map +0 -7
- package/dist/cjs/contracts/deepbook/vault.d.ts +0 -30
- package/dist/cjs/contracts/deepbook/vault.js +0 -65
- package/dist/cjs/contracts/deepbook/vault.js.map +0 -7
- package/dist/cjs/contracts/utils/index.d.ts +0 -25
- package/dist/cjs/contracts/utils/index.js +0 -148
- package/dist/cjs/contracts/utils/index.js.map +0 -7
- package/dist/cjs/index.d.ts +0 -23
- package/dist/cjs/index.js +0 -81
- package/dist/cjs/index.js.map +0 -7
- package/dist/cjs/package.json +0 -4
- package/dist/cjs/pyth/PriceServiceConnection.d.ts +0 -26
- package/dist/cjs/pyth/PriceServiceConnection.js +0 -68
- package/dist/cjs/pyth/PriceServiceConnection.js.map +0 -7
- package/dist/cjs/pyth/pyth-helpers.d.ts +0 -7
- package/dist/cjs/pyth/pyth-helpers.js +0 -36
- package/dist/cjs/pyth/pyth-helpers.js.map +0 -7
- package/dist/cjs/pyth/pyth.d.ts +0 -65
- package/dist/cjs/pyth/pyth.js +0 -269
- package/dist/cjs/pyth/pyth.js.map +0 -7
- package/dist/cjs/transactions/balanceManager.d.ts +0 -168
- package/dist/cjs/transactions/balanceManager.js +0 -384
- package/dist/cjs/transactions/balanceManager.js.map +0 -7
- package/dist/cjs/transactions/deepbook.d.ts +0 -477
- package/dist/cjs/transactions/deepbook.js +0 -1335
- package/dist/cjs/transactions/deepbook.js.map +0 -7
- package/dist/cjs/transactions/deepbookAdmin.d.ts +0 -105
- package/dist/cjs/transactions/deepbookAdmin.js +0 -334
- package/dist/cjs/transactions/deepbookAdmin.js.map +0 -7
- package/dist/cjs/transactions/flashLoans.d.ts +0 -56
- package/dist/cjs/transactions/flashLoans.js +0 -124
- package/dist/cjs/transactions/flashLoans.js.map +0 -7
- package/dist/cjs/transactions/governance.d.ts +0 -42
- package/dist/cjs/transactions/governance.js +0 -135
- package/dist/cjs/transactions/governance.js.map +0 -7
- package/dist/cjs/transactions/marginAdmin.d.ts +0 -133
- package/dist/cjs/transactions/marginAdmin.js +0 -393
- package/dist/cjs/transactions/marginAdmin.js.map +0 -7
- package/dist/cjs/transactions/marginLiquidations.d.ts +0 -61
- package/dist/cjs/transactions/marginLiquidations.js +0 -173
- package/dist/cjs/transactions/marginLiquidations.js.map +0 -7
- package/dist/cjs/transactions/marginMaintainer.d.ts +0 -80
- package/dist/cjs/transactions/marginMaintainer.js +0 -251
- package/dist/cjs/transactions/marginMaintainer.js.map +0 -7
- package/dist/cjs/transactions/marginManager.d.ts +0 -236
- package/dist/cjs/transactions/marginManager.js +0 -688
- package/dist/cjs/transactions/marginManager.js.map +0 -7
- package/dist/cjs/transactions/marginPool.d.ts +0 -134
- package/dist/cjs/transactions/marginPool.js +0 -330
- package/dist/cjs/transactions/marginPool.js.map +0 -7
- package/dist/cjs/transactions/marginRegistry.d.ts +0 -94
- package/dist/cjs/transactions/marginRegistry.js +0 -221
- package/dist/cjs/transactions/marginRegistry.js.map +0 -7
- package/dist/cjs/transactions/marginTPSL.d.ts +0 -93
- package/dist/cjs/transactions/marginTPSL.js +0 -286
- package/dist/cjs/transactions/marginTPSL.js.map +0 -7
- package/dist/cjs/transactions/poolProxy.d.ts +0 -104
- package/dist/cjs/transactions/poolProxy.js +0 -435
- package/dist/cjs/transactions/poolProxy.js.map +0 -7
- package/dist/cjs/types/bcs.d.ts +0 -5
- package/dist/cjs/types/bcs.js +0 -33
- package/dist/cjs/types/bcs.js.map +0 -7
- package/dist/cjs/types/index.d.ts +0 -218
- package/dist/cjs/types/index.js +0 -38
- package/dist/cjs/types/index.js.map +0 -7
- package/dist/cjs/utils/config.d.ts +0 -65
- package/dist/cjs/utils/config.js +0 -144
- package/dist/cjs/utils/config.js.map +0 -7
- package/dist/cjs/utils/constants.d.ts +0 -76
- package/dist/cjs/utils/constants.js +0 -382
- package/dist/cjs/utils/constants.js.map +0 -7
- package/dist/cjs/utils/errors.d.ts +0 -42
- package/dist/cjs/utils/errors.js +0 -70
- package/dist/cjs/utils/errors.js.map +0 -7
- package/dist/cjs/utils/validation.js +0 -67
- package/dist/cjs/utils/validation.js.map +0 -7
- package/dist/esm/client.d.ts +0 -861
- package/dist/esm/client.js +0 -1967
- package/dist/esm/client.js.map +0 -7
- package/dist/esm/contracts/deepbook/account.d.ts +0 -105
- package/dist/esm/contracts/deepbook/account.js +0 -133
- package/dist/esm/contracts/deepbook/account.js.map +0 -7
- package/dist/esm/contracts/deepbook/balance_manager.d.ts +0 -268
- package/dist/esm/contracts/deepbook/balance_manager.js +0 -331
- package/dist/esm/contracts/deepbook/balance_manager.js.map +0 -7
- package/dist/esm/contracts/deepbook/balances.d.ts +0 -10
- package/dist/esm/contracts/deepbook/balances.js +0 -15
- package/dist/esm/contracts/deepbook/balances.js.map +0 -7
- package/dist/esm/contracts/deepbook/big_vector.d.ts +0 -62
- package/dist/esm/contracts/deepbook/big_vector.js +0 -50
- package/dist/esm/contracts/deepbook/big_vector.js.map +0 -7
- package/dist/esm/contracts/deepbook/book.d.ts +0 -34
- package/dist/esm/contracts/deepbook/book.js +0 -20
- package/dist/esm/contracts/deepbook/book.js.map +0 -7
- package/dist/esm/contracts/deepbook/constants.d.ts +0 -176
- package/dist/esm/contracts/deepbook/constants.js +0 -318
- package/dist/esm/contracts/deepbook/constants.js.map +0 -7
- package/dist/esm/contracts/deepbook/deep_price.d.ts +0 -60
- package/dist/esm/contracts/deepbook/deep_price.js +0 -67
- package/dist/esm/contracts/deepbook/deep_price.js.map +0 -7
- package/dist/esm/contracts/deepbook/deps/std/type_name.d.ts +0 -14
- package/dist/esm/contracts/deepbook/deps/std/type_name.js +0 -22
- package/dist/esm/contracts/deepbook/deps/std/type_name.js.map +0 -7
- package/dist/esm/contracts/deepbook/deps/sui/bag.d.ts +0 -33
- package/dist/esm/contracts/deepbook/deps/sui/bag.js +0 -17
- package/dist/esm/contracts/deepbook/deps/sui/bag.js.map +0 -7
- package/dist/esm/contracts/deepbook/deps/sui/balance.d.ts +0 -9
- package/dist/esm/contracts/deepbook/deps/sui/balance.js +0 -13
- package/dist/esm/contracts/deepbook/deps/sui/balance.js.map +0 -7
- package/dist/esm/contracts/deepbook/deps/sui/object.d.ts +0 -5
- package/dist/esm/contracts/deepbook/deps/sui/object.js +0 -13
- package/dist/esm/contracts/deepbook/deps/sui/object.js.map +0 -7
- package/dist/esm/contracts/deepbook/deps/sui/table.d.ts +0 -28
- package/dist/esm/contracts/deepbook/deps/sui/table.js +0 -17
- package/dist/esm/contracts/deepbook/deps/sui/table.js.map +0 -7
- package/dist/esm/contracts/deepbook/deps/sui/vec_map.d.ts +0 -27
- package/dist/esm/contracts/deepbook/deps/sui/vec_map.js +0 -25
- package/dist/esm/contracts/deepbook/deps/sui/vec_map.js.map +0 -7
- package/dist/esm/contracts/deepbook/deps/sui/vec_set.d.ts +0 -15
- package/dist/esm/contracts/deepbook/deps/sui/vec_set.js +0 -15
- package/dist/esm/contracts/deepbook/deps/sui/vec_set.js.map +0 -7
- package/dist/esm/contracts/deepbook/deps/sui/versioned.d.ts +0 -7
- package/dist/esm/contracts/deepbook/deps/sui/versioned.js +0 -15
- package/dist/esm/contracts/deepbook/deps/sui/versioned.js.map +0 -7
- package/dist/esm/contracts/deepbook/ewma.d.ts +0 -17
- package/dist/esm/contracts/deepbook/ewma.js +0 -19
- package/dist/esm/contracts/deepbook/ewma.js.map +0 -7
- package/dist/esm/contracts/deepbook/fill.d.ts +0 -153
- package/dist/esm/contracts/deepbook/fill.js +0 -221
- package/dist/esm/contracts/deepbook/fill.js.map +0 -7
- package/dist/esm/contracts/deepbook/governance.d.ts +0 -63
- package/dist/esm/contracts/deepbook/governance.js +0 -49
- package/dist/esm/contracts/deepbook/governance.js.map +0 -7
- package/dist/esm/contracts/deepbook/history.d.ts +0 -60
- package/dist/esm/contracts/deepbook/history.js +0 -48
- package/dist/esm/contracts/deepbook/history.js.map +0 -7
- package/dist/esm/contracts/deepbook/math.d.ts +0 -94
- package/dist/esm/contracts/deepbook/math.js +0 -112
- package/dist/esm/contracts/deepbook/math.js.map +0 -7
- package/dist/esm/contracts/deepbook/order.d.ts +0 -135
- package/dist/esm/contracts/deepbook/order.js +0 -188
- package/dist/esm/contracts/deepbook/order.js.map +0 -7
- package/dist/esm/contracts/deepbook/order_info.d.ts +0 -296
- package/dist/esm/contracts/deepbook/order_info.js +0 -356
- package/dist/esm/contracts/deepbook/order_info.js.map +0 -7
- package/dist/esm/contracts/deepbook/order_query.d.ts +0 -85
- package/dist/esm/contracts/deepbook/order_query.js +0 -66
- package/dist/esm/contracts/deepbook/order_query.js.map +0 -7
- package/dist/esm/contracts/deepbook/pool.d.ts +0 -1218
- package/dist/esm/contracts/deepbook/pool.js +0 -1206
- package/dist/esm/contracts/deepbook/pool.js.map +0 -7
- package/dist/esm/contracts/deepbook/registry.d.ts +0 -134
- package/dist/esm/contracts/deepbook/registry.js +0 -152
- package/dist/esm/contracts/deepbook/registry.js.map +0 -7
- package/dist/esm/contracts/deepbook/state.d.ts +0 -117
- package/dist/esm/contracts/deepbook/state.js +0 -74
- package/dist/esm/contracts/deepbook/state.js.map +0 -7
- package/dist/esm/contracts/deepbook/trade_params.d.ts +0 -7
- package/dist/esm/contracts/deepbook/trade_params.js +0 -15
- package/dist/esm/contracts/deepbook/trade_params.js.map +0 -7
- package/dist/esm/contracts/deepbook/vault.d.ts +0 -30
- package/dist/esm/contracts/deepbook/vault.js +0 -35
- package/dist/esm/contracts/deepbook/vault.js.map +0 -7
- package/dist/esm/contracts/utils/index.d.ts +0 -25
- package/dist/esm/contracts/utils/index.js +0 -128
- package/dist/esm/contracts/utils/index.js.map +0 -7
- package/dist/esm/index.d.ts +0 -23
- package/dist/esm/index.js +0 -81
- package/dist/esm/index.js.map +0 -7
- package/dist/esm/package.json +0 -4
- package/dist/esm/pyth/PriceServiceConnection.d.ts +0 -26
- package/dist/esm/pyth/PriceServiceConnection.js +0 -38
- package/dist/esm/pyth/PriceServiceConnection.js.map +0 -7
- package/dist/esm/pyth/pyth-helpers.d.ts +0 -7
- package/dist/esm/pyth/pyth-helpers.js +0 -16
- package/dist/esm/pyth/pyth-helpers.js.map +0 -7
- package/dist/esm/pyth/pyth.d.ts +0 -65
- package/dist/esm/pyth/pyth.js +0 -249
- package/dist/esm/pyth/pyth.js.map +0 -7
- package/dist/esm/transactions/balanceManager.d.ts +0 -168
- package/dist/esm/transactions/balanceManager.js +0 -364
- package/dist/esm/transactions/balanceManager.js.map +0 -7
- package/dist/esm/transactions/deepbook.d.ts +0 -477
- package/dist/esm/transactions/deepbook.js +0 -1321
- package/dist/esm/transactions/deepbook.js.map +0 -7
- package/dist/esm/transactions/deepbookAdmin.d.ts +0 -105
- package/dist/esm/transactions/deepbookAdmin.js +0 -314
- package/dist/esm/transactions/deepbookAdmin.js.map +0 -7
- package/dist/esm/transactions/flashLoans.d.ts +0 -56
- package/dist/esm/transactions/flashLoans.js +0 -104
- package/dist/esm/transactions/flashLoans.js.map +0 -7
- package/dist/esm/transactions/governance.d.ts +0 -42
- package/dist/esm/transactions/governance.js +0 -115
- package/dist/esm/transactions/governance.js.map +0 -7
- package/dist/esm/transactions/marginAdmin.d.ts +0 -133
- package/dist/esm/transactions/marginAdmin.js +0 -373
- package/dist/esm/transactions/marginAdmin.js.map +0 -7
- package/dist/esm/transactions/marginLiquidations.d.ts +0 -61
- package/dist/esm/transactions/marginLiquidations.js +0 -153
- package/dist/esm/transactions/marginLiquidations.js.map +0 -7
- package/dist/esm/transactions/marginMaintainer.d.ts +0 -80
- package/dist/esm/transactions/marginMaintainer.js +0 -231
- package/dist/esm/transactions/marginMaintainer.js.map +0 -7
- package/dist/esm/transactions/marginManager.d.ts +0 -236
- package/dist/esm/transactions/marginManager.js +0 -668
- package/dist/esm/transactions/marginManager.js.map +0 -7
- package/dist/esm/transactions/marginPool.d.ts +0 -134
- package/dist/esm/transactions/marginPool.js +0 -310
- package/dist/esm/transactions/marginPool.js.map +0 -7
- package/dist/esm/transactions/marginRegistry.d.ts +0 -94
- package/dist/esm/transactions/marginRegistry.js +0 -201
- package/dist/esm/transactions/marginRegistry.js.map +0 -7
- package/dist/esm/transactions/marginTPSL.d.ts +0 -93
- package/dist/esm/transactions/marginTPSL.js +0 -266
- package/dist/esm/transactions/marginTPSL.js.map +0 -7
- package/dist/esm/transactions/poolProxy.d.ts +0 -104
- package/dist/esm/transactions/poolProxy.js +0 -415
- package/dist/esm/transactions/poolProxy.js.map +0 -7
- package/dist/esm/types/bcs.d.ts +0 -5
- package/dist/esm/types/bcs.js +0 -13
- package/dist/esm/types/bcs.js.map +0 -7
- package/dist/esm/types/index.d.ts +0 -218
- package/dist/esm/types/index.js +0 -18
- package/dist/esm/types/index.js.map +0 -7
- package/dist/esm/utils/config.d.ts +0 -65
- package/dist/esm/utils/config.js +0 -135
- package/dist/esm/utils/config.js.map +0 -7
- package/dist/esm/utils/constants.d.ts +0 -76
- package/dist/esm/utils/constants.js +0 -362
- package/dist/esm/utils/constants.js.map +0 -7
- package/dist/esm/utils/errors.d.ts +0 -42
- package/dist/esm/utils/errors.js +0 -50
- package/dist/esm/utils/errors.js.map +0 -7
- package/dist/esm/utils/validation.d.ts +0 -50
- package/dist/esm/utils/validation.js +0 -47
- package/dist/esm/utils/validation.js.map +0 -7
- package/dist/tsconfig.esm.tsbuildinfo +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/src/contracts/deepbook/deps/sui/object.ts +0 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flashLoans.d.mts","names":[],"sources":["../../src/transactions/flashLoans.ts"],"sourcesContent":[],"mappings":";;;;;;;AASA;AAMqB,cANR,iBAAA,CAMQ;EAU8C,CAAA,OAAA;EAyBjD;;;EAGA,WAAA,CAAA,MAAA,EAtCG,cAsCH;EAwBkD;;;;;;mEApDD;;;;;;;;;;;;;;;0EAyBjD,sCACJ,mCAEP,gBAAW;;;;;;;oEAwBkD;;;;;;;;;;;;;;;4EAyBjD,sCACL,mCAEP,gBAAW"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
//#region src/transactions/flashLoans.ts
|
|
2
|
+
/**
|
|
3
|
+
* FlashLoanContract class for managing flash loans.
|
|
4
|
+
*/
|
|
5
|
+
var FlashLoanContract = class {
|
|
6
|
+
#config;
|
|
7
|
+
/**
|
|
8
|
+
* @param {DeepBookConfig} config Configuration object for DeepBook
|
|
9
|
+
*/
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.borrowBaseAsset = (poolKey, borrowAmount) => (tx) => {
|
|
12
|
+
const pool = this.#config.getPool(poolKey);
|
|
13
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
14
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
15
|
+
const inputQuantity = Math.round(borrowAmount * baseCoin.scalar);
|
|
16
|
+
const [baseCoinResult, flashLoan] = tx.moveCall({
|
|
17
|
+
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::borrow_flashloan_base`,
|
|
18
|
+
arguments: [tx.object(pool.address), tx.pure.u64(inputQuantity)],
|
|
19
|
+
typeArguments: [baseCoin.type, quoteCoin.type]
|
|
20
|
+
});
|
|
21
|
+
return [baseCoinResult, flashLoan];
|
|
22
|
+
};
|
|
23
|
+
this.returnBaseAsset = (poolKey, borrowAmount, baseCoinInput, flashLoan) => (tx) => {
|
|
24
|
+
const pool = this.#config.getPool(poolKey);
|
|
25
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
26
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
27
|
+
const borrowScalar = baseCoin.scalar;
|
|
28
|
+
const [baseCoinReturn] = tx.splitCoins(baseCoinInput, [tx.pure.u64(Math.round(borrowAmount * borrowScalar))]);
|
|
29
|
+
tx.moveCall({
|
|
30
|
+
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::return_flashloan_base`,
|
|
31
|
+
arguments: [
|
|
32
|
+
tx.object(pool.address),
|
|
33
|
+
baseCoinReturn,
|
|
34
|
+
flashLoan
|
|
35
|
+
],
|
|
36
|
+
typeArguments: [baseCoin.type, quoteCoin.type]
|
|
37
|
+
});
|
|
38
|
+
return baseCoinInput;
|
|
39
|
+
};
|
|
40
|
+
this.borrowQuoteAsset = (poolKey, borrowAmount) => (tx) => {
|
|
41
|
+
const pool = this.#config.getPool(poolKey);
|
|
42
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
43
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
44
|
+
const inputQuantity = Math.round(borrowAmount * quoteCoin.scalar);
|
|
45
|
+
const [quoteCoinResult, flashLoan] = tx.moveCall({
|
|
46
|
+
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::borrow_flashloan_quote`,
|
|
47
|
+
arguments: [tx.object(pool.address), tx.pure.u64(inputQuantity)],
|
|
48
|
+
typeArguments: [baseCoin.type, quoteCoin.type]
|
|
49
|
+
});
|
|
50
|
+
return [quoteCoinResult, flashLoan];
|
|
51
|
+
};
|
|
52
|
+
this.returnQuoteAsset = (poolKey, borrowAmount, quoteCoinInput, flashLoan) => (tx) => {
|
|
53
|
+
const pool = this.#config.getPool(poolKey);
|
|
54
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
55
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
56
|
+
const borrowScalar = quoteCoin.scalar;
|
|
57
|
+
const [quoteCoinReturn] = tx.splitCoins(quoteCoinInput, [tx.pure.u64(Math.round(borrowAmount * borrowScalar))]);
|
|
58
|
+
tx.moveCall({
|
|
59
|
+
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::return_flashloan_quote`,
|
|
60
|
+
arguments: [
|
|
61
|
+
tx.object(pool.address),
|
|
62
|
+
quoteCoinReturn,
|
|
63
|
+
flashLoan
|
|
64
|
+
],
|
|
65
|
+
typeArguments: [baseCoin.type, quoteCoin.type]
|
|
66
|
+
});
|
|
67
|
+
return quoteCoinInput;
|
|
68
|
+
};
|
|
69
|
+
this.#config = config;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
//#endregion
|
|
74
|
+
export { FlashLoanContract };
|
|
75
|
+
//# sourceMappingURL=flashLoans.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flashLoans.mjs","names":["#config"],"sources":["../../src/transactions/flashLoans.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport type { Transaction, TransactionObjectArgument } from '@haneullabs/haneul/transactions';\n\nimport type { DeepBookConfig } from '../utils/config.js';\n\n/**\n * FlashLoanContract class for managing flash loans.\n */\nexport class FlashLoanContract {\n\t#config: DeepBookConfig;\n\n\t/**\n\t * @param {DeepBookConfig} config Configuration object for DeepBook\n\t */\n\tconstructor(config: DeepBookConfig) {\n\t\tthis.#config = config;\n\t}\n\n\t/**\n\t * @description Borrow base asset from the pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {number} borrowAmount The amount to borrow\n\t * @returns A function that takes a Transaction object\n\t */\n\tborrowBaseAsset = (poolKey: string, borrowAmount: number) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\tconst inputQuantity = Math.round(borrowAmount * baseCoin.scalar);\n\t\tconst [baseCoinResult, flashLoan] = tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::borrow_flashloan_base`,\n\t\t\targuments: [tx.object(pool.address), tx.pure.u64(inputQuantity)],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t\treturn [baseCoinResult, flashLoan] as const;\n\t};\n\n\t/**\n\t * @description Return base asset to the pool after a flash loan.\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {number} borrowAmount The amount of the base asset to return\n\t * @param {TransactionObjectArgument} baseCoinInput Coin object representing the base asset to be returned\n\t * @param {TransactionObjectArgument} flashLoan FlashLoan object representing the loan to be settled\n\t * @returns A function that takes a Transaction object\n\t */\n\treturnBaseAsset =\n\t\t(\n\t\t\tpoolKey: string,\n\t\t\tborrowAmount: number,\n\t\t\tbaseCoinInput: TransactionObjectArgument,\n\t\t\tflashLoan: TransactionObjectArgument,\n\t\t) =>\n\t\t(tx: Transaction) => {\n\t\t\tconst pool = this.#config.getPool(poolKey);\n\t\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\t\tconst borrowScalar = baseCoin.scalar;\n\n\t\t\tconst [baseCoinReturn] = tx.splitCoins(baseCoinInput, [\n\t\t\t\ttx.pure.u64(Math.round(borrowAmount * borrowScalar)),\n\t\t\t]);\n\t\t\ttx.moveCall({\n\t\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::return_flashloan_base`,\n\t\t\t\targuments: [tx.object(pool.address), baseCoinReturn, flashLoan],\n\t\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t\t});\n\n\t\t\treturn baseCoinInput;\n\t\t};\n\n\t/**\n\t * @description Borrow quote asset from the pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {number} borrowAmount The amount to borrow\n\t * @returns A function that takes a Transaction object\n\t */\n\tborrowQuoteAsset = (poolKey: string, borrowAmount: number) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\tconst inputQuantity = Math.round(borrowAmount * quoteCoin.scalar);\n\t\tconst [quoteCoinResult, flashLoan] = tx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::borrow_flashloan_quote`,\n\t\t\targuments: [tx.object(pool.address), tx.pure.u64(inputQuantity)],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t\treturn [quoteCoinResult, flashLoan] as const;\n\t};\n\n\t/**\n\t * @description Return quote asset to the pool after a flash loan.\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {number} borrowAmount The amount of the quote asset to return\n\t * @param {TransactionObjectArgument} quoteCoinInput Coin object representing the quote asset to be returned\n\t * @param {TransactionObjectArgument} flashLoan FlashLoan object representing the loan to be settled\n\t * @returns A function that takes a Transaction object\n\t */\n\treturnQuoteAsset =\n\t\t(\n\t\t\tpoolKey: string,\n\t\t\tborrowAmount: number,\n\t\t\tquoteCoinInput: TransactionObjectArgument,\n\t\t\tflashLoan: TransactionObjectArgument,\n\t\t) =>\n\t\t(tx: Transaction) => {\n\t\t\tconst pool = this.#config.getPool(poolKey);\n\t\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\t\tconst borrowScalar = quoteCoin.scalar;\n\n\t\t\tconst [quoteCoinReturn] = tx.splitCoins(quoteCoinInput, [\n\t\t\t\ttx.pure.u64(Math.round(borrowAmount * borrowScalar)),\n\t\t\t]);\n\t\t\ttx.moveCall({\n\t\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::return_flashloan_quote`,\n\t\t\t\targuments: [tx.object(pool.address), quoteCoinReturn, flashLoan],\n\t\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t\t});\n\n\t\t\treturn quoteCoinInput;\n\t\t};\n}\n"],"mappings":";;;;AASA,IAAa,oBAAb,MAA+B;CAC9B;;;;CAKA,YAAY,QAAwB;0BAUjB,SAAiB,kBAA0B,OAAoB;GACjF,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;GACtD,MAAM,gBAAgB,KAAK,MAAM,eAAe,SAAS,OAAO;GAChE,MAAM,CAAC,gBAAgB,aAAa,GAAG,SAAS;IAC/C,QAAQ,GAAG,MAAKA,OAAQ,oBAAoB;IAC5C,WAAW,CAAC,GAAG,OAAO,KAAK,QAAQ,EAAE,GAAG,KAAK,IAAI,cAAc,CAAC;IAChE,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;AACF,UAAO,CAAC,gBAAgB,UAAU;;0BAajC,SACA,cACA,eACA,eAEA,OAAoB;GACpB,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;GACtD,MAAM,eAAe,SAAS;GAE9B,MAAM,CAAC,kBAAkB,GAAG,WAAW,eAAe,CACrD,GAAG,KAAK,IAAI,KAAK,MAAM,eAAe,aAAa,CAAC,CACpD,CAAC;AACF,MAAG,SAAS;IACX,QAAQ,GAAG,MAAKA,OAAQ,oBAAoB;IAC5C,WAAW;KAAC,GAAG,OAAO,KAAK,QAAQ;KAAE;KAAgB;KAAU;IAC/D,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;AAEF,UAAO;;2BASW,SAAiB,kBAA0B,OAAoB;GAClF,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;GACtD,MAAM,gBAAgB,KAAK,MAAM,eAAe,UAAU,OAAO;GACjE,MAAM,CAAC,iBAAiB,aAAa,GAAG,SAAS;IAChD,QAAQ,GAAG,MAAKA,OAAQ,oBAAoB;IAC5C,WAAW,CAAC,GAAG,OAAO,KAAK,QAAQ,EAAE,GAAG,KAAK,IAAI,cAAc,CAAC;IAChE,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;AACF,UAAO,CAAC,iBAAiB,UAAU;;2BAalC,SACA,cACA,gBACA,eAEA,OAAoB;GACpB,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;GACtD,MAAM,eAAe,UAAU;GAE/B,MAAM,CAAC,mBAAmB,GAAG,WAAW,gBAAgB,CACvD,GAAG,KAAK,IAAI,KAAK,MAAM,eAAe,aAAa,CAAC,CACpD,CAAC;AACF,MAAG,SAAS;IACX,QAAQ,GAAG,MAAKA,OAAQ,oBAAoB;IAC5C,WAAW;KAAC,GAAG,OAAO,KAAK,QAAQ;KAAE;KAAiB;KAAU;IAChE,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;AAEF,UAAO;;AAxGR,QAAKA,SAAU"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ProposalParams } from "../types/index.mjs";
|
|
2
|
+
import { DeepBookConfig } from "../utils/config.mjs";
|
|
3
|
+
import { Transaction } from "@haneullabs/haneul/transactions";
|
|
4
|
+
|
|
5
|
+
//#region src/transactions/governance.d.ts
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* GovernanceContract class for managing governance operations in DeepBook.
|
|
9
|
+
*/
|
|
10
|
+
declare class GovernanceContract {
|
|
11
|
+
#private;
|
|
12
|
+
/**
|
|
13
|
+
* @param {DeepBookConfig} config Configuration for GovernanceContract
|
|
14
|
+
*/
|
|
15
|
+
constructor(config: DeepBookConfig);
|
|
16
|
+
/**
|
|
17
|
+
* @description Stake a specified amount in the pool
|
|
18
|
+
* @param {string} poolKey The key to identify the pool
|
|
19
|
+
* @param {string} balanceManagerKey The key to identify the BalanceManager
|
|
20
|
+
* @param {number} stakeAmount The amount to stake
|
|
21
|
+
* @returns A function that takes a Transaction object
|
|
22
|
+
*/
|
|
23
|
+
stake: (poolKey: string, balanceManagerKey: string, stakeAmount: number) => (tx: Transaction) => void;
|
|
24
|
+
/**
|
|
25
|
+
* @description Unstake from the pool
|
|
26
|
+
* @param {string} poolKey The key to identify the pool
|
|
27
|
+
* @param {string} balanceManagerKey The key to identify the BalanceManager
|
|
28
|
+
* @returns A function that takes a Transaction object
|
|
29
|
+
*/
|
|
30
|
+
unstake: (poolKey: string, balanceManagerKey: string) => (tx: Transaction) => void;
|
|
31
|
+
/**
|
|
32
|
+
* @description Submit a governance proposal
|
|
33
|
+
* @param {ProposalParams} params Parameters for the proposal
|
|
34
|
+
* @returns A function that takes a Transaction object
|
|
35
|
+
*/
|
|
36
|
+
submitProposal: (params: ProposalParams) => (tx: Transaction) => void;
|
|
37
|
+
/**
|
|
38
|
+
* @description Vote on a proposal
|
|
39
|
+
* @param {string} poolKey The key to identify the pool
|
|
40
|
+
* @param {string} balanceManagerKey The key to identify the BalanceManager
|
|
41
|
+
* @param {string} proposal_id The ID of the proposal to vote on
|
|
42
|
+
* @returns A function that takes a Transaction object
|
|
43
|
+
*/
|
|
44
|
+
vote: (poolKey: string, balanceManagerKey: string, proposal_id: string) => (tx: Transaction) => void;
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
export { GovernanceContract };
|
|
48
|
+
//# sourceMappingURL=governance.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance.d.mts","names":[],"sources":["../../src/transactions/governance.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAWA;AAMqB,cANR,kBAAA,CAMQ;EAYuD,CAAA,OAAA;EA0BZ;;;EAiDkB,WAAA,CAAA,MAAA,EAvF7D,cAuF6D;EAAW;;;;;;;mFA3EjB;;;;;;;gEA0BZ;;;;;;2BAmBrC,wBAAwB;;;;;;;;kFA8B+B"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { DEEP_SCALAR, FLOAT_SCALAR } from "../utils/config.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/transactions/governance.ts
|
|
4
|
+
/**
|
|
5
|
+
* GovernanceContract class for managing governance operations in DeepBook.
|
|
6
|
+
*/
|
|
7
|
+
var GovernanceContract = class {
|
|
8
|
+
#config;
|
|
9
|
+
/**
|
|
10
|
+
* @param {DeepBookConfig} config Configuration for GovernanceContract
|
|
11
|
+
*/
|
|
12
|
+
constructor(config) {
|
|
13
|
+
this.stake = (poolKey, balanceManagerKey, stakeAmount) => (tx) => {
|
|
14
|
+
const pool = this.#config.getPool(poolKey);
|
|
15
|
+
const balanceManager = this.#config.getBalanceManager(balanceManagerKey);
|
|
16
|
+
const tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));
|
|
17
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
18
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
19
|
+
const stakeInput = Math.round(stakeAmount * DEEP_SCALAR);
|
|
20
|
+
tx.moveCall({
|
|
21
|
+
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::stake`,
|
|
22
|
+
arguments: [
|
|
23
|
+
tx.object(pool.address),
|
|
24
|
+
tx.object(balanceManager.address),
|
|
25
|
+
tradeProof,
|
|
26
|
+
tx.pure.u64(stakeInput)
|
|
27
|
+
],
|
|
28
|
+
typeArguments: [baseCoin.type, quoteCoin.type]
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
this.unstake = (poolKey, balanceManagerKey) => (tx) => {
|
|
32
|
+
const pool = this.#config.getPool(poolKey);
|
|
33
|
+
const balanceManager = this.#config.getBalanceManager(balanceManagerKey);
|
|
34
|
+
const tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));
|
|
35
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
36
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
37
|
+
tx.moveCall({
|
|
38
|
+
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::unstake`,
|
|
39
|
+
arguments: [
|
|
40
|
+
tx.object(pool.address),
|
|
41
|
+
tx.object(balanceManager.address),
|
|
42
|
+
tradeProof
|
|
43
|
+
],
|
|
44
|
+
typeArguments: [baseCoin.type, quoteCoin.type]
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
this.submitProposal = (params) => (tx) => {
|
|
48
|
+
const { poolKey, balanceManagerKey, takerFee, makerFee, stakeRequired } = params;
|
|
49
|
+
const pool = this.#config.getPool(poolKey);
|
|
50
|
+
const balanceManager = this.#config.getBalanceManager(balanceManagerKey);
|
|
51
|
+
const tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));
|
|
52
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
53
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
54
|
+
tx.moveCall({
|
|
55
|
+
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::submit_proposal`,
|
|
56
|
+
arguments: [
|
|
57
|
+
tx.object(pool.address),
|
|
58
|
+
tx.object(balanceManager.address),
|
|
59
|
+
tradeProof,
|
|
60
|
+
tx.pure.u64(Math.round(takerFee * FLOAT_SCALAR)),
|
|
61
|
+
tx.pure.u64(Math.round(makerFee * FLOAT_SCALAR)),
|
|
62
|
+
tx.pure.u64(Math.round(stakeRequired * DEEP_SCALAR))
|
|
63
|
+
],
|
|
64
|
+
typeArguments: [baseCoin.type, quoteCoin.type]
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
this.vote = (poolKey, balanceManagerKey, proposal_id) => (tx) => {
|
|
68
|
+
const pool = this.#config.getPool(poolKey);
|
|
69
|
+
const balanceManager = this.#config.getBalanceManager(balanceManagerKey);
|
|
70
|
+
const tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));
|
|
71
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
72
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
73
|
+
tx.moveCall({
|
|
74
|
+
target: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::vote`,
|
|
75
|
+
arguments: [
|
|
76
|
+
tx.object(pool.address),
|
|
77
|
+
tx.object(balanceManager.address),
|
|
78
|
+
tradeProof,
|
|
79
|
+
tx.pure.id(proposal_id)
|
|
80
|
+
],
|
|
81
|
+
typeArguments: [baseCoin.type, quoteCoin.type]
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
this.#config = config;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
//#endregion
|
|
89
|
+
export { GovernanceContract };
|
|
90
|
+
//# sourceMappingURL=governance.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance.mjs","names":["#config"],"sources":["../../src/transactions/governance.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\nimport type { Transaction } from '@haneullabs/haneul/transactions';\n\nimport type { ProposalParams } from '../types/index.js';\nimport type { DeepBookConfig } from '../utils/config.js';\nimport { DEEP_SCALAR, FLOAT_SCALAR } from '../utils/config.js';\n\n/**\n * GovernanceContract class for managing governance operations in DeepBook.\n */\nexport class GovernanceContract {\n\t#config: DeepBookConfig;\n\n\t/**\n\t * @param {DeepBookConfig} config Configuration for GovernanceContract\n\t */\n\tconstructor(config: DeepBookConfig) {\n\t\tthis.#config = config;\n\t}\n\n\t/**\n\t * @description Stake a specified amount in the pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {string} balanceManagerKey The key to identify the BalanceManager\n\t * @param {number} stakeAmount The amount to stake\n\t * @returns A function that takes a Transaction object\n\t */\n\tstake =\n\t\t(poolKey: string, balanceManagerKey: string, stakeAmount: number) => (tx: Transaction) => {\n\t\t\tconst pool = this.#config.getPool(poolKey);\n\t\t\tconst balanceManager = this.#config.getBalanceManager(balanceManagerKey);\n\t\t\tconst tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));\n\t\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\t\t\tconst stakeInput = Math.round(stakeAmount * DEEP_SCALAR);\n\n\t\t\ttx.moveCall({\n\t\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::stake`,\n\t\t\t\targuments: [\n\t\t\t\t\ttx.object(pool.address),\n\t\t\t\t\ttx.object(balanceManager.address),\n\t\t\t\t\ttradeProof,\n\t\t\t\t\ttx.pure.u64(stakeInput),\n\t\t\t\t],\n\t\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t\t});\n\t\t};\n\n\t/**\n\t * @description Unstake from the pool\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {string} balanceManagerKey The key to identify the BalanceManager\n\t * @returns A function that takes a Transaction object\n\t */\n\tunstake = (poolKey: string, balanceManagerKey: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst balanceManager = this.#config.getBalanceManager(balanceManagerKey);\n\t\tconst tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::unstake`,\n\t\t\targuments: [tx.object(pool.address), tx.object(balanceManager.address), tradeProof],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t};\n\n\t/**\n\t * @description Submit a governance proposal\n\t * @param {ProposalParams} params Parameters for the proposal\n\t * @returns A function that takes a Transaction object\n\t */\n\tsubmitProposal = (params: ProposalParams) => (tx: Transaction) => {\n\t\tconst { poolKey, balanceManagerKey, takerFee, makerFee, stakeRequired } = params;\n\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst balanceManager = this.#config.getBalanceManager(balanceManagerKey);\n\t\tconst tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::submit_proposal`,\n\t\t\targuments: [\n\t\t\t\ttx.object(pool.address),\n\t\t\t\ttx.object(balanceManager.address),\n\t\t\t\ttradeProof,\n\t\t\t\ttx.pure.u64(Math.round(takerFee * FLOAT_SCALAR)),\n\t\t\t\ttx.pure.u64(Math.round(makerFee * FLOAT_SCALAR)),\n\t\t\t\ttx.pure.u64(Math.round(stakeRequired * DEEP_SCALAR)),\n\t\t\t],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t};\n\n\t/**\n\t * @description Vote on a proposal\n\t * @param {string} poolKey The key to identify the pool\n\t * @param {string} balanceManagerKey The key to identify the BalanceManager\n\t * @param {string} proposal_id The ID of the proposal to vote on\n\t * @returns A function that takes a Transaction object\n\t */\n\tvote = (poolKey: string, balanceManagerKey: string, proposal_id: string) => (tx: Transaction) => {\n\t\tconst pool = this.#config.getPool(poolKey);\n\t\tconst balanceManager = this.#config.getBalanceManager(balanceManagerKey);\n\t\tconst tradeProof = tx.add(this.#config.balanceManager.generateProof(balanceManagerKey));\n\t\tconst baseCoin = this.#config.getCoin(pool.baseCoin);\n\t\tconst quoteCoin = this.#config.getCoin(pool.quoteCoin);\n\n\t\ttx.moveCall({\n\t\t\ttarget: `${this.#config.DEEPBOOK_PACKAGE_ID}::pool::vote`,\n\t\t\targuments: [\n\t\t\t\ttx.object(pool.address),\n\t\t\t\ttx.object(balanceManager.address),\n\t\t\t\ttradeProof,\n\t\t\t\ttx.pure.id(proposal_id),\n\t\t\t],\n\t\t\ttypeArguments: [baseCoin.type, quoteCoin.type],\n\t\t});\n\t};\n}\n"],"mappings":";;;;;;AAWA,IAAa,qBAAb,MAAgC;CAC/B;;;;CAKA,YAAY,QAAwB;gBAYlC,SAAiB,mBAA2B,iBAAyB,OAAoB;GACzF,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,iBAAiB,MAAKA,OAAQ,kBAAkB,kBAAkB;GACxE,MAAM,aAAa,GAAG,IAAI,MAAKA,OAAQ,eAAe,cAAc,kBAAkB,CAAC;GACvF,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;GACtD,MAAM,aAAa,KAAK,MAAM,cAAc,YAAY;AAExD,MAAG,SAAS;IACX,QAAQ,GAAG,MAAKA,OAAQ,oBAAoB;IAC5C,WAAW;KACV,GAAG,OAAO,KAAK,QAAQ;KACvB,GAAG,OAAO,eAAe,QAAQ;KACjC;KACA,GAAG,KAAK,IAAI,WAAW;KACvB;IACD,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;;kBASO,SAAiB,uBAA+B,OAAoB;GAC9E,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,iBAAiB,MAAKA,OAAQ,kBAAkB,kBAAkB;GACxE,MAAM,aAAa,GAAG,IAAI,MAAKA,OAAQ,eAAe,cAAc,kBAAkB,CAAC;GACvF,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;AAEtD,MAAG,SAAS;IACX,QAAQ,GAAG,MAAKA,OAAQ,oBAAoB;IAC5C,WAAW;KAAC,GAAG,OAAO,KAAK,QAAQ;KAAE,GAAG,OAAO,eAAe,QAAQ;KAAE;KAAW;IACnF,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;;yBAQe,YAA4B,OAAoB;GACjE,MAAM,EAAE,SAAS,mBAAmB,UAAU,UAAU,kBAAkB;GAE1E,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,iBAAiB,MAAKA,OAAQ,kBAAkB,kBAAkB;GACxE,MAAM,aAAa,GAAG,IAAI,MAAKA,OAAQ,eAAe,cAAc,kBAAkB,CAAC;GACvF,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;AAEtD,MAAG,SAAS;IACX,QAAQ,GAAG,MAAKA,OAAQ,oBAAoB;IAC5C,WAAW;KACV,GAAG,OAAO,KAAK,QAAQ;KACvB,GAAG,OAAO,eAAe,QAAQ;KACjC;KACA,GAAG,KAAK,IAAI,KAAK,MAAM,WAAW,aAAa,CAAC;KAChD,GAAG,KAAK,IAAI,KAAK,MAAM,WAAW,aAAa,CAAC;KAChD,GAAG,KAAK,IAAI,KAAK,MAAM,gBAAgB,YAAY,CAAC;KACpD;IACD,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;;eAUK,SAAiB,mBAA2B,iBAAyB,OAAoB;GAChG,MAAM,OAAO,MAAKA,OAAQ,QAAQ,QAAQ;GAC1C,MAAM,iBAAiB,MAAKA,OAAQ,kBAAkB,kBAAkB;GACxE,MAAM,aAAa,GAAG,IAAI,MAAKA,OAAQ,eAAe,cAAc,kBAAkB,CAAC;GACvF,MAAM,WAAW,MAAKA,OAAQ,QAAQ,KAAK,SAAS;GACpD,MAAM,YAAY,MAAKA,OAAQ,QAAQ,KAAK,UAAU;AAEtD,MAAG,SAAS;IACX,QAAQ,GAAG,MAAKA,OAAQ,oBAAoB;IAC5C,WAAW;KACV,GAAG,OAAO,KAAK,QAAQ;KACvB,GAAG,OAAO,eAAe,QAAQ;KACjC;KACA,GAAG,KAAK,GAAG,YAAY;KACvB;IACD,eAAe,CAAC,SAAS,MAAM,UAAU,KAAK;IAC9C,CAAC;;AAtGF,QAAKA,SAAU"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { PoolConfigParams } from "../types/index.mjs";
|
|
2
|
+
import { DeepBookConfig } from "../utils/config.mjs";
|
|
3
|
+
import * as _haneullabs_haneul_transactions19 from "@haneullabs/haneul/transactions";
|
|
4
|
+
import { Transaction, TransactionArgument } from "@haneullabs/haneul/transactions";
|
|
5
|
+
|
|
6
|
+
//#region src/transactions/marginAdmin.d.ts
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* MarginAdminContract class for managing admin actions.
|
|
10
|
+
*/
|
|
11
|
+
declare class MarginAdminContract {
|
|
12
|
+
#private;
|
|
13
|
+
/**
|
|
14
|
+
* @param {DeepBookConfig} config Configuration for MarginAdminContract
|
|
15
|
+
*/
|
|
16
|
+
constructor(config: DeepBookConfig);
|
|
17
|
+
/**
|
|
18
|
+
* @description Mint a maintainer cap
|
|
19
|
+
* @returns A function that takes a Transaction object
|
|
20
|
+
*/
|
|
21
|
+
mintMaintainerCap: () => (tx: Transaction) => _haneullabs_haneul_transactions19.TransactionResult;
|
|
22
|
+
/**
|
|
23
|
+
* @description Revoke a maintainer cap
|
|
24
|
+
* @returns A function that takes a Transaction object
|
|
25
|
+
*/
|
|
26
|
+
revokeMaintainerCap: (maintainerCapId: string) => (tx: Transaction) => void;
|
|
27
|
+
/**
|
|
28
|
+
* @description Register a deepbook pool
|
|
29
|
+
* @param {string} poolKey The key of the pool to be registered
|
|
30
|
+
* @param {TransactionArgument} poolConfig The configuration of the pool
|
|
31
|
+
* @returns A function that takes a Transaction object
|
|
32
|
+
*/
|
|
33
|
+
registerDeepbookPool: (poolKey: string, poolConfig: TransactionArgument) => (tx: Transaction) => void;
|
|
34
|
+
/**
|
|
35
|
+
* @description Enable a deepbook pool for margin trading
|
|
36
|
+
* @param {string} poolKey The key of the pool to be enabled
|
|
37
|
+
* @returns A function that takes a Transaction object
|
|
38
|
+
*/
|
|
39
|
+
enableDeepbookPool: (poolKey: string) => (tx: Transaction) => void;
|
|
40
|
+
/**
|
|
41
|
+
* @description Disable a deepbook pool from margin trading
|
|
42
|
+
* @param {string} poolKey The key of the pool to be disabled
|
|
43
|
+
* @returns A function that takes a Transaction object
|
|
44
|
+
*/
|
|
45
|
+
disableDeepbookPool: (poolKey: string) => (tx: Transaction) => void;
|
|
46
|
+
/**
|
|
47
|
+
* @description Update the risk parameters for a margin
|
|
48
|
+
* @param {string} poolKey The key of the pool to be updated
|
|
49
|
+
* @param {TransactionArgument} poolConfig The configuration of the pool
|
|
50
|
+
* @returns A function that takes a Transaction object
|
|
51
|
+
*/
|
|
52
|
+
updateRiskParams: (poolKey: string, poolConfig: TransactionArgument) => (tx: Transaction) => void;
|
|
53
|
+
/**
|
|
54
|
+
* @description Add the PythConfig to the margin registry
|
|
55
|
+
* @param {Transaction} tx The transaction object
|
|
56
|
+
* @param {TransactionArgument} config The config to be added
|
|
57
|
+
* @returns A function that takes a Transaction object
|
|
58
|
+
*/
|
|
59
|
+
addConfig: (config: TransactionArgument) => (tx: Transaction) => void;
|
|
60
|
+
/**
|
|
61
|
+
* @description Remove the PythConfig from the margin registry
|
|
62
|
+
* @param {Transaction} tx The transaction object
|
|
63
|
+
* @returns A function that takes a Transaction object
|
|
64
|
+
*/
|
|
65
|
+
removeConfig: () => (tx: Transaction) => void;
|
|
66
|
+
/**
|
|
67
|
+
* @description Enable a specific version
|
|
68
|
+
* @param {number} version The version to be enabled
|
|
69
|
+
* @returns A function that takes a Transaction object
|
|
70
|
+
*/
|
|
71
|
+
enableVersion: (version: number) => (tx: Transaction) => void;
|
|
72
|
+
/**
|
|
73
|
+
* @description Disable a specific version
|
|
74
|
+
* @param {number} version The version to be disabled
|
|
75
|
+
* @returns A function that takes a Transaction object
|
|
76
|
+
*/
|
|
77
|
+
disableVersion: (version: number) => (tx: Transaction) => void;
|
|
78
|
+
/**
|
|
79
|
+
* @description Create a new pool config
|
|
80
|
+
* @param {string} poolKey The key to identify the pool
|
|
81
|
+
* @param {PoolConfigParams} poolConfigParams The parameters for the pool config
|
|
82
|
+
* @returns A function that takes a Transaction object
|
|
83
|
+
*/
|
|
84
|
+
newPoolConfig: (poolKey: string, poolConfigParams: PoolConfigParams) => (tx: Transaction) => _haneullabs_haneul_transactions19.TransactionResult;
|
|
85
|
+
/**
|
|
86
|
+
* @description Create a new pool config with leverage
|
|
87
|
+
* @param {string} poolKey The key to identify the pool
|
|
88
|
+
* @param {number} leverage The leverage for the pool
|
|
89
|
+
* @returns A function that takes a Transaction object
|
|
90
|
+
*/
|
|
91
|
+
newPoolConfigWithLeverage: (poolKey: string, leverage: number) => (tx: Transaction) => void;
|
|
92
|
+
/**
|
|
93
|
+
* @description Create a new coin type data
|
|
94
|
+
* @param {string} coinKey The key to identify the coin
|
|
95
|
+
* @param {number} maxConfBps The maximum confidence interval in basis points
|
|
96
|
+
* @param {number} maxEwmaDifferenceBps The maximum EWMA difference in basis points
|
|
97
|
+
* @returns A function that takes a Transaction object
|
|
98
|
+
*/
|
|
99
|
+
newCoinTypeData: (coinKey: string, maxConfBps: number, maxEwmaDifferenceBps: number) => (tx: Transaction) => _haneullabs_haneul_transactions19.TransactionResult;
|
|
100
|
+
/**
|
|
101
|
+
* @description Create a new Pyth config
|
|
102
|
+
* @param {Array<{coinKey: string, maxConfBps: number, maxEwmaDifferenceBps: number}>} coinSetups The coins with their oracle config to be added to the Pyth config
|
|
103
|
+
* @param {number} maxAgeSeconds The max age in seconds for the Pyth config
|
|
104
|
+
* @returns A function that takes a Transaction object
|
|
105
|
+
*/
|
|
106
|
+
newPythConfig: (coinSetups: Array<{
|
|
107
|
+
coinKey: string;
|
|
108
|
+
maxConfBps: number;
|
|
109
|
+
maxEwmaDifferenceBps: number;
|
|
110
|
+
}>, maxAgeSeconds: number) => (tx: Transaction) => _haneullabs_haneul_transactions19.TransactionResult;
|
|
111
|
+
/**
|
|
112
|
+
* @description Mint a pause cap
|
|
113
|
+
* @returns A function that takes a Transaction object
|
|
114
|
+
*/
|
|
115
|
+
mintPauseCap: () => (tx: Transaction) => _haneullabs_haneul_transactions19.TransactionResult;
|
|
116
|
+
/**
|
|
117
|
+
* @description Revoke a pause cap
|
|
118
|
+
* @param {string} pauseCapId The ID of the pause cap to revoke
|
|
119
|
+
* @returns A function that takes a Transaction object
|
|
120
|
+
*/
|
|
121
|
+
revokePauseCap: (pauseCapId: string) => (tx: Transaction) => void;
|
|
122
|
+
/**
|
|
123
|
+
* @description Disable a version using pause cap
|
|
124
|
+
* @param {number} version The version to disable
|
|
125
|
+
* @param {string} pauseCapId The ID of the pause cap
|
|
126
|
+
* @returns A function that takes a Transaction object
|
|
127
|
+
*/
|
|
128
|
+
disableVersionPauseCap: (version: number, pauseCapId: string) => (tx: Transaction) => void;
|
|
129
|
+
/**
|
|
130
|
+
* @description Withdraw the default referral fees (admin only)
|
|
131
|
+
* The default referral at 0x0 doesn't have a SupplyReferral object
|
|
132
|
+
* @param {string} coinKey The key to identify the margin pool
|
|
133
|
+
* @returns A function that takes a Transaction object and returns a Coin<Asset>
|
|
134
|
+
*/
|
|
135
|
+
adminWithdrawDefaultReferralFees: (coinKey: string) => (tx: Transaction) => _haneullabs_haneul_transactions19.TransactionResult;
|
|
136
|
+
}
|
|
137
|
+
//#endregion
|
|
138
|
+
export { MarginAdminContract };
|
|
139
|
+
//# sourceMappingURL=marginAdmin.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marginAdmin.d.mts","names":[],"sources":["../../src/transactions/marginAdmin.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAcA;AAMqB,cANR,mBAAA,CAMQ;EAoBW,CAAA,OAAA;EAAW;;;EAkCkB,WAAA,CAAA,MAAA,EAtDxC,cAsDwC;EAsBb;;;;EAkE1B,iBAAA,EAAA,GAAA,GAAA,CAAA,EAAA,EA1HU,WA0HV,EAAA,GA1HqB,iCAAA,CAAA,iBA0HrB;EAA6B;;;;EA+DE,mBAAA,EAAA,CAAA,eAAA,EAAA,MAAA,EAAA,GAAA,CAAA,EAAA,EA1KI,WA0KJ,EAAA,GAAA,IAAA;EAA0B;;;;;;EAsFxE,oBAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EA7OyB,mBA6OzB,EAAA,GAAA,CAAA,EAAA,EA7OsD,WA6OtD,EAAA,GAAA,IAAA;EAAW;;;;;EA0E4C,kBAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,CAAA,EAAA,EAjSd,WAiSc,EAAA,GAAA,IAAA;EAAW;;;;;iDA5QxB;;;;;;;kDAsBC,6BAA6B;;;;;;;sBAuBzD,6BAA6B;;;;;;2BAiBxB;;;;;;2CAagB;;;;;;4CAgBC;;;;;;;qDAiBS,0BAA0B,gBAAW,iCAAA,CAAA;;;;;;;yEAiCjB;;;;;;;;+FAsBK,gBAAW,iCAAA,CAAA;;;;;;;8BA4B1E;;;;qCAGR,gBAAW,iCAAA,CAAA;;;;;2BAuBS,gBAAW,iCAAA,CAAA;;;;;;+CAgBS;;;;;;;wEAkByB;;;;;;;8DAiBV,gBAAW,iCAAA,CAAA"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import { FLOAT_SCALAR } from "../utils/config.mjs";
|
|
2
|
+
import { hexToBytes } from "@noble/hashes/utils.js";
|
|
3
|
+
|
|
4
|
+
//#region src/transactions/marginAdmin.ts
|
|
5
|
+
/**
|
|
6
|
+
* MarginAdminContract class for managing admin actions.
|
|
7
|
+
*/
|
|
8
|
+
var MarginAdminContract = class {
|
|
9
|
+
#config;
|
|
10
|
+
/**
|
|
11
|
+
* @param {DeepBookConfig} config Configuration for MarginAdminContract
|
|
12
|
+
*/
|
|
13
|
+
constructor(config) {
|
|
14
|
+
this.mintMaintainerCap = () => (tx) => {
|
|
15
|
+
return tx.moveCall({
|
|
16
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::mint_maintainer_cap`,
|
|
17
|
+
arguments: [
|
|
18
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
19
|
+
tx.object(this.#marginAdminCap()),
|
|
20
|
+
tx.object.clock()
|
|
21
|
+
]
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
this.revokeMaintainerCap = (maintainerCapId) => (tx) => {
|
|
25
|
+
tx.moveCall({
|
|
26
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::revoke_maintainer_cap`,
|
|
27
|
+
arguments: [
|
|
28
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
29
|
+
tx.object(this.#marginAdminCap()),
|
|
30
|
+
tx.object(maintainerCapId),
|
|
31
|
+
tx.object.clock()
|
|
32
|
+
]
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
this.registerDeepbookPool = (poolKey, poolConfig) => (tx) => {
|
|
36
|
+
const pool = this.#config.getPool(poolKey);
|
|
37
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
38
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
39
|
+
tx.moveCall({
|
|
40
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::register_deepbook_pool`,
|
|
41
|
+
arguments: [
|
|
42
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
43
|
+
tx.object(this.#marginAdminCap()),
|
|
44
|
+
tx.object(pool.address),
|
|
45
|
+
poolConfig,
|
|
46
|
+
tx.object.clock()
|
|
47
|
+
],
|
|
48
|
+
typeArguments: [baseCoin.type, quoteCoin.type]
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
this.enableDeepbookPool = (poolKey) => (tx) => {
|
|
52
|
+
const pool = this.#config.getPool(poolKey);
|
|
53
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
54
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
55
|
+
tx.moveCall({
|
|
56
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::enable_deepbook_pool`,
|
|
57
|
+
arguments: [
|
|
58
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
59
|
+
tx.object(this.#marginAdminCap()),
|
|
60
|
+
tx.object(pool.address),
|
|
61
|
+
tx.object.clock()
|
|
62
|
+
],
|
|
63
|
+
typeArguments: [baseCoin.type, quoteCoin.type]
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
this.disableDeepbookPool = (poolKey) => (tx) => {
|
|
67
|
+
const pool = this.#config.getPool(poolKey);
|
|
68
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
69
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
70
|
+
tx.moveCall({
|
|
71
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::disable_deepbook_pool`,
|
|
72
|
+
arguments: [
|
|
73
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
74
|
+
tx.object(this.#marginAdminCap()),
|
|
75
|
+
tx.object(pool.address),
|
|
76
|
+
tx.object.clock()
|
|
77
|
+
],
|
|
78
|
+
typeArguments: [baseCoin.type, quoteCoin.type]
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
this.updateRiskParams = (poolKey, poolConfig) => (tx) => {
|
|
82
|
+
const pool = this.#config.getPool(poolKey);
|
|
83
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
84
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
85
|
+
tx.moveCall({
|
|
86
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::update_risk_params`,
|
|
87
|
+
arguments: [
|
|
88
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
89
|
+
tx.object(this.#marginAdminCap()),
|
|
90
|
+
tx.object(pool.address),
|
|
91
|
+
poolConfig,
|
|
92
|
+
tx.object.clock()
|
|
93
|
+
],
|
|
94
|
+
typeArguments: [baseCoin.type, quoteCoin.type]
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
this.addConfig = (config$1) => (tx) => {
|
|
98
|
+
tx.moveCall({
|
|
99
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::add_config`,
|
|
100
|
+
arguments: [
|
|
101
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
102
|
+
tx.object(this.#marginAdminCap()),
|
|
103
|
+
config$1
|
|
104
|
+
],
|
|
105
|
+
typeArguments: [`${this.#config.MARGIN_PACKAGE_ID}::oracle::PythConfig`]
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
this.removeConfig = () => (tx) => {
|
|
109
|
+
tx.moveCall({
|
|
110
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::remove_config`,
|
|
111
|
+
arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.object(this.#marginAdminCap())],
|
|
112
|
+
typeArguments: [`${this.#config.MARGIN_PACKAGE_ID}::oracle::PythConfig`]
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
this.enableVersion = (version) => (tx) => {
|
|
116
|
+
tx.moveCall({
|
|
117
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::enable_version`,
|
|
118
|
+
arguments: [
|
|
119
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
120
|
+
tx.pure.u64(version),
|
|
121
|
+
tx.object(this.#marginAdminCap())
|
|
122
|
+
]
|
|
123
|
+
});
|
|
124
|
+
};
|
|
125
|
+
this.disableVersion = (version) => (tx) => {
|
|
126
|
+
tx.moveCall({
|
|
127
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::disable_version`,
|
|
128
|
+
arguments: [
|
|
129
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
130
|
+
tx.pure.u64(version),
|
|
131
|
+
tx.object(this.#marginAdminCap())
|
|
132
|
+
]
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
this.newPoolConfig = (poolKey, poolConfigParams) => (tx) => {
|
|
136
|
+
const pool = this.#config.getPool(poolKey);
|
|
137
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
138
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
139
|
+
const { minWithdrawRiskRatio, minBorrowRiskRatio, liquidationRiskRatio, targetLiquidationRiskRatio, userLiquidationReward, poolLiquidationReward } = poolConfigParams;
|
|
140
|
+
return tx.moveCall({
|
|
141
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::new_pool_config`,
|
|
142
|
+
arguments: [
|
|
143
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
144
|
+
tx.pure.u64(Math.round(minWithdrawRiskRatio * FLOAT_SCALAR)),
|
|
145
|
+
tx.pure.u64(Math.round(minBorrowRiskRatio * FLOAT_SCALAR)),
|
|
146
|
+
tx.pure.u64(Math.round(liquidationRiskRatio * FLOAT_SCALAR)),
|
|
147
|
+
tx.pure.u64(Math.round(targetLiquidationRiskRatio * FLOAT_SCALAR)),
|
|
148
|
+
tx.pure.u64(Math.round(userLiquidationReward * FLOAT_SCALAR)),
|
|
149
|
+
tx.pure.u64(Math.round(poolLiquidationReward * FLOAT_SCALAR))
|
|
150
|
+
],
|
|
151
|
+
typeArguments: [baseCoin.type, quoteCoin.type]
|
|
152
|
+
});
|
|
153
|
+
};
|
|
154
|
+
this.newPoolConfigWithLeverage = (poolKey, leverage) => (tx) => {
|
|
155
|
+
const pool = this.#config.getPool(poolKey);
|
|
156
|
+
const baseCoin = this.#config.getCoin(pool.baseCoin);
|
|
157
|
+
const quoteCoin = this.#config.getCoin(pool.quoteCoin);
|
|
158
|
+
tx.moveCall({
|
|
159
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::new_pool_config_with_leverage`,
|
|
160
|
+
arguments: [tx.object(this.#config.MARGIN_REGISTRY_ID), tx.pure.u64(Math.round(leverage * FLOAT_SCALAR))],
|
|
161
|
+
typeArguments: [baseCoin.type, quoteCoin.type]
|
|
162
|
+
});
|
|
163
|
+
};
|
|
164
|
+
this.newCoinTypeData = (coinKey, maxConfBps, maxEwmaDifferenceBps) => (tx) => {
|
|
165
|
+
const coin = this.#config.getCoin(coinKey);
|
|
166
|
+
if (!coin.feed) throw new Error("Coin feed not found");
|
|
167
|
+
const priceFeedInput = new Uint8Array(hexToBytes(coin["feed"].startsWith("0x") ? coin.feed.slice(2) : coin["feed"]));
|
|
168
|
+
return tx.moveCall({
|
|
169
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::oracle::new_coin_type_data_from_currency`,
|
|
170
|
+
arguments: [
|
|
171
|
+
tx.object(coin.currencyId),
|
|
172
|
+
tx.pure.vector("u8", priceFeedInput),
|
|
173
|
+
tx.pure.u64(maxConfBps),
|
|
174
|
+
tx.pure.u64(maxEwmaDifferenceBps)
|
|
175
|
+
],
|
|
176
|
+
typeArguments: [coin.type]
|
|
177
|
+
});
|
|
178
|
+
};
|
|
179
|
+
this.newPythConfig = (coinSetups, maxAgeSeconds) => (tx) => {
|
|
180
|
+
const coinTypeDataList = [];
|
|
181
|
+
for (const setup of coinSetups) coinTypeDataList.push(this.newCoinTypeData(setup.coinKey, setup.maxConfBps, setup.maxEwmaDifferenceBps)(tx));
|
|
182
|
+
return tx.moveCall({
|
|
183
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::oracle::new_pyth_config`,
|
|
184
|
+
arguments: [tx.makeMoveVec({
|
|
185
|
+
elements: coinTypeDataList,
|
|
186
|
+
type: `${this.#config.MARGIN_PACKAGE_ID}::oracle::CoinTypeData`
|
|
187
|
+
}), tx.pure.u64(maxAgeSeconds)]
|
|
188
|
+
});
|
|
189
|
+
};
|
|
190
|
+
this.mintPauseCap = () => (tx) => {
|
|
191
|
+
return tx.moveCall({
|
|
192
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::mint_pause_cap`,
|
|
193
|
+
arguments: [
|
|
194
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
195
|
+
tx.object(this.#marginAdminCap()),
|
|
196
|
+
tx.object.clock()
|
|
197
|
+
]
|
|
198
|
+
});
|
|
199
|
+
};
|
|
200
|
+
this.revokePauseCap = (pauseCapId) => (tx) => {
|
|
201
|
+
tx.moveCall({
|
|
202
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::revoke_pause_cap`,
|
|
203
|
+
arguments: [
|
|
204
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
205
|
+
tx.object(this.#marginAdminCap()),
|
|
206
|
+
tx.object.clock(),
|
|
207
|
+
tx.pure.id(pauseCapId)
|
|
208
|
+
]
|
|
209
|
+
});
|
|
210
|
+
};
|
|
211
|
+
this.disableVersionPauseCap = (version, pauseCapId) => (tx) => {
|
|
212
|
+
tx.moveCall({
|
|
213
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_registry::disable_version_pause_cap`,
|
|
214
|
+
arguments: [
|
|
215
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
216
|
+
tx.pure.u64(version),
|
|
217
|
+
tx.object(pauseCapId)
|
|
218
|
+
]
|
|
219
|
+
});
|
|
220
|
+
};
|
|
221
|
+
this.adminWithdrawDefaultReferralFees = (coinKey) => (tx) => {
|
|
222
|
+
const coin = this.#config.getCoin(coinKey);
|
|
223
|
+
const marginPool = this.#config.getMarginPool(coinKey);
|
|
224
|
+
return tx.moveCall({
|
|
225
|
+
target: `${this.#config.MARGIN_PACKAGE_ID}::margin_pool::admin_withdraw_default_referral_fees`,
|
|
226
|
+
arguments: [
|
|
227
|
+
tx.object(marginPool.address),
|
|
228
|
+
tx.object(this.#config.MARGIN_REGISTRY_ID),
|
|
229
|
+
tx.object(this.#marginAdminCap())
|
|
230
|
+
],
|
|
231
|
+
typeArguments: [coin.type]
|
|
232
|
+
});
|
|
233
|
+
};
|
|
234
|
+
this.#config = config;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* @returns The admin capability required for admin operations
|
|
238
|
+
* @throws Error if the admin capability is not set
|
|
239
|
+
*/
|
|
240
|
+
#marginAdminCap() {
|
|
241
|
+
const marginAdminCap = this.#config.marginAdminCap;
|
|
242
|
+
if (!marginAdminCap) throw new Error("MARGIN_ADMIN_CAP environment variable not set");
|
|
243
|
+
return marginAdminCap;
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
//#endregion
|
|
248
|
+
export { MarginAdminContract };
|
|
249
|
+
//# sourceMappingURL=marginAdmin.mjs.map
|