@mysten/deepbook-v3 2.1.4 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/PREDICT.md +154 -48
  3. package/README.md +18 -13
  4. package/dist/account.d.mts.map +1 -1
  5. package/dist/account.mjs +3 -1
  6. package/dist/account.mjs.map +1 -1
  7. package/dist/client.d.mts +2 -2
  8. package/dist/contracts/account/account.d.mts +23 -23
  9. package/dist/contracts/account/account.d.mts.map +1 -1
  10. package/dist/contracts/account/account_events.d.mts +20 -20
  11. package/dist/contracts/account/account_registry.d.mts +19 -19
  12. package/dist/contracts/deepbook/account.d.mts +18 -18
  13. package/dist/contracts/deepbook/account.d.mts.map +1 -1
  14. package/dist/contracts/deepbook/balances.d.mts +4 -4
  15. package/dist/contracts/deepbook/balances.d.mts.map +1 -1
  16. package/dist/contracts/deepbook/deep_price.d.mts +3 -3
  17. package/dist/contracts/deepbook/deep_price.d.mts.map +1 -1
  18. package/dist/contracts/deepbook/order.d.mts +12 -12
  19. package/dist/contracts/deepbook_predict/admin.d.mts +27 -0
  20. package/dist/contracts/deepbook_predict/admin.d.mts.map +1 -0
  21. package/dist/contracts/deepbook_predict/admin.mjs +38 -0
  22. package/dist/contracts/deepbook_predict/admin.mjs.map +1 -0
  23. package/dist/contracts/deepbook_predict/builder_code.d.mts +81 -0
  24. package/dist/contracts/deepbook_predict/builder_code.d.mts.map +1 -0
  25. package/dist/contracts/deepbook_predict/builder_code.mjs +103 -0
  26. package/dist/contracts/deepbook_predict/builder_code.mjs.map +1 -0
  27. package/dist/contracts/deepbook_predict/builder_code_events.d.mts +25 -0
  28. package/dist/contracts/deepbook_predict/builder_code_events.d.mts.map +1 -0
  29. package/dist/contracts/deepbook_predict/builder_code_events.mjs +7 -1
  30. package/dist/contracts/deepbook_predict/builder_code_events.mjs.map +1 -1
  31. package/dist/contracts/deepbook_predict/config_events.d.mts +104 -0
  32. package/dist/contracts/deepbook_predict/config_events.d.mts.map +1 -0
  33. package/dist/contracts/deepbook_predict/config_events.mjs +155 -0
  34. package/dist/contracts/deepbook_predict/config_events.mjs.map +1 -0
  35. package/dist/contracts/deepbook_predict/deps/sui/vec_map.mjs +37 -0
  36. package/dist/contracts/deepbook_predict/deps/sui/vec_map.mjs.map +1 -0
  37. package/dist/contracts/deepbook_predict/ewma_config.mjs +28 -0
  38. package/dist/contracts/deepbook_predict/ewma_config.mjs.map +1 -0
  39. package/dist/contracts/deepbook_predict/expiry_cash.mjs +1 -1
  40. package/dist/contracts/deepbook_predict/expiry_cash.mjs.map +1 -1
  41. package/dist/contracts/deepbook_predict/expiry_market.d.mts +859 -0
  42. package/dist/contracts/deepbook_predict/expiry_market.d.mts.map +1 -0
  43. package/dist/contracts/deepbook_predict/expiry_market.mjs +662 -7
  44. package/dist/contracts/deepbook_predict/expiry_market.mjs.map +1 -1
  45. package/dist/contracts/deepbook_predict/market_lifecycle_cap.d.mts +39 -0
  46. package/dist/contracts/deepbook_predict/market_lifecycle_cap.d.mts.map +1 -0
  47. package/dist/contracts/deepbook_predict/market_lifecycle_cap.mjs +51 -0
  48. package/dist/contracts/deepbook_predict/market_lifecycle_cap.mjs.map +1 -0
  49. package/dist/contracts/deepbook_predict/market_manager.d.mts +159 -0
  50. package/dist/contracts/deepbook_predict/market_manager.d.mts.map +1 -0
  51. package/dist/contracts/deepbook_predict/market_manager.mjs +88 -2
  52. package/dist/contracts/deepbook_predict/market_manager.mjs.map +1 -1
  53. package/dist/contracts/deepbook_predict/order_events.d.mts +101 -0
  54. package/dist/contracts/deepbook_predict/order_events.d.mts.map +1 -0
  55. package/dist/contracts/deepbook_predict/order_events.mjs +7 -1
  56. package/dist/contracts/deepbook_predict/order_events.mjs.map +1 -1
  57. package/dist/contracts/deepbook_predict/pause_cap.d.mts +39 -0
  58. package/dist/contracts/deepbook_predict/pause_cap.d.mts.map +1 -0
  59. package/dist/contracts/deepbook_predict/pause_cap.mjs +51 -0
  60. package/dist/contracts/deepbook_predict/pause_cap.mjs.map +1 -0
  61. package/dist/contracts/deepbook_predict/plp.d.mts +801 -0
  62. package/dist/contracts/deepbook_predict/plp.d.mts.map +1 -0
  63. package/dist/contracts/deepbook_predict/plp.mjs +511 -32
  64. package/dist/contracts/deepbook_predict/plp.mjs.map +1 -1
  65. package/dist/contracts/deepbook_predict/pool_accounting.mjs +7 -7
  66. package/dist/contracts/deepbook_predict/pool_accounting.mjs.map +1 -1
  67. package/dist/contracts/deepbook_predict/pool_valuation_cap.d.mts +39 -0
  68. package/dist/contracts/deepbook_predict/pool_valuation_cap.d.mts.map +1 -0
  69. package/dist/contracts/deepbook_predict/pool_valuation_cap.mjs +52 -0
  70. package/dist/contracts/deepbook_predict/pool_valuation_cap.mjs.map +1 -0
  71. package/dist/contracts/deepbook_predict/predict_account.d.mts +90 -0
  72. package/dist/contracts/deepbook_predict/predict_account.d.mts.map +1 -0
  73. package/dist/contracts/deepbook_predict/predict_account.mjs +25 -2
  74. package/dist/contracts/deepbook_predict/predict_account.mjs.map +1 -1
  75. package/dist/contracts/deepbook_predict/pricing.d.mts +127 -0
  76. package/dist/contracts/deepbook_predict/pricing.d.mts.map +1 -0
  77. package/dist/contracts/deepbook_predict/pricing.mjs +37 -1
  78. package/dist/contracts/deepbook_predict/pricing.mjs.map +1 -1
  79. package/dist/contracts/deepbook_predict/pricing_config.mjs +28 -0
  80. package/dist/contracts/deepbook_predict/pricing_config.mjs.map +1 -0
  81. package/dist/contracts/deepbook_predict/protocol_config.d.mts +665 -0
  82. package/dist/contracts/deepbook_predict/protocol_config.d.mts.map +1 -0
  83. package/dist/contracts/deepbook_predict/protocol_config.mjs +841 -0
  84. package/dist/contracts/deepbook_predict/protocol_config.mjs.map +1 -0
  85. package/dist/contracts/deepbook_predict/range_codec.d.mts +30 -0
  86. package/dist/contracts/deepbook_predict/range_codec.d.mts.map +1 -0
  87. package/dist/contracts/deepbook_predict/range_codec.mjs +6 -1
  88. package/dist/contracts/deepbook_predict/range_codec.mjs.map +1 -1
  89. package/dist/contracts/deepbook_predict/registry.d.mts +382 -0
  90. package/dist/contracts/deepbook_predict/registry.d.mts.map +1 -0
  91. package/dist/contracts/deepbook_predict/registry.mjs +458 -2
  92. package/dist/contracts/deepbook_predict/registry.mjs.map +1 -1
  93. package/dist/contracts/deepbook_predict/strike_exposure.mjs.map +1 -1
  94. package/dist/contracts/deepbook_predict/strike_payout_tree.mjs +13 -1
  95. package/dist/contracts/deepbook_predict/strike_payout_tree.mjs.map +1 -1
  96. package/dist/contracts/deepbook_predict/vault_events.d.mts +199 -0
  97. package/dist/contracts/deepbook_predict/vault_events.d.mts.map +1 -0
  98. package/dist/contracts/deepbook_predict/vault_events.mjs +38 -8
  99. package/dist/contracts/deepbook_predict/vault_events.mjs.map +1 -1
  100. package/dist/contracts/deepbook_sessions/session_config.d.mts +8 -8
  101. package/dist/contracts/deepbook_sessions/session_config.d.mts.map +1 -1
  102. package/dist/contracts/deepbook_sessions/sessions.d.mts +22 -22
  103. package/dist/contracts/deepbook_sessions/sessions.d.mts.map +1 -1
  104. package/dist/deployments/index.d.mts +3 -2
  105. package/dist/deployments/index.d.mts.map +1 -1
  106. package/dist/deployments/index.mjs +4 -1
  107. package/dist/deployments/index.mjs.map +1 -1
  108. package/dist/deployments/mainnet.d.mts +14 -0
  109. package/dist/deployments/mainnet.d.mts.map +1 -0
  110. package/dist/deployments/mainnet.mjs +73 -0
  111. package/dist/deployments/mainnet.mjs.map +1 -0
  112. package/dist/deployments/testnet.mjs +23 -23
  113. package/dist/deployments/testnet.mjs.map +1 -1
  114. package/dist/deployments/types.d.mts +1 -1
  115. package/dist/predict/client.d.mts +28 -6
  116. package/dist/predict/client.d.mts.map +1 -1
  117. package/dist/predict/client.mjs +7 -6
  118. package/dist/predict/client.mjs.map +1 -1
  119. package/dist/predict/config/index.d.mts +2 -0
  120. package/dist/predict/config/index.d.mts.map +1 -1
  121. package/dist/predict/config/index.mjs +4 -1
  122. package/dist/predict/config/index.mjs.map +1 -1
  123. package/dist/predict/config/mainnet.d.mts +17 -0
  124. package/dist/predict/config/mainnet.d.mts.map +1 -0
  125. package/dist/predict/config/mainnet.mjs +26 -0
  126. package/dist/predict/config/mainnet.mjs.map +1 -0
  127. package/dist/predict/config/types.d.mts +6 -0
  128. package/dist/predict/config/types.d.mts.map +1 -1
  129. package/dist/predict/index.d.mts +21 -2
  130. package/dist/predict/index.mjs +20 -1
  131. package/dist/predict/pricing.d.mts +6 -6
  132. package/dist/predict/pricing.d.mts.map +1 -1
  133. package/dist/predict/pricing.mjs +6 -6
  134. package/dist/predict/pricing.mjs.map +1 -1
  135. package/dist/predict/reads/balances.mjs.map +1 -1
  136. package/dist/predict/reads/markets.mjs +1 -1
  137. package/dist/predict/reads/markets.mjs.map +1 -1
  138. package/dist/predict/reads/pricing.d.mts +2 -1
  139. package/dist/predict/reads/pricing.d.mts.map +1 -1
  140. package/dist/predict/reads/pricing.mjs.map +1 -1
  141. package/dist/sessions.d.mts.map +1 -1
  142. package/dist/sessions.mjs +3 -1
  143. package/dist/sessions.mjs.map +1 -1
  144. package/dist/transactions/balanceManager.d.mts +12 -12
  145. package/dist/transactions/balanceManager.d.mts.map +1 -1
  146. package/dist/transactions/deepbook.d.mts +20 -20
  147. package/dist/transactions/deepbook.d.mts.map +1 -1
  148. package/dist/transactions/deepbookAdmin.d.mts +4 -4
  149. package/dist/transactions/deepbookAdmin.d.mts.map +1 -1
  150. package/dist/transactions/marginAdmin.d.mts +7 -7
  151. package/dist/transactions/marginLiquidations.d.mts +3 -3
  152. package/dist/transactions/marginMaintainer.d.mts +5 -5
  153. package/dist/transactions/marginManager.d.mts +32 -32
  154. package/dist/transactions/marginPool.d.mts +18 -18
  155. package/dist/transactions/marginPool.d.mts.map +1 -1
  156. package/dist/transactions/marginRegistry.d.mts +16 -16
  157. package/dist/transactions/marginTPSL.d.mts +10 -10
  158. package/dist/transactions/poolProxy.d.mts +8 -8
  159. package/package.json +3 -3
  160. package/src/account.ts +3 -1
  161. package/src/contracts/deepbook_predict/builder_code.ts +3 -3
  162. package/src/contracts/deepbook_predict/config_events.ts +9 -2
  163. package/src/contracts/deepbook_predict/deps/sui/vec_map.ts +33 -0
  164. package/src/contracts/deepbook_predict/expiry_cash.ts +1 -1
  165. package/src/contracts/deepbook_predict/expiry_market.ts +70 -11
  166. package/src/contracts/deepbook_predict/market_lifecycle_cap.ts +3 -10
  167. package/src/contracts/deepbook_predict/market_manager.ts +2 -2
  168. package/src/contracts/deepbook_predict/order_events.ts +6 -6
  169. package/src/contracts/deepbook_predict/plp.ts +263 -81
  170. package/src/contracts/deepbook_predict/pool_accounting.ts +14 -14
  171. package/src/contracts/deepbook_predict/pool_valuation_cap.ts +69 -0
  172. package/src/contracts/deepbook_predict/predict_account.ts +1 -1
  173. package/src/contracts/deepbook_predict/pricing.ts +16 -4
  174. package/src/contracts/deepbook_predict/protocol_config.ts +202 -7
  175. package/src/contracts/deepbook_predict/registry.ts +91 -17
  176. package/src/contracts/deepbook_predict/strike_exposure.ts +1 -1
  177. package/src/contracts/deepbook_predict/strike_payout_tree.ts +27 -0
  178. package/src/contracts/deepbook_predict/vault_events.ts +45 -14
  179. package/src/contracts/propbook/block_scholes_store.ts +8 -42
  180. package/src/deployments/index.ts +13 -3
  181. package/src/deployments/mainnet.ts +107 -0
  182. package/src/deployments/testnet.ts +25 -25
  183. package/src/deployments/types.ts +1 -1
  184. package/src/predict/client.ts +48 -17
  185. package/src/predict/config/index.ts +7 -2
  186. package/src/predict/config/mainnet.ts +27 -0
  187. package/src/predict/config/types.ts +7 -1
  188. package/src/predict/index.ts +31 -2
  189. package/src/predict/pricing.ts +11 -9
  190. package/src/predict/reads/balances.ts +1 -1
  191. package/src/predict/reads/markets.ts +1 -1
  192. package/src/predict/reads/pricing.ts +2 -1
  193. package/src/sessions.ts +4 -1
