@luxfi/dex 1.3.0 → 2.0.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.
- package/dist/hooks/index.d.ts +16 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +20 -1
- package/dist/hooks/use-lxbook.d.ts +84 -0
- package/dist/hooks/use-lxbook.d.ts.map +1 -0
- package/dist/hooks/use-lxbook.js +213 -0
- package/dist/hooks/use-lxfeed.d.ts +42 -0
- package/dist/hooks/use-lxfeed.d.ts.map +1 -0
- package/dist/hooks/use-lxfeed.js +152 -0
- package/dist/hooks/use-lxvault.d.ts +75 -0
- package/dist/hooks/use-lxvault.d.ts.map +1 -0
- package/dist/hooks/use-lxvault.js +227 -0
- package/dist/index.d.ts +38 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +57 -26
- package/dist/precompile/abis.d.ts +593 -2
- package/dist/precompile/abis.d.ts.map +1 -1
- package/dist/precompile/abis.js +458 -2
- package/dist/precompile/addresses.d.ts +89 -25
- package/dist/precompile/addresses.d.ts.map +1 -1
- package/dist/precompile/addresses.js +86 -21
- package/dist/precompile/index.d.ts +13 -2
- package/dist/precompile/index.d.ts.map +1 -1
- package/dist/precompile/index.js +13 -2
- package/dist/precompile/types.d.ts +171 -1
- package/dist/precompile/types.d.ts.map +1 -1
- package/dist/precompile/types.js +67 -0
- package/package.json +2 -2
- package/src/hooks/index.ts +24 -1
- package/src/hooks/use-lxbook.ts +343 -0
- package/src/hooks/use-lxfeed.ts +179 -0
- package/src/hooks/use-lxvault.ts +318 -0
- package/src/index.ts +92 -26
- package/src/precompile/abis.ts +466 -2
- package/src/precompile/addresses.ts +109 -28
- package/src/precompile/index.ts +13 -2
- package/src/precompile/types.ts +200 -1
|
@@ -1,52 +1,117 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
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
|
|
6
|
+
export const LX = {
|
|
6
7
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
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
|
-
|
|
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
|
-
*
|
|
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
|
-
|
|
30
|
+
LX_ROUTER: '0x0000000000000000000000000000000000009012',
|
|
23
31
|
/**
|
|
24
|
-
*
|
|
32
|
+
* LXHooks (LP-9013)
|
|
25
33
|
* Hook contract registry
|
|
26
34
|
* - Register hook contracts
|
|
27
35
|
* - Query hook permissions
|
|
28
36
|
*/
|
|
29
|
-
|
|
37
|
+
LX_HOOKS: '0x0000000000000000000000000000000000009013',
|
|
30
38
|
/**
|
|
31
|
-
*
|
|
39
|
+
* LXFlash (LP-9014)
|
|
32
40
|
* Flash loan facility
|
|
33
41
|
* - Borrow any token
|
|
34
42
|
* - Repay in same transaction
|
|
35
43
|
*/
|
|
36
|
-
|
|
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
|
-
*
|
|
39
|
-
*
|
|
55
|
+
* LXVault (LP-9030)
|
|
56
|
+
* Balances, margin, collateral, liquidations
|
|
57
|
+
* - Token custody
|
|
58
|
+
* - Margin requirements
|
|
59
|
+
* - Position liquidations
|
|
40
60
|
*/
|
|
41
|
-
|
|
61
|
+
LX_VAULT: '0x0000000000000000000000000000000000009030',
|
|
42
62
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
63
|
+
* LXFeed (LP-9040)
|
|
64
|
+
* Price feed aggregator
|
|
45
65
|
*/
|
|
46
|
-
|
|
66
|
+
LX_FEED: '0x0000000000000000000000000000000000009040',
|
|
47
67
|
/**
|
|
48
|
-
* Teleport (
|
|
49
|
-
* Cross-chain
|
|
68
|
+
* Teleport Bridge (LP-6010)
|
|
69
|
+
* Cross-chain asset teleportation
|
|
50
70
|
*/
|
|
51
|
-
TELEPORT: '
|
|
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
|
-
*
|
|
3
|
-
*
|
|
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
|
|
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"}
|
package/dist/precompile/index.js
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
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,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* DEX Precompile Types
|
|
3
|
-
* Native
|
|
3
|
+
* Native Lux v4-style AMM implementation
|
|
4
4
|
*/
|
|
5
5
|
import type { Address } from 'viem';
|
|
6
6
|
/**
|
|
@@ -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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"}
|
package/dist/precompile/types.js
CHANGED
|
@@ -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": "
|
|
3
|
+
"version": "2.0.1",
|
|
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": "
|
|
56
|
+
"directory": "pkgs/dex"
|
|
57
57
|
},
|
|
58
58
|
"keywords": [
|
|
59
59
|
"lux",
|
package/src/hooks/index.ts
CHANGED
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
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'
|