@mysten/deepbook-v3 2.8.2 → 2.9.1

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 (95) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/PREDICT.md +26 -13
  3. package/dist/client.d.mts +2 -2
  4. package/dist/contracts/account/account.d.mts +23 -23
  5. package/dist/contracts/account/account.d.mts.map +1 -1
  6. package/dist/contracts/account/account_events.d.mts +20 -20
  7. package/dist/contracts/account/account_events.d.mts.map +1 -1
  8. package/dist/contracts/account/account_registry.d.mts +19 -19
  9. package/dist/contracts/account/account_registry.d.mts.map +1 -1
  10. package/dist/contracts/deepbook/account.d.mts +18 -18
  11. package/dist/contracts/deepbook/balances.d.mts +4 -4
  12. package/dist/contracts/deepbook/deep_price.d.mts +3 -3
  13. package/dist/contracts/deepbook/order.d.mts +12 -12
  14. package/dist/contracts/deepbook_predict/admin.d.mts +4 -4
  15. package/dist/contracts/deepbook_predict/admin.d.mts.map +1 -1
  16. package/dist/contracts/deepbook_predict/builder_code.d.mts +11 -11
  17. package/dist/contracts/deepbook_predict/builder_code.d.mts.map +1 -1
  18. package/dist/contracts/deepbook_predict/builder_code_events.d.mts +10 -10
  19. package/dist/contracts/deepbook_predict/config_events.d.mts +86 -81
  20. package/dist/contracts/deepbook_predict/config_events.d.mts.map +1 -1
  21. package/dist/contracts/deepbook_predict/config_events.mjs +9 -0
  22. package/dist/contracts/deepbook_predict/config_events.mjs.map +1 -1
  23. package/dist/contracts/deepbook_predict/expiry_market.d.mts +59 -59
  24. package/dist/contracts/deepbook_predict/market_lifecycle_cap.d.mts +5 -5
  25. package/dist/contracts/deepbook_predict/market_lifecycle_cap.d.mts.map +1 -1
  26. package/dist/contracts/deepbook_predict/market_manager.d.mts +33 -28
  27. package/dist/contracts/deepbook_predict/market_manager.d.mts.map +1 -1
  28. package/dist/contracts/deepbook_predict/market_manager.mjs +5 -3
  29. package/dist/contracts/deepbook_predict/market_manager.mjs.map +1 -1
  30. package/dist/contracts/deepbook_predict/order_events.d.mts +50 -50
  31. package/dist/contracts/deepbook_predict/pause_cap.d.mts +5 -5
  32. package/dist/contracts/deepbook_predict/pause_cap.d.mts.map +1 -1
  33. package/dist/contracts/deepbook_predict/plp.d.mts +74 -74
  34. package/dist/contracts/deepbook_predict/plp.d.mts.map +1 -1
  35. package/dist/contracts/deepbook_predict/pool_valuation_cap.d.mts +5 -5
  36. package/dist/contracts/deepbook_predict/pool_valuation_cap.d.mts.map +1 -1
  37. package/dist/contracts/deepbook_predict/predict_account.d.mts +14 -14
  38. package/dist/contracts/deepbook_predict/predict_account.d.mts.map +1 -1
  39. package/dist/contracts/deepbook_predict/pricing.d.mts +67 -67
  40. package/dist/contracts/deepbook_predict/pricing.d.mts.map +1 -1
  41. package/dist/contracts/deepbook_predict/protocol_config.d.mts +82 -82
  42. package/dist/contracts/deepbook_predict/range_codec.d.mts +2 -2
  43. package/dist/contracts/deepbook_predict/range_codec.d.mts.map +1 -1
  44. package/dist/contracts/deepbook_predict/registry.d.mts +108 -36
  45. package/dist/contracts/deepbook_predict/registry.d.mts.map +1 -1
  46. package/dist/contracts/deepbook_predict/registry.mjs +111 -7
  47. package/dist/contracts/deepbook_predict/registry.mjs.map +1 -1
  48. package/dist/contracts/deepbook_predict/vault_events.d.mts +131 -131
  49. package/dist/contracts/deepbook_predict_math/lazer_price.d.mts +13 -13
  50. package/dist/contracts/deepbook_predict_math/math.d.mts +14 -14
  51. package/dist/contracts/deepbook_predict_orders/delayed_execution_config.d.mts +30 -30
  52. package/dist/contracts/deepbook_predict_orders/desk.d.mts +28 -28
  53. package/dist/contracts/deepbook_predict_orders/desk.d.mts.map +1 -1
  54. package/dist/contracts/deepbook_predict_orders/order_queue.d.mts +187 -187
  55. package/dist/contracts/deepbook_predict_orders/queue.d.mts +49 -49
  56. package/dist/contracts/deepbook_predict_orders/queue_events.d.mts +140 -140
  57. package/dist/contracts/deepbook_sessions/session_config.d.mts +8 -8
  58. package/dist/contracts/deepbook_sessions/session_config.d.mts.map +1 -1
  59. package/dist/contracts/deepbook_sessions/sessions.d.mts +27 -27
  60. package/dist/contracts/deepbook_sessions/sessions.d.mts.map +1 -1
  61. package/dist/deployments/testnet.mjs +1 -1
  62. package/dist/deployments/testnet.mjs.map +1 -1
  63. package/dist/predict/bindings/expiry-market.d.mts +5 -5
  64. package/dist/predict/bindings/expiry-market.d.mts.map +1 -1
  65. package/dist/predict/bindings/protocol-config.d.mts +3 -3
  66. package/dist/predict/bindings/protocol-config.d.mts.map +1 -1
  67. package/dist/transactions/balanceManager.d.mts +12 -12
  68. package/dist/transactions/balanceManager.d.mts.map +1 -1
  69. package/dist/transactions/deepbook.d.mts +20 -20
  70. package/dist/transactions/deepbook.d.mts.map +1 -1
  71. package/dist/transactions/deepbookAdmin.d.mts +4 -4
  72. package/dist/transactions/deepbookAdmin.d.mts.map +1 -1
  73. package/dist/transactions/marginAdmin.d.mts +7 -7
  74. package/dist/transactions/marginAdmin.d.mts.map +1 -1
  75. package/dist/transactions/marginLiquidations.d.mts +3 -3
  76. package/dist/transactions/marginMaintainer.d.mts +5 -5
  77. package/dist/transactions/marginMaintainer.d.mts.map +1 -1
  78. package/dist/transactions/marginManager.d.mts +32 -32
  79. package/dist/transactions/marginPool.d.mts +18 -18
  80. package/dist/transactions/marginPool.d.mts.map +1 -1
  81. package/dist/transactions/marginRegistry.d.mts +16 -16
  82. package/dist/transactions/marginTPSL.d.mts +10 -10
  83. package/dist/transactions/poolProxy.d.mts +8 -8
  84. package/dist/transactions/poolProxy.d.mts.map +1 -1
  85. package/dist/utils/constants.d.mts.map +1 -1
  86. package/dist/utils/constants.mjs +14 -4
  87. package/dist/utils/constants.mjs.map +1 -1
  88. package/package.json +1 -1
  89. package/src/contracts/deepbook_predict/config_events.ts +8 -0
  90. package/src/contracts/deepbook_predict/market_manager.ts +11 -5
  91. package/src/contracts/deepbook_predict/registry.ts +162 -6
  92. package/src/contracts/propbook/block_scholes_store.ts +48 -3
  93. package/src/contracts/propbook/registry.ts +45 -0
  94. package/src/deployments/testnet.ts +1 -1
  95. package/src/utils/constants.ts +24 -9
@@ -1,6 +1,6 @@
1
1
  import { AddConditionalOrderParams, PendingLimitOrderParams, PendingMarketOrderParams } from "../types/index.mjs";
2
2
  import { DeepBookConfig } from "../utils/config.mjs";
3
- import * as _mysten_sui_transactions309 from "@mysten/sui/transactions";
3
+ import * as _mysten_sui_transactions100 from "@mysten/sui/transactions";
4
4
  import { Transaction } from "@mysten/sui/transactions";
5
5
 
6
6
  //#region src/transactions/marginTPSL.d.ts
@@ -20,21 +20,21 @@ declare class MarginTPSLContract {
20
20
  * @param {number} triggerPrice The price at which to trigger the order
21
21
  * @returns A function that takes a Transaction object
22
22
  */
23
- newCondition: (poolKey: string, triggerBelowPrice: boolean, triggerPrice: number | bigint) => (tx: Transaction) => _mysten_sui_transactions309.TransactionResult;
23
+ newCondition: (poolKey: string, triggerBelowPrice: boolean, triggerPrice: number | bigint) => (tx: Transaction) => _mysten_sui_transactions100.TransactionResult;
24
24
  /**
25
25
  * @description Create a new pending limit order for use in conditional orders
26
26
  * @param {string} poolKey The key to identify the pool
27
27
  * @param {PendingLimitOrderParams} params Parameters for the pending limit order
28
28
  * @returns A function that takes a Transaction object
29
29
  */
30
- newPendingLimitOrder: (poolKey: string, params: PendingLimitOrderParams) => (tx: Transaction) => _mysten_sui_transactions309.TransactionResult;
30
+ newPendingLimitOrder: (poolKey: string, params: PendingLimitOrderParams) => (tx: Transaction) => _mysten_sui_transactions100.TransactionResult;
31
31
  /**
32
32
  * @description Create a new pending market order for use in conditional orders
33
33
  * @param {string} poolKey The key to identify the pool
34
34
  * @param {PendingMarketOrderParams} params Parameters for the pending market order
35
35
  * @returns A function that takes a Transaction object
36
36
  */
37
- newPendingMarketOrder: (poolKey: string, params: PendingMarketOrderParams) => (tx: Transaction) => _mysten_sui_transactions309.TransactionResult;
37
+ newPendingMarketOrder: (poolKey: string, params: PendingMarketOrderParams) => (tx: Transaction) => _mysten_sui_transactions100.TransactionResult;
38
38
  /**
39
39
  * @description Add a conditional order (take profit or stop loss)
40
40
  * @param {AddConditionalOrderParams} params Parameters for adding the conditional order
@@ -65,7 +65,7 @@ declare class MarginTPSLContract {
65
65
  * @param {number} maxOrdersToExecute Maximum number of orders to execute in this call
66
66
  * @returns A function that takes a Transaction object
67
67
  */
68
- executeConditionalOrders: (managerAddress: string, poolKey: string, maxOrdersToExecute: number) => (tx: Transaction) => _mysten_sui_transactions309.TransactionResult;
68
+ executeConditionalOrders: (managerAddress: string, poolKey: string, maxOrdersToExecute: number) => (tx: Transaction) => _mysten_sui_transactions100.TransactionResult;
69
69
  /**
70
70
  * @description Execute conditional orders, deleveraging on each market-type
71
71
  * fill. Permissionless, with the same trigger and cancellation handling as
@@ -83,14 +83,14 @@ declare class MarginTPSLContract {
83
83
  * @param {number} maxOrdersToExecute Maximum number of orders to execute in this call
84
84
  * @returns A function that takes a Transaction object
85
85
  */
86
- executeConditionalOrdersV3: (managerAddress: string, poolKey: string, maxOrdersToExecute: number) => (tx: Transaction) => _mysten_sui_transactions309.TransactionResult;
86
+ executeConditionalOrdersV3: (managerAddress: string, poolKey: string, maxOrdersToExecute: number) => (tx: Transaction) => _mysten_sui_transactions100.TransactionResult;
87
87
  /**
88
88
  * @description Get all conditional order IDs for a margin manager
89
89
  * @param {string} poolKey The key to identify the pool
90
90
  * @param {string} marginManagerId The ID of the margin manager
91
91
  * @returns A function that takes a Transaction object
92
92
  */
93
- conditionalOrderIds: (poolKey: string, marginManagerId: string) => (tx: Transaction) => _mysten_sui_transactions309.TransactionResult;
93
+ conditionalOrderIds: (poolKey: string, marginManagerId: string) => (tx: Transaction) => _mysten_sui_transactions100.TransactionResult;
94
94
  /**
95
95
  * @description Get a specific conditional order by ID
96
96
  * @param {string} poolKey The key to identify the pool
@@ -98,7 +98,7 @@ declare class MarginTPSLContract {
98
98
  * @param {string} conditionalOrderId The ID of the conditional order
99
99
  * @returns A function that takes a Transaction object
100
100
  */
101
- conditionalOrder: (poolKey: string, marginManagerId: string, conditionalOrderId: string) => (tx: Transaction) => _mysten_sui_transactions309.TransactionResult;
101
+ conditionalOrder: (poolKey: string, marginManagerId: string, conditionalOrderId: string) => (tx: Transaction) => _mysten_sui_transactions100.TransactionResult;
102
102
  /**
103
103
  * @description Get the lowest trigger price for trigger_above orders
104
104
  * Returns constants::max_u64() if there are no trigger_above orders
@@ -106,7 +106,7 @@ declare class MarginTPSLContract {
106
106
  * @param {string} marginManagerId The ID of the margin manager
107
107
  * @returns A function that takes a Transaction object
108
108
  */
109
- lowestTriggerAbovePrice: (poolKey: string, marginManagerId: string) => (tx: Transaction) => _mysten_sui_transactions309.TransactionResult;
109
+ lowestTriggerAbovePrice: (poolKey: string, marginManagerId: string) => (tx: Transaction) => _mysten_sui_transactions100.TransactionResult;
110
110
  /**
111
111
  * @description Get the highest trigger price for trigger_below orders
112
112
  * Returns 0 if there are no trigger_below orders
@@ -114,7 +114,7 @@ declare class MarginTPSLContract {
114
114
  * @param {string} marginManagerId The ID of the margin manager
115
115
  * @returns A function that takes a Transaction object
116
116
  */
117
- highestTriggerBelowPrice: (poolKey: string, marginManagerId: string) => (tx: Transaction) => _mysten_sui_transactions309.TransactionResult;
117
+ highestTriggerBelowPrice: (poolKey: string, marginManagerId: string) => (tx: Transaction) => _mysten_sui_transactions100.TransactionResult;
118
118
  }
119
119
  //#endregion
120
120
  export { MarginTPSLContract };
@@ -1,6 +1,6 @@
1
1
  import { MarginProposalParams, PlaceMarginLimitOrderParams, PlaceMarginMarketOrderParams } from "../types/index.mjs";
2
2
  import { DeepBookConfig } from "../utils/config.mjs";
3
- import * as _mysten_sui_transactions335 from "@mysten/sui/transactions";
3
+ import * as _mysten_sui_transactions93 from "@mysten/sui/transactions";
4
4
  import { Transaction } from "@mysten/sui/transactions";
5
5
 
6
6
  //#region src/transactions/poolProxy.d.ts
