@luxfi/dex 1.3.0 → 2.0.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 (37) hide show
  1. package/dist/hooks/index.d.ts +16 -1
  2. package/dist/hooks/index.d.ts.map +1 -1
  3. package/dist/hooks/index.js +20 -1
  4. package/dist/hooks/use-lxbook.d.ts +95 -0
  5. package/dist/hooks/use-lxbook.d.ts.map +1 -0
  6. package/dist/hooks/use-lxbook.js +213 -0
  7. package/dist/hooks/use-lxfeed.d.ts +111 -0
  8. package/dist/hooks/use-lxfeed.d.ts.map +1 -0
  9. package/dist/hooks/use-lxfeed.js +152 -0
  10. package/dist/hooks/use-lxvault.d.ts +137 -0
  11. package/dist/hooks/use-lxvault.d.ts.map +1 -0
  12. package/dist/hooks/use-lxvault.js +227 -0
  13. package/dist/index.d.ts +38 -21
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +57 -26
  16. package/dist/precompile/abis.d.ts +593 -2
  17. package/dist/precompile/abis.d.ts.map +1 -1
  18. package/dist/precompile/abis.js +458 -2
  19. package/dist/precompile/addresses.d.ts +89 -25
  20. package/dist/precompile/addresses.d.ts.map +1 -1
  21. package/dist/precompile/addresses.js +86 -21
  22. package/dist/precompile/index.d.ts +13 -2
  23. package/dist/precompile/index.d.ts.map +1 -1
  24. package/dist/precompile/index.js +13 -2
  25. package/dist/precompile/types.d.ts +170 -0
  26. package/dist/precompile/types.d.ts.map +1 -1
  27. package/dist/precompile/types.js +67 -0
  28. package/package.json +2 -2
  29. package/src/hooks/index.ts +24 -1
  30. package/src/hooks/use-lxbook.ts +343 -0
  31. package/src/hooks/use-lxfeed.ts +179 -0
  32. package/src/hooks/use-lxvault.ts +318 -0
  33. package/src/index.ts +92 -26
  34. package/src/precompile/abis.ts +466 -2
  35. package/src/precompile/addresses.ts +109 -28
  36. package/src/precompile/index.ts +13 -2
  37. package/src/precompile/types.ts +200 -1
@@ -1,52 +1,117 @@
1
1
  /**
2
- * DEX Precompile contract addresses
3
- * These are native precompiles, not deployed contracts
2
+ * LX Precompile addresses (LP-9xxx range)
3
+ * LX prefix naming convention for developer-facing contracts
4
+ * Address format: 0x0000000000000000000000000000000000LPNUM
4
5
  */
