@lifi/perps-sdk-provider-lighter 41.0.0 → 41.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/README.md +4 -2
- package/dist/cjs/utils/mapOrder.d.ts.map +1 -1
- package/dist/cjs/utils/mapOrder.js +33 -13
- package/dist/cjs/utils/mapOrder.js.map +1 -1
- package/dist/esm/utils/mapOrder.d.ts.map +1 -1
- package/dist/esm/utils/mapOrder.js +33 -13
- package/dist/esm/utils/mapOrder.js.map +1 -1
- package/dist/types/utils/mapOrder.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/utils/mapOrder.ts +43 -13
package/README.md
CHANGED
|
@@ -118,6 +118,8 @@ Lighter order rows contain no transaction hash, so `explorerLink` stays absent.
|
|
|
118
118
|
|
|
119
119
|
| Lighter status | SDK status |
|
|
120
120
|
| --- | --- |
|
|
121
|
+
| `in-progress` | `ACCEPTED` |
|
|
122
|
+
| `pending` | `OPEN` |
|
|
121
123
|
| `open` with `trigger_status: parent-order` | `PENDING` |
|
|
122
124
|
| `open` with a positive filled amount | `PARTIALLY_FILLED` |
|
|
123
125
|
| `open` | `OPEN` |
|
|
@@ -126,8 +128,8 @@ Lighter order rows contain no transaction hash, so `explorerLink` stays absent.
|
|
|
126
128
|
| `canceled` and documented cancellation variants | `CANCELLED` |
|
|
127
129
|
| `canceled-expired` | `EXPIRED` |
|
|
128
130
|
|
|
129
|
-
Cancelled rows
|
|
130
|
-
|
|
131
|
+
Cancelled rows give a short display text for the venue status in `statusReason`, not the venue status code.
|
|
132
|
+
Only an unknown status throws `PerpsError`.
|
|
131
133
|
|
|
132
134
|
```ts
|
|
133
135
|
import { OrderStatus } from '@lifi/perps-types'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapOrder.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAa,MAAM,mBAAmB,CAAA;AASxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"mapOrder.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAa,MAAM,mBAAmB,CAAA;AASxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAsIhD,eAAO,MAAM,QAAQ,GACnB,OAAO,OAAO,EACd,QAAQ,aAAa,KACpB,KAAK,GAAG,SAqEV,CAAA;AAMD,eAAO,MAAM,eAAe,GAC1B,WAAW,OAAO,EAAE,EACpB,eAAe,CAAC,WAAW,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,KAChE;IAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CA6BzC,CAAA"}
|
|
@@ -41,23 +41,41 @@ const mapTimeInForce = (tif) => {
|
|
|
41
41
|
}
|
|
42
42
|
};
|
|
43
43
|
const hasFill = (order) => (0, perps_sdk_1.safeIsDecimalStringGreaterThan)(order.filled_base_amount, '0') === true;
|
|
44
|
-
const
|
|
44
|
+
const CANCELLED_STATUS_REASONS = {
|
|
45
|
+
canceled: 'Cancelled.',
|
|
46
|
+
'canceled-post-only': 'Cancelled: the post-only order would have filled immediately.',
|
|
47
|
+
'canceled-reduce-only': 'Cancelled: the reduce-only order would have increased the position.',
|
|
48
|
+
'canceled-position-not-allowed': 'Cancelled: the venue does not allow this position.',
|
|
49
|
+
'canceled-margin-not-allowed': 'Cancelled: not enough margin for this order.',
|
|
50
|
+
'canceled-too-much-slippage': 'Cancelled: the price moved more than the slippage limit.',
|
|
51
|
+
'canceled-not-enough-liquidity': 'Cancelled: not enough liquidity to fill the order.',
|
|
52
|
+
'canceled-self-trade': 'Cancelled: the order would have traded with your own order.',
|
|
53
|
+
'canceled-oco': 'Cancelled: the other order in the pair executed.',
|
|
54
|
+
'canceled-child': 'Cancelled: the parent order closed.',
|
|
55
|
+
'canceled-liquidation': 'Cancelled: the account was liquidated.',
|
|
56
|
+
'canceled-invalid-balance': 'Cancelled: the account balance is not sufficient.',
|
|
57
|
+
};
|
|
58
|
+
const mapOrderLifecycle = (order) => {
|
|
45
59
|
switch (order.status) {
|
|
46
60
|
case 'in-progress':
|
|
47
|
-
return perps_types_1.OrderStatus.ACCEPTED;
|
|
61
|
+
return { status: perps_types_1.OrderStatus.ACCEPTED };
|
|
48
62
|
case 'pending':
|
|
49
|
-
return perps_types_1.OrderStatus.OPEN;
|
|
63
|
+
return { status: perps_types_1.OrderStatus.OPEN };
|
|
50
64
|
case 'open':
|
|
51
65
|
if (order.trigger_status === 'parent-order') {
|
|
52
|
-
return perps_types_1.OrderStatus.PENDING;
|
|
66
|
+
return { status: perps_types_1.OrderStatus.PENDING };
|
|
53
67
|
}
|
|
54
|
-
return
|
|
68
|
+
return {
|
|
69
|
+
status: hasFill(order)
|
|
70
|
+
? perps_types_1.OrderStatus.PARTIALLY_FILLED
|
|
71
|
+
: perps_types_1.OrderStatus.OPEN,
|
|
72
|
+
};
|
|
55
73
|
case 'triggered':
|
|
56
|
-
return perps_types_1.OrderStatus.TRIGGERED;
|
|
74
|
+
return { status: perps_types_1.OrderStatus.TRIGGERED };
|
|
57
75
|
case 'filled':
|
|
58
|
-
return perps_types_1.OrderStatus.FILLED;
|
|
76
|
+
return { status: perps_types_1.OrderStatus.FILLED };
|
|
59
77
|
case 'canceled-expired':
|
|
60
|
-
return perps_types_1.OrderStatus.EXPIRED;
|
|
78
|
+
return { status: perps_types_1.OrderStatus.EXPIRED };
|
|
61
79
|
case 'canceled':
|
|
62
80
|
case 'canceled-post-only':
|
|
63
81
|
case 'canceled-reduce-only':
|
|
@@ -70,7 +88,10 @@ const mapOrderStatus = (order) => {
|
|
|
70
88
|
case 'canceled-child':
|
|
71
89
|
case 'canceled-liquidation':
|
|
72
90
|
case 'canceled-invalid-balance':
|
|
73
|
-
return
|
|
91
|
+
return {
|
|
92
|
+
status: perps_types_1.OrderStatus.CANCELLED,
|
|
93
|
+
statusReason: CANCELLED_STATUS_REASONS[order.status],
|
|
94
|
+
};
|
|
74
95
|
default:
|
|
75
96
|
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.SDKError, `Unknown Lighter order status: ${order.status}`);
|
|
76
97
|
}
|
|
@@ -95,7 +116,7 @@ const mapOrder = (order, market) => {
|
|
|
95
116
|
const expiresAt = order.order_expiry > 0
|
|
96
117
|
? (0, perps_sdk_1.safeTimestampToIsoString)(order.order_expiry)
|
|
97
118
|
: undefined;
|
|
98
|
-
const
|
|
119
|
+
const lifecycle = mapOrderLifecycle(order);
|
|
99
120
|
const base = {
|
|
100
121
|
orderId: order.order_id,
|
|
101
122
|
...(order.client_order_id === NO_CLIENT_ORDER_ID
|
|
@@ -103,8 +124,7 @@ const mapOrder = (order, market) => {
|
|
|
103
124
|
: { clientOrderId: order.client_order_id }),
|
|
104
125
|
market,
|
|
105
126
|
side: order.is_ask ? perps_types_1.OrderSide.SELL : perps_types_1.OrderSide.BUY,
|
|
106
|
-
|
|
107
|
-
...(status === perps_types_1.OrderStatus.CANCELLED ? { statusReason: order.status } : {}),
|
|
127
|
+
...lifecycle,
|
|
108
128
|
originalSize: order.initial_base_amount,
|
|
109
129
|
remainingSize: order.remaining_base_amount,
|
|
110
130
|
filledSize: order.filled_base_amount,
|
|
@@ -155,7 +175,7 @@ const mapOrderUpdates = (rawOrders, resolveMarket) => {
|
|
|
155
175
|
let status;
|
|
156
176
|
try {
|
|
157
177
|
order = market === undefined ? undefined : (0, exports.mapOrder)(raw, market);
|
|
158
|
-
status = order?.status ??
|
|
178
|
+
status = order?.status ?? mapOrderLifecycle(raw).status;
|
|
159
179
|
}
|
|
160
180
|
catch (error) {
|
|
161
181
|
if (!(error instanceof perps_sdk_1.PerpsError)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapOrder.js","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":";;;AAAA,+CASwB;AAExB,mDAM0B;AAC1B,kDAAsD;AAEtD,uDAAsE;AAGtE,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAE9B,MAAM,YAAY,GAAG,CAAC,IAAY,EAAiB,EAAE;IACnD,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,QAAQ,CAAC;QACd,KAAK,aAAa;YAChB,OAAO,uBAAS,CAAC,MAAM,CAAA;QACzB,KAAK,OAAO,CAAC;QACb,KAAK,UAAU;YACb,OAAO,uBAAS,CAAC,KAAK,CAAA;QACxB,KAAK,WAAW;YACd,OAAO,uBAAS,CAAC,WAAW,CAAA;QAC9B,KAAK,iBAAiB;YACpB,OAAO,uBAAS,CAAC,UAAU,CAAA;QAC7B,KAAK,aAAa;YAChB,OAAO,uBAAS,CAAC,kBAAkB,CAAA;QACrC,KAAK,mBAAmB;YACtB,OAAO,uBAAS,CAAC,iBAAiB,CAAA;QACpC,KAAK,MAAM;YACT,OAAO,uBAAS,CAAC,IAAI,CAAA;QACvB;YACE,MAAM,IAAI,sBAAU,CAClB,4BAAc,CAAC,QAAQ,EACvB,+BAA+B,IAAI,EAAE,CACtC,CAAA;IACL,CAAC;AACH,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,GAAW,EAAe,EAAE;IAClD,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,gBAAgB;YACnB,OAAO,yBAAW,CAAC,GAAG,CAAA;QACxB,KAAK,qBAAqB;YACxB,OAAO,yBAAW,CAAC,GAAG,CAAA;QACxB,KAAK,WAAW;YACd,OAAO,yBAAW,CAAC,SAAS,CAAA;QAC9B;YACE,MAAM,IAAI,sBAAU,CAClB,4BAAc,CAAC,QAAQ,EACvB,kCAAkC,GAAG,EAAE,CACxC,CAAA;IACL,CAAC;AACH,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,KAAc,EAAW,EAAE,CAC1C,IAAA,0CAA8B,EAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA;AAExE,MAAM,cAAc,GAAG,
|
|
1
|
+
{"version":3,"file":"mapOrder.js","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapOrder.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAa,MAAM,mBAAmB,CAAA;AASxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"mapOrder.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAa,MAAM,mBAAmB,CAAA;AASxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAiIhD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GACnB,OAAO,OAAO,EACd,QAAQ,aAAa,KACpB,KAAK,GAAG,SAqEV,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC1B,WAAW,OAAO,EAAE,EACpB,eAAe,CAAC,WAAW,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,KAChE;IAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CA6BzC,CAAA"}
|
|
@@ -39,23 +39,41 @@ const mapTimeInForce = (tif) => {
|
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
const hasFill = (order) => safeIsDecimalStringGreaterThan(order.filled_base_amount, '0') === true;
|
|
42
|
-
const
|
|
42
|
+
const CANCELLED_STATUS_REASONS = {
|
|
43
|
+
canceled: 'Cancelled.',
|
|
44
|
+
'canceled-post-only': 'Cancelled: the post-only order would have filled immediately.',
|
|
45
|
+
'canceled-reduce-only': 'Cancelled: the reduce-only order would have increased the position.',
|
|
46
|
+
'canceled-position-not-allowed': 'Cancelled: the venue does not allow this position.',
|
|
47
|
+
'canceled-margin-not-allowed': 'Cancelled: not enough margin for this order.',
|
|
48
|
+
'canceled-too-much-slippage': 'Cancelled: the price moved more than the slippage limit.',
|
|
49
|
+
'canceled-not-enough-liquidity': 'Cancelled: not enough liquidity to fill the order.',
|
|
50
|
+
'canceled-self-trade': 'Cancelled: the order would have traded with your own order.',
|
|
51
|
+
'canceled-oco': 'Cancelled: the other order in the pair executed.',
|
|
52
|
+
'canceled-child': 'Cancelled: the parent order closed.',
|
|
53
|
+
'canceled-liquidation': 'Cancelled: the account was liquidated.',
|
|
54
|
+
'canceled-invalid-balance': 'Cancelled: the account balance is not sufficient.',
|
|
55
|
+
};
|
|
56
|
+
const mapOrderLifecycle = (order) => {
|
|
43
57
|
switch (order.status) {
|
|
44
58
|
case 'in-progress':
|
|
45
|
-
return OrderStatus.ACCEPTED;
|
|
59
|
+
return { status: OrderStatus.ACCEPTED };
|
|
46
60
|
case 'pending':
|
|
47
|
-
return OrderStatus.OPEN;
|
|
61
|
+
return { status: OrderStatus.OPEN };
|
|
48
62
|
case 'open':
|
|
49
63
|
if (order.trigger_status === 'parent-order') {
|
|
50
|
-
return OrderStatus.PENDING;
|
|
64
|
+
return { status: OrderStatus.PENDING };
|
|
51
65
|
}
|
|
52
|
-
return
|
|
66
|
+
return {
|
|
67
|
+
status: hasFill(order)
|
|
68
|
+
? OrderStatus.PARTIALLY_FILLED
|
|
69
|
+
: OrderStatus.OPEN,
|
|
70
|
+
};
|
|
53
71
|
case 'triggered':
|
|
54
|
-
return OrderStatus.TRIGGERED;
|
|
72
|
+
return { status: OrderStatus.TRIGGERED };
|
|
55
73
|
case 'filled':
|
|
56
|
-
return OrderStatus.FILLED;
|
|
74
|
+
return { status: OrderStatus.FILLED };
|
|
57
75
|
case 'canceled-expired':
|
|
58
|
-
return OrderStatus.EXPIRED;
|
|
76
|
+
return { status: OrderStatus.EXPIRED };
|
|
59
77
|
case 'canceled':
|
|
60
78
|
case 'canceled-post-only':
|
|
61
79
|
case 'canceled-reduce-only':
|
|
@@ -68,7 +86,10 @@ const mapOrderStatus = (order) => {
|
|
|
68
86
|
case 'canceled-child':
|
|
69
87
|
case 'canceled-liquidation':
|
|
70
88
|
case 'canceled-invalid-balance':
|
|
71
|
-
return
|
|
89
|
+
return {
|
|
90
|
+
status: OrderStatus.CANCELLED,
|
|
91
|
+
statusReason: CANCELLED_STATUS_REASONS[order.status],
|
|
92
|
+
};
|
|
72
93
|
default:
|
|
73
94
|
throw new PerpsError(PerpsErrorCode.SDKError, `Unknown Lighter order status: ${order.status}`);
|
|
74
95
|
}
|
|
@@ -98,7 +119,7 @@ export const mapOrder = (order, market) => {
|
|
|
98
119
|
const expiresAt = order.order_expiry > 0
|
|
99
120
|
? safeTimestampToIsoString(order.order_expiry)
|
|
100
121
|
: undefined;
|
|
101
|
-
const
|
|
122
|
+
const lifecycle = mapOrderLifecycle(order);
|
|
102
123
|
const base = {
|
|
103
124
|
orderId: order.order_id,
|
|
104
125
|
...(order.client_order_id === NO_CLIENT_ORDER_ID
|
|
@@ -106,8 +127,7 @@ export const mapOrder = (order, market) => {
|
|
|
106
127
|
: { clientOrderId: order.client_order_id }),
|
|
107
128
|
market,
|
|
108
129
|
side: order.is_ask ? OrderSide.SELL : OrderSide.BUY,
|
|
109
|
-
|
|
110
|
-
...(status === OrderStatus.CANCELLED ? { statusReason: order.status } : {}),
|
|
130
|
+
...lifecycle,
|
|
111
131
|
originalSize: order.initial_base_amount,
|
|
112
132
|
remainingSize: order.remaining_base_amount,
|
|
113
133
|
filledSize: order.filled_base_amount,
|
|
@@ -162,7 +182,7 @@ export const mapOrderUpdates = (rawOrders, resolveMarket) => {
|
|
|
162
182
|
let status;
|
|
163
183
|
try {
|
|
164
184
|
order = market === undefined ? undefined : mapOrder(raw, market);
|
|
165
|
-
status = order?.status ??
|
|
185
|
+
status = order?.status ?? mapOrderLifecycle(raw).status;
|
|
166
186
|
}
|
|
167
187
|
catch (error) {
|
|
168
188
|
if (!(error instanceof PerpsError)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapOrder.js","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,uBAAuB,EACvB,8BAA8B,EAC9B,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,GACN,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,SAAS,EACT,WAAW,EACX,SAAS,EACT,cAAc,EACd,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAA;AAEtE,kFAAkF;AAClF,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAE9B,MAAM,YAAY,GAAG,CAAC,IAAY,EAAiB,EAAE;IACnD,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,QAAQ,CAAC;QACd,KAAK,aAAa;YAChB,OAAO,SAAS,CAAC,MAAM,CAAA;QACzB,KAAK,OAAO,CAAC;QACb,KAAK,UAAU;YACb,OAAO,SAAS,CAAC,KAAK,CAAA;QACxB,KAAK,WAAW;YACd,OAAO,SAAS,CAAC,WAAW,CAAA;QAC9B,KAAK,iBAAiB;YACpB,OAAO,SAAS,CAAC,UAAU,CAAA;QAC7B,KAAK,aAAa;YAChB,OAAO,SAAS,CAAC,kBAAkB,CAAA;QACrC,KAAK,mBAAmB;YACtB,OAAO,SAAS,CAAC,iBAAiB,CAAA;QACpC,KAAK,MAAM;YACT,OAAO,SAAS,CAAC,IAAI,CAAA;QACvB;YACE,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,QAAQ,EACvB,+BAA+B,IAAI,EAAE,CACtC,CAAA;IACL,CAAC;AACH,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,GAAW,EAAe,EAAE;IAClD,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,gBAAgB;YACnB,OAAO,WAAW,CAAC,GAAG,CAAA;QACxB,KAAK,qBAAqB;YACxB,OAAO,WAAW,CAAC,GAAG,CAAA;QACxB,KAAK,WAAW;YACd,OAAO,WAAW,CAAC,SAAS,CAAA;QAC9B;YACE,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,QAAQ,EACvB,kCAAkC,GAAG,EAAE,CACxC,CAAA;IACL,CAAC;AACH,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,KAAc,EAAW,EAAE,CAC1C,8BAA8B,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,KAAK,IAAI,CAAA;AAExE,MAAM,cAAc,GAAG,
|
|
1
|
+
{"version":3,"file":"mapOrder.js","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapOrder.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAa,MAAM,mBAAmB,CAAA;AASxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"mapOrder.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAa,MAAM,mBAAmB,CAAA;AASxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAiIhD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GACnB,OAAO,OAAO,EACd,QAAQ,aAAa,KACpB,KAAK,GAAG,SAqEV,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC1B,WAAW,OAAO,EAAE,EACpB,eAAe,CAAC,WAAW,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,KAChE;IAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CA6BzC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/perps-sdk-provider-lighter",
|
|
3
|
-
"version": "41.0.
|
|
3
|
+
"version": "41.0.1",
|
|
4
4
|
"description": "Lighter provider plugin for @lifi/perps-sdk",
|
|
5
5
|
"homepage": "https://github.com/lifinance/perps-sdk",
|
|
6
6
|
"bugs": {
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"big.js": "^7.0.1",
|
|
46
46
|
"viem": "^2.55.18",
|
|
47
|
-
"@lifi/perps-types": "^25.0.
|
|
47
|
+
"@lifi/perps-types": "^25.0.1"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"@lifi/perps-sdk": "^28.0.0"
|
package/src/utils/mapOrder.ts
CHANGED
|
@@ -68,23 +68,51 @@ const mapTimeInForce = (tif: string): TimeInForce => {
|
|
|
68
68
|
const hasFill = (order: LtOrder): boolean =>
|
|
69
69
|
safeIsDecimalStringGreaterThan(order.filled_base_amount, '0') === true
|
|
70
70
|
|
|
71
|
-
const
|
|
71
|
+
const CANCELLED_STATUS_REASONS = {
|
|
72
|
+
canceled: 'Cancelled.',
|
|
73
|
+
'canceled-post-only':
|
|
74
|
+
'Cancelled: the post-only order would have filled immediately.',
|
|
75
|
+
'canceled-reduce-only':
|
|
76
|
+
'Cancelled: the reduce-only order would have increased the position.',
|
|
77
|
+
'canceled-position-not-allowed':
|
|
78
|
+
'Cancelled: the venue does not allow this position.',
|
|
79
|
+
'canceled-margin-not-allowed': 'Cancelled: not enough margin for this order.',
|
|
80
|
+
'canceled-too-much-slippage':
|
|
81
|
+
'Cancelled: the price moved more than the slippage limit.',
|
|
82
|
+
'canceled-not-enough-liquidity':
|
|
83
|
+
'Cancelled: not enough liquidity to fill the order.',
|
|
84
|
+
'canceled-self-trade':
|
|
85
|
+
'Cancelled: the order would have traded with your own order.',
|
|
86
|
+
'canceled-oco': 'Cancelled: the other order in the pair executed.',
|
|
87
|
+
'canceled-child': 'Cancelled: the parent order closed.',
|
|
88
|
+
'canceled-liquidation': 'Cancelled: the account was liquidated.',
|
|
89
|
+
'canceled-invalid-balance':
|
|
90
|
+
'Cancelled: the account balance is not sufficient.',
|
|
91
|
+
} as const
|
|
92
|
+
|
|
93
|
+
const mapOrderLifecycle = (
|
|
94
|
+
order: LtOrder
|
|
95
|
+
): Pick<OrderBase, 'status' | 'statusReason'> => {
|
|
72
96
|
switch (order.status) {
|
|
73
97
|
case 'in-progress':
|
|
74
|
-
return OrderStatus.ACCEPTED
|
|
98
|
+
return { status: OrderStatus.ACCEPTED }
|
|
75
99
|
case 'pending':
|
|
76
|
-
return OrderStatus.OPEN
|
|
100
|
+
return { status: OrderStatus.OPEN }
|
|
77
101
|
case 'open':
|
|
78
102
|
if (order.trigger_status === 'parent-order') {
|
|
79
|
-
return OrderStatus.PENDING
|
|
103
|
+
return { status: OrderStatus.PENDING }
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
status: hasFill(order)
|
|
107
|
+
? OrderStatus.PARTIALLY_FILLED
|
|
108
|
+
: OrderStatus.OPEN,
|
|
80
109
|
}
|
|
81
|
-
return hasFill(order) ? OrderStatus.PARTIALLY_FILLED : OrderStatus.OPEN
|
|
82
110
|
case 'triggered':
|
|
83
|
-
return OrderStatus.TRIGGERED
|
|
111
|
+
return { status: OrderStatus.TRIGGERED }
|
|
84
112
|
case 'filled':
|
|
85
|
-
return OrderStatus.FILLED
|
|
113
|
+
return { status: OrderStatus.FILLED }
|
|
86
114
|
case 'canceled-expired':
|
|
87
|
-
return OrderStatus.EXPIRED
|
|
115
|
+
return { status: OrderStatus.EXPIRED }
|
|
88
116
|
case 'canceled':
|
|
89
117
|
case 'canceled-post-only':
|
|
90
118
|
case 'canceled-reduce-only':
|
|
@@ -97,7 +125,10 @@ const mapOrderStatus = (order: LtOrder): OrderStatus => {
|
|
|
97
125
|
case 'canceled-child':
|
|
98
126
|
case 'canceled-liquidation':
|
|
99
127
|
case 'canceled-invalid-balance':
|
|
100
|
-
return
|
|
128
|
+
return {
|
|
129
|
+
status: OrderStatus.CANCELLED,
|
|
130
|
+
statusReason: CANCELLED_STATUS_REASONS[order.status],
|
|
131
|
+
}
|
|
101
132
|
default:
|
|
102
133
|
throw new PerpsError(
|
|
103
134
|
PerpsErrorCode.SDKError,
|
|
@@ -143,7 +174,7 @@ export const mapOrder = (
|
|
|
143
174
|
order.order_expiry > 0
|
|
144
175
|
? safeTimestampToIsoString(order.order_expiry)
|
|
145
176
|
: undefined
|
|
146
|
-
const
|
|
177
|
+
const lifecycle = mapOrderLifecycle(order)
|
|
147
178
|
const base: OrderBase = {
|
|
148
179
|
orderId: order.order_id,
|
|
149
180
|
...(order.client_order_id === NO_CLIENT_ORDER_ID
|
|
@@ -151,8 +182,7 @@ export const mapOrder = (
|
|
|
151
182
|
: { clientOrderId: order.client_order_id }),
|
|
152
183
|
market,
|
|
153
184
|
side: order.is_ask ? OrderSide.SELL : OrderSide.BUY,
|
|
154
|
-
|
|
155
|
-
...(status === OrderStatus.CANCELLED ? { statusReason: order.status } : {}),
|
|
185
|
+
...lifecycle,
|
|
156
186
|
originalSize: order.initial_base_amount,
|
|
157
187
|
remainingSize: order.remaining_base_amount,
|
|
158
188
|
filledSize: order.filled_base_amount,
|
|
@@ -211,7 +241,7 @@ export const mapOrderUpdates = (
|
|
|
211
241
|
let status: OrderStatus
|
|
212
242
|
try {
|
|
213
243
|
order = market === undefined ? undefined : mapOrder(raw, market)
|
|
214
|
-
status = order?.status ??
|
|
244
|
+
status = order?.status ?? mapOrderLifecycle(raw).status
|
|
215
245
|
} catch (error) {
|
|
216
246
|
if (!(error instanceof PerpsError)) {
|
|
217
247
|
throw error
|