@@ -20,7 +20,7 @@ declare class PoolProxyContract {
20
20
  * @param {PlaceMarginLimitOrderParams} params Parameters for placing a limit order
21
21
  * @returns A function that takes a Transaction object
22
22
  */
23
- placeLimitOrder: (params: PlaceMarginLimitOrderParams) => (tx: Transaction) => _mysten_sui_transactions335.TransactionResult;
23
+ placeLimitOrder: (params: PlaceMarginLimitOrderParams) => (tx: Transaction) => _mysten_sui_transactions93.TransactionResult;
24
24
  /**
25
25
  * @description Place a market order. Enforces a post-trade `risk_ratio >=
26
26
  * min_borrow_risk_ratio` invariant on the manager (skipped when the manager
@@ -28,7 +28,7 @@ declare class PoolProxyContract {
28
28
  * @param {PlaceMarginMarketOrderParams} params Parameters for placing a market order
29
29
  * @returns A function that takes a Transaction object
30
30
  */
31
- placeMarketOrder: (params: PlaceMarginMarketOrderParams) => (tx: Transaction) => _mysten_sui_transactions335.TransactionResult;
31
+ placeMarketOrder: (params: PlaceMarginMarketOrderParams) => (tx: Transaction) => _mysten_sui_transactions93.TransactionResult;
32
32
  /**
33
33
  * @description Place a reduce only limit order. Requires the manager to have
34
34
  * debt on the relevant side; enforces a monotonic `risk_ratio_after >=
@@ -37,7 +37,7 @@ declare class PoolProxyContract {
37
37
  * @param {PlaceMarginLimitOrderParams} params Parameters for placing a reduce only limit order
38
38
  * @returns A function that takes a Transaction object
39
39
  */
40
- placeReduceOnlyLimitOrder: (params: PlaceMarginLimitOrderParams) => (tx: Transaction) => _mysten_sui_transactions335.TransactionResult;
40
+ placeReduceOnlyLimitOrder: (params: PlaceMarginLimitOrderParams) => (tx: Transaction) => _mysten_sui_transactions93.TransactionResult;
41
41
  /**
42
42
  * @description Place a reduce only market order. Requires the manager to
43
43
  * have debt on the relevant side; enforces a monotonic `risk_ratio_after >=
@@ -46,7 +46,7 @@ declare class PoolProxyContract {
46
46
  * @param {PlaceMarginMarketOrderParams} params Parameters for placing a reduce only market order
47
47
  * @returns A function that takes a Transaction object
48
48
  */
49
- placeReduceOnlyMarketOrder: (params: PlaceMarginMarketOrderParams) => (tx: Transaction) => _mysten_sui_transactions335.TransactionResult;
49
+ placeReduceOnlyMarketOrder: (params: PlaceMarginMarketOrderParams) => (tx: Transaction) => _mysten_sui_transactions93.TransactionResult;
50
50
  /**
51
51
  * @description Place a market order and repay the loan from the fill proceeds.
52
52
  * The taker fill settles into the manager's balance, so the proceeds (plus any
@@ -58,7 +58,7 @@ declare class PoolProxyContract {
58
58
  * @param {PlaceMarginMarketOrderParams} params Parameters for placing a market order
59
59
  * @returns A function that takes a Transaction object
60
60
  */
61
- placeMarketOrderAndRepayLoan: (params: PlaceMarginMarketOrderParams) => (tx: Transaction) => _mysten_sui_transactions335.TransactionResult;
61
+ placeMarketOrderAndRepayLoan: (params: PlaceMarginMarketOrderParams) => (tx: Transaction) => _mysten_sui_transactions93.TransactionResult;
62
62
  /**
63
63
  * @description Place a reduce only limit order and repay the loan from the
64
64
  * fill proceeds. Requires debt on the relevant side (a bid needs base debt; an
@@ -68,7 +68,7 @@ declare class PoolProxyContract {
68
68
  * @param {PlaceMarginLimitOrderParams} params Parameters for placing a reduce only limit order
69
69
  * @returns A function that takes a Transaction object
70
70
  */
71
- placeReduceOnlyLimitOrderAndRepayLoan: (params: PlaceMarginLimitOrderParams) => (tx: Transaction) => _mysten_sui_transactions335.TransactionResult;
71
+ placeReduceOnlyLimitOrderAndRepayLoan: (params: PlaceMarginLimitOrderParams) => (tx: Transaction) => _mysten_sui_transactions93.TransactionResult;
72
72
  /**
73
73
  * @description Place a reduce only market order and repay the loan from the
74
74
  * fill proceeds. Same reduce-only direction guard as
@@ -78,7 +78,7 @@ declare class PoolProxyContract {
78
78
  * @param {PlaceMarginMarketOrderParams} params Parameters for placing a reduce only market order
79
79
  * @returns A function that takes a Transaction object
80
80
  */
81
- placeReduceOnlyMarketOrderAndRepayLoan: (params: PlaceMarginMarketOrderParams) => (tx: Transaction) => _mysten_sui_transactions335.TransactionResult;
81
+ placeReduceOnlyMarketOrderAndRepayLoan: (params: PlaceMarginMarketOrderParams) => (tx: Transaction) => _mysten_sui_transactions93.TransactionResult;
82
82
  /**
83
83
  * @description Modify an existing order
84
84
  * @param {string} marginManagerKey The key to identify the MarginManager
@@ -1 +1 @@
1
- {"version":3,"file":"poolProxy.d.mts","names":[],"sources":["../../src/transactions/poolProxy.ts"],"mappings":";;;;;;;;;cAmBa,iBAAA;EAAA;;;;cAMA,MAAA,EAAQ,cAAA;EAoBuD;;;;;;;EAA3E,eAAA,GAAmB,MAAA,EAAQ,2BAAA,MAAiC,EAAA,EAAI,WAAA,KAAW,2BAAA,CAAA,iBAAA;EA0JC;;;;;;;EArG5E,gBAAA,GAAoB,MAAA,EAAQ,4BAAA,MAAkC,EAAA,EAAI,WAAA,KAAW,2BAAA,CAAA,iBAAA;EAgQnE;;;;;;;;EAjNV,yBAAA,GAA6B,MAAA,EAAQ,2BAAA,MAAiC,EAAA,EAAI,WAAA,KAAW,2BAAA,CAAA,iBAAA;EAsZxC;;;;;;;;EAhW7C,0BAAA,GAA8B,MAAA,EAAQ,4BAAA,MAAkC,EAAA,EAAI,WAAA,KAAW,2BAAA,CAAA,iBAAA;;;;;;;;;;;;EAkDvF,4BAAA,GAAgC,MAAA,EAAQ,4BAAA,MAAkC,EAAA,EAAI,WAAA,KAAW,2BAAA,CAAA,iBAAA;EAvJrE;;;;;;;;;EAuMpB,qCAAA,GACE,MAAA,EAAQ,2BAAA,MAAiC,EAAA,EAAI,WAAA,KAAW,2BAAA,CAAA,iBAAA;EAnG1D;;;;;;;;;EA0JA,sCAAA,GACE,MAAA,EAAQ,4BAAA,MAAkC,EAAA,EAAI,WAAA,KAAW,2BAAA,CAAA,iBAAA;EAzGe;;;;;;;EAuJ1E,WAAA,GACE,gBAAA,UAA0B,OAAA,UAAiB,WAAA,cAAyB,EAAA,EAAI,WAAA;EAhD1E;;;;;;EA4EA,WAAA,GAAe,gBAAA,UAA0B,OAAA,cAAqB,EAAA,EAAI,WAAA;EA5BhE;;;;;;EAqDF,YAAA,GAAgB,gBAAA,UAA0B,QAAA,gBAAwB,EAAA,EAAI,WAAA;EAzB7B;;;;;EAiDzC,eAAA,GAAmB,gBAAA,cAA8B,EAAA,EAAI,WAAA;EAxBiB;;;;;EA+CtE,sBAAA,GAA0B,gBAAA,cAA8B,EAAA,EAAI,WAAA;EAA5D;;;;;;EAwBA,KAAA,GAAS,gBAAA,UAA0B,WAAA,cAAyB,EAAA,EAAI,WAAA;EAAA;;;;;EA0BhE,OAAA,GAAW,gBAAA,cAA8B,EAAA,EAAI,WAAA;EAwB7C;;;;;;EAAA,cAAA,GACE,gBAAA,UAA0B,MAAA,EAAQ,oBAAA,MAA0B,EAAA,EAAI,WAAA;EA+B1D;;;;;;EAAR,IAAA,GAAQ,gBAAA,UAA0B,UAAA,cAAwB,EAAA,EAAI,WAAA;EAwBjB;;;;;EAA7C,WAAA,GAAe,gBAAA,cAA8B,EAAA,EAAI,WAAA;EA+CjD;;;;;;EAvBA,4BAAA,GACE,OAAA,UAAiB,eAAA,cAA6B,EAAA,EAAI,WAAA;;;;;;EAsBpD,kBAAA,GAAsB,OAAA,cAAqB,EAAA,EAAI,WAAA;AAAA"}
1
+ {"version":3,"file":"poolProxy.d.mts","names":[],"sources":["../../src/transactions/poolProxy.ts"],"mappings":";;;;;;;;;cAmBa,iBAAA;EAAA;;;;cAMA,MAAA,EAAQ,cAAA;EAoBuD;;;;;;;EAA3E,eAAA,GAAmB,MAAA,EAAQ,2BAAA,MAAiC,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EA0JC;;;;;;;EArG5E,gBAAA,GAAoB,MAAA,EAAQ,4BAAA,MAAkC,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAgQnE;;;;;;;;EAjNV,yBAAA,GAA6B,MAAA,EAAQ,2BAAA,MAAiC,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAsZxC;;;;;;;;EAhW7C,0BAAA,GAA8B,MAAA,EAAQ,4BAAA,MAAkC,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;;;;;;;;;;;;EAkDvF,4BAAA,GAAgC,MAAA,EAAQ,4BAAA,MAAkC,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAvJrE;;;;;;;;;EAuMpB,qCAAA,GACE,MAAA,EAAQ,2BAAA,MAAiC,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAnG1D;;;;;;;;;EA0JA,sCAAA,GACE,MAAA,EAAQ,4BAAA,MAAkC,EAAA,EAAI,WAAA,KAAW,0BAAA,CAAA,iBAAA;EAzGe;;;;;;;EAuJ1E,WAAA,GACE,gBAAA,UAA0B,OAAA,UAAiB,WAAA,cAAyB,EAAA,EAAI,WAAA;EAhD1E;;;;;;EA4EA,WAAA,GAAe,gBAAA,UAA0B,OAAA,cAAqB,EAAA,EAAI,WAAA;EA5BhE;;;;;;EAqDF,YAAA,GAAgB,gBAAA,UAA0B,QAAA,gBAAwB,EAAA,EAAI,WAAA;EAzB7B;;;;;EAiDzC,eAAA,GAAmB,gBAAA,cAA8B,EAAA,EAAI,WAAA;EAxBiB;;;;;EA+CtE,sBAAA,GAA0B,gBAAA,cAA8B,EAAA,EAAI,WAAA;EAA5D;;;;;;EAwBA,KAAA,GAAS,gBAAA,UAA0B,WAAA,cAAyB,EAAA,EAAI,WAAA;EAAA;;;;;EA0BhE,OAAA,GAAW,gBAAA,cAA8B,EAAA,EAAI,WAAA;EAwB7C;;;;;;EAAA,cAAA,GACE,gBAAA,UAA0B,MAAA,EAAQ,oBAAA,MAA0B,EAAA,EAAI,WAAA;EA+B1D;;;;;;EAAR,IAAA,GAAQ,gBAAA,UAA0B,UAAA,cAAwB,EAAA,EAAI,WAAA;EAwBjB;;;;;EAA7C,WAAA,GAAe,gBAAA,cAA8B,EAAA,EAAI,WAAA;EA+CjD;;;;;;EAvBA,4BAAA,GACE,OAAA,UAAiB,eAAA,cAA6B,EAAA,EAAI,WAAA;;;;;;EAsBpD,kBAAA,GAAsB,OAAA,cAAqB,EAAA,EAAI,WAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.mts","names":[],"sources":["../../src/utils/constants.ts"],"mappings":";;;KAKY,OAAA,GAAU,MAAA,SAAe,IAAA;AAAA,KACzB,OAAA,GAAU,MAAA,SAAe,IAAA;AAAA,KACzB,aAAA,GAAgB,MAAA,SAAe,UAAA;AAAA,UAC1B,kBAAA;EAChB,mBAAA;EACA,WAAA;EACA,gBAAA;EACA,iBAAA;EACA,SAAA;EACA,kBAAA;EACA,sBAAA;AAAA;AAAA,cAGY,iBAAA;;;;;;;;;cAYA,iBAAA;;;;;;;;;AAZb;;;;;;;;;;;;;AAAA,cAuCa,YAAA,EAAc,OAAA;AAAA,cAiDd,YAAA,EAAc,OAAA;AAAA,cA+Id,YAAA,EAAc,OAAA;AAAA,cAsCd,YAAA,EAAc,OAAA;AAAA,cA2Hd,kBAAA;;;;;;;;;;;;;;;;;;cAmBA,kBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA+BA,kBAAA;EAGS,WAAA;EAAA,eAAA;AAAA;AAAA,cAET,kBAAA;EAGS,WAAA;EAAA,eAAA;AAAA;;;;;;cAOT,oBAAA;;;;;;;;;;;;cAaA,qBAAA"}
1
+ {"version":3,"file":"constants.d.mts","names":[],"sources":["../../src/utils/constants.ts"],"mappings":";;;KAKY,OAAA,GAAU,MAAA,SAAe,IAAA;AAAA,KACzB,OAAA,GAAU,MAAA,SAAe,IAAA;AAAA,KACzB,aAAA,GAAgB,MAAA,SAAe,UAAA;AAAA,UAC1B,kBAAA;EAChB,mBAAA;EACA,WAAA;EACA,gBAAA;EACA,iBAAA;EACA,SAAA;EACA,kBAAA;EACA,sBAAA;AAAA;AAAA,cAGY,iBAAA;;;;;;;;;cAcA,iBAAA;;;;;;;;;AAdb;;;;;;;;;;;;;AAAA,cA2Ca,YAAA,EAAc,OAAA;AAAA,cAiDd,YAAA,EAAc,OAAA;AAAA,cAqJd,YAAA,EAAc,OAAA;AAAA,cAsCd,YAAA,EAAc,OAAA;AAAA,cAgId,kBAAA;;;;;;;;;;;;;;;;;;cAmBA,kBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA+BA,kBAAA;EAGS,WAAA;EAAA,eAAA;AAAA;AAAA,cAET,kBAAA;EAGS,WAAA;EAAA,eAAA;AAAA;;;;;;cAOT,oBAAA;;;;;;;;;;;;cAaA,qBAAA"}
@@ -1,18 +1,18 @@
1
1
  //#region src/utils/constants.ts
2
2
  const testnetPackageIds = {
3
- DEEPBOOK_PACKAGE_ID: "0xd874d2417a55bfa6479bffa06ad950fea144ef93a94cc6c49f32b03e386bbb24",
3
+ DEEPBOOK_PACKAGE_ID: "0x4b1c2a827983d8fa73f6dc366cfab23636ae52e81e499d8724b71408fe6a00a4",
4
4
  REGISTRY_ID: "0x7c256edbda983a2cd6f946655f4bf3f00a41043993781f8674a7046e8c0e11d1",
5
5
  DEEP_TREASURY_ID: "0x69fffdae0075f8f71f4fa793549c11079266910e8905169845af1f5d00e09dcb",
6
- MARGIN_PACKAGE_ID: "0xce6ab6290458f597fc078793335f4b1d98479f29ebc02198ae960e9401d0c72f",
6
+ MARGIN_PACKAGE_ID: "0x0ad965f35189c7eca57d4718c8f5bf1b7f9f7eb4ced6d5b7aa6496a16d71e8d2",
7
7
  MARGIN_V1: "0xb8620c24c9ea1a4a41e79613d2b3d1d93648d1bb6f6b789a7c8f261c94110e4b",
8
8
  MARGIN_REGISTRY_ID: "0x48d7640dfae2c6e9ceeada197a7a1643984b5a24c55a0c6c023dac77e0339f75",
9
9
  LIQUIDATION_PACKAGE_ID: "0x29bccec5261b7d040555a13e98bbc6bef7bad007d62759aac8b71c19916f6476"
10
10
  };
11
11
  const mainnetPackageIds = {
12
- DEEPBOOK_PACKAGE_ID: "0x0e735f8c93a95722efd73521aca7a7652c0bb71ed1daf41b26dfd7d1ff71f748",
12
+ DEEPBOOK_PACKAGE_ID: "0xbca0cefe720330e7bb4f2283438b68de6a0e656688db4ac90d61e71fe6151fe8",
13
13
  REGISTRY_ID: "0xaf16199a2dff736e9f07a845f23c5da6df6f756eddb631aed9d24a93efc4549d",
14
14
  DEEP_TREASURY_ID: "0x032abf8948dda67a271bcc18e776dbbcfb0d58c8d288a700ff0d5521e57a1ffe",
15
- MARGIN_PACKAGE_ID: "0x55ee8099674e46266df2bf0ffed9569e1511aa269f2a9b8c63a2c72f16404e72",
15
+ MARGIN_PACKAGE_ID: "0x40fa183b5602cd0f6c4d7b16c08766ad8d7d581608fbe3b2570fe72ab4f5625f",
16
16
  MARGIN_V1: "0x97d9473771b01f77b0940c589484184b49f6444627ec121314fae6a6d36fb86b",
17
17
  MARGIN_REGISTRY_ID: "0x0e40998b359a9ccbab22a98ed21bd4346abf19158bc7980c8291908086b3a742",
18
18
  LIQUIDATION_PACKAGE_ID: "0xba2b39c026650fef52038c93c526fc5314a4286318a0d2a7054b65815178fb74"
@@ -200,6 +200,11 @@ const mainnetCoins = {
200
200
  address: `0x375f70cf2ae4c00bf37117d0c85a2c71545e6ee05c4a5c7d282cd66a4504b068`,
201
201
  type: `0x375f70cf2ae4c00bf37117d0c85a2c71545e6ee05c4a5c7d282cd66a4504b068::usdt::USDT`,
202
202
  scalar: 1e6
203
+ },
204
+ HBTC: {
205
+ address: `0xd30fb3f8914efdbeb7b8e85fae1d65dc584b44a1281f66737b92bb9f03a59d06`,
206
+ type: `0xd30fb3f8914efdbeb7b8e85fae1d65dc584b44a1281f66737b92bb9f03a59d06::btc::BTC`,
207
+ scalar: 1e8
203
208
  }
204
209
  };
205
210
  const testnetPools = {
@@ -359,6 +364,11 @@ const mainnetPools = {
359
364
  address: "0xa374264d43e6baa5aa8b35ff18ff24fdba7443b4bcb884cb4c2f568d32cdac36",
360
365
  baseCoin: "USDSUI",
361
366
  quoteCoin: "USDC"
367
+ },
368
+ HBTC_USDC: {
369
+ address: "0x61368ab907934d7840d2e639b7fc2ee74785ffe3d46427d70e1ab8545f320c9b",
370
+ baseCoin: "HBTC",
371
+ quoteCoin: "USDC"
362
372
  }
363
373
  };
364
374
  const testnetMarginPools = {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","names":[],"sources":["../../src/utils/constants.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Coin, Pool, MarginPool, PythConfig } from '../types/index.js';\n\nexport type CoinMap = Record<string, Coin>;\nexport type PoolMap = Record<string, Pool>;\nexport type MarginPoolMap = Record<string, MarginPool>;\nexport interface DeepbookPackageIds {\n\tDEEPBOOK_PACKAGE_ID?: string;\n\tREGISTRY_ID?: string;\n\tDEEP_TREASURY_ID?: string;\n\tMARGIN_PACKAGE_ID?: string;\n\tMARGIN_V1?: string;\n\tMARGIN_REGISTRY_ID?: string;\n\tLIQUIDATION_PACKAGE_ID?: string;\n}\n\nexport const testnetPackageIds = {\n\tDEEPBOOK_PACKAGE_ID: '0xd874d2417a55bfa6479bffa06ad950fea144ef93a94cc6c49f32b03e386bbb24',\n\tREGISTRY_ID: '0x7c256edbda983a2cd6f946655f4bf3f00a41043993781f8674a7046e8c0e11d1',\n\tDEEP_TREASURY_ID: '0x69fffdae0075f8f71f4fa793549c11079266910e8905169845af1f5d00e09dcb',\n\t// deepbook_margin v16 — the first testnet package carrying the upgraded-Pyth modules.\n\tMARGIN_PACKAGE_ID: '0xce6ab6290458f597fc078793335f4b1d98479f29ebc02198ae960e9401d0c72f',\n\tMARGIN_V1: '0xb8620c24c9ea1a4a41e79613d2b3d1d93648d1bb6f6b789a7c8f261c94110e4b',\n\tMARGIN_REGISTRY_ID: '0x48d7640dfae2c6e9ceeada197a7a1643984b5a24c55a0c6c023dac77e0339f75',\n\t// margin_liquidation v4 — carries liquidate_base_upgraded / liquidate_quote_upgraded.\n\tLIQUIDATION_PACKAGE_ID: '0x29bccec5261b7d040555a13e98bbc6bef7bad007d62759aac8b71c19916f6476',\n} satisfies DeepbookPackageIds;\n\nexport const mainnetPackageIds = {\n\tDEEPBOOK_PACKAGE_ID: '0x0e735f8c93a95722efd73521aca7a7652c0bb71ed1daf41b26dfd7d1ff71f748',\n\tREGISTRY_ID: '0xaf16199a2dff736e9f07a845f23c5da6df6f756eddb631aed9d24a93efc4549d',\n\tDEEP_TREASURY_ID: '0x032abf8948dda67a271bcc18e776dbbcfb0d58c8d288a700ff0d5521e57a1ffe',\n\t// deepbook_margin v7 — the first mainnet package carrying the upgraded-Pyth modules.\n\t// Its gate constant is `MARGIN_VERSION = 7`, and every entrypoint asserts the registry\n\t// allows that version, so this id only works once `enable_version(7)` has run on the\n\t// mainnet MarginRegistry. Until then v7 flows abort `EPackageVersionDisabled`.\n\tMARGIN_PACKAGE_ID: '0x55ee8099674e46266df2bf0ffed9569e1511aa269f2a9b8c63a2c72f16404e72',\n\tMARGIN_V1: '0x97d9473771b01f77b0940c589484184b49f6444627ec121314fae6a6d36fb86b',\n\tMARGIN_REGISTRY_ID: '0x0e40998b359a9ccbab22a98ed21bd4346abf19158bc7980c8291908086b3a742',\n\tLIQUIDATION_PACKAGE_ID: '0xba2b39c026650fef52038c93c526fc5314a4286318a0d2a7054b65815178fb74',\n} satisfies DeepbookPackageIds;\n\n/**\n * Feed ids and price objects on Pyth's upgraded Core, the only deployment this SDK targets.\n *\n * The testnet `MarginRegistry` was migrated (2026-08-11) off Pyth's beta feed ids and onto\n * the ids upgraded testnet Core carries, which are the mainnet-style ids — the beta ids\n * have no upgraded price objects and the upgraded Hermes does not serve them.\n *\n * DBTC is testnet's wrapped BTC and takes Crypto.XBTC/USD — the same feed mainnet XBTC\n * uses. The upgraded deployment carries no distinct DBTC feed. Plain Crypto.BTC/USD is\n * NOT an accepted substitute for either: XBTC is a distinct asset with its own peg and\n * redemption risk, so pricing it off BTC would misstate collateral in exactly the stress\n * where the two diverge.\n */\nexport const testnetCoins: CoinMap = {\n\tDEEP: {\n\t\taddress: `0x36dbef866a1d62bf7328989a10fb2f07d769f4ee587c0de4a0a256e57e0a58a8`,\n\t\ttype: `0x36dbef866a1d62bf7328989a10fb2f07d769f4ee587c0de4a0a256e57e0a58a8::deep::DEEP`,\n\t\tscalar: 1000000,\n\t\tfeed: '0x29bdd5248234e33bd93d3b81100b5fa32eaa5997843847e2c2cb16d7c6d9f7ff',\n\t\tcurrencyId: '0xbf1b77e244f649c736a44898585cc8ac939fbb0bbdf1d8d2a183978cc312e613',\n\t\tpriceInfoObjectId: '0x27882b43c2cc62bbd8fb5f4ebc20be004b14454b2c98755033f5446d35474339',\n\t},\n\tSUI: {\n\t\taddress: `0x0000000000000000000000000000000000000000000000000000000000000002`,\n\t\ttype: `0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI`,\n\t\tscalar: 1000000000,\n\t\tfeed: '0x23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744',\n\t\tcurrencyId: '0xf256d3fb6a50eaa748d94335b34f2982fbc3b63ceec78cafaa29ebc9ebaf2bbc',\n\t\tpriceInfoObjectId: '0x867877562b5d8ac262d93b02062e04b428a2f9bfbb2f05b8af52e04cd98bd241',\n\t},\n\tDBUSDC: {\n\t\taddress: `0xf7152c05930480cd740d7311b5b8b45c6f488e3a53a11c3f74a6fac36a52e0d7`,\n\t\ttype: `0xf7152c05930480cd740d7311b5b8b45c6f488e3a53a11c3f74a6fac36a52e0d7::DBUSDC::DBUSDC`,\n\t\tscalar: 1000000,\n\t\tfeed: '0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a',\n\t\tcurrencyId: '0x509db0f9283c9ee4fdc5b99028a439d3639f49e9709e3d7a6de14b3bfdb0c784',\n\t\tpriceInfoObjectId: '0x17de8d80e8efedfd1053c46fb921e51824479ed32c6aded5f7279995bb84db05',\n\t},\n\tDBTC: {\n\t\taddress: `0x6502dae813dbe5e42643c119a6450a518481f03063febc7e20238e43b6ea9e86`,\n\t\ttype: `0x6502dae813dbe5e42643c119a6450a518481f03063febc7e20238e43b6ea9e86::dbtc::DBTC`,\n\t\tscalar: 100000000,\n\t\t// Crypto.XBTC/USD — DBTC is testnet's wrapped BTC, so it takes the same feed mainnet\n\t\t// XBTC does. Never plain BTC/USD: that is a different asset, and standing it in\n\t\t// would misprice DBTC collateral whenever XBTC's peg moves. Object created on\n\t\t// upgraded testnet Core 2026-08-11.\n\t\tfeed: '0xae8f269ed9c4bed616c99a98cf6dfe562bd3202e7f91821a471ff854713851b4',\n\t\tcurrencyId: '0x3ef2afa2126704bf721b9c8495d94288f6bd090fc454fe3e1613eb765a8a348f',\n\t\tpriceInfoObjectId: '0x88387b85b9a53c4365219aee4d77e62213877f110eb859d8e03812a5bea0d1f7',\n\t},\n\tDBUSDT: {\n\t\taddress: `0xf7152c05930480cd740d7311b5b8b45c6f488e3a53a11c3f74a6fac36a52e0d7`,\n\t\ttype: `0xf7152c05930480cd740d7311b5b8b45c6f488e3a53a11c3f74a6fac36a52e0d7::DBUSDT::DBUSDT`,\n\t\tscalar: 1000000,\n\t},\n\tWAL: {\n\t\taddress: `0x9ef7676a9f81937a52ae4b2af8d511a28a0b080477c0c2db40b0ab8882240d76`,\n\t\ttype: `0x9ef7676a9f81937a52ae4b2af8d511a28a0b080477c0c2db40b0ab8882240d76::wal::WAL`,\n\t\tscalar: 1000000000,\n\t},\n};\n\nexport const mainnetCoins: CoinMap = {\n\tDEEP: {\n\t\taddress: `0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270`,\n\t\ttype: `0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP`,\n\t\tscalar: 1000000,\n\t\tfeed: '0x29bdd5248234e33bd93d3b81100b5fa32eaa5997843847e2c2cb16d7c6d9f7ff',\n\t\tcurrencyId: '0x3f2afb7c5f245870a8b8a3808e6dd7042446a0e7504e9d2795372da053858cd9',\n\t\tpriceInfoObjectId: '0x562957f70afaf8a0870e2959abc3e3f327a8159f803d8c56cff27ac2df260477',\n\t},\n\tSUI: {\n\t\taddress: `0x0000000000000000000000000000000000000000000000000000000000000002`,\n\t\ttype: `0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI`,\n\t\tscalar: 1000000000,\n\t\tfeed: '0x23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744',\n\t\tcurrencyId: '0xf256d3fb6a50eaa748d94335b34f2982fbc3b63ceec78cafaa29ebc9ebaf2bbc',\n\t\tpriceInfoObjectId: '0x89b2add829cb6fcd017153fff428bc9faec4d06d643ecfc435af5b55a9e987f0',\n\t},\n\tUSDC: {\n\t\taddress: `0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7`,\n\t\ttype: `0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC`,\n\t\tscalar: 1000000,\n\t\tfeed: '0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a',\n\t\tcurrencyId: '0x75cfbbf8c962d542e99a1d15731e6069f60a00db895407785b15d14f606f2b4a',\n\t\tpriceInfoObjectId: '0x6ddfc6f9921e55998cbc2e68f78eba897981d79ac17f66c5277bc38954a2a3f8',\n\t},\n\tWAL: {\n\t\taddress: `0x356a26eb9e012a68958082340d4c4116e7f55615cf27affcff209cf0ae544f59`,\n\t\ttype: `0x356a26eb9e012a68958082340d4c4116e7f55615cf27affcff209cf0ae544f59::wal::WAL`,\n\t\tscalar: 1000000000,\n\t\tfeed: '0xeba0732395fae9dec4bae12e52760b35fc1c5671e2da8b449c9af4efe5d54341',\n\t\tcurrencyId: '0xb6a0c0bacb1c87c3be4dff20c22ef1012125b5724b5b0ff424f852a2651b23fa',\n\t\tpriceInfoObjectId: '0xdbea8600eeeb0399df58c28e73b8201ae880a954813131d33bfa6902ccdadd24',\n\t},\n\tSUIUSDE: {\n\t\taddress: `0x41d587e5336f1c86cad50d38a7136db99333bb9bda91cea4ba69115defeb1402`,\n\t\ttype: `0x41d587e5336f1c86cad50d38a7136db99333bb9bda91cea4ba69115defeb1402::sui_usde::SUI_USDE`,\n\t\tscalar: 1000000,\n\t\tfeed: '0x8cead549d0e770dea8fdf5e018a85d59585265cf8bff16ba83962fc7996dbb7f',\n\t\tcurrencyId: '0x44f0959110bd9e5e91af0483364c42075ac19f173b28f708989f419ef3560576',\n\t\tpriceInfoObjectId: '0xa8023b552578bd5036be60d3132306882469d1871cb4bec3099c47dece08c4cd',\n\t},\n\tXBTC: {\n\t\taddress: `0x876a4b7bce8aeaef60464c11f4026903e9afacab79b9b142686158aa86560b50`,\n\t\ttype: `0x876a4b7bce8aeaef60464c11f4026903e9afacab79b9b142686158aa86560b50::xbtc::XBTC`,\n\t\tscalar: 100000000,\n\t\t// Crypto.XBTC/USD, always. XBTC must never be priced off Crypto.BTC/USD\n\t\t// (`0xe62df6c8…`): it is a distinct asset carrying its own peg and redemption risk,\n\t\t// so a BTC substitute misstates collateral precisely when the two diverge. This\n\t\t// holds regardless of XBTC's wider confidence band — that is a bound to set on the\n\t\t// registry's `max_conf_bps`, not a reason to price a different asset.\n\t\tfeed: '0xae8f269ed9c4bed616c99a98cf6dfe562bd3202e7f91821a471ff854713851b4',\n\t\tcurrencyId: '0x907bb173bffab7c57bbd3350a633aa32c8770937b496d7d88874087b59200bcc',\n\t\t// Created 2026-08-17 (tx `3SbNisBM…ePnSx`) — XBTC is absent from Pyth's Sui push-feed\n\t\t// list, so they never maintained an object for it here; ours is kept fresh by our own\n\t\t// price pusher, as on legacy Core. Creation is permissionless, so no admin action was\n\t\t// involved. Verified: registered in the upgraded price table and updatable.\n\t\tpriceInfoObjectId: '0x4f7ff4518b4cf33b162d76e70632d8f0a6e04441a058a138959d7a2384cffe60',\n\t},\n\tUSDSUI: {\n\t\taddress: `0x44f838219cf67b058f3b37907b655f226153c18e33dfcd0da559a844fea9b1c1`,\n\t\ttype: `0x44f838219cf67b058f3b37907b655f226153c18e33dfcd0da559a844fea9b1c1::usdsui::USDSUI`,\n\t\tscalar: 1000000,\n\t\t// Valid Pyth data, but margin cannot price USDSUI: the mainnet MarginRegistry's\n\t\t// PythConfig configures six currencies and USDSUI is not among them (read on chain\n\t\t// 2026-08-11), so an oracle-taking call aborts in the registry's currency lookup\n\t\t// before the feed id is ever compared. Lending is unaffected — margin_pool supply\n\t\t// and withdraw take no oracle — and no USDSUI DeepBook pool is margin-registered.\n\t\tfeed: '0xd510fcdb3a63f35d3bb118d5db3afc5815a3f13bc55d48abb893b63f0315902a',\n\t\tcurrencyId: '0x535e826a2acddab687c81cb6c6166553b479f61a9023800ec0020baba8d94731',\n\t\tpriceInfoObjectId: '0x6896ccc8c08a84e47f0ab8affbd3fce2623a72c76f9092e59f8f6ece450119cd',\n\t},\n\tWUSDC: {\n\t\taddress: `0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf`,\n\t\ttype: `0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN`,\n\t\tscalar: 1000000,\n\t},\n\tWETH: {\n\t\taddress: `0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5`,\n\t\ttype: `0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5::coin::COIN`,\n\t\tscalar: 100000000,\n\t},\n\tBETH: {\n\t\taddress: `0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29`,\n\t\ttype: `0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29::eth::ETH`,\n\t\tscalar: 100000000,\n\t},\n\tWBTC: {\n\t\taddress: `0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881`,\n\t\ttype: `0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881::coin::COIN`,\n\t\tscalar: 100000000,\n\t},\n\tWUSDT: {\n\t\taddress: `0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c`,\n\t\ttype: `0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c::coin::COIN`,\n\t\tscalar: 1000000,\n\t},\n\tNS: {\n\t\taddress: `0x5145494a5f5100e645e4b0aa950fa6b68f614e8c59e17bc5ded3495123a79178`,\n\t\ttype: `0x5145494a5f5100e645e4b0aa950fa6b68f614e8c59e17bc5ded3495123a79178::ns::NS`,\n\t\tscalar: 1000000,\n\t},\n\tTYPUS: {\n\t\taddress: `0xf82dc05634970553615eef6112a1ac4fb7bf10272bf6cbe0f80ef44a6c489385`,\n\t\ttype: `0xf82dc05634970553615eef6112a1ac4fb7bf10272bf6cbe0f80ef44a6c489385::typus::TYPUS`,\n\t\tscalar: 1000000000,\n\t},\n\tAUSD: {\n\t\taddress: `0x2053d08c1e2bd02791056171aab0fd12bd7cd7efad2ab8f6b9c8902f14df2ff2`,\n\t\ttype: `0x2053d08c1e2bd02791056171aab0fd12bd7cd7efad2ab8f6b9c8902f14df2ff2::ausd::AUSD`,\n\t\tscalar: 1000000,\n\t},\n\tDRF: {\n\t\taddress: `0x294de7579d55c110a00a7c4946e09a1b5cbeca2592fbb83fd7bfacba3cfeaf0e`,\n\t\ttype: `0x294de7579d55c110a00a7c4946e09a1b5cbeca2592fbb83fd7bfacba3cfeaf0e::drf::DRF`,\n\t\tscalar: 1000000,\n\t},\n\tSEND: {\n\t\taddress: `0xb45fcfcc2cc07ce0702cc2d229621e046c906ef14d9b25e8e4d25f6e8763fef7`,\n\t\ttype: `0xb45fcfcc2cc07ce0702cc2d229621e046c906ef14d9b25e8e4d25f6e8763fef7::send::SEND`,\n\t\tscalar: 1000000,\n\t},\n\tIKA: {\n\t\taddress: `0x7262fb2f7a3a14c888c438a3cd9b912469a58cf60f367352c46584262e8299aa`,\n\t\ttype: `0x7262fb2f7a3a14c888c438a3cd9b912469a58cf60f367352c46584262e8299aa::ika::IKA`,\n\t\tscalar: 1000000000,\n\t},\n\tALKIMI: {\n\t\taddress: `0x1a8f4bc33f8ef7fbc851f156857aa65d397a6a6fd27a7ac2ca717b51f2fd9489`,\n\t\ttype: `0x1a8f4bc33f8ef7fbc851f156857aa65d397a6a6fd27a7ac2ca717b51f2fd9489::alkimi::ALKIMI`,\n\t\tscalar: 1000000000,\n\t},\n\tLZWBTC: {\n\t\taddress: `0x0041f9f9344cac094454cd574e333c4fdb132d7bcc9379bcd4aab485b2a63942`,\n\t\ttype: `0x0041f9f9344cac094454cd574e333c4fdb132d7bcc9379bcd4aab485b2a63942::wbtc::WBTC`,\n\t\tscalar: 100000000,\n\t},\n\tUSDT: {\n\t\taddress: `0x375f70cf2ae4c00bf37117d0c85a2c71545e6ee05c4a5c7d282cd66a4504b068`,\n\t\ttype: `0x375f70cf2ae4c00bf37117d0c85a2c71545e6ee05c4a5c7d282cd66a4504b068::usdt::USDT`,\n\t\tscalar: 1000000,\n\t},\n};\n\nexport const testnetPools: PoolMap = {\n\tDEEP_SUI: {\n\t\taddress: `0x48c95963e9eac37a316b7ae04a0deb761bcdcc2b67912374d6036e7f0e9bae9f`,\n\t\tbaseCoin: 'DEEP',\n\t\tquoteCoin: 'SUI',\n\t},\n\tSUI_DBUSDC: {\n\t\taddress: `0x1c19362ca52b8ffd7a33cee805a67d40f31e6ba303753fd3a4cfdfacea7163a5`,\n\t\tbaseCoin: 'SUI',\n\t\tquoteCoin: 'DBUSDC',\n\t},\n\tDEEP_DBUSDC: {\n\t\taddress: `0xe86b991f8632217505fd859445f9803967ac84a9d4a1219065bf191fcb74b622`,\n\t\tbaseCoin: 'DEEP',\n\t\tquoteCoin: 'DBUSDC',\n\t},\n\tDBUSDT_DBUSDC: {\n\t\taddress: `0x83970bb02e3636efdff8c141ab06af5e3c9a22e2f74d7f02a9c3430d0d10c1ca`,\n\t\tbaseCoin: 'DBUSDT',\n\t\tquoteCoin: 'DBUSDC',\n\t},\n\tWAL_DBUSDC: {\n\t\taddress: `0xeb524b6aea0ec4b494878582e0b78924208339d360b62aec4a8ecd4031520dbb`,\n\t\tbaseCoin: 'WAL',\n\t\tquoteCoin: 'DBUSDC',\n\t},\n\tWAL_SUI: {\n\t\taddress: `0x8c1c1b186c4fddab1ebd53e0895a36c1d1b3b9a77cd34e607bef49a38af0150a`,\n\t\tbaseCoin: 'WAL',\n\t\tquoteCoin: 'SUI',\n\t},\n\tDBTC_DBUSDC: {\n\t\taddress: `0x0dce0aa771074eb83d1f4a29d48be8248d4d2190976a5241f66b43ec18fa34de`,\n\t\tbaseCoin: 'DBTC',\n\t\tquoteCoin: 'DBUSDC',\n\t},\n};\n\nexport const mainnetPools: PoolMap = {\n\tDEEP_SUI: {\n\t\taddress: `0xb663828d6217467c8a1838a03793da896cbe745b150ebd57d82f814ca579fc22`,\n\t\tbaseCoin: 'DEEP',\n\t\tquoteCoin: 'SUI',\n\t},\n\tSUI_USDC: {\n\t\taddress: `0xe05dafb5133bcffb8d59f4e12465dc0e9faeaa05e3e342a08fe135800e3e4407`,\n\t\tbaseCoin: 'SUI',\n\t\tquoteCoin: 'USDC',\n\t},\n\tDEEP_USDC: {\n\t\taddress: `0xf948981b806057580f91622417534f491da5f61aeaf33d0ed8e69fd5691c95ce`,\n\t\tbaseCoin: 'DEEP',\n\t\tquoteCoin: 'USDC',\n\t},\n\tWUSDT_USDC: {\n\t\taddress: `0x4e2ca3988246e1d50b9bf209abb9c1cbfec65bd95afdacc620a36c67bdb8452f`,\n\t\tbaseCoin: 'WUSDT',\n\t\tquoteCoin: 'USDC',\n\t},\n\tWUSDC_USDC: {\n\t\taddress: `0xa0b9ebefb38c963fd115f52d71fa64501b79d1adcb5270563f92ce0442376545`,\n\t\tbaseCoin: 'WUSDC',\n\t\tquoteCoin: 'USDC',\n\t},\n\tBETH_USDC: {\n\t\taddress: `0x1109352b9112717bd2a7c3eb9a416fff1ba6951760f5bdd5424cf5e4e5b3e65c`,\n\t\tbaseCoin: 'BETH',\n\t\tquoteCoin: 'USDC',\n\t},\n\tNS_USDC: {\n\t\taddress: `0x0c0fdd4008740d81a8a7d4281322aee71a1b62c449eb5b142656753d89ebc060`,\n\t\tbaseCoin: 'NS',\n\t\tquoteCoin: 'USDC',\n\t},\n\tNS_SUI: {\n\t\taddress: `0x27c4fdb3b846aa3ae4a65ef5127a309aa3c1f466671471a806d8912a18b253e8`,\n\t\tbaseCoin: 'NS',\n\t\tquoteCoin: 'SUI',\n\t},\n\tTYPUS_SUI: {\n\t\taddress: `0xe8e56f377ab5a261449b92ac42c8ddaacd5671e9fec2179d7933dd1a91200eec`,\n\t\tbaseCoin: 'TYPUS',\n\t\tquoteCoin: 'SUI',\n\t},\n\tSUI_AUSD: {\n\t\taddress: `0x183df694ebc852a5f90a959f0f563b82ac9691e42357e9a9fe961d71a1b809c8`,\n\t\tbaseCoin: 'SUI',\n\t\tquoteCoin: 'AUSD',\n\t},\n\tAUSD_USDC: {\n\t\taddress: `0x5661fc7f88fbeb8cb881150a810758cf13700bb4e1f31274a244581b37c303c3`,\n\t\tbaseCoin: 'AUSD',\n\t\tquoteCoin: 'USDC',\n\t},\n\tDRF_SUI: {\n\t\taddress: `0x126865a0197d6ab44bfd15fd052da6db92fd2eb831ff9663451bbfa1219e2af2`,\n\t\tbaseCoin: 'DRF',\n\t\tquoteCoin: 'SUI',\n\t},\n\tSEND_USDC: {\n\t\taddress: `0x1fe7b99c28ded39774f37327b509d58e2be7fff94899c06d22b407496a6fa990`,\n\t\tbaseCoin: 'SEND',\n\t\tquoteCoin: 'USDC',\n\t},\n\tWAL_USDC: {\n\t\taddress: `0x56a1c985c1f1123181d6b881714793689321ba24301b3585eec427436eb1c76d`,\n\t\tbaseCoin: 'WAL',\n\t\tquoteCoin: 'USDC',\n\t},\n\tWAL_SUI: {\n\t\taddress: `0x81f5339934c83ea19dd6bcc75c52e83509629a5f71d3257428c2ce47cc94d08b`,\n\t\tbaseCoin: 'WAL',\n\t\tquoteCoin: 'SUI',\n\t},\n\tXBTC_USDC: {\n\t\taddress: `0x20b9a3ec7a02d4f344aa1ebc5774b7b0ccafa9a5d76230662fdc0300bb215307`,\n\t\tbaseCoin: 'XBTC',\n\t\tquoteCoin: 'USDC',\n\t},\n\tIKA_USDC: {\n\t\taddress: `0xfa732993af2b60d04d7049511f801e79426b2b6a5103e22769c0cead982b0f47`,\n\t\tbaseCoin: 'IKA',\n\t\tquoteCoin: 'USDC',\n\t},\n\tALKIMI_SUI: {\n\t\taddress: `0x84752993c6dc6fce70e25ddeb4daddb6592d6b9b0912a0a91c07cfff5a721d89`,\n\t\tbaseCoin: 'ALKIMI',\n\t\tquoteCoin: 'SUI',\n\t},\n\tLZWBTC_USDC: {\n\t\taddress: `0xf5142aafa24866107df628bf92d0358c7da6acc46c2f10951690fd2b8570f117`,\n\t\tbaseCoin: 'LZWBTC',\n\t\tquoteCoin: 'USDC',\n\t},\n\tUSDT_USDC: {\n\t\taddress: '0xfc28a2fb22579c16d672a1152039cbf671e5f4b9f103feddff4ea06ef3c2bc25',\n\t\tbaseCoin: 'USDT',\n\t\tquoteCoin: 'USDC',\n\t},\n\tSUIUSDE_USDC: {\n\t\taddress: '0x0fac1cebf35bde899cd9ecdd4371e0e33f44ba83b8a2902d69186646afa3a94b',\n\t\tbaseCoin: 'SUIUSDE',\n\t\tquoteCoin: 'USDC',\n\t},\n\tSUI_SUIUSDE: {\n\t\taddress: '0x034f3a42e7348de2084406db7a725f9d9d132a56c68324713e6e623601fb4fd7',\n\t\tbaseCoin: 'SUI',\n\t\tquoteCoin: 'SUIUSDE',\n\t},\n\tSUI_USDSUI: {\n\t\taddress: '0x826eeacb2799726334aa580396338891205a41cf9344655e526aae6ddd5dc03f',\n\t\tbaseCoin: 'SUI',\n\t\tquoteCoin: 'USDSUI',\n\t},\n\tUSDSUI_USDC: {\n\t\taddress: '0xa374264d43e6baa5aa8b35ff18ff24fdba7443b4bcb884cb4c2f568d32cdac36',\n\t\tbaseCoin: 'USDSUI',\n\t\tquoteCoin: 'USDC',\n\t},\n};\n\nexport const testnetMarginPools = {\n\tSUI: {\n\t\taddress: '0xcdbbe6a72e639b647296788e2e4b1cac5cea4246028ba388ba1332ff9a382eea',\n\t\ttype: '0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI',\n\t},\n\tDBUSDC: {\n\t\taddress: '0xf08568da93834e1ee04f09902ac7b1e78d3fdf113ab4d2106c7265e95318b14d',\n\t\ttype: '0xf7152c05930480cd740d7311b5b8b45c6f488e3a53a11c3f74a6fac36a52e0d7::DBUSDC::DBUSDC',\n\t},\n\tDEEP: {\n\t\taddress: '0x610640613f21d9e688d6f8103d17df22315c32e0c80590ce64951a1991378b55',\n\t\ttype: '0x36dbef866a1d62bf7328989a10fb2f07d769f4ee587c0de4a0a256e57e0a58a8::deep::DEEP',\n\t},\n\tDBTC: {\n\t\taddress: '0xf3440b4aafcc8b12fc4b242e9590c52873b8238a0d0e52fbf9dae61d2970796a',\n\t\ttype: '0x6502dae813dbe5e42643c119a6450a518481f03063febc7e20238e43b6ea9e86::dbtc::DBTC',\n\t},\n};\n\nexport const mainnetMarginPools = {\n\tSUI: {\n\t\taddress: '0x53041c6f86c4782aabbfc1d4fe234a6d37160310c7ee740c915f0a01b7127344',\n\t\ttype: '0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI',\n\t},\n\tUSDC: {\n\t\taddress: '0xba473d9ae278f10af75c50a8fa341e9c6a1c087dc91a3f23e8048baf67d0754f',\n\t\ttype: '0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC',\n\t},\n\tDEEP: {\n\t\taddress: '0x1d723c5cd113296868b55208f2ab5a905184950dd59c48eb7345607d6b5e6af7',\n\t\ttype: '0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP',\n\t},\n\tWAL: {\n\t\taddress: '0x38decd3dbb62bd4723144349bf57bc403b393aee86a51596846a824a1e0c2c01',\n\t\ttype: '0x356a26eb9e012a68958082340d4c4116e7f55615cf27affcff209cf0ae544f59::wal::WAL',\n\t},\n\tSUIUSDE: {\n\t\taddress: '0xbb990ca04a7743e6c0a25a7fb16f60fc6f6d8bf213624ff03a63f1bb04c3a12f',\n\t\ttype: '0x41d587e5336f1c86cad50d38a7136db99333bb9bda91cea4ba69115defeb1402::sui_usde::SUI_USDE',\n\t},\n\tXBTC: {\n\t\taddress: '0x14dfbf54400e0b97e892349310d392bef6d187c2b6709d9b246b8f41c9a13de4',\n\t\ttype: '0x876a4b7bce8aeaef60464c11f4026903e9afacab79b9b142686158aa86560b50::xbtc::XBTC',\n\t},\n\tUSDSUI: {\n\t\taddress: '0x78a0ddd02745d9b500fb7e9aae2ff8b665d974f00fd1f6060d59f4a8e891402c',\n\t\ttype: '0x44f838219cf67b058f3b37907b655f226153c18e33dfcd0da559a844fea9b1c1::usdsui::USDSUI',\n\t},\n};\n\nexport const testnetPythConfigs = {\n\tpythStateId: '0x3c48fe392912de6c18087a2b3f5fdbfbfdb4598e180947feff1f12f8e9ea073e',\n\twormholeStateId: '0x750da8e6d16b6a363a39fe2eaa8295ac224a1e6fce4e47b58845e2e8746164f0',\n} satisfies PythConfig;\n\nexport const mainnetPythConfigs = {\n\tpythStateId: '0x03719fae774ddab3cfcaa53bbc046f0cbe21410019b6280811bf3f9f4b05839d',\n\twormholeStateId: '0xdbca52b9fb4f712e25f61f974586d93ac541bcf8389564f0323bb07215168b5c',\n} satisfies PythConfig;\n\n/**\n * Hermes serving Pyth's upgraded Core. Requires an `Authorization: Bearer <token>` header\n * and answers 401 without one. Note that from the Core cutover this also becomes true of\n * legacy Hermes, so an unauthenticated price push has no long-term path.\n */\nexport const PYTH_UPGRADED_HERMES = 'https://pyth.dourolabs.app/hermes';\n\n/**\n * DeepBook-operated Hermes proxy: forwards to {@link PYTH_UPGRADED_HERMES} supplying\n * credentials server-side, so consumers without their own Pyth plan can still push price\n * updates. Used only when no `accessToken` is configured — bring your own token and the\n * SDK talks to Pyth directly, with no DeepBook infrastructure in the path.\n *\n * `undefined` until the proxy is deployed. It must stay `undefined` rather than a\n * placeholder URL: it is the default endpoint whenever a consumer supplies no credentials,\n * so a non-resolving value here surfaces as an opaque `Invalid URL`/DNS error from inside\n * axios instead of a configuration error naming the field to set.\n */\nexport const DEEPBOOK_HERMES_PROXY: string | undefined = undefined;\n"],"mappings":";AAkBA,MAAa,oBAAoB;CAChC,qBAAqB;CACrB,aAAa;CACb,kBAAkB;CAElB,mBAAmB;CACnB,WAAW;CACX,oBAAoB;CAEpB,wBAAwB;CACxB;AAED,MAAa,oBAAoB;CAChC,qBAAqB;CACrB,aAAa;CACb,kBAAkB;CAKlB,mBAAmB;CACnB,WAAW;CACX,oBAAoB;CACpB,wBAAwB;CACxB;;;;;;;;;;;;;;AAeD,MAAa,eAAwB;CACpC,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,KAAK;EACJ,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,QAAQ;EACP,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EAKR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,QAAQ;EACP,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,KAAK;EACJ,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD;AAED,MAAa,eAAwB;CACpC,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,KAAK;EACJ,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,KAAK;EACJ,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,SAAS;EACR,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EAMR,MAAM;EACN,YAAY;EAKZ,mBAAmB;EACnB;CACD,QAAQ;EACP,SAAS;EACT,MAAM;EACN,QAAQ;EAMR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,OAAO;EACN,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,OAAO;EACN,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,IAAI;EACH,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,OAAO;EACN,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,KAAK;EACJ,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,KAAK;EACJ,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,QAAQ;EACP,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,QAAQ;EACP,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD;AAED,MAAa,eAAwB;CACpC,UAAU;EACT,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,YAAY;EACX,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,aAAa;EACZ,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,eAAe;EACd,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,YAAY;EACX,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,SAAS;EACR,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,aAAa;EACZ,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD;AAED,MAAa,eAAwB;CACpC,UAAU;EACT,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,UAAU;EACT,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,WAAW;EACV,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,YAAY;EACX,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,YAAY;EACX,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,WAAW;EACV,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,SAAS;EACR,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,QAAQ;EACP,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,WAAW;EACV,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,UAAU;EACT,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,WAAW;EACV,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,SAAS;EACR,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,WAAW;EACV,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,UAAU;EACT,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,SAAS;EACR,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,WAAW;EACV,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,UAAU;EACT,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,YAAY;EACX,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,aAAa;EACZ,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,WAAW;EACV,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,cAAc;EACb,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,aAAa;EACZ,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,YAAY;EACX,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,aAAa;EACZ,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD;AAED,MAAa,qBAAqB;CACjC,KAAK;EACJ,SAAS;EACT,MAAM;EACN;CACD,QAAQ;EACP,SAAS;EACT,MAAM;EACN;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN;CACD;AAED,MAAa,qBAAqB;CACjC,KAAK;EACJ,SAAS;EACT,MAAM;EACN;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN;CACD,KAAK;EACJ,SAAS;EACT,MAAM;EACN;CACD,SAAS;EACR,SAAS;EACT,MAAM;EACN;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN;CACD,QAAQ;EACP,SAAS;EACT,MAAM;EACN;CACD;AAED,MAAa,qBAAqB;CACjC,aAAa;CACb,iBAAiB;CACjB;AAED,MAAa,qBAAqB;CACjC,aAAa;CACb,iBAAiB;CACjB;;;;;;AAOD,MAAa,uBAAuB;;;;;;;;;;;;AAapC,MAAa,wBAA4C"}
1
+ {"version":3,"file":"constants.mjs","names":[],"sources":["../../src/utils/constants.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Coin, Pool, MarginPool, PythConfig } from '../types/index.js';\n\nexport type CoinMap = Record<string, Coin>;\nexport type PoolMap = Record<string, Pool>;\nexport type MarginPoolMap = Record<string, MarginPool>;\nexport interface DeepbookPackageIds {\n\tDEEPBOOK_PACKAGE_ID?: string;\n\tREGISTRY_ID?: string;\n\tDEEP_TREASURY_ID?: string;\n\tMARGIN_PACKAGE_ID?: string;\n\tMARGIN_V1?: string;\n\tMARGIN_REGISTRY_ID?: string;\n\tLIQUIDATION_PACKAGE_ID?: string;\n}\n\nexport const testnetPackageIds = {\n\t// deepbook core v21, kept in step with MARGIN_PACKAGE_ID (see the mainnet ids below).\n\tDEEPBOOK_PACKAGE_ID: '0x4b1c2a827983d8fa73f6dc366cfab23636ae52e81e499d8724b71408fe6a00a4',\n\tREGISTRY_ID: '0x7c256edbda983a2cd6f946655f4bf3f00a41043993781f8674a7046e8c0e11d1',\n\tDEEP_TREASURY_ID: '0x69fffdae0075f8f71f4fa793549c11079266910e8905169845af1f5d00e09dcb',\n\t// deepbook_margin v17, linked to core v21 — the same source as mainnet margin v8\n\t// (`MARGIN_VERSION = 8`, legacy-Pyth entrypoints retired).\n\tMARGIN_PACKAGE_ID: '0x0ad965f35189c7eca57d4718c8f5bf1b7f9f7eb4ced6d5b7aa6496a16d71e8d2',\n\tMARGIN_V1: '0xb8620c24c9ea1a4a41e79613d2b3d1d93648d1bb6f6b789a7c8f261c94110e4b',\n\tMARGIN_REGISTRY_ID: '0x48d7640dfae2c6e9ceeada197a7a1643984b5a24c55a0c6c023dac77e0339f75',\n\t// margin_liquidation v4 — carries liquidate_base_upgraded / liquidate_quote_upgraded.\n\tLIQUIDATION_PACKAGE_ID: '0x29bccec5261b7d040555a13e98bbc6bef7bad007d62759aac8b71c19916f6476',\n} satisfies DeepbookPackageIds;\n\nexport const mainnetPackageIds = {\n\t// deepbook core v9. Keep it in step with MARGIN_PACKAGE_ID: margin v8 links core v9, and a\n\t// transaction that calls core v8 directly next to margin v8 fails with `InvalidLinkage`.\n\tDEEPBOOK_PACKAGE_ID: '0xbca0cefe720330e7bb4f2283438b68de6a0e656688db4ac90d61e71fe6151fe8',\n\tREGISTRY_ID: '0xaf16199a2dff736e9f07a845f23c5da6df6f756eddb631aed9d24a93efc4549d',\n\tDEEP_TREASURY_ID: '0x032abf8948dda67a271bcc18e776dbbcfb0d58c8d288a700ff0d5521e57a1ffe',\n\t// deepbook_margin v8, linked to core v9. Its gate constant is `MARGIN_VERSION = 8`, which the\n\t// upgrade transaction enabled on the mainnet MarginRegistry. v8 retires the legacy-Pyth\n\t// entrypoints in the base modules (they abort `EDeprecatedUseUpgradedPyth`); every\n\t// oracle-taking builder here already targets the `_upgraded` modules.\n\tMARGIN_PACKAGE_ID: '0x40fa183b5602cd0f6c4d7b16c08766ad8d7d581608fbe3b2570fe72ab4f5625f',\n\tMARGIN_V1: '0x97d9473771b01f77b0940c589484184b49f6444627ec121314fae6a6d36fb86b',\n\tMARGIN_REGISTRY_ID: '0x0e40998b359a9ccbab22a98ed21bd4346abf19158bc7980c8291908086b3a742',\n\tLIQUIDATION_PACKAGE_ID: '0xba2b39c026650fef52038c93c526fc5314a4286318a0d2a7054b65815178fb74',\n} satisfies DeepbookPackageIds;\n\n/**\n * Feed ids and price objects on Pyth's upgraded Core, the only deployment this SDK targets.\n *\n * The testnet `MarginRegistry` was migrated (2026-08-11) off Pyth's beta feed ids and onto\n * the ids upgraded testnet Core carries, which are the mainnet-style ids — the beta ids\n * have no upgraded price objects and the upgraded Hermes does not serve them.\n *\n * DBTC is testnet's wrapped BTC and takes Crypto.XBTC/USD — the same feed mainnet XBTC\n * uses. The upgraded deployment carries no distinct DBTC feed. Plain Crypto.BTC/USD is\n * NOT an accepted substitute for either: XBTC is a distinct asset with its own peg and\n * redemption risk, so pricing it off BTC would misstate collateral in exactly the stress\n * where the two diverge.\n */\nexport const testnetCoins: CoinMap = {\n\tDEEP: {\n\t\taddress: `0x36dbef866a1d62bf7328989a10fb2f07d769f4ee587c0de4a0a256e57e0a58a8`,\n\t\ttype: `0x36dbef866a1d62bf7328989a10fb2f07d769f4ee587c0de4a0a256e57e0a58a8::deep::DEEP`,\n\t\tscalar: 1000000,\n\t\tfeed: '0x29bdd5248234e33bd93d3b81100b5fa32eaa5997843847e2c2cb16d7c6d9f7ff',\n\t\tcurrencyId: '0xbf1b77e244f649c736a44898585cc8ac939fbb0bbdf1d8d2a183978cc312e613',\n\t\tpriceInfoObjectId: '0x27882b43c2cc62bbd8fb5f4ebc20be004b14454b2c98755033f5446d35474339',\n\t},\n\tSUI: {\n\t\taddress: `0x0000000000000000000000000000000000000000000000000000000000000002`,\n\t\ttype: `0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI`,\n\t\tscalar: 1000000000,\n\t\tfeed: '0x23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744',\n\t\tcurrencyId: '0xf256d3fb6a50eaa748d94335b34f2982fbc3b63ceec78cafaa29ebc9ebaf2bbc',\n\t\tpriceInfoObjectId: '0x867877562b5d8ac262d93b02062e04b428a2f9bfbb2f05b8af52e04cd98bd241',\n\t},\n\tDBUSDC: {\n\t\taddress: `0xf7152c05930480cd740d7311b5b8b45c6f488e3a53a11c3f74a6fac36a52e0d7`,\n\t\ttype: `0xf7152c05930480cd740d7311b5b8b45c6f488e3a53a11c3f74a6fac36a52e0d7::DBUSDC::DBUSDC`,\n\t\tscalar: 1000000,\n\t\tfeed: '0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a',\n\t\tcurrencyId: '0x509db0f9283c9ee4fdc5b99028a439d3639f49e9709e3d7a6de14b3bfdb0c784',\n\t\tpriceInfoObjectId: '0x17de8d80e8efedfd1053c46fb921e51824479ed32c6aded5f7279995bb84db05',\n\t},\n\tDBTC: {\n\t\taddress: `0x6502dae813dbe5e42643c119a6450a518481f03063febc7e20238e43b6ea9e86`,\n\t\ttype: `0x6502dae813dbe5e42643c119a6450a518481f03063febc7e20238e43b6ea9e86::dbtc::DBTC`,\n\t\tscalar: 100000000,\n\t\t// Crypto.XBTC/USD — DBTC is testnet's wrapped BTC, so it takes the same feed mainnet\n\t\t// XBTC does. Never plain BTC/USD: that is a different asset, and standing it in\n\t\t// would misprice DBTC collateral whenever XBTC's peg moves. Object created on\n\t\t// upgraded testnet Core 2026-08-11.\n\t\tfeed: '0xae8f269ed9c4bed616c99a98cf6dfe562bd3202e7f91821a471ff854713851b4',\n\t\tcurrencyId: '0x3ef2afa2126704bf721b9c8495d94288f6bd090fc454fe3e1613eb765a8a348f',\n\t\tpriceInfoObjectId: '0x88387b85b9a53c4365219aee4d77e62213877f110eb859d8e03812a5bea0d1f7',\n\t},\n\tDBUSDT: {\n\t\taddress: `0xf7152c05930480cd740d7311b5b8b45c6f488e3a53a11c3f74a6fac36a52e0d7`,\n\t\ttype: `0xf7152c05930480cd740d7311b5b8b45c6f488e3a53a11c3f74a6fac36a52e0d7::DBUSDT::DBUSDT`,\n\t\tscalar: 1000000,\n\t},\n\tWAL: {\n\t\taddress: `0x9ef7676a9f81937a52ae4b2af8d511a28a0b080477c0c2db40b0ab8882240d76`,\n\t\ttype: `0x9ef7676a9f81937a52ae4b2af8d511a28a0b080477c0c2db40b0ab8882240d76::wal::WAL`,\n\t\tscalar: 1000000000,\n\t},\n};\n\nexport const mainnetCoins: CoinMap = {\n\tDEEP: {\n\t\taddress: `0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270`,\n\t\ttype: `0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP`,\n\t\tscalar: 1000000,\n\t\tfeed: '0x29bdd5248234e33bd93d3b81100b5fa32eaa5997843847e2c2cb16d7c6d9f7ff',\n\t\tcurrencyId: '0x3f2afb7c5f245870a8b8a3808e6dd7042446a0e7504e9d2795372da053858cd9',\n\t\tpriceInfoObjectId: '0x562957f70afaf8a0870e2959abc3e3f327a8159f803d8c56cff27ac2df260477',\n\t},\n\tSUI: {\n\t\taddress: `0x0000000000000000000000000000000000000000000000000000000000000002`,\n\t\ttype: `0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI`,\n\t\tscalar: 1000000000,\n\t\tfeed: '0x23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744',\n\t\tcurrencyId: '0xf256d3fb6a50eaa748d94335b34f2982fbc3b63ceec78cafaa29ebc9ebaf2bbc',\n\t\tpriceInfoObjectId: '0x89b2add829cb6fcd017153fff428bc9faec4d06d643ecfc435af5b55a9e987f0',\n\t},\n\tUSDC: {\n\t\taddress: `0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7`,\n\t\ttype: `0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC`,\n\t\tscalar: 1000000,\n\t\tfeed: '0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a',\n\t\tcurrencyId: '0x75cfbbf8c962d542e99a1d15731e6069f60a00db895407785b15d14f606f2b4a',\n\t\tpriceInfoObjectId: '0x6ddfc6f9921e55998cbc2e68f78eba897981d79ac17f66c5277bc38954a2a3f8',\n\t},\n\tWAL: {\n\t\taddress: `0x356a26eb9e012a68958082340d4c4116e7f55615cf27affcff209cf0ae544f59`,\n\t\ttype: `0x356a26eb9e012a68958082340d4c4116e7f55615cf27affcff209cf0ae544f59::wal::WAL`,\n\t\tscalar: 1000000000,\n\t\tfeed: '0xeba0732395fae9dec4bae12e52760b35fc1c5671e2da8b449c9af4efe5d54341',\n\t\tcurrencyId: '0xb6a0c0bacb1c87c3be4dff20c22ef1012125b5724b5b0ff424f852a2651b23fa',\n\t\tpriceInfoObjectId: '0xdbea8600eeeb0399df58c28e73b8201ae880a954813131d33bfa6902ccdadd24',\n\t},\n\tSUIUSDE: {\n\t\taddress: `0x41d587e5336f1c86cad50d38a7136db99333bb9bda91cea4ba69115defeb1402`,\n\t\ttype: `0x41d587e5336f1c86cad50d38a7136db99333bb9bda91cea4ba69115defeb1402::sui_usde::SUI_USDE`,\n\t\tscalar: 1000000,\n\t\tfeed: '0x8cead549d0e770dea8fdf5e018a85d59585265cf8bff16ba83962fc7996dbb7f',\n\t\tcurrencyId: '0x44f0959110bd9e5e91af0483364c42075ac19f173b28f708989f419ef3560576',\n\t\tpriceInfoObjectId: '0xa8023b552578bd5036be60d3132306882469d1871cb4bec3099c47dece08c4cd',\n\t},\n\tXBTC: {\n\t\taddress: `0x876a4b7bce8aeaef60464c11f4026903e9afacab79b9b142686158aa86560b50`,\n\t\ttype: `0x876a4b7bce8aeaef60464c11f4026903e9afacab79b9b142686158aa86560b50::xbtc::XBTC`,\n\t\tscalar: 100000000,\n\t\t// Crypto.XBTC/USD, always. XBTC must never be priced off Crypto.BTC/USD\n\t\t// (`0xe62df6c8…`): it is a distinct asset carrying its own peg and redemption risk,\n\t\t// so a BTC substitute misstates collateral precisely when the two diverge. This\n\t\t// holds regardless of XBTC's wider confidence band — that is a bound to set on the\n\t\t// registry's `max_conf_bps`, not a reason to price a different asset.\n\t\tfeed: '0xae8f269ed9c4bed616c99a98cf6dfe562bd3202e7f91821a471ff854713851b4',\n\t\tcurrencyId: '0x907bb173bffab7c57bbd3350a633aa32c8770937b496d7d88874087b59200bcc',\n\t\t// Created 2026-08-17 (tx `3SbNisBM…ePnSx`) — XBTC is absent from Pyth's Sui push-feed\n\t\t// list, so they never maintained an object for it here; ours is kept fresh by our own\n\t\t// price pusher, as on legacy Core. Creation is permissionless, so no admin action was\n\t\t// involved. Verified: registered in the upgraded price table and updatable.\n\t\tpriceInfoObjectId: '0x4f7ff4518b4cf33b162d76e70632d8f0a6e04441a058a138959d7a2384cffe60',\n\t},\n\tUSDSUI: {\n\t\taddress: `0x44f838219cf67b058f3b37907b655f226153c18e33dfcd0da559a844fea9b1c1`,\n\t\ttype: `0x44f838219cf67b058f3b37907b655f226153c18e33dfcd0da559a844fea9b1c1::usdsui::USDSUI`,\n\t\tscalar: 1000000,\n\t\t// Valid Pyth data, but margin cannot price USDSUI: the mainnet MarginRegistry's\n\t\t// PythConfig configures six currencies and USDSUI is not among them (read on chain\n\t\t// 2026-08-11), so an oracle-taking call aborts in the registry's currency lookup\n\t\t// before the feed id is ever compared. Lending is unaffected — margin_pool supply\n\t\t// and withdraw take no oracle — and no USDSUI DeepBook pool is margin-registered.\n\t\tfeed: '0xd510fcdb3a63f35d3bb118d5db3afc5815a3f13bc55d48abb893b63f0315902a',\n\t\tcurrencyId: '0x535e826a2acddab687c81cb6c6166553b479f61a9023800ec0020baba8d94731',\n\t\tpriceInfoObjectId: '0x6896ccc8c08a84e47f0ab8affbd3fce2623a72c76f9092e59f8f6ece450119cd',\n\t},\n\tWUSDC: {\n\t\taddress: `0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf`,\n\t\ttype: `0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN`,\n\t\tscalar: 1000000,\n\t},\n\tWETH: {\n\t\taddress: `0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5`,\n\t\ttype: `0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5::coin::COIN`,\n\t\tscalar: 100000000,\n\t},\n\tBETH: {\n\t\taddress: `0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29`,\n\t\ttype: `0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29::eth::ETH`,\n\t\tscalar: 100000000,\n\t},\n\tWBTC: {\n\t\taddress: `0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881`,\n\t\ttype: `0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881::coin::COIN`,\n\t\tscalar: 100000000,\n\t},\n\tWUSDT: {\n\t\taddress: `0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c`,\n\t\ttype: `0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c::coin::COIN`,\n\t\tscalar: 1000000,\n\t},\n\tNS: {\n\t\taddress: `0x5145494a5f5100e645e4b0aa950fa6b68f614e8c59e17bc5ded3495123a79178`,\n\t\ttype: `0x5145494a5f5100e645e4b0aa950fa6b68f614e8c59e17bc5ded3495123a79178::ns::NS`,\n\t\tscalar: 1000000,\n\t},\n\tTYPUS: {\n\t\taddress: `0xf82dc05634970553615eef6112a1ac4fb7bf10272bf6cbe0f80ef44a6c489385`,\n\t\ttype: `0xf82dc05634970553615eef6112a1ac4fb7bf10272bf6cbe0f80ef44a6c489385::typus::TYPUS`,\n\t\tscalar: 1000000000,\n\t},\n\tAUSD: {\n\t\taddress: `0x2053d08c1e2bd02791056171aab0fd12bd7cd7efad2ab8f6b9c8902f14df2ff2`,\n\t\ttype: `0x2053d08c1e2bd02791056171aab0fd12bd7cd7efad2ab8f6b9c8902f14df2ff2::ausd::AUSD`,\n\t\tscalar: 1000000,\n\t},\n\tDRF: {\n\t\taddress: `0x294de7579d55c110a00a7c4946e09a1b5cbeca2592fbb83fd7bfacba3cfeaf0e`,\n\t\ttype: `0x294de7579d55c110a00a7c4946e09a1b5cbeca2592fbb83fd7bfacba3cfeaf0e::drf::DRF`,\n\t\tscalar: 1000000,\n\t},\n\tSEND: {\n\t\taddress: `0xb45fcfcc2cc07ce0702cc2d229621e046c906ef14d9b25e8e4d25f6e8763fef7`,\n\t\ttype: `0xb45fcfcc2cc07ce0702cc2d229621e046c906ef14d9b25e8e4d25f6e8763fef7::send::SEND`,\n\t\tscalar: 1000000,\n\t},\n\tIKA: {\n\t\taddress: `0x7262fb2f7a3a14c888c438a3cd9b912469a58cf60f367352c46584262e8299aa`,\n\t\ttype: `0x7262fb2f7a3a14c888c438a3cd9b912469a58cf60f367352c46584262e8299aa::ika::IKA`,\n\t\tscalar: 1000000000,\n\t},\n\tALKIMI: {\n\t\taddress: `0x1a8f4bc33f8ef7fbc851f156857aa65d397a6a6fd27a7ac2ca717b51f2fd9489`,\n\t\ttype: `0x1a8f4bc33f8ef7fbc851f156857aa65d397a6a6fd27a7ac2ca717b51f2fd9489::alkimi::ALKIMI`,\n\t\tscalar: 1000000000,\n\t},\n\tLZWBTC: {\n\t\taddress: `0x0041f9f9344cac094454cd574e333c4fdb132d7bcc9379bcd4aab485b2a63942`,\n\t\ttype: `0x0041f9f9344cac094454cd574e333c4fdb132d7bcc9379bcd4aab485b2a63942::wbtc::WBTC`,\n\t\tscalar: 100000000,\n\t},\n\tUSDT: {\n\t\taddress: `0x375f70cf2ae4c00bf37117d0c85a2c71545e6ee05c4a5c7d282cd66a4504b068`,\n\t\ttype: `0x375f70cf2ae4c00bf37117d0c85a2c71545e6ee05c4a5c7d282cd66a4504b068::usdt::USDT`,\n\t\tscalar: 1000000,\n\t},\n\t// Hashi BTC (on-chain symbol hBTC).\n\tHBTC: {\n\t\taddress: `0xd30fb3f8914efdbeb7b8e85fae1d65dc584b44a1281f66737b92bb9f03a59d06`,\n\t\ttype: `0xd30fb3f8914efdbeb7b8e85fae1d65dc584b44a1281f66737b92bb9f03a59d06::btc::BTC`,\n\t\tscalar: 100000000,\n\t},\n};\n\nexport const testnetPools: PoolMap = {\n\tDEEP_SUI: {\n\t\taddress: `0x48c95963e9eac37a316b7ae04a0deb761bcdcc2b67912374d6036e7f0e9bae9f`,\n\t\tbaseCoin: 'DEEP',\n\t\tquoteCoin: 'SUI',\n\t},\n\tSUI_DBUSDC: {\n\t\taddress: `0x1c19362ca52b8ffd7a33cee805a67d40f31e6ba303753fd3a4cfdfacea7163a5`,\n\t\tbaseCoin: 'SUI',\n\t\tquoteCoin: 'DBUSDC',\n\t},\n\tDEEP_DBUSDC: {\n\t\taddress: `0xe86b991f8632217505fd859445f9803967ac84a9d4a1219065bf191fcb74b622`,\n\t\tbaseCoin: 'DEEP',\n\t\tquoteCoin: 'DBUSDC',\n\t},\n\tDBUSDT_DBUSDC: {\n\t\taddress: `0x83970bb02e3636efdff8c141ab06af5e3c9a22e2f74d7f02a9c3430d0d10c1ca`,\n\t\tbaseCoin: 'DBUSDT',\n\t\tquoteCoin: 'DBUSDC',\n\t},\n\tWAL_DBUSDC: {\n\t\taddress: `0xeb524b6aea0ec4b494878582e0b78924208339d360b62aec4a8ecd4031520dbb`,\n\t\tbaseCoin: 'WAL',\n\t\tquoteCoin: 'DBUSDC',\n\t},\n\tWAL_SUI: {\n\t\taddress: `0x8c1c1b186c4fddab1ebd53e0895a36c1d1b3b9a77cd34e607bef49a38af0150a`,\n\t\tbaseCoin: 'WAL',\n\t\tquoteCoin: 'SUI',\n\t},\n\tDBTC_DBUSDC: {\n\t\taddress: `0x0dce0aa771074eb83d1f4a29d48be8248d4d2190976a5241f66b43ec18fa34de`,\n\t\tbaseCoin: 'DBTC',\n\t\tquoteCoin: 'DBUSDC',\n\t},\n};\n\nexport const mainnetPools: PoolMap = {\n\tDEEP_SUI: {\n\t\taddress: `0xb663828d6217467c8a1838a03793da896cbe745b150ebd57d82f814ca579fc22`,\n\t\tbaseCoin: 'DEEP',\n\t\tquoteCoin: 'SUI',\n\t},\n\tSUI_USDC: {\n\t\taddress: `0xe05dafb5133bcffb8d59f4e12465dc0e9faeaa05e3e342a08fe135800e3e4407`,\n\t\tbaseCoin: 'SUI',\n\t\tquoteCoin: 'USDC',\n\t},\n\tDEEP_USDC: {\n\t\taddress: `0xf948981b806057580f91622417534f491da5f61aeaf33d0ed8e69fd5691c95ce`,\n\t\tbaseCoin: 'DEEP',\n\t\tquoteCoin: 'USDC',\n\t},\n\tWUSDT_USDC: {\n\t\taddress: `0x4e2ca3988246e1d50b9bf209abb9c1cbfec65bd95afdacc620a36c67bdb8452f`,\n\t\tbaseCoin: 'WUSDT',\n\t\tquoteCoin: 'USDC',\n\t},\n\tWUSDC_USDC: {\n\t\taddress: `0xa0b9ebefb38c963fd115f52d71fa64501b79d1adcb5270563f92ce0442376545`,\n\t\tbaseCoin: 'WUSDC',\n\t\tquoteCoin: 'USDC',\n\t},\n\tBETH_USDC: {\n\t\taddress: `0x1109352b9112717bd2a7c3eb9a416fff1ba6951760f5bdd5424cf5e4e5b3e65c`,\n\t\tbaseCoin: 'BETH',\n\t\tquoteCoin: 'USDC',\n\t},\n\tNS_USDC: {\n\t\taddress: `0x0c0fdd4008740d81a8a7d4281322aee71a1b62c449eb5b142656753d89ebc060`,\n\t\tbaseCoin: 'NS',\n\t\tquoteCoin: 'USDC',\n\t},\n\tNS_SUI: {\n\t\taddress: `0x27c4fdb3b846aa3ae4a65ef5127a309aa3c1f466671471a806d8912a18b253e8`,\n\t\tbaseCoin: 'NS',\n\t\tquoteCoin: 'SUI',\n\t},\n\tTYPUS_SUI: {\n\t\taddress: `0xe8e56f377ab5a261449b92ac42c8ddaacd5671e9fec2179d7933dd1a91200eec`,\n\t\tbaseCoin: 'TYPUS',\n\t\tquoteCoin: 'SUI',\n\t},\n\tSUI_AUSD: {\n\t\taddress: `0x183df694ebc852a5f90a959f0f563b82ac9691e42357e9a9fe961d71a1b809c8`,\n\t\tbaseCoin: 'SUI',\n\t\tquoteCoin: 'AUSD',\n\t},\n\tAUSD_USDC: {\n\t\taddress: `0x5661fc7f88fbeb8cb881150a810758cf13700bb4e1f31274a244581b37c303c3`,\n\t\tbaseCoin: 'AUSD',\n\t\tquoteCoin: 'USDC',\n\t},\n\tDRF_SUI: {\n\t\taddress: `0x126865a0197d6ab44bfd15fd052da6db92fd2eb831ff9663451bbfa1219e2af2`,\n\t\tbaseCoin: 'DRF',\n\t\tquoteCoin: 'SUI',\n\t},\n\tSEND_USDC: {\n\t\taddress: `0x1fe7b99c28ded39774f37327b509d58e2be7fff94899c06d22b407496a6fa990`,\n\t\tbaseCoin: 'SEND',\n\t\tquoteCoin: 'USDC',\n\t},\n\tWAL_USDC: {\n\t\taddress: `0x56a1c985c1f1123181d6b881714793689321ba24301b3585eec427436eb1c76d`,\n\t\tbaseCoin: 'WAL',\n\t\tquoteCoin: 'USDC',\n\t},\n\tWAL_SUI: {\n\t\taddress: `0x81f5339934c83ea19dd6bcc75c52e83509629a5f71d3257428c2ce47cc94d08b`,\n\t\tbaseCoin: 'WAL',\n\t\tquoteCoin: 'SUI',\n\t},\n\tXBTC_USDC: {\n\t\taddress: `0x20b9a3ec7a02d4f344aa1ebc5774b7b0ccafa9a5d76230662fdc0300bb215307`,\n\t\tbaseCoin: 'XBTC',\n\t\tquoteCoin: 'USDC',\n\t},\n\tIKA_USDC: {\n\t\taddress: `0xfa732993af2b60d04d7049511f801e79426b2b6a5103e22769c0cead982b0f47`,\n\t\tbaseCoin: 'IKA',\n\t\tquoteCoin: 'USDC',\n\t},\n\tALKIMI_SUI: {\n\t\taddress: `0x84752993c6dc6fce70e25ddeb4daddb6592d6b9b0912a0a91c07cfff5a721d89`,\n\t\tbaseCoin: 'ALKIMI',\n\t\tquoteCoin: 'SUI',\n\t},\n\tLZWBTC_USDC: {\n\t\taddress: `0xf5142aafa24866107df628bf92d0358c7da6acc46c2f10951690fd2b8570f117`,\n\t\tbaseCoin: 'LZWBTC',\n\t\tquoteCoin: 'USDC',\n\t},\n\tUSDT_USDC: {\n\t\taddress: '0xfc28a2fb22579c16d672a1152039cbf671e5f4b9f103feddff4ea06ef3c2bc25',\n\t\tbaseCoin: 'USDT',\n\t\tquoteCoin: 'USDC',\n\t},\n\tSUIUSDE_USDC: {\n\t\taddress: '0x0fac1cebf35bde899cd9ecdd4371e0e33f44ba83b8a2902d69186646afa3a94b',\n\t\tbaseCoin: 'SUIUSDE',\n\t\tquoteCoin: 'USDC',\n\t},\n\tSUI_SUIUSDE: {\n\t\taddress: '0x034f3a42e7348de2084406db7a725f9d9d132a56c68324713e6e623601fb4fd7',\n\t\tbaseCoin: 'SUI',\n\t\tquoteCoin: 'SUIUSDE',\n\t},\n\tSUI_USDSUI: {\n\t\taddress: '0x826eeacb2799726334aa580396338891205a41cf9344655e526aae6ddd5dc03f',\n\t\tbaseCoin: 'SUI',\n\t\tquoteCoin: 'USDSUI',\n\t},\n\tUSDSUI_USDC: {\n\t\taddress: '0xa374264d43e6baa5aa8b35ff18ff24fdba7443b4bcb884cb4c2f568d32cdac36',\n\t\tbaseCoin: 'USDSUI',\n\t\tquoteCoin: 'USDC',\n\t},\n\tHBTC_USDC: {\n\t\taddress: '0x61368ab907934d7840d2e639b7fc2ee74785ffe3d46427d70e1ab8545f320c9b',\n\t\tbaseCoin: 'HBTC',\n\t\tquoteCoin: 'USDC',\n\t},\n};\n\nexport const testnetMarginPools = {\n\tSUI: {\n\t\taddress: '0xcdbbe6a72e639b647296788e2e4b1cac5cea4246028ba388ba1332ff9a382eea',\n\t\ttype: '0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI',\n\t},\n\tDBUSDC: {\n\t\taddress: '0xf08568da93834e1ee04f09902ac7b1e78d3fdf113ab4d2106c7265e95318b14d',\n\t\ttype: '0xf7152c05930480cd740d7311b5b8b45c6f488e3a53a11c3f74a6fac36a52e0d7::DBUSDC::DBUSDC',\n\t},\n\tDEEP: {\n\t\taddress: '0x610640613f21d9e688d6f8103d17df22315c32e0c80590ce64951a1991378b55',\n\t\ttype: '0x36dbef866a1d62bf7328989a10fb2f07d769f4ee587c0de4a0a256e57e0a58a8::deep::DEEP',\n\t},\n\tDBTC: {\n\t\taddress: '0xf3440b4aafcc8b12fc4b242e9590c52873b8238a0d0e52fbf9dae61d2970796a',\n\t\ttype: '0x6502dae813dbe5e42643c119a6450a518481f03063febc7e20238e43b6ea9e86::dbtc::DBTC',\n\t},\n};\n\nexport const mainnetMarginPools = {\n\tSUI: {\n\t\taddress: '0x53041c6f86c4782aabbfc1d4fe234a6d37160310c7ee740c915f0a01b7127344',\n\t\ttype: '0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI',\n\t},\n\tUSDC: {\n\t\taddress: '0xba473d9ae278f10af75c50a8fa341e9c6a1c087dc91a3f23e8048baf67d0754f',\n\t\ttype: '0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC',\n\t},\n\tDEEP: {\n\t\taddress: '0x1d723c5cd113296868b55208f2ab5a905184950dd59c48eb7345607d6b5e6af7',\n\t\ttype: '0xdeeb7a4662eec9f2f3def03fb937a663dddaa2e215b8078a284d026b7946c270::deep::DEEP',\n\t},\n\tWAL: {\n\t\taddress: '0x38decd3dbb62bd4723144349bf57bc403b393aee86a51596846a824a1e0c2c01',\n\t\ttype: '0x356a26eb9e012a68958082340d4c4116e7f55615cf27affcff209cf0ae544f59::wal::WAL',\n\t},\n\tSUIUSDE: {\n\t\taddress: '0xbb990ca04a7743e6c0a25a7fb16f60fc6f6d8bf213624ff03a63f1bb04c3a12f',\n\t\ttype: '0x41d587e5336f1c86cad50d38a7136db99333bb9bda91cea4ba69115defeb1402::sui_usde::SUI_USDE',\n\t},\n\tXBTC: {\n\t\taddress: '0x14dfbf54400e0b97e892349310d392bef6d187c2b6709d9b246b8f41c9a13de4',\n\t\ttype: '0x876a4b7bce8aeaef60464c11f4026903e9afacab79b9b142686158aa86560b50::xbtc::XBTC',\n\t},\n\tUSDSUI: {\n\t\taddress: '0x78a0ddd02745d9b500fb7e9aae2ff8b665d974f00fd1f6060d59f4a8e891402c',\n\t\ttype: '0x44f838219cf67b058f3b37907b655f226153c18e33dfcd0da559a844fea9b1c1::usdsui::USDSUI',\n\t},\n};\n\nexport const testnetPythConfigs = {\n\tpythStateId: '0x3c48fe392912de6c18087a2b3f5fdbfbfdb4598e180947feff1f12f8e9ea073e',\n\twormholeStateId: '0x750da8e6d16b6a363a39fe2eaa8295ac224a1e6fce4e47b58845e2e8746164f0',\n} satisfies PythConfig;\n\nexport const mainnetPythConfigs = {\n\tpythStateId: '0x03719fae774ddab3cfcaa53bbc046f0cbe21410019b6280811bf3f9f4b05839d',\n\twormholeStateId: '0xdbca52b9fb4f712e25f61f974586d93ac541bcf8389564f0323bb07215168b5c',\n} satisfies PythConfig;\n\n/**\n * Hermes serving Pyth's upgraded Core. Requires an `Authorization: Bearer <token>` header\n * and answers 401 without one. Note that from the Core cutover this also becomes true of\n * legacy Hermes, so an unauthenticated price push has no long-term path.\n */\nexport const PYTH_UPGRADED_HERMES = 'https://pyth.dourolabs.app/hermes';\n\n/**\n * DeepBook-operated Hermes proxy: forwards to {@link PYTH_UPGRADED_HERMES} supplying\n * credentials server-side, so consumers without their own Pyth plan can still push price\n * updates. Used only when no `accessToken` is configured — bring your own token and the\n * SDK talks to Pyth directly, with no DeepBook infrastructure in the path.\n *\n * `undefined` until the proxy is deployed. It must stay `undefined` rather than a\n * placeholder URL: it is the default endpoint whenever a consumer supplies no credentials,\n * so a non-resolving value here surfaces as an opaque `Invalid URL`/DNS error from inside\n * axios instead of a configuration error naming the field to set.\n */\nexport const DEEPBOOK_HERMES_PROXY: string | undefined = undefined;\n"],"mappings":";AAkBA,MAAa,oBAAoB;CAEhC,qBAAqB;CACrB,aAAa;CACb,kBAAkB;CAGlB,mBAAmB;CACnB,WAAW;CACX,oBAAoB;CAEpB,wBAAwB;CACxB;AAED,MAAa,oBAAoB;CAGhC,qBAAqB;CACrB,aAAa;CACb,kBAAkB;CAKlB,mBAAmB;CACnB,WAAW;CACX,oBAAoB;CACpB,wBAAwB;CACxB;;;;;;;;;;;;;;AAeD,MAAa,eAAwB;CACpC,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,KAAK;EACJ,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,QAAQ;EACP,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EAKR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,QAAQ;EACP,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,KAAK;EACJ,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD;AAED,MAAa,eAAwB;CACpC,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,KAAK;EACJ,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,KAAK;EACJ,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,SAAS;EACR,SAAS;EACT,MAAM;EACN,QAAQ;EACR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EAMR,MAAM;EACN,YAAY;EAKZ,mBAAmB;EACnB;CACD,QAAQ;EACP,SAAS;EACT,MAAM;EACN,QAAQ;EAMR,MAAM;EACN,YAAY;EACZ,mBAAmB;EACnB;CACD,OAAO;EACN,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,OAAO;EACN,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,IAAI;EACH,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,OAAO;EACN,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,KAAK;EACJ,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,KAAK;EACJ,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,QAAQ;EACP,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,QAAQ;EACP,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CAED,MAAM;EACL,SAAS;EACT,MAAM;EACN,QAAQ;EACR;CACD;AAED,MAAa,eAAwB;CACpC,UAAU;EACT,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,YAAY;EACX,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,aAAa;EACZ,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,eAAe;EACd,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,YAAY;EACX,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,SAAS;EACR,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,aAAa;EACZ,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD;AAED,MAAa,eAAwB;CACpC,UAAU;EACT,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,UAAU;EACT,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,WAAW;EACV,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,YAAY;EACX,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,YAAY;EACX,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,WAAW;EACV,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,SAAS;EACR,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,QAAQ;EACP,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,WAAW;EACV,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,UAAU;EACT,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,WAAW;EACV,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,SAAS;EACR,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,WAAW;EACV,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,UAAU;EACT,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,SAAS;EACR,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,WAAW;EACV,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,UAAU;EACT,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,YAAY;EACX,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,aAAa;EACZ,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,WAAW;EACV,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,cAAc;EACb,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,aAAa;EACZ,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,YAAY;EACX,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,aAAa;EACZ,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD,WAAW;EACV,SAAS;EACT,UAAU;EACV,WAAW;EACX;CACD;AAED,MAAa,qBAAqB;CACjC,KAAK;EACJ,SAAS;EACT,MAAM;EACN;CACD,QAAQ;EACP,SAAS;EACT,MAAM;EACN;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN;CACD;AAED,MAAa,qBAAqB;CACjC,KAAK;EACJ,SAAS;EACT,MAAM;EACN;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN;CACD,KAAK;EACJ,SAAS;EACT,MAAM;EACN;CACD,SAAS;EACR,SAAS;EACT,MAAM;EACN;CACD,MAAM;EACL,SAAS;EACT,MAAM;EACN;CACD,QAAQ;EACP,SAAS;EACT,MAAM;EACN;CACD;AAED,MAAa,qBAAqB;CACjC,aAAa;CACb,iBAAiB;CACjB;AAED,MAAa,qBAAqB;CACjC,aAAa;CACb,iBAAiB;CACjB;;;;;;AAOD,MAAa,uBAAuB;;;;;;;;;;;;AAapC,MAAa,wBAA4C"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@mysten/deepbook-v3",
3
3
  "author": "Mysten Labs <build@mystenlabs.com>",
4
4
  "description": "Sui Deepbook SDK",
5
- "version": "2.8.2",
5
+ "version": "2.9.1",
6
6
  "license": "Apache-2.0",
7
7
  "type": "module",
8
8
  "sideEffects": false,
@@ -153,6 +153,14 @@ export const CadenceConfigUpdated = new MoveStruct({
153
153
  window_size: U64,
154
154
  },
155
155
  });
156
+ export const CadenceAdded = new MoveStruct({
157
+ name: `${$moduleName}::CadenceAdded`,
158
+ fields: {
159
+ registry_id: bcs.Address,
160
+ cadence_id: bcs.u8(),
161
+ period_ms: U64,
162
+ },
163
+ });
156
164
  export const ExpiryMarketMintPausedUpdated = new MoveStruct({
157
165
  name: `${$moduleName}::ExpiryMarketMintPausedUpdated`,
158
166
  fields: {
@@ -5,9 +5,11 @@
5
5
  /**
6
6
  * Market identity and deployment cadence manager for Predict.
7
7
  *
8
- * `Registry` owns this state and delegates market admission to it. Fixed cadence
9
- * IDs, periods, and rank order are upgrade-required. Underlying rows, cadence
10
- * deployment terms, and per-underlying watermarks are stored here.
8
+ * `Registry` owns this state and delegates market admission to it. Cadence periods
9
+ * live in the registry's admin-extended cadence table and are passed in, indexed
10
+ * by cadence ID; underlying rows, cadence deployment terms, and per-underlying
11
+ * watermarks are stored here. When two enabled cadences can create the same
12
+ * expiry, the one with the longer period owns it.
11
13
  */
12
14
 
13
15
  import { MoveStruct, normalizeMoveArguments } from '../utils/index.js';
@@ -66,9 +68,13 @@ export const DeployableMarket = new MoveStruct({
66
68
  export const UnderlyingMarketConfig = new MoveStruct({
67
69
  name: `${$moduleName}::UnderlyingMarketConfig`,
68
70
  fields: {
69
- /** Deployment config indexed by cadence ID. */
71
+ /**
72
+ * Deployment config indexed by cadence ID. Rows past its length are disabled; the
73
+ * vector grows past the six built-ins only when an added cadence is set or
74
+ * created, because package versions before the cadence table abort on longer rows.
75
+ */
70
76
  cadences: bcs.vector(CadenceConfig),
71
- /** Highest deployed expiry timestamp indexed by cadence ID. */
77
+ /** Highest deployed expiry timestamp indexed by cadence ID; missing rows are 0. */
72
78
  last_deployed_expiries: bcs.vector(U64),
73
79
  },
74
80
  });
@@ -14,6 +14,7 @@
14
14
 
15
15
  import {
16
16
  MoveStruct,
17
+ MoveTuple,
17
18
  normalizeMoveArguments,
18
19
  type RawTransactionArgument,
19
20
  type ConfigValue,
@@ -49,6 +50,10 @@ export const Registry = new MoveStruct({
49
50
  allowed_pool_valuation_caps: vec_set.VecSet(bcs.Address),
50
51
  },
51
52
  });
53
+ export const CadencePeriodsKey = new MoveTuple({
54
+ name: `${$moduleName}::CadencePeriodsKey`,
55
+ fields: [bcs.bool()],
56
+ });
52
57
  export interface IdArguments {
53
58
  registry?: RawTransactionArgument<string>;
54
59
  }
@@ -165,9 +170,9 @@ export interface CadenceConfigsOptions {
165
170
  * Return one underlying's complete deployment policy as a single coherent
166
171
  * snapshot, for off-chain consumers (SDK and devInspect cadence discovery by the
167
172
  * keeper, price updater, and dashboard) that would otherwise need one read per
168
- * cadence. The vector holds one entry per supported cadence, indexed by cadence
169
- * ID; disabled cadences are present as their all-zero configuration. Aborts if the
170
- * underlying is not registered.
173
+ * cadence. The vector holds one entry per cadence in `cadence_periods`, indexed by
174
+ * cadence ID; disabled cadences are present as their all-zero configuration.
175
+ * Aborts if the underlying is not registered.
171
176
  */
172
177
  export function cadenceConfigs(options: CadenceConfigsOptions) {
173
178
  const packageAddress =
@@ -189,6 +194,43 @@ export function cadenceConfigs(options: CadenceConfigsOptions) {
189
194
  ),
190
195
  });
191
196
  }
197
+ export interface CadencePeriodsArguments {
198
+ registry?: RawTransactionArgument<string>;
199
+ }
200
+ export interface CadencePeriodsOptions {
201
+ package?: string;
202
+ arguments?: CadencePeriodsArguments;
203
+ config?: {
204
+ registry: ConfigValue;
205
+ predictPackageId?: string;
206
+ };
207
+ }
208
+ /**
209
+ * Return every cadence's period in milliseconds, indexed by cadence ID, for
210
+ * devInspect cadence discovery by the keeper, price collector, and dashboard. The
211
+ * table starts with the six built-in cadences and grows through `add_cadence`;
212
+ * read it in the same transaction as `cadence_configs` for a consistent pair.
213
+ */
214
+ export function cadencePeriods(options: CadencePeriodsOptions) {
215
+ const packageAddress =
216
+ options.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';
217
+ const argumentsTypes = [null] satisfies (string | null)[];
218
+ const parameterNames = ['registry'];
219
+ return (tx: Transaction) =>
220
+ tx.moveCall({
221
+ package: packageAddress,
222
+ module: 'registry',
223
+ function: 'cadence_periods',
224
+ arguments: normalizeMoveArguments(
225
+ {
226
+ ...options.arguments,
227
+ registry: options.arguments?.registry ?? options.config?.registry,
228
+ },
229
+ argumentsTypes,
230
+ parameterNames,
231
+ ),
232
+ });
233
+ }
192
234
  export interface MintPauseCapArguments {
193
235
  registry?: RawTransactionArgument<string>;
194
236
  AdminCap: RawTransactionArgument<string>;
@@ -592,6 +634,49 @@ export function registerUnderlying(options: RegisterUnderlyingOptions) {
592
634
  ),
593
635
  });
594
636
  }
637
+ export interface AddCadenceArguments {
638
+ registry?: RawTransactionArgument<string>;
639
+ config?: RawTransactionArgument<string>;
640
+ AdminCap: RawTransactionArgument<string>;
641
+ periodMs: RawTransactionArgument<number | bigint>;
642
+ }
643
+ export interface AddCadenceOptions {
644
+ package?: string;
645
+ arguments: AddCadenceArguments;
646
+ config?: {
647
+ registry: ConfigValue;
648
+ protocolConfig: ConfigValue;
649
+ predictPackageId?: string;
650
+ };
651
+ }
652
+ /**
653
+ * Append a cadence with period `period_ms` to the cadence table and return its ID.
654
+ * The period is a whole number of minutes, at most one year, and not already in
655
+ * the table, which holds at most 16 cadences. A new cadence is disabled on every
656
+ * underlying until `set_template_cadence_config` sets its terms; periods never
657
+ * change, so retire a cadence by disabling it.
658
+ */
659
+ export function addCadence(options: AddCadenceOptions) {
660
+ const packageAddress =
661
+ options.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';
662
+ const argumentsTypes = [null, null, null, 'u64'] satisfies (string | null)[];
663
+ const parameterNames = ['registry', 'config', 'AdminCap', 'periodMs'];
664
+ return (tx: Transaction) =>
665
+ tx.moveCall({
666
+ package: packageAddress,
667
+ module: 'registry',
668
+ function: 'add_cadence',
669
+ arguments: normalizeMoveArguments(
670
+ {
671
+ ...options.arguments,
672
+ registry: options.arguments?.registry ?? options.config?.registry,
673
+ config: options.arguments?.config ?? options.config?.protocolConfig,
674
+ },
675
+ argumentsTypes,
676
+ parameterNames,
677
+ ),
678
+ });
679
+ }
595
680
  export interface SetTemplateCadenceConfigArguments {
596
681
  registry?: RawTransactionArgument<string>;
597
682
  config?: RawTransactionArgument<string>;
@@ -616,6 +701,8 @@ export interface SetTemplateCadenceConfigOptions {
616
701
  /**
617
702
  * Set all deployment terms for one underlying's cadence. Passing zero for all five
618
703
  * values disables the cadence; otherwise all values must be nonzero and valid.
704
+ * Aborts if the underlying's enabled windows would sum past the pool's live-market
705
+ * cap.
619
706
  */
620
707
  export function setTemplateCadenceConfig(options: SetTemplateCadenceConfigOptions) {
621
708
  const packageAddress =
@@ -686,9 +773,10 @@ export interface CreateAndShareExpiryMarketOptions {
686
773
  *
687
774
  * Requires an allowlisted lifecycle capability, a registered underlying with all
688
775
  * canonical feed objects bound, and an enabled cadence with a deployable slot.
689
- * Higher-rank cadence overlaps and existing markets are skipped. The market
690
- * snapshots cadence and expiry policy, starts with zero cash, and cannot mint
691
- * until pool rebalancing funds it. Live pricing reads current Propbook bindings.
776
+ * Slots owned by a longer enabled cadence and existing markets are skipped. The
777
+ * market snapshots cadence and expiry policy, starts with zero cash, and cannot
778
+ * mint until pool rebalancing funds it. Live pricing reads current Propbook
779
+ * bindings.
692
780
  */
693
781
  export function createAndShareExpiryMarket(options: CreateAndShareExpiryMarketOptions) {
694
782
  const packageAddress =
@@ -730,6 +818,74 @@ export function createAndShareExpiryMarket(options: CreateAndShareExpiryMarketOp
730
818
  ),
731
819
  });
732
820
  }
821
+ export interface CreateAndShareExpiryMarketAtArguments {
822
+ registry?: RawTransactionArgument<string>;
823
+ poolVault?: RawTransactionArgument<string>;
824
+ config?: RawTransactionArgument<string>;
825
+ propbookRegistry?: RawTransactionArgument<string>;
826
+ lifecycleCap: RawTransactionArgument<string>;
827
+ propbookUnderlyingId: RawTransactionArgument<number>;
828
+ cadenceId: RawTransactionArgument<number>;
829
+ expectedExpiry: RawTransactionArgument<number | bigint>;
830
+ }
831
+ export interface CreateAndShareExpiryMarketAtOptions {
832
+ package?: string;
833
+ arguments: CreateAndShareExpiryMarketAtArguments;
834
+ config?: {
835
+ registry: ConfigValue;
836
+ poolVault: ConfigValue;
837
+ protocolConfig: ConfigValue;
838
+ oracleRegistry: ConfigValue;
839
+ predictPackageId?: string;
840
+ };
841
+ }
842
+ /**
843
+ * `create_and_share_expiry_market`, aborting unless the deployable expiry is
844
+ * `expected_expiry`. A keeper that planned the expiry off chain uses this so that
845
+ * a stale view of the cadence table fails instead of creating an unplanned market.
846
+ */
847
+ export function createAndShareExpiryMarketAt(options: CreateAndShareExpiryMarketAtOptions) {
848
+ const packageAddress =
849
+ options.package ?? options.config?.predictPackageId ?? '@local-pkg/deepbook_predict';
850
+ const argumentsTypes = [
851
+ null,
852
+ null,
853
+ null,
854
+ null,
855
+ null,
856
+ 'u32',
857
+ 'u8',
858
+ 'u64',
859
+ '0x2::clock::Clock',
860
+ ] satisfies (string | null)[];
861
+ const parameterNames = [
862
+ 'registry',
863
+ 'poolVault',
864
+ 'config',
865
+ 'propbookRegistry',
866
+ 'lifecycleCap',
867
+ 'propbookUnderlyingId',
868
+ 'cadenceId',
869
+ 'expectedExpiry',
870
+ ];
871
+ return (tx: Transaction) =>
872
+ tx.moveCall({
873
+ package: packageAddress,
874
+ module: 'registry',
875
+ function: 'create_and_share_expiry_market_at',
876
+ arguments: normalizeMoveArguments(
877
+ {
878
+ ...options.arguments,
879
+ registry: options.arguments?.registry ?? options.config?.registry,
880
+ poolVault: options.arguments?.poolVault ?? options.config?.poolVault,
881
+ config: options.arguments?.config ?? options.config?.protocolConfig,
882
+ propbookRegistry: options.arguments?.propbookRegistry ?? options.config?.oracleRegistry,
883
+ },
884
+ argumentsTypes,
885
+ parameterNames,
886
+ ),
887
+ });
888
+ }
733
889
  export interface CreateAndShareBuilderCodeArguments {
734
890
  registry?: RawTransactionArgument<string>;
735
891
  config?: RawTransactionArgument<string>;