5
- export const DEX_PRECOMPILES = {
6
+ export const LX = {
6
7
  /**
7
- * PoolManager (0x0400)
8
- * Singleton managing all liquidity pools
8
+ * LXPool (LP-9010)
9
+ * v4 PoolManager-compatible core AMM
9
10
  * - Initialize pools
10
11
  * - Execute swaps
11
12
  * - Modify liquidity
12
13
  * - Flash accounting settlement
13
14
  */
14
- POOL_MANAGER: '0x0400000000000000000000000000000000000000',
15
+ LX_POOL: '0x0000000000000000000000000000000000009010',
16
+ /**
17
+ * LXOracle (LP-9011)
18
+ * Multi-source price aggregation
19
+ * - Chainlink, Pyth, TWAP aggregation
20
+ * - Price feed validation
21
+ */
22
+ LX_ORACLE: '0x0000000000000000000000000000000000009011',
15
23
  /**
16
- * SwapRouter (0x0401)
24
+ * LXRouter (LP-9012)
17
25
  * Optimized swap routing
18
26
  * - exactInputSingle / exactOutputSingle
19
27
  * - Multi-hop swaps
20
28
  * - Native LUX support
21
29
  */
22
- SWAP_ROUTER: '0x0401000000000000000000000000000000000000',
30
+ LX_ROUTER: '0x0000000000000000000000000000000000009012',
23
31
  /**
24
- * HooksRegistry (0x0402)
32
+ * LXHooks (LP-9013)
25
33
  * Hook contract registry
26
34
  * - Register hook contracts
27
35
  * - Query hook permissions
28
36
  */
29
- HOOKS_REGISTRY: '0x0402000000000000000000000000000000000000',
37
+ LX_HOOKS: '0x0000000000000000000000000000000000009013',
30
38
  /**
31
- * FlashLoan (0x0403)
39
+ * LXFlash (LP-9014)
32
40
  * Flash loan facility
33
41
  * - Borrow any token
34
42
  * - Repay in same transaction
35
43
  */
36
- FLASH_LOAN: '0x0403000000000000000000000000000000000000',
44
+ LX_FLASH: '0x0000000000000000000000000000000000009014',
45
+ /**
46
+ * LXBook (LP-9020)
47
+ * Permissionless orderbooks + matching + advanced orders
48
+ * - Market factory (createMarket)
49
+ * - Order lifecycle (place/cancel/modify)
50
+ * - Advanced orders (trigger, TWAP)
51
+ * - Book views (L1, order info)
52
+ */
53
+ LX_BOOK: '0x0000000000000000000000000000000000009020',
37
54
  /**
38
- * Lending (0x0410)
39
- * Lending protocol
55
+ * LXVault (LP-9030)
56
+ * Balances, margin, collateral, liquidations
57
+ * - Token custody
58
+ * - Margin requirements
59
+ * - Position liquidations
40
60
  */
41
- LENDING: '0x0410000000000000000000000000000000000000',
61
+ LX_VAULT: '0x0000000000000000000000000000000000009030',
42
62
  /**
43
- * Liquid (0x0430)
44
- * Liquid staking vaults
63
+ * LXFeed (LP-9040)
64
+ * Price feed aggregator
45
65
  */
46
- LIQUID: '0x0430000000000000000000000000000000000000',
66
+ LX_FEED: '0x0000000000000000000000000000000000009040',
47
67
  /**
48
- * Teleport (0x0440)
49
- * Cross-chain bridge
68
+ * Teleport Bridge (LP-6010)
69
+ * Cross-chain asset teleportation
50
70
  */
51
- TELEPORT: '0x0440000000000000000000000000000000000000',
71
+ TELEPORT: '0x0000000000000000000000000000000000006010',
72
+ };
73
+ /**
74
+ * Backwards compatibility - old naming convention
75
+ * @deprecated Use LX export instead
76
+ */
77
+ export const DEX_PRECOMPILES = {
78
+ POOL_MANAGER: LX.LX_POOL,
79
+ ORACLE_HUB: LX.LX_ORACLE,
80
+ SWAP_ROUTER: LX.LX_ROUTER,
81
+ HOOKS_REGISTRY: LX.LX_HOOKS,
82
+ FLASH_LOAN: LX.LX_FLASH,
83
+ CLOB: LX.LX_BOOK,
84
+ VAULT: LX.LX_VAULT,
85
+ PRICE_FEED: LX.LX_FEED,
86
+ TELEPORT: LX.TELEPORT,
52
87
  };
88
+ /**
89
+ * Generate precompile address from LP number
90
+ * @param lpNumber - The LP number (e.g., 9010)
91
+ * @returns The precompile address
92
+ */
93
+ export function fromLP(lpNumber) {
94
+ return `0x${lpNumber.toString(16).padStart(40, '0')}`;
95
+ }
96
+ /**
97
+ * Extract LP number from precompile address
98
+ * @param address - The precompile address
99
+ * @returns The LP number
100
+ */
101
+ export function toLP(address) {
102
+ return parseInt(address.slice(-4), 16);
103
+ }
104
+ /**
105
+ * Check if address is a DEX precompile (LP-9xxx range)
106
+ */
107
+ export function isDEXPrecompile(address) {
108
+ const lp = toLP(address);
109
+ return lp >= 9000 && lp < 10000;
110
+ }
111
+ /**
112
+ * Check if address is a Bridge precompile (LP-6xxx range)
113
+ */
114
+ export function isBridgePrecompile(address) {
115
+ const lp = toLP(address);
116
+ return lp >= 6000 && lp < 7000;
117
+ }
@@ -1,6 +1,17 @@
1
1
  /**
2
- * DEX Precompile Exports
3
- * Native Uniswap v4-style AMM at 0x0400-0x0403
2
+ * LX Precompile Exports (LP-Aligned)
3
+ *
4
+ * Native precompiles for Lux DEX stack:
5
+ * - LXPool (LP-9010): v4-style AMM PoolManager
6
+ * - LXOracle (LP-9011): Multi-source price aggregation
7
+ * - LXRouter (LP-9012): Optimized swap routing
8
+ * - LXHooks (LP-9013): Hook contract registry
9
+ * - LXFlash (LP-9014): Flash loan facility
10
+ * - LXBook (LP-9020): CLOB matching engine
11
+ * - LXVault (LP-9030): Custody and margin engine
12
+ * - LXFeed (LP-9040): Mark price and funding feeds
13
+ *
14
+ * Address format: 0x0000000000000000000000000000000000LPNUM
4
15
  */
5
16
  export * from './types';
6
17
  export * from './abis';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/precompile/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/precompile/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,aAAa,CAAA"}
@@ -1,6 +1,17 @@
1
1
  /**
2
- * DEX Precompile Exports
3
- * Native Uniswap v4-style AMM at 0x0400-0x0403
2
+ * LX Precompile Exports (LP-Aligned)
3
+ *
4
+ * Native precompiles for Lux DEX stack:
5
+ * - LXPool (LP-9010): v4-style AMM PoolManager
6
+ * - LXOracle (LP-9011): Multi-source price aggregation
7
+ * - LXRouter (LP-9012): Optimized swap routing
8
+ * - LXHooks (LP-9013): Hook contract registry
9
+ * - LXFlash (LP-9014): Flash loan facility
10
+ * - LXBook (LP-9020): CLOB matching engine
11
+ * - LXVault (LP-9030): Custody and margin engine
12
+ * - LXFeed (LP-9040): Mark price and funding feeds
13
+ *
14
+ * Address format: 0x0000000000000000000000000000000000LPNUM
4
15
  */
5
16
  export * from './types';
6
17
  export * from './abis';
@@ -73,4 +73,174 @@ export declare function sortCurrencies(a: Address, b: Address): [Address, Addres
73
73
  * Create a pool key from two currencies
74
74
  */
75
75
  export declare function createPoolKey(tokenA: Address, tokenB: Address, fee?: number, tickSpacing?: number, hooks?: Address): PoolKey;
76
+ /**
77
+ * Order time-in-force
78
+ */
79
+ export declare enum TIF {
80
+ GTC = 0,// Good-til-canceled (resting)
81
+ IOC = 1,// Immediate-or-cancel
82
+ ALO = 2
83
+ }
84
+ /**
85
+ * Order kind
86
+ */
87
+ export declare enum OrderKind {
88
+ LIMIT = 0,
89
+ MARKET = 1,
90
+ STOP_MARKET = 2,
91
+ STOP_LIMIT = 3,
92
+ TAKE_MARKET = 4,
93
+ TAKE_LIMIT = 5
94
+ }
95
+ /**
96
+ * Order group type
97
+ */
98
+ export declare enum GroupType {
99
+ NONE = 0,
100
+ OCO = 1,// One-cancels-other
101
+ BRACKET = 2
102
+ }
103
+ /**
104
+ * Action type for execute() endpoint
105
+ */
106
+ export declare enum ActionType {
107
+ PLACE = 0,
108
+ CANCEL = 1,
109
+ CANCEL_BY_CLOID = 2,
110
+ MODIFY = 3,
111
+ TWAP_CREATE = 4,
112
+ TWAP_CANCEL = 5,
113
+ SCHEDULE_CANCEL = 6,
114
+ NOOP = 7,
115
+ RESERVE_WEIGHT = 8
116
+ }
117
+ /**
118
+ * LXBook Order (LP-9020)
119
+ */
120
+ export interface LXOrder {
121
+ marketId: number;
122
+ isBuy: boolean;
123
+ kind: OrderKind;
124
+ sizeX18: bigint;
125
+ limitPxX18: bigint;
126
+ triggerPxX18: bigint;
127
+ reduceOnly: boolean;
128
+ tif: TIF;
129
+ cloid: `0x${string}`;
130
+ groupId: `0x${string}`;
131
+ groupType: GroupType;
132
+ }
133
+ /**
134
+ * LXBook Action (execute() payload)
135
+ */
136
+ export interface LXAction {
137
+ actionType: ActionType;
138
+ nonce: bigint;
139
+ expiresAfter: bigint;
140
+ data: `0x${string}`;
141
+ }
142
+ /**
143
+ * LXBook PlaceResult
144
+ */
145
+ export interface LXPlaceResult {
146
+ oid: bigint;
147
+ status: number;
148
+ filledSizeX18: bigint;
149
+ avgPxX18: bigint;
150
+ }
151
+ /**
152
+ * LXBook L1 (best bid/ask)
153
+ */
154
+ export interface LXL1 {
155
+ bestBidPxX18: bigint;
156
+ bestBidSzX18: bigint;
157
+ bestAskPxX18: bigint;
158
+ bestAskSzX18: bigint;
159
+ lastTradePxX18: bigint;
160
+ }
161
+ /**
162
+ * Margin mode
163
+ */
164
+ export declare enum MarginMode {
165
+ CROSS = 0,
166
+ ISOLATED = 1
167
+ }
168
+ /**
169
+ * Position side
170
+ */
171
+ export declare enum PositionSide {
172
+ LONG = 0,
173
+ SHORT = 1
174
+ }
175
+ /**
176
+ * LXVault Account identifier
177
+ */
178
+ export interface LXAccount {
179
+ main: Address;
180
+ subaccountId: number;
181
+ }
182
+ /**
183
+ * LXVault Position (LP-9030)
184
+ */
185
+ export interface LXPosition {
186
+ marketId: number;
187
+ side: PositionSide;
188
+ sizeX18: bigint;
189
+ entryPxX18: bigint;
190
+ unrealizedPnlX18: bigint;
191
+ accumulatedFundingX18: bigint;
192
+ lastFundingTime: bigint;
193
+ }
194
+ /**
195
+ * LXVault MarginInfo
196
+ */
197
+ export interface LXMarginInfo {
198
+ totalCollateralX18: bigint;
199
+ usedMarginX18: bigint;
200
+ freeMarginX18: bigint;
201
+ marginRatioX18: bigint;
202
+ maintenanceMarginX18: bigint;
203
+ liquidatable: boolean;
204
+ }
205
+ /**
206
+ * LXVault Settlement (LXBook → LXVault)
207
+ */
208
+ export interface LXSettlement {
209
+ maker: LXAccount;
210
+ taker: LXAccount;
211
+ marketId: number;
212
+ takerIsBuy: boolean;
213
+ sizeX18: bigint;
214
+ priceX18: bigint;
215
+ makerFeeX18: bigint;
216
+ takerFeeX18: bigint;
217
+ }
218
+ /**
219
+ * LXVault LiquidationResult
220
+ */
221
+ export interface LXLiquidationResult {
222
+ liquidated: LXAccount;
223
+ liquidator: LXAccount;
224
+ marketId: number;
225
+ sizeX18: bigint;
226
+ priceX18: bigint;
227
+ penaltyX18: bigint;
228
+ adlTriggered: boolean;
229
+ }
230
+ /**
231
+ * LXFeed Mark price
232
+ */
233
+ export interface LXMarkPrice {
234
+ indexPxX18: bigint;
235
+ markPxX18: bigint;
236
+ premiumX18: bigint;
237
+ timestamp: bigint;
238
+ }
239
+ /**
240
+ * LXFeed Funding rate
241
+ */
242
+ export interface LXFundingRate {
243
+ rateX18: bigint;
244
+ nextFundingTime: bigint;
245
+ }
76
246
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/precompile/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,OAAO,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,KAAK,MAAM,EAAE,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,wBAAwB,EAAE,MAAM,CAAA;IAChC,wBAAwB,EAAE,MAAM,CAAA;CACjC;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,OAAsD,CAAA;AAE/E;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAEzE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,OAAO,EACf,GAAG,GAAE,MAAa,EAClB,WAAW,GAAE,MAAW,EACxB,KAAK,GAAE,OAAsD,GAC5D,OAAO,CAGT"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/precompile/types.ts"],"names":[],"mappings":"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"}
@@ -15,3 +15,70 @@ export function createPoolKey(tokenA, tokenB, fee = 3000, tickSpacing = 60, hook
15
15
  const [currency0, currency1] = sortCurrencies(tokenA, tokenB);
16
16
  return { currency0, currency1, fee, tickSpacing, hooks };
17
17
  }
