UNPKG

@parifi/sdk

Version:

Parifi SDK with common utility functions

1 lines 2.08 kB
{"version":3,"sources":["../../src/perps/positions.ts"],"sourcesContent":["import Decimal from 'decimal.js';\n\n// Calculates the Profit/Loss of the position given marketPrice and avgPrice\n// @param positionSize is negative for a short position and positive for Long position\nexport const getProfitOrLossInUsd = (marketPrice: number, avgPrice: number, positionSize: number): Decimal => {\n const profitOrLossPerToken = new Decimal(marketPrice).minus(avgPrice);\n return new Decimal(positionSize).times(profitOrLossPerToken);\n};\n\n// Calculates the formatted position size using collateral and leverage\n// using equation: Size = Collateral * Leverage\nexport const calculateSizeFromCollateralAndLeverage = (\n collateralValueInUsd: number,\n leverage: number,\n marketPrice: number,\n): Decimal => {\n const sizeInUsd = new Decimal(collateralValueInUsd).times(leverage);\n return sizeInUsd.div(marketPrice);\n};\n\n// Calculates the Collateral amount using size and leverage values\n// using equation: Collateral = Size / Leverage\nexport const calculateCollateralFromSizeAndLeverage = (\n sizeInUsd: number,\n leverage: number,\n collateralPrice: number,\n): Decimal => {\n const collateralInUsd = new Decimal(sizeInUsd).div(leverage);\n return collateralInUsd.div(collateralPrice);\n};\n\n// Calculates the leverage value of a position using size and collateral values\n// using equation: Leverage = Size / Collateral\nexport const calculateLeverageFromCollateralAndSize = (collateralValueInUsd: number, sizeInUsd: number): number => {\n return sizeInUsd / collateralValueInUsd;\n};\n"],"mappings":";AAAA,OAAO,aAAa;AAIb,IAAM,uBAAuB,CAAC,aAAqB,UAAkB,iBAAkC;AAC5G,QAAM,uBAAuB,IAAI,QAAQ,WAAW,EAAE,MAAM,QAAQ;AACpE,SAAO,IAAI,QAAQ,YAAY,EAAE,MAAM,oBAAoB;AAC7D;AAIO,IAAM,yCAAyC,CACpD,sBACA,UACA,gBACY;AACZ,QAAM,YAAY,IAAI,QAAQ,oBAAoB,EAAE,MAAM,QAAQ;AAClE,SAAO,UAAU,IAAI,WAAW;AAClC;AAIO,IAAM,yCAAyC,CACpD,WACA,UACA,oBACY;AACZ,QAAM,kBAAkB,IAAI,QAAQ,SAAS,EAAE,IAAI,QAAQ;AAC3D,SAAO,gBAAgB,IAAI,eAAe;AAC5C;AAIO,IAAM,yCAAyC,CAAC,sBAA8B,cAA8B;AACjH,SAAO,YAAY;AACrB;","names":[]}