@lifi/perps-sdk 20.1.1 → 21.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/README.md +81 -6
- package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/PerpsClient.js +4 -1
- package/dist/cjs/client/PerpsClient.js.map +1 -1
- package/dist/cjs/{utils/decimal.d.ts → decimal/big.d.ts} +1 -1
- package/dist/cjs/decimal/big.d.ts.map +1 -0
- package/dist/cjs/{utils/decimal.js → decimal/big.js} +1 -1
- package/dist/cjs/decimal/big.js.map +1 -0
- package/dist/cjs/decimal/convert.d.ts +11 -0
- package/dist/cjs/decimal/convert.d.ts.map +1 -0
- package/dist/cjs/decimal/convert.js +70 -0
- package/dist/cjs/decimal/convert.js.map +1 -0
- package/dist/cjs/decimal/format.d.ts.map +1 -0
- package/dist/cjs/decimal/format.js.map +1 -0
- package/dist/cjs/decimal/parse.d.ts +6 -0
- package/dist/cjs/decimal/parse.d.ts.map +1 -0
- package/dist/cjs/{utils → decimal}/parse.js +5 -4
- package/dist/cjs/decimal/parse.js.map +1 -0
- package/dist/cjs/index.d.ts +17 -15
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +75 -61
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/math/fills.d.ts +5 -0
- package/dist/cjs/math/fills.d.ts.map +1 -0
- package/dist/cjs/{utils/fillClassification.js → math/fills.js} +16 -1
- package/dist/cjs/math/fills.js.map +1 -0
- package/dist/cjs/math/order.d.ts +45 -0
- package/dist/cjs/math/order.d.ts.map +1 -0
- package/dist/cjs/math/order.js +256 -0
- package/dist/cjs/math/order.js.map +1 -0
- package/dist/cjs/math/position.d.ts +56 -0
- package/dist/cjs/math/position.d.ts.map +1 -0
- package/dist/cjs/math/position.js +160 -0
- package/dist/cjs/math/position.js.map +1 -0
- package/dist/cjs/services/resolveQuote.d.ts.map +1 -1
- package/dist/cjs/services/resolveQuote.js +2 -2
- package/dist/cjs/services/resolveQuote.js.map +1 -1
- package/dist/cjs/services/resolveSubscribeQuote.d.ts.map +1 -1
- package/dist/cjs/services/resolveSubscribeQuote.js +2 -2
- package/dist/cjs/services/resolveSubscribeQuote.js.map +1 -1
- package/dist/cjs/types/provider.d.ts +3 -3
- package/dist/cjs/types/provider.d.ts.map +1 -1
- package/dist/cjs/types/withdrawal.d.ts +2 -0
- package/dist/cjs/types/withdrawal.d.ts.map +1 -1
- package/dist/cjs/utils/orderClassification.d.ts +1 -3
- package/dist/cjs/utils/orderClassification.d.ts.map +1 -1
- package/dist/cjs/utils/orderClassification.js +1 -15
- package/dist/cjs/utils/orderClassification.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wire/orderAmounts.d.ts +18 -0
- package/dist/cjs/wire/orderAmounts.d.ts.map +1 -0
- package/dist/cjs/wire/orderAmounts.js +79 -0
- package/dist/cjs/wire/orderAmounts.js.map +1 -0
- package/dist/cjs/wire/refuel.d.ts +8 -0
- package/dist/cjs/wire/refuel.d.ts.map +1 -0
- package/dist/cjs/wire/refuel.js +23 -0
- package/dist/cjs/wire/refuel.js.map +1 -0
- package/dist/cjs/wire/requireDecimal.d.ts +4 -0
- package/dist/cjs/wire/requireDecimal.d.ts.map +1 -0
- package/dist/cjs/wire/requireDecimal.js +16 -0
- package/dist/cjs/wire/requireDecimal.js.map +1 -0
- package/dist/cjs/wire/snap.d.ts +5 -0
- package/dist/cjs/wire/snap.d.ts.map +1 -0
- package/dist/cjs/wire/snap.js +12 -0
- package/dist/cjs/wire/snap.js.map +1 -0
- package/dist/cjs/wire/transferable.d.ts +3 -0
- package/dist/cjs/wire/transferable.d.ts.map +1 -0
- package/dist/cjs/wire/transferable.js +13 -0
- package/dist/cjs/wire/transferable.js.map +1 -0
- package/dist/cjs/wire/withdraw.d.ts +4 -0
- package/dist/cjs/wire/withdraw.d.ts.map +1 -0
- package/dist/cjs/wire/withdraw.js +13 -0
- package/dist/cjs/wire/withdraw.js.map +1 -0
- package/dist/esm/client/PerpsClient.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.js +4 -1
- package/dist/esm/client/PerpsClient.js.map +1 -1
- package/dist/esm/{utils/decimal.d.ts → decimal/big.d.ts} +1 -1
- package/dist/esm/decimal/big.d.ts.map +1 -0
- package/dist/esm/{utils/decimal.js → decimal/big.js} +1 -1
- package/dist/esm/decimal/big.js.map +1 -0
- package/dist/esm/decimal/convert.d.ts +80 -0
- package/dist/esm/decimal/convert.d.ts.map +1 -0
- package/dist/esm/decimal/convert.js +118 -0
- package/dist/esm/decimal/convert.js.map +1 -0
- package/dist/esm/decimal/format.d.ts.map +1 -0
- package/dist/esm/decimal/format.js.map +1 -0
- package/dist/esm/decimal/parse.d.ts +29 -0
- package/dist/esm/decimal/parse.d.ts.map +1 -0
- package/dist/esm/{utils → decimal}/parse.js +9 -10
- package/dist/esm/decimal/parse.js.map +1 -0
- package/dist/esm/index.d.ts +17 -15
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +12 -12
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/math/fills.d.ts +26 -0
- package/dist/esm/math/fills.d.ts.map +1 -0
- package/dist/esm/{utils/fillClassification.js → math/fills.js} +26 -2
- package/dist/esm/math/fills.js.map +1 -0
- package/dist/esm/{utils/calculations.d.ts → math/order.d.ts} +70 -75
- package/dist/esm/math/order.d.ts.map +1 -0
- package/dist/esm/{utils/calculations.js → math/order.js} +155 -111
- package/dist/esm/math/order.js.map +1 -0
- package/dist/esm/math/position.d.ts +211 -0
- package/dist/esm/math/position.d.ts.map +1 -0
- package/dist/esm/math/position.js +299 -0
- package/dist/esm/math/position.js.map +1 -0
- package/dist/esm/services/resolveQuote.d.ts.map +1 -1
- package/dist/esm/services/resolveQuote.js +1 -1
- package/dist/esm/services/resolveQuote.js.map +1 -1
- package/dist/esm/services/resolveSubscribeQuote.d.ts.map +1 -1
- package/dist/esm/services/resolveSubscribeQuote.js +1 -1
- package/dist/esm/services/resolveSubscribeQuote.js.map +1 -1
- package/dist/esm/types/provider.d.ts +23 -11
- package/dist/esm/types/provider.d.ts.map +1 -1
- package/dist/esm/types/withdrawal.d.ts +12 -0
- package/dist/esm/types/withdrawal.d.ts.map +1 -1
- package/dist/esm/utils/orderClassification.d.ts +1 -14
- package/dist/esm/utils/orderClassification.d.ts.map +1 -1
- package/dist/esm/utils/orderClassification.js +1 -25
- package/dist/esm/utils/orderClassification.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wire/orderAmounts.d.ts +55 -0
- package/dist/esm/wire/orderAmounts.d.ts.map +1 -0
- package/dist/esm/wire/orderAmounts.js +114 -0
- package/dist/esm/wire/orderAmounts.js.map +1 -0
- package/dist/esm/wire/refuel.d.ts +28 -0
- package/dist/esm/wire/refuel.d.ts.map +1 -0
- package/dist/esm/wire/refuel.js +36 -0
- package/dist/esm/wire/refuel.js.map +1 -0
- package/dist/esm/wire/requireDecimal.d.ts +11 -0
- package/dist/esm/wire/requireDecimal.d.ts.map +1 -0
- package/dist/esm/wire/requireDecimal.js +17 -0
- package/dist/esm/wire/requireDecimal.js.map +1 -0
- package/dist/esm/wire/snap.d.ts +24 -0
- package/dist/esm/wire/snap.d.ts.map +1 -0
- package/dist/esm/wire/snap.js +27 -0
- package/dist/esm/wire/snap.js.map +1 -0
- package/dist/esm/wire/transferable.d.ts +15 -0
- package/dist/esm/wire/transferable.d.ts.map +1 -0
- package/dist/esm/wire/transferable.js +22 -0
- package/dist/esm/wire/transferable.js.map +1 -0
- package/dist/esm/wire/withdraw.d.ts +14 -0
- package/dist/esm/wire/withdraw.d.ts.map +1 -0
- package/dist/esm/wire/withdraw.js +20 -0
- package/dist/esm/wire/withdraw.js.map +1 -0
- package/dist/types/client/PerpsClient.d.ts.map +1 -1
- package/dist/types/{utils/decimal.d.ts → decimal/big.d.ts} +1 -1
- package/dist/types/decimal/big.d.ts.map +1 -0
- package/dist/types/decimal/convert.d.ts +80 -0
- package/dist/types/decimal/convert.d.ts.map +1 -0
- package/dist/types/decimal/format.d.ts.map +1 -0
- package/dist/types/decimal/parse.d.ts +29 -0
- package/dist/types/decimal/parse.d.ts.map +1 -0
- package/dist/types/index.d.ts +17 -15
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/math/fills.d.ts +26 -0
- package/dist/types/math/fills.d.ts.map +1 -0
- package/dist/types/{utils/calculations.d.ts → math/order.d.ts} +70 -75
- package/dist/types/math/order.d.ts.map +1 -0
- package/dist/types/math/position.d.ts +211 -0
- package/dist/types/math/position.d.ts.map +1 -0
- package/dist/types/services/resolveQuote.d.ts.map +1 -1
- package/dist/types/services/resolveSubscribeQuote.d.ts.map +1 -1
- package/dist/types/types/provider.d.ts +23 -11
- package/dist/types/types/provider.d.ts.map +1 -1
- package/dist/types/types/withdrawal.d.ts +12 -0
- package/dist/types/types/withdrawal.d.ts.map +1 -1
- package/dist/types/utils/orderClassification.d.ts +1 -14
- package/dist/types/utils/orderClassification.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wire/orderAmounts.d.ts +55 -0
- package/dist/types/wire/orderAmounts.d.ts.map +1 -0
- package/dist/types/wire/refuel.d.ts +28 -0
- package/dist/types/wire/refuel.d.ts.map +1 -0
- package/dist/types/wire/requireDecimal.d.ts +11 -0
- package/dist/types/wire/requireDecimal.d.ts.map +1 -0
- package/dist/types/wire/snap.d.ts +24 -0
- package/dist/types/wire/snap.d.ts.map +1 -0
- package/dist/types/wire/transferable.d.ts +15 -0
- package/dist/types/wire/transferable.d.ts.map +1 -0
- package/dist/types/wire/withdraw.d.ts +14 -0
- package/dist/types/wire/withdraw.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/client/PerpsClient.ts +4 -1
- package/src/decimal/convert.ts +164 -0
- package/src/{utils → decimal}/parse.ts +13 -11
- package/src/index.ts +80 -57
- package/src/{utils/fillClassification.ts → math/fills.ts} +30 -1
- package/src/{utils/calculations.ts → math/order.ts} +205 -127
- package/src/{utils/positionMath.ts → math/position.ts} +173 -21
- package/src/services/resolveQuote.ts +1 -1
- package/src/services/resolveSubscribeQuote.ts +1 -1
- package/src/types/provider.ts +23 -10
- package/src/types/withdrawal.ts +12 -0
- package/src/utils/orderClassification.ts +0 -30
- package/src/version.ts +1 -1
- package/src/wire/orderAmounts.ts +172 -0
- package/src/wire/refuel.ts +51 -0
- package/src/wire/requireDecimal.ts +24 -0
- package/src/wire/snap.ts +38 -0
- package/src/wire/transferable.ts +26 -0
- package/src/wire/withdraw.ts +29 -0
- package/dist/cjs/utils/calculations.d.ts +0 -47
- package/dist/cjs/utils/calculations.d.ts.map +0 -1
- package/dist/cjs/utils/calculations.js +0 -214
- package/dist/cjs/utils/calculations.js.map +0 -1
- package/dist/cjs/utils/decimal.d.ts.map +0 -1
- package/dist/cjs/utils/decimal.js.map +0 -1
- package/dist/cjs/utils/fillClassification.d.ts +0 -3
- package/dist/cjs/utils/fillClassification.d.ts.map +0 -1
- package/dist/cjs/utils/fillClassification.js.map +0 -1
- package/dist/cjs/utils/format.d.ts.map +0 -1
- package/dist/cjs/utils/format.js.map +0 -1
- package/dist/cjs/utils/math.d.ts +0 -4
- package/dist/cjs/utils/math.d.ts.map +0 -1
- package/dist/cjs/utils/math.js +0 -8
- package/dist/cjs/utils/math.js.map +0 -1
- package/dist/cjs/utils/orderEntry.d.ts +0 -6
- package/dist/cjs/utils/orderEntry.d.ts.map +0 -1
- package/dist/cjs/utils/orderEntry.js +0 -20
- package/dist/cjs/utils/orderEntry.js.map +0 -1
- package/dist/cjs/utils/orderMath.d.ts +0 -6
- package/dist/cjs/utils/orderMath.d.ts.map +0 -1
- package/dist/cjs/utils/orderMath.js +0 -85
- package/dist/cjs/utils/orderMath.js.map +0 -1
- package/dist/cjs/utils/parse.d.ts +0 -3
- package/dist/cjs/utils/parse.d.ts.map +0 -1
- package/dist/cjs/utils/parse.js.map +0 -1
- package/dist/cjs/utils/positionMath.d.ts +0 -37
- package/dist/cjs/utils/positionMath.d.ts.map +0 -1
- package/dist/cjs/utils/positionMath.js +0 -99
- package/dist/cjs/utils/positionMath.js.map +0 -1
- package/dist/cjs/utils/scaleToInteger.d.ts +0 -3
- package/dist/cjs/utils/scaleToInteger.d.ts.map +0 -1
- package/dist/cjs/utils/scaleToInteger.js +0 -30
- package/dist/cjs/utils/scaleToInteger.js.map +0 -1
- package/dist/cjs/utils/units.d.ts +0 -3
- package/dist/cjs/utils/units.d.ts.map +0 -1
- package/dist/cjs/utils/units.js +0 -18
- package/dist/cjs/utils/units.js.map +0 -1
- package/dist/cjs/utils/validation.d.ts +0 -2
- package/dist/cjs/utils/validation.d.ts.map +0 -1
- package/dist/cjs/utils/validation.js +0 -16
- package/dist/cjs/utils/validation.js.map +0 -1
- package/dist/esm/utils/calculations.d.ts.map +0 -1
- package/dist/esm/utils/calculations.js.map +0 -1
- package/dist/esm/utils/decimal.d.ts.map +0 -1
- package/dist/esm/utils/decimal.js.map +0 -1
- package/dist/esm/utils/fillClassification.d.ts +0 -13
- package/dist/esm/utils/fillClassification.d.ts.map +0 -1
- package/dist/esm/utils/fillClassification.js.map +0 -1
- package/dist/esm/utils/format.d.ts.map +0 -1
- package/dist/esm/utils/format.js.map +0 -1
- package/dist/esm/utils/math.d.ts +0 -6
- package/dist/esm/utils/math.d.ts.map +0 -1
- package/dist/esm/utils/math.js +0 -5
- package/dist/esm/utils/math.js.map +0 -1
- package/dist/esm/utils/orderEntry.d.ts +0 -26
- package/dist/esm/utils/orderEntry.d.ts.map +0 -1
- package/dist/esm/utils/orderEntry.js +0 -34
- package/dist/esm/utils/orderEntry.js.map +0 -1
- package/dist/esm/utils/orderMath.d.ts +0 -37
- package/dist/esm/utils/orderMath.d.ts.map +0 -1
- package/dist/esm/utils/orderMath.js +0 -113
- package/dist/esm/utils/orderMath.js.map +0 -1
- package/dist/esm/utils/parse.d.ts +0 -28
- package/dist/esm/utils/parse.d.ts.map +0 -1
- package/dist/esm/utils/parse.js.map +0 -1
- package/dist/esm/utils/positionMath.d.ts +0 -120
- package/dist/esm/utils/positionMath.d.ts.map +0 -1
- package/dist/esm/utils/positionMath.js +0 -173
- package/dist/esm/utils/positionMath.js.map +0 -1
- package/dist/esm/utils/scaleToInteger.d.ts +0 -22
- package/dist/esm/utils/scaleToInteger.d.ts.map +0 -1
- package/dist/esm/utils/scaleToInteger.js +0 -34
- package/dist/esm/utils/scaleToInteger.js.map +0 -1
- package/dist/esm/utils/units.d.ts +0 -27
- package/dist/esm/utils/units.d.ts.map +0 -1
- package/dist/esm/utils/units.js +0 -38
- package/dist/esm/utils/units.js.map +0 -1
- package/dist/esm/utils/validation.d.ts +0 -18
- package/dist/esm/utils/validation.d.ts.map +0 -1
- package/dist/esm/utils/validation.js +0 -29
- package/dist/esm/utils/validation.js.map +0 -1
- package/dist/types/utils/calculations.d.ts.map +0 -1
- package/dist/types/utils/decimal.d.ts.map +0 -1
- package/dist/types/utils/fillClassification.d.ts +0 -13
- package/dist/types/utils/fillClassification.d.ts.map +0 -1
- package/dist/types/utils/format.d.ts.map +0 -1
- package/dist/types/utils/math.d.ts +0 -6
- package/dist/types/utils/math.d.ts.map +0 -1
- package/dist/types/utils/orderEntry.d.ts +0 -26
- package/dist/types/utils/orderEntry.d.ts.map +0 -1
- package/dist/types/utils/orderMath.d.ts +0 -37
- package/dist/types/utils/orderMath.d.ts.map +0 -1
- package/dist/types/utils/parse.d.ts +0 -28
- package/dist/types/utils/parse.d.ts.map +0 -1
- package/dist/types/utils/positionMath.d.ts +0 -120
- package/dist/types/utils/positionMath.d.ts.map +0 -1
- package/dist/types/utils/scaleToInteger.d.ts +0 -22
- package/dist/types/utils/scaleToInteger.d.ts.map +0 -1
- package/dist/types/utils/units.d.ts +0 -27
- package/dist/types/utils/units.d.ts.map +0 -1
- package/dist/types/utils/validation.d.ts +0 -18
- package/dist/types/utils/validation.d.ts.map +0 -1
- package/src/utils/math.ts +0 -7
- package/src/utils/orderEntry.ts +0 -38
- package/src/utils/orderMath.ts +0 -152
- package/src/utils/scaleToInteger.ts +0 -56
- package/src/utils/units.ts +0 -39
- package/src/utils/validation.ts +0 -38
- /package/dist/cjs/{utils → decimal}/format.d.ts +0 -0
- /package/dist/cjs/{utils → decimal}/format.js +0 -0
- /package/dist/esm/{utils → decimal}/format.d.ts +0 -0
- /package/dist/esm/{utils → decimal}/format.js +0 -0
- /package/dist/types/{utils → decimal}/format.d.ts +0 -0
- /package/src/{utils/decimal.ts → decimal/big.ts} +0 -0
- /package/src/{utils → decimal}/format.ts +0 -0
package/dist/cjs/index.js
CHANGED
|
@@ -14,9 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
18
|
-
exports.
|
|
19
|
-
exports.wsLog = exports.WsProviderBase = exports.WS_CHANNEL_TEARDOWN_LINGER_MS = exports.ReconnectingWebSocket = exports.PerpsWsClient = exports.DecodeChain = exports.cachePromise = exports.version = exports.name = exports.createWarnOnce = exports.
|
|
17
|
+
exports.effectiveLeverage = exports.directionSign = exports.calculateUnrealizedPnl = exports.calculateRoe = exports.calculateRequiredMargin = exports.calculateRealizedPnl = exports.calculateNotionalValue = exports.calculateLiquidationDistance = exports.calculateEffectiveLeverage = exports.walkOrderbook = exports.resolveCloseSize = exports.priceFromPercent = exports.percentFromPrice = exports.findMatchingPosition = exports.expectedRealizedPnlForTriggerOrder = exports.expectedRealizedPnlForOpenOrder = exports.estimateRealizedPnl = exports.estimateFees = exports.calculateTriggerPrice = exports.calculateTriggerPercent = exports.calculateSize = exports.calculateRealizedPnlPercent = exports.calculatePositionSize = exports.calculateExpectedPnl = exports.buildQuote = exports.applySlippage = exports.FillClassification = exports.classifyFillFromPosition = exports.classifyFill = exports.PerpsError = exports.PerpsErrorMessage = exports.stringToFloat = exports.parseDecimal = exports.formatUsd = exports.formatSignedUsd = exports.formatSignedPercent = exports.formatPrice = exports.formatNumber = exports.formatCompactUsd = exports.truncateDecimal = exports.scaleToInteger = exports.numberToDecimalString = exports.fromBaseUnitsNumber = exports.fromBaseUnits = exports.decimalToBaseUnits = exports.baseUnitsToDecimal = exports.requireProvider = exports.PerpsClient = exports.DEFAULT_API_URL = exports.createPerpsClient = void 0;
|
|
18
|
+
exports.readValidatedRecord = exports.parseStoredRecord = exports.localStorageAdapter = exports.resolveSubscribeQuote = exports.QUOTE_THROTTLE_MS = exports.resolveQuoteMarket = exports.resolveQuote = exports.getTermsAcceptance = exports.getReferralStatus = exports.getReferralActivity = exports.getQuote = exports.getProviders = exports.getPositions = exports.getOrders = exports.getOrderbook = exports.getOrder = exports.getOhlcv = exports.getMeta = exports.getMarketsContext = exports.getMarkets = exports.getMarket = exports.LIFI_API_URL = exports.getGasRecommendation = exports.getFills = exports.getAssets = exports.getActivity = exports.getAccount = exports.executeAction = exports.createAction = exports.toPerpsMarketDisplay = exports.toMarketDisplay = exports.MarketRegistry = exports.isActiveMarket = exports.getMarketRegistry = exports.getDefaultMarketId = exports.DEFAULT_MARKET_ID = exports.toAssetDisplay = exports.getAssetRegistry = exports.AssetRegistry = exports.wouldImmediatelyLiquidate = exports.realizedPnlOnClose = exports.predictUnrealizedPnl = exports.predictNewLeverage = exports.predictAverageEntryPrice = exports.liquidationDistancePercent = exports.estimateUnrealizedPnl = exports.estimateNewLeverage = exports.estimateLiquidationPrice = exports.estimateIsolatedLiquidationPrice = exports.estimateAverageEntryPrice = void 0;
|
|
19
|
+
exports.calculateWithdrawMax = exports.calculateTransferable = exports.snapOrderSize = exports.snapOrderPrice = exports.calculateRefuelAmount = exports.calculateOrderAmounts = exports.wsLog = exports.WsProviderBase = exports.WS_CHANNEL_TEARDOWN_LINGER_MS = exports.ReconnectingWebSocket = exports.PerpsWsClient = exports.DecodeChain = exports.cachePromise = exports.version = exports.name = exports.createWarnOnce = exports.signTypedDataWithSigner = exports.signTypedData = exports.selectUserSetupActions = exports.isSetupOptionFor = exports.triggerConditionFor = exports.isTwapOrder = exports.isTriggerOrder = exports.isTpSlOrder = exports.isTakeProfitOrder = exports.isStopLossOrder = exports.isRegularOrder = exports.isActiveOrderStatus = exports.ACTIVE_ORDER_STATUSES = exports.explorerTxUrlFromBase = exports.explorerTxUrl = exports.ExplorerChainId = exports.ROBINHOOD_USDG = exports.ROBINHOOD_NATIVE_GAS = exports.LIGHTER_USDC = exports.HYPERLIQUID_USDC = exports.ETHEREUM_USDC = exports.ETHEREUM_NATIVE_GAS = exports.paginateActivity = exports.resolveRetryPolicy = exports.LIFI_RETRY_DEFAULTS = exports.LIFI_REQUEST_KEY = exports.DISABLED_RETRY = exports.isAbortError = exports.fetchWithRetry = exports.errorCodeFromStatus = exports.createMemoryStorage = void 0;
|
|
20
20
|
__exportStar(require("@lifi/perps-types"), exports);
|
|
21
21
|
var createPerpsClient_js_1 = require("./client/createPerpsClient.js");
|
|
22
22
|
Object.defineProperty(exports, "createPerpsClient", { enumerable: true, get: function () { return createPerpsClient_js_1.createPerpsClient; } });
|
|
@@ -25,10 +25,71 @@ var PerpsClient_js_1 = require("./client/PerpsClient.js");
|
|
|
25
25
|
Object.defineProperty(exports, "PerpsClient", { enumerable: true, get: function () { return PerpsClient_js_1.PerpsClient; } });
|
|
26
26
|
var requireProvider_js_1 = require("./client/requireProvider.js");
|
|
27
27
|
Object.defineProperty(exports, "requireProvider", { enumerable: true, get: function () { return requireProvider_js_1.requireProvider; } });
|
|
28
|
+
var convert_js_1 = require("./decimal/convert.js");
|
|
29
|
+
Object.defineProperty(exports, "baseUnitsToDecimal", { enumerable: true, get: function () { return convert_js_1.baseUnitsToDecimal; } });
|
|
30
|
+
Object.defineProperty(exports, "decimalToBaseUnits", { enumerable: true, get: function () { return convert_js_1.decimalToBaseUnits; } });
|
|
31
|
+
Object.defineProperty(exports, "fromBaseUnits", { enumerable: true, get: function () { return convert_js_1.fromBaseUnits; } });
|
|
32
|
+
Object.defineProperty(exports, "fromBaseUnitsNumber", { enumerable: true, get: function () { return convert_js_1.fromBaseUnitsNumber; } });
|
|
33
|
+
Object.defineProperty(exports, "numberToDecimalString", { enumerable: true, get: function () { return convert_js_1.numberToDecimalString; } });
|
|
34
|
+
Object.defineProperty(exports, "scaleToInteger", { enumerable: true, get: function () { return convert_js_1.scaleToInteger; } });
|
|
35
|
+
Object.defineProperty(exports, "truncateDecimal", { enumerable: true, get: function () { return convert_js_1.truncateDecimal; } });
|
|
36
|
+
var format_js_1 = require("./decimal/format.js");
|
|
37
|
+
Object.defineProperty(exports, "formatCompactUsd", { enumerable: true, get: function () { return format_js_1.formatCompactUsd; } });
|
|
38
|
+
Object.defineProperty(exports, "formatNumber", { enumerable: true, get: function () { return format_js_1.formatNumber; } });
|
|
39
|
+
Object.defineProperty(exports, "formatPrice", { enumerable: true, get: function () { return format_js_1.formatPrice; } });
|
|
40
|
+
Object.defineProperty(exports, "formatSignedPercent", { enumerable: true, get: function () { return format_js_1.formatSignedPercent; } });
|
|
41
|
+
Object.defineProperty(exports, "formatSignedUsd", { enumerable: true, get: function () { return format_js_1.formatSignedUsd; } });
|
|
42
|
+
Object.defineProperty(exports, "formatUsd", { enumerable: true, get: function () { return format_js_1.formatUsd; } });
|
|
43
|
+
var parse_js_1 = require("./decimal/parse.js");
|
|
44
|
+
Object.defineProperty(exports, "parseDecimal", { enumerable: true, get: function () { return parse_js_1.parseDecimal; } });
|
|
45
|
+
Object.defineProperty(exports, "stringToFloat", { enumerable: true, get: function () { return parse_js_1.stringToFloat; } });
|
|
28
46
|
var constants_js_1 = require("./errors/constants.js");
|
|
29
47
|
Object.defineProperty(exports, "PerpsErrorMessage", { enumerable: true, get: function () { return constants_js_1.PerpsErrorMessage; } });
|
|
30
48
|
var PerpsError_js_1 = require("./errors/PerpsError.js");
|
|
31
49
|
Object.defineProperty(exports, "PerpsError", { enumerable: true, get: function () { return PerpsError_js_1.PerpsError; } });
|
|
50
|
+
var fills_js_1 = require("./math/fills.js");
|
|
51
|
+
Object.defineProperty(exports, "classifyFill", { enumerable: true, get: function () { return fills_js_1.classifyFill; } });
|
|
52
|
+
Object.defineProperty(exports, "classifyFillFromPosition", { enumerable: true, get: function () { return fills_js_1.classifyFillFromPosition; } });
|
|
53
|
+
Object.defineProperty(exports, "FillClassification", { enumerable: true, get: function () { return fills_js_1.FillClassification; } });
|
|
54
|
+
var order_js_1 = require("./math/order.js");
|
|
55
|
+
Object.defineProperty(exports, "applySlippage", { enumerable: true, get: function () { return order_js_1.applySlippage; } });
|
|
56
|
+
Object.defineProperty(exports, "buildQuote", { enumerable: true, get: function () { return order_js_1.buildQuote; } });
|
|
57
|
+
Object.defineProperty(exports, "calculateExpectedPnl", { enumerable: true, get: function () { return order_js_1.calculateExpectedPnl; } });
|
|
58
|
+
Object.defineProperty(exports, "calculatePositionSize", { enumerable: true, get: function () { return order_js_1.calculatePositionSize; } });
|
|
59
|
+
Object.defineProperty(exports, "calculateRealizedPnlPercent", { enumerable: true, get: function () { return order_js_1.calculateRealizedPnlPercent; } });
|
|
60
|
+
Object.defineProperty(exports, "calculateSize", { enumerable: true, get: function () { return order_js_1.calculateSize; } });
|
|
61
|
+
Object.defineProperty(exports, "calculateTriggerPercent", { enumerable: true, get: function () { return order_js_1.calculateTriggerPercent; } });
|
|
62
|
+
Object.defineProperty(exports, "calculateTriggerPrice", { enumerable: true, get: function () { return order_js_1.calculateTriggerPrice; } });
|
|
63
|
+
Object.defineProperty(exports, "estimateFees", { enumerable: true, get: function () { return order_js_1.estimateFees; } });
|
|
64
|
+
Object.defineProperty(exports, "estimateRealizedPnl", { enumerable: true, get: function () { return order_js_1.estimateRealizedPnl; } });
|
|
65
|
+
Object.defineProperty(exports, "expectedRealizedPnlForOpenOrder", { enumerable: true, get: function () { return order_js_1.expectedRealizedPnlForOpenOrder; } });
|
|
66
|
+
Object.defineProperty(exports, "expectedRealizedPnlForTriggerOrder", { enumerable: true, get: function () { return order_js_1.expectedRealizedPnlForTriggerOrder; } });
|
|
67
|
+
Object.defineProperty(exports, "findMatchingPosition", { enumerable: true, get: function () { return order_js_1.findMatchingPosition; } });
|
|
68
|
+
Object.defineProperty(exports, "percentFromPrice", { enumerable: true, get: function () { return order_js_1.percentFromPrice; } });
|
|
69
|
+
Object.defineProperty(exports, "priceFromPercent", { enumerable: true, get: function () { return order_js_1.priceFromPercent; } });
|
|
70
|
+
Object.defineProperty(exports, "resolveCloseSize", { enumerable: true, get: function () { return order_js_1.resolveCloseSize; } });
|
|
71
|
+
Object.defineProperty(exports, "walkOrderbook", { enumerable: true, get: function () { return order_js_1.walkOrderbook; } });
|
|
72
|
+
var position_js_1 = require("./math/position.js");
|
|
73
|
+
Object.defineProperty(exports, "calculateEffectiveLeverage", { enumerable: true, get: function () { return position_js_1.calculateEffectiveLeverage; } });
|
|
74
|
+
Object.defineProperty(exports, "calculateLiquidationDistance", { enumerable: true, get: function () { return position_js_1.calculateLiquidationDistance; } });
|
|
75
|
+
Object.defineProperty(exports, "calculateNotionalValue", { enumerable: true, get: function () { return position_js_1.calculateNotionalValue; } });
|
|
76
|
+
Object.defineProperty(exports, "calculateRealizedPnl", { enumerable: true, get: function () { return position_js_1.calculateRealizedPnl; } });
|
|
77
|
+
Object.defineProperty(exports, "calculateRequiredMargin", { enumerable: true, get: function () { return position_js_1.calculateRequiredMargin; } });
|
|
78
|
+
Object.defineProperty(exports, "calculateRoe", { enumerable: true, get: function () { return position_js_1.calculateRoe; } });
|
|
79
|
+
Object.defineProperty(exports, "calculateUnrealizedPnl", { enumerable: true, get: function () { return position_js_1.calculateUnrealizedPnl; } });
|
|
80
|
+
Object.defineProperty(exports, "directionSign", { enumerable: true, get: function () { return position_js_1.directionSign; } });
|
|
81
|
+
Object.defineProperty(exports, "effectiveLeverage", { enumerable: true, get: function () { return position_js_1.effectiveLeverage; } });
|
|
82
|
+
Object.defineProperty(exports, "estimateAverageEntryPrice", { enumerable: true, get: function () { return position_js_1.estimateAverageEntryPrice; } });
|
|
83
|
+
Object.defineProperty(exports, "estimateIsolatedLiquidationPrice", { enumerable: true, get: function () { return position_js_1.estimateIsolatedLiquidationPrice; } });
|
|
84
|
+
Object.defineProperty(exports, "estimateLiquidationPrice", { enumerable: true, get: function () { return position_js_1.estimateLiquidationPrice; } });
|
|
85
|
+
Object.defineProperty(exports, "estimateNewLeverage", { enumerable: true, get: function () { return position_js_1.estimateNewLeverage; } });
|
|
86
|
+
Object.defineProperty(exports, "estimateUnrealizedPnl", { enumerable: true, get: function () { return position_js_1.estimateUnrealizedPnl; } });
|
|
87
|
+
Object.defineProperty(exports, "liquidationDistancePercent", { enumerable: true, get: function () { return position_js_1.liquidationDistancePercent; } });
|
|
88
|
+
Object.defineProperty(exports, "predictAverageEntryPrice", { enumerable: true, get: function () { return position_js_1.predictAverageEntryPrice; } });
|
|
89
|
+
Object.defineProperty(exports, "predictNewLeverage", { enumerable: true, get: function () { return position_js_1.predictNewLeverage; } });
|
|
90
|
+
Object.defineProperty(exports, "predictUnrealizedPnl", { enumerable: true, get: function () { return position_js_1.predictUnrealizedPnl; } });
|
|
91
|
+
Object.defineProperty(exports, "realizedPnlOnClose", { enumerable: true, get: function () { return position_js_1.realizedPnlOnClose; } });
|
|
92
|
+
Object.defineProperty(exports, "wouldImmediatelyLiquidate", { enumerable: true, get: function () { return position_js_1.wouldImmediatelyLiquidate; } });
|
|
32
93
|
var assetRegistry_js_1 = require("./registry/assetRegistry.js");
|
|
33
94
|
Object.defineProperty(exports, "AssetRegistry", { enumerable: true, get: function () { return assetRegistry_js_1.AssetRegistry; } });
|
|
34
95
|
Object.defineProperty(exports, "getAssetRegistry", { enumerable: true, get: function () { return assetRegistry_js_1.getAssetRegistry; } });
|
|
@@ -109,22 +170,6 @@ Object.defineProperty(exports, "LIFI_RETRY_DEFAULTS", { enumerable: true, get: f
|
|
|
109
170
|
Object.defineProperty(exports, "resolveRetryPolicy", { enumerable: true, get: function () { return retryPolicy_js_1.resolveRetryPolicy; } });
|
|
110
171
|
var activityPaging_js_1 = require("./utils/activityPaging.js");
|
|
111
172
|
Object.defineProperty(exports, "paginateActivity", { enumerable: true, get: function () { return activityPaging_js_1.paginateActivity; } });
|
|
112
|
-
var calculations_js_1 = require("./utils/calculations.js");
|
|
113
|
-
Object.defineProperty(exports, "applySlippage", { enumerable: true, get: function () { return calculations_js_1.applySlippage; } });
|
|
114
|
-
Object.defineProperty(exports, "buildQuote", { enumerable: true, get: function () { return calculations_js_1.buildQuote; } });
|
|
115
|
-
Object.defineProperty(exports, "calculateExpectedPnl", { enumerable: true, get: function () { return calculations_js_1.calculateExpectedPnl; } });
|
|
116
|
-
Object.defineProperty(exports, "calculateNotionalValue", { enumerable: true, get: function () { return calculations_js_1.calculateNotionalValue; } });
|
|
117
|
-
Object.defineProperty(exports, "calculatePositionSize", { enumerable: true, get: function () { return calculations_js_1.calculatePositionSize; } });
|
|
118
|
-
Object.defineProperty(exports, "calculateRealizedPnlPercent", { enumerable: true, get: function () { return calculations_js_1.calculateRealizedPnlPercent; } });
|
|
119
|
-
Object.defineProperty(exports, "calculateRequiredMargin", { enumerable: true, get: function () { return calculations_js_1.calculateRequiredMargin; } });
|
|
120
|
-
Object.defineProperty(exports, "calculateRoe", { enumerable: true, get: function () { return calculations_js_1.calculateRoe; } });
|
|
121
|
-
Object.defineProperty(exports, "calculateUnrealizedPnl", { enumerable: true, get: function () { return calculations_js_1.calculateUnrealizedPnl; } });
|
|
122
|
-
Object.defineProperty(exports, "effectiveLeverage", { enumerable: true, get: function () { return calculations_js_1.effectiveLeverage; } });
|
|
123
|
-
Object.defineProperty(exports, "estimateFees", { enumerable: true, get: function () { return calculations_js_1.estimateFees; } });
|
|
124
|
-
Object.defineProperty(exports, "liquidationDistancePercent", { enumerable: true, get: function () { return calculations_js_1.liquidationDistancePercent; } });
|
|
125
|
-
Object.defineProperty(exports, "percentFromPrice", { enumerable: true, get: function () { return calculations_js_1.percentFromPrice; } });
|
|
126
|
-
Object.defineProperty(exports, "priceFromPercent", { enumerable: true, get: function () { return calculations_js_1.priceFromPercent; } });
|
|
127
|
-
Object.defineProperty(exports, "walkOrderbook", { enumerable: true, get: function () { return calculations_js_1.walkOrderbook; } });
|
|
128
173
|
var depositAssets_js_1 = require("./utils/depositAssets.js");
|
|
129
174
|
Object.defineProperty(exports, "ETHEREUM_NATIVE_GAS", { enumerable: true, get: function () { return depositAssets_js_1.ETHEREUM_NATIVE_GAS; } });
|
|
130
175
|
Object.defineProperty(exports, "ETHEREUM_USDC", { enumerable: true, get: function () { return depositAssets_js_1.ETHEREUM_USDC; } });
|
|
@@ -136,22 +181,8 @@ var explorer_js_1 = require("./utils/explorer.js");
|
|
|
136
181
|
Object.defineProperty(exports, "ExplorerChainId", { enumerable: true, get: function () { return explorer_js_1.ExplorerChainId; } });
|
|
137
182
|
Object.defineProperty(exports, "explorerTxUrl", { enumerable: true, get: function () { return explorer_js_1.explorerTxUrl; } });
|
|
138
183
|
Object.defineProperty(exports, "explorerTxUrlFromBase", { enumerable: true, get: function () { return explorer_js_1.explorerTxUrlFromBase; } });
|
|
139
|
-
var fillClassification_js_1 = require("./utils/fillClassification.js");
|
|
140
|
-
Object.defineProperty(exports, "classifyFillFromPosition", { enumerable: true, get: function () { return fillClassification_js_1.classifyFillFromPosition; } });
|
|
141
|
-
var format_js_1 = require("./utils/format.js");
|
|
142
|
-
Object.defineProperty(exports, "formatCompactUsd", { enumerable: true, get: function () { return format_js_1.formatCompactUsd; } });
|
|
143
|
-
Object.defineProperty(exports, "formatNumber", { enumerable: true, get: function () { return format_js_1.formatNumber; } });
|
|
144
|
-
Object.defineProperty(exports, "formatPrice", { enumerable: true, get: function () { return format_js_1.formatPrice; } });
|
|
145
|
-
Object.defineProperty(exports, "formatSignedPercent", { enumerable: true, get: function () { return format_js_1.formatSignedPercent; } });
|
|
146
|
-
Object.defineProperty(exports, "formatSignedUsd", { enumerable: true, get: function () { return format_js_1.formatSignedUsd; } });
|
|
147
|
-
Object.defineProperty(exports, "formatUsd", { enumerable: true, get: function () { return format_js_1.formatUsd; } });
|
|
148
|
-
var math_js_1 = require("./utils/math.js");
|
|
149
|
-
Object.defineProperty(exports, "maxOf", { enumerable: true, get: function () { return math_js_1.maxOf; } });
|
|
150
|
-
Object.defineProperty(exports, "minOf", { enumerable: true, get: function () { return math_js_1.minOf; } });
|
|
151
184
|
var orderClassification_js_1 = require("./utils/orderClassification.js");
|
|
152
185
|
Object.defineProperty(exports, "ACTIVE_ORDER_STATUSES", { enumerable: true, get: function () { return orderClassification_js_1.ACTIVE_ORDER_STATUSES; } });
|
|
153
|
-
Object.defineProperty(exports, "classifyFill", { enumerable: true, get: function () { return orderClassification_js_1.classifyFill; } });
|
|
154
|
-
Object.defineProperty(exports, "FillClassification", { enumerable: true, get: function () { return orderClassification_js_1.FillClassification; } });
|
|
155
186
|
Object.defineProperty(exports, "isActiveOrderStatus", { enumerable: true, get: function () { return orderClassification_js_1.isActiveOrderStatus; } });
|
|
156
187
|
Object.defineProperty(exports, "isRegularOrder", { enumerable: true, get: function () { return orderClassification_js_1.isRegularOrder; } });
|
|
157
188
|
Object.defineProperty(exports, "isStopLossOrder", { enumerable: true, get: function () { return orderClassification_js_1.isStopLossOrder; } });
|
|
@@ -160,40 +191,12 @@ Object.defineProperty(exports, "isTpSlOrder", { enumerable: true, get: function
|
|
|
160
191
|
Object.defineProperty(exports, "isTriggerOrder", { enumerable: true, get: function () { return orderClassification_js_1.isTriggerOrder; } });
|
|
161
192
|
Object.defineProperty(exports, "isTwapOrder", { enumerable: true, get: function () { return orderClassification_js_1.isTwapOrder; } });
|
|
162
193
|
Object.defineProperty(exports, "triggerConditionFor", { enumerable: true, get: function () { return orderClassification_js_1.triggerConditionFor; } });
|
|
163
|
-
var orderEntry_js_1 = require("./utils/orderEntry.js");
|
|
164
|
-
Object.defineProperty(exports, "marginFromNotional", { enumerable: true, get: function () { return orderEntry_js_1.marginFromNotional; } });
|
|
165
|
-
Object.defineProperty(exports, "marginFromSize", { enumerable: true, get: function () { return orderEntry_js_1.marginFromSize; } });
|
|
166
|
-
Object.defineProperty(exports, "sizeFromMargin", { enumerable: true, get: function () { return orderEntry_js_1.sizeFromMargin; } });
|
|
167
|
-
Object.defineProperty(exports, "sizeFromNotional", { enumerable: true, get: function () { return orderEntry_js_1.sizeFromNotional; } });
|
|
168
|
-
var orderMath_js_1 = require("./utils/orderMath.js");
|
|
169
|
-
Object.defineProperty(exports, "expectedRealizedPnlForOpenOrder", { enumerable: true, get: function () { return orderMath_js_1.expectedRealizedPnlForOpenOrder; } });
|
|
170
|
-
Object.defineProperty(exports, "expectedRealizedPnlForTriggerOrder", { enumerable: true, get: function () { return orderMath_js_1.expectedRealizedPnlForTriggerOrder; } });
|
|
171
|
-
Object.defineProperty(exports, "findMatchingPosition", { enumerable: true, get: function () { return orderMath_js_1.findMatchingPosition; } });
|
|
172
|
-
Object.defineProperty(exports, "resolveCloseSize", { enumerable: true, get: function () { return orderMath_js_1.resolveCloseSize; } });
|
|
173
|
-
var parse_js_1 = require("./utils/parse.js");
|
|
174
|
-
Object.defineProperty(exports, "parseDecimal", { enumerable: true, get: function () { return parse_js_1.parseDecimal; } });
|
|
175
|
-
Object.defineProperty(exports, "stringToFloat", { enumerable: true, get: function () { return parse_js_1.stringToFloat; } });
|
|
176
|
-
var positionMath_js_1 = require("./utils/positionMath.js");
|
|
177
|
-
Object.defineProperty(exports, "directionSign", { enumerable: true, get: function () { return positionMath_js_1.directionSign; } });
|
|
178
|
-
Object.defineProperty(exports, "estimateIsolatedLiquidationPrice", { enumerable: true, get: function () { return positionMath_js_1.estimateIsolatedLiquidationPrice; } });
|
|
179
|
-
Object.defineProperty(exports, "predictAverageEntryPrice", { enumerable: true, get: function () { return positionMath_js_1.predictAverageEntryPrice; } });
|
|
180
|
-
Object.defineProperty(exports, "predictNewLeverage", { enumerable: true, get: function () { return positionMath_js_1.predictNewLeverage; } });
|
|
181
|
-
Object.defineProperty(exports, "predictUnrealizedPnl", { enumerable: true, get: function () { return positionMath_js_1.predictUnrealizedPnl; } });
|
|
182
|
-
Object.defineProperty(exports, "realizedPnlOnClose", { enumerable: true, get: function () { return positionMath_js_1.realizedPnlOnClose; } });
|
|
183
|
-
Object.defineProperty(exports, "wouldImmediatelyLiquidate", { enumerable: true, get: function () { return positionMath_js_1.wouldImmediatelyLiquidate; } });
|
|
184
|
-
var scaleToInteger_js_1 = require("./utils/scaleToInteger.js");
|
|
185
|
-
Object.defineProperty(exports, "scaleToInteger", { enumerable: true, get: function () { return scaleToInteger_js_1.scaleToInteger; } });
|
|
186
194
|
var setupActions_js_1 = require("./utils/setupActions.js");
|
|
187
195
|
Object.defineProperty(exports, "isSetupOptionFor", { enumerable: true, get: function () { return setupActions_js_1.isSetupOptionFor; } });
|
|
188
196
|
Object.defineProperty(exports, "selectUserSetupActions", { enumerable: true, get: function () { return setupActions_js_1.selectUserSetupActions; } });
|
|
189
197
|
var signTypedData_js_1 = require("./utils/signTypedData.js");
|
|
190
198
|
Object.defineProperty(exports, "signTypedData", { enumerable: true, get: function () { return signTypedData_js_1.signTypedData; } });
|
|
191
199
|
Object.defineProperty(exports, "signTypedDataWithSigner", { enumerable: true, get: function () { return signTypedData_js_1.signTypedDataWithSigner; } });
|
|
192
|
-
var units_js_1 = require("./utils/units.js");
|
|
193
|
-
Object.defineProperty(exports, "fromBaseUnits", { enumerable: true, get: function () { return units_js_1.fromBaseUnits; } });
|
|
194
|
-
Object.defineProperty(exports, "fromBaseUnitsNumber", { enumerable: true, get: function () { return units_js_1.fromBaseUnitsNumber; } });
|
|
195
|
-
var validation_js_1 = require("./utils/validation.js");
|
|
196
|
-
Object.defineProperty(exports, "validateMargin", { enumerable: true, get: function () { return validation_js_1.validateMargin; } });
|
|
197
200
|
var warnOnce_js_1 = require("./utils/warnOnce.js");
|
|
198
201
|
Object.defineProperty(exports, "createWarnOnce", { enumerable: true, get: function () { return warnOnce_js_1.createWarnOnce; } });
|
|
199
202
|
var version_js_1 = require("./version.js");
|
|
@@ -212,4 +215,15 @@ Object.defineProperty(exports, "WS_CHANNEL_TEARDOWN_LINGER_MS", { enumerable: tr
|
|
|
212
215
|
Object.defineProperty(exports, "WsProviderBase", { enumerable: true, get: function () { return WsProviderBase_js_1.WsProviderBase; } });
|
|
213
216
|
var wsLog_js_1 = require("./websocket/wsLog.js");
|
|
214
217
|
Object.defineProperty(exports, "wsLog", { enumerable: true, get: function () { return wsLog_js_1.wsLog; } });
|
|
218
|
+
var orderAmounts_js_1 = require("./wire/orderAmounts.js");
|
|
219
|
+
Object.defineProperty(exports, "calculateOrderAmounts", { enumerable: true, get: function () { return orderAmounts_js_1.calculateOrderAmounts; } });
|
|
220
|
+
var refuel_js_1 = require("./wire/refuel.js");
|
|
221
|
+
Object.defineProperty(exports, "calculateRefuelAmount", { enumerable: true, get: function () { return refuel_js_1.calculateRefuelAmount; } });
|
|
222
|
+
var snap_js_1 = require("./wire/snap.js");
|
|
223
|
+
Object.defineProperty(exports, "snapOrderPrice", { enumerable: true, get: function () { return snap_js_1.snapOrderPrice; } });
|
|
224
|
+
Object.defineProperty(exports, "snapOrderSize", { enumerable: true, get: function () { return snap_js_1.snapOrderSize; } });
|
|
225
|
+
var transferable_js_1 = require("./wire/transferable.js");
|
|
226
|
+
Object.defineProperty(exports, "calculateTransferable", { enumerable: true, get: function () { return transferable_js_1.calculateTransferable; } });
|
|
227
|
+
var withdraw_js_1 = require("./wire/withdraw.js");
|
|
228
|
+
Object.defineProperty(exports, "calculateWithdrawMax", { enumerable: true, get: function () { return withdraw_js_1.calculateWithdrawMax; } });
|
|
215
229
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAYA,oDAAiC;AACjC,sEAGsC;AAFpC,yHAAA,iBAAiB,OAAA;AACjB,uHAAA,eAAe,OAAA;AAEjB,0DAAqD;AAA5C,6GAAA,WAAW,OAAA;AACpB,kEAA6D;AAApD,qHAAA,eAAe,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { FillClassification, OrderSide } from '@lifi/perps-types';
|
|
2
|
+
export { FillClassification };
|
|
3
|
+
export declare function classifyFillFromPosition(startPosition: string, side: string, sz: string): FillClassification;
|
|
4
|
+
export declare function classifyFill(side: OrderSide, realizedPnl: string | null | undefined): FillClassification;
|
|
5
|
+
//# sourceMappingURL=fills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fills.d.ts","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAQjE,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAY7B,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,kBAAkB,CAkCpB;AAQD,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACrC,kBAAkB,CAUpB"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FillClassification = void 0;
|
|
3
4
|
exports.classifyFillFromPosition = classifyFillFromPosition;
|
|
5
|
+
exports.classifyFill = classifyFill;
|
|
4
6
|
const perps_types_1 = require("@lifi/perps-types");
|
|
7
|
+
Object.defineProperty(exports, "FillClassification", { enumerable: true, get: function () { return perps_types_1.FillClassification; } });
|
|
8
|
+
const parse_js_1 = require("../decimal/parse.js");
|
|
5
9
|
function classifyFillFromPosition(startPosition, side, sz) {
|
|
6
10
|
const start = parseFloat(startPosition);
|
|
7
11
|
const delta = side === 'B' ? parseFloat(sz) : -parseFloat(sz);
|
|
@@ -34,4 +38,15 @@ function classifyFillFromPosition(startPosition, side, sz) {
|
|
|
34
38
|
}
|
|
35
39
|
return perps_types_1.FillClassification.REDUCED_SHORT;
|
|
36
40
|
}
|
|
37
|
-
|
|
41
|
+
function classifyFill(side, realizedPnl) {
|
|
42
|
+
const isClose = realizedPnl != null && (0, parse_js_1.parseDecimal)(realizedPnl) !== 0;
|
|
43
|
+
if (side === perps_types_1.OrderSide.BUY) {
|
|
44
|
+
return isClose
|
|
45
|
+
? perps_types_1.FillClassification.CLOSED_SHORT
|
|
46
|
+
: perps_types_1.FillClassification.OPENED_LONG;
|
|
47
|
+
}
|
|
48
|
+
return isClose
|
|
49
|
+
? perps_types_1.FillClassification.CLOSED_LONG
|
|
50
|
+
: perps_types_1.FillClassification.OPENED_SHORT;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=fills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fills.js","sourceRoot":"","sources":["../../../src/math/fills.ts"],"names":[],"mappings":";;;AAoBA,4DAsCC;AAQD,oCAaC;AA/ED,mDAAiE;AAQxD,mGARA,gCAAkB,OAQA;AAP3B,kDAAkD;AAmBlD,SAAgB,wBAAwB,CACtC,aAAqB,EACrB,IAAY,EACZ,EAAU;IAEV,MAAM,KAAK,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IACvC,MAAM,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAC7D,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,CAAA;IAEzB,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,GAAG,GAAG,CAAC;YACZ,CAAC,CAAC,gCAAkB,CAAC,WAAW;YAChC,CAAC,CAAC,gCAAkB,CAAC,YAAY,CAAA;IACrC,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,OAAO,gCAAkB,CAAC,WAAW,CAAA;QACvC,CAAC;QACD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,OAAO,gCAAkB,CAAC,cAAc,CAAA;QAC1C,CAAC;QACD,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;YAChB,OAAO,gCAAkB,CAAC,cAAc,CAAA;QAC1C,CAAC;QACD,OAAO,gCAAkB,CAAC,YAAY,CAAA;IACxC,CAAC;IAED,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACd,OAAO,gCAAkB,CAAC,YAAY,CAAA;IACxC,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACZ,OAAO,gCAAkB,CAAC,aAAa,CAAA;IACzC,CAAC;IACD,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;QAChB,OAAO,gCAAkB,CAAC,eAAe,CAAA;IAC3C,CAAC;IACD,OAAO,gCAAkB,CAAC,aAAa,CAAA;AACzC,CAAC;AAQD,SAAgB,YAAY,CAC1B,IAAe,EACf,WAAsC;IAEtC,MAAM,OAAO,GAAG,WAAW,IAAI,IAAI,IAAI,IAAA,uBAAY,EAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IACtE,IAAI,IAAI,KAAK,uBAAS,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,OAAO;YACZ,CAAC,CAAC,gCAAkB,CAAC,YAAY;YACjC,CAAC,CAAC,gCAAkB,CAAC,WAAW,CAAA;IACpC,CAAC;IACD,OAAO,OAAO;QACZ,CAAC,CAAC,gCAAkB,CAAC,WAAW;QAChC,CAAC,CAAC,gCAAkB,CAAC,YAAY,CAAA;AACrC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type FeeTier, type Market, type MarketContext, type Order, type OrderbookLevel, type Position, type Quote, type QuoteSide, type RegularOrder, type TradeType, type TriggerOrder } from '@lifi/perps-types';
|
|
2
|
+
export declare function calculateSize(marginUsd: number, leverage: number, price: number): number;
|
|
3
|
+
export declare const calculatePositionSize: typeof calculateSize;
|
|
4
|
+
export declare function estimateFees(sizeUsd: number, feeRate: number): number;
|
|
5
|
+
export declare function applySlippage(price: number, slippagePercent: number, isBuy: boolean): number;
|
|
6
|
+
export interface ExpectedPnl {
|
|
7
|
+
amount: number;
|
|
8
|
+
percent: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function calculateExpectedPnl(triggerPrice: number, entryPrice: number, leverage: number, isLong: boolean, margin: number): ExpectedPnl | null;
|
|
11
|
+
export declare function calculateTriggerPrice(percent: number, entryPrice: number, leverage: number, isLong: boolean): number;
|
|
12
|
+
export declare const priceFromPercent: typeof calculateTriggerPrice;
|
|
13
|
+
export declare function calculateTriggerPercent(price: number, entryPrice: number, leverage: number, isLong: boolean): number;
|
|
14
|
+
export declare const percentFromPrice: typeof calculateTriggerPercent;
|
|
15
|
+
export declare function calculateRealizedPnlPercent(realizedPnl: number, size: number, price: number): number;
|
|
16
|
+
interface BookWalk {
|
|
17
|
+
baseSize: number;
|
|
18
|
+
filledNotional: number;
|
|
19
|
+
vwap: number;
|
|
20
|
+
insufficientLiquidity: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare function walkOrderbook(levels: OrderbookLevel[], sizeUsd: number): BookWalk;
|
|
23
|
+
interface BuildQuoteInput {
|
|
24
|
+
provider: string;
|
|
25
|
+
symbol: string;
|
|
26
|
+
type: TradeType;
|
|
27
|
+
side: QuoteSide;
|
|
28
|
+
sizeUsd: number;
|
|
29
|
+
market: Market;
|
|
30
|
+
price: MarketContext;
|
|
31
|
+
bids: OrderbookLevel[];
|
|
32
|
+
asks: OrderbookLevel[];
|
|
33
|
+
feeTier: FeeTier;
|
|
34
|
+
timestamp: number;
|
|
35
|
+
}
|
|
36
|
+
export declare function buildQuote(input: BuildQuoteInput): Quote;
|
|
37
|
+
export declare function findMatchingPosition(marketId: string, positions: readonly Position[]): Position | undefined;
|
|
38
|
+
export declare function resolveCloseSize(orderSize: number, positionSize: number): number;
|
|
39
|
+
declare function regularOrderRealizedPnl(order: RegularOrder, position: Position | undefined): number | null;
|
|
40
|
+
declare function triggerOrderRealizedPnl(order: TriggerOrder, position: Position | undefined): number | null;
|
|
41
|
+
export declare function estimateRealizedPnl(order: Order, position: Position | undefined): number | null;
|
|
42
|
+
export declare const expectedRealizedPnlForOpenOrder: typeof regularOrderRealizedPnl;
|
|
43
|
+
export declare const expectedRealizedPnlForTriggerOrder: typeof triggerOrderRealizedPnl;
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../src/math/order.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.expectedRealizedPnlForTriggerOrder = exports.expectedRealizedPnlForOpenOrder = exports.percentFromPrice = exports.priceFromPercent = exports.calculatePositionSize = void 0;
|
|
4
|
+
exports.calculateSize = calculateSize;
|
|
5
|
+
exports.estimateFees = estimateFees;
|
|
6
|
+
exports.applySlippage = applySlippage;
|
|
7
|
+
exports.calculateExpectedPnl = calculateExpectedPnl;
|
|
8
|
+
exports.calculateTriggerPrice = calculateTriggerPrice;
|
|
9
|
+
exports.calculateTriggerPercent = calculateTriggerPercent;
|
|
10
|
+
exports.calculateRealizedPnlPercent = calculateRealizedPnlPercent;
|
|
11
|
+
exports.walkOrderbook = walkOrderbook;
|
|
12
|
+
exports.buildQuote = buildQuote;
|
|
13
|
+
exports.findMatchingPosition = findMatchingPosition;
|
|
14
|
+
exports.resolveCloseSize = resolveCloseSize;
|
|
15
|
+
exports.estimateRealizedPnl = estimateRealizedPnl;
|
|
16
|
+
const perps_types_1 = require("@lifi/perps-types");
|
|
17
|
+
const big_js_1 = require("../decimal/big.js");
|
|
18
|
+
const PerpsError_js_1 = require("../errors/PerpsError.js");
|
|
19
|
+
const orderClassification_js_1 = require("../utils/orderClassification.js");
|
|
20
|
+
const position_js_1 = require("./position.js");
|
|
21
|
+
function calculateSize(marginUsd, leverage, price) {
|
|
22
|
+
if (price === 0) {
|
|
23
|
+
return (marginUsd * leverage) / price;
|
|
24
|
+
}
|
|
25
|
+
if (!(0, big_js_1.areFinite)(marginUsd, leverage, price)) {
|
|
26
|
+
return Number.NaN;
|
|
27
|
+
}
|
|
28
|
+
return new big_js_1.DivBig(marginUsd).times(leverage).div(price).toNumber();
|
|
29
|
+
}
|
|
30
|
+
exports.calculatePositionSize = calculateSize;
|
|
31
|
+
function estimateFees(sizeUsd, feeRate) {
|
|
32
|
+
if (!(0, big_js_1.areFinite)(sizeUsd, feeRate)) {
|
|
33
|
+
return Number.NaN;
|
|
34
|
+
}
|
|
35
|
+
return new big_js_1.DivBig(sizeUsd).times(feeRate).toNumber();
|
|
36
|
+
}
|
|
37
|
+
function applySlippage(price, slippagePercent, isBuy) {
|
|
38
|
+
if (!(0, big_js_1.areFinite)(price, slippagePercent)) {
|
|
39
|
+
return Number.NaN;
|
|
40
|
+
}
|
|
41
|
+
const multiplier = new big_js_1.DivBig(slippagePercent).div(100).plus(1);
|
|
42
|
+
if (isBuy) {
|
|
43
|
+
return new big_js_1.DivBig(price).times(multiplier).toNumber();
|
|
44
|
+
}
|
|
45
|
+
if (multiplier.eq(0)) {
|
|
46
|
+
return price / multiplier.toNumber();
|
|
47
|
+
}
|
|
48
|
+
return new big_js_1.DivBig(price).div(multiplier).toNumber();
|
|
49
|
+
}
|
|
50
|
+
function calculateExpectedPnl(triggerPrice, entryPrice, leverage, isLong, margin) {
|
|
51
|
+
if (!triggerPrice || entryPrice === 0 || margin === 0) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
if (!(0, big_js_1.areFinite)(triggerPrice, entryPrice, leverage, margin)) {
|
|
55
|
+
return { amount: Number.NaN, percent: Number.NaN };
|
|
56
|
+
}
|
|
57
|
+
const priceDiff = isLong
|
|
58
|
+
? new big_js_1.DivBig(triggerPrice).minus(entryPrice)
|
|
59
|
+
: new big_js_1.DivBig(entryPrice).minus(triggerPrice);
|
|
60
|
+
const percent = priceDiff.div(entryPrice).times(leverage).times(100);
|
|
61
|
+
const amount = percent.times(margin).div(100);
|
|
62
|
+
return { amount: amount.toNumber(), percent: percent.toNumber() };
|
|
63
|
+
}
|
|
64
|
+
function calculateTriggerPrice(percent, entryPrice, leverage, isLong) {
|
|
65
|
+
if (entryPrice === 0 || leverage === 0) {
|
|
66
|
+
return 0;
|
|
67
|
+
}
|
|
68
|
+
if (!(0, big_js_1.areFinite)(percent, entryPrice, leverage)) {
|
|
69
|
+
return Number.NaN;
|
|
70
|
+
}
|
|
71
|
+
const priceDelta = new big_js_1.DivBig(percent)
|
|
72
|
+
.times(entryPrice)
|
|
73
|
+
.div(new big_js_1.DivBig(leverage).times(100));
|
|
74
|
+
const entry = new big_js_1.DivBig(entryPrice);
|
|
75
|
+
return (isLong ? entry.plus(priceDelta) : entry.minus(priceDelta)).toNumber();
|
|
76
|
+
}
|
|
77
|
+
exports.priceFromPercent = calculateTriggerPrice;
|
|
78
|
+
function calculateTriggerPercent(price, entryPrice, leverage, isLong) {
|
|
79
|
+
if (entryPrice === 0 || leverage === 0) {
|
|
80
|
+
return 0;
|
|
81
|
+
}
|
|
82
|
+
if (!(0, big_js_1.areFinite)(price, entryPrice, leverage)) {
|
|
83
|
+
return Number.NaN;
|
|
84
|
+
}
|
|
85
|
+
const priceDiff = isLong
|
|
86
|
+
? new big_js_1.DivBig(price).minus(entryPrice)
|
|
87
|
+
: new big_js_1.DivBig(entryPrice).minus(price);
|
|
88
|
+
return priceDiff.div(entryPrice).times(leverage).times(100).toNumber();
|
|
89
|
+
}
|
|
90
|
+
exports.percentFromPrice = calculateTriggerPercent;
|
|
91
|
+
function calculateRealizedPnlPercent(realizedPnl, size, price) {
|
|
92
|
+
if (!(0, big_js_1.areFinite)(realizedPnl, size, price)) {
|
|
93
|
+
return Number.NaN;
|
|
94
|
+
}
|
|
95
|
+
const positionValue = new big_js_1.DivBig(size).abs().times(price);
|
|
96
|
+
if (positionValue.eq(0)) {
|
|
97
|
+
return 0;
|
|
98
|
+
}
|
|
99
|
+
return new big_js_1.DivBig(realizedPnl).div(positionValue).times(100).toNumber();
|
|
100
|
+
}
|
|
101
|
+
function walkOrderbook(levels, sizeUsd) {
|
|
102
|
+
if (!Number.isFinite(sizeUsd)) {
|
|
103
|
+
return {
|
|
104
|
+
baseSize: Number.NaN,
|
|
105
|
+
filledNotional: Number.NaN,
|
|
106
|
+
vwap: Number.NaN,
|
|
107
|
+
insufficientLiquidity: true,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
let remaining = new big_js_1.DivBig(sizeUsd);
|
|
111
|
+
let baseSize = new big_js_1.DivBig(0);
|
|
112
|
+
let filledNotional = new big_js_1.DivBig(0);
|
|
113
|
+
for (const level of levels) {
|
|
114
|
+
if (remaining.lte(0)) {
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
const { price, size } = parseLevel(level);
|
|
118
|
+
const levelNotional = size.times(price);
|
|
119
|
+
const take = remaining.lt(levelNotional) ? remaining : levelNotional;
|
|
120
|
+
if (take.eq(0)) {
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
filledNotional = filledNotional.plus(take);
|
|
124
|
+
baseSize = baseSize.plus(take.div(price));
|
|
125
|
+
remaining = remaining.minus(take);
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
baseSize: baseSize.toNumber(),
|
|
129
|
+
filledNotional: filledNotional.toNumber(),
|
|
130
|
+
vwap: baseSize.eq(0) ? 0 : filledNotional.div(baseSize).toNumber(),
|
|
131
|
+
insufficientLiquidity: remaining.gt(0),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
function parseLevel(level) {
|
|
135
|
+
try {
|
|
136
|
+
return { price: new big_js_1.DivBig(level.price), size: new big_js_1.DivBig(level.size) };
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ValidationError, `Malformed orderbook level: price='${level.price}', size='${level.size}'`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
function buildQuote(input) {
|
|
143
|
+
const { market, price, side, sizeUsd, feeTier } = input;
|
|
144
|
+
const markPrice = Number.parseFloat(price.markPrice);
|
|
145
|
+
const levels = side === 'buy' ? input.asks : input.bids;
|
|
146
|
+
const walk = walkOrderbook(levels, sizeUsd);
|
|
147
|
+
const priceImpactBps = markPrice === 0 || walk.vwap === 0
|
|
148
|
+
? 0
|
|
149
|
+
: Math.abs((walk.vwap - markPrice) / markPrice) * 10_000;
|
|
150
|
+
const feeUsd = estimateFees(walk.filledNotional, Number.parseFloat(feeTier.taker));
|
|
151
|
+
return {
|
|
152
|
+
provider: input.provider,
|
|
153
|
+
symbol: input.symbol,
|
|
154
|
+
marketId: market.id,
|
|
155
|
+
type: input.type,
|
|
156
|
+
side,
|
|
157
|
+
sizeUsd: sizeUsd.toString(),
|
|
158
|
+
baseSize: walk.baseSize.toString(),
|
|
159
|
+
markPrice: price.markPrice,
|
|
160
|
+
expectedFillPrice: walk.vwap.toString(),
|
|
161
|
+
priceImpactBps: priceImpactBps.toString(),
|
|
162
|
+
feeTier,
|
|
163
|
+
isDefaultFeeTier: true,
|
|
164
|
+
feeUsd: feeUsd.toString(),
|
|
165
|
+
funding: price.funding ?? null,
|
|
166
|
+
insufficientLiquidity: walk.insufficientLiquidity,
|
|
167
|
+
timestamp: input.timestamp,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
function findMatchingPosition(marketId, positions) {
|
|
171
|
+
return positions.find((p) => p.market.id === marketId);
|
|
172
|
+
}
|
|
173
|
+
function resolveCloseSize(orderSize, positionSize) {
|
|
174
|
+
if (orderSize === 0) {
|
|
175
|
+
return positionSize;
|
|
176
|
+
}
|
|
177
|
+
return Math.min(orderSize, positionSize);
|
|
178
|
+
}
|
|
179
|
+
function regularOrderRealizedPnl(order, position) {
|
|
180
|
+
if (!position || !(0, orderClassification_js_1.isActiveOrderStatus)(order.status)) {
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
const isLong = position.side === perps_types_1.PositionSide.LONG;
|
|
184
|
+
const reducesPosition = (isLong && order.side === perps_types_1.OrderSide.SELL) ||
|
|
185
|
+
(!isLong && order.side === perps_types_1.OrderSide.BUY);
|
|
186
|
+
if (!reducesPosition) {
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
const limitPrice = Number.parseFloat(order.price ?? '');
|
|
190
|
+
const entryPrice = Number.parseFloat(position.entryPrice);
|
|
191
|
+
const orderSize = Math.abs(Number.parseFloat(order.remainingSize));
|
|
192
|
+
const positionSize = Math.abs(Number.parseFloat(position.size));
|
|
193
|
+
if (!Number.isFinite(limitPrice) ||
|
|
194
|
+
!Number.isFinite(entryPrice) ||
|
|
195
|
+
!Number.isFinite(orderSize) ||
|
|
196
|
+
!Number.isFinite(positionSize) ||
|
|
197
|
+
positionSize <= 0) {
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
if (orderSize === 0) {
|
|
201
|
+
return null;
|
|
202
|
+
}
|
|
203
|
+
const closeSize = resolveCloseSize(orderSize, positionSize);
|
|
204
|
+
return (0, position_js_1.calculateRealizedPnl)({
|
|
205
|
+
entryPrice,
|
|
206
|
+
closePrice: limitPrice,
|
|
207
|
+
closeSize,
|
|
208
|
+
isLong,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
function triggerOrderRealizedPnl(order, position) {
|
|
212
|
+
if (!position ||
|
|
213
|
+
!(0, orderClassification_js_1.isActiveOrderStatus)(order.status) ||
|
|
214
|
+
order.status === perps_types_1.OrderStatus.PENDING) {
|
|
215
|
+
return null;
|
|
216
|
+
}
|
|
217
|
+
const isLong = position.side === perps_types_1.PositionSide.LONG;
|
|
218
|
+
if ((isLong && order.side !== perps_types_1.OrderSide.SELL) ||
|
|
219
|
+
(!isLong && order.side !== perps_types_1.OrderSide.BUY)) {
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
222
|
+
const triggerPrice = Number.parseFloat(order.triggerPrice);
|
|
223
|
+
const entryPrice = Number.parseFloat(position.entryPrice);
|
|
224
|
+
const orderSize = Math.abs(Number.parseFloat(order.remainingSize));
|
|
225
|
+
const positionSize = Math.abs(Number.parseFloat(position.size));
|
|
226
|
+
if (!Number.isFinite(triggerPrice) ||
|
|
227
|
+
!Number.isFinite(entryPrice) ||
|
|
228
|
+
!Number.isFinite(orderSize) ||
|
|
229
|
+
!Number.isFinite(positionSize) ||
|
|
230
|
+
positionSize <= 0) {
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
if (orderSize === 0 &&
|
|
234
|
+
(Number.parseFloat(order.originalSize) !== 0 || !order.reduceOnly)) {
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
const closeSize = resolveCloseSize(orderSize, positionSize);
|
|
238
|
+
return (0, position_js_1.calculateRealizedPnl)({
|
|
239
|
+
entryPrice,
|
|
240
|
+
closePrice: triggerPrice,
|
|
241
|
+
closeSize,
|
|
242
|
+
isLong,
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
function estimateRealizedPnl(order, position) {
|
|
246
|
+
if ((0, orderClassification_js_1.isTriggerOrder)(order)) {
|
|
247
|
+
return triggerOrderRealizedPnl(order, position);
|
|
248
|
+
}
|
|
249
|
+
if ((0, orderClassification_js_1.isRegularOrder)(order)) {
|
|
250
|
+
return regularOrderRealizedPnl(order, position);
|
|
251
|
+
}
|
|
252
|
+
return null;
|
|
253
|
+
}
|
|
254
|
+
exports.expectedRealizedPnlForOpenOrder = regularOrderRealizedPnl;
|
|
255
|
+
exports.expectedRealizedPnlForTriggerOrder = triggerOrderRealizedPnl;
|
|
256
|
+
//# sourceMappingURL=order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/math/order.ts"],"names":[],"mappings":"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"}
|