@haneullabs/deepbook-v3 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +984 -0
- package/README.md +1 -0
- package/dist/cjs/client.d.ts +861 -0
- package/dist/cjs/client.js +1982 -0
- package/dist/cjs/client.js.map +7 -0
- package/dist/cjs/contracts/deepbook/account.d.ts +105 -0
- package/dist/cjs/contracts/deepbook/account.js +163 -0
- package/dist/cjs/contracts/deepbook/account.js.map +7 -0
- package/dist/cjs/contracts/deepbook/balance_manager.d.ts +268 -0
- package/dist/cjs/contracts/deepbook/balance_manager.js +361 -0
- package/dist/cjs/contracts/deepbook/balance_manager.js.map +7 -0
- package/dist/cjs/contracts/deepbook/balances.d.ts +10 -0
- package/dist/cjs/contracts/deepbook/balances.js +35 -0
- package/dist/cjs/contracts/deepbook/balances.js.map +7 -0
- package/dist/cjs/contracts/deepbook/big_vector.d.ts +62 -0
- package/dist/cjs/contracts/deepbook/big_vector.js +80 -0
- package/dist/cjs/contracts/deepbook/big_vector.js.map +7 -0
- package/dist/cjs/contracts/deepbook/book.d.ts +34 -0
- package/dist/cjs/contracts/deepbook/book.js +50 -0
- package/dist/cjs/contracts/deepbook/book.js.map +7 -0
- package/dist/cjs/contracts/deepbook/constants.d.ts +176 -0
- package/dist/cjs/contracts/deepbook/constants.js +338 -0
- package/dist/cjs/contracts/deepbook/constants.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deep_price.d.ts +60 -0
- package/dist/cjs/contracts/deepbook/deep_price.js +87 -0
- package/dist/cjs/contracts/deepbook/deep_price.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deps/std/type_name.d.ts +14 -0
- package/dist/cjs/contracts/deepbook/deps/std/type_name.js +42 -0
- package/dist/cjs/contracts/deepbook/deps/std/type_name.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deps/sui/bag.d.ts +33 -0
- package/dist/cjs/contracts/deepbook/deps/sui/bag.js +47 -0
- package/dist/cjs/contracts/deepbook/deps/sui/bag.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deps/sui/balance.d.ts +9 -0
- package/dist/cjs/contracts/deepbook/deps/sui/balance.js +33 -0
- package/dist/cjs/contracts/deepbook/deps/sui/balance.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deps/sui/object.d.ts +5 -0
- package/dist/cjs/contracts/deepbook/deps/sui/object.js +33 -0
- package/dist/cjs/contracts/deepbook/deps/sui/object.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deps/sui/table.d.ts +28 -0
- package/dist/cjs/contracts/deepbook/deps/sui/table.js +47 -0
- package/dist/cjs/contracts/deepbook/deps/sui/table.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deps/sui/vec_map.d.ts +27 -0
- package/dist/cjs/contracts/deepbook/deps/sui/vec_map.js +45 -0
- package/dist/cjs/contracts/deepbook/deps/sui/vec_map.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deps/sui/vec_set.d.ts +15 -0
- package/dist/cjs/contracts/deepbook/deps/sui/vec_set.js +35 -0
- package/dist/cjs/contracts/deepbook/deps/sui/vec_set.js.map +7 -0
- package/dist/cjs/contracts/deepbook/deps/sui/versioned.d.ts +7 -0
- package/dist/cjs/contracts/deepbook/deps/sui/versioned.js +45 -0
- package/dist/cjs/contracts/deepbook/deps/sui/versioned.js.map +7 -0
- package/dist/cjs/contracts/deepbook/ewma.d.ts +17 -0
- package/dist/cjs/contracts/deepbook/ewma.js +39 -0
- package/dist/cjs/contracts/deepbook/ewma.js.map +7 -0
- package/dist/cjs/contracts/deepbook/fill.d.ts +153 -0
- package/dist/cjs/contracts/deepbook/fill.js +251 -0
- package/dist/cjs/contracts/deepbook/fill.js.map +7 -0
- package/dist/cjs/contracts/deepbook/governance.d.ts +63 -0
- package/dist/cjs/contracts/deepbook/governance.js +79 -0
- package/dist/cjs/contracts/deepbook/governance.js.map +7 -0
- package/dist/cjs/contracts/deepbook/history.d.ts +60 -0
- package/dist/cjs/contracts/deepbook/history.js +78 -0
- package/dist/cjs/contracts/deepbook/history.js.map +7 -0
- package/dist/cjs/contracts/deepbook/math.d.ts +94 -0
- package/dist/cjs/contracts/deepbook/math.js +132 -0
- package/dist/cjs/contracts/deepbook/math.js.map +7 -0
- package/dist/cjs/contracts/deepbook/order.d.ts +135 -0
- package/dist/cjs/contracts/deepbook/order.js +218 -0
- package/dist/cjs/contracts/deepbook/order.js.map +7 -0
- package/dist/cjs/contracts/deepbook/order_info.d.ts +296 -0
- package/dist/cjs/contracts/deepbook/order_info.js +386 -0
- package/dist/cjs/contracts/deepbook/order_info.js.map +7 -0
- package/dist/cjs/contracts/deepbook/order_query.d.ts +85 -0
- package/dist/cjs/contracts/deepbook/order_query.js +96 -0
- package/dist/cjs/contracts/deepbook/order_query.js.map +7 -0
- package/dist/cjs/contracts/deepbook/pool.d.ts +1218 -0
- package/dist/cjs/contracts/deepbook/pool.js +1236 -0
- package/dist/cjs/contracts/deepbook/pool.js.map +7 -0
- package/dist/cjs/contracts/deepbook/registry.d.ts +134 -0
- package/dist/cjs/contracts/deepbook/registry.js +182 -0
- package/dist/cjs/contracts/deepbook/registry.js.map +7 -0
- package/dist/cjs/contracts/deepbook/state.d.ts +117 -0
- package/dist/cjs/contracts/deepbook/state.js +104 -0
- package/dist/cjs/contracts/deepbook/state.js.map +7 -0
- package/dist/cjs/contracts/deepbook/trade_params.d.ts +7 -0
- package/dist/cjs/contracts/deepbook/trade_params.js +35 -0
- package/dist/cjs/contracts/deepbook/trade_params.js.map +7 -0
- package/dist/cjs/contracts/deepbook/vault.d.ts +30 -0
- package/dist/cjs/contracts/deepbook/vault.js +65 -0
- package/dist/cjs/contracts/deepbook/vault.js.map +7 -0
- package/dist/cjs/contracts/utils/index.d.ts +25 -0
- package/dist/cjs/contracts/utils/index.js +148 -0
- package/dist/cjs/contracts/utils/index.js.map +7 -0
- package/dist/cjs/index.d.ts +23 -0
- package/dist/cjs/index.js +81 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/package.json +4 -0
- package/dist/cjs/pyth/PriceServiceConnection.d.ts +26 -0
- package/dist/cjs/pyth/PriceServiceConnection.js +68 -0
- package/dist/cjs/pyth/PriceServiceConnection.js.map +7 -0
- package/dist/cjs/pyth/pyth-helpers.d.ts +7 -0
- package/dist/cjs/pyth/pyth-helpers.js +36 -0
- package/dist/cjs/pyth/pyth-helpers.js.map +7 -0
- package/dist/cjs/pyth/pyth.d.ts +65 -0
- package/dist/cjs/pyth/pyth.js +269 -0
- package/dist/cjs/pyth/pyth.js.map +7 -0
- package/dist/cjs/transactions/balanceManager.d.ts +168 -0
- package/dist/cjs/transactions/balanceManager.js +384 -0
- package/dist/cjs/transactions/balanceManager.js.map +7 -0
- package/dist/cjs/transactions/deepbook.d.ts +477 -0
- package/dist/cjs/transactions/deepbook.js +1335 -0
- package/dist/cjs/transactions/deepbook.js.map +7 -0
- package/dist/cjs/transactions/deepbookAdmin.d.ts +105 -0
- package/dist/cjs/transactions/deepbookAdmin.js +334 -0
- package/dist/cjs/transactions/deepbookAdmin.js.map +7 -0
- package/dist/cjs/transactions/flashLoans.d.ts +56 -0
- package/dist/cjs/transactions/flashLoans.js +124 -0
- package/dist/cjs/transactions/flashLoans.js.map +7 -0
- package/dist/cjs/transactions/governance.d.ts +42 -0
- package/dist/cjs/transactions/governance.js +135 -0
- package/dist/cjs/transactions/governance.js.map +7 -0
- package/dist/cjs/transactions/marginAdmin.d.ts +133 -0
- package/dist/cjs/transactions/marginAdmin.js +393 -0
- package/dist/cjs/transactions/marginAdmin.js.map +7 -0
- package/dist/cjs/transactions/marginLiquidations.d.ts +61 -0
- package/dist/cjs/transactions/marginLiquidations.js +173 -0
- package/dist/cjs/transactions/marginLiquidations.js.map +7 -0
- package/dist/cjs/transactions/marginMaintainer.d.ts +80 -0
- package/dist/cjs/transactions/marginMaintainer.js +251 -0
- package/dist/cjs/transactions/marginMaintainer.js.map +7 -0
- package/dist/cjs/transactions/marginManager.d.ts +236 -0
- package/dist/cjs/transactions/marginManager.js +688 -0
- package/dist/cjs/transactions/marginManager.js.map +7 -0
- package/dist/cjs/transactions/marginPool.d.ts +134 -0
- package/dist/cjs/transactions/marginPool.js +330 -0
- package/dist/cjs/transactions/marginPool.js.map +7 -0
- package/dist/cjs/transactions/marginRegistry.d.ts +94 -0
- package/dist/cjs/transactions/marginRegistry.js +221 -0
- package/dist/cjs/transactions/marginRegistry.js.map +7 -0
- package/dist/cjs/transactions/marginTPSL.d.ts +93 -0
- package/dist/cjs/transactions/marginTPSL.js +286 -0
- package/dist/cjs/transactions/marginTPSL.js.map +7 -0
- package/dist/cjs/transactions/poolProxy.d.ts +104 -0
- package/dist/cjs/transactions/poolProxy.js +435 -0
- package/dist/cjs/transactions/poolProxy.js.map +7 -0
- package/dist/cjs/types/bcs.d.ts +5 -0
- package/dist/cjs/types/bcs.js +33 -0
- package/dist/cjs/types/bcs.js.map +7 -0
- package/dist/cjs/types/index.d.ts +218 -0
- package/dist/cjs/types/index.js +38 -0
- package/dist/cjs/types/index.js.map +7 -0
- package/dist/cjs/utils/config.d.ts +65 -0
- package/dist/cjs/utils/config.js +144 -0
- package/dist/cjs/utils/config.js.map +7 -0
- package/dist/cjs/utils/constants.d.ts +76 -0
- package/dist/cjs/utils/constants.js +382 -0
- package/dist/cjs/utils/constants.js.map +7 -0
- package/dist/cjs/utils/errors.d.ts +42 -0
- package/dist/cjs/utils/errors.js +70 -0
- package/dist/cjs/utils/errors.js.map +7 -0
- package/dist/cjs/utils/validation.d.ts +50 -0
- package/dist/cjs/utils/validation.js +67 -0
- package/dist/cjs/utils/validation.js.map +7 -0
- package/dist/esm/client.d.ts +861 -0
- package/dist/esm/client.js +1967 -0
- package/dist/esm/client.js.map +7 -0
- package/dist/esm/contracts/deepbook/account.d.ts +105 -0
- package/dist/esm/contracts/deepbook/account.js +133 -0
- package/dist/esm/contracts/deepbook/account.js.map +7 -0
- package/dist/esm/contracts/deepbook/balance_manager.d.ts +268 -0
- package/dist/esm/contracts/deepbook/balance_manager.js +331 -0
- package/dist/esm/contracts/deepbook/balance_manager.js.map +7 -0
- package/dist/esm/contracts/deepbook/balances.d.ts +10 -0
- package/dist/esm/contracts/deepbook/balances.js +15 -0
- package/dist/esm/contracts/deepbook/balances.js.map +7 -0
- package/dist/esm/contracts/deepbook/big_vector.d.ts +62 -0
- package/dist/esm/contracts/deepbook/big_vector.js +50 -0
- package/dist/esm/contracts/deepbook/big_vector.js.map +7 -0
- package/dist/esm/contracts/deepbook/book.d.ts +34 -0
- package/dist/esm/contracts/deepbook/book.js +20 -0
- package/dist/esm/contracts/deepbook/book.js.map +7 -0
- package/dist/esm/contracts/deepbook/constants.d.ts +176 -0
- package/dist/esm/contracts/deepbook/constants.js +318 -0
- package/dist/esm/contracts/deepbook/constants.js.map +7 -0
- package/dist/esm/contracts/deepbook/deep_price.d.ts +60 -0
- package/dist/esm/contracts/deepbook/deep_price.js +67 -0
- package/dist/esm/contracts/deepbook/deep_price.js.map +7 -0
- package/dist/esm/contracts/deepbook/deps/std/type_name.d.ts +14 -0
- package/dist/esm/contracts/deepbook/deps/std/type_name.js +22 -0
- package/dist/esm/contracts/deepbook/deps/std/type_name.js.map +7 -0
- package/dist/esm/contracts/deepbook/deps/sui/bag.d.ts +33 -0
- package/dist/esm/contracts/deepbook/deps/sui/bag.js +17 -0
- package/dist/esm/contracts/deepbook/deps/sui/bag.js.map +7 -0
- package/dist/esm/contracts/deepbook/deps/sui/balance.d.ts +9 -0
- package/dist/esm/contracts/deepbook/deps/sui/balance.js +13 -0
- package/dist/esm/contracts/deepbook/deps/sui/balance.js.map +7 -0
- package/dist/esm/contracts/deepbook/deps/sui/object.d.ts +5 -0
- package/dist/esm/contracts/deepbook/deps/sui/object.js +13 -0
- package/dist/esm/contracts/deepbook/deps/sui/object.js.map +7 -0
- package/dist/esm/contracts/deepbook/deps/sui/table.d.ts +28 -0
- package/dist/esm/contracts/deepbook/deps/sui/table.js +17 -0
- package/dist/esm/contracts/deepbook/deps/sui/table.js.map +7 -0
- package/dist/esm/contracts/deepbook/deps/sui/vec_map.d.ts +27 -0
- package/dist/esm/contracts/deepbook/deps/sui/vec_map.js +25 -0
- package/dist/esm/contracts/deepbook/deps/sui/vec_map.js.map +7 -0
- package/dist/esm/contracts/deepbook/deps/sui/vec_set.d.ts +15 -0
- package/dist/esm/contracts/deepbook/deps/sui/vec_set.js +15 -0
- package/dist/esm/contracts/deepbook/deps/sui/vec_set.js.map +7 -0
- package/dist/esm/contracts/deepbook/deps/sui/versioned.d.ts +7 -0
- package/dist/esm/contracts/deepbook/deps/sui/versioned.js +15 -0
- package/dist/esm/contracts/deepbook/deps/sui/versioned.js.map +7 -0
- package/dist/esm/contracts/deepbook/ewma.d.ts +17 -0
- package/dist/esm/contracts/deepbook/ewma.js +19 -0
- package/dist/esm/contracts/deepbook/ewma.js.map +7 -0
- package/dist/esm/contracts/deepbook/fill.d.ts +153 -0
- package/dist/esm/contracts/deepbook/fill.js +221 -0
- package/dist/esm/contracts/deepbook/fill.js.map +7 -0
- package/dist/esm/contracts/deepbook/governance.d.ts +63 -0
- package/dist/esm/contracts/deepbook/governance.js +49 -0
- package/dist/esm/contracts/deepbook/governance.js.map +7 -0
- package/dist/esm/contracts/deepbook/history.d.ts +60 -0
- package/dist/esm/contracts/deepbook/history.js +48 -0
- package/dist/esm/contracts/deepbook/history.js.map +7 -0
- package/dist/esm/contracts/deepbook/math.d.ts +94 -0
- package/dist/esm/contracts/deepbook/math.js +112 -0
- package/dist/esm/contracts/deepbook/math.js.map +7 -0
- package/dist/esm/contracts/deepbook/order.d.ts +135 -0
- package/dist/esm/contracts/deepbook/order.js +188 -0
- package/dist/esm/contracts/deepbook/order.js.map +7 -0
- package/dist/esm/contracts/deepbook/order_info.d.ts +296 -0
- package/dist/esm/contracts/deepbook/order_info.js +356 -0
- package/dist/esm/contracts/deepbook/order_info.js.map +7 -0
- package/dist/esm/contracts/deepbook/order_query.d.ts +85 -0
- package/dist/esm/contracts/deepbook/order_query.js +66 -0
- package/dist/esm/contracts/deepbook/order_query.js.map +7 -0
- package/dist/esm/contracts/deepbook/pool.d.ts +1218 -0
- package/dist/esm/contracts/deepbook/pool.js +1206 -0
- package/dist/esm/contracts/deepbook/pool.js.map +7 -0
- package/dist/esm/contracts/deepbook/registry.d.ts +134 -0
- package/dist/esm/contracts/deepbook/registry.js +152 -0
- package/dist/esm/contracts/deepbook/registry.js.map +7 -0
- package/dist/esm/contracts/deepbook/state.d.ts +117 -0
- package/dist/esm/contracts/deepbook/state.js +74 -0
- package/dist/esm/contracts/deepbook/state.js.map +7 -0
- package/dist/esm/contracts/deepbook/trade_params.d.ts +7 -0
- package/dist/esm/contracts/deepbook/trade_params.js +15 -0
- package/dist/esm/contracts/deepbook/trade_params.js.map +7 -0
- package/dist/esm/contracts/deepbook/vault.d.ts +30 -0
- package/dist/esm/contracts/deepbook/vault.js +35 -0
- package/dist/esm/contracts/deepbook/vault.js.map +7 -0
- package/dist/esm/contracts/utils/index.d.ts +25 -0
- package/dist/esm/contracts/utils/index.js +128 -0
- package/dist/esm/contracts/utils/index.js.map +7 -0
- package/dist/esm/index.d.ts +23 -0
- package/dist/esm/index.js +81 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/package.json +4 -0
- package/dist/esm/pyth/PriceServiceConnection.d.ts +26 -0
- package/dist/esm/pyth/PriceServiceConnection.js +38 -0
- package/dist/esm/pyth/PriceServiceConnection.js.map +7 -0
- package/dist/esm/pyth/pyth-helpers.d.ts +7 -0
- package/dist/esm/pyth/pyth-helpers.js +16 -0
- package/dist/esm/pyth/pyth-helpers.js.map +7 -0
- package/dist/esm/pyth/pyth.d.ts +65 -0
- package/dist/esm/pyth/pyth.js +249 -0
- package/dist/esm/pyth/pyth.js.map +7 -0
- package/dist/esm/transactions/balanceManager.d.ts +168 -0
- package/dist/esm/transactions/balanceManager.js +364 -0
- package/dist/esm/transactions/balanceManager.js.map +7 -0
- package/dist/esm/transactions/deepbook.d.ts +477 -0
- package/dist/esm/transactions/deepbook.js +1321 -0
- package/dist/esm/transactions/deepbook.js.map +7 -0
- package/dist/esm/transactions/deepbookAdmin.d.ts +105 -0
- package/dist/esm/transactions/deepbookAdmin.js +314 -0
- package/dist/esm/transactions/deepbookAdmin.js.map +7 -0
- package/dist/esm/transactions/flashLoans.d.ts +56 -0
- package/dist/esm/transactions/flashLoans.js +104 -0
- package/dist/esm/transactions/flashLoans.js.map +7 -0
- package/dist/esm/transactions/governance.d.ts +42 -0
- package/dist/esm/transactions/governance.js +115 -0
- package/dist/esm/transactions/governance.js.map +7 -0
- package/dist/esm/transactions/marginAdmin.d.ts +133 -0
- package/dist/esm/transactions/marginAdmin.js +373 -0
- package/dist/esm/transactions/marginAdmin.js.map +7 -0
- package/dist/esm/transactions/marginLiquidations.d.ts +61 -0
- package/dist/esm/transactions/marginLiquidations.js +153 -0
- package/dist/esm/transactions/marginLiquidations.js.map +7 -0
- package/dist/esm/transactions/marginMaintainer.d.ts +80 -0
- package/dist/esm/transactions/marginMaintainer.js +231 -0
- package/dist/esm/transactions/marginMaintainer.js.map +7 -0
- package/dist/esm/transactions/marginManager.d.ts +236 -0
- package/dist/esm/transactions/marginManager.js +668 -0
- package/dist/esm/transactions/marginManager.js.map +7 -0
- package/dist/esm/transactions/marginPool.d.ts +134 -0
- package/dist/esm/transactions/marginPool.js +310 -0
- package/dist/esm/transactions/marginPool.js.map +7 -0
- package/dist/esm/transactions/marginRegistry.d.ts +94 -0
- package/dist/esm/transactions/marginRegistry.js +201 -0
- package/dist/esm/transactions/marginRegistry.js.map +7 -0
- package/dist/esm/transactions/marginTPSL.d.ts +93 -0
- package/dist/esm/transactions/marginTPSL.js +266 -0
- package/dist/esm/transactions/marginTPSL.js.map +7 -0
- package/dist/esm/transactions/poolProxy.d.ts +104 -0
- package/dist/esm/transactions/poolProxy.js +415 -0
- package/dist/esm/transactions/poolProxy.js.map +7 -0
- package/dist/esm/types/bcs.d.ts +5 -0
- package/dist/esm/types/bcs.js +13 -0
- package/dist/esm/types/bcs.js.map +7 -0
- package/dist/esm/types/index.d.ts +218 -0
- package/dist/esm/types/index.js +18 -0
- package/dist/esm/types/index.js.map +7 -0
- package/dist/esm/utils/config.d.ts +65 -0
- package/dist/esm/utils/config.js +135 -0
- package/dist/esm/utils/config.js.map +7 -0
- package/dist/esm/utils/constants.d.ts +76 -0
- package/dist/esm/utils/constants.js +362 -0
- package/dist/esm/utils/constants.js.map +7 -0
- package/dist/esm/utils/errors.d.ts +42 -0
- package/dist/esm/utils/errors.js +50 -0
- package/dist/esm/utils/errors.js.map +7 -0
- package/dist/esm/utils/validation.d.ts +50 -0
- package/dist/esm/utils/validation.js +47 -0
- package/dist/esm/utils/validation.js.map +7 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +63 -0
- package/src/client.ts +2451 -0
- package/src/contracts/deepbook/account.ts +199 -0
- package/src/contracts/deepbook/balance_manager.ts +532 -0
- package/src/contracts/deepbook/balances.ts +19 -0
- package/src/contracts/deepbook/big_vector.ts +74 -0
- package/src/contracts/deepbook/book.ts +24 -0
- package/src/contracts/deepbook/constants.ts +458 -0
- package/src/contracts/deepbook/deep_price.ts +84 -0
- package/src/contracts/deepbook/deps/std/type_name.ts +23 -0
- package/src/contracts/deepbook/deps/sui/bag.ts +41 -0
- package/src/contracts/deepbook/deps/sui/balance.ts +18 -0
- package/src/contracts/deepbook/deps/sui/object.ts +14 -0
- package/src/contracts/deepbook/deps/sui/table.ts +36 -0
- package/src/contracts/deepbook/deps/sui/vec_map.ts +33 -0
- package/src/contracts/deepbook/deps/sui/vec_set.ts +22 -0
- package/src/contracts/deepbook/deps/sui/versioned.ts +13 -0
- package/src/contracts/deepbook/ewma.ts +26 -0
- package/src/contracts/deepbook/fill.ts +336 -0
- package/src/contracts/deepbook/governance.ts +52 -0
- package/src/contracts/deepbook/history.ts +51 -0
- package/src/contracts/deepbook/math.ts +210 -0
- package/src/contracts/deepbook/order.ts +269 -0
- package/src/contracts/deepbook/order_info.ts +513 -0
- package/src/contracts/deepbook/order_query.ts +115 -0
- package/src/contracts/deepbook/pool.ts +2269 -0
- package/src/contracts/deepbook/registry.ts +242 -0
- package/src/contracts/deepbook/state.ts +74 -0
- package/src/contracts/deepbook/trade_params.ts +16 -0
- package/src/contracts/deepbook/vault.ts +37 -0
- package/src/contracts/utils/index.ts +184 -0
- package/src/index.ts +95 -0
- package/src/pyth/PriceServiceConnection.ts +48 -0
- package/src/pyth/pyth-helpers.ts +23 -0
- package/src/pyth/pyth.ts +305 -0
- package/src/transactions/balanceManager.ts +399 -0
- package/src/transactions/deepbook.ts +1519 -0
- package/src/transactions/deepbookAdmin.ts +332 -0
- package/src/transactions/flashLoans.ts +123 -0
- package/src/transactions/governance.ts +123 -0
- package/src/transactions/marginAdmin.ts +396 -0
- package/src/transactions/marginLiquidations.ts +175 -0
- package/src/transactions/marginMaintainer.ts +280 -0
- package/src/transactions/marginManager.ts +708 -0
- package/src/transactions/marginPool.ts +339 -0
- package/src/transactions/marginRegistry.ts +212 -0
- package/src/transactions/marginTPSL.ts +296 -0
- package/src/transactions/poolProxy.ts +438 -0
- package/src/types/bcs.ts +8 -0
- package/src/types/index.ts +255 -0
- package/src/utils/config.ts +177 -0
- package/src/utils/constants.ts +374 -0
- package/src/utils/errors.ts +67 -0
- package/src/utils/validation.ts +91 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Extracts the VAA bytes embedded in an accumulator message.
|
|
6
|
+
*
|
|
7
|
+
* @param accumulatorMessage The accumulator price update message as a Uint8Array.
|
|
8
|
+
* @returns VAA bytes as a Uint8Array.
|
|
9
|
+
*/
|
|
10
|
+
export function extractVaaBytesFromAccumulatorMessage(accumulatorMessage: Uint8Array): Uint8Array {
|
|
11
|
+
const dataView = new DataView(
|
|
12
|
+
accumulatorMessage.buffer,
|
|
13
|
+
accumulatorMessage.byteOffset,
|
|
14
|
+
accumulatorMessage.byteLength,
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
const trailingPayloadSize = dataView.getUint8(6);
|
|
18
|
+
const vaaSizeOffset = 7 + trailingPayloadSize + 1; // Header (7 bytes), trailing payload size, proof type
|
|
19
|
+
const vaaSize = dataView.getUint16(vaaSizeOffset, false); // Read 2 bytes for VAA size (big-endian)
|
|
20
|
+
const vaaOffset = vaaSizeOffset + 2; // VAA size is 2 bytes
|
|
21
|
+
|
|
22
|
+
return accumulatorMessage.subarray(vaaOffset, vaaOffset + vaaSize);
|
|
23
|
+
}
|
package/src/pyth/pyth.ts
ADDED
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { bcs } from '@haneullabs/haneul/bcs';
|
|
5
|
+
import type { HaneulClient } from '@haneullabs/haneul/client';
|
|
6
|
+
import type { Transaction } from '@haneullabs/haneul/transactions';
|
|
7
|
+
import { coinWithBalance } from '@haneullabs/haneul/transactions';
|
|
8
|
+
import { fromBase64, fromHex, parseStructTag } from '@haneullabs/haneul/utils';
|
|
9
|
+
|
|
10
|
+
import type { HexString } from './PriceServiceConnection.js';
|
|
11
|
+
import { PriceServiceConnection } from './PriceServiceConnection.js';
|
|
12
|
+
import { extractVaaBytesFromAccumulatorMessage } from './pyth-helpers.js';
|
|
13
|
+
|
|
14
|
+
const MAX_ARGUMENT_SIZE = 16 * 1024;
|
|
15
|
+
export type ObjectId = string;
|
|
16
|
+
export class HaneulPriceServiceConnection extends PriceServiceConnection {
|
|
17
|
+
/**
|
|
18
|
+
* Fetch price feed update data.
|
|
19
|
+
*
|
|
20
|
+
* @param priceIds Array of hex-encoded price IDs.
|
|
21
|
+
* @returns Array of buffers containing the price update data.
|
|
22
|
+
*/
|
|
23
|
+
async getPriceFeedsUpdateData(priceIds: HexString[]): Promise<Uint8Array[]> {
|
|
24
|
+
const latestVaas = await this.getLatestVaas(priceIds);
|
|
25
|
+
return latestVaas.map((vaa) => fromBase64(vaa));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export class HaneulPythClient {
|
|
29
|
+
#pythPackageId?: Promise<ObjectId>;
|
|
30
|
+
#wormholePackageId?: Promise<ObjectId>;
|
|
31
|
+
#priceFeedObjectIdCache: Map<HexString, Promise<ObjectId>> = new Map();
|
|
32
|
+
#priceTableInfo?: Promise<{ id: ObjectId; fieldType: ObjectId }>;
|
|
33
|
+
#baseUpdateFee?: Promise<number>;
|
|
34
|
+
provider: HaneulClient;
|
|
35
|
+
pythStateId: ObjectId;
|
|
36
|
+
wormholeStateId: ObjectId;
|
|
37
|
+
|
|
38
|
+
constructor(provider: HaneulClient, pythStateId: ObjectId, wormholeStateId: ObjectId) {
|
|
39
|
+
this.provider = provider;
|
|
40
|
+
this.pythStateId = pythStateId;
|
|
41
|
+
this.wormholeStateId = wormholeStateId;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Verifies the VAAs using the Wormhole contract.
|
|
45
|
+
*
|
|
46
|
+
* @param vaas Array of VAA buffers to verify.
|
|
47
|
+
* @param tx Transaction block to add commands to.
|
|
48
|
+
* @returns Array of verified VAAs.
|
|
49
|
+
*/
|
|
50
|
+
async verifyVaas(vaas: Uint8Array[], tx: Transaction) {
|
|
51
|
+
const wormholePackageId = await this.getWormholePackageId();
|
|
52
|
+
const verifiedVaas = [];
|
|
53
|
+
for (const vaa of vaas) {
|
|
54
|
+
const [verifiedVaa] = tx.moveCall({
|
|
55
|
+
target: `${wormholePackageId}::vaa::parse_and_verify`,
|
|
56
|
+
arguments: [tx.object(this.wormholeStateId), tx.pure.vector('u8', vaa), tx.object.clock()],
|
|
57
|
+
});
|
|
58
|
+
verifiedVaas.push(verifiedVaa);
|
|
59
|
+
}
|
|
60
|
+
return verifiedVaas;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Adds the necessary commands for updating the Pyth price feeds to the transaction block.
|
|
64
|
+
*
|
|
65
|
+
* @param tx Transaction block to add commands to.
|
|
66
|
+
* @param updates Array of price feed updates received from the price service.
|
|
67
|
+
* @param feedIds Array of feed IDs to update (in hex format).
|
|
68
|
+
*/
|
|
69
|
+
async updatePriceFeeds(
|
|
70
|
+
tx: Transaction,
|
|
71
|
+
updates: Uint8Array[],
|
|
72
|
+
feedIds: HexString[],
|
|
73
|
+
): Promise<ObjectId[]> {
|
|
74
|
+
const packageId = await this.getPythPackageId();
|
|
75
|
+
let priceUpdatesHotPotato;
|
|
76
|
+
if (updates.length > 1) {
|
|
77
|
+
throw new Error(
|
|
78
|
+
'SDK does not support sending multiple accumulator messages in a single transaction',
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
const vaa = extractVaaBytesFromAccumulatorMessage(updates[0]);
|
|
82
|
+
const verifiedVaas = await this.verifyVaas([vaa], tx);
|
|
83
|
+
[priceUpdatesHotPotato] = tx.moveCall({
|
|
84
|
+
target: `${packageId}::pyth::create_authenticated_price_infos_using_accumulator`,
|
|
85
|
+
arguments: [
|
|
86
|
+
tx.object(this.pythStateId),
|
|
87
|
+
tx.pure(
|
|
88
|
+
bcs
|
|
89
|
+
.vector(bcs.U8)
|
|
90
|
+
.serialize(Array.from(updates[0]), {
|
|
91
|
+
maxSize: MAX_ARGUMENT_SIZE,
|
|
92
|
+
})
|
|
93
|
+
.toBytes(),
|
|
94
|
+
),
|
|
95
|
+
verifiedVaas[0],
|
|
96
|
+
tx.object.clock(),
|
|
97
|
+
],
|
|
98
|
+
});
|
|
99
|
+
const priceInfoObjects: ObjectId[] = [];
|
|
100
|
+
const baseUpdateFee = await this.getBaseUpdateFee();
|
|
101
|
+
for (const feedId of feedIds) {
|
|
102
|
+
const priceInfoObjectId = await this.getPriceFeedObjectId(feedId);
|
|
103
|
+
if (!priceInfoObjectId) {
|
|
104
|
+
throw new Error(`Price feed ${feedId} not found, please create it first`);
|
|
105
|
+
}
|
|
106
|
+
priceInfoObjects.push(priceInfoObjectId);
|
|
107
|
+
[priceUpdatesHotPotato] = tx.moveCall({
|
|
108
|
+
target: `${packageId}::pyth::update_single_price_feed`,
|
|
109
|
+
arguments: [
|
|
110
|
+
tx.object(this.pythStateId),
|
|
111
|
+
priceUpdatesHotPotato,
|
|
112
|
+
tx.object(priceInfoObjectId),
|
|
113
|
+
coinWithBalance({ balance: baseUpdateFee }),
|
|
114
|
+
tx.object.clock(),
|
|
115
|
+
],
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
tx.moveCall({
|
|
119
|
+
target: `${packageId}::hot_potato_vector::destroy`,
|
|
120
|
+
arguments: [priceUpdatesHotPotato],
|
|
121
|
+
typeArguments: [`${packageId}::price_info::PriceInfo`],
|
|
122
|
+
});
|
|
123
|
+
return priceInfoObjects;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get the price feed object ID for a given feed ID, caching the promise.
|
|
127
|
+
* @param feedId
|
|
128
|
+
*/
|
|
129
|
+
getPriceFeedObjectId(feedId: HexString): Promise<ObjectId | undefined> {
|
|
130
|
+
if (!this.#priceFeedObjectIdCache.has(feedId)) {
|
|
131
|
+
this.#priceFeedObjectIdCache.set(
|
|
132
|
+
feedId,
|
|
133
|
+
this.#fetchPriceFeedObjectId(feedId).catch((err) => {
|
|
134
|
+
// Remove failed promises from the cache to allow retries
|
|
135
|
+
this.#priceFeedObjectIdCache.delete(feedId);
|
|
136
|
+
throw err;
|
|
137
|
+
}),
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return this.#priceFeedObjectIdCache.get(feedId)!;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Fetches the price feed object ID for a given feed ID (no caching).
|
|
146
|
+
* Throws an error if the object is not found.
|
|
147
|
+
*/
|
|
148
|
+
async #fetchPriceFeedObjectId(feedId: HexString): Promise<ObjectId> {
|
|
149
|
+
const { id: tableId, fieldType } = await this.getPriceTableInfo();
|
|
150
|
+
const result = await this.provider.getDynamicFieldObject({
|
|
151
|
+
parentId: tableId,
|
|
152
|
+
name: {
|
|
153
|
+
type: `${fieldType}::price_identifier::PriceIdentifier`,
|
|
154
|
+
value: {
|
|
155
|
+
bytes: Array.from(fromHex(feedId)),
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
if (!result.data || !result.data.content) {
|
|
161
|
+
throw new Error(`Price feed object ID for feed ID ${feedId} not found.`);
|
|
162
|
+
}
|
|
163
|
+
if (result.data.content.dataType !== 'moveObject') {
|
|
164
|
+
throw new Error('Price feed type mismatch');
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
const fields = result.data.content.fields as { value: string };
|
|
168
|
+
return fields.value;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Fetches the price table object ID for the current state ID, caching the promise.
|
|
173
|
+
* @returns Price table object ID and field type
|
|
174
|
+
*/
|
|
175
|
+
getPriceTableInfo(): Promise<{ id: ObjectId; fieldType: ObjectId }> {
|
|
176
|
+
if (!this.#priceTableInfo) {
|
|
177
|
+
const promise = this.#fetchPriceTableInfo().catch((err) => {
|
|
178
|
+
// Clear the cached promise on error
|
|
179
|
+
this.#priceTableInfo = undefined;
|
|
180
|
+
throw err;
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
this.#priceTableInfo = promise;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
return this.#priceTableInfo;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Fetches the price table object ID and field type (no caching).
|
|
191
|
+
* @returns Price table object ID and field type
|
|
192
|
+
*/
|
|
193
|
+
async #fetchPriceTableInfo(): Promise<{ id: ObjectId; fieldType: ObjectId }> {
|
|
194
|
+
const result = await this.provider.getDynamicFieldObject({
|
|
195
|
+
parentId: this.pythStateId,
|
|
196
|
+
name: {
|
|
197
|
+
type: 'vector<u8>',
|
|
198
|
+
value: 'price_info',
|
|
199
|
+
},
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
if (!result.data || !result.data.type) {
|
|
203
|
+
throw new Error('Price Table not found, contract may not be initialized');
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
const priceIdentifier = parseStructTag(result.data.type).typeParams[0];
|
|
207
|
+
if (
|
|
208
|
+
typeof priceIdentifier === 'object' &&
|
|
209
|
+
priceIdentifier !== null &&
|
|
210
|
+
priceIdentifier.name === 'PriceIdentifier' &&
|
|
211
|
+
'address' in priceIdentifier
|
|
212
|
+
) {
|
|
213
|
+
return { id: result.data.objectId, fieldType: priceIdentifier.address };
|
|
214
|
+
} else {
|
|
215
|
+
throw new Error('fieldType not found');
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Fetches the package ID for the Wormhole contract, with caching.
|
|
220
|
+
*/
|
|
221
|
+
getWormholePackageId(): Promise<ObjectId> {
|
|
222
|
+
if (!this.#wormholePackageId) {
|
|
223
|
+
this.#wormholePackageId = this.#fetchWormholePackageId();
|
|
224
|
+
}
|
|
225
|
+
return this.#wormholePackageId;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Fetches the package ID for the Wormhole contract (no caching).
|
|
230
|
+
*/
|
|
231
|
+
async #fetchWormholePackageId(): Promise<ObjectId> {
|
|
232
|
+
return await this.#getPackageId(this.wormholeStateId);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Fetches the package ID for the Pyth contract, with caching.
|
|
237
|
+
*/
|
|
238
|
+
getPythPackageId(): Promise<ObjectId> {
|
|
239
|
+
if (!this.#pythPackageId) {
|
|
240
|
+
this.#pythPackageId = this.#fetchPythPackageId();
|
|
241
|
+
}
|
|
242
|
+
return this.#pythPackageId;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Fetches the package ID for the Pyth contract (no caching).
|
|
247
|
+
*/
|
|
248
|
+
async #fetchPythPackageId(): Promise<ObjectId> {
|
|
249
|
+
return await this.#getPackageId(this.pythStateId);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Fetches the package ID for a given object.
|
|
254
|
+
*
|
|
255
|
+
* @param objectId Object ID to fetch the package ID for.
|
|
256
|
+
*/
|
|
257
|
+
async #getPackageId(objectId: ObjectId): Promise<ObjectId> {
|
|
258
|
+
const result = await this.provider.getObject({
|
|
259
|
+
id: objectId,
|
|
260
|
+
options: { showContent: true },
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
if (
|
|
264
|
+
result.data?.content?.dataType === 'moveObject' &&
|
|
265
|
+
'upgrade_cap' in result.data.content.fields
|
|
266
|
+
) {
|
|
267
|
+
const fields = result.data.content.fields as {
|
|
268
|
+
upgrade_cap: {
|
|
269
|
+
fields: {
|
|
270
|
+
package: ObjectId;
|
|
271
|
+
};
|
|
272
|
+
};
|
|
273
|
+
};
|
|
274
|
+
return fields.upgrade_cap.fields.package;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
throw new Error(`Cannot fetch package ID for object ${objectId}`);
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Gets the base update fee from the Pyth state object.
|
|
281
|
+
*/
|
|
282
|
+
async #fetchBaseUpdateFee(): Promise<number> {
|
|
283
|
+
const result = await this.provider.getObject({
|
|
284
|
+
id: this.pythStateId,
|
|
285
|
+
options: { showContent: true },
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
if (!result.data || result.data.content?.dataType !== 'moveObject') {
|
|
289
|
+
throw new Error('Unable to fetch Pyth state object');
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
const fields = result.data.content.fields as { base_update_fee: number };
|
|
293
|
+
return fields.base_update_fee;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* Returns the cached base update fee, fetching it if necessary.
|
|
298
|
+
*/
|
|
299
|
+
getBaseUpdateFee(): Promise<number> {
|
|
300
|
+
if (!this.#baseUpdateFee) {
|
|
301
|
+
this.#baseUpdateFee = this.#fetchBaseUpdateFee();
|
|
302
|
+
}
|
|
303
|
+
return this.#baseUpdateFee;
|
|
304
|
+
}
|
|
305
|
+
}
|