@@ -34,7 +34,13 @@ export interface PredictConfig {
34
34
  oracleRegistry: string;
35
35
  accountRegistry: string;
36
36
  };
37
- quoteCoinType: string; // DUSDC on testnet
37
+ /**
38
+ * The deployment's settlement coin type. Always read this rather than assuming a type:
39
+ * the contracts renamed the collateral to `usdc::usdc::USDC`, but a deployment published
40
+ * before that rename still serves its original coin type, and this field is what the
41
+ * deployment record actually carries.
42
+ */
43
+ quoteCoinType: string;
38
44
  /**
39
45
  * Coin types the deployment owns. `plp` is NOT derivable from `packages.predict`: a Move
40
46
  * type tag keeps the ORIGINAL package id across an upgrade, while `packages.predict`
@@ -2,8 +2,8 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  // Public API for `@mysten/deepbook-v3/predict`. The curated surface is the `PredictClient`
4
4
  // facade plus the value types, unit conversions, tick helpers, typed errors, and typed
5
- // execution-result decoders — and the few primitives below that compose predict
6
- // accounts into PTBs on FOREIGN packages, which no facade shape can cover.
5
+ // execution-result decoders — and, for composing your own PTBs, the few primitives below
6
+ // that compose predict accounts with FOREIGN packages plus the generated move-call bindings.
7
7
 
8
8
  // === Facade === (register as a client extension: `client.$extend(predict({ network }))`)
9
9
  export { POSITION_LOT_SIZE, PredictClient, predict } from './client.js';
@@ -16,6 +16,8 @@ export type {
16
16
  MintAmountOptions,
17
17
  MintOptions,
18
18
  MintQuote,
19
+ PlpSupplyOptions,
20
+ PlpWithdrawOptions,
19
21
  PoolSummary,
20
22
  RedeemQuote,
21
23
  } from './client.js';
@@ -28,12 +30,39 @@ export type {
28
30
  // shared account primitive — reach for its `AccountContract` to drive it directly.
29
31
  export { deriveAccountWrapperId, generateAuth } from './tx/common.js';
30
32
 
33
+ // === Move-call bindings === the generated transaction thunks for every Predict module with a
34
+ // callable function, for putting Predict calls into a PTB you are building — each facade `tx.*`
35
+ // builder returns a finished `Transaction` instead. Mirrors `/account`'s `accountMoveCalls`. Pass
36
+ // `config: toGeneratedConfig(cfg)` and the shared objects fill themselves in; owner-authorized
37
+ // calls take an `Auth` from `generateAuth(cfg)`. Each namespace also carries its module's BCS
38
+ // structs; the `*Events` namespaces are event layouts only.
39
+ export * as adminMoveCalls from '../contracts/deepbook_predict/admin.js';
40
+ export * as builderCodeMoveCalls from '../contracts/deepbook_predict/builder_code.js';
41
+ export * as expiryMarketMoveCalls from '../contracts/deepbook_predict/expiry_market.js';
42
+ export * as marketLifecycleCapMoveCalls from '../contracts/deepbook_predict/market_lifecycle_cap.js';
43
+ export * as marketManagerMoveCalls from '../contracts/deepbook_predict/market_manager.js';
44
+ export * as pauseCapMoveCalls from '../contracts/deepbook_predict/pause_cap.js';
45
+ export * as plpMoveCalls from '../contracts/deepbook_predict/plp.js';
46
+ export * as poolValuationCapMoveCalls from '../contracts/deepbook_predict/pool_valuation_cap.js';
47
+ export * as predictAccountMoveCalls from '../contracts/deepbook_predict/predict_account.js';
48
+ export * as pricingMoveCalls from '../contracts/deepbook_predict/pricing.js';
49
+ export * as protocolConfigMoveCalls from '../contracts/deepbook_predict/protocol_config.js';
50
+ export * as rangeCodecMoveCalls from '../contracts/deepbook_predict/range_codec.js';
51
+ export * as registryMoveCalls from '../contracts/deepbook_predict/registry.js';
52
+ export * as builderCodeEvents from '../contracts/deepbook_predict/builder_code_events.js';
53
+ export * as configEvents from '../contracts/deepbook_predict/config_events.js';
54
+ export * as orderEvents from '../contracts/deepbook_predict/order_events.js';
55
+ export * as vaultEvents from '../contracts/deepbook_predict/vault_events.js';
56
+
31
57
  // === Config ===
32
58
  export {
59
+ MAINNET_CONFIG,
33
60
  TESTNET_CONFIG,
34
61
  getConfig,
35
62
  getDeployment,
36
63
  getUnits,
64
+ MAINNET_DEPLOYMENT,
65
+ MAINNET_UNITS,
37
66
  TESTNET_DEPLOYMENT,
38
67
  TESTNET_UNITS,
39
68
  } from './config/index.js';
@@ -1,7 +1,9 @@
1
1
  // Copyright (c) Mysten Labs, Inc.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- // Faithful float port of the deployed `deepbook_predict::pricing::compute_nd2`
4
- // (testnet `predict-testnet-8-21`, sourceCommit 1f79fe87) the SVI-adjusted digital
3
+ // Faithful float port of `deepbook_predict::pricing::compute_nd2` as of the anchor the
4
+ // generated bindings are pinned to (`sui-codegen.config.ts`: the `deepbook-predict-testnet`
5
+ // deployment). `pricing.move` is untouched across the anchors this SDK has used, so the
6
+ // formula is unchanged from earlier deployments — the SVI-adjusted digital
5
7
  // probability, WITH the skew-correction term. It operates on the pricer's
6
8
  // ALREADY-RESOLVED forward and ALREADY-ROLLED-DOWN SVI, exactly as `load_live_pricer`
7
9
  // returns them (decoded by `reads/pricing.ts`). So the two on-chain steps that pick the
@@ -16,7 +18,7 @@
16
18
  // sits at its floor (float64 here is the more precise side, not the less); negligible for
17
19
  // display. `tests/testnet/pricing.test.ts` bounds it live against the deployment.
18
20
  //
19
- // The on-chain formula (pricing.move `compute_nd2`, 1f79fe87):
21
+ // The on-chain formula (pricing/pricing.move `compute_nd2`):
20
22
  // k = ln(strike / forward)
21
23
  // x = k - m
22
24
  // w = a + b·(ρ·x + √(x² + σ²)) // a, b already rolled down
@@ -146,12 +148,12 @@ export function strikeAtProbability(inputs: PricerInputs, p: number): number | n
146
148
 
147
149
  /** Roll `a` and `b` down by the fraction of anchored time remaining, matching the chain's
148
150
  * `roll_down_svi` (variance decays toward expiry). `remainingMs` = expiry − now;
149
- * `anchorTteMs` = expiry − the SVI observation's **batch envelope time** — the same clock the
150
- * freshness gate uses, and what the chain anchors on. It is NOT the provider's calibration
151
- * (model) time, which stays on the stored observation: using that rolls by the wrong
152
- * fraction. `read.pricer` avoids the question entirely (the chain has already rolled).
153
- * `rho`, `m`, `sigma` are unchanged. Feed an UNrolled provider surface; the result is what {@link upProbability}
154
- * expects. */
151
+ * `anchorTteMs` = expiry − the SVI observation's **provider `svi_timestamp`** (its per-update
152
+ * source timestamp) — the same clock the freshness gate accepts, and what the chain anchors on
153
+ * (`pricing.move`: "One clock serves every job"). Anchoring on the batch's ingestion time
154
+ * instead rolls by the wrong fraction. `read.pricer` avoids the question entirely (the chain
155
+ * has already rolled). `rho`, `m`, `sigma` are unchanged. Feed an UNrolled provider surface;
156
+ * the result is what {@link upProbability} expects. */
155
157
  export function rollDown(svi: Svi, remainingMs: number, anchorTteMs: number): Svi {
156
158
  const frac = anchorTteMs > 0 ? remainingMs / anchorTteMs : 0;
157
159
  return { ...svi, a: svi.a * frac, b: svi.b * frac };
@@ -9,7 +9,7 @@ import { inspectReturns, type ReadClient } from './inspect.js';
9
9
  import { parseU64LE } from './parse.js';
10
10
 
11
11
  // An owner's stored account balance for `coinType` (the deployment's quote coin,
12
- // DUSDC on testnet, unless the caller asks for another). Chains `account::load_account(wrapper)` →
12
+ // USDC on testnet, unless the caller asks for another). Chains `account::load_account(wrapper)` →
13
13
  // `account::balance<T>(account, root, clock)`; the u64 is command 1's return —
14
14
  // see packages/account/sources/account.move:{80,86}. The clock is auto-injected by
15
15
  // the generated `balance` wrapper; the wrapper id is derived off-chain (no read).
@@ -28,7 +28,7 @@ export async function activeMarketIds(
28
28
 
29
29
  // The expiry market id for one underlying at one expiry, or null if none exists.
30
30
  // `registry::expiry_market_id(registry, propbook_underlying_id: u32, expiry: u64):
31
- // Option<ID>` — see packages/predict/sources/registry/registry.move:53.
31
+ // Option<ID>` — see packages/predict/sources/registry/registry.move:58.
32
32
  export async function expiryMarketId(
33
33
  client: ReadClient,
34
34
  config: GeneratedConfig,
@@ -23,7 +23,8 @@ const i64 = (v: { magnitude: string | number | bigint; is_negative: boolean }):
23
23
  /** A resolved pricer snapshot read from the chain: the decimal forward + rolled SVI the
24
24
  * client-side math consumes, plus the oracle source timestamps behind it (ms; for
25
25
  * staleness display — Pyth is 0 when no usable spot existed). The Block-Scholes entries are
26
- * batch ENVELOPE times (what freshness and the SVI roll-down anchor on), not model times. */
26
+ * the provider's PER-UPDATE source timestamps (`value_timestamp` for spot/forward,
27
+ * `svi_timestamp` for SVI) — the clocks freshness and the SVI roll-down anchor on. */
27
28
  export interface PricerSnapshot extends PricerInputs {
28
29
  sources: {
29
30
  pythSpotMs: number;
package/src/sessions.ts CHANGED
@@ -4,6 +4,7 @@ import { bcs } from '@mysten/sui/bcs';
4
4
  import type { Transaction, TransactionArgument, TransactionResult } from '@mysten/sui/transactions';
5
5
  import { deriveDynamicFieldID, deriveObjectID } from '@mysten/sui/utils';
6
6
 
7
+ import { MAINNET_SESSIONS } from './deployments/mainnet.js';
7
8
  import { TESTNET_SESSIONS } from './deployments/testnet.js';
8
9
  import type { NetworkArg } from './deployments/index.js';
9
10
 
@@ -69,9 +70,11 @@ export function getSessionsConfig(
69
70
  // The frozen record itself, matching `/account` — returning a spread here would have
70
71
  // quietly exempted this subpath from the immutability the others guarantee.
71
72
  if (network === 'testnet') return TESTNET_SESSIONS;
73
+ if (network === 'mainnet') return MAINNET_SESSIONS;
72
74
  throw new Error(
73
75
  `@mysten/deepbook-v3/sessions: no sessions deployment recorded for network '${network}'. ` +
74
- 'Sessions is testnet-only today; for your own deployment construct a `SessionsConfig` ' +
76
+ 'Sessions is recorded for testnet and mainnet; for your own deployment construct a ' +
77
+ '`SessionsConfig` ' +
75
78
  'and pass it to SessionsContract directly.',
76
79
  );
77
80
  }