@lifi/perps-sdk-provider-lighter 35.0.0 → 36.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/LighterProvider.d.ts.map +1 -1
- package/dist/cjs/LighterProvider.js +101 -58
- package/dist/cjs/LighterProvider.js.map +1 -1
- package/dist/cjs/accountSummary.d.ts +1 -2
- package/dist/cjs/accountSummary.d.ts.map +1 -1
- package/dist/cjs/accountSummary.js +9 -16
- package/dist/cjs/accountSummary.js.map +1 -1
- package/dist/cjs/availableToTrade.d.ts +1 -2
- package/dist/cjs/availableToTrade.d.ts.map +1 -1
- package/dist/cjs/availableToTrade.js +8 -12
- package/dist/cjs/availableToTrade.js.map +1 -1
- package/dist/cjs/constants.d.ts +1 -0
- package/dist/cjs/constants.d.ts.map +1 -1
- package/dist/cjs/constants.js +2 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/signers/LighterSigner.d.ts.map +1 -1
- package/dist/cjs/signers/LighterSigner.js +2 -6
- package/dist/cjs/signers/LighterSigner.js.map +1 -1
- package/dist/cjs/types/submit.d.ts +5 -0
- package/dist/cjs/types/submit.d.ts.map +1 -1
- package/dist/cjs/utils/index.d.ts +3 -3
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +5 -6
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/mapFill.d.ts +1 -1
- package/dist/cjs/utils/mapFill.d.ts.map +1 -1
- package/dist/cjs/utils/mapFill.js +44 -31
- package/dist/cjs/utils/mapFill.js.map +1 -1
- package/dist/cjs/utils/mapOpenPositions.d.ts +3 -1
- package/dist/cjs/utils/mapOpenPositions.d.ts.map +1 -1
- package/dist/cjs/utils/mapOpenPositions.js +20 -4
- package/dist/cjs/utils/mapOpenPositions.js.map +1 -1
- package/dist/cjs/utils/mapOrder.d.ts +1 -1
- package/dist/cjs/utils/mapOrder.d.ts.map +1 -1
- package/dist/cjs/utils/mapOrder.js +64 -26
- package/dist/cjs/utils/mapOrder.js.map +1 -1
- package/dist/cjs/utils/mapPortfolioHistory.d.ts +1 -2
- package/dist/cjs/utils/mapPortfolioHistory.d.ts.map +1 -1
- package/dist/cjs/utils/mapPortfolioHistory.js +29 -21
- package/dist/cjs/utils/mapPortfolioHistory.js.map +1 -1
- package/dist/cjs/utils/mapPosition.d.ts +3 -3
- package/dist/cjs/utils/mapPosition.d.ts.map +1 -1
- package/dist/cjs/utils/mapPosition.js +35 -35
- package/dist/cjs/utils/mapPosition.js.map +1 -1
- package/dist/cjs/utils/rowTimestamp.d.ts +2 -0
- package/dist/cjs/utils/rowTimestamp.d.ts.map +1 -0
- package/dist/cjs/utils/rowTimestamp.js +14 -0
- package/dist/cjs/utils/rowTimestamp.js.map +1 -0
- package/dist/cjs/utils/settlementPool.d.ts +2 -3
- package/dist/cjs/utils/settlementPool.d.ts.map +1 -1
- package/dist/cjs/utils/settlementPool.js +8 -7
- package/dist/cjs/utils/settlementPool.js.map +1 -1
- package/dist/cjs/utils/spotPrice.d.ts +3 -4
- package/dist/cjs/utils/spotPrice.d.ts.map +1 -1
- package/dist/cjs/utils/spotPrice.js +6 -11
- package/dist/cjs/utils/spotPrice.js.map +1 -1
- package/dist/cjs/utils/time.d.ts.map +1 -1
- package/dist/cjs/utils/time.js +3 -2
- package/dist/cjs/utils/time.js.map +1 -1
- package/dist/cjs/utils/transferMargin.d.ts.map +1 -1
- package/dist/cjs/utils/transferMargin.js +7 -15
- package/dist/cjs/utils/transferMargin.js.map +1 -1
- package/dist/cjs/utils/withdrawableBalances.d.ts +1 -1
- package/dist/cjs/utils/withdrawableBalances.d.ts.map +1 -1
- package/dist/cjs/utils/withdrawableBalances.js +12 -17
- package/dist/cjs/utils/withdrawableBalances.js.map +1 -1
- package/dist/cjs/utils/withdrawalTypes.d.ts +17 -0
- package/dist/cjs/utils/withdrawalTypes.d.ts.map +1 -0
- package/dist/cjs/utils/withdrawalTypes.js +58 -0
- package/dist/cjs/utils/withdrawalTypes.js.map +1 -0
- package/dist/cjs/websocket/LighterWsProvider.d.ts.map +1 -1
- package/dist/cjs/websocket/LighterWsProvider.js +46 -58
- package/dist/cjs/websocket/LighterWsProvider.js.map +1 -1
- package/dist/cjs/websocket/orderBookSide.d.ts +19 -0
- package/dist/cjs/websocket/orderBookSide.d.ts.map +1 -0
- package/dist/cjs/websocket/orderBookSide.js +71 -0
- package/dist/cjs/websocket/orderBookSide.js.map +1 -0
- package/dist/esm/LighterProvider.d.ts.map +1 -1
- package/dist/esm/LighterProvider.js +116 -62
- package/dist/esm/LighterProvider.js.map +1 -1
- package/dist/esm/accountSummary.d.ts +1 -2
- package/dist/esm/accountSummary.d.ts.map +1 -1
- package/dist/esm/accountSummary.js +10 -14
- package/dist/esm/accountSummary.js.map +1 -1
- package/dist/esm/availableToTrade.d.ts +1 -2
- package/dist/esm/availableToTrade.d.ts.map +1 -1
- package/dist/esm/availableToTrade.js +9 -10
- package/dist/esm/availableToTrade.js.map +1 -1
- package/dist/esm/constants.d.ts +8 -0
- package/dist/esm/constants.d.ts.map +1 -1
- package/dist/esm/constants.js +8 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/signers/LighterSigner.d.ts.map +1 -1
- package/dist/esm/signers/LighterSigner.js +3 -4
- package/dist/esm/signers/LighterSigner.js.map +1 -1
- package/dist/esm/types/submit.d.ts +14 -0
- package/dist/esm/types/submit.d.ts.map +1 -1
- package/dist/esm/utils/index.d.ts +3 -3
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +2 -3
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/mapFill.d.ts +1 -1
- package/dist/esm/utils/mapFill.d.ts.map +1 -1
- package/dist/esm/utils/mapFill.js +51 -35
- package/dist/esm/utils/mapFill.js.map +1 -1
- package/dist/esm/utils/mapOpenPositions.d.ts +17 -3
- package/dist/esm/utils/mapOpenPositions.d.ts.map +1 -1
- package/dist/esm/utils/mapOpenPositions.js +31 -5
- package/dist/esm/utils/mapOpenPositions.js.map +1 -1
- package/dist/esm/utils/mapOrder.d.ts +6 -2
- package/dist/esm/utils/mapOrder.d.ts.map +1 -1
- package/dist/esm/utils/mapOrder.js +70 -25
- package/dist/esm/utils/mapOrder.js.map +1 -1
- package/dist/esm/utils/mapPortfolioHistory.d.ts +6 -3
- package/dist/esm/utils/mapPortfolioHistory.d.ts.map +1 -1
- package/dist/esm/utils/mapPortfolioHistory.js +34 -19
- package/dist/esm/utils/mapPortfolioHistory.js.map +1 -1
- package/dist/esm/utils/mapPosition.d.ts +12 -8
- package/dist/esm/utils/mapPosition.d.ts.map +1 -1
- package/dist/esm/utils/mapPosition.js +45 -38
- package/dist/esm/utils/mapPosition.js.map +1 -1
- package/dist/esm/utils/rowTimestamp.d.ts +6 -0
- package/dist/esm/utils/rowTimestamp.d.ts.map +1 -0
- package/dist/esm/utils/rowTimestamp.js +14 -0
- package/dist/esm/utils/rowTimestamp.js.map +1 -0
- package/dist/esm/utils/settlementPool.d.ts +2 -3
- package/dist/esm/utils/settlementPool.d.ts.map +1 -1
- package/dist/esm/utils/settlementPool.js +8 -7
- package/dist/esm/utils/settlementPool.js.map +1 -1
- package/dist/esm/utils/spotPrice.d.ts +3 -4
- package/dist/esm/utils/spotPrice.d.ts.map +1 -1
- package/dist/esm/utils/spotPrice.js +6 -8
- package/dist/esm/utils/spotPrice.js.map +1 -1
- package/dist/esm/utils/time.d.ts +10 -2
- package/dist/esm/utils/time.d.ts.map +1 -1
- package/dist/esm/utils/time.js +13 -4
- package/dist/esm/utils/time.js.map +1 -1
- package/dist/esm/utils/transferMargin.d.ts.map +1 -1
- package/dist/esm/utils/transferMargin.js +8 -13
- package/dist/esm/utils/transferMargin.js.map +1 -1
- package/dist/esm/utils/withdrawableBalances.d.ts +5 -3
- package/dist/esm/utils/withdrawableBalances.d.ts.map +1 -1
- package/dist/esm/utils/withdrawableBalances.js +17 -17
- package/dist/esm/utils/withdrawableBalances.js.map +1 -1
- package/dist/esm/utils/withdrawalTypes.d.ts +45 -0
- package/dist/esm/utils/withdrawalTypes.d.ts.map +1 -0
- package/dist/esm/utils/withdrawalTypes.js +68 -0
- package/dist/esm/utils/withdrawalTypes.js.map +1 -0
- package/dist/esm/websocket/LighterWsProvider.d.ts.map +1 -1
- package/dist/esm/websocket/LighterWsProvider.js +48 -57
- package/dist/esm/websocket/LighterWsProvider.js.map +1 -1
- package/dist/esm/websocket/orderBookSide.d.ts +33 -0
- package/dist/esm/websocket/orderBookSide.d.ts.map +1 -0
- package/dist/esm/websocket/orderBookSide.js +76 -0
- package/dist/esm/websocket/orderBookSide.js.map +1 -0
- package/dist/types/LighterProvider.d.ts.map +1 -1
- package/dist/types/accountSummary.d.ts +1 -2
- package/dist/types/accountSummary.d.ts.map +1 -1
- package/dist/types/availableToTrade.d.ts +1 -2
- package/dist/types/availableToTrade.d.ts.map +1 -1
- package/dist/types/constants.d.ts +8 -0
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/signers/LighterSigner.d.ts.map +1 -1
- package/dist/types/types/submit.d.ts +14 -0
- package/dist/types/types/submit.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +3 -3
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/mapFill.d.ts +1 -1
- package/dist/types/utils/mapFill.d.ts.map +1 -1
- package/dist/types/utils/mapOpenPositions.d.ts +17 -3
- package/dist/types/utils/mapOpenPositions.d.ts.map +1 -1
- package/dist/types/utils/mapOrder.d.ts +6 -2
- package/dist/types/utils/mapOrder.d.ts.map +1 -1
- package/dist/types/utils/mapPortfolioHistory.d.ts +6 -3
- package/dist/types/utils/mapPortfolioHistory.d.ts.map +1 -1
- package/dist/types/utils/mapPosition.d.ts +12 -8
- package/dist/types/utils/mapPosition.d.ts.map +1 -1
- package/dist/types/utils/rowTimestamp.d.ts +6 -0
- package/dist/types/utils/rowTimestamp.d.ts.map +1 -0
- package/dist/types/utils/settlementPool.d.ts +2 -3
- package/dist/types/utils/settlementPool.d.ts.map +1 -1
- package/dist/types/utils/spotPrice.d.ts +3 -4
- package/dist/types/utils/spotPrice.d.ts.map +1 -1
- package/dist/types/utils/time.d.ts +10 -2
- package/dist/types/utils/time.d.ts.map +1 -1
- package/dist/types/utils/transferMargin.d.ts.map +1 -1
- package/dist/types/utils/withdrawableBalances.d.ts +5 -3
- package/dist/types/utils/withdrawableBalances.d.ts.map +1 -1
- package/dist/types/utils/withdrawalTypes.d.ts +45 -0
- package/dist/types/utils/withdrawalTypes.d.ts.map +1 -0
- package/dist/types/websocket/LighterWsProvider.d.ts.map +1 -1
- package/dist/types/websocket/orderBookSide.d.ts +33 -0
- package/dist/types/websocket/orderBookSide.d.ts.map +1 -0
- package/package.json +3 -3
- package/src/LighterProvider.ts +236 -100
- package/src/accountSummary.ts +41 -22
- package/src/availableToTrade.ts +38 -15
- package/src/constants.ts +9 -0
- package/src/index.ts +1 -0
- package/src/signers/LighterSigner.ts +11 -4
- package/src/types/submit.ts +15 -0
- package/src/utils/index.ts +9 -3
- package/src/utils/mapFill.ts +82 -43
- package/src/utils/mapOpenPositions.ts +45 -6
- package/src/utils/mapOrder.ts +99 -28
- package/src/utils/mapPortfolioHistory.ts +78 -24
- package/src/utils/mapPosition.ts +67 -44
- package/src/utils/rowTimestamp.ts +15 -0
- package/src/utils/settlementPool.ts +36 -12
- package/src/utils/spotPrice.ts +18 -12
- package/src/utils/time.ts +14 -4
- package/src/utils/transferMargin.ts +28 -17
- package/src/utils/withdrawableBalances.ts +34 -20
- package/src/utils/withdrawalTypes.ts +125 -0
- package/src/websocket/LighterWsProvider.ts +75 -92
- package/src/websocket/orderBookSide.ts +106 -0
- package/dist/cjs/utils/decimal.d.ts +0 -5
- package/dist/cjs/utils/decimal.d.ts.map +0 -1
- package/dist/cjs/utils/decimal.js +0 -38
- package/dist/cjs/utils/decimal.js.map +0 -1
- package/dist/cjs/utils/liquidation.d.ts +0 -4
- package/dist/cjs/utils/liquidation.d.ts.map +0 -1
- package/dist/cjs/utils/liquidation.js +0 -16
- package/dist/cjs/utils/liquidation.js.map +0 -1
- package/dist/esm/utils/decimal.d.ts +0 -15
- package/dist/esm/utils/decimal.d.ts.map +0 -1
- package/dist/esm/utils/decimal.js +0 -39
- package/dist/esm/utils/decimal.js.map +0 -1
- package/dist/esm/utils/liquidation.d.ts +0 -22
- package/dist/esm/utils/liquidation.d.ts.map +0 -1
- package/dist/esm/utils/liquidation.js +0 -31
- package/dist/esm/utils/liquidation.js.map +0 -1
- package/dist/types/utils/decimal.d.ts +0 -15
- package/dist/types/utils/decimal.d.ts.map +0 -1
- package/dist/types/utils/liquidation.d.ts +0 -22
- package/dist/types/utils/liquidation.d.ts.map +0 -1
- package/src/utils/decimal.ts +0 -52
- package/src/utils/liquidation.ts +0 -39
|
@@ -78,6 +78,20 @@ export interface LtFastwithdrawInfoResponse {
|
|
|
78
78
|
withdraw_limit: string;
|
|
79
79
|
max_withdrawal_amount: string;
|
|
80
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* `GET /api/v1/transferFeeInfo` (Lighter `TransferFeeInfo`).
|
|
83
|
+
*
|
|
84
|
+
* `transfer_fee_usdc` is the fee for an L2 transfer from `account_index` to
|
|
85
|
+
* `to_account_index`, in the same L2 6-decimal integer scale as
|
|
86
|
+
* {@link LtFastwithdrawInfoResponse}.
|
|
87
|
+
*
|
|
88
|
+
* @public
|
|
89
|
+
*/
|
|
90
|
+
export interface LtTransferFeeInfoResponse {
|
|
91
|
+
code: number;
|
|
92
|
+
message?: string;
|
|
93
|
+
transfer_fee_usdc: number;
|
|
94
|
+
}
|
|
81
95
|
/**
|
|
82
96
|
* `POST /api/v1/fastwithdraw` (Lighter `ResultCode`).
|
|
83
97
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../../src/types/submit.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,qBAAqB,EAAE,MAAM,CAAA;CAC9B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB"}
|
|
1
|
+
{"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../../src/types/submit.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,qBAAqB,EAAE,MAAM,CAAA;CAC9B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB"}
|
|
@@ -2,13 +2,11 @@ export type { LighterActivityCursor } from './activityCursor.js';
|
|
|
2
2
|
export { decodeActivityCursor, encodeActivityCursor, } from './activityCursor.js';
|
|
3
3
|
export { LighterApiClient } from './apiClient.js';
|
|
4
4
|
export { assetMarginModeInt, isAssetMarginEnabled } from './assetCollateral.js';
|
|
5
|
-
export { toBigOrNull, toRequiredBig } from './decimal.js';
|
|
6
5
|
export { fetchDetailedAccount } from './fetchDetailedAccount.js';
|
|
7
6
|
export { lighterAsset } from './lighterAsset.js';
|
|
8
|
-
export { estimateLiquidationPrice } from './liquidation.js';
|
|
9
7
|
export { mapFill } from './mapFill.js';
|
|
10
8
|
export { mapMarketContext } from './mapMarketContext.js';
|
|
11
|
-
export { mapOpenPositions } from './mapOpenPositions.js';
|
|
9
|
+
export { isOpenPosition, mapOpenPositions } from './mapOpenPositions.js';
|
|
12
10
|
export { mapOrder, mapOrderUpdates } from './mapOrder.js';
|
|
13
11
|
export { mapPortfolioHistory } from './mapPortfolioHistory.js';
|
|
14
12
|
export { leverageFromImf, mapPosition } from './mapPosition.js';
|
|
@@ -19,4 +17,6 @@ export { toIsoFromMs, toIsoFromSeconds } from './time.js';
|
|
|
19
17
|
export { positionRemovableMargin } from './transferMargin.js';
|
|
20
18
|
export { leverageToFraction, mapOrderTypeToInt, mapTimeInForceToInt, marginFractionToMaxLeverage, orderExpiryForTif, resolveTimeInForce, } from './wireEncoding.js';
|
|
21
19
|
export { lighterWithdrawableBalances } from './withdrawableBalances.js';
|
|
20
|
+
export type { LighterFastWithdrawal, LighterWithdrawalOptions, } from './withdrawalTypes.js';
|
|
21
|
+
export { lighterFastWithdrawal, lighterWithdrawalTypes, } from './withdrawalTypes.js';
|
|
22
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAA;AACvE,YAAY,EACV,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,sBAAsB,CAAA"}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -4,13 +4,11 @@
|
|
|
4
4
|
export { decodeActivityCursor, encodeActivityCursor, } from './activityCursor.js';
|
|
5
5
|
export { LighterApiClient } from './apiClient.js';
|
|
6
6
|
export { assetMarginModeInt, isAssetMarginEnabled } from './assetCollateral.js';
|
|
7
|
-
export { toBigOrNull, toRequiredBig } from './decimal.js';
|
|
8
7
|
export { fetchDetailedAccount } from './fetchDetailedAccount.js';
|
|
9
8
|
export { lighterAsset } from './lighterAsset.js';
|
|
10
|
-
export { estimateLiquidationPrice } from './liquidation.js';
|
|
11
9
|
export { mapFill } from './mapFill.js';
|
|
12
10
|
export { mapMarketContext } from './mapMarketContext.js';
|
|
13
|
-
export { mapOpenPositions } from './mapOpenPositions.js';
|
|
11
|
+
export { isOpenPosition, mapOpenPositions } from './mapOpenPositions.js';
|
|
14
12
|
export { mapOrder, mapOrderUpdates } from './mapOrder.js';
|
|
15
13
|
export { mapPortfolioHistory } from './mapPortfolioHistory.js';
|
|
16
14
|
export { leverageFromImf, mapPosition } from './mapPosition.js';
|
|
@@ -21,4 +19,5 @@ export { toIsoFromMs, toIsoFromSeconds } from './time.js';
|
|
|
21
19
|
export { positionRemovableMargin } from './transferMargin.js';
|
|
22
20
|
export { leverageToFraction, mapOrderTypeToInt, mapTimeInForceToInt, marginFractionToMaxLeverage, orderExpiryForTif, resolveTimeInForce, } from './wireEncoding.js';
|
|
23
21
|
export { lighterWithdrawableBalances } from './withdrawableBalances.js';
|
|
22
|
+
export { lighterFastWithdrawal, lighterWithdrawalTypes, } from './withdrawalTypes.js';
|
|
24
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,4EAA4E;AAC5E,oDAAoD;AAGpD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,4EAA4E;AAC5E,oDAAoD;AAGpD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAA;AAKvE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,sBAAsB,CAAA"}
|
|
@@ -6,5 +6,5 @@ import type { LtTrade } from '../types/index.js';
|
|
|
6
6
|
* @param market - Backend-resolved market identity for `trade.market_id`.
|
|
7
7
|
* @public
|
|
8
8
|
*/
|
|
9
|
-
export declare const mapFill: (trade: LtTrade, accountIndex: number, market: MarketDisplay) => Fill;
|
|
9
|
+
export declare const mapFill: (trade: LtTrade, accountIndex: number, market: MarketDisplay) => Fill | undefined;
|
|
10
10
|
//# sourceMappingURL=mapFill.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapFill.d.ts","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapFill.d.ts","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAG5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AA+FhD;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAClB,OAAO,OAAO,EACd,cAAc,MAAM,EACpB,QAAQ,aAAa,KACpB,IAAI,GAAG,SAwET,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { classifyFillFromPosition, ExplorerChainId, explorerTxUrl, } from '@lifi/perps-sdk';
|
|
1
|
+
import { absDecimalString, calculateRealizedPnl, classifyFillFromPosition, divideDecimalString, ExplorerChainId, explorerTxUrl, isDecimalString, isDecimalStringGreaterThan, isDecimalStringZero, safeAddDecimalString, safeDivideDecimalString, safeMultiplyDecimalString, warnSkippedVenueRow, } from '@lifi/perps-sdk';
|
|
2
2
|
import { LiquidityRole, OrderSide, OrderType } from '@lifi/perps-types';
|
|
3
|
-
import
|
|
4
|
-
import { LIGHTER_FEE_TICK_SCALE } from '../constants.js';
|
|
3
|
+
import { LIGHTER_FEE_TICK_SCALE, LIGHTER_PROVIDER_KEY } from '../constants.js';
|
|
5
4
|
import { leverageFromScaledImf } from './mapPosition.js';
|
|
5
|
+
import { rowTimestampToIsoStringOrUndefined } from './rowTimestamp.js';
|
|
6
6
|
import { isPlaceholderTxHash } from './txHash.js';
|
|
7
7
|
/**
|
|
8
8
|
* Fee charged on a fill, in the market's quote asset. Lighter publishes the
|
|
@@ -13,12 +13,21 @@ import { isPlaceholderTxHash } from './txHash.js';
|
|
|
13
13
|
* The product keeps the sign of both inputs. A rebate tick therefore maps to a
|
|
14
14
|
* negative amount, which `Fee.amount` permits and the Ondo mapper already emits
|
|
15
15
|
* when a rebate exceeds the fee, so this helper never clamps the sign. A zero
|
|
16
|
-
* notional charges a zero fee at every tick.
|
|
16
|
+
* notional charges a zero fee at every tick. A malformed notional gives
|
|
17
|
+
* `undefined`.
|
|
17
18
|
*/
|
|
18
|
-
const tickToFeeAmount = (notional, ownTick, integratorTick) =>
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
const tickToFeeAmount = (notional, ownTick, integratorTick) => {
|
|
20
|
+
if (!isDecimalString(notional)) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
const tickSum = safeAddDecimalString(String(ownTick), String(integratorTick ?? 0));
|
|
24
|
+
const scaledFee = tickSum === undefined
|
|
25
|
+
? undefined
|
|
26
|
+
: safeMultiplyDecimalString(notional, tickSum);
|
|
27
|
+
return scaledFee === undefined
|
|
28
|
+
? undefined
|
|
29
|
+
: safeDivideDecimalString(scaledFee, String(LIGHTER_FEE_TICK_SCALE));
|
|
30
|
+
};
|
|
22
31
|
/**
|
|
23
32
|
* Display leverage the viewer had set on the market when the trade executed,
|
|
24
33
|
* from the pre-trade initial margin fraction. Returns `undefined` when the
|
|
@@ -28,33 +37,36 @@ const leverageFromTradeImf = (imf) => imf === undefined ? undefined : leverageFr
|
|
|
28
37
|
/**
|
|
29
38
|
* Realized PnL on a position-reducing fill, derived from the pre-trade entry
|
|
30
39
|
* basis. Returns `undefined` for opens/increases (nothing closes) or when the
|
|
31
|
-
* entry-quote snapshot is absent, and `null` when the
|
|
32
|
-
* exactly zero — mirroring the Hyperliquid mapper's
|
|
40
|
+
* entry-quote snapshot is absent or an input is malformed, and `null` when the
|
|
41
|
+
* closed portion realizes exactly zero — mirroring the Hyperliquid mapper's
|
|
42
|
+
* `null`-for-zero convention.
|
|
33
43
|
*/
|
|
34
44
|
const deriveRealizedPnl = (startPosition, entryQuoteBefore, fillSize, fillPrice, isBuyer) => {
|
|
35
|
-
if (entryQuoteBefore === undefined
|
|
45
|
+
if (entryQuoteBefore === undefined ||
|
|
46
|
+
![startPosition, entryQuoteBefore, fillSize, fillPrice].every(isDecimalString)) {
|
|
36
47
|
return undefined;
|
|
37
48
|
}
|
|
38
|
-
|
|
39
|
-
if (start.eq(0)) {
|
|
49
|
+
if (isDecimalStringZero(startPosition)) {
|
|
40
50
|
return undefined;
|
|
41
51
|
}
|
|
42
|
-
const isLong =
|
|
52
|
+
const isLong = isDecimalStringGreaterThan(startPosition, '0');
|
|
43
53
|
const reducing = isLong ? !isBuyer : isBuyer;
|
|
44
54
|
if (!reducing) {
|
|
45
55
|
return undefined;
|
|
46
56
|
}
|
|
47
|
-
const absStart =
|
|
48
|
-
const fill = new Big(fillSize);
|
|
57
|
+
const absStart = absDecimalString(startPosition);
|
|
49
58
|
// A fill larger than the open size flips the position; only the portion that
|
|
50
59
|
// unwinds the existing position realizes PnL.
|
|
51
|
-
const closedSize =
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const pnl =
|
|
55
|
-
|
|
56
|
-
:
|
|
57
|
-
|
|
60
|
+
const closedSize = isDecimalStringGreaterThan(fillSize, absStart)
|
|
61
|
+
? absStart
|
|
62
|
+
: fillSize;
|
|
63
|
+
const pnl = calculateRealizedPnl({
|
|
64
|
+
entryPrice: divideDecimalString(absDecimalString(entryQuoteBefore), absStart),
|
|
65
|
+
closePrice: fillPrice,
|
|
66
|
+
closeSize: closedSize,
|
|
67
|
+
isLong,
|
|
68
|
+
});
|
|
69
|
+
return isDecimalStringZero(pnl) ? null : pnl;
|
|
58
70
|
};
|
|
59
71
|
/**
|
|
60
72
|
* Map a raw Lighter trade to the generic Fill type.
|
|
@@ -63,6 +75,12 @@ const deriveRealizedPnl = (startPosition, entryQuoteBefore, fillSize, fillPrice,
|
|
|
63
75
|
* @public
|
|
64
76
|
*/
|
|
65
77
|
export const mapFill = (trade, accountIndex, market) => {
|
|
78
|
+
const { size, price } = trade;
|
|
79
|
+
const createdAt = rowTimestampToIsoStringOrUndefined(trade.timestamp);
|
|
80
|
+
if (createdAt === undefined) {
|
|
81
|
+
warnSkippedVenueRow(LIGHTER_PROVIDER_KEY, 'fill', 'timestamp', trade.timestamp, 'timestamp');
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
66
84
|
const isBuyer = trade.bid_account_id === accountIndex;
|
|
67
85
|
const isMaker = (trade.is_maker_ask && !isBuyer) || (!trade.is_maker_ask && isBuyer);
|
|
68
86
|
// Lighter publishes both counterparties' position-before snapshots on every
|
|
@@ -81,29 +99,27 @@ export const mapFill = (trade, accountIndex, market) => {
|
|
|
81
99
|
const imfBefore = isMaker
|
|
82
100
|
? trade.maker_initial_margin_fraction_before
|
|
83
101
|
: trade.taker_initial_margin_fraction_before;
|
|
102
|
+
const feeAmount = feeTick === undefined
|
|
103
|
+
? undefined
|
|
104
|
+
: tickToFeeAmount(trade.usd_amount, feeTick, integratorFeeTick);
|
|
84
105
|
return {
|
|
85
106
|
id: trade.trade_id.toString(),
|
|
86
107
|
orderId: String(isBuyer ? trade.bid_id : trade.ask_id),
|
|
87
108
|
market,
|
|
88
109
|
side: isBuyer ? OrderSide.BUY : OrderSide.SELL,
|
|
89
110
|
type: OrderType.LIMIT,
|
|
90
|
-
size
|
|
91
|
-
price
|
|
111
|
+
size,
|
|
112
|
+
price,
|
|
92
113
|
liquidity: isMaker ? LiquidityRole.MAKER : LiquidityRole.TAKER,
|
|
93
114
|
// Lighter charges the fill fee in the market's quote asset.
|
|
94
|
-
fee:
|
|
115
|
+
fee: feeAmount === undefined
|
|
95
116
|
? undefined
|
|
96
|
-
: {
|
|
97
|
-
amount: tickToFeeAmount(trade.usd_amount, feeTick, integratorFeeTick),
|
|
98
|
-
asset: market.quoteAsset.displaySymbol,
|
|
99
|
-
},
|
|
117
|
+
: { amount: feeAmount, asset: market.quoteAsset.displaySymbol },
|
|
100
118
|
leverage: leverageFromTradeImf(imfBefore),
|
|
101
|
-
realizedPnl: deriveRealizedPnl(startPosition, entryQuoteBefore,
|
|
119
|
+
realizedPnl: deriveRealizedPnl(startPosition, entryQuoteBefore, size, price, isBuyer),
|
|
102
120
|
startPosition,
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
classification: classifyFillFromPosition(startPosition, isBuyer ? 'B' : 'A', trade.size),
|
|
106
|
-
createdAt: new Date(trade.timestamp).toISOString(),
|
|
121
|
+
classification: classifyFillFromPosition(startPosition, isBuyer ? OrderSide.BUY : OrderSide.SELL, size),
|
|
122
|
+
createdAt,
|
|
107
123
|
explorerLink: isPlaceholderTxHash(trade.tx_hash)
|
|
108
124
|
? undefined
|
|
109
125
|
: explorerTxUrl(ExplorerChainId.LIGHTER, trade.tx_hash),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapFill.js","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,aAAa,
|
|
1
|
+
{"version":3,"file":"mapFill.js","sourceRoot":"","sources":["../../../src/utils/mapFill.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,25 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type PerpsMarketDisplay, type Position } from '@lifi/perps-types';
|
|
2
2
|
import type { LtAccountPosition } from '../types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* True when the Lighter position row has a non-zero size. A malformed size
|
|
5
|
+
* keeps the row.
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export declare const isOpenPosition: (p: LtAccountPosition) => boolean;
|
|
3
9
|
/**
|
|
4
10
|
* Map raw Lighter account positions to open {@link Position}s, dropping
|
|
5
|
-
* zero-size rows. Only valid for payloads
|
|
6
|
-
* dropping zeros from a partial frame would
|
|
11
|
+
* zero-size rows and rows that `mapPosition` skips. Only valid for payloads
|
|
12
|
+
* carrying the full position set — dropping zeros from a partial frame would
|
|
13
|
+
* make closes unobservable.
|
|
7
14
|
*
|
|
8
15
|
* @public
|
|
9
16
|
*/
|
|
10
17
|
export declare const mapOpenPositions: (positions: LtAccountPosition[], resolveMarket: (marketId: number) => PerpsMarketDisplay) => Position[];
|
|
18
|
+
/**
|
|
19
|
+
* Map every open Lighter position for account totals, which must not leave a
|
|
20
|
+
* position out.
|
|
21
|
+
*
|
|
22
|
+
* @throws {PerpsError} `SDKError` when `mapPosition` skips an open row.
|
|
23
|
+
*/
|
|
24
|
+
export declare const requireOpenPositions: (positions: LtAccountPosition[], resolveMarket: (marketId: number) => PerpsMarketDisplay) => Position[];
|
|
11
25
|
//# sourceMappingURL=mapOpenPositions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapOpenPositions.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOpenPositions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapOpenPositions.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOpenPositions.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAG1D;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,GAAG,iBAAiB,KAAG,OACR,CAAA;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAC3B,WAAW,iBAAiB,EAAE,EAC9B,eAAe,CAAC,QAAQ,EAAE,MAAM,KAAK,kBAAkB,KACtD,QAAQ,EAIP,CAAA;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,WAAW,iBAAiB,EAAE,EAC9B,eAAe,CAAC,QAAQ,EAAE,MAAM,KAAK,kBAAkB,KACtD,QAAQ,EAYP,CAAA"}
|
|
@@ -1,12 +1,38 @@
|
|
|
1
|
+
import { PerpsError, safeIsDecimalStringZero } from '@lifi/perps-sdk';
|
|
2
|
+
import { PerpsErrorCode, } from '@lifi/perps-types';
|
|
3
|
+
import { LIGHTER_PROVIDER_KEY } from '../constants.js';
|
|
1
4
|
import { mapPosition } from './mapPosition.js';
|
|
5
|
+
/**
|
|
6
|
+
* True when the Lighter position row has a non-zero size. A malformed size
|
|
7
|
+
* keeps the row.
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export const isOpenPosition = (p) => safeIsDecimalStringZero(p.position) !== true;
|
|
2
11
|
/**
|
|
3
12
|
* Map raw Lighter account positions to open {@link Position}s, dropping
|
|
4
|
-
* zero-size rows. Only valid for payloads
|
|
5
|
-
* dropping zeros from a partial frame would
|
|
13
|
+
* zero-size rows and rows that `mapPosition` skips. Only valid for payloads
|
|
14
|
+
* carrying the full position set — dropping zeros from a partial frame would
|
|
15
|
+
* make closes unobservable.
|
|
6
16
|
*
|
|
7
17
|
* @public
|
|
8
18
|
*/
|
|
9
|
-
export const mapOpenPositions = (positions, resolveMarket) => positions
|
|
10
|
-
|
|
11
|
-
|
|
19
|
+
export const mapOpenPositions = (positions, resolveMarket) => positions.filter(isOpenPosition).flatMap((p) => {
|
|
20
|
+
const position = mapPosition(p, resolveMarket(p.market_id));
|
|
21
|
+
return position === undefined ? [] : [position];
|
|
22
|
+
});
|
|
23
|
+
/**
|
|
24
|
+
* Map every open Lighter position for account totals, which must not leave a
|
|
25
|
+
* position out.
|
|
26
|
+
*
|
|
27
|
+
* @throws {PerpsError} `SDKError` when `mapPosition` skips an open row.
|
|
28
|
+
*/
|
|
29
|
+
export const requireOpenPositions = (positions, resolveMarket) => positions.filter(isOpenPosition).map((p) => {
|
|
30
|
+
const position = mapPosition(p, resolveMarket(p.market_id));
|
|
31
|
+
if (position !== undefined) {
|
|
32
|
+
return position;
|
|
33
|
+
}
|
|
34
|
+
const error = new PerpsError(PerpsErrorCode.SDKError, `${LIGHTER_PROVIDER_KEY} position for market ${p.market_id} is not valid, so the account totals are unknown.`);
|
|
35
|
+
error.tool = LIGHTER_PROVIDER_KEY;
|
|
36
|
+
throw error;
|
|
37
|
+
});
|
|
12
38
|
//# sourceMappingURL=mapOpenPositions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapOpenPositions.js","sourceRoot":"","sources":["../../../src/utils/mapOpenPositions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapOpenPositions.js","sourceRoot":"","sources":["../../../src/utils/mapOpenPositions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EACL,cAAc,GAGf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAoB,EAAW,EAAE,CAC9D,uBAAuB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAA;AAE9C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,SAA8B,EAC9B,aAAuD,EAC3C,EAAE,CACd,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;IAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;IAC3D,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;AACjD,CAAC,CAAC,CAAA;AAEJ;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,SAA8B,EAC9B,aAAuD,EAC3C,EAAE,CACd,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IACzC,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;IAC3D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAC1B,cAAc,CAAC,QAAQ,EACvB,GAAG,oBAAoB,wBAAwB,CAAC,CAAC,SAAS,mDAAmD,CAC9G,CAAA;IACD,KAAK,CAAC,IAAI,GAAG,oBAAoB,CAAA;IACjC,MAAM,KAAK,CAAA;AACb,CAAC,CAAC,CAAA"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { MarketDisplay, Order } from '@lifi/perps-types';
|
|
2
2
|
import type { LtOrder } from '../types/index.js';
|
|
3
|
-
/**
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Map a Lighter order with its venue identity, lifecycle, and execution fields.
|
|
5
|
+
* A row with an invalid size or time gives `undefined`. An invalid limit price or
|
|
6
|
+
* filled quote amount omits that field.
|
|
7
|
+
*/
|
|
8
|
+
export declare const mapOrder: (order: LtOrder, market: MarketDisplay) => Order | undefined;
|
|
5
9
|
/** Include terminal rows and their ids so consumers can update history and active caches. */
|
|
6
10
|
export declare const mapOrderUpdates: (rawOrders: LtOrder[], resolveMarket: (marketIndex: number) => MarketDisplay | undefined) => {
|
|
7
11
|
orders: Order[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapOrder.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"
|
|
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;AA2GhD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GACnB,OAAO,OAAO,EACd,QAAQ,aAAa,KACpB,KAAK,GAAG,SAmGV,CAAA;AAED,6FAA6F;AAC7F,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;CAczC,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { isActiveOrderStatus, PerpsError, triggerConditionFor, } from '@lifi/perps-sdk';
|
|
1
|
+
import { isActiveOrderStatus, isDecimalStringGreaterThan, PerpsError, safeDivideDecimalString, safeTimestampToIsoString, triggerConditionFor, unknownToDecimalString, warnSkippedVenueRow, } from '@lifi/perps-sdk';
|
|
2
2
|
import { OrderSide, OrderStatus, OrderType, PerpsErrorCode, TimeInForce, } from '@lifi/perps-types';
|
|
3
|
-
import
|
|
3
|
+
import { LIGHTER_PROVIDER_KEY } from '../constants.js';
|
|
4
|
+
import { rowTimestampToIsoStringOrUndefined } from './rowTimestamp.js';
|
|
4
5
|
const mapOrderType = (type) => {
|
|
5
6
|
switch (type.replace(/-/g, '_')) {
|
|
6
7
|
case 'market':
|
|
@@ -35,7 +36,19 @@ const mapTimeInForce = (tif) => {
|
|
|
35
36
|
throw new PerpsError(PerpsErrorCode.SDKError, `Unknown Lighter time in force: ${tif}`);
|
|
36
37
|
}
|
|
37
38
|
};
|
|
38
|
-
const
|
|
39
|
+
const venueDecimal = (value, field) => {
|
|
40
|
+
try {
|
|
41
|
+
return unknownToDecimalString(value, field, LIGHTER_PROVIDER_KEY);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const hasFill = (order) => {
|
|
48
|
+
const filled = venueDecimal(order.filled_base_amount, 'filled_base_amount');
|
|
49
|
+
return filled !== undefined && isDecimalStringGreaterThan(filled, '0');
|
|
50
|
+
};
|
|
51
|
+
const mapOrderStatus = (order) => {
|
|
39
52
|
switch (order.status) {
|
|
40
53
|
case 'in-progress':
|
|
41
54
|
return OrderStatus.ACCEPTED;
|
|
@@ -45,7 +58,7 @@ const mapOrderStatus = (order, filledSize = new Big(order.filled_base_amount)) =
|
|
|
45
58
|
if (order.trigger_status === 'parent-order') {
|
|
46
59
|
return OrderStatus.PENDING;
|
|
47
60
|
}
|
|
48
|
-
return
|
|
61
|
+
return hasFill(order) ? OrderStatus.PARTIALLY_FILLED : OrderStatus.OPEN;
|
|
49
62
|
case 'triggered':
|
|
50
63
|
return OrderStatus.TRIGGERED;
|
|
51
64
|
case 'filled':
|
|
@@ -69,11 +82,49 @@ const mapOrderStatus = (order, filledSize = new Big(order.filled_base_amount)) =
|
|
|
69
82
|
throw new PerpsError(PerpsErrorCode.SDKError, `Unknown Lighter order status: ${order.status}`);
|
|
70
83
|
}
|
|
71
84
|
};
|
|
72
|
-
|
|
85
|
+
const skipOrder = (field, value) => {
|
|
86
|
+
warnSkippedVenueRow(LIGHTER_PROVIDER_KEY, 'order', field, value);
|
|
87
|
+
return undefined;
|
|
88
|
+
};
|
|
89
|
+
const orderSizeOrSkip = (field, value) => venueDecimal(value, field) === undefined ? skipOrder(field, value) : value;
|
|
90
|
+
/**
|
|
91
|
+
* Map a Lighter order with its venue identity, lifecycle, and execution fields.
|
|
92
|
+
* A row with an invalid size or time gives `undefined`. An invalid limit price or
|
|
93
|
+
* filled quote amount omits that field.
|
|
94
|
+
*/
|
|
73
95
|
export const mapOrder = (order, market) => {
|
|
74
96
|
const type = mapOrderType(order.type);
|
|
75
|
-
const
|
|
76
|
-
|
|
97
|
+
const originalSize = orderSizeOrSkip('initial_base_amount', order.initial_base_amount);
|
|
98
|
+
if (originalSize === undefined) {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
const remainingSize = orderSizeOrSkip('remaining_base_amount', order.remaining_base_amount);
|
|
102
|
+
if (remainingSize === undefined) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
const filledSize = orderSizeOrSkip('filled_base_amount', order.filled_base_amount);
|
|
106
|
+
if (filledSize === undefined) {
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
const createdAt = rowTimestampToIsoStringOrUndefined(order.created_at * 1000);
|
|
110
|
+
if (createdAt === undefined) {
|
|
111
|
+
return skipOrder('created_at', order.created_at);
|
|
112
|
+
}
|
|
113
|
+
const updatedAt = rowTimestampToIsoStringOrUndefined(order.updated_at * 1000);
|
|
114
|
+
if (updatedAt === undefined) {
|
|
115
|
+
return skipOrder('updated_at', order.updated_at);
|
|
116
|
+
}
|
|
117
|
+
const filledQuote = venueDecimal(order.filled_quote_amount, 'filled_quote_amount');
|
|
118
|
+
const filledAmount = venueDecimal(filledSize, 'filled_base_amount');
|
|
119
|
+
const averagePrice = filledQuote !== undefined &&
|
|
120
|
+
filledAmount !== undefined &&
|
|
121
|
+
isDecimalStringGreaterThan(filledAmount, '0')
|
|
122
|
+
? safeDivideDecimalString(filledQuote, filledAmount)
|
|
123
|
+
: undefined;
|
|
124
|
+
const expiresAt = order.order_expiry > 0
|
|
125
|
+
? safeTimestampToIsoString(order.order_expiry)
|
|
126
|
+
: undefined;
|
|
127
|
+
const status = mapOrderStatus(order);
|
|
77
128
|
const base = {
|
|
78
129
|
orderId: String(order.order_index),
|
|
79
130
|
...(order.client_order_index === 0
|
|
@@ -83,20 +134,14 @@ export const mapOrder = (order, market) => {
|
|
|
83
134
|
side: order.is_ask ? OrderSide.SELL : OrderSide.BUY,
|
|
84
135
|
status,
|
|
85
136
|
...(status === OrderStatus.CANCELLED ? { statusReason: order.status } : {}),
|
|
86
|
-
originalSize
|
|
87
|
-
remainingSize
|
|
88
|
-
filledSize
|
|
89
|
-
...(
|
|
90
|
-
? {
|
|
91
|
-
averagePrice: new Big(order.filled_quote_amount)
|
|
92
|
-
.div(filledSize)
|
|
93
|
-
.toFixed(),
|
|
94
|
-
}
|
|
95
|
-
: {}),
|
|
137
|
+
originalSize,
|
|
138
|
+
remainingSize,
|
|
139
|
+
filledSize,
|
|
140
|
+
...(averagePrice === undefined ? {} : { averagePrice }),
|
|
96
141
|
reduceOnly: order.reduce_only,
|
|
97
142
|
...(order.parent_order_id ? { parentOrderId: order.parent_order_id } : {}),
|
|
98
|
-
createdAt
|
|
99
|
-
updatedAt
|
|
143
|
+
createdAt,
|
|
144
|
+
updatedAt,
|
|
100
145
|
};
|
|
101
146
|
switch (type) {
|
|
102
147
|
case OrderType.TWAP:
|
|
@@ -109,17 +154,19 @@ export const mapOrder = (order, market) => {
|
|
|
109
154
|
case OrderType.STOP_MARKET:
|
|
110
155
|
case OrderType.STOP_LIMIT:
|
|
111
156
|
case OrderType.TAKE_PROFIT_MARKET:
|
|
112
|
-
case OrderType.TAKE_PROFIT_LIMIT:
|
|
157
|
+
case OrderType.TAKE_PROFIT_LIMIT: {
|
|
113
158
|
return {
|
|
114
159
|
...base,
|
|
115
160
|
type,
|
|
116
161
|
triggerPrice: order.trigger_price,
|
|
117
162
|
triggerCondition: triggerConditionFor(type, base.side),
|
|
118
|
-
...(type === OrderType.STOP_LIMIT ||
|
|
119
|
-
type === OrderType.TAKE_PROFIT_LIMIT
|
|
163
|
+
...((type === OrderType.STOP_LIMIT ||
|
|
164
|
+
type === OrderType.TAKE_PROFIT_LIMIT) &&
|
|
165
|
+
venueDecimal(order.price, 'price') !== undefined
|
|
120
166
|
? { limitPrice: order.price }
|
|
121
167
|
: {}),
|
|
122
168
|
};
|
|
169
|
+
}
|
|
123
170
|
case OrderType.MARKET:
|
|
124
171
|
case OrderType.LIMIT:
|
|
125
172
|
return {
|
|
@@ -127,9 +174,7 @@ export const mapOrder = (order, market) => {
|
|
|
127
174
|
type,
|
|
128
175
|
price: order.price,
|
|
129
176
|
timeInForce: mapTimeInForce(order.time_in_force),
|
|
130
|
-
...(
|
|
131
|
-
? { expiresAt: new Date(order.order_expiry).toISOString() }
|
|
132
|
-
: {}),
|
|
177
|
+
...(expiresAt === undefined ? {} : { expiresAt }),
|
|
133
178
|
};
|
|
134
179
|
}
|
|
135
180
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapOrder.js","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,SAAS,EACT,WAAW,EACX,SAAS,EACT,cAAc,EACd,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"mapOrder.js","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { PortfolioHistoryRange, PortfolioHistoryResponse } from '@lifi/perps-types';
|
|
2
|
-
import Big from 'big.js';
|
|
3
2
|
import type { LtPnLEntry } from '../types/pnl.js';
|
|
4
3
|
/**
|
|
5
4
|
* Derive window-relative history from Lighter's cumulative PnL snapshots.
|
|
6
|
-
* Historical account values are anchored to the current account value.
|
|
5
|
+
* Historical account values are anchored to the current account value. A
|
|
6
|
+
* snapshot with a non-finite value is skipped.
|
|
7
|
+
*
|
|
8
|
+
* @throws {PerpsError} `ValidationError` when `currentValue` is not a decimal
|
|
9
|
+
* string.
|
|
7
10
|
*/
|
|
8
|
-
export declare const mapPortfolioHistory: (range: PortfolioHistoryRange, snapshots: LtPnLEntry[], currentValue:
|
|
11
|
+
export declare const mapPortfolioHistory: (range: PortfolioHistoryRange, snapshots: LtPnLEntry[], currentValue: string) => PortfolioHistoryResponse;
|
|
9
12
|
//# sourceMappingURL=mapPortfolioHistory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapPortfolioHistory.d.ts","sourceRoot":"","sources":["../../../src/utils/mapPortfolioHistory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapPortfolioHistory.d.ts","sourceRoot":"","sources":["../../../src/utils/mapPortfolioHistory.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAuDjD;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,qBAAqB,EAC5B,WAAW,UAAU,EAAE,EACvB,cAAc,MAAM,KACnB,wBA0CF,CAAA"}
|