@mysten/deepbook-v3 2.0.1 → 2.1.3

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.
Files changed (272) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/PREDICT.md +256 -0
  3. package/README.md +116 -0
  4. package/dist/account.d.mts +139 -0
  5. package/dist/account.d.mts.map +1 -0
  6. package/dist/account.mjs +181 -0
  7. package/dist/account.mjs.map +1 -0
  8. package/dist/bcs/integers.mjs +23 -0
  9. package/dist/bcs/integers.mjs.map +1 -0
  10. package/dist/contracts/account/account.d.mts +382 -0
  11. package/dist/contracts/account/account.d.mts.map +1 -0
  12. package/dist/contracts/account/account.mjs +443 -0
  13. package/dist/contracts/account/account.mjs.map +1 -0
  14. package/dist/contracts/account/account_events.d.mts +41 -0
  15. package/dist/contracts/account/account_events.d.mts.map +1 -0
  16. package/dist/contracts/account/account_events.mjs +72 -0
  17. package/dist/contracts/account/account_events.mjs.map +1 -0
  18. package/dist/contracts/account/account_registry.d.mts +210 -0
  19. package/dist/contracts/account/account_registry.d.mts.map +1 -0
  20. package/dist/contracts/account/account_registry.mjs +263 -0
  21. package/dist/contracts/account/account_registry.mjs.map +1 -0
  22. package/dist/contracts/account/config-arguments.d.mts +10 -0
  23. package/dist/contracts/account/config-arguments.d.mts.map +1 -0
  24. package/dist/contracts/account/deps/sui/bag.mjs +44 -0
  25. package/dist/contracts/account/deps/sui/bag.mjs.map +1 -0
  26. package/dist/contracts/deepbook/account.d.mts +18 -18
  27. package/dist/contracts/deepbook/balances.d.mts +4 -4
  28. package/dist/contracts/deepbook/deep_price.d.mts +3 -3
  29. package/dist/contracts/deepbook/deep_price.d.mts.map +1 -1
  30. package/dist/contracts/deepbook/order.d.mts +12 -12
  31. package/dist/contracts/deepbook_predict/builder_code_events.mjs +38 -0
  32. package/dist/contracts/deepbook_predict/builder_code_events.mjs.map +1 -0
  33. package/dist/contracts/deepbook_predict/config-arguments.d.mts +13 -0
  34. package/dist/contracts/deepbook_predict/config-arguments.d.mts.map +1 -0
  35. package/dist/contracts/deepbook_predict/deps/fixed_math/i64.mjs +25 -0
  36. package/dist/contracts/deepbook_predict/deps/fixed_math/i64.mjs.map +1 -0
  37. package/dist/contracts/deepbook_predict/deps/sui/balance.mjs +25 -0
  38. package/dist/contracts/deepbook_predict/deps/sui/balance.mjs.map +1 -0
  39. package/dist/contracts/deepbook_predict/deps/sui/coin.mjs +24 -0
  40. package/dist/contracts/deepbook_predict/deps/sui/coin.mjs.map +1 -0
  41. package/dist/contracts/deepbook_predict/deps/sui/table.mjs +39 -0
  42. package/dist/contracts/deepbook_predict/deps/sui/table.mjs.map +1 -0
  43. package/dist/contracts/deepbook_predict/deps/sui/vec_set.mjs +26 -0
  44. package/dist/contracts/deepbook_predict/deps/sui/vec_set.mjs.map +1 -0
  45. package/dist/contracts/deepbook_predict/ewma.mjs +29 -0
  46. package/dist/contracts/deepbook_predict/ewma.mjs.map +1 -0
  47. package/dist/contracts/deepbook_predict/expiry_cash.mjs +27 -0
  48. package/dist/contracts/deepbook_predict/expiry_cash.mjs.map +1 -0
  49. package/dist/contracts/deepbook_predict/expiry_market.mjs +367 -0
  50. package/dist/contracts/deepbook_predict/expiry_market.mjs.map +1 -0
  51. package/dist/contracts/deepbook_predict/lp_book.mjs +92 -0
  52. package/dist/contracts/deepbook_predict/lp_book.mjs.map +1 -0
  53. package/dist/contracts/deepbook_predict/market_manager.mjs +59 -0
  54. package/dist/contracts/deepbook_predict/market_manager.mjs.map +1 -0
  55. package/dist/contracts/deepbook_predict/order.mjs +26 -0
  56. package/dist/contracts/deepbook_predict/order.mjs.map +1 -0
  57. package/dist/contracts/deepbook_predict/order_events.mjs +84 -0
  58. package/dist/contracts/deepbook_predict/order_events.mjs.map +1 -0
  59. package/dist/contracts/deepbook_predict/plp.mjs +284 -0
  60. package/dist/contracts/deepbook_predict/plp.mjs.map +1 -0
  61. package/dist/contracts/deepbook_predict/pool_accounting.mjs +58 -0
  62. package/dist/contracts/deepbook_predict/pool_accounting.mjs.map +1 -0
  63. package/dist/contracts/deepbook_predict/predict_account.mjs +106 -0
  64. package/dist/contracts/deepbook_predict/predict_account.mjs.map +1 -0
  65. package/dist/contracts/deepbook_predict/pricing.mjs +80 -0
  66. package/dist/contracts/deepbook_predict/pricing.mjs.map +1 -0
  67. package/dist/contracts/deepbook_predict/range_codec.mjs +41 -0
  68. package/dist/contracts/deepbook_predict/range_codec.mjs.map +1 -0
  69. package/dist/contracts/deepbook_predict/registry.mjs +55 -0
  70. package/dist/contracts/deepbook_predict/registry.mjs.map +1 -0
  71. package/dist/contracts/deepbook_predict/strike_exposure.mjs +65 -0
  72. package/dist/contracts/deepbook_predict/strike_exposure.mjs.map +1 -0
  73. package/dist/contracts/deepbook_predict/strike_exposure_config.mjs +33 -0
  74. package/dist/contracts/deepbook_predict/strike_exposure_config.mjs.map +1 -0
  75. package/dist/contracts/deepbook_predict/strike_payout_tree.mjs +72 -0
  76. package/dist/contracts/deepbook_predict/strike_payout_tree.mjs.map +1 -0
  77. package/dist/contracts/deepbook_predict/vault_events.mjs +184 -0
  78. package/dist/contracts/deepbook_predict/vault_events.mjs.map +1 -0
  79. package/dist/contracts/deepbook_sessions/config-arguments.d.mts +10 -0
  80. package/dist/contracts/deepbook_sessions/config-arguments.d.mts.map +1 -0
  81. package/dist/contracts/deepbook_sessions/deps/sui/vec_map.mjs +37 -0
  82. package/dist/contracts/deepbook_sessions/deps/sui/vec_map.mjs.map +1 -0
  83. package/dist/contracts/deepbook_sessions/session_config.d.mts +63 -0
  84. package/dist/contracts/deepbook_sessions/session_config.d.mts.map +1 -0
  85. package/dist/contracts/deepbook_sessions/session_config.mjs +82 -0
  86. package/dist/contracts/deepbook_sessions/session_config.mjs.map +1 -0
  87. package/dist/contracts/deepbook_sessions/sessions.d.mts +275 -0
  88. package/dist/contracts/deepbook_sessions/sessions.d.mts.map +1 -0
  89. package/dist/contracts/deepbook_sessions/sessions.mjs +443 -0
  90. package/dist/contracts/deepbook_sessions/sessions.mjs.map +1 -0
  91. package/dist/contracts/utils/index.d.mts +18 -1
  92. package/dist/contracts/utils/index.d.mts.map +1 -1
  93. package/dist/deployments/index.d.mts +31 -0
  94. package/dist/deployments/index.d.mts.map +1 -0
  95. package/dist/deployments/index.mjs +30 -0
  96. package/dist/deployments/index.mjs.map +1 -0
  97. package/dist/deployments/testnet.d.mts +14 -0
  98. package/dist/deployments/testnet.d.mts.map +1 -0
  99. package/dist/deployments/testnet.mjs +73 -0
  100. package/dist/deployments/testnet.mjs.map +1 -0
  101. package/dist/deployments/types.d.mts +36 -0
  102. package/dist/deployments/types.d.mts.map +1 -0
  103. package/dist/index.mjs +0 -1
  104. package/dist/predict/client.d.mts +255 -0
  105. package/dist/predict/client.d.mts.map +1 -0
  106. package/dist/predict/client.mjs +436 -0
  107. package/dist/predict/client.mjs.map +1 -0
  108. package/dist/predict/config/generated.d.mts +29 -0
  109. package/dist/predict/config/generated.d.mts.map +1 -0
  110. package/dist/predict/config/generated.mjs +16 -0
  111. package/dist/predict/config/generated.mjs.map +1 -0
  112. package/dist/predict/config/index.d.mts +10 -0
  113. package/dist/predict/config/index.d.mts.map +1 -0
  114. package/dist/predict/config/index.mjs +13 -0
  115. package/dist/predict/config/index.mjs.map +1 -0
  116. package/dist/predict/config/testnet.d.mts +17 -0
  117. package/dist/predict/config/testnet.d.mts.map +1 -0
  118. package/dist/predict/config/testnet.mjs +26 -0
  119. package/dist/predict/config/testnet.mjs.map +1 -0
  120. package/dist/predict/config/types.d.mts +55 -0
  121. package/dist/predict/config/types.d.mts.map +1 -0
  122. package/dist/predict/decode.d.mts +162 -0
  123. package/dist/predict/decode.d.mts.map +1 -0
  124. package/dist/predict/decode.mjs +175 -0
  125. package/dist/predict/decode.mjs.map +1 -0
  126. package/dist/predict/errors.d.mts +42 -0
  127. package/dist/predict/errors.d.mts.map +1 -0
  128. package/dist/predict/errors.mjs +37 -0
  129. package/dist/predict/errors.mjs.map +1 -0
  130. package/dist/predict/index.d.mts +18 -0
  131. package/dist/predict/index.mjs +14 -0
  132. package/dist/predict/pricing.d.mts +73 -0
  133. package/dist/predict/pricing.d.mts.map +1 -0
  134. package/dist/predict/pricing.mjs +129 -0
  135. package/dist/predict/pricing.mjs.map +1 -0
  136. package/dist/predict/reads/balances.mjs +41 -0
  137. package/dist/predict/reads/balances.mjs.map +1 -0
  138. package/dist/predict/reads/inspect.d.mts +8 -0
  139. package/dist/predict/reads/inspect.d.mts.map +1 -0
  140. package/dist/predict/reads/inspect.mjs +37 -0
  141. package/dist/predict/reads/inspect.mjs.map +1 -0
  142. package/dist/predict/reads/markets.mjs +130 -0
  143. package/dist/predict/reads/markets.mjs.map +1 -0
  144. package/dist/predict/reads/parse.mjs +20 -0
  145. package/dist/predict/reads/parse.mjs.map +1 -0
  146. package/dist/predict/reads/pool.mjs +26 -0
  147. package/dist/predict/reads/pool.mjs.map +1 -0
  148. package/dist/predict/reads/positions.d.mts +12 -0
  149. package/dist/predict/reads/positions.d.mts.map +1 -0
  150. package/dist/predict/reads/positions.mjs +77 -0
  151. package/dist/predict/reads/positions.mjs.map +1 -0
  152. package/dist/predict/reads/pricing.d.mts +20 -0
  153. package/dist/predict/reads/pricing.d.mts.map +1 -0
  154. package/dist/predict/reads/pricing.mjs +43 -0
  155. package/dist/predict/reads/pricing.mjs.map +1 -0
  156. package/dist/predict/ticks.d.mts +11 -0
  157. package/dist/predict/ticks.d.mts.map +1 -0
  158. package/dist/predict/ticks.mjs +21 -0
  159. package/dist/predict/ticks.mjs.map +1 -0
  160. package/dist/predict/tx/authed.mjs +18 -0
  161. package/dist/predict/tx/authed.mjs.map +1 -0
  162. package/dist/predict/tx/common.d.mts +18 -0
  163. package/dist/predict/tx/common.d.mts.map +1 -0
  164. package/dist/predict/tx/common.mjs +52 -0
  165. package/dist/predict/tx/common.mjs.map +1 -0
  166. package/dist/predict/tx/trade.d.mts +15 -0
  167. package/dist/predict/tx/trade.d.mts.map +1 -0
  168. package/dist/predict/tx/trade.mjs +86 -0
  169. package/dist/predict/tx/trade.mjs.map +1 -0
  170. package/dist/predict/units.d.mts +11 -0
  171. package/dist/predict/units.d.mts.map +1 -0
  172. package/dist/predict/units.mjs +44 -0
  173. package/dist/predict/units.mjs.map +1 -0
  174. package/dist/queries/accountQueries.mjs +0 -1
  175. package/dist/queries/accountQueries.mjs.map +1 -1
  176. package/dist/queries/orderQueries.mjs +0 -1
  177. package/dist/queries/orderQueries.mjs.map +1 -1
  178. package/dist/queries/registryQueries.mjs +0 -1
  179. package/dist/queries/registryQueries.mjs.map +1 -1
  180. package/dist/sessions.d.mts +244 -0
  181. package/dist/sessions.d.mts.map +1 -0
  182. package/dist/sessions.mjs +291 -0
  183. package/dist/sessions.mjs.map +1 -0
  184. package/dist/transactions/balanceManager.d.mts +12 -12
  185. package/dist/transactions/balanceManager.d.mts.map +1 -1
  186. package/dist/transactions/deepbook.d.mts +20 -20
  187. package/dist/transactions/deepbook.d.mts.map +1 -1
  188. package/dist/transactions/deepbookAdmin.d.mts +4 -4
  189. package/dist/transactions/marginAdmin.d.mts +7 -7
  190. package/dist/transactions/marginLiquidations.d.mts +3 -3
  191. package/dist/transactions/marginMaintainer.d.mts +5 -5
  192. package/dist/transactions/marginManager.d.mts +32 -32
  193. package/dist/transactions/marginPool.d.mts +18 -18
  194. package/dist/transactions/marginRegistry.d.mts +16 -16
  195. package/dist/transactions/marginTPSL.d.mts +10 -10
  196. package/dist/transactions/poolProxy.d.mts +8 -8
  197. package/package.json +25 -4
  198. package/src/account.ts +239 -0
  199. package/src/bcs/integers.ts +35 -0
  200. package/src/contracts/account/account.ts +706 -0
  201. package/src/contracts/account/account_events.ts +64 -0
  202. package/src/contracts/account/account_registry.ts +468 -0
  203. package/src/contracts/account/config-arguments.ts +8 -0
  204. package/src/contracts/account/deps/sui/bag.ts +42 -0
  205. package/src/contracts/deepbook_predict/admin.ts +44 -0
  206. package/src/contracts/deepbook_predict/builder_code.ts +155 -0
  207. package/src/contracts/deepbook_predict/builder_code_events.ts +34 -0
  208. package/src/contracts/deepbook_predict/config-arguments.ts +11 -0
  209. package/src/contracts/deepbook_predict/config_events.ts +140 -0
  210. package/src/contracts/deepbook_predict/deps/fixed_math/i64.ts +21 -0
  211. package/src/contracts/deepbook_predict/deps/sui/balance.ts +25 -0
  212. package/src/contracts/deepbook_predict/deps/sui/coin.ts +20 -0
  213. package/src/contracts/deepbook_predict/deps/sui/table.ts +37 -0
  214. package/src/contracts/deepbook_predict/deps/sui/vec_set.ts +22 -0
  215. package/src/contracts/deepbook_predict/ewma.ts +26 -0
  216. package/src/contracts/deepbook_predict/ewma_config.ts +28 -0
  217. package/src/contracts/deepbook_predict/expiry_cash.ts +24 -0
  218. package/src/contracts/deepbook_predict/expiry_market.ts +1549 -0
  219. package/src/contracts/deepbook_predict/lp_book.ts +105 -0
  220. package/src/contracts/deepbook_predict/market_lifecycle_cap.ts +75 -0
  221. package/src/contracts/deepbook_predict/market_manager.ts +218 -0
  222. package/src/contracts/deepbook_predict/order.ts +24 -0
  223. package/src/contracts/deepbook_predict/order_events.ts +129 -0
  224. package/src/contracts/deepbook_predict/pause_cap.ts +68 -0
  225. package/src/contracts/deepbook_predict/plp.ts +987 -0
  226. package/src/contracts/deepbook_predict/pool_accounting.ts +79 -0
  227. package/src/contracts/deepbook_predict/predict_account.ts +180 -0
  228. package/src/contracts/deepbook_predict/pricing.ts +124 -0
  229. package/src/contracts/deepbook_predict/pricing_config.ts +41 -0
  230. package/src/contracts/deepbook_predict/protocol_config.ts +1066 -0
  231. package/src/contracts/deepbook_predict/range_codec.ts +53 -0
  232. package/src/contracts/deepbook_predict/registry.ts +694 -0
  233. package/src/contracts/deepbook_predict/strike_exposure.ts +77 -0
  234. package/src/contracts/deepbook_predict/strike_exposure_config.ts +46 -0
  235. package/src/contracts/deepbook_predict/strike_payout_tree.ts +89 -0
  236. package/src/contracts/deepbook_predict/vault_events.ts +222 -0
  237. package/src/contracts/deepbook_sessions/config-arguments.ts +8 -0
  238. package/src/contracts/deepbook_sessions/deps/sui/vec_map.ts +33 -0
  239. package/src/contracts/deepbook_sessions/session_config.ts +130 -0
  240. package/src/contracts/deepbook_sessions/sessions.ts +663 -0
  241. package/src/contracts/propbook/block_scholes_store.ts +842 -0
  242. package/src/contracts/propbook/deps/sui/table.ts +37 -0
  243. package/src/contracts/propbook/oracle_lane.ts +170 -0
  244. package/src/contracts/propbook/pyth_feed.ts +414 -0
  245. package/src/contracts/propbook/registry.ts +596 -0
  246. package/src/deployments/index.ts +73 -0
  247. package/src/deployments/testnet.ts +107 -0
  248. package/src/deployments/types.ts +81 -0
  249. package/src/index.ts +5 -0
  250. package/src/predict/client.ts +941 -0
  251. package/src/predict/config/generated.ts +39 -0
  252. package/src/predict/config/index.ts +25 -0
  253. package/src/predict/config/testnet.ts +27 -0
  254. package/src/predict/config/types.ts +52 -0
  255. package/src/predict/decode.ts +476 -0
  256. package/src/predict/errors.ts +83 -0
  257. package/src/predict/index.ts +94 -0
  258. package/src/predict/pricing.ts +199 -0
  259. package/src/predict/reads/balances.ts +55 -0
  260. package/src/predict/reads/inspect.ts +78 -0
  261. package/src/predict/reads/markets.ts +222 -0
  262. package/src/predict/reads/parse.ts +30 -0
  263. package/src/predict/reads/pool.ts +37 -0
  264. package/src/predict/reads/positions.ts +144 -0
  265. package/src/predict/reads/pricing.ts +79 -0
  266. package/src/predict/ticks.ts +42 -0
  267. package/src/predict/tx/authed.ts +20 -0
  268. package/src/predict/tx/common.ts +92 -0
  269. package/src/predict/tx/trade.ts +183 -0
  270. package/src/predict/units.ts +49 -0
  271. package/src/sessions.ts +471 -0
  272. package/dist/types/bcs.mjs +0 -7
