@lifi/perps-types 0.1.1-alpha.8 → 0.2.0-alpha.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.
- package/package.json +18 -4
- package/providers/lighter/package.json +5 -0
- package/src/_cjs/{market.js → action.js} +1 -1
- package/src/_cjs/action.js.map +1 -0
- package/src/_cjs/{trading.js → asset.js} +1 -1
- package/src/_cjs/asset.js.map +1 -0
- package/src/_cjs/enums.js +88 -15
- package/src/_cjs/enums.js.map +1 -1
- package/src/_cjs/index.js +3 -4
- package/src/_cjs/index.js.map +1 -1
- package/src/_cjs/providers/_shared/fillClassification.js +37 -0
- package/src/_cjs/providers/_shared/fillClassification.js.map +1 -0
- package/src/_cjs/providers/hyperliquid/assetId.js +11 -9
- package/src/_cjs/providers/hyperliquid/assetId.js.map +1 -1
- package/src/_cjs/providers/hyperliquid/mappers/_market.js +15 -0
- package/src/_cjs/providers/hyperliquid/mappers/_market.js.map +1 -0
- package/src/_cjs/providers/hyperliquid/mappers/activity.js +128 -0
- package/src/_cjs/providers/hyperliquid/mappers/activity.js.map +1 -0
- package/src/_cjs/providers/hyperliquid/mappers/{market.js → asset.js} +10 -9
- package/src/_cjs/providers/hyperliquid/mappers/asset.js.map +1 -0
- package/src/_cjs/providers/hyperliquid/mappers/fill.js +36 -0
- package/src/_cjs/providers/hyperliquid/mappers/fill.js.map +1 -0
- package/src/_cjs/providers/hyperliquid/mappers/index.js +12 -7
- package/src/_cjs/providers/hyperliquid/mappers/index.js.map +1 -1
- package/src/_cjs/providers/hyperliquid/mappers/order.js +86 -9
- package/src/_cjs/providers/hyperliquid/mappers/order.js.map +1 -1
- package/src/_cjs/providers/hyperliquid/mappers/position.js +8 -5
- package/src/_cjs/providers/hyperliquid/mappers/position.js.map +1 -1
- package/src/_cjs/providers/hyperliquid/mappers/shared.js +0 -10
- package/src/_cjs/providers/hyperliquid/mappers/shared.js.map +1 -1
- package/src/_cjs/providers/hyperliquid/types.js +18 -0
- package/src/_cjs/providers/hyperliquid/types.js.map +1 -1
- package/src/_cjs/{authorization.js → providers/lighter/apiTypes.js} +1 -1
- package/src/_cjs/providers/lighter/apiTypes.js.map +1 -0
- package/src/_cjs/providers/lighter/index.js +20 -0
- package/src/_cjs/providers/lighter/index.js.map +1 -0
- package/src/_cjs/providers/lighter/mappers/fill.js +34 -0
- package/src/_cjs/providers/lighter/mappers/fill.js.map +1 -0
- package/src/_cjs/providers/lighter/mappers/index.js +13 -0
- package/src/_cjs/providers/lighter/mappers/index.js.map +1 -0
- package/src/_cjs/providers/lighter/mappers/order.js +142 -0
- package/src/_cjs/providers/lighter/mappers/order.js.map +1 -0
- package/src/_cjs/providers/lighter/mappers/position.js +35 -0
- package/src/_cjs/providers/lighter/mappers/position.js.map +1 -0
- package/src/_cjs/providers/lighter/types.js +23 -0
- package/src/_cjs/providers/lighter/types.js.map +1 -0
- package/src/_cjs/{withdrawal.js → providers.js} +1 -1
- package/src/_cjs/providers.js.map +1 -0
- package/src/_esm/action.js +2 -0
- package/src/_esm/action.js.map +1 -0
- package/src/_esm/asset.js +2 -0
- package/src/_esm/asset.js.map +1 -0
- package/src/_esm/enums.js +97 -14
- package/src/_esm/enums.js.map +1 -1
- package/src/_esm/index.js +3 -4
- package/src/_esm/index.js.map +1 -1
- package/src/_esm/providers/_shared/fillClassification.js +43 -0
- package/src/_esm/providers/_shared/fillClassification.js.map +1 -0
- package/src/_esm/providers/hyperliquid/assetId.js +13 -11
- package/src/_esm/providers/hyperliquid/assetId.js.map +1 -1
- package/src/_esm/providers/hyperliquid/mappers/_market.js +22 -0
- package/src/_esm/providers/hyperliquid/mappers/_market.js.map +1 -0
- package/src/_esm/providers/hyperliquid/mappers/activity.js +138 -0
- package/src/_esm/providers/hyperliquid/mappers/activity.js.map +1 -0
- package/src/_esm/providers/hyperliquid/mappers/{market.js → asset.js} +8 -7
- package/src/_esm/providers/hyperliquid/mappers/asset.js.map +1 -0
- package/src/_esm/providers/hyperliquid/mappers/fill.js +32 -0
- package/src/_esm/providers/hyperliquid/mappers/fill.js.map +1 -0
- package/src/_esm/providers/hyperliquid/mappers/index.js +4 -4
- package/src/_esm/providers/hyperliquid/mappers/index.js.map +1 -1
- package/src/_esm/providers/hyperliquid/mappers/order.js +88 -8
- package/src/_esm/providers/hyperliquid/mappers/order.js.map +1 -1
- package/src/_esm/providers/hyperliquid/mappers/position.js +8 -5
- package/src/_esm/providers/hyperliquid/mappers/position.js.map +1 -1
- package/src/_esm/providers/hyperliquid/mappers/shared.js +1 -12
- package/src/_esm/providers/hyperliquid/mappers/shared.js.map +1 -1
- package/src/_esm/providers/hyperliquid/types.js +32 -2
- package/src/_esm/providers/hyperliquid/types.js.map +1 -1
- package/src/_esm/providers/lighter/apiTypes.js +5 -0
- package/src/_esm/providers/lighter/apiTypes.js.map +1 -0
- package/src/_esm/providers/lighter/index.js +4 -0
- package/src/_esm/providers/lighter/index.js.map +1 -0
- package/src/_esm/providers/lighter/mappers/fill.js +39 -0
- package/src/_esm/providers/lighter/mappers/fill.js.map +1 -0
- package/src/_esm/providers/lighter/mappers/index.js +4 -0
- package/src/_esm/providers/lighter/mappers/index.js.map +1 -0
- package/src/_esm/providers/lighter/mappers/order.js +162 -0
- package/src/_esm/providers/lighter/mappers/order.js.map +1 -0
- package/src/_esm/providers/lighter/mappers/position.js +38 -0
- package/src/_esm/providers/lighter/mappers/position.js.map +1 -0
- package/src/_esm/providers/lighter/types.js +26 -0
- package/src/_esm/providers/lighter/types.js.map +1 -0
- package/src/_esm/providers.js +2 -0
- package/src/_esm/providers.js.map +1 -0
- package/src/_types/account.d.ts +211 -18
- package/src/_types/account.d.ts.map +1 -1
- package/src/_types/action.d.ts +261 -0
- package/src/_types/action.d.ts.map +1 -0
- package/src/_types/{market.d.ts → asset.d.ts} +23 -34
- package/src/_types/asset.d.ts.map +1 -0
- package/src/_types/enums.d.ts +81 -5
- package/src/_types/enums.d.ts.map +1 -1
- package/src/_types/index.d.ts +3 -4
- package/src/_types/index.d.ts.map +1 -1
- package/src/_types/providers/_shared/fillClassification.d.ts +12 -0
- package/src/_types/providers/_shared/fillClassification.d.ts.map +1 -0
- package/src/_types/providers/hyperliquid/assetId.d.ts +8 -6
- package/src/_types/providers/hyperliquid/assetId.d.ts.map +1 -1
- package/src/_types/providers/hyperliquid/mappers/_market.d.ts +13 -0
- package/src/_types/providers/hyperliquid/mappers/_market.d.ts.map +1 -0
- package/src/_types/providers/hyperliquid/mappers/activity.d.ts +13 -0
- package/src/_types/providers/hyperliquid/mappers/activity.d.ts.map +1 -0
- package/src/_types/providers/hyperliquid/mappers/asset.d.ts +4 -0
- package/src/_types/providers/hyperliquid/mappers/asset.d.ts.map +1 -0
- package/src/_types/providers/hyperliquid/mappers/fill.d.ts +6 -0
- package/src/_types/providers/hyperliquid/mappers/fill.d.ts.map +1 -0
- package/src/_types/providers/hyperliquid/mappers/index.d.ts +4 -4
- package/src/_types/providers/hyperliquid/mappers/index.d.ts.map +1 -1
- package/src/_types/providers/hyperliquid/mappers/order.d.ts +15 -3
- package/src/_types/providers/hyperliquid/mappers/order.d.ts.map +1 -1
- package/src/_types/providers/hyperliquid/mappers/position.d.ts +1 -1
- package/src/_types/providers/hyperliquid/mappers/position.d.ts.map +1 -1
- package/src/_types/providers/hyperliquid/mappers/shared.d.ts +0 -6
- package/src/_types/providers/hyperliquid/mappers/shared.d.ts.map +1 -1
- package/src/_types/providers/hyperliquid/types.d.ts +112 -0
- package/src/_types/providers/hyperliquid/types.d.ts.map +1 -1
- package/src/_types/providers/lighter/apiTypes.d.ts +76 -0
- package/src/_types/providers/lighter/apiTypes.d.ts.map +1 -0
- package/src/_types/providers/lighter/index.d.ts +4 -0
- package/src/_types/providers/lighter/index.d.ts.map +1 -0
- package/src/_types/providers/lighter/mappers/fill.d.ts +9 -0
- package/src/_types/providers/lighter/mappers/fill.d.ts.map +1 -0
- package/src/_types/providers/lighter/mappers/index.d.ts +4 -0
- package/src/_types/providers/lighter/mappers/index.d.ts.map +1 -0
- package/src/_types/providers/lighter/mappers/order.d.ts +35 -0
- package/src/_types/providers/lighter/mappers/order.d.ts.map +1 -0
- package/src/_types/providers/lighter/mappers/position.d.ts +8 -0
- package/src/_types/providers/lighter/mappers/position.d.ts.map +1 -0
- package/src/_types/providers/lighter/types.d.ts +90 -0
- package/src/_types/providers/lighter/types.d.ts.map +1 -0
- package/src/_types/providers.d.ts +145 -0
- package/src/_types/providers.d.ts.map +1 -0
- package/src/_types/subscriptions.d.ts +23 -18
- package/src/_types/subscriptions.d.ts.map +1 -1
- package/src/_types/typedData.d.ts +13 -5
- package/src/_types/typedData.d.ts.map +1 -1
- package/src/account.ts +244 -18
- package/src/action.ts +324 -0
- package/src/asset.ts +88 -0
- package/src/enums.ts +92 -3
- package/src/index.ts +3 -4
- package/src/providers/_shared/fillClassification.ts +50 -0
- package/src/providers/hyperliquid/assetId.ts +18 -12
- package/src/providers/hyperliquid/mappers/_market.ts +21 -0
- package/src/providers/hyperliquid/mappers/activity.ts +169 -0
- package/src/providers/hyperliquid/mappers/{market.ts → asset.ts} +10 -12
- package/src/providers/hyperliquid/mappers/fill.ts +41 -0
- package/src/providers/hyperliquid/mappers/index.ts +10 -4
- package/src/providers/hyperliquid/mappers/order.ts +95 -14
- package/src/providers/hyperliquid/mappers/position.ts +8 -10
- package/src/providers/hyperliquid/mappers/shared.ts +0 -15
- package/src/providers/hyperliquid/types.ts +158 -0
- package/src/providers/lighter/apiTypes.ts +87 -0
- package/src/providers/lighter/index.ts +3 -0
- package/src/providers/lighter/mappers/fill.ts +57 -0
- package/src/providers/lighter/mappers/index.ts +8 -0
- package/src/providers/lighter/mappers/order.ts +184 -0
- package/src/providers/lighter/mappers/position.ts +46 -0
- package/src/providers/lighter/types.ts +111 -0
- package/src/providers.ts +153 -0
- package/src/subscriptions.ts +21 -20
- package/src/typedData.ts +15 -5
- package/src/_cjs/authorization.js.map +0 -1
- package/src/_cjs/market.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/history.js +0 -22
- package/src/_cjs/providers/hyperliquid/mappers/history.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/market.js.map +0 -1
- package/src/_cjs/trading.js.map +0 -1
- package/src/_cjs/withdrawal.js.map +0 -1
- package/src/_esm/authorization.js +0 -2
- package/src/_esm/authorization.js.map +0 -1
- package/src/_esm/market.js +0 -2
- package/src/_esm/market.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/history.js +0 -18
- package/src/_esm/providers/hyperliquid/mappers/history.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/market.js.map +0 -1
- package/src/_esm/trading.js +0 -2
- package/src/_esm/trading.js.map +0 -1
- package/src/_esm/withdrawal.js +0 -2
- package/src/_esm/withdrawal.js.map +0 -1
- package/src/_types/authorization.d.ts +0 -39
- package/src/_types/authorization.d.ts.map +0 -1
- package/src/_types/market.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/history.d.ts +0 -4
- package/src/_types/providers/hyperliquid/mappers/history.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/market.d.ts +0 -4
- package/src/_types/providers/hyperliquid/mappers/market.d.ts.map +0 -1
- package/src/_types/trading.d.ts +0 -80
- package/src/_types/trading.d.ts.map +0 -1
- package/src/_types/withdrawal.d.ts +0 -37
- package/src/_types/withdrawal.d.ts.map +0 -1
- package/src/authorization.ts +0 -46
- package/src/market.ts +0 -97
- package/src/providers/hyperliquid/mappers/history.ts +0 -25
- package/src/trading.ts +0 -97
- package/src/withdrawal.ts +0 -44
|
@@ -1,20 +1,64 @@
|
|
|
1
1
|
import { OrderSide, OrderStatus, OrderType, TimeInForce, } from '../../../enums.js';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { deriveMarket } from './_market.js';
|
|
3
|
+
/** Map a Hyperliquid orderType string to the OrderType enum. */
|
|
4
|
+
export const mapOrderType = (orderType) => {
|
|
5
|
+
switch (orderType) {
|
|
6
|
+
case 'Take Profit Market':
|
|
7
|
+
return OrderType.TAKE_PROFIT_MARKET;
|
|
8
|
+
case 'Take Profit Limit':
|
|
9
|
+
return OrderType.TAKE_PROFIT_LIMIT;
|
|
10
|
+
case 'Stop Market':
|
|
11
|
+
return OrderType.STOP_MARKET;
|
|
12
|
+
case 'Stop Limit':
|
|
13
|
+
return OrderType.STOP_LIMIT;
|
|
14
|
+
case 'Market':
|
|
15
|
+
return OrderType.MARKET;
|
|
16
|
+
default:
|
|
17
|
+
return OrderType.LIMIT;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
export const isTriggerType = (type) => type === OrderType.TAKE_PROFIT_MARKET ||
|
|
21
|
+
type === OrderType.TAKE_PROFIT_LIMIT ||
|
|
22
|
+
type === OrderType.STOP_MARKET ||
|
|
23
|
+
type === OrderType.STOP_LIMIT;
|
|
24
|
+
export const mapOpenOrder = (o) => ({
|
|
4
25
|
id: String(o.oid),
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
26
|
+
asset: {
|
|
27
|
+
assetId: o.coin,
|
|
28
|
+
market: deriveMarket(o.coin),
|
|
29
|
+
displaySymbol: o.coin,
|
|
30
|
+
displayQuote: null,
|
|
31
|
+
},
|
|
8
32
|
side: o.side === 'B' ? OrderSide.BUY : OrderSide.SELL,
|
|
9
|
-
type: o.orderType
|
|
33
|
+
type: mapOrderType(o.orderType),
|
|
10
34
|
size: o.sz,
|
|
11
35
|
price: o.limitPx,
|
|
12
36
|
filledSize: o.origSz
|
|
13
37
|
? (parseFloat(o.origSz) - parseFloat(o.sz)).toString()
|
|
14
38
|
: '0',
|
|
15
39
|
reduceOnly: o.reduceOnly ?? false,
|
|
40
|
+
label: o.isTrigger ? o.triggerCondition : undefined,
|
|
16
41
|
createdAt: new Date(o.timestamp).toISOString(),
|
|
17
42
|
});
|
|
43
|
+
export const mapTriggerOrder = (o) => {
|
|
44
|
+
const type = mapOrderType(o.orderType);
|
|
45
|
+
const isLimit = type === OrderType.TAKE_PROFIT_LIMIT || type === OrderType.STOP_LIMIT;
|
|
46
|
+
return {
|
|
47
|
+
id: String(o.oid),
|
|
48
|
+
asset: {
|
|
49
|
+
assetId: o.coin,
|
|
50
|
+
market: deriveMarket(o.coin),
|
|
51
|
+
displaySymbol: o.coin,
|
|
52
|
+
displayQuote: null,
|
|
53
|
+
},
|
|
54
|
+
type,
|
|
55
|
+
size: o.sz,
|
|
56
|
+
triggerPrice: o.triggerPx,
|
|
57
|
+
...(isLimit ? { limitPrice: o.limitPx } : {}),
|
|
58
|
+
label: o.triggerCondition,
|
|
59
|
+
createdAt: new Date(o.timestamp).toISOString(),
|
|
60
|
+
};
|
|
61
|
+
};
|
|
18
62
|
const mapOrderStatus = (status) => {
|
|
19
63
|
switch (status) {
|
|
20
64
|
case 'open':
|
|
@@ -35,6 +79,36 @@ const mapOrderStatus = (status) => {
|
|
|
35
79
|
return OrderStatus.PENDING;
|
|
36
80
|
}
|
|
37
81
|
};
|
|
82
|
+
/**
|
|
83
|
+
* Map a raw Hyperliquid order status to a short English sentence
|
|
84
|
+
* describing *why* the order ended in a terminal non-FILLED state. Bare
|
|
85
|
+
* `canceled`/`cancelled`/`rejected` carry no actionable detail and
|
|
86
|
+
* return `undefined`; so do non-terminal and unknown values.
|
|
87
|
+
*/
|
|
88
|
+
export const mapStatusReason = (status) => {
|
|
89
|
+
switch (status) {
|
|
90
|
+
case 'iocCanceled':
|
|
91
|
+
return 'Order cancelled: not enough liquidity to fill immediately.';
|
|
92
|
+
case 'reduceOnlyCanceled':
|
|
93
|
+
return 'Order cancelled: would not reduce your position.';
|
|
94
|
+
case 'marginCanceled':
|
|
95
|
+
return 'Order cancelled: insufficient margin.';
|
|
96
|
+
case 'liquidatedCanceled':
|
|
97
|
+
return 'Order cancelled: account was liquidated.';
|
|
98
|
+
case 'siblingFilledCanceled':
|
|
99
|
+
return 'Order cancelled: sibling OCO order filled first.';
|
|
100
|
+
case 'selfTradeCanceled':
|
|
101
|
+
return 'Order cancelled: would self-trade against your own resting order.';
|
|
102
|
+
case 'tickRejected':
|
|
103
|
+
return 'Order rejected: price did not match the tick size.';
|
|
104
|
+
case 'minTradeNtlRejected':
|
|
105
|
+
return 'Order rejected: notional value below the minimum trade size.';
|
|
106
|
+
case 'delistedRejected':
|
|
107
|
+
return 'Order rejected: market has been delisted.';
|
|
108
|
+
default:
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
};
|
|
38
112
|
const mapTimeInForce = (tif) => {
|
|
39
113
|
switch (tif) {
|
|
40
114
|
case 'Gtc':
|
|
@@ -52,9 +126,14 @@ export const mapOrder = (detail) => {
|
|
|
52
126
|
const filled = parseFloat(o.origSz) - parseFloat(o.sz);
|
|
53
127
|
return {
|
|
54
128
|
orderId: String(o.oid),
|
|
55
|
-
|
|
129
|
+
asset: {
|
|
130
|
+
assetId: o.coin,
|
|
131
|
+
market: deriveMarket(o.coin),
|
|
132
|
+
displaySymbol: o.coin,
|
|
133
|
+
displayQuote: null,
|
|
134
|
+
},
|
|
56
135
|
side: o.side === 'B' ? OrderSide.BUY : OrderSide.SELL,
|
|
57
|
-
type: o.orderType
|
|
136
|
+
type: mapOrderType(o.orderType),
|
|
58
137
|
price: o.limitPx,
|
|
59
138
|
originalSize: o.origSz,
|
|
60
139
|
remainingSize: o.sz,
|
|
@@ -64,6 +143,7 @@ export const mapOrder = (detail) => {
|
|
|
64
143
|
isTrigger: o.triggerCondition !== undefined && o.triggerCondition !== 'N/A',
|
|
65
144
|
triggerPrice: o.triggerPx ?? undefined,
|
|
66
145
|
status: mapOrderStatus(detail.status),
|
|
146
|
+
statusReason: mapStatusReason(detail.status),
|
|
67
147
|
createdAt: new Date(o.timestamp).toISOString(),
|
|
68
148
|
updatedAt: new Date(detail.statusTimestamp).toISOString(),
|
|
69
149
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../../providers/hyperliquid/mappers/order.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,GACZ,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../../providers/hyperliquid/mappers/order.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAI1B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,gEAAgE;AAChE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAa,EAAE;IAC3D,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,oBAAoB;YACvB,OAAO,SAAS,CAAC,kBAAkB,CAAA;QACrC,KAAK,mBAAmB;YACtB,OAAO,SAAS,CAAC,iBAAiB,CAAA;QACpC,KAAK,aAAa;YAChB,OAAO,SAAS,CAAC,WAAW,CAAA;QAC9B,KAAK,YAAY;YACf,OAAO,SAAS,CAAC,UAAU,CAAA;QAC7B,KAAK,QAAQ;YACX,OAAO,SAAS,CAAC,MAAM,CAAA;QACzB;YACE,OAAO,SAAS,CAAC,KAAK,CAAA;IAC1B,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAe,EAAW,EAAE,CACxD,IAAI,KAAK,SAAS,CAAC,kBAAkB;IACrC,IAAI,KAAK,SAAS,CAAC,iBAAiB;IACpC,IAAI,KAAK,SAAS,CAAC,WAAW;IAC9B,IAAI,KAAK,SAAS,CAAC,UAAU,CAAA;AAE/B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAsB,EAAa,EAAE,CAAC,CAAC;IAClE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IACjB,KAAK,EAAE;QACL,OAAO,EAAE,CAAC,CAAC,IAAI;QACf,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5B,aAAa,EAAE,CAAC,CAAC,IAAI;QACrB,YAAY,EAAE,IAAI;KACnB;IACD,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI;IACrD,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,EAAE;IACV,KAAK,EAAE,CAAC,CAAC,OAAO;IAChB,UAAU,EAAE,CAAC,CAAC,MAAM;QAClB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;QACtD,CAAC,CAAC,GAAG;IACP,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,KAAK;IACjC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;IACnD,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;CAC/C,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAsB,EAAgB,EAAE;IACtE,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACtC,MAAM,OAAO,GACX,IAAI,KAAK,SAAS,CAAC,iBAAiB,IAAI,IAAI,KAAK,SAAS,CAAC,UAAU,CAAA;IACvE,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;QACjB,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,CAAC,IAAI;YACf,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5B,aAAa,EAAE,CAAC,CAAC,IAAI;YACrB,YAAY,EAAE,IAAI;SACnB;QACD,IAAI;QACJ,IAAI,EAAE,CAAC,CAAC,EAAE;QACV,YAAY,EAAE,CAAC,CAAC,SAAS;QACzB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,KAAK,EAAE,CAAC,CAAC,gBAAgB;QACzB,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;KAC/C,CAAA;AACH,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,MAAc,EAAe,EAAE;IACrD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS;YACZ,OAAO,WAAW,CAAC,IAAI,CAAA;QACzB,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC,MAAM,CAAA;QAC3B,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW;YACd,OAAO,WAAW,CAAC,SAAS,CAAA;QAC9B,KAAK,UAAU;YACb,OAAO,WAAW,CAAC,QAAQ,CAAA;QAC7B,KAAK,WAAW;YACd,OAAO,WAAW,CAAC,SAAS,CAAA;QAC9B,KAAK,gBAAgB;YACnB,OAAO,WAAW,CAAC,SAAS,CAAA;QAC9B;YACE,OAAO,WAAW,CAAC,OAAO,CAAA;IAC9B,CAAC;AACH,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAc,EAAsB,EAAE;IACpE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,aAAa;YAChB,OAAO,4DAA4D,CAAA;QACrE,KAAK,oBAAoB;YACvB,OAAO,kDAAkD,CAAA;QAC3D,KAAK,gBAAgB;YACnB,OAAO,uCAAuC,CAAA;QAChD,KAAK,oBAAoB;YACvB,OAAO,0CAA0C,CAAA;QACnD,KAAK,uBAAuB;YAC1B,OAAO,kDAAkD,CAAA;QAC3D,KAAK,mBAAmB;YACtB,OAAO,mEAAmE,CAAA;QAC5E,KAAK,cAAc;YACjB,OAAO,oDAAoD,CAAA;QAC7D,KAAK,qBAAqB;YACxB,OAAO,8DAA8D,CAAA;QACvE,KAAK,kBAAkB;YACrB,OAAO,2CAA2C,CAAA;QACpD;YACE,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,GAAuB,EAA2B,EAAE;IAC1E,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,KAAK;YACR,OAAO,WAAW,CAAC,GAAG,CAAA;QACxB,KAAK,KAAK;YACR,OAAO,WAAW,CAAC,GAAG,CAAA;QACxB,KAAK,KAAK;YACR,OAAO,WAAW,CAAC,SAAS,CAAA;QAC9B;YACE,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAqB,EAAS,EAAE;IACvD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAA;IACtB,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAEtD,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;QACtB,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,CAAC,IAAI;YACf,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5B,aAAa,EAAE,CAAC,CAAC,IAAI;YACrB,YAAY,EAAE,IAAI;SACnB;QACD,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI;QACrD,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/B,KAAK,EAAE,CAAC,CAAC,OAAO;QAChB,YAAY,EAAE,CAAC,CAAC,MAAM;QACtB,aAAa,EAAE,CAAC,CAAC,EAAE;QACnB,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE;QAC7B,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC;QAC/C,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,SAAS;QACrC,SAAS,EAAE,CAAC,CAAC,gBAAgB,KAAK,SAAS,IAAI,CAAC,CAAC,gBAAgB,KAAK,KAAK;QAC3E,YAAY,EAAE,CAAC,CAAC,SAAS,IAAI,SAAS;QACtC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;QACrC,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5C,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;QAC9C,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE;KAC1D,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { MarginMode, PositionSide } from '../../../enums.js';
|
|
2
|
-
import {
|
|
3
|
-
export const mapPosition = (ap
|
|
2
|
+
import { deriveMarket } from './_market.js';
|
|
3
|
+
export const mapPosition = (ap) => {
|
|
4
4
|
const pos = ap.position;
|
|
5
5
|
const szi = parseFloat(pos.szi);
|
|
6
6
|
return {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
asset: {
|
|
8
|
+
assetId: pos.coin,
|
|
9
|
+
market: deriveMarket(pos.coin),
|
|
10
|
+
displaySymbol: pos.coin,
|
|
11
|
+
displayQuote: null,
|
|
12
|
+
},
|
|
10
13
|
side: szi >= 0 ? PositionSide.LONG : PositionSide.SHORT,
|
|
11
14
|
size: Math.abs(szi).toString(),
|
|
12
15
|
entryPrice: pos.entryPx ?? '0',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.js","sourceRoot":"","sources":["../../../../providers/hyperliquid/mappers/position.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["../../../../providers/hyperliquid/mappers/position.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAmB,EAAY,EAAE;IAC3D,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAA;IACvB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAE/B,OAAO;QACL,KAAK,EAAE;YACL,OAAO,EAAE,GAAG,CAAC,IAAI;YACjB,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;YAC9B,aAAa,EAAE,GAAG,CAAC,IAAI;YACvB,YAAY,EAAE,IAAI;SACnB;QACD,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK;QACvD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;QAC9B,UAAU,EAAE,GAAG,CAAC,OAAO,IAAI,GAAG;QAC9B,SAAS,EACP,GAAG,CAAC,aAAa,IAAI,GAAG,KAAK,CAAC;YAC5B,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;YAC5D,CAAC,CAAC,GAAG;QACT,gBAAgB,EAAE,GAAG,CAAC,aAAa,IAAI,GAAG;QAC1C,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK;QACpC,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,UAAU,EACR,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO;YACnC,CAAC,CAAC,UAAU,CAAC,KAAK;YAClB,CAAC,CAAC,UAAU,CAAC,QAAQ;KAC1B,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,13 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* Look up an asset ID by symbol, throwing if the symbol is unknown.
|
|
3
|
-
* Asset ID 0 is a valid Hyperliquid asset (BTC-PERP), so a fallback
|
|
4
|
-
* to 0 would silently corrupt data.
|
|
5
|
-
*/
|
|
6
|
-
export const resolveAssetIdFromLookup = (lookup, symbol) => {
|
|
7
|
-
const id = lookup.get(symbol);
|
|
8
|
-
if (id === undefined) {
|
|
9
|
-
throw new Error(`Unknown asset symbol: ${symbol}`);
|
|
10
|
-
}
|
|
11
|
-
return id;
|
|
12
|
-
};
|
|
1
|
+
"use strict";
|
|
13
2
|
//# sourceMappingURL=shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../providers/hyperliquid/mappers/shared.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../providers/hyperliquid/mappers/shared.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type guard for `HlSpotTransferDelta` — TypeScript cannot narrow off the
|
|
3
|
+
* `type` discriminant alone because the catch-all arm of `HlLedgerDelta` has
|
|
4
|
+
* `type: string` (a supertype of the literal `'spotTransfer'`). Use this at
|
|
5
|
+
* call sites that need the strongly-typed shape.
|
|
6
|
+
*/
|
|
7
|
+
export const isSpotTransferDelta = (delta) => delta.type === 'spotTransfer';
|
|
8
|
+
/**
|
|
9
|
+
* Type guard for `HlSendAssetDelta`. The wire `type` literal is `'send'`;
|
|
10
|
+
* see `HlSendAssetDelta` for the naming-vs-wire-format rationale. Same
|
|
11
|
+
* catch-all-arm caveat as `isSpotTransferDelta`.
|
|
12
|
+
*/
|
|
13
|
+
export const isSendAssetDelta = (delta) => delta.type === 'send';
|
|
14
|
+
// -- abstraction mode -------------------------------------------------------
|
|
15
|
+
/**
|
|
16
|
+
* Possible values returned by the `userAbstraction` info endpoint.
|
|
17
|
+
* `null` means abstraction has never been set (standard mode).
|
|
18
|
+
*/
|
|
19
|
+
export const HlAbstractionMode = {
|
|
20
|
+
DISABLED: 'disabled',
|
|
21
|
+
UNIFIED_ACCOUNT: 'unifiedAccount',
|
|
22
|
+
PORTFOLIO_MARGIN: 'portfolioMargin',
|
|
23
|
+
DEX_ABSTRACTION: 'dexAbstraction',
|
|
24
|
+
};
|
|
1
25
|
// ---------------------------------------------------------------------------
|
|
2
|
-
// Hyperliquid
|
|
26
|
+
// Hyperliquid EIP-712 primary type constants
|
|
3
27
|
// ---------------------------------------------------------------------------
|
|
4
|
-
export
|
|
28
|
+
export const HL_PRIMARY_TYPE_APPROVE_AGENT = 'HyperliquidTransaction:ApproveAgent';
|
|
29
|
+
export const HL_PRIMARY_TYPE_APPROVE_BUILDER_FEE = 'HyperliquidTransaction:ApproveBuilderFee';
|
|
30
|
+
export const HL_PRIMARY_TYPE_USER_SET_ABSTRACTION = 'HyperliquidTransaction:UserSetAbstraction';
|
|
31
|
+
export const HL_PRIMARY_TYPE_AGENT_SET_ABSTRACTION = 'HyperliquidTransaction:AgentSetAbstraction';
|
|
32
|
+
export const HL_PRIMARY_TYPE_WITHDRAW = 'HyperliquidTransaction:Withdraw';
|
|
33
|
+
export const HL_PRIMARY_TYPE_SEND_ASSET = 'HyperliquidTransaction:SendAsset';
|
|
34
|
+
export const HL_PRIMARY_TYPE_AGENT = 'Agent';
|
|
5
35
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../providers/hyperliquid/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../providers/hyperliquid/types.ts"],"names":[],"mappings":"AA4PA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,KAAoB,EACU,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAA;AAEhE;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,KAAoB,EACO,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAA;AA4BrD,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,UAAU;IACpB,eAAe,EAAE,gBAAgB;IACjC,gBAAgB,EAAE,iBAAiB;IACnC,eAAe,EAAE,gBAAgB;CACzB,CAAA;AA6CV,8EAA8E;AAC9E,6CAA6C;AAC7C,8EAA8E;AAE9E,MAAM,CAAC,MAAM,6BAA6B,GACxC,qCAA8C,CAAA;AAChD,MAAM,CAAC,MAAM,mCAAmC,GAC9C,0CAAmD,CAAA;AACrD,MAAM,CAAC,MAAM,oCAAoC,GAC/C,2CAAoD,CAAA;AACtD,MAAM,CAAC,MAAM,qCAAqC,GAChD,4CAAqD,CAAA;AACvD,MAAM,CAAC,MAAM,wBAAwB,GACnC,iCAA0C,CAAA;AAC5C,MAAM,CAAC,MAAM,0BAA0B,GACrC,kCAA2C,CAAA;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAgB,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Lighter raw API response types — shared between backend (REST) and SDK (WS)
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
export {};
|
|
5
|
+
//# sourceMappingURL=apiTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiTypes.js","sourceRoot":"","sources":["../../../providers/lighter/apiTypes.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../providers/lighter/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { FillStatus, LiquidityRole, OrderSide, OrderType, } from '../../../enums.js';
|
|
2
|
+
import { classifyFillFromPosition } from '../../_shared/fillClassification.js';
|
|
3
|
+
/**
|
|
4
|
+
* Map a raw Lighter trade to the generic Fill type.
|
|
5
|
+
* @param accountIndex - The viewer's Lighter account index (selects buy/sell side and maker/taker role).
|
|
6
|
+
* @param symbol - Resolved symbol (market_id → symbol lookup).
|
|
7
|
+
*/
|
|
8
|
+
export const mapFill = (trade, accountIndex, symbol) => {
|
|
9
|
+
const isBuyer = trade.bid_account_id === accountIndex;
|
|
10
|
+
const isMaker = (trade.is_maker_ask && !isBuyer) || (!trade.is_maker_ask && isBuyer);
|
|
11
|
+
// Lighter publishes both counterparties' position-before snapshots on every
|
|
12
|
+
// trade row; reading the wrong one mis-classifies when they differ.
|
|
13
|
+
const startPosition = isMaker
|
|
14
|
+
? trade.maker_position_size_before
|
|
15
|
+
: trade.taker_position_size_before;
|
|
16
|
+
return {
|
|
17
|
+
id: trade.trade_id.toString(),
|
|
18
|
+
orderId: String(isBuyer ? trade.bid_id : trade.ask_id),
|
|
19
|
+
asset: {
|
|
20
|
+
assetId: symbol,
|
|
21
|
+
market: 'lighter',
|
|
22
|
+
displaySymbol: symbol,
|
|
23
|
+
displayQuote: 'USDC',
|
|
24
|
+
},
|
|
25
|
+
side: isBuyer ? OrderSide.BUY : OrderSide.SELL,
|
|
26
|
+
type: OrderType.LIMIT,
|
|
27
|
+
size: trade.size,
|
|
28
|
+
price: trade.price,
|
|
29
|
+
status: FillStatus.FILLED,
|
|
30
|
+
liquidity: isMaker ? LiquidityRole.MAKER : LiquidityRole.TAKER,
|
|
31
|
+
fee: isMaker ? trade.maker_fee?.toString() : trade.taker_fee?.toString(),
|
|
32
|
+
startPosition,
|
|
33
|
+
// `classifyFillFromPosition` takes an HL-encoded side: `'B'` for buy,
|
|
34
|
+
// anything else for sell.
|
|
35
|
+
classification: classifyFillFromPosition(startPosition, isBuyer ? 'B' : 'A', trade.size),
|
|
36
|
+
createdAt: new Date(trade.timestamp).toISOString(),
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=fill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fill.js","sourceRoot":"","sources":["../../../../providers/lighter/mappers/fill.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,GACV,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAA;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,KAAc,EACd,YAAoB,EACpB,MAAc,EACR,EAAE;IACR,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,KAAK,YAAY,CAAA;IACrD,MAAM,OAAO,GACX,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,OAAO,CAAC,CAAA;IAEtE,4EAA4E;IAC5E,oEAAoE;IACpE,MAAM,aAAa,GAAG,OAAO;QAC3B,CAAC,CAAC,KAAK,CAAC,0BAA0B;QAClC,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAA;IAEpC,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QACtD,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,SAAS;YACjB,aAAa,EAAE,MAAM;YACrB,YAAY,EAAE,MAAM;SACrB;QACD,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI;QAC9C,IAAI,EAAE,SAAS,CAAC,KAAK;QACrB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK;QAC9D,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE;QACxE,aAAa;QACb,sEAAsE;QACtE,0BAA0B;QAC1B,cAAc,EAAE,wBAAwB,CACtC,aAAa,EACb,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EACnB,KAAK,CAAC,IAAI,CACX;QACD,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;KACnD,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../providers/lighter/mappers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EACL,aAAa,EACb,QAAQ,EACR,cAAc,EACd,eAAe,GAChB,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { OrderSide, OrderStatus, OrderType, TimeInForce, } from '../../../enums.js';
|
|
2
|
+
// Lighter's `type` enum uses hyphens in the OpenAPI spec but earlier API
|
|
3
|
+
// versions emitted underscores. Tolerate both so we don't silently fall
|
|
4
|
+
// through to LIMIT for stop/take-profit orders.
|
|
5
|
+
const mapOrderType = (ltType) => {
|
|
6
|
+
const normalized = ltType.replace(/-/g, '_');
|
|
7
|
+
const map = {
|
|
8
|
+
limit: OrderType.LIMIT,
|
|
9
|
+
market: OrderType.MARKET,
|
|
10
|
+
stop_loss: OrderType.STOP_MARKET,
|
|
11
|
+
stop_loss_limit: OrderType.STOP_LIMIT,
|
|
12
|
+
take_profit: OrderType.TAKE_PROFIT_MARKET,
|
|
13
|
+
take_profit_limit: OrderType.TAKE_PROFIT_LIMIT,
|
|
14
|
+
};
|
|
15
|
+
return map[normalized] ?? OrderType.LIMIT;
|
|
16
|
+
};
|
|
17
|
+
const mapTimeInForce = (tif) => {
|
|
18
|
+
switch (tif.replace(/-/g, '_')) {
|
|
19
|
+
case 'good_till_time':
|
|
20
|
+
return TimeInForce.GTT;
|
|
21
|
+
case 'immediate_or_cancel':
|
|
22
|
+
return TimeInForce.IOC;
|
|
23
|
+
case 'post_only':
|
|
24
|
+
return TimeInForce.POST_ONLY;
|
|
25
|
+
default:
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const mapOrderStatus = (status) => {
|
|
30
|
+
if (status === 'open' ||
|
|
31
|
+
status === 'in-progress' ||
|
|
32
|
+
status === 'in_progress') {
|
|
33
|
+
return OrderStatus.OPEN;
|
|
34
|
+
}
|
|
35
|
+
if (status === 'pending') {
|
|
36
|
+
return OrderStatus.PENDING;
|
|
37
|
+
}
|
|
38
|
+
if (status === 'filled') {
|
|
39
|
+
return OrderStatus.FILLED;
|
|
40
|
+
}
|
|
41
|
+
if (status.startsWith('canceled')) {
|
|
42
|
+
return OrderStatus.CANCELLED;
|
|
43
|
+
}
|
|
44
|
+
return OrderStatus.OPEN;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Map a raw Lighter order status to a short English sentence describing
|
|
48
|
+
* *why* the order ended in a terminal non-FILLED state. Non-terminal
|
|
49
|
+
* statuses, plain `filled`, and unknown values return `undefined`.
|
|
50
|
+
*/
|
|
51
|
+
export const mapStatusReason = (status) => {
|
|
52
|
+
switch (status) {
|
|
53
|
+
case 'canceled':
|
|
54
|
+
return 'Order cancelled.';
|
|
55
|
+
case 'canceled-post-only':
|
|
56
|
+
return 'Order cancelled: post-only order would have crossed the book.';
|
|
57
|
+
case 'canceled-reduce-only':
|
|
58
|
+
return 'Order cancelled: would not reduce your position.';
|
|
59
|
+
case 'canceled-position-not-allowed':
|
|
60
|
+
return 'Order cancelled: position not allowed.';
|
|
61
|
+
case 'canceled-margin-not-allowed':
|
|
62
|
+
return 'Order cancelled: insufficient margin.';
|
|
63
|
+
case 'canceled-too-much-slippage':
|
|
64
|
+
return 'Order cancelled: slippage exceeded tolerance.';
|
|
65
|
+
case 'canceled-not-enough-liquidity':
|
|
66
|
+
return 'Order cancelled: not enough liquidity to fill.';
|
|
67
|
+
case 'canceled-self-trade':
|
|
68
|
+
return 'Order cancelled: would self-trade against your own resting order.';
|
|
69
|
+
case 'canceled-expired':
|
|
70
|
+
return 'Order expired.';
|
|
71
|
+
case 'canceled-oco':
|
|
72
|
+
return 'Order cancelled: sibling OCO order filled or cancelled first.';
|
|
73
|
+
case 'canceled-child':
|
|
74
|
+
return 'Order cancelled: parent order was cancelled.';
|
|
75
|
+
case 'canceled-liquidation':
|
|
76
|
+
return 'Order cancelled: account was liquidated.';
|
|
77
|
+
case 'canceled-invalid-balance':
|
|
78
|
+
return 'Order cancelled: invalid balance.';
|
|
79
|
+
default:
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* True for order types Lighter exposes as TP/SL legs. Mirrors the
|
|
85
|
+
* Hyperliquid helper of the same name so the backend can split a raw
|
|
86
|
+
* Lighter order list into the same `openOrders` / `triggerOrders`
|
|
87
|
+
* buckets the SDK declares on `OrdersResponse`.
|
|
88
|
+
*/
|
|
89
|
+
export const isTriggerType = (type) => type === OrderType.TAKE_PROFIT_MARKET ||
|
|
90
|
+
type === OrderType.TAKE_PROFIT_LIMIT ||
|
|
91
|
+
type === OrderType.STOP_MARKET ||
|
|
92
|
+
type === OrderType.STOP_LIMIT;
|
|
93
|
+
/**
|
|
94
|
+
* Map a raw Lighter trigger order (stop/take-profit, market or limit) to
|
|
95
|
+
* the generic `TriggerOrder` shape. For market variants the `limitPrice`
|
|
96
|
+
* field is omitted; for limit variants `order.price` is the limit and
|
|
97
|
+
* `order.trigger_price` is the activation level.
|
|
98
|
+
*/
|
|
99
|
+
export const mapTriggerOrder = (order, symbol) => {
|
|
100
|
+
const type = mapOrderType(order.type);
|
|
101
|
+
const isLimit = type === OrderType.TAKE_PROFIT_LIMIT || type === OrderType.STOP_LIMIT;
|
|
102
|
+
return {
|
|
103
|
+
id: order.order_id,
|
|
104
|
+
asset: {
|
|
105
|
+
assetId: symbol,
|
|
106
|
+
market: 'lighter',
|
|
107
|
+
displaySymbol: symbol,
|
|
108
|
+
displayQuote: 'USDC',
|
|
109
|
+
},
|
|
110
|
+
type,
|
|
111
|
+
size: order.initial_base_amount,
|
|
112
|
+
triggerPrice: order.trigger_price,
|
|
113
|
+
...(isLimit ? { limitPrice: order.price } : {}),
|
|
114
|
+
createdAt: new Date(order.created_at * 1000).toISOString(),
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Map a raw Lighter order to the generic OpenOrder type.
|
|
119
|
+
* @param symbol - Resolved symbol (market_index → symbol lookup)
|
|
120
|
+
*/
|
|
121
|
+
export const mapOrder = (order, symbol) => ({
|
|
122
|
+
id: order.order_id,
|
|
123
|
+
asset: {
|
|
124
|
+
assetId: symbol,
|
|
125
|
+
market: 'lighter',
|
|
126
|
+
displaySymbol: symbol,
|
|
127
|
+
displayQuote: 'USDC',
|
|
128
|
+
},
|
|
129
|
+
side: order.is_ask ? OrderSide.SELL : OrderSide.BUY,
|
|
130
|
+
type: mapOrderType(order.type),
|
|
131
|
+
size: order.initial_base_amount,
|
|
132
|
+
price: order.price,
|
|
133
|
+
filledSize: order.filled_base_amount,
|
|
134
|
+
reduceOnly: order.reduce_only,
|
|
135
|
+
createdAt: new Date(order.created_at * 1000).toISOString(),
|
|
136
|
+
});
|
|
137
|
+
/**
|
|
138
|
+
* Map a raw Lighter order to the rich Order type — adds status, time-in-force
|
|
139
|
+
* and remaining/filled sizes on top of the OpenOrder fields.
|
|
140
|
+
*/
|
|
141
|
+
export const mapOrderDetail = (order, symbol) => ({
|
|
142
|
+
orderId: order.order_id,
|
|
143
|
+
asset: {
|
|
144
|
+
assetId: symbol,
|
|
145
|
+
market: 'lighter',
|
|
146
|
+
displaySymbol: symbol,
|
|
147
|
+
displayQuote: 'USDC',
|
|
148
|
+
},
|
|
149
|
+
side: order.is_ask ? OrderSide.SELL : OrderSide.BUY,
|
|
150
|
+
type: mapOrderType(order.type),
|
|
151
|
+
price: order.price,
|
|
152
|
+
originalSize: order.initial_base_amount,
|
|
153
|
+
remainingSize: order.remaining_base_amount,
|
|
154
|
+
filledSize: order.filled_base_amount,
|
|
155
|
+
timeInForce: mapTimeInForce(order.time_in_force),
|
|
156
|
+
reduceOnly: order.reduce_only,
|
|
157
|
+
status: mapOrderStatus(order.status),
|
|
158
|
+
statusReason: mapStatusReason(order.status),
|
|
159
|
+
createdAt: new Date(order.created_at * 1000).toISOString(),
|
|
160
|
+
updatedAt: new Date(order.updated_at * 1000).toISOString(),
|
|
161
|
+
});
|
|
162
|
+
//# sourceMappingURL=order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../../providers/lighter/mappers/order.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { MarginMode, PositionSide } from '../../../enums.js';
|
|
2
|
+
import { LT_MARGIN_MODE_ISOLATED } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Map a raw Lighter account position to the generic Position type.
|
|
5
|
+
* @param symbol Resolved symbol (market_id → symbol lookup, or `pos.symbol`).
|
|
6
|
+
*/
|
|
7
|
+
export const mapPosition = (pos, symbol) => {
|
|
8
|
+
const size = parseFloat(pos.position);
|
|
9
|
+
const isIsolated = pos.margin_mode === LT_MARGIN_MODE_ISOLATED;
|
|
10
|
+
// `allocated_margin` is only populated for isolated positions (always "0"
|
|
11
|
+
// on cross accounts). For cross, derive margin as
|
|
12
|
+
// `position_value × initial_margin_fraction / 100` (IMF is in percent).
|
|
13
|
+
const positionValue = Math.abs(parseFloat(pos.position_value));
|
|
14
|
+
const imf = parseFloat(pos.initial_margin_fraction);
|
|
15
|
+
const marginUsed = isIsolated
|
|
16
|
+
? pos.allocated_margin
|
|
17
|
+
: ((positionValue * imf) / 100).toString();
|
|
18
|
+
return {
|
|
19
|
+
asset: {
|
|
20
|
+
assetId: symbol,
|
|
21
|
+
market: 'lighter',
|
|
22
|
+
displaySymbol: symbol,
|
|
23
|
+
displayQuote: 'USDC',
|
|
24
|
+
},
|
|
25
|
+
side: pos.sign >= 0 ? PositionSide.LONG : PositionSide.SHORT,
|
|
26
|
+
size: Math.abs(size).toString(),
|
|
27
|
+
entryPrice: pos.avg_entry_price,
|
|
28
|
+
markPrice: pos.position_value === '0' || size === 0
|
|
29
|
+
? '0'
|
|
30
|
+
: (parseFloat(pos.position_value) / Math.abs(size)).toString(),
|
|
31
|
+
liquidationPrice: pos.liquidation_price,
|
|
32
|
+
unrealizedPnl: pos.unrealized_pnl,
|
|
33
|
+
leverage: imf > 0 ? Math.round(100 / imf) : 1,
|
|
34
|
+
marginUsed,
|
|
35
|
+
marginMode: isIsolated ? MarginMode.ISOLATED : MarginMode.CROSS,
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=position.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["../../../../providers/lighter/mappers/position.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAG5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,GAAsB,EACtB,MAAc,EACJ,EAAE;IACZ,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACrC,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,KAAK,uBAAuB,CAAA;IAE9D,0EAA0E;IAC1E,kDAAkD;IAClD,wEAAwE;IACxE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAA;IAC9D,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;IACnD,MAAM,UAAU,GAAG,UAAU;QAC3B,CAAC,CAAC,GAAG,CAAC,gBAAgB;QACtB,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;IAE5C,OAAO;QACL,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,SAAS;YACjB,aAAa,EAAE,MAAM;YACrB,YAAY,EAAE,MAAM;SACrB;QACD,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK;QAC5D,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;QAC/B,UAAU,EAAE,GAAG,CAAC,eAAe;QAC/B,SAAS,EACP,GAAG,CAAC,cAAc,KAAK,GAAG,IAAI,IAAI,KAAK,CAAC;YACtC,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;QAClE,gBAAgB,EAAE,GAAG,CAAC,iBAAiB;QACvC,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,UAAU;QACV,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;KAChE,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Lighter WASM signer parameter types — shapes of `wasmSignParams` per
|
|
2
|
+
// action. The backend populates these and the SDK passes them to the WASM
|
|
3
|
+
// signer alongside SDK-managed fields (nonce, account_index, api_key_index).
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// Lighter WASM signer constants
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
export const LT_ORDER_TYPE_LIMIT = 0;
|
|
8
|
+
export const LT_ORDER_TYPE_MARKET = 1;
|
|
9
|
+
export const LT_ORDER_TYPE_STOP_LOSS = 2;
|
|
10
|
+
export const LT_ORDER_TYPE_STOP_LOSS_LIMIT = 3;
|
|
11
|
+
export const LT_ORDER_TYPE_TAKE_PROFIT = 4;
|
|
12
|
+
export const LT_ORDER_TYPE_TAKE_PROFIT_LIMIT = 5;
|
|
13
|
+
export const LT_ORDER_TYPE_TWAP = 6;
|
|
14
|
+
export const LT_TIME_IN_FORCE_IOC = 0;
|
|
15
|
+
export const LT_TIME_IN_FORCE_GTC = 1;
|
|
16
|
+
export const LT_TIME_IN_FORCE_POST_ONLY = 2;
|
|
17
|
+
export const LT_MARGIN_MODE_CROSS = 0;
|
|
18
|
+
export const LT_MARGIN_MODE_ISOLATED = 1;
|
|
19
|
+
export const LT_MARGIN_DIRECTION_REMOVE = 0;
|
|
20
|
+
export const LT_MARGIN_DIRECTION_ADD = 1;
|
|
21
|
+
export const LT_ROUTE_PERP = 0;
|
|
22
|
+
export const LT_ROUTE_SPOT = 1;
|
|
23
|
+
export const LT_ASSET_ID_USDC = 3;
|
|
24
|
+
export const LT_NIL_TRIGGER_PRICE = 0;
|
|
25
|
+
export const LT_DEFAULT_ORDER_EXPIRY = -1;
|
|
26
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../providers/lighter/types.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,0EAA0E;AAC1E,6EAA6E;AAgF7E,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAA;AACpC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAA;AACrC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAA;AACxC,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAA;AAC9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAA;AAC1C,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAA;AAChD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAEnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAA;AACrC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAA;AACrC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAA;AAE3C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAA;AACrC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAA;AAExC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAA;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAA;AAExC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAA;AAC9B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAA;AAE9B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAA;AAEjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAA;AACrC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../providers.ts"],"names":[],"mappings":""}
|