18
+ // ============================================================================
19
+ // LXBook Types (LP-9020) - CLOB Matching Engine
20
+ // ============================================================================
21
+ /**
22
+ * Order time-in-force
23
+ */
24
+ export var TIF;
25
+ (function (TIF) {
26
+ TIF[TIF["GTC"] = 0] = "GTC";
27
+ TIF[TIF["IOC"] = 1] = "IOC";
28
+ TIF[TIF["ALO"] = 2] = "ALO";
29
+ })(TIF || (TIF = {}));
30
+ /**
31
+ * Order kind
32
+ */
33
+ export var OrderKind;
34
+ (function (OrderKind) {
35
+ OrderKind[OrderKind["LIMIT"] = 0] = "LIMIT";
36
+ OrderKind[OrderKind["MARKET"] = 1] = "MARKET";
37
+ OrderKind[OrderKind["STOP_MARKET"] = 2] = "STOP_MARKET";
38
+ OrderKind[OrderKind["STOP_LIMIT"] = 3] = "STOP_LIMIT";
39
+ OrderKind[OrderKind["TAKE_MARKET"] = 4] = "TAKE_MARKET";
40
+ OrderKind[OrderKind["TAKE_LIMIT"] = 5] = "TAKE_LIMIT";
41
+ })(OrderKind || (OrderKind = {}));
42
+ /**
43
+ * Order group type
44
+ */
45
+ export var GroupType;
46
+ (function (GroupType) {
47
+ GroupType[GroupType["NONE"] = 0] = "NONE";
48
+ GroupType[GroupType["OCO"] = 1] = "OCO";
49
+ GroupType[GroupType["BRACKET"] = 2] = "BRACKET";
50
+ })(GroupType || (GroupType = {}));
51
+ /**
52
+ * Action type for execute() endpoint
53
+ */
54
+ export var ActionType;
55
+ (function (ActionType) {
56
+ ActionType[ActionType["PLACE"] = 0] = "PLACE";
57
+ ActionType[ActionType["CANCEL"] = 1] = "CANCEL";
58
+ ActionType[ActionType["CANCEL_BY_CLOID"] = 2] = "CANCEL_BY_CLOID";
59
+ ActionType[ActionType["MODIFY"] = 3] = "MODIFY";
60
+ ActionType[ActionType["TWAP_CREATE"] = 4] = "TWAP_CREATE";
61
+ ActionType[ActionType["TWAP_CANCEL"] = 5] = "TWAP_CANCEL";
62
+ ActionType[ActionType["SCHEDULE_CANCEL"] = 6] = "SCHEDULE_CANCEL";
63
+ ActionType[ActionType["NOOP"] = 7] = "NOOP";
64
+ ActionType[ActionType["RESERVE_WEIGHT"] = 8] = "RESERVE_WEIGHT";
65
+ })(ActionType || (ActionType = {}));
66
+ // ============================================================================
67
+ // LXVault Types (LP-9030) - Custody and Risk Engine
68
+ // ============================================================================
69
+ /**
70
+ * Margin mode
71
+ */
72
+ export var MarginMode;
73
+ (function (MarginMode) {
74
+ MarginMode[MarginMode["CROSS"] = 0] = "CROSS";
75
+ MarginMode[MarginMode["ISOLATED"] = 1] = "ISOLATED";
76
+ })(MarginMode || (MarginMode = {}));
77
+ /**
78
+ * Position side
79
+ */
80
+ export var PositionSide;
81
+ (function (PositionSide) {
82
+ PositionSide[PositionSide["LONG"] = 0] = "LONG";
83
+ PositionSide[PositionSide["SHORT"] = 1] = "SHORT";
84
+ })(PositionSide || (PositionSide = {}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luxfi/dex",
3
- "version": "1.3.0",
3
+ "version": "2.0.0",
4
4
  "description": "Lux DEX SDK - CLOB client, AMM precompiles, and omnichain routing",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -53,7 +53,7 @@
53
53
  "repository": {
54
54
  "type": "git",
55
55
  "url": "https://github.com/luxfi/exchange.git",
56
- "directory": "packages/dex"
56
+ "directory": "pkgs/dex"
57
57
  },
58
58
  "keywords": [
59
59
  "lux",
@@ -1,6 +1,29 @@
1
1
  /**
2
- * DEX Hooks Exports
2
+ * LX Hooks Exports
3
3
  * React hooks for DEX integration
4
+ *
5
+ * AMM (LP-9010):
6
+ * - useQuote, useSwap
7
+ *
8
+ * CLOB (LP-9020):
9
+ * - useLXBookL1, useLXBookPlaceOrder, useLXBookCancelOrder
10
+ *
11
+ * Vault (LP-9030):
12
+ * - useLXVault, useLXVaultPosition, useLXVaultMargin
13
+ *
14
+ * Feeds (LP-9040):
15
+ * - useLXFeedMarkPrice, useLXFeedFundingRate, useLXMarketPrices
4
16
  */
17
+
18
+ // AMM hooks
5
19
  export * from './use-quote'
6
20
  export * from './use-swap'
21
+
22
+ // LXBook hooks (LP-9020) - CLOB trading
23
+ export * from './use-lxbook'
24
+
25
+ // LXVault hooks (LP-9030) - Custody and margin
26
+ export * from './use-lxvault'
27
+
28
+ // LXFeed hooks (LP-9040) - Price feeds
29
+ export * from './use-lxfeed'