@mysten/deepbook-v3 2.0.1 → 2.1.4
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 +85 -0
- package/PREDICT.md +256 -0
- package/README.md +116 -0
- package/dist/account.d.mts +139 -0
- package/dist/account.d.mts.map +1 -0
- package/dist/account.mjs +181 -0
- package/dist/account.mjs.map +1 -0
- package/dist/bcs/integers.mjs +23 -0
- package/dist/bcs/integers.mjs.map +1 -0
- package/dist/client.d.mts +2 -2
- package/dist/contracts/account/account.d.mts +382 -0
- package/dist/contracts/account/account.d.mts.map +1 -0
- package/dist/contracts/account/account.mjs +443 -0
- package/dist/contracts/account/account.mjs.map +1 -0
- package/dist/contracts/account/account_events.d.mts +41 -0
- package/dist/contracts/account/account_events.d.mts.map +1 -0
- package/dist/contracts/account/account_events.mjs +72 -0
- package/dist/contracts/account/account_events.mjs.map +1 -0
- package/dist/contracts/account/account_registry.d.mts +210 -0
- package/dist/contracts/account/account_registry.d.mts.map +1 -0
- package/dist/contracts/account/account_registry.mjs +263 -0
- package/dist/contracts/account/account_registry.mjs.map +1 -0
- package/dist/contracts/account/config-arguments.d.mts +10 -0
- package/dist/contracts/account/config-arguments.d.mts.map +1 -0
- package/dist/contracts/account/deps/sui/bag.mjs +44 -0
- package/dist/contracts/account/deps/sui/bag.mjs.map +1 -0
- package/dist/contracts/deepbook/account.d.mts +18 -18
- package/dist/contracts/deepbook/balances.d.mts +4 -4
- package/dist/contracts/deepbook/deep_price.d.mts +3 -3
- package/dist/contracts/deepbook/deep_price.d.mts.map +1 -1
- package/dist/contracts/deepbook/order.d.mts +12 -12
- package/dist/contracts/deepbook_predict/builder_code_events.mjs +38 -0
- package/dist/contracts/deepbook_predict/builder_code_events.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/config-arguments.d.mts +13 -0
- package/dist/contracts/deepbook_predict/config-arguments.d.mts.map +1 -0
- package/dist/contracts/deepbook_predict/deps/fixed_math/i64.mjs +25 -0
- package/dist/contracts/deepbook_predict/deps/fixed_math/i64.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/deps/sui/balance.mjs +25 -0
- package/dist/contracts/deepbook_predict/deps/sui/balance.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/deps/sui/coin.mjs +24 -0
- package/dist/contracts/deepbook_predict/deps/sui/coin.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/deps/sui/table.mjs +39 -0
- package/dist/contracts/deepbook_predict/deps/sui/table.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/deps/sui/vec_set.mjs +26 -0
- package/dist/contracts/deepbook_predict/deps/sui/vec_set.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/ewma.mjs +29 -0
- package/dist/contracts/deepbook_predict/ewma.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/expiry_cash.mjs +27 -0
- package/dist/contracts/deepbook_predict/expiry_cash.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/expiry_market.mjs +367 -0
- package/dist/contracts/deepbook_predict/expiry_market.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/lp_book.mjs +92 -0
- package/dist/contracts/deepbook_predict/lp_book.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/market_manager.mjs +59 -0
- package/dist/contracts/deepbook_predict/market_manager.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/order.mjs +26 -0
- package/dist/contracts/deepbook_predict/order.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/order_events.mjs +84 -0
- package/dist/contracts/deepbook_predict/order_events.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/plp.mjs +284 -0
- package/dist/contracts/deepbook_predict/plp.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/pool_accounting.mjs +58 -0
- package/dist/contracts/deepbook_predict/pool_accounting.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/predict_account.mjs +106 -0
- package/dist/contracts/deepbook_predict/predict_account.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/pricing.mjs +80 -0
- package/dist/contracts/deepbook_predict/pricing.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/range_codec.mjs +41 -0
- package/dist/contracts/deepbook_predict/range_codec.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/registry.mjs +55 -0
- package/dist/contracts/deepbook_predict/registry.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/strike_exposure.mjs +65 -0
- package/dist/contracts/deepbook_predict/strike_exposure.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/strike_exposure_config.mjs +33 -0
- package/dist/contracts/deepbook_predict/strike_exposure_config.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/strike_payout_tree.mjs +72 -0
- package/dist/contracts/deepbook_predict/strike_payout_tree.mjs.map +1 -0
- package/dist/contracts/deepbook_predict/vault_events.mjs +184 -0
- package/dist/contracts/deepbook_predict/vault_events.mjs.map +1 -0
- package/dist/contracts/deepbook_sessions/config-arguments.d.mts +10 -0
- package/dist/contracts/deepbook_sessions/config-arguments.d.mts.map +1 -0
- package/dist/contracts/deepbook_sessions/deps/sui/vec_map.mjs +37 -0
- package/dist/contracts/deepbook_sessions/deps/sui/vec_map.mjs.map +1 -0
- package/dist/contracts/deepbook_sessions/session_config.d.mts +63 -0
- package/dist/contracts/deepbook_sessions/session_config.d.mts.map +1 -0
- package/dist/contracts/deepbook_sessions/session_config.mjs +82 -0
- package/dist/contracts/deepbook_sessions/session_config.mjs.map +1 -0
- package/dist/contracts/deepbook_sessions/sessions.d.mts +275 -0
- package/dist/contracts/deepbook_sessions/sessions.d.mts.map +1 -0
- package/dist/contracts/deepbook_sessions/sessions.mjs +443 -0
- package/dist/contracts/deepbook_sessions/sessions.mjs.map +1 -0
- package/dist/contracts/utils/index.d.mts +18 -1
- package/dist/contracts/utils/index.d.mts.map +1 -1
- package/dist/deployments/index.d.mts +31 -0
- package/dist/deployments/index.d.mts.map +1 -0
- package/dist/deployments/index.mjs +30 -0
- package/dist/deployments/index.mjs.map +1 -0
- package/dist/deployments/testnet.d.mts +14 -0
- package/dist/deployments/testnet.d.mts.map +1 -0
- package/dist/deployments/testnet.mjs +73 -0
- package/dist/deployments/testnet.mjs.map +1 -0
- package/dist/deployments/types.d.mts +36 -0
- package/dist/deployments/types.d.mts.map +1 -0
- package/dist/index.mjs +0 -1
- package/dist/predict/client.d.mts +255 -0
- package/dist/predict/client.d.mts.map +1 -0
- package/dist/predict/client.mjs +436 -0
- package/dist/predict/client.mjs.map +1 -0
- package/dist/predict/config/generated.d.mts +29 -0
- package/dist/predict/config/generated.d.mts.map +1 -0
- package/dist/predict/config/generated.mjs +16 -0
- package/dist/predict/config/generated.mjs.map +1 -0
- package/dist/predict/config/index.d.mts +10 -0
- package/dist/predict/config/index.d.mts.map +1 -0
- package/dist/predict/config/index.mjs +13 -0
- package/dist/predict/config/index.mjs.map +1 -0
- package/dist/predict/config/testnet.d.mts +17 -0
- package/dist/predict/config/testnet.d.mts.map +1 -0
- package/dist/predict/config/testnet.mjs +26 -0
- package/dist/predict/config/testnet.mjs.map +1 -0
- package/dist/predict/config/types.d.mts +55 -0
- package/dist/predict/config/types.d.mts.map +1 -0
- package/dist/predict/decode.d.mts +162 -0
- package/dist/predict/decode.d.mts.map +1 -0
- package/dist/predict/decode.mjs +175 -0
- package/dist/predict/decode.mjs.map +1 -0
- package/dist/predict/errors.d.mts +42 -0
- package/dist/predict/errors.d.mts.map +1 -0
- package/dist/predict/errors.mjs +37 -0
- package/dist/predict/errors.mjs.map +1 -0
- package/dist/predict/index.d.mts +18 -0
- package/dist/predict/index.mjs +14 -0
- package/dist/predict/pricing.d.mts +73 -0
- package/dist/predict/pricing.d.mts.map +1 -0
- package/dist/predict/pricing.mjs +129 -0
- package/dist/predict/pricing.mjs.map +1 -0
- package/dist/predict/reads/balances.mjs +41 -0
- package/dist/predict/reads/balances.mjs.map +1 -0
- package/dist/predict/reads/inspect.d.mts +8 -0
- package/dist/predict/reads/inspect.d.mts.map +1 -0
- package/dist/predict/reads/inspect.mjs +37 -0
- package/dist/predict/reads/inspect.mjs.map +1 -0
- package/dist/predict/reads/markets.mjs +130 -0
- package/dist/predict/reads/markets.mjs.map +1 -0
- package/dist/predict/reads/parse.mjs +20 -0
- package/dist/predict/reads/parse.mjs.map +1 -0
- package/dist/predict/reads/pool.mjs +26 -0
- package/dist/predict/reads/pool.mjs.map +1 -0
- package/dist/predict/reads/positions.d.mts +12 -0
- package/dist/predict/reads/positions.d.mts.map +1 -0
- package/dist/predict/reads/positions.mjs +77 -0
- package/dist/predict/reads/positions.mjs.map +1 -0
- package/dist/predict/reads/pricing.d.mts +20 -0
- package/dist/predict/reads/pricing.d.mts.map +1 -0
- package/dist/predict/reads/pricing.mjs +43 -0
- package/dist/predict/reads/pricing.mjs.map +1 -0
- package/dist/predict/ticks.d.mts +11 -0
- package/dist/predict/ticks.d.mts.map +1 -0
- package/dist/predict/ticks.mjs +21 -0
- package/dist/predict/ticks.mjs.map +1 -0
- package/dist/predict/tx/authed.mjs +18 -0
- package/dist/predict/tx/authed.mjs.map +1 -0
- package/dist/predict/tx/common.d.mts +18 -0
- package/dist/predict/tx/common.d.mts.map +1 -0
- package/dist/predict/tx/common.mjs +52 -0
- package/dist/predict/tx/common.mjs.map +1 -0
- package/dist/predict/tx/trade.d.mts +15 -0
- package/dist/predict/tx/trade.d.mts.map +1 -0
- package/dist/predict/tx/trade.mjs +86 -0
- package/dist/predict/tx/trade.mjs.map +1 -0
- package/dist/predict/units.d.mts +11 -0
- package/dist/predict/units.d.mts.map +1 -0
- package/dist/predict/units.mjs +44 -0
- package/dist/predict/units.mjs.map +1 -0
- package/dist/queries/accountQueries.mjs +0 -1
- package/dist/queries/accountQueries.mjs.map +1 -1
- package/dist/queries/orderQueries.mjs +0 -1
- package/dist/queries/orderQueries.mjs.map +1 -1
- package/dist/queries/registryQueries.mjs +0 -1
- package/dist/queries/registryQueries.mjs.map +1 -1
- package/dist/sessions.d.mts +244 -0
- package/dist/sessions.d.mts.map +1 -0
- package/dist/sessions.mjs +291 -0
- package/dist/sessions.mjs.map +1 -0
- package/dist/transactions/balanceManager.d.mts +12 -12
- package/dist/transactions/balanceManager.d.mts.map +1 -1
- package/dist/transactions/deepbook.d.mts +20 -20
- package/dist/transactions/deepbook.d.mts.map +1 -1
- package/dist/transactions/deepbookAdmin.d.mts +4 -4
- package/dist/transactions/deepbookAdmin.d.mts.map +1 -1
- package/dist/transactions/marginAdmin.d.mts +7 -7
- package/dist/transactions/marginLiquidations.d.mts +3 -3
- package/dist/transactions/marginMaintainer.d.mts +5 -5
- package/dist/transactions/marginManager.d.mts +32 -32
- package/dist/transactions/marginPool.d.mts +18 -18
- package/dist/transactions/marginRegistry.d.mts +16 -16
- package/dist/transactions/marginTPSL.d.mts +10 -10
- package/dist/transactions/marginTPSL.d.mts.map +1 -1
- package/dist/transactions/poolProxy.d.mts +8 -8
- package/dist/transactions/poolProxy.d.mts.map +1 -1
- package/package.json +25 -4
- package/src/account.ts +239 -0
- package/src/bcs/integers.ts +35 -0
- package/src/contracts/account/account.ts +706 -0
- package/src/contracts/account/account_events.ts +64 -0
- package/src/contracts/account/account_registry.ts +468 -0
- package/src/contracts/account/config-arguments.ts +8 -0
- package/src/contracts/account/deps/sui/bag.ts +42 -0
- package/src/contracts/deepbook_predict/admin.ts +44 -0
- package/src/contracts/deepbook_predict/builder_code.ts +155 -0
- package/src/contracts/deepbook_predict/builder_code_events.ts +34 -0
- package/src/contracts/deepbook_predict/config-arguments.ts +11 -0
- package/src/contracts/deepbook_predict/config_events.ts +140 -0
- package/src/contracts/deepbook_predict/deps/fixed_math/i64.ts +21 -0
- package/src/contracts/deepbook_predict/deps/sui/balance.ts +25 -0
- package/src/contracts/deepbook_predict/deps/sui/coin.ts +20 -0
- package/src/contracts/deepbook_predict/deps/sui/table.ts +37 -0
- package/src/contracts/deepbook_predict/deps/sui/vec_set.ts +22 -0
- package/src/contracts/deepbook_predict/ewma.ts +26 -0
- package/src/contracts/deepbook_predict/ewma_config.ts +28 -0
- package/src/contracts/deepbook_predict/expiry_cash.ts +24 -0
- package/src/contracts/deepbook_predict/expiry_market.ts +1549 -0
- package/src/contracts/deepbook_predict/lp_book.ts +105 -0
- package/src/contracts/deepbook_predict/market_lifecycle_cap.ts +75 -0
- package/src/contracts/deepbook_predict/market_manager.ts +218 -0
- package/src/contracts/deepbook_predict/order.ts +24 -0
- package/src/contracts/deepbook_predict/order_events.ts +129 -0
- package/src/contracts/deepbook_predict/pause_cap.ts +68 -0
- package/src/contracts/deepbook_predict/plp.ts +987 -0
- package/src/contracts/deepbook_predict/pool_accounting.ts +79 -0
- package/src/contracts/deepbook_predict/predict_account.ts +180 -0
- package/src/contracts/deepbook_predict/pricing.ts +124 -0
- package/src/contracts/deepbook_predict/pricing_config.ts +41 -0
- package/src/contracts/deepbook_predict/protocol_config.ts +1066 -0
- package/src/contracts/deepbook_predict/range_codec.ts +53 -0
- package/src/contracts/deepbook_predict/registry.ts +694 -0
- package/src/contracts/deepbook_predict/strike_exposure.ts +77 -0
- package/src/contracts/deepbook_predict/strike_exposure_config.ts +46 -0
- package/src/contracts/deepbook_predict/strike_payout_tree.ts +89 -0
- package/src/contracts/deepbook_predict/vault_events.ts +222 -0
- package/src/contracts/deepbook_sessions/config-arguments.ts +8 -0
- package/src/contracts/deepbook_sessions/deps/sui/vec_map.ts +33 -0
- package/src/contracts/deepbook_sessions/session_config.ts +130 -0
- package/src/contracts/deepbook_sessions/sessions.ts +663 -0
- package/src/contracts/propbook/block_scholes_store.ts +842 -0
- package/src/contracts/propbook/deps/sui/table.ts +37 -0
- package/src/contracts/propbook/oracle_lane.ts +170 -0
- package/src/contracts/propbook/pyth_feed.ts +414 -0
- package/src/contracts/propbook/registry.ts +596 -0
- package/src/deployments/index.ts +73 -0
- package/src/deployments/testnet.ts +107 -0
- package/src/deployments/types.ts +81 -0
- package/src/index.ts +5 -0
- package/src/predict/client.ts +941 -0
- package/src/predict/config/generated.ts +39 -0
- package/src/predict/config/index.ts +25 -0
- package/src/predict/config/testnet.ts +27 -0
- package/src/predict/config/types.ts +52 -0
- package/src/predict/decode.ts +476 -0
- package/src/predict/errors.ts +83 -0
- package/src/predict/index.ts +94 -0
- package/src/predict/pricing.ts +199 -0
- package/src/predict/reads/balances.ts +55 -0
- package/src/predict/reads/inspect.ts +78 -0
- package/src/predict/reads/markets.ts +222 -0
- package/src/predict/reads/parse.ts +30 -0
- package/src/predict/reads/pool.ts +37 -0
- package/src/predict/reads/positions.ts +144 -0
- package/src/predict/reads/pricing.ts +79 -0
- package/src/predict/ticks.ts +42 -0
- package/src/predict/tx/authed.ts +20 -0
- package/src/predict/tx/common.ts +92 -0
- package/src/predict/tx/trade.ts +183 -0
- package/src/predict/units.ts +49 -0
- package/src/sessions.ts +471 -0
- package/dist/types/bcs.mjs +0 -7
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { MoveStruct } from "../utils/index.mjs";
|
|
2
|
+
import { U64 } from "../../bcs/integers.mjs";
|
|
3
|
+
import { Table } from "./deps/sui/table.mjs";
|
|
4
|
+
import { bcs } from "@mysten/sui/bcs";
|
|
5
|
+
|
|
6
|
+
//#region src/contracts/deepbook_predict/market_manager.ts
|
|
7
|
+
/**************************************************************
|
|
8
|
+
* THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
|
|
9
|
+
**************************************************************/
|
|
10
|
+
/**
|
|
11
|
+
* Market identity and deployment cadence manager for Predict.
|
|
12
|
+
*
|
|
13
|
+
* `Registry` owns this state and delegates market admission to it. Fixed cadence
|
|
14
|
+
* IDs, periods, and rank order are upgrade-required. Underlying rows, cadence
|
|
15
|
+
* deployment terms, and per-underlying watermarks are stored here.
|
|
16
|
+
*/
|
|
17
|
+
const $moduleName = "@local-pkg/deepbook_predict::market_manager";
|
|
18
|
+
const MarketKey = new MoveStruct({
|
|
19
|
+
name: `${$moduleName}::MarketKey`,
|
|
20
|
+
fields: {
|
|
21
|
+
propbook_underlying_id: bcs.u32(),
|
|
22
|
+
expiry: U64
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
const MarketManager = new MoveStruct({
|
|
26
|
+
name: `${$moduleName}::MarketManager`,
|
|
27
|
+
fields: {
|
|
28
|
+
underlying_configs: Table,
|
|
29
|
+
market_ids: Table
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
const CadenceConfig = new MoveStruct({
|
|
33
|
+
name: `${$moduleName}::CadenceConfig`,
|
|
34
|
+
fields: {
|
|
35
|
+
tick_size: U64,
|
|
36
|
+
admission_tick_size: U64,
|
|
37
|
+
max_expiry_allocation: U64,
|
|
38
|
+
initial_expiry_cash: U64,
|
|
39
|
+
window_size: U64
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
const DeployableMarket = new MoveStruct({
|
|
43
|
+
name: `${$moduleName}::DeployableMarket`,
|
|
44
|
+
fields: {
|
|
45
|
+
expiry: U64,
|
|
46
|
+
cadence: CadenceConfig
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
const UnderlyingMarketConfig = new MoveStruct({
|
|
50
|
+
name: `${$moduleName}::UnderlyingMarketConfig`,
|
|
51
|
+
fields: {
|
|
52
|
+
cadences: bcs.vector(CadenceConfig),
|
|
53
|
+
last_deployed_expiries: bcs.vector(U64)
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
//#endregion
|
|
58
|
+
export { MarketManager };
|
|
59
|
+
//# sourceMappingURL=market_manager.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"market_manager.mjs","names":["table.Table"],"sources":["../../../src/contracts/deepbook_predict/market_manager.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * Market identity and deployment cadence manager for Predict.\n *\n * `Registry` owns this state and delegates market admission to it. Fixed cadence\n * IDs, periods, and rank order are upgrade-required. Underlying rows, cadence\n * deployment terms, and per-underlying watermarks are stored here.\n */\n\nimport { MoveStruct, normalizeMoveArguments } from '../utils/index.js';\nimport { bcs } from '@mysten/sui/bcs';\nimport { U64 } from '../../bcs/integers.js';\nimport { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';\nimport * as table from './deps/sui/table.js';\nconst $moduleName = '@local-pkg/deepbook_predict::market_manager';\nexport const MarketKey = new MoveStruct({\n\tname: `${$moduleName}::MarketKey`,\n\tfields: {\n\t\tpropbook_underlying_id: bcs.u32(),\n\t\texpiry: U64,\n\t},\n});\nexport const MarketManager = new MoveStruct({\n\tname: `${$moduleName}::MarketManager`,\n\tfields: {\n\t\t/** Propbook underlying ID -> deployment watermarks. */\n\t\tunderlying_configs: table.Table,\n\t\t/** Created markets keyed by `(propbook_underlying_id, expiry)`. */\n\t\tmarket_ids: table.Table,\n\t},\n});\nexport const CadenceConfig = new MoveStruct({\n\tname: `${$moduleName}::CadenceConfig`,\n\tfields: {\n\t\t/** Raw-price-per-tick factor snapshotted into each created market. */\n\t\ttick_size: U64,\n\t\t/** Coarser raw-price step that new finite mint boundaries must align to. */\n\t\tadmission_tick_size: U64,\n\t\t/**\n\t\t * DUSDC pool allocation cap snapshotted into pool accounting for each created\n\t\t * expiry.\n\t\t */\n\t\tmax_expiry_allocation: U64,\n\t\t/**\n\t\t * Minimum DUSDC cash target snapshotted into pool accounting for each created\n\t\t * expiry.\n\t\t */\n\t\tinitial_expiry_cash: U64,\n\t\t/**\n\t\t * Number of cadence periods in the rolling future deployment horizon. Zero\n\t\t * disables this cadence.\n\t\t */\n\t\twindow_size: U64,\n\t},\n});\nexport const DeployableMarket = new MoveStruct({\n\tname: `${$moduleName}::DeployableMarket`,\n\tfields: {\n\t\texpiry: U64,\n\t\tcadence: CadenceConfig,\n\t},\n});\nexport const UnderlyingMarketConfig = new MoveStruct({\n\tname: `${$moduleName}::UnderlyingMarketConfig`,\n\tfields: {\n\t\t/** Deployment config indexed by cadence ID. */\n\t\tcadences: bcs.vector(CadenceConfig),\n\t\t/** Highest deployed expiry timestamp indexed by cadence ID. */\n\t\tlast_deployed_expiries: bcs.vector(U64),\n\t},\n});\nexport interface CadenceTickSizeArguments {\n\tconfig: TransactionArgument;\n}\nexport interface CadenceTickSizeOptions {\n\tpackage?: string;\n\targuments: CadenceTickSizeArguments | [config: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the raw-price-per-tick factor for SDK and devInspect cadence reads. */\nexport function cadenceTickSize(options: CadenceTickSizeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'market_manager',\n\t\t\tfunction: 'cadence_tick_size',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CadenceAdmissionTickSizeArguments {\n\tconfig: TransactionArgument;\n}\nexport interface CadenceAdmissionTickSizeOptions {\n\tpackage?: string;\n\targuments: CadenceAdmissionTickSizeArguments | [config: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the admission-grid step for SDK and devInspect cadence reads. */\nexport function cadenceAdmissionTickSize(options: CadenceAdmissionTickSizeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'market_manager',\n\t\t\tfunction: 'cadence_admission_tick_size',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CadenceMaxExpiryAllocationArguments {\n\tconfig: TransactionArgument;\n}\nexport interface CadenceMaxExpiryAllocationOptions {\n\tpackage?: string;\n\targuments: CadenceMaxExpiryAllocationArguments | [config: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the expiry allocation cap for SDK and devInspect cadence reads. */\nexport function cadenceMaxExpiryAllocation(options: CadenceMaxExpiryAllocationOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'market_manager',\n\t\t\tfunction: 'cadence_max_expiry_allocation',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CadenceInitialExpiryCashArguments {\n\tconfig: TransactionArgument;\n}\nexport interface CadenceInitialExpiryCashOptions {\n\tpackage?: string;\n\targuments: CadenceInitialExpiryCashArguments | [config: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the initial expiry cash target for SDK and devInspect cadence reads. */\nexport function cadenceInitialExpiryCash(options: CadenceInitialExpiryCashOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'market_manager',\n\t\t\tfunction: 'cadence_initial_expiry_cash',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CadenceWindowSizeArguments {\n\tconfig: TransactionArgument;\n}\nexport interface CadenceWindowSizeOptions {\n\tpackage?: string;\n\targuments: CadenceWindowSizeArguments | [config: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the rolling deployment horizon for SDK and devInspect cadence reads. */\nexport function cadenceWindowSize(options: CadenceWindowSizeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'market_manager',\n\t\t\tfunction: 'cadence_window_size',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CadenceEnabledArguments {\n\tconfig: TransactionArgument;\n}\nexport interface CadenceEnabledOptions {\n\tpackage?: string;\n\targuments: CadenceEnabledArguments | [config: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return whether this cadence is enabled for SDK and devInspect discovery. */\nexport function cadenceEnabled(options: CadenceEnabledOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'market_manager',\n\t\t\tfunction: 'cadence_enabled',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAiBA,MAAM,cAAc;AACpB,MAAa,YAAY,IAAI,WAAW;CACvC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,wBAAwB,IAAI,KAAK;EACjC,QAAQ;EACR;CACD,CAAC;AACF,MAAa,gBAAgB,IAAI,WAAW;CAC3C,MAAM,GAAG,YAAY;CACrB,QAAQ;EAEP,oBAAoBA;EAEpB,YAAYA;EACZ;CACD,CAAC;AACF,MAAa,gBAAgB,IAAI,WAAW;CAC3C,MAAM,GAAG,YAAY;CACrB,QAAQ;EAEP,WAAW;EAEX,qBAAqB;EAKrB,uBAAuB;EAKvB,qBAAqB;EAKrB,aAAa;EACb;CACD,CAAC;AACF,MAAa,mBAAmB,IAAI,WAAW;CAC9C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,QAAQ;EACR,SAAS;EACT;CACD,CAAC;AACF,MAAa,yBAAyB,IAAI,WAAW;CACpD,MAAM,GAAG,YAAY;CACrB,QAAQ;EAEP,UAAU,IAAI,OAAO,cAAc;EAEnC,wBAAwB,IAAI,OAAO,IAAI;EACvC;CACD,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { MoveStruct } from "../utils/index.mjs";
|
|
2
|
+
import { U256 } from "../../bcs/integers.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/contracts/deepbook_predict/order.ts
|
|
5
|
+
/**************************************************************
|
|
6
|
+
* THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
|
|
7
|
+
**************************************************************/
|
|
8
|
+
/**
|
|
9
|
+
* Immutable contract terms encoded in a Predict order ID.
|
|
10
|
+
*
|
|
11
|
+
* An `Order` represents the durable contract terms needed after mint: the lower
|
|
12
|
+
* and higher strike ticks, quantity, and the expiry-local sequence. Mint-only
|
|
13
|
+
* inputs such as entry probability, premium, and fee policy intentionally live
|
|
14
|
+
* outside this module. The packed ID is the single source of truth at protocol
|
|
15
|
+
* boundaries; raw strike conversion (through the owning market's `tick_size`) is
|
|
16
|
+
* interpreted by `StrikeExposure`.
|
|
17
|
+
*/
|
|
18
|
+
const $moduleName = "@local-pkg/deepbook_predict::order";
|
|
19
|
+
const Order = new MoveStruct({
|
|
20
|
+
name: `${$moduleName}::Order`,
|
|
21
|
+
fields: { id: U256 }
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
//#endregion
|
|
25
|
+
export { Order };
|
|
26
|
+
//# sourceMappingURL=order.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order.mjs","names":[],"sources":["../../../src/contracts/deepbook_predict/order.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * Immutable contract terms encoded in a Predict order ID.\n *\n * An `Order` represents the durable contract terms needed after mint: the lower\n * and higher strike ticks, quantity, and the expiry-local sequence. Mint-only\n * inputs such as entry probability, premium, and fee policy intentionally live\n * outside this module. The packed ID is the single source of truth at protocol\n * boundaries; raw strike conversion (through the owning market's `tick_size`) is\n * interpreted by `StrikeExposure`.\n */\n\nimport { MoveStruct } from '../utils/index.js';\nimport { U256 } from '../../bcs/integers.js';\nconst $moduleName = '@local-pkg/deepbook_predict::order';\nexport const Order = new MoveStruct({\n\tname: `${$moduleName}::Order`,\n\tfields: {\n\t\tid: U256,\n\t},\n});\n"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,MAAM,cAAc;AACpB,MAAa,QAAQ,IAAI,WAAW;CACnC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,IAAI,MACJ;CACD,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { MoveStruct } from "../utils/index.mjs";
|
|
2
|
+
import { U256, U64 } from "../../bcs/integers.mjs";
|
|
3
|
+
import { bcs } from "@mysten/sui/bcs";
|
|
4
|
+
|
|
5
|
+
//#region src/contracts/deepbook_predict/order_events.ts
|
|
6
|
+
/**************************************************************
|
|
7
|
+
* THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
|
|
8
|
+
**************************************************************/
|
|
9
|
+
/**
|
|
10
|
+
* Order-lifecycle events for Predict.
|
|
11
|
+
*
|
|
12
|
+
* Events carry transition identities and deltas rather than account or market
|
|
13
|
+
* balances. Partial closes link an old order ID to its replacement; the position
|
|
14
|
+
* root remains constant across that chain.
|
|
15
|
+
*/
|
|
16
|
+
const $moduleName = "@local-pkg/deepbook_predict::order_events";
|
|
17
|
+
const OrderMinted = new MoveStruct({
|
|
18
|
+
name: `${$moduleName}::OrderMinted`,
|
|
19
|
+
fields: {
|
|
20
|
+
expiry_market_id: bcs.Address,
|
|
21
|
+
account_id: bcs.Address,
|
|
22
|
+
order_id: U256,
|
|
23
|
+
position_root_id: U256,
|
|
24
|
+
owner: bcs.Address,
|
|
25
|
+
lower_tick: U64,
|
|
26
|
+
higher_tick: U64,
|
|
27
|
+
entry_probability: U64,
|
|
28
|
+
quantity: U64,
|
|
29
|
+
premium: U64,
|
|
30
|
+
trading_fee: U64,
|
|
31
|
+
fee_incentive_subsidy: U64,
|
|
32
|
+
builder_fee: U64,
|
|
33
|
+
penalty_fee: U64,
|
|
34
|
+
referral_fee: U64,
|
|
35
|
+
inventory_impact_charge: U64,
|
|
36
|
+
builder_code_id: bcs.option(bcs.Address),
|
|
37
|
+
referrer_account_id: bcs.option(bcs.Address),
|
|
38
|
+
onchain_timestamp_ms: U64,
|
|
39
|
+
pyth_spot_source_timestamp_ms: U64,
|
|
40
|
+
block_scholes_spot_source_timestamp_ms: U64,
|
|
41
|
+
block_scholes_forward_source_timestamp_ms: U64,
|
|
42
|
+
block_scholes_svi_source_timestamp_ms: U64
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
const LiveOrderRedeemed = new MoveStruct({
|
|
46
|
+
name: `${$moduleName}::LiveOrderRedeemed`,
|
|
47
|
+
fields: {
|
|
48
|
+
expiry_market_id: bcs.Address,
|
|
49
|
+
account_id: bcs.Address,
|
|
50
|
+
order_id: U256,
|
|
51
|
+
position_root_id: U256,
|
|
52
|
+
owner: bcs.Address,
|
|
53
|
+
quantity_closed: U64,
|
|
54
|
+
remaining_quantity: U64,
|
|
55
|
+
replacement_order_id: bcs.option(U256),
|
|
56
|
+
redeem_amount: U64,
|
|
57
|
+
trading_fee: U64,
|
|
58
|
+
builder_fee: U64,
|
|
59
|
+
penalty_fee: U64,
|
|
60
|
+
inventory_impact_rebate: U64,
|
|
61
|
+
builder_code_id: bcs.option(bcs.Address),
|
|
62
|
+
onchain_timestamp_ms: U64,
|
|
63
|
+
pyth_spot_source_timestamp_ms: U64,
|
|
64
|
+
block_scholes_spot_source_timestamp_ms: U64,
|
|
65
|
+
block_scholes_forward_source_timestamp_ms: U64,
|
|
66
|
+
block_scholes_svi_source_timestamp_ms: U64
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
const SettledOrderRedeemed = new MoveStruct({
|
|
70
|
+
name: `${$moduleName}::SettledOrderRedeemed`,
|
|
71
|
+
fields: {
|
|
72
|
+
expiry_market_id: bcs.Address,
|
|
73
|
+
account_id: bcs.Address,
|
|
74
|
+
order_id: U256,
|
|
75
|
+
position_root_id: U256,
|
|
76
|
+
owner: bcs.Address,
|
|
77
|
+
payout_amount: U64,
|
|
78
|
+
onchain_timestamp_ms: U64
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
//#endregion
|
|
83
|
+
export { LiveOrderRedeemed, OrderMinted, SettledOrderRedeemed };
|
|
84
|
+
//# sourceMappingURL=order_events.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order_events.mjs","names":[],"sources":["../../../src/contracts/deepbook_predict/order_events.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * Order-lifecycle events for Predict.\n *\n * Events carry transition identities and deltas rather than account or market\n * balances. Partial closes link an old order ID to its replacement; the position\n * root remains constant across that chain.\n */\n\nimport { MoveStruct } from '../utils/index.js';\nimport { bcs } from '@mysten/sui/bcs';\nimport { U256, U64 } from '../../bcs/integers.js';\nconst $moduleName = '@local-pkg/deepbook_predict::order_events';\nexport const OrderMinted = new MoveStruct({\n\tname: `${$moduleName}::OrderMinted`,\n\tfields: {\n\t\texpiry_market_id: bcs.Address,\n\t\taccount_id: bcs.Address,\n\t\torder_id: U256,\n\t\t/**\n\t\t * Stable economic-position handle: the original mint's `order_id`, carried forward\n\t\t * unchanged across partial-close replacements. Equals `order_id` here.\n\t\t */\n\t\tposition_root_id: U256,\n\t\towner: bcs.Address,\n\t\t/**\n\t\t * Canonical strike range as absolute ticks: `lower_tick` (`0` = `-inf`) and\n\t\t * `higher_tick` (`pos_inf_tick` = `+inf`). Raw strikes are the derived display\n\t\t * form, `tick * tick_size` with the `tick_size` from `MarketCreated`.\n\t\t */\n\t\tlower_tick: U64,\n\t\thigher_tick: U64,\n\t\t/** 1e9-scaled range probability quoted at entry. */\n\t\tentry_probability: U64,\n\t\tquantity: U64,\n\t\t/** Premium the user paid into LP backing, in DUSDC base units. */\n\t\tpremium: U64,\n\t\t/** Full trading fee assessed for the mint, including any sponsor-paid subsidy. */\n\t\ttrading_fee: U64,\n\t\t/** Portion of `trading_fee` paid from expiry-local fee incentives. */\n\t\tfee_incentive_subsidy: U64,\n\t\tbuilder_fee: U64,\n\t\t/** EWMA gas-price congestion surcharge assessed for the mint, in DUSDC base units. */\n\t\tpenalty_fee: U64,\n\t\t/**\n\t\t * Portion of the trader-paid trading fee and congestion surcharge delivered to the\n\t\t * referrer.\n\t\t */\n\t\treferral_fee: U64,\n\t\t/** Separate inventory-impact charge escrowed for live-close rebates. */\n\t\tinventory_impact_charge: U64,\n\t\t/**\n\t\t * Builder credited for `builder_fee`; `none` when no builder fee was paid\n\t\t * (attribution follows the fee — applied once, in the emit helper).\n\t\t */\n\t\tbuilder_code_id: bcs.option(bcs.Address),\n\t\t/** Referrer recorded on the minting account, independent of the fee paid. */\n\t\treferrer_account_id: bcs.option(bcs.Address),\n\t\tonchain_timestamp_ms: U64,\n\t\t/**\n\t\t * Oracle source timestamps present when this mint was priced: Pyth's canonical\n\t\t * source time and the Block Scholes batch-envelope times used for freshness. The\n\t\t * SVI one is also the roll-down anchor. Pyth is `0` only when unusable.\n\t\t */\n\t\tpyth_spot_source_timestamp_ms: U64,\n\t\tblock_scholes_spot_source_timestamp_ms: U64,\n\t\tblock_scholes_forward_source_timestamp_ms: U64,\n\t\tblock_scholes_svi_source_timestamp_ms: U64,\n\t},\n});\nexport const LiveOrderRedeemed = new MoveStruct({\n\tname: `${$moduleName}::LiveOrderRedeemed`,\n\tfields: {\n\t\texpiry_market_id: bcs.Address,\n\t\taccount_id: bcs.Address,\n\t\torder_id: U256,\n\t\t/**\n\t\t * Stable economic-position handle, constant across the replacement chain. On a\n\t\t * partial close the replacement inherits this same root.\n\t\t */\n\t\tposition_root_id: U256,\n\t\towner: bcs.Address,\n\t\tquantity_closed: U64,\n\t\t/** `0` means the position was fully closed. */\n\t\tremaining_quantity: U64,\n\t\t/** New order ID minted to carry the remainder on a partial live close. */\n\t\treplacement_order_id: bcs.option(U256),\n\t\t/** Redeem value before fees. */\n\t\tredeem_amount: U64,\n\t\ttrading_fee: U64,\n\t\tbuilder_fee: U64,\n\t\t/** EWMA gas-price congestion surcharge retained by the pool, in DUSDC base units. */\n\t\tpenalty_fee: U64,\n\t\t/** Separate inventory-impact rebate paid from its isolated escrow. */\n\t\tinventory_impact_rebate: U64,\n\t\t/**\n\t\t * Builder credited for `builder_fee`; `none` when no builder fee was paid\n\t\t * (attribution follows the fee — applied once, in the emit helper).\n\t\t */\n\t\tbuilder_code_id: bcs.option(bcs.Address),\n\t\tonchain_timestamp_ms: U64,\n\t\t/**\n\t\t * Oracle source timestamps present when this redemption was priced: Pyth's\n\t\t * canonical source time and the Block Scholes batch-envelope times used for\n\t\t * freshness. The SVI one is also the roll-down anchor. Pyth is `0` only when\n\t\t * unusable.\n\t\t */\n\t\tpyth_spot_source_timestamp_ms: U64,\n\t\tblock_scholes_spot_source_timestamp_ms: U64,\n\t\tblock_scholes_forward_source_timestamp_ms: U64,\n\t\tblock_scholes_svi_source_timestamp_ms: U64,\n\t},\n});\nexport const SettledOrderRedeemed = new MoveStruct({\n\tname: `${$moduleName}::SettledOrderRedeemed`,\n\tfields: {\n\t\texpiry_market_id: bcs.Address,\n\t\taccount_id: bcs.Address,\n\t\torder_id: U256,\n\t\t/** Stable economic-position handle, constant across the replacement chain. */\n\t\tposition_root_id: U256,\n\t\towner: bcs.Address,\n\t\tpayout_amount: U64,\n\t\tonchain_timestamp_ms: U64,\n\t},\n});\n"],"mappings":";;;;;;;;;;;;;;;AAeA,MAAM,cAAc;AACpB,MAAa,cAAc,IAAI,WAAW;CACzC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,kBAAkB,IAAI;EACtB,YAAY,IAAI;EAChB,UAAU;EAKV,kBAAkB;EAClB,OAAO,IAAI;EAMX,YAAY;EACZ,aAAa;EAEb,mBAAmB;EACnB,UAAU;EAEV,SAAS;EAET,aAAa;EAEb,uBAAuB;EACvB,aAAa;EAEb,aAAa;EAKb,cAAc;EAEd,yBAAyB;EAKzB,iBAAiB,IAAI,OAAO,IAAI,QAAQ;EAExC,qBAAqB,IAAI,OAAO,IAAI,QAAQ;EAC5C,sBAAsB;EAMtB,+BAA+B;EAC/B,wCAAwC;EACxC,2CAA2C;EAC3C,uCAAuC;EACvC;CACD,CAAC;AACF,MAAa,oBAAoB,IAAI,WAAW;CAC/C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,kBAAkB,IAAI;EACtB,YAAY,IAAI;EAChB,UAAU;EAKV,kBAAkB;EAClB,OAAO,IAAI;EACX,iBAAiB;EAEjB,oBAAoB;EAEpB,sBAAsB,IAAI,OAAO,KAAK;EAEtC,eAAe;EACf,aAAa;EACb,aAAa;EAEb,aAAa;EAEb,yBAAyB;EAKzB,iBAAiB,IAAI,OAAO,IAAI,QAAQ;EACxC,sBAAsB;EAOtB,+BAA+B;EAC/B,wCAAwC;EACxC,2CAA2C;EAC3C,uCAAuC;EACvC;CACD,CAAC;AACF,MAAa,uBAAuB,IAAI,WAAW;CAClD,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,kBAAkB,IAAI;EACtB,YAAY,IAAI;EAChB,UAAU;EAEV,kBAAkB;EAClB,OAAO,IAAI;EACX,eAAe;EACf,sBAAsB;EACtB;CACD,CAAC"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { MoveStruct, normalizeMoveArguments } from "../utils/index.mjs";
|
|
2
|
+
import { U64 } from "../../bcs/integers.mjs";
|
|
3
|
+
import { Balance } from "./deps/sui/balance.mjs";
|
|
4
|
+
import { LpBook } from "./lp_book.mjs";
|
|
5
|
+
import { Ledger } from "./pool_accounting.mjs";
|
|
6
|
+
import { bcs } from "@mysten/sui/bcs";
|
|
7
|
+
|
|
8
|
+
//#region src/contracts/deepbook_predict/plp.ts
|
|
9
|
+
/**************************************************************
|
|
10
|
+
* THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
|
|
11
|
+
**************************************************************/
|
|
12
|
+
/**
|
|
13
|
+
* PLP token and pool vault.
|
|
14
|
+
*
|
|
15
|
+
* PoolVault owns the PLP treasury cap, idle DUSDC, the protocol reserve,
|
|
16
|
+
* sponsor-funded fee incentives, per-expiry cash accounting, and the queued LP
|
|
17
|
+
* supply/withdraw requests. It coordinates the full-pool NAV valuation (a
|
|
18
|
+
* hot-potato aggregation over every active market) and the unified per-market cash
|
|
19
|
+
* flow (initial funding, live rebalance/sweep, and settled-market sweep with
|
|
20
|
+
* terminal profit materialization). LPs queue supply/withdraw requests routed
|
|
21
|
+
* through a loaded Account; each flush (`finish_flush`) drains them at the frozen
|
|
22
|
+
* pool NAV, minting/burning PLP and delivering fills to each account via the
|
|
23
|
+
* balance accumulator.
|
|
24
|
+
*/
|
|
25
|
+
const $moduleName = "@local-pkg/deepbook_predict::plp";
|
|
26
|
+
const PLP = new MoveStruct({
|
|
27
|
+
name: `${$moduleName}::PLP`,
|
|
28
|
+
fields: { dummy_field: bcs.bool() }
|
|
29
|
+
});
|
|
30
|
+
const PoolVault = new MoveStruct({
|
|
31
|
+
name: `${$moduleName}::PoolVault`,
|
|
32
|
+
fields: {
|
|
33
|
+
id: bcs.Address,
|
|
34
|
+
protocol_reserve_balance: Balance,
|
|
35
|
+
fee_incentive_reserve: Balance,
|
|
36
|
+
lp: LpBook,
|
|
37
|
+
expiry_accounting: Ledger
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
const PoolValuation = new MoveStruct({
|
|
41
|
+
name: `${$moduleName}::PoolValuation`,
|
|
42
|
+
fields: {
|
|
43
|
+
pool_vault_id: bcs.Address,
|
|
44
|
+
expected_expiry_markets: bcs.vector(bcs.Address),
|
|
45
|
+
valued_expiry_markets: bcs.vector(bcs.Address),
|
|
46
|
+
total_nav: U64
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
/** Return idle DUSDC for SDK and devInspect state reads. */
|
|
50
|
+
function idleBalance(options) {
|
|
51
|
+
const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
|
|
52
|
+
const argumentsTypes = [null];
|
|
53
|
+
const parameterNames = ["vault"];
|
|
54
|
+
return (tx) => tx.moveCall({
|
|
55
|
+
package: packageAddress,
|
|
56
|
+
module: "plp",
|
|
57
|
+
function: "idle_balance",
|
|
58
|
+
arguments: normalizeMoveArguments({
|
|
59
|
+
...options.arguments,
|
|
60
|
+
vault: options.arguments?.vault ?? options.config?.poolVault
|
|
61
|
+
}, argumentsTypes, parameterNames)
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/** Return total PLP supply for SDK and devInspect state reads. */
|
|
65
|
+
function plpTotalSupply(options) {
|
|
66
|
+
const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
|
|
67
|
+
const argumentsTypes = [null];
|
|
68
|
+
const parameterNames = ["vault"];
|
|
69
|
+
return (tx) => tx.moveCall({
|
|
70
|
+
package: packageAddress,
|
|
71
|
+
module: "plp",
|
|
72
|
+
function: "plp_total_supply",
|
|
73
|
+
arguments: normalizeMoveArguments({
|
|
74
|
+
...options.arguments,
|
|
75
|
+
vault: options.arguments?.vault ?? options.config?.poolVault
|
|
76
|
+
}, argumentsTypes, parameterNames)
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/** Return pending LP supply count for SDK and devInspect queue reads. */
|
|
80
|
+
function supplyRequestsPending(options) {
|
|
81
|
+
const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
|
|
82
|
+
const argumentsTypes = [null];
|
|
83
|
+
const parameterNames = ["vault"];
|
|
84
|
+
return (tx) => tx.moveCall({
|
|
85
|
+
package: packageAddress,
|
|
86
|
+
module: "plp",
|
|
87
|
+
function: "supply_requests_pending",
|
|
88
|
+
arguments: normalizeMoveArguments({
|
|
89
|
+
...options.arguments,
|
|
90
|
+
vault: options.arguments?.vault ?? options.config?.poolVault
|
|
91
|
+
}, argumentsTypes, parameterNames)
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/** Return pending LP withdrawal count for SDK and devInspect queue reads. */
|
|
95
|
+
function withdrawRequestsPending(options) {
|
|
96
|
+
const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
|
|
97
|
+
const argumentsTypes = [null];
|
|
98
|
+
const parameterNames = ["vault"];
|
|
99
|
+
return (tx) => tx.moveCall({
|
|
100
|
+
package: packageAddress,
|
|
101
|
+
module: "plp",
|
|
102
|
+
function: "withdraw_requests_pending",
|
|
103
|
+
arguments: normalizeMoveArguments({
|
|
104
|
+
...options.arguments,
|
|
105
|
+
vault: options.arguments?.vault ?? options.config?.poolVault
|
|
106
|
+
}, argumentsTypes, parameterNames)
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
/** Return active expiry IDs for external PTB construction and pool inspection. */
|
|
110
|
+
function activeExpiryMarkets(options) {
|
|
111
|
+
const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
|
|
112
|
+
const argumentsTypes = [null];
|
|
113
|
+
const parameterNames = ["vault"];
|
|
114
|
+
return (tx) => tx.moveCall({
|
|
115
|
+
package: packageAddress,
|
|
116
|
+
module: "plp",
|
|
117
|
+
function: "active_expiry_markets",
|
|
118
|
+
arguments: normalizeMoveArguments({
|
|
119
|
+
...options.arguments,
|
|
120
|
+
vault: options.arguments?.vault ?? options.config?.poolVault
|
|
121
|
+
}, argumentsTypes, parameterNames)
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Queue a supply request: pull `amount` DUSDC from account custody into queue
|
|
126
|
+
* escrow, recording the account's receive address as the fill recipient. The pull
|
|
127
|
+
* auto-settles any flush-delivered DUSDC first. The flush charges the protocol's
|
|
128
|
+
* supply fee — zero by default — on the DUSDC it takes in and prices shares on the
|
|
129
|
+
* remainder, so `min_plp_out` is measured after that fee. The account receives
|
|
130
|
+
* minted PLP only at a mark that mints at least `min_plp_out` for the whole
|
|
131
|
+
* `amount` — a **price floor**, not a promise of that many shares: if the pool cap
|
|
132
|
+
* leaves room for only part of the deposit, the fill is proportionally smaller at
|
|
133
|
+
* the same price and the remainder stays queued with its limit rescaled. At the
|
|
134
|
+
* shipped attempt count of one, a flush whose mark quotes less cancels and refunds
|
|
135
|
+
* the request there and then; a higher configured count lets it rest and retry
|
|
136
|
+
* that many flushes first. Returns the queue index, the handle used to cancel
|
|
137
|
+
* before the flush.
|
|
138
|
+
*/
|
|
139
|
+
function requestSupply(options) {
|
|
140
|
+
const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
|
|
141
|
+
const argumentsTypes = [
|
|
142
|
+
null,
|
|
143
|
+
null,
|
|
144
|
+
null,
|
|
145
|
+
null,
|
|
146
|
+
"u64",
|
|
147
|
+
"u64",
|
|
148
|
+
"0x2::accumulator::AccumulatorRoot",
|
|
149
|
+
"0x2::clock::Clock"
|
|
150
|
+
];
|
|
151
|
+
const parameterNames = [
|
|
152
|
+
"vault",
|
|
153
|
+
"wrapper",
|
|
154
|
+
"auth",
|
|
155
|
+
"config",
|
|
156
|
+
"amount",
|
|
157
|
+
"minPlpOut"
|
|
158
|
+
];
|
|
159
|
+
return (tx) => tx.moveCall({
|
|
160
|
+
package: packageAddress,
|
|
161
|
+
module: "plp",
|
|
162
|
+
function: "request_supply",
|
|
163
|
+
arguments: normalizeMoveArguments({
|
|
164
|
+
...options.arguments,
|
|
165
|
+
vault: options.arguments?.vault ?? options.config?.poolVault,
|
|
166
|
+
config: options.arguments?.config ?? options.config?.protocolConfig
|
|
167
|
+
}, argumentsTypes, parameterNames)
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Queue a withdraw request: pull `amount` PLP shares from account custody into
|
|
172
|
+
* queue escrow, recording the account's receive address as the fill recipient. The
|
|
173
|
+
* pull auto-settles any flush-delivered PLP first. The flush withholds the
|
|
174
|
+
* protocol's withdraw fee from the marked payout, so `min_dusdc_out` is measured
|
|
175
|
+
* after the fee. The account is paid only at a mark that quotes at least
|
|
176
|
+
* `min_dusdc_out` for the whole `amount` — a **price floor**, not a promise of
|
|
177
|
+
* that much DUSDC: if idle liquidity covers only part of the payout, only the
|
|
178
|
+
* shares idle affords are burned, the fill is proportionally smaller at the same
|
|
179
|
+
* price, and the remainder stays queued with its limit rescaled. At the shipped
|
|
180
|
+
* attempt count of one, a flush whose mark quotes less cancels and refunds the
|
|
181
|
+
* request there and then; a higher configured count lets it rest and retry that
|
|
182
|
+
* many flushes first. Returns the queue index used to cancel before the flush.
|
|
183
|
+
*/
|
|
184
|
+
function requestWithdraw(options) {
|
|
185
|
+
const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
|
|
186
|
+
const argumentsTypes = [
|
|
187
|
+
null,
|
|
188
|
+
null,
|
|
189
|
+
null,
|
|
190
|
+
null,
|
|
191
|
+
"u64",
|
|
192
|
+
"u64",
|
|
193
|
+
"0x2::accumulator::AccumulatorRoot",
|
|
194
|
+
"0x2::clock::Clock"
|
|
195
|
+
];
|
|
196
|
+
const parameterNames = [
|
|
197
|
+
"vault",
|
|
198
|
+
"wrapper",
|
|
199
|
+
"auth",
|
|
200
|
+
"config",
|
|
201
|
+
"amount",
|
|
202
|
+
"minDusdcOut"
|
|
203
|
+
];
|
|
204
|
+
return (tx) => tx.moveCall({
|
|
205
|
+
package: packageAddress,
|
|
206
|
+
module: "plp",
|
|
207
|
+
function: "request_withdraw",
|
|
208
|
+
arguments: normalizeMoveArguments({
|
|
209
|
+
...options.arguments,
|
|
210
|
+
vault: options.arguments?.vault ?? options.config?.poolVault,
|
|
211
|
+
config: options.arguments?.config ?? options.config?.protocolConfig
|
|
212
|
+
}, argumentsTypes, parameterNames)
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Cancel a still-pending supply request, refunding its escrowed DUSDC straight
|
|
217
|
+
* into the requesting account. `account` must be the request's recorded recipient.
|
|
218
|
+
*/
|
|
219
|
+
function cancelSupplyRequest(options) {
|
|
220
|
+
const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
|
|
221
|
+
const argumentsTypes = [
|
|
222
|
+
null,
|
|
223
|
+
null,
|
|
224
|
+
null,
|
|
225
|
+
null,
|
|
226
|
+
"u64",
|
|
227
|
+
"0x2::accumulator::AccumulatorRoot",
|
|
228
|
+
"0x2::clock::Clock"
|
|
229
|
+
];
|
|
230
|
+
const parameterNames = [
|
|
231
|
+
"vault",
|
|
232
|
+
"wrapper",
|
|
233
|
+
"auth",
|
|
234
|
+
"config",
|
|
235
|
+
"index"
|
|
236
|
+
];
|
|
237
|
+
return (tx) => tx.moveCall({
|
|
238
|
+
package: packageAddress,
|
|
239
|
+
module: "plp",
|
|
240
|
+
function: "cancel_supply_request",
|
|
241
|
+
arguments: normalizeMoveArguments({
|
|
242
|
+
...options.arguments,
|
|
243
|
+
vault: options.arguments?.vault ?? options.config?.poolVault,
|
|
244
|
+
config: options.arguments?.config ?? options.config?.protocolConfig
|
|
245
|
+
}, argumentsTypes, parameterNames)
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Cancel a still-pending withdraw request, refunding its escrowed PLP straight
|
|
250
|
+
* into the requesting account. `account` must be the request's recorded recipient.
|
|
251
|
+
*/
|
|
252
|
+
function cancelWithdrawRequest(options) {
|
|
253
|
+
const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
|
|
254
|
+
const argumentsTypes = [
|
|
255
|
+
null,
|
|
256
|
+
null,
|
|
257
|
+
null,
|
|
258
|
+
null,
|
|
259
|
+
"u64",
|
|
260
|
+
"0x2::accumulator::AccumulatorRoot",
|
|
261
|
+
"0x2::clock::Clock"
|
|
262
|
+
];
|
|
263
|
+
const parameterNames = [
|
|
264
|
+
"vault",
|
|
265
|
+
"wrapper",
|
|
266
|
+
"auth",
|
|
267
|
+
"config",
|
|
268
|
+
"index"
|
|
269
|
+
];
|
|
270
|
+
return (tx) => tx.moveCall({
|
|
271
|
+
package: packageAddress,
|
|
272
|
+
module: "plp",
|
|
273
|
+
function: "cancel_withdraw_request",
|
|
274
|
+
arguments: normalizeMoveArguments({
|
|
275
|
+
...options.arguments,
|
|
276
|
+
vault: options.arguments?.vault ?? options.config?.poolVault,
|
|
277
|
+
config: options.arguments?.config ?? options.config?.protocolConfig
|
|
278
|
+
}, argumentsTypes, parameterNames)
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
//#endregion
|
|
283
|
+
export { activeExpiryMarkets, cancelSupplyRequest, cancelWithdrawRequest, idleBalance, plpTotalSupply, requestSupply, requestWithdraw, supplyRequestsPending, withdrawRequestsPending };
|
|
284
|
+
//# sourceMappingURL=plp.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plp.mjs","names":["balance.Balance","lp_book.LpBook","pool_accounting.Ledger"],"sources":["../../../src/contracts/deepbook_predict/plp.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * PLP token and pool vault.\n *\n * PoolVault owns the PLP treasury cap, idle DUSDC, the protocol reserve,\n * sponsor-funded fee incentives, per-expiry cash accounting, and the queued LP\n * supply/withdraw requests. It coordinates the full-pool NAV valuation (a\n * hot-potato aggregation over every active market) and the unified per-market cash\n * flow (initial funding, live rebalance/sweep, and settled-market sweep with\n * terminal profit materialization). LPs queue supply/withdraw requests routed\n * through a loaded Account; each flush (`finish_flush`) drains them at the frozen\n * pool NAV, minting/burning PLP and delivering fills to each account via the\n * balance accumulator.\n */\n\nimport {\n\tMoveStruct,\n\tnormalizeMoveArguments,\n\ttype RawTransactionArgument,\n\ttype ConfigValue,\n} from '../utils/index.js';\nimport { bcs } from '@mysten/sui/bcs';\nimport { U64 } from '../../bcs/integers.js';\nimport { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';\nimport * as balance from './deps/sui/balance.js';\nimport * as lp_book from './lp_book.js';\nimport * as pool_accounting from './pool_accounting.js';\nconst $moduleName = '@local-pkg/deepbook_predict::plp';\nexport const PLP = new MoveStruct({\n\tname: `${$moduleName}::PLP`,\n\tfields: {\n\t\tdummy_field: bcs.bool(),\n\t},\n});\nexport const PoolVault = new MoveStruct({\n\tname: `${$moduleName}::PoolVault`,\n\tfields: {\n\t\tid: bcs.Address,\n\t\t/**\n\t\t * Protocol-owned DUSDC excluded from PLP redemption. No package entrypoint\n\t\t * withdraws this balance.\n\t\t */\n\t\tprotocol_reserve_balance: balance.Balance,\n\t\t/** Sponsor-funded DUSDC reserved for taker fee sponsorship, excluded from PLP NAV. */\n\t\tfee_incentive_reserve: balance.Balance,\n\t\t/** PLP share issuance plus queued supply/withdraw escrow. */\n\t\tlp: lp_book.LpBook,\n\t\t/** Idle DUSDC custody, registered expiries, and per-expiry cash-flow rows. */\n\t\texpiry_accounting: pool_accounting.Ledger,\n\t},\n});\nexport const PoolValuation = new MoveStruct({\n\tname: `${$moduleName}::PoolValuation`,\n\tfields: {\n\t\tpool_vault_id: bcs.Address,\n\t\t/** Active expiry markets snapshotted at start; every one must be valued. */\n\t\texpected_expiry_markets: bcs.vector(bcs.Address),\n\t\t/** Markets valued so far this flow; folded against `expected` at finish. */\n\t\tvalued_expiry_markets: bcs.vector(bcs.Address),\n\t\t/** Running Σ of each valued market's NAV (settled markets contribute 0). */\n\t\ttotal_nav: U64,\n\t},\n});\nexport interface IdArguments {\n\tvault?: RawTransactionArgument<string>;\n}\nexport interface IdOptions {\n\tpackage?: string;\n\targuments?: IdArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the pool vault object ID for external discovery and PTB construction. */\nexport function id(options: IdOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['vault'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'id',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface IdleBalanceArguments {\n\tvault?: RawTransactionArgument<string>;\n}\nexport interface IdleBalanceOptions {\n\tpackage?: string;\n\targuments?: IdleBalanceArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return idle DUSDC for SDK and devInspect state reads. */\nexport function idleBalance(options: IdleBalanceOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['vault'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'idle_balance',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface ProtocolReserveBalanceArguments {\n\tvault?: RawTransactionArgument<string>;\n}\nexport interface ProtocolReserveBalanceOptions {\n\tpackage?: string;\n\targuments?: ProtocolReserveBalanceArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return protocol-owned DUSDC for SDK and devInspect state reads. */\nexport function protocolReserveBalance(options: ProtocolReserveBalanceOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['vault'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'protocol_reserve_balance',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface FeeIncentiveReserveArguments {\n\tvault?: RawTransactionArgument<string>;\n}\nexport interface FeeIncentiveReserveOptions {\n\tpackage?: string;\n\targuments?: FeeIncentiveReserveArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return sponsor-funded fee reserves for SDK and devInspect state reads. */\nexport function feeIncentiveReserve(options: FeeIncentiveReserveOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['vault'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'fee_incentive_reserve',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface PlpTotalSupplyArguments {\n\tvault?: RawTransactionArgument<string>;\n}\nexport interface PlpTotalSupplyOptions {\n\tpackage?: string;\n\targuments?: PlpTotalSupplyArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return total PLP supply for SDK and devInspect state reads. */\nexport function plpTotalSupply(options: PlpTotalSupplyOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['vault'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'plp_total_supply',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface SupplyRequestsPendingArguments {\n\tvault?: RawTransactionArgument<string>;\n}\nexport interface SupplyRequestsPendingOptions {\n\tpackage?: string;\n\targuments?: SupplyRequestsPendingArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return pending LP supply count for SDK and devInspect queue reads. */\nexport function supplyRequestsPending(options: SupplyRequestsPendingOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['vault'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'supply_requests_pending',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface WithdrawRequestsPendingArguments {\n\tvault?: RawTransactionArgument<string>;\n}\nexport interface WithdrawRequestsPendingOptions {\n\tpackage?: string;\n\targuments?: WithdrawRequestsPendingArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return pending LP withdrawal count for SDK and devInspect queue reads. */\nexport function withdrawRequestsPending(options: WithdrawRequestsPendingOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['vault'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'withdraw_requests_pending',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface ActiveExpiryMarketsArguments {\n\tvault?: RawTransactionArgument<string>;\n}\nexport interface ActiveExpiryMarketsOptions {\n\tpackage?: string;\n\targuments?: ActiveExpiryMarketsArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return active expiry IDs for external PTB construction and pool inspection. */\nexport function activeExpiryMarkets(options: ActiveExpiryMarketsOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['vault'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'active_expiry_markets',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface ActiveLiveExpiryCountArguments {\n\tvault?: RawTransactionArgument<string>;\n}\nexport interface ActiveLiveExpiryCountOptions {\n\tpackage?: string;\n\targuments?: ActiveLiveExpiryCountArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the pre-expiry active count for SDK and devInspect capacity reads. */\nexport function activeLiveExpiryCount(options: ActiveLiveExpiryCountOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['vault'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'active_live_expiry_count',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface ProfitBasisDebitsArguments {\n\tvault?: RawTransactionArgument<string>;\n}\nexport interface ProfitBasisDebitsOptions {\n\tpackage?: string;\n\targuments?: ProfitBasisDebitsArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the profit-basis debits for external accounting observability. */\nexport function profitBasisDebits(options: ProfitBasisDebitsOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['vault'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'profit_basis_debits',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface ProfitBasisCreditsArguments {\n\tvault?: RawTransactionArgument<string>;\n}\nexport interface ProfitBasisCreditsOptions {\n\tpackage?: string;\n\targuments?: ProfitBasisCreditsArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the profit-basis credits for external accounting observability. */\nexport function profitBasisCredits(options: ProfitBasisCreditsOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['vault'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'profit_basis_credits',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface PendingProtocolProfitArguments {\n\tvault?: RawTransactionArgument<string>;\n}\nexport interface PendingProtocolProfitOptions {\n\tpackage?: string;\n\targuments?: PendingProtocolProfitArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return deferred protocol profit for external accounting observability. */\nexport function pendingProtocolProfit(options: PendingProtocolProfitOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['vault'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'pending_protocol_profit',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface StartPoolValuationArguments {\n\tconfig?: RawTransactionArgument<string>;\n\tvault?: RawTransactionArgument<string>;\n\tlifecycleProof: TransactionArgument;\n}\nexport interface StartPoolValuationOptions {\n\tpackage?: string;\n\targuments: StartPoolValuationArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpoolVault: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Begin a full-pool valuation using a registry-issued lifecycle proof. The proof\n * grants control over when current oracle state is frozen for queued LP fills.\n * Starting engages the transaction-local valuation lock and snapshots every active\n * expiry that must be included before the queues can drain.\n */\nexport function startPoolValuation(options: StartPoolValuationOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, null] satisfies (string | null)[];\n\tconst parameterNames = ['config', 'vault', 'lifecycleProof'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'start_pool_valuation',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface ValueExpiryArguments {\n\tvaluation: TransactionArgument;\n\tvault?: RawTransactionArgument<string>;\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tpropbookRegistry?: RawTransactionArgument<string>;\n\tpyth: RawTransactionArgument<string>;\n\tbsValues: RawTransactionArgument<string>;\n\tbsSvi: RawTransactionArgument<string>;\n}\nexport interface ValueExpiryOptions {\n\tpackage?: string;\n\targuments: ValueExpiryArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tprotocolConfig: ConfigValue;\n\t\toracleRegistry: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Run the per-market cash flow for one snapshotted market, then fold its NAV into\n * the running total. The market must be in the snapshot and not already valued. A\n * settled market is swept (deactivated, cash returned, profit materialized) and\n * contributes 0; a live market is rebalanced to target and valued on its current\n * cash.\n *\n * Settlement is a separate PTB step through `expiry_market::try_settle`. An\n * expired unsettled market cannot produce the live pricer required here.\n */\nexport function valueExpiry(options: ValueExpiryOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'valuation',\n\t\t'vault',\n\t\t'market',\n\t\t'config',\n\t\t'propbookRegistry',\n\t\t'pyth',\n\t\t'bsValues',\n\t\t'bsSvi',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'value_expiry',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t\tpropbookRegistry: options.arguments?.propbookRegistry ?? options.config?.oracleRegistry,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface FinishFlushArguments {\n\tvaluation: TransactionArgument;\n\tvault?: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tsupplyBudget: RawTransactionArgument<number | bigint | null>;\n\twithdrawBudget: RawTransactionArgument<number | bigint | null>;\n}\nexport interface FinishFlushOptions {\n\tpackage?: string;\n\targuments: FinishFlushArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Finish a full-pool valuation and run the LP flush: prove every snapshotted\n * market was valued exactly once, price the pool NAV, then drain the\n * supply/withdraw queues at that frozen mark (mint PLP for supplies, burn PLP and\n * pay DUSDC for withdrawals), release the valuation lock, consume the potato, and\n * return the LP-attributable pool-wide DUSDC NAV (idle + Σ active NAV, net of the\n * pending-protocol-profit exclusion priced from the aggregate profit basis).\n *\n * `supply_budget` and `withdraw_budget` bound how many requests each queue may\n * process this flush (`None` = unbounded). Fills — whole or partial — and\n * protocol-refunded heads — non-executable, or quoting below the request's own\n * minimum output — all count as processed. At `ProtocolConfig`'s shipped attempt\n * count of one, a head that misses its limit is refunded by the flush that reaches\n * it; above one it stays queued and stops that queue for the flush. The budgets\n * are independent, so a supply backlog does not consume withdrawal capacity.\n *\n * Capacity bounds each pass on top of the budgets and refunds nothing: supplies\n * fill only up to `ProtocolConfig`'s LP pool-value cap, withdrawals only up to\n * idle. A head larger than the room left fills to the room, spends flush budget,\n * and keeps its remainder queued at a rescaled limit; a head with no usable room\n * carries untouched and spends none. Either way the pass stops, so an unbounded\n * budget does not mean every queued request is processed (RP-23).\n *\n * Because queueing is permissionless and a refunded request returns its escrow in\n * the same transaction, an operator should bound both budgets in production rather\n * than rely on queue length staying small — see RP-12.\n */\nexport function finishFlush(options: FinishFlushOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'0x1::option::Option<u64>',\n\t\t'0x1::option::Option<u64>',\n\t] satisfies (string | null)[];\n\tconst parameterNames = ['valuation', 'vault', 'config', 'supplyBudget', 'withdrawBudget'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'finish_flush',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface RebalanceExpiryCashArguments {\n\tvault?: RawTransactionArgument<string>;\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n}\nexport interface RebalanceExpiryCashOptions {\n\tpackage?: string;\n\targuments: RebalanceExpiryCashArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Move cash between pool idle liquidity and one expiry market.\n *\n * Permissionless and standalone: anyone may call it at any cadence. Handles all\n * three per-market cases — initial funding of a freshly registered (unfunded)\n * market, ongoing live rebalance/surplus-sweep toward target, and the\n * settled-market sweep (deactivate, return all free cash, materialize profit).\n * Call `expiry_market::try_settle` first in the same PTB when settlement may be\n * due. An expired unsettled market is a no-op until that transition succeeds. Mint\n * asserts backing but never pulls pool cash, so this is what makes a market\n * mintable. The market must already be registered to this vault\n * (`registry::create_and_share_expiry_market`). Blocked while a full-pool\n * valuation is in progress.\n */\nexport function rebalanceExpiryCash(options: RebalanceExpiryCashOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['vault', 'market', 'config'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'rebalance_expiry_cash',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface SponsorFeeIncentivesArguments {\n\tvault?: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tpayment: RawTransactionArgument<string>;\n}\nexport interface SponsorFeeIncentivesOptions {\n\tpackage?: string;\n\targuments: SponsorFeeIncentivesArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Sponsor taker fee incentives with DUSDC. Anyone may contribute; the payment\n * joins a pool-level reserve that is excluded from PLP NAV and later allocated to\n * expiry markets by the normal rebalance flow.\n */\nexport function sponsorFeeIncentives(options: SponsorFeeIncentivesOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, null] satisfies (string | null)[];\n\tconst parameterNames = ['vault', 'config', 'payment'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'sponsor_fee_incentives',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface LockCapitalArguments {\n\tvault?: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tAdminCap: RawTransactionArgument<string>;\n\tpayment: RawTransactionArgument<string>;\n}\nexport interface LockCapitalOptions {\n\tpackage?: string;\n\targuments: LockCapitalArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Bootstrap the pool exactly once: permanently lock `payment` DUSDC of minimum\n * liquidity. Mints matching PLP (1:1) into the book's locked balance — never\n * withdrawable, so the caller receives no shares — and joins the DUSDC into idle.\n * This keeps `total_supply > 0` while the vault exists and gives rounding dust a\n * non-withdrawable PLP holder. Requires root authority and zero existing supply.\n * Supply, withdrawal, and flush flows remain disabled until the locked liquidity\n * has been created.\n */\nexport function lockCapital(options: LockCapitalOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, null, null] satisfies (string | null)[];\n\tconst parameterNames = ['vault', 'config', 'AdminCap', 'payment'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'lock_capital',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface RequestSupplyArguments {\n\tvault?: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tauth: TransactionArgument;\n\tconfig?: RawTransactionArgument<string>;\n\tamount: RawTransactionArgument<number | bigint>;\n\tminPlpOut: RawTransactionArgument<number | bigint>;\n}\nexport interface RequestSupplyOptions {\n\tpackage?: string;\n\targuments: RequestSupplyArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Queue a supply request: pull `amount` DUSDC from account custody into queue\n * escrow, recording the account's receive address as the fill recipient. The pull\n * auto-settles any flush-delivered DUSDC first. The flush charges the protocol's\n * supply fee — zero by default — on the DUSDC it takes in and prices shares on the\n * remainder, so `min_plp_out` is measured after that fee. The account receives\n * minted PLP only at a mark that mints at least `min_plp_out` for the whole\n * `amount` — a **price floor**, not a promise of that many shares: if the pool cap\n * leaves room for only part of the deposit, the fill is proportionally smaller at\n * the same price and the remainder stays queued with its limit rescaled. At the\n * shipped attempt count of one, a flush whose mark quotes less cancels and refunds\n * the request there and then; a higher configured count lets it rest and retry\n * that many flushes first. Returns the queue index, the handle used to cancel\n * before the flush.\n */\nexport function requestSupply(options: RequestSupplyOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u64',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = ['vault', 'wrapper', 'auth', 'config', 'amount', 'minPlpOut'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'request_supply',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface RequestWithdrawArguments {\n\tvault?: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tauth: TransactionArgument;\n\tconfig?: RawTransactionArgument<string>;\n\tamount: RawTransactionArgument<number | bigint>;\n\tminDusdcOut: RawTransactionArgument<number | bigint>;\n}\nexport interface RequestWithdrawOptions {\n\tpackage?: string;\n\targuments: RequestWithdrawArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Queue a withdraw request: pull `amount` PLP shares from account custody into\n * queue escrow, recording the account's receive address as the fill recipient. The\n * pull auto-settles any flush-delivered PLP first. The flush withholds the\n * protocol's withdraw fee from the marked payout, so `min_dusdc_out` is measured\n * after the fee. The account is paid only at a mark that quotes at least\n * `min_dusdc_out` for the whole `amount` — a **price floor**, not a promise of\n * that much DUSDC: if idle liquidity covers only part of the payout, only the\n * shares idle affords are burned, the fill is proportionally smaller at the same\n * price, and the remainder stays queued with its limit rescaled. At the shipped\n * attempt count of one, a flush whose mark quotes less cancels and refunds the\n * request there and then; a higher configured count lets it rest and retry that\n * many flushes first. Returns the queue index used to cancel before the flush.\n */\nexport function requestWithdraw(options: RequestWithdrawOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'u64',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = ['vault', 'wrapper', 'auth', 'config', 'amount', 'minDusdcOut'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'request_withdraw',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface CancelSupplyRequestArguments {\n\tvault?: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tauth: TransactionArgument;\n\tconfig?: RawTransactionArgument<string>;\n\tindex: RawTransactionArgument<number | bigint>;\n}\nexport interface CancelSupplyRequestOptions {\n\tpackage?: string;\n\targuments: CancelSupplyRequestArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Cancel a still-pending supply request, refunding its escrowed DUSDC straight\n * into the requesting account. `account` must be the request's recorded recipient.\n */\nexport function cancelSupplyRequest(options: CancelSupplyRequestOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = ['vault', 'wrapper', 'auth', 'config', 'index'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'cancel_supply_request',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface CancelWithdrawRequestArguments {\n\tvault?: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tauth: TransactionArgument;\n\tconfig?: RawTransactionArgument<string>;\n\tindex: RawTransactionArgument<number | bigint>;\n}\nexport interface CancelWithdrawRequestOptions {\n\tpackage?: string;\n\targuments: CancelWithdrawRequestArguments;\n\tconfig?: {\n\t\tpoolVault: ConfigValue;\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Cancel a still-pending withdraw request, refunding its escrowed PLP straight\n * into the requesting account. `account` must be the request's recorded recipient.\n */\nexport function cancelWithdrawRequest(options: CancelWithdrawRequestOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\tnull,\n\t\t'u64',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = ['vault', 'wrapper', 'auth', 'config', 'index'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'plp',\n\t\t\tfunction: 'cancel_withdraw_request',\n\t\t\targuments: normalizeMoveArguments(\n\t\t\t\t{\n\t\t\t\t\t...options.arguments,\n\t\t\t\t\tvault: options.arguments?.vault ?? options.config?.poolVault,\n\t\t\t\t\tconfig: options.arguments?.config ?? options.config?.protocolConfig,\n\t\t\t\t},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA8BA,MAAM,cAAc;AACpB,MAAa,MAAM,IAAI,WAAW;CACjC,MAAM,GAAG,YAAY;CACrB,QAAQ,EACP,aAAa,IAAI,MAAM,EACvB;CACD,CAAC;AACF,MAAa,YAAY,IAAI,WAAW;CACvC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,IAAI,IAAI;EAKR,0BAA0BA;EAE1B,uBAAuBA;EAEvB,IAAIC;EAEJ,mBAAmBC;EACnB;CACD,CAAC;AACF,MAAa,gBAAgB,IAAI,WAAW;CAC3C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,eAAe,IAAI;EAEnB,yBAAyB,IAAI,OAAO,IAAI,QAAQ;EAEhD,uBAAuB,IAAI,OAAO,IAAI,QAAQ;EAE9C,WAAW;EACX;CACD,CAAC;;AA6CF,SAAgB,YAAY,SAA6B;CACxD,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB,CAAC,KAAK;CAC7B,MAAM,iBAAiB,CAAC,QAAQ;AAChC,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBACV;GACC,GAAG,QAAQ;GACX,OAAO,QAAQ,WAAW,SAAS,QAAQ,QAAQ;GACnD,EACD,gBACA,eACA;EACD,CAAC;;;AA8EJ,SAAgB,eAAe,SAAgC;CAC9D,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB,CAAC,KAAK;CAC7B,MAAM,iBAAiB,CAAC,QAAQ;AAChC,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBACV;GACC,GAAG,QAAQ;GACX,OAAO,QAAQ,WAAW,SAAS,QAAQ,QAAQ;GACnD,EACD,gBACA,eACA;EACD,CAAC;;;AAcJ,SAAgB,sBAAsB,SAAuC;CAC5E,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB,CAAC,KAAK;CAC7B,MAAM,iBAAiB,CAAC,QAAQ;AAChC,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBACV;GACC,GAAG,QAAQ;GACX,OAAO,QAAQ,WAAW,SAAS,QAAQ,QAAQ;GACnD,EACD,gBACA,eACA;EACD,CAAC;;;AAcJ,SAAgB,wBAAwB,SAAyC;CAChF,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB,CAAC,KAAK;CAC7B,MAAM,iBAAiB,CAAC,QAAQ;AAChC,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBACV;GACC,GAAG,QAAQ;GACX,OAAO,QAAQ,WAAW,SAAS,QAAQ,QAAQ;GACnD,EACD,gBACA,eACA;EACD,CAAC;;;AAcJ,SAAgB,oBAAoB,SAAqC;CACxE,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB,CAAC,KAAK;CAC7B,MAAM,iBAAiB,CAAC,QAAQ;AAChC,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBACV;GACC,GAAG,QAAQ;GACX,OAAO,QAAQ,WAAW,SAAS,QAAQ,QAAQ;GACnD,EACD,gBACA,eACA;EACD,CAAC;;;;;;;;;;;;;;;;;AA8dJ,SAAgB,cAAc,SAA+B;CAC5D,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM,iBAAiB;EAAC;EAAS;EAAW;EAAQ;EAAU;EAAU;EAAY;AACpF,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBACV;GACC,GAAG,QAAQ;GACX,OAAO,QAAQ,WAAW,SAAS,QAAQ,QAAQ;GACnD,QAAQ,QAAQ,WAAW,UAAU,QAAQ,QAAQ;GACrD,EACD,gBACA,eACA;EACD,CAAC;;;;;;;;;;;;;;;;AAiCJ,SAAgB,gBAAgB,SAAiC;CAChE,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM,iBAAiB;EAAC;EAAS;EAAW;EAAQ;EAAU;EAAU;EAAc;AACtF,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBACV;GACC,GAAG,QAAQ;GACX,OAAO,QAAQ,WAAW,SAAS,QAAQ,QAAQ;GACnD,QAAQ,QAAQ,WAAW,UAAU,QAAQ,QAAQ;GACrD,EACD,gBACA,eACA;EACD,CAAC;;;;;;AAsBJ,SAAgB,oBAAoB,SAAqC;CACxE,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM,iBAAiB;EAAC;EAAS;EAAW;EAAQ;EAAU;EAAQ;AACtE,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBACV;GACC,GAAG,QAAQ;GACX,OAAO,QAAQ,WAAW,SAAS,QAAQ,QAAQ;GACnD,QAAQ,QAAQ,WAAW,UAAU,QAAQ,QAAQ;GACrD,EACD,gBACA,eACA;EACD,CAAC;;;;;;AAsBJ,SAAgB,sBAAsB,SAAuC;CAC5E,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM,iBAAiB;EAAC;EAAS;EAAW;EAAQ;EAAU;EAAQ;AACtE,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBACV;GACC,GAAG,QAAQ;GACX,OAAO,QAAQ,WAAW,SAAS,QAAQ,QAAQ;GACnD,QAAQ,QAAQ,WAAW,UAAU,QAAQ,QAAQ;GACrD,EACD,gBACA,eACA;EACD,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { MoveStruct } from "../utils/index.mjs";
|
|
2
|
+
import { U64 } from "../../bcs/integers.mjs";
|
|
3
|
+
import { Table } from "./deps/sui/table.mjs";
|
|
4
|
+
import { Balance } from "./deps/sui/balance.mjs";
|
|
5
|
+
import { bcs } from "@mysten/sui/bcs";
|
|
6
|
+
|
|
7
|
+
//#region src/contracts/deepbook_predict/pool_accounting.ts
|
|
8
|
+
/**************************************************************
|
|
9
|
+
* THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
|
|
10
|
+
**************************************************************/
|
|
11
|
+
/**
|
|
12
|
+
* Pool-owned expiry registration and cash-flow accounting.
|
|
13
|
+
*
|
|
14
|
+
* This module owns pool idle DUSDC custody, the durable set of expiries registered
|
|
15
|
+
* to a pool, the active expiry index used for valuation, DUSDC sent from the main
|
|
16
|
+
* pool into each expiry, DUSDC received back from each expiry, snapshotted
|
|
17
|
+
* lifetime fee-incentive caps and allocations, terminal cash watermarks, and
|
|
18
|
+
* per-expiry cap checks. It does not classify expiry-local liabilities or apply
|
|
19
|
+
* PLP reserve policy; PoolVault uses the aggregate profit basis to price PLP and
|
|
20
|
+
* decide protocol reserve transfers.
|
|
21
|
+
*/
|
|
22
|
+
const $moduleName = "@local-pkg/deepbook_predict::pool_accounting";
|
|
23
|
+
const ActiveExpiry = new MoveStruct({
|
|
24
|
+
name: `${$moduleName}::ActiveExpiry`,
|
|
25
|
+
fields: {
|
|
26
|
+
expiry_market_id: bcs.Address,
|
|
27
|
+
expiry_ms: U64
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
const Ledger = new MoveStruct({
|
|
31
|
+
name: `${$moduleName}::Ledger`,
|
|
32
|
+
fields: {
|
|
33
|
+
idle_balance: Balance,
|
|
34
|
+
active_expiry_markets: bcs.vector(ActiveExpiry),
|
|
35
|
+
registered_expiries: Table,
|
|
36
|
+
profit_basis_debits: U64,
|
|
37
|
+
profit_basis_credits: U64,
|
|
38
|
+
net_losses_to_fill: U64,
|
|
39
|
+
pending_protocol_profit: U64
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
const RegisteredExpiry = new MoveStruct({
|
|
43
|
+
name: `${$moduleName}::RegisteredExpiry`,
|
|
44
|
+
fields: {
|
|
45
|
+
max_expiry_allocation: U64,
|
|
46
|
+
initial_expiry_cash: U64,
|
|
47
|
+
sent_to_expiry: U64,
|
|
48
|
+
received_from_expiry: U64,
|
|
49
|
+
fee_incentive_lifetime_cap: U64,
|
|
50
|
+
fee_incentives_allocated: U64,
|
|
51
|
+
terminal_accounting_started: bcs.bool(),
|
|
52
|
+
terminal_received_watermark: U64
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
//#endregion
|
|
57
|
+
export { Ledger };
|
|
58
|
+
//# sourceMappingURL=pool_accounting.mjs.map
|