@lifi/perps-types 0.2.0-alpha.0 → 1.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 -30
- package/dist/cjs/acceptTerms.d.ts +20 -0
- package/dist/cjs/acceptTerms.d.ts.map +1 -0
- package/dist/cjs/acceptTerms.js +10 -0
- package/dist/cjs/acceptTerms.js.map +1 -0
- package/dist/cjs/account.d.ts +191 -0
- package/dist/cjs/account.d.ts.map +1 -0
- package/{src/_esm → dist/cjs}/account.js.map +1 -1
- package/dist/cjs/action.d.ts +200 -0
- package/dist/cjs/action.d.ts.map +1 -0
- package/dist/cjs/action.js.map +1 -0
- package/dist/cjs/asset.d.ts +11 -0
- package/dist/cjs/asset.d.ts.map +1 -0
- package/dist/cjs/asset.js.map +1 -0
- package/{src/_types → dist/cjs}/enums.d.ts +6 -12
- package/dist/cjs/enums.d.ts.map +1 -0
- package/{src/_cjs → dist/cjs}/enums.js +4 -0
- package/dist/cjs/enums.js.map +1 -0
- package/dist/cjs/errors.d.ts.map +1 -0
- package/dist/cjs/errors.js.map +1 -0
- package/{src/_types → dist/cjs}/index.d.ts +11 -5
- package/dist/cjs/index.d.ts.map +1 -0
- package/{src/_cjs → dist/cjs}/index.js +11 -5
- package/dist/cjs/index.js.map +1 -0
- package/{src/_types/asset.d.ts → dist/cjs/market.d.ts} +33 -25
- package/dist/cjs/market.d.ts.map +1 -0
- package/dist/cjs/market.js +3 -0
- package/dist/cjs/market.js.map +1 -0
- package/dist/cjs/meta.d.ts +17 -0
- package/dist/cjs/meta.d.ts.map +1 -0
- package/dist/cjs/meta.js +3 -0
- package/dist/cjs/meta.js.map +1 -0
- package/dist/cjs/primitives.d.ts +3 -0
- package/dist/cjs/primitives.d.ts.map +1 -0
- package/dist/cjs/primitives.js +3 -0
- package/dist/cjs/primitives.js.map +1 -0
- package/dist/cjs/providers.d.ts +58 -0
- package/dist/cjs/providers.d.ts.map +1 -0
- package/{src/_cjs → dist/cjs}/providers.js.map +1 -1
- package/dist/cjs/quote.d.ts +23 -0
- package/dist/cjs/quote.d.ts.map +1 -0
- package/dist/cjs/quote.js +3 -0
- package/dist/cjs/quote.js.map +1 -0
- package/{src/_types → dist/cjs}/subscriptions.d.ts +14 -13
- package/dist/cjs/subscriptions.d.ts.map +1 -0
- package/{src/_cjs → dist/cjs}/subscriptions.js.map +1 -1
- package/dist/cjs/typedData.d.ts +23 -0
- package/dist/cjs/typedData.d.ts.map +1 -0
- package/{src/_cjs → dist/cjs}/typedData.js.map +1 -1
- package/dist/cjs/vote.d.ts +27 -0
- package/dist/cjs/vote.d.ts.map +1 -0
- package/dist/cjs/vote.js +12 -0
- package/dist/cjs/vote.js.map +1 -0
- package/dist/esm/acceptTerms.d.ts +45 -0
- package/dist/esm/acceptTerms.d.ts.map +1 -0
- package/dist/esm/acceptTerms.js +12 -0
- package/dist/esm/acceptTerms.js.map +1 -0
- package/dist/esm/account.d.ts +229 -0
- package/dist/esm/account.d.ts.map +1 -0
- package/{src/_cjs → dist/esm}/account.js.map +1 -1
- package/{src/_types → dist/esm}/action.d.ts +56 -69
- package/dist/esm/action.d.ts.map +1 -0
- package/dist/esm/action.js +2 -0
- package/dist/esm/action.js.map +1 -0
- package/dist/esm/asset.d.ts +25 -0
- package/dist/esm/asset.d.ts.map +1 -0
- package/dist/esm/asset.js.map +1 -0
- package/dist/esm/enums.d.ts +171 -0
- package/dist/esm/enums.d.ts.map +1 -0
- package/{src/_esm → dist/esm}/enums.js +26 -10
- package/dist/esm/enums.js.map +1 -0
- package/dist/esm/errors.d.ts +8 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/index.d.ts +23 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +23 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/market.d.ts +107 -0
- package/dist/esm/market.d.ts.map +1 -0
- package/dist/esm/market.js +2 -0
- package/dist/esm/market.js.map +1 -0
- package/dist/esm/meta.d.ts +37 -0
- package/dist/esm/meta.d.ts.map +1 -0
- package/dist/esm/meta.js +2 -0
- package/dist/esm/meta.js.map +1 -0
- package/dist/esm/primitives.d.ts +5 -0
- package/dist/esm/primitives.d.ts.map +1 -0
- package/dist/esm/primitives.js +2 -0
- package/dist/esm/primitives.js.map +1 -0
- package/dist/esm/providers.d.ts +116 -0
- package/dist/esm/providers.d.ts.map +1 -0
- package/{src/_esm → dist/esm}/providers.js.map +1 -1
- package/dist/esm/quote.d.ts +47 -0
- package/dist/esm/quote.d.ts.map +1 -0
- package/dist/esm/quote.js +2 -0
- package/dist/esm/quote.js.map +1 -0
- package/dist/esm/subscriptions.d.ts +115 -0
- package/dist/esm/subscriptions.d.ts.map +1 -0
- package/{src/_esm → dist/esm}/subscriptions.js.map +1 -1
- package/dist/esm/typedData.d.ts +28 -0
- package/dist/esm/typedData.d.ts.map +1 -0
- package/{src/_esm → dist/esm}/typedData.js.map +1 -1
- package/dist/esm/vote.d.ts +68 -0
- package/dist/esm/vote.d.ts.map +1 -0
- package/dist/esm/vote.js +20 -0
- package/dist/esm/vote.js.map +1 -0
- package/dist/types/acceptTerms.d.ts +45 -0
- package/dist/types/acceptTerms.d.ts.map +1 -0
- package/dist/types/account.d.ts +229 -0
- package/dist/types/account.d.ts.map +1 -0
- package/dist/types/action.d.ts +248 -0
- package/dist/types/action.d.ts.map +1 -0
- package/dist/types/asset.d.ts +25 -0
- package/dist/types/asset.d.ts.map +1 -0
- package/dist/types/enums.d.ts +171 -0
- package/dist/types/enums.d.ts.map +1 -0
- package/dist/types/errors.d.ts +8 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/index.d.ts +23 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/market.d.ts +107 -0
- package/dist/types/market.d.ts.map +1 -0
- package/dist/types/meta.d.ts +37 -0
- package/dist/types/meta.d.ts.map +1 -0
- package/dist/types/primitives.d.ts +5 -0
- package/dist/types/primitives.d.ts.map +1 -0
- package/dist/types/providers.d.ts +116 -0
- package/dist/types/providers.d.ts.map +1 -0
- package/dist/types/quote.d.ts +47 -0
- package/dist/types/quote.d.ts.map +1 -0
- package/dist/types/subscriptions.d.ts +115 -0
- package/dist/types/subscriptions.d.ts.map +1 -0
- package/dist/types/typedData.d.ts +28 -0
- package/dist/types/typedData.d.ts.map +1 -0
- package/dist/types/vote.d.ts +68 -0
- package/dist/types/vote.d.ts.map +1 -0
- package/package.json +37 -65
- package/src/acceptTerms.ts +53 -0
- package/src/account.ts +74 -111
- package/src/action.ts +64 -96
- package/src/asset.ts +19 -82
- package/src/enums.ts +27 -10
- package/src/errors.ts +1 -0
- package/src/index.ts +20 -5
- package/src/market.ts +137 -0
- package/src/meta.ts +38 -0
- package/src/primitives.ts +5 -0
- package/src/providers.ts +79 -110
- package/src/quote.ts +49 -0
- package/src/subscriptions.ts +62 -18
- package/src/typedData.ts +20 -11
- package/src/vote.ts +79 -0
- package/providers/hyperliquid/package.json +0 -5
- package/providers/lighter/package.json +0 -5
- package/src/_cjs/action.js.map +0 -1
- package/src/_cjs/asset.js.map +0 -1
- package/src/_cjs/enums.js.map +0 -1
- package/src/_cjs/errors.js.map +0 -1
- package/src/_cjs/index.js.map +0 -1
- package/src/_cjs/providers/_shared/fillClassification.js +0 -37
- package/src/_cjs/providers/_shared/fillClassification.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/assetId.js +0 -21
- package/src/_cjs/providers/hyperliquid/assetId.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/index.js +0 -20
- package/src/_cjs/providers/hyperliquid/index.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/_market.js +0 -15
- package/src/_cjs/providers/hyperliquid/mappers/_market.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/activity.js +0 -128
- package/src/_cjs/providers/hyperliquid/mappers/activity.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/asset.js +0 -29
- package/src/_cjs/providers/hyperliquid/mappers/asset.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/fill.js +0 -36
- package/src/_cjs/providers/hyperliquid/mappers/fill.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/index.js +0 -20
- package/src/_cjs/providers/hyperliquid/mappers/index.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/order.js +0 -153
- package/src/_cjs/providers/hyperliquid/mappers/order.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/position.js +0 -32
- package/src/_cjs/providers/hyperliquid/mappers/position.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/mappers/shared.js +0 -2
- package/src/_cjs/providers/hyperliquid/mappers/shared.js.map +0 -1
- package/src/_cjs/providers/hyperliquid/types.js +0 -21
- package/src/_cjs/providers/hyperliquid/types.js.map +0 -1
- package/src/_cjs/providers/lighter/apiTypes.js +0 -3
- package/src/_cjs/providers/lighter/apiTypes.js.map +0 -1
- package/src/_cjs/providers/lighter/index.js +0 -20
- package/src/_cjs/providers/lighter/index.js.map +0 -1
- package/src/_cjs/providers/lighter/mappers/fill.js +0 -34
- package/src/_cjs/providers/lighter/mappers/fill.js.map +0 -1
- package/src/_cjs/providers/lighter/mappers/index.js +0 -13
- package/src/_cjs/providers/lighter/mappers/index.js.map +0 -1
- package/src/_cjs/providers/lighter/mappers/order.js +0 -142
- package/src/_cjs/providers/lighter/mappers/order.js.map +0 -1
- package/src/_cjs/providers/lighter/mappers/position.js +0 -35
- package/src/_cjs/providers/lighter/mappers/position.js.map +0 -1
- package/src/_cjs/providers/lighter/types.js +0 -23
- package/src/_cjs/providers/lighter/types.js.map +0 -1
- package/src/_esm/action.js +0 -2
- package/src/_esm/action.js.map +0 -1
- package/src/_esm/asset.js.map +0 -1
- package/src/_esm/enums.js.map +0 -1
- package/src/_esm/errors.js.map +0 -1
- package/src/_esm/index.js +0 -9
- package/src/_esm/index.js.map +0 -1
- package/src/_esm/providers/_shared/fillClassification.js +0 -43
- package/src/_esm/providers/_shared/fillClassification.js.map +0 -1
- package/src/_esm/providers/hyperliquid/assetId.js +0 -25
- package/src/_esm/providers/hyperliquid/assetId.js.map +0 -1
- package/src/_esm/providers/hyperliquid/index.js +0 -4
- package/src/_esm/providers/hyperliquid/index.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/_market.js +0 -22
- package/src/_esm/providers/hyperliquid/mappers/_market.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/activity.js +0 -138
- package/src/_esm/providers/hyperliquid/mappers/activity.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/asset.js +0 -25
- package/src/_esm/providers/hyperliquid/mappers/asset.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/fill.js +0 -32
- package/src/_esm/providers/hyperliquid/mappers/fill.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/index.js +0 -6
- package/src/_esm/providers/hyperliquid/mappers/index.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/order.js +0 -151
- package/src/_esm/providers/hyperliquid/mappers/order.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/position.js +0 -28
- package/src/_esm/providers/hyperliquid/mappers/position.js.map +0 -1
- package/src/_esm/providers/hyperliquid/mappers/shared.js +0 -2
- package/src/_esm/providers/hyperliquid/mappers/shared.js.map +0 -1
- package/src/_esm/providers/hyperliquid/types.js +0 -35
- package/src/_esm/providers/hyperliquid/types.js.map +0 -1
- package/src/_esm/providers/lighter/apiTypes.js +0 -5
- package/src/_esm/providers/lighter/apiTypes.js.map +0 -1
- package/src/_esm/providers/lighter/index.js +0 -4
- package/src/_esm/providers/lighter/index.js.map +0 -1
- package/src/_esm/providers/lighter/mappers/fill.js +0 -39
- package/src/_esm/providers/lighter/mappers/fill.js.map +0 -1
- package/src/_esm/providers/lighter/mappers/index.js +0 -4
- package/src/_esm/providers/lighter/mappers/index.js.map +0 -1
- package/src/_esm/providers/lighter/mappers/order.js +0 -162
- package/src/_esm/providers/lighter/mappers/order.js.map +0 -1
- package/src/_esm/providers/lighter/mappers/position.js +0 -38
- package/src/_esm/providers/lighter/mappers/position.js.map +0 -1
- package/src/_esm/providers/lighter/types.js +0 -26
- package/src/_esm/providers/lighter/types.js.map +0 -1
- package/src/_types/account.d.ts +0 -268
- package/src/_types/account.d.ts.map +0 -1
- package/src/_types/action.d.ts.map +0 -1
- package/src/_types/asset.d.ts.map +0 -1
- package/src/_types/enums.d.ts.map +0 -1
- package/src/_types/errors.d.ts.map +0 -1
- package/src/_types/index.d.ts.map +0 -1
- package/src/_types/providers/_shared/fillClassification.d.ts +0 -12
- package/src/_types/providers/_shared/fillClassification.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/assetId.d.ts +0 -14
- package/src/_types/providers/hyperliquid/assetId.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/index.d.ts +0 -4
- package/src/_types/providers/hyperliquid/index.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/_market.d.ts +0 -13
- package/src/_types/providers/hyperliquid/mappers/_market.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/activity.d.ts +0 -13
- package/src/_types/providers/hyperliquid/mappers/activity.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/asset.d.ts +0 -4
- package/src/_types/providers/hyperliquid/mappers/asset.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/fill.d.ts +0 -6
- package/src/_types/providers/hyperliquid/mappers/fill.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/index.d.ts +0 -6
- package/src/_types/providers/hyperliquid/mappers/index.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/order.d.ts +0 -18
- package/src/_types/providers/hyperliquid/mappers/order.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/position.d.ts +0 -4
- package/src/_types/providers/hyperliquid/mappers/position.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/mappers/shared.d.ts +0 -1
- package/src/_types/providers/hyperliquid/mappers/shared.d.ts.map +0 -1
- package/src/_types/providers/hyperliquid/types.d.ts +0 -289
- package/src/_types/providers/hyperliquid/types.d.ts.map +0 -1
- package/src/_types/providers/lighter/apiTypes.d.ts +0 -76
- package/src/_types/providers/lighter/apiTypes.d.ts.map +0 -1
- package/src/_types/providers/lighter/index.d.ts +0 -4
- package/src/_types/providers/lighter/index.d.ts.map +0 -1
- package/src/_types/providers/lighter/mappers/fill.d.ts +0 -9
- package/src/_types/providers/lighter/mappers/fill.d.ts.map +0 -1
- package/src/_types/providers/lighter/mappers/index.d.ts +0 -4
- package/src/_types/providers/lighter/mappers/index.d.ts.map +0 -1
- package/src/_types/providers/lighter/mappers/order.d.ts +0 -35
- package/src/_types/providers/lighter/mappers/order.d.ts.map +0 -1
- package/src/_types/providers/lighter/mappers/position.d.ts +0 -8
- package/src/_types/providers/lighter/mappers/position.d.ts.map +0 -1
- package/src/_types/providers/lighter/types.d.ts +0 -90
- package/src/_types/providers/lighter/types.d.ts.map +0 -1
- package/src/_types/providers.d.ts +0 -145
- package/src/_types/providers.d.ts.map +0 -1
- package/src/_types/subscriptions.d.ts.map +0 -1
- package/src/_types/typedData.d.ts +0 -18
- package/src/_types/typedData.d.ts.map +0 -1
- package/src/providers/_shared/fillClassification.ts +0 -50
- package/src/providers/hyperliquid/assetId.ts +0 -32
- package/src/providers/hyperliquid/index.ts +0 -3
- package/src/providers/hyperliquid/mappers/_market.ts +0 -21
- package/src/providers/hyperliquid/mappers/activity.ts +0 -169
- package/src/providers/hyperliquid/mappers/asset.ts +0 -33
- package/src/providers/hyperliquid/mappers/fill.ts +0 -41
- package/src/providers/hyperliquid/mappers/index.ts +0 -11
- package/src/providers/hyperliquid/mappers/order.ts +0 -169
- package/src/providers/hyperliquid/mappers/position.ts +0 -33
- package/src/providers/hyperliquid/mappers/shared.ts +0 -0
- package/src/providers/hyperliquid/types.ts +0 -379
- package/src/providers/lighter/apiTypes.ts +0 -87
- package/src/providers/lighter/index.ts +0 -3
- package/src/providers/lighter/mappers/fill.ts +0 -57
- package/src/providers/lighter/mappers/index.ts +0 -8
- package/src/providers/lighter/mappers/order.ts +0 -184
- package/src/providers/lighter/mappers/position.ts +0 -46
- package/src/providers/lighter/types.ts +0 -111
- /package/{src/_cjs → dist/cjs}/account.js +0 -0
- /package/{src/_cjs → dist/cjs}/action.js +0 -0
- /package/{src/_cjs → dist/cjs}/asset.js +0 -0
- /package/{src/_types → dist/cjs}/errors.d.ts +0 -0
- /package/{src/_cjs → dist/cjs}/errors.js +0 -0
- /package/{src/_cjs → dist/cjs}/package.json +0 -0
- /package/{src/_cjs → dist/cjs}/providers.js +0 -0
- /package/{src/_cjs → dist/cjs}/subscriptions.js +0 -0
- /package/{src/_cjs → dist/cjs}/typedData.js +0 -0
- /package/{src/_esm → dist/esm}/account.js +0 -0
- /package/{src/_esm → dist/esm}/asset.js +0 -0
- /package/{src/_esm → dist/esm}/errors.js +0 -0
- /package/{src/_esm → dist/esm}/package.json +0 -0
- /package/{src/_esm → dist/esm}/providers.js +0 -0
- /package/{src/_esm → dist/esm}/subscriptions.js +0 -0
- /package/{src/_esm → dist/esm}/typedData.js +0 -0
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
FillStatus,
|
|
3
|
-
LiquidityRole,
|
|
4
|
-
OrderSide,
|
|
5
|
-
OrderType,
|
|
6
|
-
} from '../../../enums.js'
|
|
7
|
-
import type { Fill } from '../../../account.js'
|
|
8
|
-
import type { LtTrade } from '../apiTypes.js'
|
|
9
|
-
import { classifyFillFromPosition } from '../../_shared/fillClassification.js'
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Map a raw Lighter trade to the generic Fill type.
|
|
13
|
-
* @param accountIndex - The viewer's Lighter account index (selects buy/sell side and maker/taker role).
|
|
14
|
-
* @param symbol - Resolved symbol (market_id → symbol lookup).
|
|
15
|
-
*/
|
|
16
|
-
export const mapFill = (
|
|
17
|
-
trade: LtTrade,
|
|
18
|
-
accountIndex: number,
|
|
19
|
-
symbol: string
|
|
20
|
-
): Fill => {
|
|
21
|
-
const isBuyer = trade.bid_account_id === accountIndex
|
|
22
|
-
const isMaker =
|
|
23
|
-
(trade.is_maker_ask && !isBuyer) || (!trade.is_maker_ask && isBuyer)
|
|
24
|
-
|
|
25
|
-
// Lighter publishes both counterparties' position-before snapshots on every
|
|
26
|
-
// trade row; reading the wrong one mis-classifies when they differ.
|
|
27
|
-
const startPosition = isMaker
|
|
28
|
-
? trade.maker_position_size_before
|
|
29
|
-
: trade.taker_position_size_before
|
|
30
|
-
|
|
31
|
-
return {
|
|
32
|
-
id: trade.trade_id.toString(),
|
|
33
|
-
orderId: String(isBuyer ? trade.bid_id : trade.ask_id),
|
|
34
|
-
asset: {
|
|
35
|
-
assetId: symbol,
|
|
36
|
-
market: 'lighter',
|
|
37
|
-
displaySymbol: symbol,
|
|
38
|
-
displayQuote: 'USDC',
|
|
39
|
-
},
|
|
40
|
-
side: isBuyer ? OrderSide.BUY : OrderSide.SELL,
|
|
41
|
-
type: OrderType.LIMIT,
|
|
42
|
-
size: trade.size,
|
|
43
|
-
price: trade.price,
|
|
44
|
-
status: FillStatus.FILLED,
|
|
45
|
-
liquidity: isMaker ? LiquidityRole.MAKER : LiquidityRole.TAKER,
|
|
46
|
-
fee: isMaker ? trade.maker_fee?.toString() : trade.taker_fee?.toString(),
|
|
47
|
-
startPosition,
|
|
48
|
-
// `classifyFillFromPosition` takes an HL-encoded side: `'B'` for buy,
|
|
49
|
-
// anything else for sell.
|
|
50
|
-
classification: classifyFillFromPosition(
|
|
51
|
-
startPosition,
|
|
52
|
-
isBuyer ? 'B' : 'A',
|
|
53
|
-
trade.size
|
|
54
|
-
),
|
|
55
|
-
createdAt: new Date(trade.timestamp).toISOString(),
|
|
56
|
-
}
|
|
57
|
-
}
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
OrderSide,
|
|
3
|
-
OrderStatus,
|
|
4
|
-
OrderType,
|
|
5
|
-
TimeInForce,
|
|
6
|
-
} from '../../../enums.js'
|
|
7
|
-
import type { OpenOrder, TriggerOrder } from '../../../account.js'
|
|
8
|
-
import type { Order } from '../../../action.js'
|
|
9
|
-
import type { LtOrder } from '../apiTypes.js'
|
|
10
|
-
|
|
11
|
-
// Lighter's `type` enum uses hyphens in the OpenAPI spec but earlier API
|
|
12
|
-
// versions emitted underscores. Tolerate both so we don't silently fall
|
|
13
|
-
// through to LIMIT for stop/take-profit orders.
|
|
14
|
-
const mapOrderType = (ltType: string): OrderType => {
|
|
15
|
-
const normalized = ltType.replace(/-/g, '_')
|
|
16
|
-
const map: Record<string, OrderType> = {
|
|
17
|
-
limit: OrderType.LIMIT,
|
|
18
|
-
market: OrderType.MARKET,
|
|
19
|
-
stop_loss: OrderType.STOP_MARKET,
|
|
20
|
-
stop_loss_limit: OrderType.STOP_LIMIT,
|
|
21
|
-
take_profit: OrderType.TAKE_PROFIT_MARKET,
|
|
22
|
-
take_profit_limit: OrderType.TAKE_PROFIT_LIMIT,
|
|
23
|
-
}
|
|
24
|
-
return map[normalized] ?? OrderType.LIMIT
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const mapTimeInForce = (tif: string): TimeInForce | undefined => {
|
|
28
|
-
switch (tif.replace(/-/g, '_')) {
|
|
29
|
-
case 'good_till_time':
|
|
30
|
-
return TimeInForce.GTT
|
|
31
|
-
case 'immediate_or_cancel':
|
|
32
|
-
return TimeInForce.IOC
|
|
33
|
-
case 'post_only':
|
|
34
|
-
return TimeInForce.POST_ONLY
|
|
35
|
-
default:
|
|
36
|
-
return undefined
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const mapOrderStatus = (status: string): OrderStatus => {
|
|
41
|
-
if (
|
|
42
|
-
status === 'open' ||
|
|
43
|
-
status === 'in-progress' ||
|
|
44
|
-
status === 'in_progress'
|
|
45
|
-
) {
|
|
46
|
-
return OrderStatus.OPEN
|
|
47
|
-
}
|
|
48
|
-
if (status === 'pending') {
|
|
49
|
-
return OrderStatus.PENDING
|
|
50
|
-
}
|
|
51
|
-
if (status === 'filled') {
|
|
52
|
-
return OrderStatus.FILLED
|
|
53
|
-
}
|
|
54
|
-
if (status.startsWith('canceled')) {
|
|
55
|
-
return OrderStatus.CANCELLED
|
|
56
|
-
}
|
|
57
|
-
return OrderStatus.OPEN
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Map a raw Lighter order status to a short English sentence describing
|
|
62
|
-
* *why* the order ended in a terminal non-FILLED state. Non-terminal
|
|
63
|
-
* statuses, plain `filled`, and unknown values return `undefined`.
|
|
64
|
-
*/
|
|
65
|
-
export const mapStatusReason = (status: string): string | undefined => {
|
|
66
|
-
switch (status) {
|
|
67
|
-
case 'canceled':
|
|
68
|
-
return 'Order cancelled.'
|
|
69
|
-
case 'canceled-post-only':
|
|
70
|
-
return 'Order cancelled: post-only order would have crossed the book.'
|
|
71
|
-
case 'canceled-reduce-only':
|
|
72
|
-
return 'Order cancelled: would not reduce your position.'
|
|
73
|
-
case 'canceled-position-not-allowed':
|
|
74
|
-
return 'Order cancelled: position not allowed.'
|
|
75
|
-
case 'canceled-margin-not-allowed':
|
|
76
|
-
return 'Order cancelled: insufficient margin.'
|
|
77
|
-
case 'canceled-too-much-slippage':
|
|
78
|
-
return 'Order cancelled: slippage exceeded tolerance.'
|
|
79
|
-
case 'canceled-not-enough-liquidity':
|
|
80
|
-
return 'Order cancelled: not enough liquidity to fill.'
|
|
81
|
-
case 'canceled-self-trade':
|
|
82
|
-
return 'Order cancelled: would self-trade against your own resting order.'
|
|
83
|
-
case 'canceled-expired':
|
|
84
|
-
return 'Order expired.'
|
|
85
|
-
case 'canceled-oco':
|
|
86
|
-
return 'Order cancelled: sibling OCO order filled or cancelled first.'
|
|
87
|
-
case 'canceled-child':
|
|
88
|
-
return 'Order cancelled: parent order was cancelled.'
|
|
89
|
-
case 'canceled-liquidation':
|
|
90
|
-
return 'Order cancelled: account was liquidated.'
|
|
91
|
-
case 'canceled-invalid-balance':
|
|
92
|
-
return 'Order cancelled: invalid balance.'
|
|
93
|
-
default:
|
|
94
|
-
return undefined
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* True for order types Lighter exposes as TP/SL legs. Mirrors the
|
|
100
|
-
* Hyperliquid helper of the same name so the backend can split a raw
|
|
101
|
-
* Lighter order list into the same `openOrders` / `triggerOrders`
|
|
102
|
-
* buckets the SDK declares on `OrdersResponse`.
|
|
103
|
-
*/
|
|
104
|
-
export const isTriggerType = (type: OrderType): boolean =>
|
|
105
|
-
type === OrderType.TAKE_PROFIT_MARKET ||
|
|
106
|
-
type === OrderType.TAKE_PROFIT_LIMIT ||
|
|
107
|
-
type === OrderType.STOP_MARKET ||
|
|
108
|
-
type === OrderType.STOP_LIMIT
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Map a raw Lighter trigger order (stop/take-profit, market or limit) to
|
|
112
|
-
* the generic `TriggerOrder` shape. For market variants the `limitPrice`
|
|
113
|
-
* field is omitted; for limit variants `order.price` is the limit and
|
|
114
|
-
* `order.trigger_price` is the activation level.
|
|
115
|
-
*/
|
|
116
|
-
export const mapTriggerOrder = (
|
|
117
|
-
order: LtOrder,
|
|
118
|
-
symbol: string
|
|
119
|
-
): TriggerOrder => {
|
|
120
|
-
const type = mapOrderType(order.type)
|
|
121
|
-
const isLimit =
|
|
122
|
-
type === OrderType.TAKE_PROFIT_LIMIT || type === OrderType.STOP_LIMIT
|
|
123
|
-
return {
|
|
124
|
-
id: order.order_id,
|
|
125
|
-
asset: {
|
|
126
|
-
assetId: symbol,
|
|
127
|
-
market: 'lighter',
|
|
128
|
-
displaySymbol: symbol,
|
|
129
|
-
displayQuote: 'USDC',
|
|
130
|
-
},
|
|
131
|
-
type,
|
|
132
|
-
size: order.initial_base_amount,
|
|
133
|
-
triggerPrice: order.trigger_price,
|
|
134
|
-
...(isLimit ? { limitPrice: order.price } : {}),
|
|
135
|
-
createdAt: new Date(order.created_at * 1000).toISOString(),
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* Map a raw Lighter order to the generic OpenOrder type.
|
|
141
|
-
* @param symbol - Resolved symbol (market_index → symbol lookup)
|
|
142
|
-
*/
|
|
143
|
-
export const mapOrder = (order: LtOrder, symbol: string): OpenOrder => ({
|
|
144
|
-
id: order.order_id,
|
|
145
|
-
asset: {
|
|
146
|
-
assetId: symbol,
|
|
147
|
-
market: 'lighter',
|
|
148
|
-
displaySymbol: symbol,
|
|
149
|
-
displayQuote: 'USDC',
|
|
150
|
-
},
|
|
151
|
-
side: order.is_ask ? OrderSide.SELL : OrderSide.BUY,
|
|
152
|
-
type: mapOrderType(order.type),
|
|
153
|
-
size: order.initial_base_amount,
|
|
154
|
-
price: order.price,
|
|
155
|
-
filledSize: order.filled_base_amount,
|
|
156
|
-
reduceOnly: order.reduce_only,
|
|
157
|
-
createdAt: new Date(order.created_at * 1000).toISOString(),
|
|
158
|
-
})
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Map a raw Lighter order to the rich Order type — adds status, time-in-force
|
|
162
|
-
* and remaining/filled sizes on top of the OpenOrder fields.
|
|
163
|
-
*/
|
|
164
|
-
export const mapOrderDetail = (order: LtOrder, symbol: string): Order => ({
|
|
165
|
-
orderId: order.order_id,
|
|
166
|
-
asset: {
|
|
167
|
-
assetId: symbol,
|
|
168
|
-
market: 'lighter',
|
|
169
|
-
displaySymbol: symbol,
|
|
170
|
-
displayQuote: 'USDC',
|
|
171
|
-
},
|
|
172
|
-
side: order.is_ask ? OrderSide.SELL : OrderSide.BUY,
|
|
173
|
-
type: mapOrderType(order.type),
|
|
174
|
-
price: order.price,
|
|
175
|
-
originalSize: order.initial_base_amount,
|
|
176
|
-
remainingSize: order.remaining_base_amount,
|
|
177
|
-
filledSize: order.filled_base_amount,
|
|
178
|
-
timeInForce: mapTimeInForce(order.time_in_force),
|
|
179
|
-
reduceOnly: order.reduce_only,
|
|
180
|
-
status: mapOrderStatus(order.status),
|
|
181
|
-
statusReason: mapStatusReason(order.status),
|
|
182
|
-
createdAt: new Date(order.created_at * 1000).toISOString(),
|
|
183
|
-
updatedAt: new Date(order.updated_at * 1000).toISOString(),
|
|
184
|
-
})
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { MarginMode, PositionSide } from '../../../enums.js'
|
|
2
|
-
import type { Position } from '../../../account.js'
|
|
3
|
-
import type { LtAccountPosition } from '../apiTypes.js'
|
|
4
|
-
import { LT_MARGIN_MODE_ISOLATED } from '../types.js'
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Map a raw Lighter account position to the generic Position type.
|
|
8
|
-
* @param symbol Resolved symbol (market_id → symbol lookup, or `pos.symbol`).
|
|
9
|
-
*/
|
|
10
|
-
export const mapPosition = (
|
|
11
|
-
pos: LtAccountPosition,
|
|
12
|
-
symbol: string
|
|
13
|
-
): Position => {
|
|
14
|
-
const size = parseFloat(pos.position)
|
|
15
|
-
const isIsolated = pos.margin_mode === LT_MARGIN_MODE_ISOLATED
|
|
16
|
-
|
|
17
|
-
// `allocated_margin` is only populated for isolated positions (always "0"
|
|
18
|
-
// on cross accounts). For cross, derive margin as
|
|
19
|
-
// `position_value × initial_margin_fraction / 100` (IMF is in percent).
|
|
20
|
-
const positionValue = Math.abs(parseFloat(pos.position_value))
|
|
21
|
-
const imf = parseFloat(pos.initial_margin_fraction)
|
|
22
|
-
const marginUsed = isIsolated
|
|
23
|
-
? pos.allocated_margin
|
|
24
|
-
: ((positionValue * imf) / 100).toString()
|
|
25
|
-
|
|
26
|
-
return {
|
|
27
|
-
asset: {
|
|
28
|
-
assetId: symbol,
|
|
29
|
-
market: 'lighter',
|
|
30
|
-
displaySymbol: symbol,
|
|
31
|
-
displayQuote: 'USDC',
|
|
32
|
-
},
|
|
33
|
-
side: pos.sign >= 0 ? PositionSide.LONG : PositionSide.SHORT,
|
|
34
|
-
size: Math.abs(size).toString(),
|
|
35
|
-
entryPrice: pos.avg_entry_price,
|
|
36
|
-
markPrice:
|
|
37
|
-
pos.position_value === '0' || size === 0
|
|
38
|
-
? '0'
|
|
39
|
-
: (parseFloat(pos.position_value) / Math.abs(size)).toString(),
|
|
40
|
-
liquidationPrice: pos.liquidation_price,
|
|
41
|
-
unrealizedPnl: pos.unrealized_pnl,
|
|
42
|
-
leverage: imf > 0 ? Math.round(100 / imf) : 1,
|
|
43
|
-
marginUsed,
|
|
44
|
-
marginMode: isIsolated ? MarginMode.ISOLATED : MarginMode.CROSS,
|
|
45
|
-
}
|
|
46
|
-
}
|
|
@@ -1,111 +0,0 @@
|
|
|
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
|
-
/** Backend-provided params for SignCreateOrder. */
|
|
6
|
-
export type LtCreateOrderWasmParams = {
|
|
7
|
-
market_index: number
|
|
8
|
-
client_order_index: number
|
|
9
|
-
base_amount: number
|
|
10
|
-
price: number
|
|
11
|
-
is_ask: number
|
|
12
|
-
order_type: number
|
|
13
|
-
time_in_force: number
|
|
14
|
-
reduce_only: boolean
|
|
15
|
-
trigger_price: number
|
|
16
|
-
order_expiry: number
|
|
17
|
-
integrator_account_index: number
|
|
18
|
-
integrator_taker_fee: number
|
|
19
|
-
integrator_maker_fee: number
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/** Backend-provided params for SignCancelOrder. */
|
|
23
|
-
export type LtCancelOrderWasmParams = {
|
|
24
|
-
market_index: number
|
|
25
|
-
order_index: number
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/** Backend-provided params for SignModifyOrder. */
|
|
29
|
-
export type LtModifyOrderWasmParams = {
|
|
30
|
-
market_index: number
|
|
31
|
-
order_index: number
|
|
32
|
-
base_amount: number
|
|
33
|
-
price: number
|
|
34
|
-
trigger_price: number
|
|
35
|
-
integrator_account_index: number
|
|
36
|
-
integrator_taker_fee: number
|
|
37
|
-
integrator_maker_fee: number
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/** Backend-provided params for SignUpdateLeverage. */
|
|
41
|
-
export type LtUpdateLeverageWasmParams = {
|
|
42
|
-
market_index: number
|
|
43
|
-
fraction: number
|
|
44
|
-
margin_mode: number
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/** Backend-provided params for SignUpdateMargin. */
|
|
48
|
-
export type LtUpdateMarginWasmParams = {
|
|
49
|
-
market_index: number
|
|
50
|
-
usdc_amount: number
|
|
51
|
-
direction: number
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/** Backend-provided params for SignWithdraw. */
|
|
55
|
-
export type LtWithdrawWasmParams = {
|
|
56
|
-
asset_index: number
|
|
57
|
-
route_type: number
|
|
58
|
-
amount: number
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/** Backend-provided params for SignCancelAllOrders. */
|
|
62
|
-
export type LtCancelAllOrdersWasmParams = {
|
|
63
|
-
/** 0=immediate (cancel GTC), 1=scheduled, 2=abort scheduled */
|
|
64
|
-
time_in_force: number
|
|
65
|
-
/** Unix timestamp in milliseconds. Use Date.now() for immediate cancels. */
|
|
66
|
-
timestamp_ms: number
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Backend-provided params for SignChangePubKey (REGISTER_API_KEY).
|
|
71
|
-
*
|
|
72
|
-
* Hybrid signing: this action requires both a WASM blob and an L1 Ethereum
|
|
73
|
-
* signature (the user's wallet signs the ChangePubKey message). The SDK
|
|
74
|
-
* generates the keypair via the WASM signer and fills in `new_public_key`
|
|
75
|
-
* before invoking SignChangePubKey.
|
|
76
|
-
*/
|
|
77
|
-
export type LtChangePubKeyWasmParams = {
|
|
78
|
-
/** API key slot index to register (0-255). SDK fills in the generated public key. */
|
|
79
|
-
api_key_index: number
|
|
80
|
-
nonce: number
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// ---------------------------------------------------------------------------
|
|
84
|
-
// Lighter WASM signer constants
|
|
85
|
-
// ---------------------------------------------------------------------------
|
|
86
|
-
|
|
87
|
-
export const LT_ORDER_TYPE_LIMIT = 0
|
|
88
|
-
export const LT_ORDER_TYPE_MARKET = 1
|
|
89
|
-
export const LT_ORDER_TYPE_STOP_LOSS = 2
|
|
90
|
-
export const LT_ORDER_TYPE_STOP_LOSS_LIMIT = 3
|
|
91
|
-
export const LT_ORDER_TYPE_TAKE_PROFIT = 4
|
|
92
|
-
export const LT_ORDER_TYPE_TAKE_PROFIT_LIMIT = 5
|
|
93
|
-
export const LT_ORDER_TYPE_TWAP = 6
|
|
94
|
-
|
|
95
|
-
export const LT_TIME_IN_FORCE_IOC = 0
|
|
96
|
-
export const LT_TIME_IN_FORCE_GTC = 1
|
|
97
|
-
export const LT_TIME_IN_FORCE_POST_ONLY = 2
|
|
98
|
-
|
|
99
|
-
export const LT_MARGIN_MODE_CROSS = 0
|
|
100
|
-
export const LT_MARGIN_MODE_ISOLATED = 1
|
|
101
|
-
|
|
102
|
-
export const LT_MARGIN_DIRECTION_REMOVE = 0
|
|
103
|
-
export const LT_MARGIN_DIRECTION_ADD = 1
|
|
104
|
-
|
|
105
|
-
export const LT_ROUTE_PERP = 0
|
|
106
|
-
export const LT_ROUTE_SPOT = 1
|
|
107
|
-
|
|
108
|
-
export const LT_ASSET_ID_USDC = 3
|
|
109
|
-
|
|
110
|
-
export const LT_NIL_TRIGGER_PRICE = 0
|
|
111
|
-
export const LT_DEFAULT_ORDER_EXPIRY = -1
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|