@@ -0,0 +1,367 @@
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 { ExpiryCash } from "./expiry_cash.mjs";
5
+ import { StrikeExposure } from "./strike_exposure.mjs";
6
+ import { EwmaState } from "./ewma.mjs";
7
+ import { bcs } from "@mysten/sui/bcs";
8
+
9
+ //#region src/contracts/deepbook_predict/expiry_market.ts
10
+ /**************************************************************
11
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
12
+ **************************************************************/
13
+ /**
14
+ * Per-expiry Predict market.
15
+ *
16
+ * An ExpiryMarket is the hot shared object for one expiry. It owns trade
17
+ * execution, strike exposure state, and an embedded expiry-cash custody component,
18
+ * plus local sponsor-funded fee incentives. Live oracle validation is delegated to
19
+ * `pricing::load_live_pricer`; this module owns market flow policy and then passes
20
+ * loaded `Pricer` snapshots into exposure business logic. Pool-wide PLP accounting
21
+ * and profit accounting remain outside this module.
22
+ */
23
+ const $moduleName = "@local-pkg/deepbook_predict::expiry_market";
24
+ const ExpiryMarket = new MoveStruct({
25
+ name: `${$moduleName}::ExpiryMarket`,
26
+ fields: {
27
+ id: bcs.Address,
28
+ propbook_underlying_id: bcs.u32(),
29
+ expiry: U64,
30
+ cash: ExpiryCash,
31
+ fee_incentive_balance: Balance,
32
+ strike_exposure: StrikeExposure,
33
+ ewma: EwmaState,
34
+ mint_paused: bcs.bool()
35
+ }
36
+ });
37
+ const MintQuote = new MoveStruct({
38
+ name: `${$moduleName}::MintQuote`,
39
+ fields: {
40
+ quantity: U64,
41
+ entry_probability: U64,
42
+ premium: U64,
43
+ trading_fee: U64,
44
+ fee_incentive_subsidy: U64,
45
+ builder_fee: U64,
46
+ penalty_fee: U64,
47
+ inventory_impact_charge: U64,
48
+ all_in_cost: U64
49
+ }
50
+ });
51
+ /** Return the expiry timestamp for SDK and devInspect market reads. */
52
+ function expiry(options) {
53
+ const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
54
+ const argumentsTypes = [null];
55
+ const parameterNames = ["market"];
56
+ return (tx) => tx.moveCall({
57
+ package: packageAddress,
58
+ module: "expiry_market",
59
+ function: "expiry",
60
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
61
+ });
62
+ }
63
+ /**
64
+ * Return the strike tick size for SDK and devInspect range construction. Raw
65
+ * strikes are `tick * tick_size`.
66
+ */
67
+ function tickSize(options) {
68
+ const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
69
+ const argumentsTypes = [null];
70
+ const parameterNames = ["market"];
71
+ return (tx) => tx.moveCall({
72
+ package: packageAddress,
73
+ module: "expiry_market",
74
+ function: "tick_size",
75
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
76
+ });
77
+ }
78
+ /** Return the admission-grid step for SDK and devInspect range construction. */
79
+ function admissionTickSize(options) {
80
+ const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
81
+ const argumentsTypes = [null];
82
+ const parameterNames = ["market"];
83
+ return (tx) => tx.moveCall({
84
+ package: packageAddress,
85
+ module: "expiry_market",
86
+ function: "admission_tick_size",
87
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
88
+ });
89
+ }
90
+ /** Return the admitted reference tick for SDK and devInspect range construction. */
91
+ function referenceTick(options) {
92
+ const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
93
+ const argumentsTypes = [null];
94
+ const parameterNames = ["market"];
95
+ return (tx) => tx.moveCall({
96
+ package: packageAddress,
97
+ module: "expiry_market",
98
+ function: "reference_tick",
99
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
100
+ });
101
+ }
102
+ /**
103
+ * Load a PTB-local live pricing snapshot for this market.
104
+ *
105
+ * The returned `Pricer` is bound to `market.id()` and can be passed into live
106
+ * mint, redeem, and NAV functions in the same transaction.
107
+ *
108
+ * Aborts `pricing::EOracleWrittenInThisTransaction` when any observation that
109
+ * feeds the returned forward or SVI was written in this transaction (RP-24).
110
+ * Independently submitted refresh-then-trade PTBs are unaffected: the guard
111
+ * compares observation `writer_digest` to `tx_context::digest()`, not sender
112
+ * identity, and does not prohibit reads of older observations.
113
+ */
114
+ function loadLivePricer(options) {
115
+ const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
116
+ const argumentsTypes = [
117
+ null,
118
+ null,
119
+ null,
120
+ null,
121
+ null,
122
+ null,
123
+ "0x2::clock::Clock"
124
+ ];
125
+ const parameterNames = [
126
+ "market",
127
+ "config",
128
+ "propbookRegistry",
129
+ "pyth",
130
+ "bsValues",
131
+ "bsSvi"
132
+ ];
133
+ return (tx) => tx.moveCall({
134
+ package: packageAddress,
135
+ module: "expiry_market",
136
+ function: "load_live_pricer",
137
+ arguments: normalizeMoveArguments({
138
+ ...options.arguments,
139
+ config: options.arguments?.config ?? options.config?.protocolConfig,
140
+ propbookRegistry: options.arguments?.propbookRegistry ?? options.config?.oracleRegistry
141
+ }, argumentsTypes, parameterNames)
142
+ });
143
+ }
144
+ /**
145
+ * Return live marked NAV as free expiry cash minus the exposure book's marked
146
+ * liability, floored at zero. This read requires a market-bound pre-expiry
147
+ * `Pricer`; an expired but unsettled market cannot be valued through this path.
148
+ * Public for PTB composition and devInspect pool valuation.
149
+ */
150
+ function currentNav(options) {
151
+ const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
152
+ const argumentsTypes = [null, null];
153
+ const parameterNames = ["market", "pricer"];
154
+ return (tx) => tx.moveCall({
155
+ package: packageAddress,
156
+ module: "expiry_market",
157
+ function: "current_nav",
158
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
159
+ });
160
+ }
161
+ /** Return the market mint-pause state for SDK and devInspect reads. */
162
+ function mintPaused(options) {
163
+ const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
164
+ const argumentsTypes = [null];
165
+ const parameterNames = ["market"];
166
+ return (tx) => tx.moveCall({
167
+ package: packageAddress,
168
+ module: "expiry_market",
169
+ function: "mint_paused",
170
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames)
171
+ });
172
+ }
173
+ /**
174
+ * Mint an exact live position quantity against this expiry market.
175
+ *
176
+ * Requires the running package version to be at or above the protocol version
177
+ * watermark, per-market mint pause to be off, trading globally enabled, valid
178
+ * owner or authorized-app account auth, a market-bound live `Pricer`, and enough
179
+ * expiry cash to back the post-mint max payout. Mint fees are paid by routing a
180
+ * withdraw through the loaded account. The position's strike range is the tick
181
+ * pair `(lower_tick, higher_tick]` (`lower_tick = 0` is `-inf`,
182
+ * `higher_tick = pos_inf_tick` is `+inf`); the SDK converts raw strikes to ticks.
183
+ * `max_cost` caps the all-in DUSDC withdrawal, while `max_probability` caps the
184
+ * quoted per-contract probability before fees. Callers can pass
185
+ * `std::u64::max_value!()` for either uncapped guard. Returns the minted order ID
186
+ * for future order-scoped flows.
187
+ */
188
+ function mintExactQuantity(options) {
189
+ const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
190
+ const argumentsTypes = [
191
+ null,
192
+ null,
193
+ null,
194
+ null,
195
+ null,
196
+ "u64",
197
+ "u64",
198
+ "u64",
199
+ "u64",
200
+ "u64",
201
+ "0x2::accumulator::AccumulatorRoot",
202
+ "0x2::clock::Clock"
203
+ ];
204
+ const parameterNames = [
205
+ "market",
206
+ "wrapper",
207
+ "auth",
208
+ "config",
209
+ "pricer",
210
+ "lowerTick",
211
+ "higherTick",
212
+ "quantity",
213
+ "maxCost",
214
+ "maxProbability"
215
+ ];
216
+ return (tx) => tx.moveCall({
217
+ package: packageAddress,
218
+ module: "expiry_market",
219
+ function: "mint_exact_quantity",
220
+ arguments: normalizeMoveArguments({
221
+ ...options.arguments,
222
+ config: options.arguments?.config ?? options.config?.protocolConfig
223
+ }, argumentsTypes, parameterNames)
224
+ });
225
+ }
226
+ /**
227
+ * Mint a conservatively sized lot-rounded position whose premium does not exceed
228
+ * `max_premium`. The result may be one lot below the largest fitting quantity and
229
+ * must meet `min_quantity`.
230
+ *
231
+ * Fees, builder fees, and EWMA congestion penalties are charged on top of
232
+ * `max_premium`, so `max_cost` — not `max_premium` — bounds the all-in DUSDC
233
+ * withdrawal (`premium + trader-paid fee + builder_fee + EWMA penalty`).
234
+ * `max_cost` is required: unlike `mint_exact_quantity`'s guards there is no value
235
+ * that disables it, because the budget shape exists to bound spend. The sizing
236
+ * budget is first capped to the account's available DUSDC after settlement; fees
237
+ * still require additional available DUSDC at payment time. Any unspent premium
238
+ * dust remains in the account because order quantity must be an integer number of
239
+ * `position_lot_size` lots.
240
+ */
241
+ function mintExactAmount(options) {
242
+ const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
243
+ const argumentsTypes = [
244
+ null,
245
+ null,
246
+ null,
247
+ null,
248
+ null,
249
+ "u64",
250
+ "u64",
251
+ "u64",
252
+ "u64",
253
+ "u64",
254
+ "0x2::accumulator::AccumulatorRoot",
255
+ "0x2::clock::Clock"
256
+ ];
257
+ const parameterNames = [
258
+ "market",
259
+ "wrapper",
260
+ "auth",
261
+ "config",
262
+ "pricer",
263
+ "lowerTick",
264
+ "higherTick",
265
+ "maxPremium",
266
+ "minQuantity",
267
+ "maxCost"
268
+ ];
269
+ return (tx) => tx.moveCall({
270
+ package: packageAddress,
271
+ module: "expiry_market",
272
+ function: "mint_exact_amount",
273
+ arguments: normalizeMoveArguments({
274
+ ...options.arguments,
275
+ config: options.arguments?.config ?? options.config?.protocolConfig
276
+ }, argumentsTypes, parameterNames)
277
+ });
278
+ }
279
+ /**
280
+ * Redeem a live order you hold account authority over.
281
+ *
282
+ * A live order is priced and closed (partial or full). Settled orders must use
283
+ * `redeem_settled`. Returns a replacement order ID only when a partial close
284
+ * leaves quantity open.
285
+ *
286
+ * Two close-side slippage floors, the mirror of mint's `max_probability` /
287
+ * `max_cost` pair; pass `0` to disable either. `min_probability` floors the quoted
288
+ * per-contract range probability (same units as mint's `max_probability`).
289
+ * `min_proceeds` floors the all-in net DUSDC credited to the account
290
+ * (`redeem_amount` minus trading fee, builder fee, and EWMA penalty), the mirror
291
+ * of mint's all-in `max_cost`.
292
+ */
293
+ function redeemLive(options) {
294
+ const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
295
+ const argumentsTypes = [
296
+ null,
297
+ null,
298
+ null,
299
+ null,
300
+ null,
301
+ "u256",
302
+ "u64",
303
+ "u64",
304
+ "u64",
305
+ "0x2::accumulator::AccumulatorRoot",
306
+ "0x2::clock::Clock"
307
+ ];
308
+ const parameterNames = [
309
+ "market",
310
+ "wrapper",
311
+ "auth",
312
+ "config",
313
+ "pricer",
314
+ "orderId",
315
+ "closeQuantity",
316
+ "minProbability",
317
+ "minProceeds"
318
+ ];
319
+ return (tx) => tx.moveCall({
320
+ package: packageAddress,
321
+ module: "expiry_market",
322
+ function: "redeem_live",
323
+ arguments: normalizeMoveArguments({
324
+ ...options.arguments,
325
+ config: options.arguments?.config ?? options.config?.protocolConfig
326
+ }, argumentsTypes, parameterNames)
327
+ });
328
+ }
329
+ /**
330
+ * Redeem a settled order you hold account authority over.
331
+ *
332
+ * The market must be settled already; this flow does not run live pricing.
333
+ * Explicit owner auth remains available when Predict app automation is
334
+ * deauthorized; another authorized app may also supply valid account auth.
335
+ */
336
+ function redeemSettled(options) {
337
+ const packageAddress = options.package ?? options.config?.predictPackageId ?? "@local-pkg/deepbook_predict";
338
+ const argumentsTypes = [
339
+ null,
340
+ null,
341
+ null,
342
+ null,
343
+ "u256",
344
+ "0x2::accumulator::AccumulatorRoot",
345
+ "0x2::clock::Clock"
346
+ ];
347
+ const parameterNames = [
348
+ "market",
349
+ "wrapper",
350
+ "auth",
351
+ "config",
352
+ "orderId"
353
+ ];
354
+ return (tx) => tx.moveCall({
355
+ package: packageAddress,
356
+ module: "expiry_market",
357
+ function: "redeem_settled",
358
+ arguments: normalizeMoveArguments({
359
+ ...options.arguments,
360
+ config: options.arguments?.config ?? options.config?.protocolConfig
361
+ }, argumentsTypes, parameterNames)
362
+ });
363
+ }
364
+
365
+ //#endregion
366
+ export { admissionTickSize, currentNav, expiry, loadLivePricer, mintExactAmount, mintExactQuantity, mintPaused, redeemLive, redeemSettled, referenceTick, tickSize };
367
+ //# sourceMappingURL=expiry_market.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expiry_market.mjs","names":["expiry_cash.ExpiryCash","balance.Balance","strike_exposure.StrikeExposure","ewma.EwmaState"],"sources":["../../../src/contracts/deepbook_predict/expiry_market.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * Per-expiry Predict market.\n *\n * An ExpiryMarket is the hot shared object for one expiry. It owns trade\n * execution, strike exposure state, and an embedded expiry-cash custody component,\n * plus local sponsor-funded fee incentives. Live oracle validation is delegated to\n * `pricing::load_live_pricer`; this module owns market flow policy and then passes\n * loaded `Pricer` snapshots into exposure business logic. Pool-wide PLP accounting\n * and profit accounting remain outside this module.\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 expiry_cash from './expiry_cash.js';\nimport * as balance from './deps/sui/balance.js';\nimport * as strike_exposure from './strike_exposure.js';\nimport * as ewma from './ewma.js';\nconst $moduleName = '@local-pkg/deepbook_predict::expiry_market';\nexport const ExpiryMarket = new MoveStruct({\n\tname: `${$moduleName}::ExpiryMarket`,\n\tfields: {\n\t\tid: bcs.Address,\n\t\t/** Propbook underlying this market was created for. */\n\t\tpropbook_underlying_id: bcs.u32(),\n\t\texpiry: U64,\n\t\t/** DUSDC custody and payout backing. */\n\t\tcash: expiry_cash.ExpiryCash,\n\t\t/** Sponsor-funded DUSDC available to subsidize this market's taker fees. */\n\t\tfee_incentive_balance: balance.Balance,\n\t\t/** Exposure lifecycle state for this expiry's strike ticks. */\n\t\tstrike_exposure: strike_exposure.StrikeExposure,\n\t\t/** Smoothed gas-price stats backing the congestion trade penalty. */\n\t\tewma: ewma.EwmaState,\n\t\t/**\n\t\t * When true, new mints on this expiry abort. Other flows stay available. Admin\n\t\t * sets/unsets it (version-gated); a `PauseCap` holder can force it true one-way\n\t\t * through the registry (ungated kill switch).\n\t\t */\n\t\tmint_paused: bcs.bool(),\n\t},\n});\nexport const MintQuote = new MoveStruct({\n\tname: `${$moduleName}::MintQuote`,\n\tfields: {\n\t\tquantity: U64,\n\t\tentry_probability: U64,\n\t\tpremium: U64,\n\t\ttrading_fee: U64,\n\t\tfee_incentive_subsidy: U64,\n\t\tbuilder_fee: U64,\n\t\tpenalty_fee: U64,\n\t\tinventory_impact_charge: U64,\n\t\tall_in_cost: U64,\n\t},\n});\nexport interface IdArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface IdOptions {\n\tpackage?: string;\n\targuments: IdArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the market 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 = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'id',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface PropbookUnderlyingIdArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface PropbookUnderlyingIdOptions {\n\tpackage?: string;\n\targuments: PropbookUnderlyingIdArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the Propbook underlying for SDK and devInspect market reads. */\nexport function propbookUnderlyingId(options: PropbookUnderlyingIdOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'propbook_underlying_id',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ExpiryArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface ExpiryOptions {\n\tpackage?: string;\n\targuments: ExpiryArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the expiry timestamp for SDK and devInspect market reads. */\nexport function expiry(options: ExpiryOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'expiry',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SettlementPriceArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface SettlementPriceOptions {\n\tpackage?: string;\n\targuments: SettlementPriceArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the recorded settlement price. Aborts if the market is not settled. */\nexport function settlementPrice(options: SettlementPriceOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'settlement_price',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface IsSettledArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface IsSettledOptions {\n\tpackage?: string;\n\targuments: IsSettledArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return whether terminal settlement has been recorded for this market. Public\n * read for SDK/devInspect settlement-state checks.\n */\nexport function isSettled(options: IsSettledOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'is_settled',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface TrySettlementPriceArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface TrySettlementPriceOptions {\n\tpackage?: string;\n\targuments: TrySettlementPriceArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return the recorded settlement price, or `none` while the market is live.\n * Non-aborting companion to `settlement_price` for SDK/devInspect reads.\n */\nexport function trySettlementPrice(options: TrySettlementPriceOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'try_settlement_price',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface CashBalanceArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface CashBalanceOptions {\n\tpackage?: string;\n\targuments: CashBalanceArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return expiry DUSDC custody for SDK and devInspect state reads. */\nexport function cashBalance(options: CashBalanceOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'cash_balance',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface InventoryImpactReserveArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface InventoryImpactReserveOptions {\n\tpackage?: string;\n\targuments: InventoryImpactReserveArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the isolated inventory-impact escrow for SDK and devInspect state reads. */\nexport function inventoryImpactReserve(options: InventoryImpactReserveOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'inventory_impact_reserve',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface FeeIncentiveBalanceArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface FeeIncentiveBalanceOptions {\n\tpackage?: string;\n\targuments: FeeIncentiveBalanceArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return local fee incentives for SDK and devInspect state reads. */\nexport function feeIncentiveBalance(options: FeeIncentiveBalanceOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'fee_incentive_balance',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface BackingBufferLambdaArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface BackingBufferLambdaOptions {\n\tpackage?: string;\n\targuments: BackingBufferLambdaArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the snapshotted backing-buffer lambda for SDK and devInspect reads. */\nexport function backingBufferLambda(options: BackingBufferLambdaOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'backing_buffer_lambda',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ExpiryFeeWindowMsArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface ExpiryFeeWindowMsOptions {\n\tpackage?: string;\n\targuments: ExpiryFeeWindowMsArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the snapshotted fee-ramp window for SDK and devInspect reads. */\nexport function expiryFeeWindowMs(options: ExpiryFeeWindowMsOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'expiry_fee_window_ms',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ExpiryFeeMaxMultiplierArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface ExpiryFeeMaxMultiplierOptions {\n\tpackage?: string;\n\targuments: ExpiryFeeMaxMultiplierArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the snapshotted fee-ramp multiplier for SDK and devInspect reads. */\nexport function expiryFeeMaxMultiplier(options: ExpiryFeeMaxMultiplierOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'expiry_fee_max_multiplier',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface InventoryImpactMaxRateArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface InventoryImpactMaxRateOptions {\n\tpackage?: string;\n\targuments: InventoryImpactMaxRateArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return this market's immutable maximum marginal inventory-impact rate for SDK\n * and devInspect state reads.\n */\nexport function inventoryImpactMaxRate(options: InventoryImpactMaxRateOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'inventory_impact_max_rate',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface InventoryImpactScaleArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface InventoryImpactScaleOptions {\n\tpackage?: string;\n\targuments: InventoryImpactScaleArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return the immutable DUSDC scale of this market's inventory-impact curve for SDK\n * and devInspect state reads.\n */\nexport function inventoryImpactScale(options: InventoryImpactScaleOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'inventory_impact_scale',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface TickSizeArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface TickSizeOptions {\n\tpackage?: string;\n\targuments: TickSizeArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return the strike tick size for SDK and devInspect range construction. Raw\n * strikes are `tick * tick_size`.\n */\nexport function tickSize(options: TickSizeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'tick_size',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AdmissionTickSizeArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface AdmissionTickSizeOptions {\n\tpackage?: string;\n\targuments: AdmissionTickSizeArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the admission-grid step for SDK and devInspect range construction. */\nexport function admissionTickSize(options: AdmissionTickSizeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'admission_tick_size',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ReferenceTickArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface ReferenceTickOptions {\n\tpackage?: string;\n\targuments: ReferenceTickArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the admitted reference tick for SDK and devInspect range construction. */\nexport function referenceTick(options: ReferenceTickOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'reference_tick',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface ReferenceTickSourceTimestampMsArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface ReferenceTickSourceTimestampMsOptions {\n\tpackage?: string;\n\targuments: ReferenceTickSourceTimestampMsArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the reference observation timestamp for SDK and devInspect reads. */\nexport function referenceTickSourceTimestampMs(options: ReferenceTickSourceTimestampMsOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'reference_tick_source_timestamp_ms',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface PayoutLiabilityArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface PayoutLiabilityOptions {\n\tpackage?: string;\n\targuments: PayoutLiabilityArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return payout reserve or settled liability for external accounting\n * observability.\n */\nexport function payoutLiability(options: PayoutLiabilityOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'payout_liability',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface RequiredCashArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface RequiredCashOptions {\n\tpackage?: string;\n\targuments: RequiredCashArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return required expiry cash for external accounting observability. */\nexport function requiredCash(options: RequiredCashOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'required_cash',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface LoadLivePricerArguments {\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 LoadLivePricerOptions {\n\tpackage?: string;\n\targuments: LoadLivePricerArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\toracleRegistry: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Load a PTB-local live pricing snapshot for this market.\n *\n * The returned `Pricer` is bound to `market.id()` and can be passed into live\n * mint, redeem, and NAV functions in the same transaction.\n *\n * Aborts `pricing::EOracleWrittenInThisTransaction` when any observation that\n * feeds the returned forward or SVI was written in this transaction (RP-24).\n * Independently submitted refresh-then-trade PTBs are unaffected: the guard\n * compares observation `writer_digest` to `tx_context::digest()`, not sender\n * identity, and does not prohibit reads of older observations.\n */\nexport function loadLivePricer(options: LoadLivePricerOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, null, null, null, null, '0x2::clock::Clock'] satisfies (\n\t\tstring | null\n\t)[];\n\tconst parameterNames = ['market', 'config', 'propbookRegistry', 'pyth', 'bsValues', 'bsSvi'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'load_live_pricer',\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\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 CurrentNavArguments {\n\tmarket: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n}\nexport interface CurrentNavOptions {\n\tpackage?: string;\n\targuments:\n\t\tCurrentNavArguments | [market: RawTransactionArgument<string>, pricer: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return live marked NAV as free expiry cash minus the exposure book's marked\n * liability, floored at zero. This read requires a market-bound pre-expiry\n * `Pricer`; an expired but unsettled market cannot be valued through this path.\n * Public for PTB composition and devInspect pool valuation.\n */\nexport function currentNav(options: CurrentNavOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'pricer'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'current_nav',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface LiveOrderValueArguments {\n\tmarket: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\torderId: RawTransactionArgument<number | bigint>;\n}\nexport interface LiveOrderValueOptions {\n\tpackage?: string;\n\targuments:\n\t\t| LiveOrderValueArguments\n\t\t| [\n\t\t\t\tmarket: RawTransactionArgument<string>,\n\t\t\t\tpricer: TransactionArgument,\n\t\t\t\torderId: RawTransactionArgument<number | bigint>,\n\t\t ];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return one live order's full-close range value before fees. Requires a\n * market-bound `Pricer` and does not prove account ownership of `order_id`. Public\n * for SDK, PTB, and devInspect position valuation.\n */\nexport function liveOrderValue(options: LiveOrderValueOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, 'u256'] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'pricer', 'orderId'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'live_order_value',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface SettledOrderPayoutArguments {\n\tmarket: RawTransactionArgument<string>;\n\torderId: RawTransactionArgument<number | bigint>;\n}\nexport interface SettledOrderPayoutOptions {\n\tpackage?: string;\n\targuments:\n\t\t| SettledOrderPayoutArguments\n\t\t| [market: RawTransactionArgument<string>, orderId: RawTransactionArgument<number | bigint>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return one settled order's terminal payout. This function does not prove account\n * ownership of `order_id`. Public for SDK, PTB, and devInspect position valuation.\n */\nexport function settledOrderPayout(options: SettledOrderPayoutOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, 'u256'] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'orderId'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'settled_order_payout',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface MintPausedArguments {\n\tmarket: RawTransactionArgument<string>;\n}\nexport interface MintPausedOptions {\n\tpackage?: string;\n\targuments: MintPausedArguments | [market: RawTransactionArgument<string>];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the market mint-pause state for SDK and devInspect reads. */\nexport function mintPaused(options: MintPausedOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['market'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'mint_paused',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface QuoteMintArguments {\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\tlowerTick: RawTransactionArgument<number | bigint>;\n\thigherTick: RawTransactionArgument<number | bigint>;\n\tmaxPremium: RawTransactionArgument<number | bigint>;\n\tminQuantity: RawTransactionArgument<number | bigint>;\n\texactQuantity: RawTransactionArgument<boolean>;\n}\nexport interface QuoteMintOptions {\n\tpackage?: string;\n\targuments: QuoteMintArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Quote the all-in cost of a mint request for an anonymous taker (no builder code)\n * without mutating any market state. Exact-quantity mode uses `min_quantity`;\n * budget mode conservatively sizes a lot-rounded fill under `max_premium`. The\n * quote applies live-mint and admission gates but does not preflight account\n * balance, slippage caps, or exposure-index capacity. Its penalty uses the current\n * pre-update EWMA state. Public for SDK and devInspect pre-trade pricing.\n */\nexport function quoteMint(options: QuoteMintOptions) {\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'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'u64',\n\t\t'bool',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'market',\n\t\t'config',\n\t\t'pricer',\n\t\t'lowerTick',\n\t\t'higherTick',\n\t\t'maxPremium',\n\t\t'minQuantity',\n\t\t'exactQuantity',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'quote_mint',\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},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface QuoteMintForAccountArguments {\n\tmarket: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\tlowerTick: RawTransactionArgument<number | bigint>;\n\thigherTick: RawTransactionArgument<number | bigint>;\n\tmaxPremium: RawTransactionArgument<number | bigint>;\n\tminQuantity: RawTransactionArgument<number | bigint>;\n\texactQuantity: RawTransactionArgument<boolean>;\n}\nexport interface QuoteMintForAccountOptions {\n\tpackage?: string;\n\targuments: QuoteMintForAccountArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Quote the all-in cost of a mint request for one account, reading its builder\n * code. Budget mode caps premium by total account balance, including unsettled\n * accumulator funds. Public for SDK and devInspect pre-trade pricing.\n */\nexport function quoteMintForAccount(options: QuoteMintForAccountOptions) {\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'u64',\n\t\t'u64',\n\t\t'bool',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = [\n\t\t'market',\n\t\t'wrapper',\n\t\t'config',\n\t\t'pricer',\n\t\t'lowerTick',\n\t\t'higherTick',\n\t\t'maxPremium',\n\t\t'minQuantity',\n\t\t'exactQuantity',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'quote_mint_for_account',\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},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface QuantityArguments {\n\tquote: TransactionArgument;\n}\nexport interface QuantityOptions {\n\tpackage?: string;\n\targuments: QuantityArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the sized quantity for SDK and devInspect quote consumers. */\nexport function quantity(options: QuantityOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'quantity',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface EntryProbabilityArguments {\n\tquote: TransactionArgument;\n}\nexport interface EntryProbabilityOptions {\n\tpackage?: string;\n\targuments: EntryProbabilityArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the quoted range probability for SDK and devInspect consumers. */\nexport function entryProbability(options: EntryProbabilityOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'entry_probability',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface PremiumArguments {\n\tquote: TransactionArgument;\n}\nexport interface PremiumOptions {\n\tpackage?: string;\n\targuments: PremiumArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the quoted premium for SDK and devInspect consumers. */\nexport function premium(options: PremiumOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'premium',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface TradingFeeArguments {\n\tquote: TransactionArgument;\n}\nexport interface TradingFeeOptions {\n\tpackage?: string;\n\targuments: TradingFeeArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the quoted trading fee before subsidy for SDK and devInspect consumers. */\nexport function tradingFee(options: TradingFeeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'trading_fee',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface FeeIncentiveSubsidyArguments {\n\tquote: TransactionArgument;\n}\nexport interface FeeIncentiveSubsidyOptions {\n\tpackage?: string;\n\targuments: FeeIncentiveSubsidyArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return the sponsor-funded portion of the quoted fee for SDK and devInspect\n * consumers.\n */\nexport function feeIncentiveSubsidy(options: FeeIncentiveSubsidyOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'fee_incentive_subsidy',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface BuilderFeeArguments {\n\tquote: TransactionArgument;\n}\nexport interface BuilderFeeOptions {\n\tpackage?: string;\n\targuments: BuilderFeeArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the quoted builder fee for SDK and devInspect consumers. */\nexport function builderFee(options: BuilderFeeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'builder_fee',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface PenaltyFeeArguments {\n\tquote: TransactionArgument;\n}\nexport interface PenaltyFeeOptions {\n\tpackage?: string;\n\targuments: PenaltyFeeArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the quoted EWMA congestion surcharge for SDK and devInspect consumers. */\nexport function penaltyFee(options: PenaltyFeeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'penalty_fee',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface InventoryImpactChargeArguments {\n\tquote: TransactionArgument;\n}\nexport interface InventoryImpactChargeOptions {\n\tpackage?: string;\n\targuments: InventoryImpactChargeArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Return the separate inventory-impact charge for SDK and devInspect quote\n * consumers.\n */\nexport function inventoryImpactCharge(options: InventoryImpactChargeOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'inventory_impact_charge',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface AllInCostArguments {\n\tquote: TransactionArgument;\n}\nexport interface AllInCostOptions {\n\tpackage?: string;\n\targuments: AllInCostArguments | [quote: TransactionArgument];\n\tconfig?: {\n\t\tpredictPackageId?: string;\n\t};\n}\n/** Return the total quoted account withdrawal for SDK and devInspect consumers. */\nexport function allInCost(options: AllInCostOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null] satisfies (string | null)[];\n\tconst parameterNames = ['quote'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'all_in_cost',\n\t\t\targuments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),\n\t\t});\n}\nexport interface MintExactQuantityArguments {\n\tmarket: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tauth: TransactionArgument;\n\tconfig?: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\tlowerTick: RawTransactionArgument<number | bigint>;\n\thigherTick: RawTransactionArgument<number | bigint>;\n\tquantity: RawTransactionArgument<number | bigint>;\n\tmaxCost: RawTransactionArgument<number | bigint>;\n\tmaxProbability: RawTransactionArgument<number | bigint>;\n}\nexport interface MintExactQuantityOptions {\n\tpackage?: string;\n\targuments: MintExactQuantityArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Mint an exact live position quantity against this expiry market.\n *\n * Requires the running package version to be at or above the protocol version\n * watermark, per-market mint pause to be off, trading globally enabled, valid\n * owner or authorized-app account auth, a market-bound live `Pricer`, and enough\n * expiry cash to back the post-mint max payout. Mint fees are paid by routing a\n * withdraw through the loaded account. The position's strike range is the tick\n * pair `(lower_tick, higher_tick]` (`lower_tick = 0` is `-inf`,\n * `higher_tick = pos_inf_tick` is `+inf`); the SDK converts raw strikes to ticks.\n * `max_cost` caps the all-in DUSDC withdrawal, while `max_probability` caps the\n * quoted per-contract probability before fees. Callers can pass\n * `std::u64::max_value!()` for either uncapped guard. Returns the minted order ID\n * for future order-scoped flows.\n */\nexport function mintExactQuantity(options: MintExactQuantityOptions) {\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\t'u64',\n\t\t'u64',\n\t\t'u64',\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 = [\n\t\t'market',\n\t\t'wrapper',\n\t\t'auth',\n\t\t'config',\n\t\t'pricer',\n\t\t'lowerTick',\n\t\t'higherTick',\n\t\t'quantity',\n\t\t'maxCost',\n\t\t'maxProbability',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'mint_exact_quantity',\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},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface MintExactAmountArguments {\n\tmarket: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tauth: TransactionArgument;\n\tconfig?: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\tlowerTick: RawTransactionArgument<number | bigint>;\n\thigherTick: RawTransactionArgument<number | bigint>;\n\tmaxPremium: RawTransactionArgument<number | bigint>;\n\tminQuantity: RawTransactionArgument<number | bigint>;\n\tmaxCost: RawTransactionArgument<number | bigint>;\n}\nexport interface MintExactAmountOptions {\n\tpackage?: string;\n\targuments: MintExactAmountArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Mint a conservatively sized lot-rounded position whose premium does not exceed\n * `max_premium`. The result may be one lot below the largest fitting quantity and\n * must meet `min_quantity`.\n *\n * Fees, builder fees, and EWMA congestion penalties are charged on top of\n * `max_premium`, so `max_cost` — not `max_premium` — bounds the all-in DUSDC\n * withdrawal (`premium + trader-paid fee + builder_fee + EWMA penalty`).\n * `max_cost` is required: unlike `mint_exact_quantity`'s guards there is no value\n * that disables it, because the budget shape exists to bound spend. The sizing\n * budget is first capped to the account's available DUSDC after settlement; fees\n * still require additional available DUSDC at payment time. Any unspent premium\n * dust remains in the account because order quantity must be an integer number of\n * `position_lot_size` lots.\n */\nexport function mintExactAmount(options: MintExactAmountOptions) {\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\t'u64',\n\t\t'u64',\n\t\t'u64',\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 = [\n\t\t'market',\n\t\t'wrapper',\n\t\t'auth',\n\t\t'config',\n\t\t'pricer',\n\t\t'lowerTick',\n\t\t'higherTick',\n\t\t'maxPremium',\n\t\t'minQuantity',\n\t\t'maxCost',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'mint_exact_amount',\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},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface RedeemLiveArguments {\n\tmarket: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tauth: TransactionArgument;\n\tconfig?: RawTransactionArgument<string>;\n\tpricer: TransactionArgument;\n\torderId: RawTransactionArgument<number | bigint>;\n\tcloseQuantity: RawTransactionArgument<number | bigint>;\n\tminProbability: RawTransactionArgument<number | bigint>;\n\tminProceeds: RawTransactionArgument<number | bigint>;\n}\nexport interface RedeemLiveOptions {\n\tpackage?: string;\n\targuments: RedeemLiveArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Redeem a live order you hold account authority over.\n *\n * A live order is priced and closed (partial or full). Settled orders must use\n * `redeem_settled`. Returns a replacement order ID only when a partial close\n * leaves quantity open.\n *\n * Two close-side slippage floors, the mirror of mint's `max_probability` /\n * `max_cost` pair; pass `0` to disable either. `min_probability` floors the quoted\n * per-contract range probability (same units as mint's `max_probability`).\n * `min_proceeds` floors the all-in net DUSDC credited to the account\n * (`redeem_amount` minus trading fee, builder fee, and EWMA penalty), the mirror\n * of mint's all-in `max_cost`.\n */\nexport function redeemLive(options: RedeemLiveOptions) {\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\t'u256',\n\t\t'u64',\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 = [\n\t\t'market',\n\t\t'wrapper',\n\t\t'auth',\n\t\t'config',\n\t\t'pricer',\n\t\t'orderId',\n\t\t'closeQuantity',\n\t\t'minProbability',\n\t\t'minProceeds',\n\t];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'redeem_live',\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},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface RedeemSettledArguments {\n\tmarket: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tauth: TransactionArgument;\n\tconfig?: RawTransactionArgument<string>;\n\torderId: RawTransactionArgument<number | bigint>;\n}\nexport interface RedeemSettledOptions {\n\tpackage?: string;\n\targuments: RedeemSettledArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Redeem a settled order you hold account authority over.\n *\n * The market must be settled already; this flow does not run live pricing.\n * Explicit owner auth remains available when Predict app automation is\n * deauthorized; another authorized app may also supply valid account auth.\n */\nexport function redeemSettled(options: RedeemSettledOptions) {\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'u256',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'wrapper', 'auth', 'config', 'orderId'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'redeem_settled',\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},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface RedeemSettledPermissionlessArguments {\n\tmarket: RawTransactionArgument<string>;\n\taccountRegistry: RawTransactionArgument<string>;\n\twrapper: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\torderId: RawTransactionArgument<number | bigint>;\n}\nexport interface RedeemSettledPermissionlessOptions {\n\tpackage?: string;\n\targuments: RedeemSettledPermissionlessArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Permissionlessly redeem a settled order without account-owner authority.\n *\n * This keeper path uses Predict app-auth from the account registry, so\n * `deauthorize_app<PredictApp>` disables this automation. Owners can still use\n * `redeem_settled` with owner auth to redeem their own settled positions.\n */\nexport function redeemSettledPermissionless(options: RedeemSettledPermissionlessOptions) {\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'u256',\n\t\t'0x2::accumulator::AccumulatorRoot',\n\t\t'0x2::clock::Clock',\n\t] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'accountRegistry', 'wrapper', 'config', 'orderId'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'redeem_settled_permissionless',\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},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface SetReferenceTickArguments {\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tpropbookRegistry?: RawTransactionArgument<string>;\n\tpyth: RawTransactionArgument<string>;\n}\nexport interface SetReferenceTickOptions {\n\tpackage?: string;\n\targuments: SetReferenceTickArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\toracleRegistry: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Set this expiry's reference fine-grid tick from the exact previous-window\n * Propbook Pyth observation. The source observation must be inserted into the feed\n * at `reference_tick_source_timestamp_ms` before this call, and the normalized\n * spot is floored to the market's `tick_size`.\n */\nexport function setReferenceTick(options: SetReferenceTickOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, null, null, '0x2::clock::Clock'] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'config', 'propbookRegistry', 'pyth'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'set_reference_tick',\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\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 SetMintPausedArguments {\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tAdminCap: RawTransactionArgument<string>;\n\tpaused: RawTransactionArgument<boolean>;\n}\nexport interface SetMintPausedOptions {\n\tpackage?: string;\n\targuments: SetMintPausedArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Set whether new mints are paused on this expiry market. Admin-only and\n * version-gated. A `PauseCap` holder can force-engage the pause one-way under a\n * version freeze via `registry::pause_expiry_market_mint_pause_cap`.\n */\nexport function setMintPaused(options: SetMintPausedOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, null, 'bool'] satisfies (string | null)[];\n\tconst parameterNames = ['market', 'config', 'AdminCap', 'paused'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'set_mint_paused',\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},\n\t\t\t\targumentsTypes,\n\t\t\t\tparameterNames,\n\t\t\t),\n\t\t});\n}\nexport interface TrySettleArguments {\n\tmarket: RawTransactionArgument<string>;\n\tconfig?: RawTransactionArgument<string>;\n\tpropbookRegistry?: RawTransactionArgument<string>;\n\tpyth: RawTransactionArgument<string>;\n\tbsValues: RawTransactionArgument<string>;\n}\nexport interface TrySettleOptions {\n\tpackage?: string;\n\targuments: TrySettleArguments;\n\tconfig?: {\n\t\tprotocolConfig: ConfigValue;\n\t\toracleRegistry: ConfigValue;\n\t\tpredictPackageId?: string;\n\t};\n}\n/**\n * Settle from Propbook's exact positive Pyth spot at expiry, or from the exact\n * Block Scholes minute-boundary spot when Pyth remains unavailable after the\n * compiled grace period. Permissionless and idempotent; missing or unusable\n * observations leave the market unsettled.\n */\nexport function trySettle(options: TrySettleOptions) {\n\tconst packageAddress =\n\t\toptions.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';\n\tconst argumentsTypes = [null, null, null, null, null, '0x2::clock::Clock'] satisfies (\n\t\tstring | null\n\t)[];\n\tconst parameterNames = ['market', 'config', 'propbookRegistry', 'pyth', 'bsValues'];\n\treturn (tx: Transaction) =>\n\t\ttx.moveCall({\n\t\t\tpackage: packageAddress,\n\t\t\tmodule: 'expiry_market',\n\t\t\tfunction: 'try_settle',\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\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}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA4BA,MAAM,cAAc;AACpB,MAAa,eAAe,IAAI,WAAW;CAC1C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,IAAI,IAAI;EAER,wBAAwB,IAAI,KAAK;EACjC,QAAQ;EAER,MAAMA;EAEN,uBAAuBC;EAEvB,iBAAiBC;EAEjB,MAAMC;EAMN,aAAa,IAAI,MAAM;EACvB;CACD,CAAC;AACF,MAAa,YAAY,IAAI,WAAW;CACvC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,UAAU;EACV,mBAAmB;EACnB,SAAS;EACT,aAAa;EACb,uBAAuB;EACvB,aAAa;EACb,aAAa;EACb,yBAAyB;EACzB,aAAa;EACb;CACD,CAAC;;AA4DF,SAAgB,OAAO,SAAwB;CAC9C,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB,CAAC,KAAK;CAC7B,MAAM,iBAAiB,CAAC,SAAS;AACjC,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC;;;;;;AAoSJ,SAAgB,SAAS,SAA0B;CAClD,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB,CAAC,KAAK;CAC7B,MAAM,iBAAiB,CAAC,SAAS;AACjC,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC;;;AAaJ,SAAgB,kBAAkB,SAAmC;CACpE,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB,CAAC,KAAK;CAC7B,MAAM,iBAAiB,CAAC,SAAS;AACjC,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC;;;AAaJ,SAAgB,cAAc,SAA+B;CAC5D,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB,CAAC,KAAK;CAC7B,MAAM,iBAAiB,CAAC,SAAS;AACjC,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC;;;;;;;;;;;;;;AA0GJ,SAAgB,eAAe,SAAgC;CAC9D,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB;EAAC;EAAM;EAAM;EAAM;EAAM;EAAM;EAAM;EAAoB;CAGhF,MAAM,iBAAiB;EAAC;EAAU;EAAU;EAAoB;EAAQ;EAAY;EAAQ;AAC5F,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBACV;GACC,GAAG,QAAQ;GACX,QAAQ,QAAQ,WAAW,UAAU,QAAQ,QAAQ;GACrD,kBAAkB,QAAQ,WAAW,oBAAoB,QAAQ,QAAQ;GACzE,EACD,gBACA,eACA;EACD,CAAC;;;;;;;;AAoBJ,SAAgB,WAAW,SAA4B;CACtD,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB,CAAC,MAAM,KAAK;CACnC,MAAM,iBAAiB,CAAC,UAAU,SAAS;AAC3C,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC;;;AA+EJ,SAAgB,WAAW,SAA4B;CACtD,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB,CAAC,KAAK;CAC7B,MAAM,iBAAiB,CAAC,SAAS;AACjC,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBAAuB,QAAQ,WAAW,gBAAgB,eAAe;EACpF,CAAC;;;;;;;;;;;;;;;;;AAsYJ,SAAgB,kBAAkB,SAAmC;CACpE,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACD,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBACV;GACC,GAAG,QAAQ;GACX,QAAQ,QAAQ,WAAW,UAAU,QAAQ,QAAQ;GACrD,EACD,gBACA,eACA;EACD,CAAC;;;;;;;;;;;;;;;;;AAqCJ,SAAgB,gBAAgB,SAAiC;CAChE,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACD,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBACV;GACC,GAAG,QAAQ;GACX,QAAQ,QAAQ,WAAW,UAAU,QAAQ,QAAQ;GACrD,EACD,gBACA,eACA;EACD,CAAC;;;;;;;;;;;;;;;;AAmCJ,SAAgB,WAAW,SAA4B;CACtD,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACD,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBACV;GACC,GAAG,QAAQ;GACX,QAAQ,QAAQ,WAAW,UAAU,QAAQ,QAAQ;GACrD,EACD,gBACA,eACA;EACD,CAAC;;;;;;;;;AAwBJ,SAAgB,cAAc,SAA+B;CAC5D,MAAM,iBACL,QAAQ,WAAW,QAAQ,QAAQ,oBAAoB;CACxD,MAAM,iBAAiB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,MAAM,iBAAiB;EAAC;EAAU;EAAW;EAAQ;EAAU;EAAU;AACzE,SAAQ,OACP,GAAG,SAAS;EACX,SAAS;EACT,QAAQ;EACR,UAAU;EACV,WAAW,uBACV;GACC,GAAG,QAAQ;GACX,QAAQ,QAAQ,WAAW,UAAU,QAAQ,QAAQ;GACrD,EACD,gBACA,eACA;EACD,CAAC"}
@@ -0,0 +1,92 @@
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 { TreasuryCap } from "./deps/sui/coin.mjs";
6
+ import { bcs } from "@mysten/sui/bcs";
7
+
8
+ //#region src/contracts/deepbook_predict/lp_book.ts
9
+ /**************************************************************
10
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
11
+ **************************************************************/
12
+ /**
13
+ * LP request book and share issuance for the pool vault.
14
+ *
15
+ * `LpBook` owns the PLP treasury cap plus the async supply/withdraw queues. `plp`
16
+ * owns the shared `PoolVault`, valuation, and pool cash accounting; it delegates
17
+ * request/cancel and frozen-mark queue drains here.
18
+ */
19
+ const $moduleName = "@local-pkg/deepbook_predict::lp_book";
20
+ const RequestQueue = new MoveStruct({
21
+ name: `${$moduleName}::RequestQueue<phantom T>`,
22
+ fields: {
23
+ pages: Table,
24
+ head_page_id: bcs.option(U64),
25
+ tail_page_id: bcs.option(U64),
26
+ next_index: U64,
27
+ pending: U64,
28
+ escrow: Balance
29
+ }
30
+ });
31
+ const LpBook = new MoveStruct({
32
+ name: `${$moduleName}::LpBook<phantom LP>`,
33
+ fields: {
34
+ treasury_cap: TreasuryCap,
35
+ supply_queue: RequestQueue,
36
+ withdraw_queue: RequestQueue,
37
+ locked_lp: Balance
38
+ }
39
+ });
40
+ const RequestEntry = new MoveStruct({
41
+ name: `${$moduleName}::RequestEntry`,
42
+ fields: {
43
+ index: U64,
44
+ account_id: bcs.Address,
45
+ recipient: bcs.Address,
46
+ amount: U64,
47
+ min_output: U64,
48
+ missed_flushes: U64
49
+ }
50
+ });
51
+ const RequestPage = new MoveStruct({
52
+ name: `${$moduleName}::RequestPage`,
53
+ fields: {
54
+ prev: bcs.option(U64),
55
+ next: bcs.option(U64),
56
+ entries: bcs.vector(RequestEntry)
57
+ }
58
+ });
59
+ const FlushMark = new MoveStruct({
60
+ name: `${$moduleName}::FlushMark`,
61
+ fields: {
62
+ pool_value: U64,
63
+ total_supply: U64,
64
+ executable: bcs.bool()
65
+ }
66
+ });
67
+ const FeeRates = new MoveStruct({
68
+ name: `${$moduleName}::FeeRates`,
69
+ fields: {
70
+ supply: U64,
71
+ withdraw: U64
72
+ }
73
+ });
74
+ const FillQuote = new MoveStruct({
75
+ name: `${$moduleName}::FillQuote`,
76
+ fields: {
77
+ output: U64,
78
+ fee: U64
79
+ }
80
+ });
81
+ const DrainSummary = new MoveStruct({
82
+ name: `${$moduleName}::DrainSummary`,
83
+ fields: {
84
+ supplies_filled: U64,
85
+ withdrawals_filled: U64,
86
+ requests_processed: U64
87
+ }
88
+ });
89
+
90
+ //#endregion
91
+ export { LpBook };
92
+ //# sourceMappingURL=lp_book.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lp_book.mjs","names":["table.Table","balance.Balance","coin.TreasuryCap"],"sources":["../../../src/contracts/deepbook_predict/lp_book.ts"],"sourcesContent":["/**************************************************************\n * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *\n **************************************************************/\n\n/**\n * LP request book and share issuance for the pool vault.\n *\n * `LpBook` owns the PLP treasury cap plus the async supply/withdraw queues. `plp`\n * owns the shared `PoolVault`, valuation, and pool cash accounting; it delegates\n * request/cancel and frozen-mark queue drains here.\n */\n\nimport { MoveStruct } from '../utils/index.js';\nimport { bcs } from '@mysten/sui/bcs';\nimport { U64 } from '../../bcs/integers.js';\nimport * as table from './deps/sui/table.js';\nimport * as balance from './deps/sui/balance.js';\nimport * as coin from './deps/sui/coin.js';\nconst $moduleName = '@local-pkg/deepbook_predict::lp_book';\nexport const RequestQueue = new MoveStruct({\n\tname: `${$moduleName}::RequestQueue<phantom T>`,\n\tfields: {\n\t\tpages: table.Table,\n\t\thead_page_id: bcs.option(U64),\n\t\ttail_page_id: bcs.option(U64),\n\t\tnext_index: U64,\n\t\tpending: U64,\n\t\tescrow: balance.Balance,\n\t},\n});\nexport const LpBook = new MoveStruct({\n\tname: `${$moduleName}::LpBook<phantom LP>`,\n\tfields: {\n\t\ttreasury_cap: coin.TreasuryCap,\n\t\tsupply_queue: RequestQueue,\n\t\twithdraw_queue: RequestQueue,\n\t\t/**\n\t\t * Permanent minimum-liquidity shares minted once at genesis (`plp::lock_capital`).\n\t\t * Held here with no withdraw path, so `total_supply` stays > 0 for the life of the\n\t\t * pool and the supply==0 bootstrap branch is unreachable. Withdrawal-rounding dust\n\t\t * accrues to this position.\n\t\t */\n\t\tlocked_lp: balance.Balance,\n\t},\n});\nexport const RequestEntry = new MoveStruct({\n\tname: `${$moduleName}::RequestEntry`,\n\tfields: {\n\t\tindex: U64,\n\t\t/**\n\t\t * Owning account, carried so a fill can attribute to the account directly rather\n\t\t * than only the derived `recipient` address (address is not invertible).\n\t\t */\n\t\taccount_id: bcs.Address,\n\t\trecipient: bcs.Address,\n\t\tamount: U64,\n\t\tmin_output: U64,\n\t\t/**\n\t\t * Frozen marks this request has already missed. Only ever non-zero when the\n\t\t * protocol allows more than one attempt (`ProtocolConfig`), since at one attempt a\n\t\t * miss refunds immediately.\n\t\t */\n\t\tmissed_flushes: U64,\n\t},\n});\nexport const RequestPage = new MoveStruct({\n\tname: `${$moduleName}::RequestPage`,\n\tfields: {\n\t\tprev: bcs.option(U64),\n\t\tnext: bcs.option(U64),\n\t\tentries: bcs.vector(RequestEntry),\n\t},\n});\nexport const FlushMark = new MoveStruct({\n\tname: `${$moduleName}::FlushMark`,\n\tfields: {\n\t\tpool_value: U64,\n\t\ttotal_supply: U64,\n\t\texecutable: bcs.bool(),\n\t},\n});\nexport const FeeRates = new MoveStruct({\n\tname: `${$moduleName}::FeeRates`,\n\tfields: {\n\t\t/** Supply-leg rate. Ships at zero: a deposit dilutes the pool's risk per dollar. */\n\t\tsupply: U64,\n\t\t/** Withdraw-leg rate, frozen with it so one flush charges one pair. */\n\t\twithdraw: U64,\n\t},\n});\nexport const FillQuote = new MoveStruct({\n\tname: `${$moduleName}::FillQuote`,\n\tfields: {\n\t\toutput: U64,\n\t\tfee: U64,\n\t},\n});\nexport const DrainSummary = new MoveStruct({\n\tname: `${$moduleName}::DrainSummary`,\n\tfields: {\n\t\tsupplies_filled: U64,\n\t\twithdrawals_filled: U64,\n\t\trequests_processed: U64,\n\t},\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,MAAM,cAAc;AACpB,MAAa,eAAe,IAAI,WAAW;CAC1C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,OAAOA;EACP,cAAc,IAAI,OAAO,IAAI;EAC7B,cAAc,IAAI,OAAO,IAAI;EAC7B,YAAY;EACZ,SAAS;EACT,QAAQC;EACR;CACD,CAAC;AACF,MAAa,SAAS,IAAI,WAAW;CACpC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,cAAcC;EACd,cAAc;EACd,gBAAgB;EAOhB,WAAWD;EACX;CACD,CAAC;AACF,MAAa,eAAe,IAAI,WAAW;CAC1C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,OAAO;EAKP,YAAY,IAAI;EAChB,WAAW,IAAI;EACf,QAAQ;EACR,YAAY;EAMZ,gBAAgB;EAChB;CACD,CAAC;AACF,MAAa,cAAc,IAAI,WAAW;CACzC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,MAAM,IAAI,OAAO,IAAI;EACrB,MAAM,IAAI,OAAO,IAAI;EACrB,SAAS,IAAI,OAAO,aAAa;EACjC;CACD,CAAC;AACF,MAAa,YAAY,IAAI,WAAW;CACvC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,YAAY;EACZ,cAAc;EACd,YAAY,IAAI,MAAM;EACtB;CACD,CAAC;AACF,MAAa,WAAW,IAAI,WAAW;CACtC,MAAM,GAAG,YAAY;CACrB,QAAQ;EAEP,QAAQ;EAER,UAAU;EACV;CACD,CAAC;AACF,MAAa,YAAY,IAAI,WAAW;CACvC,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,QAAQ;EACR,KAAK;EACL;CACD,CAAC;AACF,MAAa,eAAe,IAAI,WAAW;CAC1C,MAAM,GAAG,YAAY;CACrB,QAAQ;EACP,iBAAiB;EACjB,oBAAoB;EACpB,oBAAoB;EACpB;CACD,CAAC"}