@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.
Files changed (248) hide show
  1. package/dist/cjs/LighterProvider.d.ts.map +1 -1
  2. package/dist/cjs/LighterProvider.js +101 -58
  3. package/dist/cjs/LighterProvider.js.map +1 -1
  4. package/dist/cjs/accountSummary.d.ts +1 -2
  5. package/dist/cjs/accountSummary.d.ts.map +1 -1
  6. package/dist/cjs/accountSummary.js +9 -16
  7. package/dist/cjs/accountSummary.js.map +1 -1
  8. package/dist/cjs/availableToTrade.d.ts +1 -2
  9. package/dist/cjs/availableToTrade.d.ts.map +1 -1
  10. package/dist/cjs/availableToTrade.js +8 -12
  11. package/dist/cjs/availableToTrade.js.map +1 -1
  12. package/dist/cjs/constants.d.ts +1 -0
  13. package/dist/cjs/constants.d.ts.map +1 -1
  14. package/dist/cjs/constants.js +2 -1
  15. package/dist/cjs/constants.js.map +1 -1
  16. package/dist/cjs/index.d.ts +1 -1
  17. package/dist/cjs/index.d.ts.map +1 -1
  18. package/dist/cjs/index.js +2 -1
  19. package/dist/cjs/index.js.map +1 -1
  20. package/dist/cjs/signers/LighterSigner.d.ts.map +1 -1
  21. package/dist/cjs/signers/LighterSigner.js +2 -6
  22. package/dist/cjs/signers/LighterSigner.js.map +1 -1
  23. package/dist/cjs/types/submit.d.ts +5 -0
  24. package/dist/cjs/types/submit.d.ts.map +1 -1
  25. package/dist/cjs/utils/index.d.ts +3 -3
  26. package/dist/cjs/utils/index.d.ts.map +1 -1
  27. package/dist/cjs/utils/index.js +5 -6
  28. package/dist/cjs/utils/index.js.map +1 -1
  29. package/dist/cjs/utils/mapFill.d.ts +1 -1
  30. package/dist/cjs/utils/mapFill.d.ts.map +1 -1
  31. package/dist/cjs/utils/mapFill.js +44 -31
  32. package/dist/cjs/utils/mapFill.js.map +1 -1
  33. package/dist/cjs/utils/mapOpenPositions.d.ts +3 -1
  34. package/dist/cjs/utils/mapOpenPositions.d.ts.map +1 -1
  35. package/dist/cjs/utils/mapOpenPositions.js +20 -4
  36. package/dist/cjs/utils/mapOpenPositions.js.map +1 -1
  37. package/dist/cjs/utils/mapOrder.d.ts +1 -1
  38. package/dist/cjs/utils/mapOrder.d.ts.map +1 -1
  39. package/dist/cjs/utils/mapOrder.js +64 -26
  40. package/dist/cjs/utils/mapOrder.js.map +1 -1
  41. package/dist/cjs/utils/mapPortfolioHistory.d.ts +1 -2
  42. package/dist/cjs/utils/mapPortfolioHistory.d.ts.map +1 -1
  43. package/dist/cjs/utils/mapPortfolioHistory.js +29 -21
  44. package/dist/cjs/utils/mapPortfolioHistory.js.map +1 -1
  45. package/dist/cjs/utils/mapPosition.d.ts +3 -3
  46. package/dist/cjs/utils/mapPosition.d.ts.map +1 -1
  47. package/dist/cjs/utils/mapPosition.js +35 -35
  48. package/dist/cjs/utils/mapPosition.js.map +1 -1
  49. package/dist/cjs/utils/rowTimestamp.d.ts +2 -0
  50. package/dist/cjs/utils/rowTimestamp.d.ts.map +1 -0
  51. package/dist/cjs/utils/rowTimestamp.js +14 -0
  52. package/dist/cjs/utils/rowTimestamp.js.map +1 -0
  53. package/dist/cjs/utils/settlementPool.d.ts +2 -3
  54. package/dist/cjs/utils/settlementPool.d.ts.map +1 -1
  55. package/dist/cjs/utils/settlementPool.js +8 -7
  56. package/dist/cjs/utils/settlementPool.js.map +1 -1
  57. package/dist/cjs/utils/spotPrice.d.ts +3 -4
  58. package/dist/cjs/utils/spotPrice.d.ts.map +1 -1
  59. package/dist/cjs/utils/spotPrice.js +6 -11
  60. package/dist/cjs/utils/spotPrice.js.map +1 -1
  61. package/dist/cjs/utils/time.d.ts.map +1 -1
  62. package/dist/cjs/utils/time.js +3 -2
  63. package/dist/cjs/utils/time.js.map +1 -1
  64. package/dist/cjs/utils/transferMargin.d.ts.map +1 -1
  65. package/dist/cjs/utils/transferMargin.js +7 -15
  66. package/dist/cjs/utils/transferMargin.js.map +1 -1
  67. package/dist/cjs/utils/withdrawableBalances.d.ts +1 -1
  68. package/dist/cjs/utils/withdrawableBalances.d.ts.map +1 -1
  69. package/dist/cjs/utils/withdrawableBalances.js +12 -17
  70. package/dist/cjs/utils/withdrawableBalances.js.map +1 -1
  71. package/dist/cjs/utils/withdrawalTypes.d.ts +17 -0
  72. package/dist/cjs/utils/withdrawalTypes.d.ts.map +1 -0
  73. package/dist/cjs/utils/withdrawalTypes.js +58 -0
  74. package/dist/cjs/utils/withdrawalTypes.js.map +1 -0
  75. package/dist/cjs/websocket/LighterWsProvider.d.ts.map +1 -1
  76. package/dist/cjs/websocket/LighterWsProvider.js +46 -58
  77. package/dist/cjs/websocket/LighterWsProvider.js.map +1 -1
  78. package/dist/cjs/websocket/orderBookSide.d.ts +19 -0
  79. package/dist/cjs/websocket/orderBookSide.d.ts.map +1 -0
  80. package/dist/cjs/websocket/orderBookSide.js +71 -0
  81. package/dist/cjs/websocket/orderBookSide.js.map +1 -0
  82. package/dist/esm/LighterProvider.d.ts.map +1 -1
  83. package/dist/esm/LighterProvider.js +116 -62
  84. package/dist/esm/LighterProvider.js.map +1 -1
  85. package/dist/esm/accountSummary.d.ts +1 -2
  86. package/dist/esm/accountSummary.d.ts.map +1 -1
  87. package/dist/esm/accountSummary.js +10 -14
  88. package/dist/esm/accountSummary.js.map +1 -1
  89. package/dist/esm/availableToTrade.d.ts +1 -2
  90. package/dist/esm/availableToTrade.d.ts.map +1 -1
  91. package/dist/esm/availableToTrade.js +9 -10
  92. package/dist/esm/availableToTrade.js.map +1 -1
  93. package/dist/esm/constants.d.ts +8 -0
  94. package/dist/esm/constants.d.ts.map +1 -1
  95. package/dist/esm/constants.js +8 -0
  96. package/dist/esm/constants.js.map +1 -1
  97. package/dist/esm/index.d.ts +1 -1
  98. package/dist/esm/index.d.ts.map +1 -1
  99. package/dist/esm/index.js +1 -1
  100. package/dist/esm/index.js.map +1 -1
  101. package/dist/esm/signers/LighterSigner.d.ts.map +1 -1
  102. package/dist/esm/signers/LighterSigner.js +3 -4
  103. package/dist/esm/signers/LighterSigner.js.map +1 -1
  104. package/dist/esm/types/submit.d.ts +14 -0
  105. package/dist/esm/types/submit.d.ts.map +1 -1
  106. package/dist/esm/utils/index.d.ts +3 -3
  107. package/dist/esm/utils/index.d.ts.map +1 -1
  108. package/dist/esm/utils/index.js +2 -3
  109. package/dist/esm/utils/index.js.map +1 -1
  110. package/dist/esm/utils/mapFill.d.ts +1 -1
  111. package/dist/esm/utils/mapFill.d.ts.map +1 -1
  112. package/dist/esm/utils/mapFill.js +51 -35
  113. package/dist/esm/utils/mapFill.js.map +1 -1
  114. package/dist/esm/utils/mapOpenPositions.d.ts +17 -3
  115. package/dist/esm/utils/mapOpenPositions.d.ts.map +1 -1
  116. package/dist/esm/utils/mapOpenPositions.js +31 -5
  117. package/dist/esm/utils/mapOpenPositions.js.map +1 -1
  118. package/dist/esm/utils/mapOrder.d.ts +6 -2
  119. package/dist/esm/utils/mapOrder.d.ts.map +1 -1
  120. package/dist/esm/utils/mapOrder.js +70 -25
  121. package/dist/esm/utils/mapOrder.js.map +1 -1
  122. package/dist/esm/utils/mapPortfolioHistory.d.ts +6 -3
  123. package/dist/esm/utils/mapPortfolioHistory.d.ts.map +1 -1
  124. package/dist/esm/utils/mapPortfolioHistory.js +34 -19
  125. package/dist/esm/utils/mapPortfolioHistory.js.map +1 -1
  126. package/dist/esm/utils/mapPosition.d.ts +12 -8
  127. package/dist/esm/utils/mapPosition.d.ts.map +1 -1
  128. package/dist/esm/utils/mapPosition.js +45 -38
  129. package/dist/esm/utils/mapPosition.js.map +1 -1
  130. package/dist/esm/utils/rowTimestamp.d.ts +6 -0
  131. package/dist/esm/utils/rowTimestamp.d.ts.map +1 -0
  132. package/dist/esm/utils/rowTimestamp.js +14 -0
  133. package/dist/esm/utils/rowTimestamp.js.map +1 -0
  134. package/dist/esm/utils/settlementPool.d.ts +2 -3
  135. package/dist/esm/utils/settlementPool.d.ts.map +1 -1
  136. package/dist/esm/utils/settlementPool.js +8 -7
  137. package/dist/esm/utils/settlementPool.js.map +1 -1
  138. package/dist/esm/utils/spotPrice.d.ts +3 -4
  139. package/dist/esm/utils/spotPrice.d.ts.map +1 -1
  140. package/dist/esm/utils/spotPrice.js +6 -8
  141. package/dist/esm/utils/spotPrice.js.map +1 -1
  142. package/dist/esm/utils/time.d.ts +10 -2
  143. package/dist/esm/utils/time.d.ts.map +1 -1
  144. package/dist/esm/utils/time.js +13 -4
  145. package/dist/esm/utils/time.js.map +1 -1
  146. package/dist/esm/utils/transferMargin.d.ts.map +1 -1
  147. package/dist/esm/utils/transferMargin.js +8 -13
  148. package/dist/esm/utils/transferMargin.js.map +1 -1
  149. package/dist/esm/utils/withdrawableBalances.d.ts +5 -3
  150. package/dist/esm/utils/withdrawableBalances.d.ts.map +1 -1
  151. package/dist/esm/utils/withdrawableBalances.js +17 -17
  152. package/dist/esm/utils/withdrawableBalances.js.map +1 -1
  153. package/dist/esm/utils/withdrawalTypes.d.ts +45 -0
  154. package/dist/esm/utils/withdrawalTypes.d.ts.map +1 -0
  155. package/dist/esm/utils/withdrawalTypes.js +68 -0
  156. package/dist/esm/utils/withdrawalTypes.js.map +1 -0
  157. package/dist/esm/websocket/LighterWsProvider.d.ts.map +1 -1
  158. package/dist/esm/websocket/LighterWsProvider.js +48 -57
  159. package/dist/esm/websocket/LighterWsProvider.js.map +1 -1
  160. package/dist/esm/websocket/orderBookSide.d.ts +33 -0
  161. package/dist/esm/websocket/orderBookSide.d.ts.map +1 -0
  162. package/dist/esm/websocket/orderBookSide.js +76 -0
  163. package/dist/esm/websocket/orderBookSide.js.map +1 -0
  164. package/dist/types/LighterProvider.d.ts.map +1 -1
  165. package/dist/types/accountSummary.d.ts +1 -2
  166. package/dist/types/accountSummary.d.ts.map +1 -1
  167. package/dist/types/availableToTrade.d.ts +1 -2
  168. package/dist/types/availableToTrade.d.ts.map +1 -1
  169. package/dist/types/constants.d.ts +8 -0
  170. package/dist/types/constants.d.ts.map +1 -1
  171. package/dist/types/index.d.ts +1 -1
  172. package/dist/types/index.d.ts.map +1 -1
  173. package/dist/types/signers/LighterSigner.d.ts.map +1 -1
  174. package/dist/types/types/submit.d.ts +14 -0
  175. package/dist/types/types/submit.d.ts.map +1 -1
  176. package/dist/types/utils/index.d.ts +3 -3
  177. package/dist/types/utils/index.d.ts.map +1 -1
  178. package/dist/types/utils/mapFill.d.ts +1 -1
  179. package/dist/types/utils/mapFill.d.ts.map +1 -1
  180. package/dist/types/utils/mapOpenPositions.d.ts +17 -3
  181. package/dist/types/utils/mapOpenPositions.d.ts.map +1 -1
  182. package/dist/types/utils/mapOrder.d.ts +6 -2
  183. package/dist/types/utils/mapOrder.d.ts.map +1 -1
  184. package/dist/types/utils/mapPortfolioHistory.d.ts +6 -3
  185. package/dist/types/utils/mapPortfolioHistory.d.ts.map +1 -1
  186. package/dist/types/utils/mapPosition.d.ts +12 -8
  187. package/dist/types/utils/mapPosition.d.ts.map +1 -1
  188. package/dist/types/utils/rowTimestamp.d.ts +6 -0
  189. package/dist/types/utils/rowTimestamp.d.ts.map +1 -0
  190. package/dist/types/utils/settlementPool.d.ts +2 -3
  191. package/dist/types/utils/settlementPool.d.ts.map +1 -1
  192. package/dist/types/utils/spotPrice.d.ts +3 -4
  193. package/dist/types/utils/spotPrice.d.ts.map +1 -1
  194. package/dist/types/utils/time.d.ts +10 -2
  195. package/dist/types/utils/time.d.ts.map +1 -1
  196. package/dist/types/utils/transferMargin.d.ts.map +1 -1
  197. package/dist/types/utils/withdrawableBalances.d.ts +5 -3
  198. package/dist/types/utils/withdrawableBalances.d.ts.map +1 -1
  199. package/dist/types/utils/withdrawalTypes.d.ts +45 -0
  200. package/dist/types/utils/withdrawalTypes.d.ts.map +1 -0
  201. package/dist/types/websocket/LighterWsProvider.d.ts.map +1 -1
  202. package/dist/types/websocket/orderBookSide.d.ts +33 -0
  203. package/dist/types/websocket/orderBookSide.d.ts.map +1 -0
  204. package/package.json +3 -3
  205. package/src/LighterProvider.ts +236 -100
  206. package/src/accountSummary.ts +41 -22
  207. package/src/availableToTrade.ts +38 -15
  208. package/src/constants.ts +9 -0
  209. package/src/index.ts +1 -0
  210. package/src/signers/LighterSigner.ts +11 -4
  211. package/src/types/submit.ts +15 -0
  212. package/src/utils/index.ts +9 -3
  213. package/src/utils/mapFill.ts +82 -43
  214. package/src/utils/mapOpenPositions.ts +45 -6
  215. package/src/utils/mapOrder.ts +99 -28
  216. package/src/utils/mapPortfolioHistory.ts +78 -24
  217. package/src/utils/mapPosition.ts +67 -44
  218. package/src/utils/rowTimestamp.ts +15 -0
  219. package/src/utils/settlementPool.ts +36 -12
  220. package/src/utils/spotPrice.ts +18 -12
  221. package/src/utils/time.ts +14 -4
  222. package/src/utils/transferMargin.ts +28 -17
  223. package/src/utils/withdrawableBalances.ts +34 -20
  224. package/src/utils/withdrawalTypes.ts +125 -0
  225. package/src/websocket/LighterWsProvider.ts +75 -92
  226. package/src/websocket/orderBookSide.ts +106 -0
  227. package/dist/cjs/utils/decimal.d.ts +0 -5
  228. package/dist/cjs/utils/decimal.d.ts.map +0 -1
  229. package/dist/cjs/utils/decimal.js +0 -38
  230. package/dist/cjs/utils/decimal.js.map +0 -1
  231. package/dist/cjs/utils/liquidation.d.ts +0 -4
  232. package/dist/cjs/utils/liquidation.d.ts.map +0 -1
  233. package/dist/cjs/utils/liquidation.js +0 -16
  234. package/dist/cjs/utils/liquidation.js.map +0 -1
  235. package/dist/esm/utils/decimal.d.ts +0 -15
  236. package/dist/esm/utils/decimal.d.ts.map +0 -1
  237. package/dist/esm/utils/decimal.js +0 -39
  238. package/dist/esm/utils/decimal.js.map +0 -1
  239. package/dist/esm/utils/liquidation.d.ts +0 -22
  240. package/dist/esm/utils/liquidation.d.ts.map +0 -1
  241. package/dist/esm/utils/liquidation.js +0 -31
  242. package/dist/esm/utils/liquidation.js.map +0 -1
  243. package/dist/types/utils/decimal.d.ts +0 -15
  244. package/dist/types/utils/decimal.d.ts.map +0 -1
  245. package/dist/types/utils/liquidation.d.ts +0 -22
  246. package/dist/types/utils/liquidation.d.ts.map +0 -1
  247. package/src/utils/decimal.ts +0 -52
  248. package/src/utils/liquidation.ts +0 -39
@@ -1 +1 @@
1
- {"version":3,"file":"mapOpenPositions.js","sourceRoot":"","sources":["../../../src/utils/mapOpenPositions.ts"],"names":[],"mappings":";;;AAEA,qDAA8C;AASvC,MAAM,gBAAgB,GAAG,CAC9B,SAA8B,EAC9B,aAAuD,EAC3C,EAAE,CACd,SAAS;KACN,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAClD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,4BAAW,EAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAN9C,QAAA,gBAAgB,oBAM8B"}
1
+ {"version":3,"file":"mapOpenPositions.js","sourceRoot":"","sources":["../../../src/utils/mapOpenPositions.ts"],"names":[],"mappings":";;;AAAA,+CAAqE;AACrE,mDAI0B;AAC1B,kDAAsD;AAEtD,qDAA8C;AAOvC,MAAM,cAAc,GAAG,CAAC,CAAoB,EAAW,EAAE,CAC9D,IAAA,mCAAuB,EAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAA;AADjC,QAAA,cAAc,kBACmB;AAUvC,MAAM,gBAAgB,GAAG,CAC9B,SAA8B,EAC9B,aAAuD,EAC3C,EAAE,CACd,SAAS,CAAC,MAAM,CAAC,sBAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;IAC7C,MAAM,QAAQ,GAAG,IAAA,4BAAW,EAAC,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;AAPS,QAAA,gBAAgB,oBAOzB;AAQG,MAAM,oBAAoB,GAAG,CAClC,SAA8B,EAC9B,aAAuD,EAC3C,EAAE,CACd,SAAS,CAAC,MAAM,CAAC,sBAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IACzC,MAAM,QAAQ,GAAG,IAAA,4BAAW,EAAC,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,sBAAU,CAC1B,4BAAc,CAAC,QAAQ,EACvB,GAAG,mCAAoB,wBAAwB,CAAC,CAAC,SAAS,mDAAmD,CAC9G,CAAA;IACD,KAAK,CAAC,IAAI,GAAG,mCAAoB,CAAA;IACjC,MAAM,KAAK,CAAA;AACb,CAAC,CAAC,CAAA;AAfS,QAAA,oBAAoB,wBAe7B"}
@@ -1,6 +1,6 @@
1
1
  import type { MarketDisplay, Order } from '@lifi/perps-types';
2
2
  import type { LtOrder } from '../types/index.js';
3
- export declare const mapOrder: (order: LtOrder, market: MarketDisplay) => Order;
3
+ export declare const mapOrder: (order: LtOrder, market: MarketDisplay) => Order | undefined;
4
4
  export declare const mapOrderUpdates: (rawOrders: LtOrder[], resolveMarket: (marketIndex: number) => MarketDisplay | undefined) => {
5
5
  orders: Order[];
6
6
  terminated: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"mapOrder.d.ts","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAa,MAAM,mBAAmB,CAAA;AASxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAsFhD,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,EAAE,QAAQ,aAAa,KAAG,KA8DhE,CAAA;AAGD,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
+ {"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;AAgHhD,eAAO,MAAM,QAAQ,GACnB,OAAO,OAAO,EACd,QAAQ,aAAa,KACpB,KAAK,GAAG,SAmGV,CAAA;AAGD,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,12 +1,10 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.mapOrderUpdates = exports.mapOrder = void 0;
7
4
  const perps_sdk_1 = require("@lifi/perps-sdk");
8
5
  const perps_types_1 = require("@lifi/perps-types");
9
- const big_js_1 = __importDefault(require("big.js"));
6
+ const constants_js_1 = require("../constants.js");
7
+ const rowTimestamp_js_1 = require("./rowTimestamp.js");
10
8
  const mapOrderType = (type) => {
11
9
  switch (type.replace(/-/g, '_')) {
12
10
  case 'market':
@@ -41,7 +39,19 @@ const mapTimeInForce = (tif) => {
41
39
  throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.SDKError, `Unknown Lighter time in force: ${tif}`);
42
40
  }
43
41
  };
44
- const mapOrderStatus = (order, filledSize = new big_js_1.default(order.filled_base_amount)) => {
42
+ const venueDecimal = (value, field) => {
43
+ try {
44
+ return (0, perps_sdk_1.unknownToDecimalString)(value, field, constants_js_1.LIGHTER_PROVIDER_KEY);
45
+ }
46
+ catch {
47
+ return undefined;
48
+ }
49
+ };
50
+ const hasFill = (order) => {
51
+ const filled = venueDecimal(order.filled_base_amount, 'filled_base_amount');
52
+ return filled !== undefined && (0, perps_sdk_1.isDecimalStringGreaterThan)(filled, '0');
53
+ };
54
+ const mapOrderStatus = (order) => {
45
55
  switch (order.status) {
46
56
  case 'in-progress':
47
57
  return perps_types_1.OrderStatus.ACCEPTED;
@@ -51,7 +61,7 @@ const mapOrderStatus = (order, filledSize = new big_js_1.default(order.filled_ba
51
61
  if (order.trigger_status === 'parent-order') {
52
62
  return perps_types_1.OrderStatus.PENDING;
53
63
  }
54
- return filledSize.gt(0) ? perps_types_1.OrderStatus.PARTIALLY_FILLED : perps_types_1.OrderStatus.OPEN;
64
+ return hasFill(order) ? perps_types_1.OrderStatus.PARTIALLY_FILLED : perps_types_1.OrderStatus.OPEN;
55
65
  case 'triggered':
56
66
  return perps_types_1.OrderStatus.TRIGGERED;
57
67
  case 'filled':
@@ -75,10 +85,44 @@ const mapOrderStatus = (order, filledSize = new big_js_1.default(order.filled_ba
75
85
  throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.SDKError, `Unknown Lighter order status: ${order.status}`);
76
86
  }
77
87
  };
88
+ const skipOrder = (field, value) => {
89
+ (0, perps_sdk_1.warnSkippedVenueRow)(constants_js_1.LIGHTER_PROVIDER_KEY, 'order', field, value);
90
+ return undefined;
91
+ };
92
+ const orderSizeOrSkip = (field, value) => venueDecimal(value, field) === undefined ? skipOrder(field, value) : value;
78
93
  const mapOrder = (order, market) => {
79
94
  const type = mapOrderType(order.type);
80
- const filledSize = new big_js_1.default(order.filled_base_amount);
81
- const status = mapOrderStatus(order, filledSize);
95
+ const originalSize = orderSizeOrSkip('initial_base_amount', order.initial_base_amount);
96
+ if (originalSize === undefined) {
97
+ return undefined;
98
+ }
99
+ const remainingSize = orderSizeOrSkip('remaining_base_amount', order.remaining_base_amount);
100
+ if (remainingSize === undefined) {
101
+ return undefined;
102
+ }
103
+ const filledSize = orderSizeOrSkip('filled_base_amount', order.filled_base_amount);
104
+ if (filledSize === undefined) {
105
+ return undefined;
106
+ }
107
+ const createdAt = (0, rowTimestamp_js_1.rowTimestampToIsoStringOrUndefined)(order.created_at * 1000);
108
+ if (createdAt === undefined) {
109
+ return skipOrder('created_at', order.created_at);
110
+ }
111
+ const updatedAt = (0, rowTimestamp_js_1.rowTimestampToIsoStringOrUndefined)(order.updated_at * 1000);
112
+ if (updatedAt === undefined) {
113
+ return skipOrder('updated_at', order.updated_at);
114
+ }
115
+ const filledQuote = venueDecimal(order.filled_quote_amount, 'filled_quote_amount');
116
+ const filledAmount = venueDecimal(filledSize, 'filled_base_amount');
117
+ const averagePrice = filledQuote !== undefined &&
118
+ filledAmount !== undefined &&
119
+ (0, perps_sdk_1.isDecimalStringGreaterThan)(filledAmount, '0')
120
+ ? (0, perps_sdk_1.safeDivideDecimalString)(filledQuote, filledAmount)
121
+ : undefined;
122
+ const expiresAt = order.order_expiry > 0
123
+ ? (0, perps_sdk_1.safeTimestampToIsoString)(order.order_expiry)
124
+ : undefined;
125
+ const status = mapOrderStatus(order);
82
126
  const base = {
83
127
  orderId: String(order.order_index),
84
128
  ...(order.client_order_index === 0
@@ -88,20 +132,14 @@ const mapOrder = (order, market) => {
88
132
  side: order.is_ask ? perps_types_1.OrderSide.SELL : perps_types_1.OrderSide.BUY,
89
133
  status,
90
134
  ...(status === perps_types_1.OrderStatus.CANCELLED ? { statusReason: order.status } : {}),
91
- originalSize: order.initial_base_amount,
92
- remainingSize: order.remaining_base_amount,
93
- filledSize: order.filled_base_amount,
94
- ...(filledSize.gt(0)
95
- ? {
96
- averagePrice: new big_js_1.default(order.filled_quote_amount)
97
- .div(filledSize)
98
- .toFixed(),
99
- }
100
- : {}),
135
+ originalSize,
136
+ remainingSize,
137
+ filledSize,
138
+ ...(averagePrice === undefined ? {} : { averagePrice }),
101
139
  reduceOnly: order.reduce_only,
102
140
  ...(order.parent_order_id ? { parentOrderId: order.parent_order_id } : {}),
103
- createdAt: new Date(order.created_at * 1000).toISOString(),
104
- updatedAt: new Date(order.updated_at * 1000).toISOString(),
141
+ createdAt,
142
+ updatedAt,
105
143
  };
106
144
  switch (type) {
107
145
  case perps_types_1.OrderType.TWAP:
@@ -114,17 +152,19 @@ const mapOrder = (order, market) => {
114
152
  case perps_types_1.OrderType.STOP_MARKET:
115
153
  case perps_types_1.OrderType.STOP_LIMIT:
116
154
  case perps_types_1.OrderType.TAKE_PROFIT_MARKET:
117
- case perps_types_1.OrderType.TAKE_PROFIT_LIMIT:
155
+ case perps_types_1.OrderType.TAKE_PROFIT_LIMIT: {
118
156
  return {
119
157
  ...base,
120
158
  type,
121
159
  triggerPrice: order.trigger_price,
122
160
  triggerCondition: (0, perps_sdk_1.triggerConditionFor)(type, base.side),
123
- ...(type === perps_types_1.OrderType.STOP_LIMIT ||
124
- type === perps_types_1.OrderType.TAKE_PROFIT_LIMIT
161
+ ...((type === perps_types_1.OrderType.STOP_LIMIT ||
162
+ type === perps_types_1.OrderType.TAKE_PROFIT_LIMIT) &&
163
+ venueDecimal(order.price, 'price') !== undefined
125
164
  ? { limitPrice: order.price }
126
165
  : {}),
127
166
  };
167
+ }
128
168
  case perps_types_1.OrderType.MARKET:
129
169
  case perps_types_1.OrderType.LIMIT:
130
170
  return {
@@ -132,9 +172,7 @@ const mapOrder = (order, market) => {
132
172
  type,
133
173
  price: order.price,
134
174
  timeInForce: mapTimeInForce(order.time_in_force),
135
- ...(order.order_expiry > 0
136
- ? { expiresAt: new Date(order.order_expiry).toISOString() }
137
- : {}),
175
+ ...(expiresAt === undefined ? {} : { expiresAt }),
138
176
  };
139
177
  }
140
178
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mapOrder.js","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapOrder.js","sourceRoot":"","sources":["../../../src/utils/mapOrder.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
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
- export declare const mapPortfolioHistory: (range: PortfolioHistoryRange, snapshots: LtPnLEntry[], currentValue: Big) => PortfolioHistoryResponse;
3
+ export declare const mapPortfolioHistory: (range: PortfolioHistoryRange, snapshots: LtPnLEntry[], currentValue: string) => PortfolioHistoryResponse;
5
4
  //# sourceMappingURL=mapPortfolioHistory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapPortfolioHistory.d.ts","sourceRoot":"","sources":["../../../src/utils/mapPortfolioHistory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAiBjD,eAAO,MAAM,mBAAmB,GAC9B,OAAO,qBAAqB,EAC5B,WAAW,UAAU,EAAE,EACvB,cAAc,GAAG,KAChB,wBAwCF,CAAA"}
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;AA+DjD,eAAO,MAAM,mBAAmB,GAC9B,OAAO,qBAAqB,EAC5B,WAAW,UAAU,EAAE,EACvB,cAAc,MAAM,KACnB,wBA0CF,CAAA"}
@@ -1,21 +1,36 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.mapPortfolioHistory = void 0;
7
- const big_js_1 = __importDefault(require("big.js"));
4
+ const perps_sdk_1 = require("@lifi/perps-sdk");
5
+ const constants_js_1 = require("../constants.js");
6
+ const SNAPSHOT_DECIMAL_FIELDS = [
7
+ 'trade_pnl',
8
+ 'trade_spot_pnl',
9
+ 'inflow',
10
+ 'outflow',
11
+ 'spot_inflow',
12
+ 'spot_outflow',
13
+ 'volume',
14
+ ];
15
+ const snapshotDecimal = (snapshot, field) => (0, perps_sdk_1.numberToDecimalString)(snapshot[field]);
16
+ function isValidSnapshot(snapshot) {
17
+ const invalid = SNAPSHOT_DECIMAL_FIELDS.find((field) => !Number.isFinite(snapshot[field]));
18
+ if (invalid === undefined) {
19
+ return true;
20
+ }
21
+ (0, perps_sdk_1.warnSkippedVenueRow)(constants_js_1.LIGHTER_PROVIDER_KEY, 'portfolio history', invalid, snapshot[invalid]);
22
+ return false;
23
+ }
8
24
  function getCumulativePnl(snapshot) {
9
- return new big_js_1.default(snapshot.trade_pnl).plus(snapshot.trade_spot_pnl);
25
+ return (0, perps_sdk_1.addDecimalString)(snapshotDecimal(snapshot, 'trade_pnl'), snapshotDecimal(snapshot, 'trade_spot_pnl'));
10
26
  }
11
27
  function getCumulativeNetFlow(snapshot) {
12
- return new big_js_1.default(snapshot.inflow)
13
- .minus(snapshot.outflow)
14
- .plus(snapshot.spot_inflow)
15
- .minus(snapshot.spot_outflow);
28
+ return (0, perps_sdk_1.subtractDecimalString)((0, perps_sdk_1.addDecimalString)((0, perps_sdk_1.subtractDecimalString)(snapshotDecimal(snapshot, 'inflow'), snapshotDecimal(snapshot, 'outflow')), snapshotDecimal(snapshot, 'spot_inflow')), snapshotDecimal(snapshot, 'spot_outflow'));
16
29
  }
17
30
  const mapPortfolioHistory = (range, snapshots, currentValue) => {
18
- const orderedSnapshots = [...snapshots].sort((a, b) => a.timestamp - b.timestamp);
31
+ const orderedSnapshots = snapshots
32
+ .filter(isValidSnapshot)
33
+ .sort((a, b) => a.timestamp - b.timestamp);
19
34
  const firstSnapshot = orderedSnapshots[0];
20
35
  const latestSnapshot = orderedSnapshots.at(-1);
21
36
  if (!firstSnapshot || !latestSnapshot) {
@@ -28,26 +43,19 @@ const mapPortfolioHistory = (range, snapshots, currentValue) => {
28
43
  }
29
44
  const firstPnl = getCumulativePnl(firstSnapshot);
30
45
  const latestPnl = getCumulativePnl(latestSnapshot);
31
- const accountValueOffset = currentValue
32
- .minus(latestPnl)
33
- .minus(getCumulativeNetFlow(latestSnapshot));
46
+ const accountValueOffset = (0, perps_sdk_1.subtractDecimalString)((0, perps_sdk_1.subtractDecimalString)(currentValue, latestPnl), getCumulativeNetFlow(latestSnapshot));
34
47
  const points = orderedSnapshots.map((snapshot) => {
35
48
  const pnl = getCumulativePnl(snapshot);
36
49
  return {
37
50
  timestamp: snapshot.timestamp * 1_000,
38
- accountValue: accountValueOffset
39
- .plus(pnl)
40
- .plus(getCumulativeNetFlow(snapshot))
41
- .toFixed(),
42
- pnl: pnl.minus(firstPnl).toFixed(),
51
+ accountValue: (0, perps_sdk_1.addDecimalString)((0, perps_sdk_1.addDecimalString)(accountValueOffset, pnl), getCumulativeNetFlow(snapshot)),
52
+ pnl: (0, perps_sdk_1.subtractDecimalString)(pnl, firstPnl),
43
53
  };
44
54
  });
45
55
  return {
46
56
  range,
47
57
  points,
48
- volume: new big_js_1.default(latestSnapshot.volume)
49
- .minus(firstSnapshot.volume)
50
- .toFixed(),
58
+ volume: (0, perps_sdk_1.subtractDecimalString)(snapshotDecimal(latestSnapshot, 'volume'), snapshotDecimal(firstSnapshot, 'volume')),
51
59
  totalPnl: points.at(-1)?.pnl,
52
60
  };
53
61
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mapPortfolioHistory.js","sourceRoot":"","sources":["../../../src/utils/mapPortfolioHistory.ts"],"names":[],"mappings":";;;;;;AAIA,oDAAwB;AAGxB,SAAS,gBAAgB,CAAC,QAAoB;IAC5C,OAAO,IAAI,gBAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;AAClE,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAoB;IAChD,OAAO,IAAI,gBAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;SAC5B,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;SACvB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;SAC1B,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;AACjC,CAAC;AAMM,MAAM,mBAAmB,GAAG,CACjC,KAA4B,EAC5B,SAAuB,EACvB,YAAiB,EACS,EAAE;IAC5B,MAAM,gBAAgB,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAC1C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CACpC,CAAA;IACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACzC,MAAM,cAAc,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,IAAI,CAAC,aAAa,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,OAAO;YACL,KAAK;YACL,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,GAAG;YACX,QAAQ,EAAE,SAAS;SACpB,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAA;IAChD,MAAM,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAA;IAClD,MAAM,kBAAkB,GAAG,YAAY;SACpC,KAAK,CAAC,SAAS,CAAC;SAChB,KAAK,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC/C,MAAM,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QACtC,OAAO;YACL,SAAS,EAAE,QAAQ,CAAC,SAAS,GAAG,KAAK;YACrC,YAAY,EAAE,kBAAkB;iBAC7B,IAAI,CAAC,GAAG,CAAC;iBACT,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;iBACpC,OAAO,EAAE;YACZ,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;SACnC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,KAAK;QACL,MAAM;QACN,MAAM,EAAE,IAAI,gBAAG,CAAC,cAAc,CAAC,MAAM,CAAC;aACnC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;aAC3B,OAAO,EAAE;QACZ,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG;KAC7B,CAAA;AACH,CAAC,CAAA;AA5CY,QAAA,mBAAmB,uBA4C/B"}
1
+ {"version":3,"file":"mapPortfolioHistory.js","sourceRoot":"","sources":["../../../src/utils/mapPortfolioHistory.ts"],"names":[],"mappings":";;;AAAA,+CAKwB;AAKxB,kDAAsD;AAGtD,MAAM,uBAAuB,GAAG;IAC9B,WAAW;IACX,gBAAgB;IAChB,QAAQ;IACR,SAAS;IACT,aAAa;IACb,cAAc;IACd,QAAQ;CACA,CAAA;AAIV,MAAM,eAAe,GAAG,CACtB,QAAoB,EACpB,KAA2B,EACnB,EAAE,CAAC,IAAA,iCAAqB,EAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;AAEnD,SAAS,eAAe,CAAC,QAAoB;IAC3C,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAC1C,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAC7C,CAAA;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAA,+BAAmB,EACjB,mCAAoB,EACpB,mBAAmB,EACnB,OAAO,EACP,QAAQ,CAAC,OAAO,CAAC,CAClB,CAAA;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAoB;IAC5C,OAAO,IAAA,4BAAgB,EACrB,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,EACtC,eAAe,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAC5C,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAoB;IAChD,OAAO,IAAA,iCAAqB,EAC1B,IAAA,4BAAgB,EACd,IAAA,iCAAqB,EACnB,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,EACnC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CACrC,EACD,eAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,CACzC,EACD,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,CAC1C,CAAA;AACH,CAAC;AAUM,MAAM,mBAAmB,GAAG,CACjC,KAA4B,EAC5B,SAAuB,EACvB,YAAoB,EACM,EAAE;IAC5B,MAAM,gBAAgB,GAAG,SAAS;SAC/B,MAAM,CAAC,eAAe,CAAC;SACvB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAA;IAC5C,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACzC,MAAM,cAAc,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,IAAI,CAAC,aAAa,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,OAAO;YACL,KAAK;YACL,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,GAAG;YACX,QAAQ,EAAE,SAAS;SACpB,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAA;IAChD,MAAM,SAAS,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAA;IAClD,MAAM,kBAAkB,GAAG,IAAA,iCAAqB,EAC9C,IAAA,iCAAqB,EAAC,YAAY,EAAE,SAAS,CAAC,EAC9C,oBAAoB,CAAC,cAAc,CAAC,CACrC,CAAA;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC/C,MAAM,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QACtC,OAAO;YACL,SAAS,EAAE,QAAQ,CAAC,SAAS,GAAG,KAAK;YACrC,YAAY,EAAE,IAAA,4BAAgB,EAC5B,IAAA,4BAAgB,EAAC,kBAAkB,EAAE,GAAG,CAAC,EACzC,oBAAoB,CAAC,QAAQ,CAAC,CAC/B;YACD,GAAG,EAAE,IAAA,iCAAqB,EAAC,GAAG,EAAE,QAAQ,CAAC;SAC1C,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,KAAK;QACL,MAAM;QACN,MAAM,EAAE,IAAA,iCAAqB,EAC3B,eAAe,CAAC,cAAc,EAAE,QAAQ,CAAC,EACzC,eAAe,CAAC,aAAa,EAAE,QAAQ,CAAC,CACzC;QACD,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG;KAC7B,CAAA;AACH,CAAC,CAAA;AA9CY,QAAA,mBAAmB,uBA8C/B"}
@@ -1,6 +1,6 @@
1
1
  import type { PerpsMarketDisplay, Position } from '@lifi/perps-types';
2
2
  import type { LtAccountPosition } from '../types/index.js';
3
- export declare const leverageFromImf: (imf: string) => number | undefined;
4
- export declare const leverageFromScaledImf: (imf: number) => number | undefined;
5
- export declare const mapPosition: (pos: LtAccountPosition, market: PerpsMarketDisplay) => Position;
3
+ export declare const leverageFromImf: (imf: string) => string | undefined;
4
+ export declare const leverageFromScaledImf: (imf: number) => string | undefined;
5
+ export declare const mapPosition: (pos: LtAccountPosition, market: PerpsMarketDisplay) => Position | undefined;
6
6
  //# sourceMappingURL=mapPosition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapPosition.d.ts","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAIrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAW1D,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,SAWtD,CAAA;AAQD,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,SAQ5D,CAAA;AAOD,eAAO,MAAM,WAAW,GACtB,KAAK,iBAAiB,EACtB,QAAQ,kBAAkB,KACzB,QAiCF,CAAA"}
1
+ {"version":3,"file":"mapPosition.d.ts","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAOrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAW1D,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,SAQtD,CAAA;AAQD,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,SAO5D,CAAA;AAeD,eAAO,MAAM,WAAW,GACtB,KAAK,iBAAiB,EACtB,QAAQ,kBAAkB,KACzB,QAAQ,GAAG,SAqCb,CAAA"}
@@ -1,62 +1,62 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.mapPosition = exports.leverageFromScaledImf = exports.leverageFromImf = void 0;
4
+ const perps_sdk_1 = require("@lifi/perps-sdk");
7
5
  const perps_types_1 = require("@lifi/perps-types");
8
- const big_js_1 = __importDefault(require("big.js"));
9
6
  const constants_js_1 = require("../constants.js");
10
7
  const index_js_1 = require("../types/index.js");
11
- const decimal_js_1 = require("./decimal.js");
12
8
  const leverageFromImf = (imf) => {
13
- let parsed;
14
- try {
15
- parsed = new big_js_1.default(imf);
16
- }
17
- catch {
18
- return undefined;
19
- }
20
- if (parsed.lte(0)) {
9
+ if ((0, perps_sdk_1.safeIsDecimalStringGreaterThan)(imf, '0') !== true) {
21
10
  return undefined;
22
11
  }
23
- return new big_js_1.default(100).div(parsed).toNumber();
12
+ const leverage = (0, perps_sdk_1.safeDivideDecimalString)('100', imf);
13
+ return leverage === undefined
14
+ ? undefined
15
+ : (0, perps_sdk_1.safeRoundDecimalString)(leverage, constants_js_1.LIGHTER_LEVERAGE_PRECISION, 'round');
24
16
  };
25
17
  exports.leverageFromImf = leverageFromImf;
26
18
  const leverageFromScaledImf = (imf) => {
27
- let percent;
28
- try {
29
- percent = new big_js_1.default(imf).div(constants_js_1.LIGHTER_IMF_PERCENT_SCALE).toFixed();
30
- }
31
- catch {
32
- return undefined;
33
- }
34
- return (0, exports.leverageFromImf)(percent);
19
+ const scaled = (0, perps_sdk_1.safeNumberToDecimalString)(imf);
20
+ const percent = scaled === undefined
21
+ ? undefined
22
+ : (0, perps_sdk_1.safeDivideDecimalString)(scaled, String(constants_js_1.LIGHTER_IMF_PERCENT_SCALE));
23
+ return percent === undefined ? undefined : (0, exports.leverageFromImf)(percent);
35
24
  };
36
25
  exports.leverageFromScaledImf = leverageFromScaledImf;
26
+ const skipPosition = (field, value) => {
27
+ (0, perps_sdk_1.warnSkippedVenueRow)(constants_js_1.LIGHTER_PROVIDER_KEY, 'position', field, value);
28
+ return undefined;
29
+ };
37
30
  const mapPosition = (pos, market) => {
38
- const size = (0, decimal_js_1.toRequiredBig)(pos.position, 'position');
31
+ if (!(0, perps_sdk_1.isDecimalString)(pos.position)) {
32
+ return skipPosition('position', pos.position);
33
+ }
34
+ if (!(0, perps_sdk_1.isDecimalString)(pos.position_value)) {
35
+ return skipPosition('position_value', pos.position_value);
36
+ }
37
+ const imf = pos.initial_margin_fraction;
38
+ const leverage = (0, perps_sdk_1.isDecimalString)(imf) ? (0, exports.leverageFromImf)(imf) : undefined;
39
+ if (leverage === undefined) {
40
+ return skipPosition('initial_margin_fraction', imf);
41
+ }
39
42
  const isIsolated = pos.margin_mode === index_js_1.LT_MARGIN_MODE_ISOLATED;
40
- const positionValue = (0, decimal_js_1.toRequiredBig)(pos.position_value, 'position_value').abs();
41
- const imf = (0, decimal_js_1.toPositiveRequiredBig)(pos.initial_margin_fraction, 'initial_margin_fraction');
42
- const initialMarginRequirement = positionValue.times(imf).div(100);
43
- const marginUsed = isIsolated
44
- ? pos.allocated_margin
45
- : initialMarginRequirement.toFixed();
43
+ const size = (0, perps_sdk_1.absDecimalString)(pos.position);
44
+ const positionValue = (0, perps_sdk_1.absDecimalString)(pos.position_value);
45
+ const initialMarginRequirement = (0, perps_sdk_1.divideDecimalString)((0, perps_sdk_1.multiplyDecimalString)(positionValue, imf), '100');
46
46
  return {
47
47
  market,
48
48
  side: pos.sign >= 0 ? perps_types_1.PositionSide.LONG : perps_types_1.PositionSide.SHORT,
49
- size: size.abs().toFixed(),
49
+ size,
50
50
  entryPrice: pos.avg_entry_price,
51
- markPrice: positionValue.eq(0) || size.eq(0)
51
+ markPrice: (0, perps_sdk_1.isDecimalStringZero)(positionValue) || (0, perps_sdk_1.isDecimalStringZero)(size)
52
52
  ? '0'
53
- : positionValue.div(size.abs()).toFixed(),
53
+ : (0, perps_sdk_1.divideDecimalString)(positionValue, size),
54
54
  liquidationPrice: pos.liquidation_price,
55
55
  unrealizedPnl: pos.unrealized_pnl,
56
56
  accruedFunding: pos.total_funding_paid_out ?? '0',
57
- leverage: (0, exports.leverageFromImf)(pos.initial_margin_fraction) ?? 1,
58
- marginUsed,
59
- initialMarginRequirement: initialMarginRequirement.toFixed(),
57
+ leverage,
58
+ marginUsed: isIsolated ? pos.allocated_margin : initialMarginRequirement,
59
+ initialMarginRequirement,
60
60
  marginMode: isIsolated ? perps_types_1.MarginMode.ISOLATED : perps_types_1.MarginMode.CROSS,
61
61
  };
62
62
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mapPosition.js","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapPosition.js","sourceRoot":"","sources":["../../../src/utils/mapPosition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const rowTimestampToIsoStringOrUndefined: (value: string | number) => string | undefined;
2
+ //# sourceMappingURL=rowTimestamp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rowTimestamp.d.ts","sourceRoot":"","sources":["../../../src/utils/rowTimestamp.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kCAAkC,GAC7C,OAAO,MAAM,GAAG,MAAM,KACrB,MAAM,GAAG,SAMX,CAAA"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rowTimestampToIsoStringOrUndefined = void 0;
4
+ const perps_sdk_1 = require("@lifi/perps-sdk");
5
+ const rowTimestampToIsoStringOrUndefined = (value) => {
6
+ try {
7
+ return (0, perps_sdk_1.timestampToIsoString)(value);
8
+ }
9
+ catch {
10
+ return undefined;
11
+ }
12
+ };
13
+ exports.rowTimestampToIsoStringOrUndefined = rowTimestampToIsoStringOrUndefined;
14
+ //# sourceMappingURL=rowTimestamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rowTimestamp.js","sourceRoot":"","sources":["../../../src/utils/rowTimestamp.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AAM/C,MAAM,kCAAkC,GAAG,CAChD,KAAsB,EACF,EAAE;IACtB,IAAI,CAAC;QACH,OAAO,IAAA,gCAAoB,EAAC,KAAK,CAAC,CAAA;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AARY,QAAA,kCAAkC,sCAQ9C"}
@@ -1,6 +1,5 @@
1
- import type Big from 'big.js';
2
1
  import type { LtAccountAsset } from '../types/account.js';
3
- export declare const pooledSettlementUnits: (asset: LtAccountAsset) => Big;
4
- export declare const pooledSettlementSpendable: (asset: LtAccountAsset, availableBalance: Big) => Big;
2
+ export declare const pooledSettlementUnits: (asset: LtAccountAsset) => string;
3
+ export declare const pooledSettlementSpendable: (asset: LtAccountAsset, availableBalance: string) => string;
5
4
  export declare const collateralSpotBalance: (assets: readonly LtAccountAsset[], settlementAssetIndex: number) => string;
6
5
  //# sourceMappingURL=settlementPool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settlementPool.d.ts","sourceRoot":"","sources":["../../../src/utils/settlementPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAA;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAIzD,eAAO,MAAM,qBAAqB,GAAI,OAAO,cAAc,KAAG,GAG3D,CAAA;AAQH,eAAO,MAAM,yBAAyB,GACpC,OAAO,cAAc,EACrB,kBAAkB,GAAG,KACpB,GAKF,CAAA;AAGD,eAAO,MAAM,qBAAqB,GAChC,QAAQ,SAAS,cAAc,EAAE,EACjC,sBAAsB,MAAM,KAC3B,MAKF,CAAA"}
1
+ {"version":3,"file":"settlementPool.d.ts","sourceRoot":"","sources":["../../../src/utils/settlementPool.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGzD,eAAO,MAAM,qBAAqB,GAAI,OAAO,cAAc,KAAG,MAQ3D,CAAA;AAQH,eAAO,MAAM,yBAAyB,GACpC,OAAO,cAAc,EACrB,kBAAkB,MAAM,KACvB,MAmBF,CAAA;AAGD,eAAO,MAAM,qBAAqB,GAChC,QAAQ,SAAS,cAAc,EAAE,EACjC,sBAAsB,MAAM,KAC3B,MAKF,CAAA"}
@@ -1,21 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.collateralSpotBalance = exports.pooledSettlementSpendable = exports.pooledSettlementUnits = void 0;
4
- const decimal_js_1 = require("./decimal.js");
5
- const pooledSettlementUnits = (asset) => (0, decimal_js_1.toRequiredBig)(asset.balance, 'balance').plus((0, decimal_js_1.toRequiredBig)(asset.margin_balance, 'margin_balance'));
4
+ const perps_sdk_1 = require("@lifi/perps-sdk");
5
+ const constants_js_1 = require("../constants.js");
6
+ const pooledSettlementUnits = (asset) => (0, perps_sdk_1.addDecimalString)((0, perps_sdk_1.unknownToDecimalString)(asset.balance, 'balance', constants_js_1.LIGHTER_PROVIDER_KEY), (0, perps_sdk_1.unknownToDecimalString)(asset.margin_balance, 'margin_balance', constants_js_1.LIGHTER_PROVIDER_KEY));
6
7
  exports.pooledSettlementUnits = pooledSettlementUnits;
7
8
  const pooledSettlementSpendable = (asset, availableBalance) => {
8
- const marginBalance = (0, decimal_js_1.toRequiredBig)(asset.margin_balance, 'margin_balance');
9
- return (0, decimal_js_1.toRequiredBig)(asset.balance, 'balance')
10
- .minus((0, decimal_js_1.toRequiredBig)(asset.locked_balance, 'locked_balance'))
11
- .plus(marginBalance.lt(availableBalance) ? marginBalance : availableBalance);
9
+ const marginBalance = (0, perps_sdk_1.unknownToDecimalString)(asset.margin_balance, 'margin_balance', constants_js_1.LIGHTER_PROVIDER_KEY);
10
+ return (0, perps_sdk_1.addDecimalString)((0, perps_sdk_1.subtractDecimalString)((0, perps_sdk_1.unknownToDecimalString)(asset.balance, 'balance', constants_js_1.LIGHTER_PROVIDER_KEY), (0, perps_sdk_1.unknownToDecimalString)(asset.locked_balance, 'locked_balance', constants_js_1.LIGHTER_PROVIDER_KEY)), (0, perps_sdk_1.isDecimalStringGreaterThan)(marginBalance, availableBalance)
11
+ ? availableBalance
12
+ : marginBalance);
12
13
  };
13
14
  exports.pooledSettlementSpendable = pooledSettlementSpendable;
14
15
  const collateralSpotBalance = (assets, settlementAssetIndex) => {
15
16
  const asset = assets.find((a) => a.asset_id === settlementAssetIndex);
16
17
  return asset === undefined
17
18
  ? '0'
18
- : (0, decimal_js_1.toRequiredBig)(asset.balance, 'balance').toFixed();
19
+ : (0, perps_sdk_1.unknownToDecimalString)(asset.balance, 'balance', constants_js_1.LIGHTER_PROVIDER_KEY);
19
20
  };
20
21
  exports.collateralSpotBalance = collateralSpotBalance;
21
22
  //# sourceMappingURL=settlementPool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settlementPool.js","sourceRoot":"","sources":["../../../src/utils/settlementPool.ts"],"names":[],"mappings":";;;AAEA,6CAA4C;AAGrC,MAAM,qBAAqB,GAAG,CAAC,KAAqB,EAAO,EAAE,CAClE,IAAA,0BAAa,EAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,IAAI,CAC1C,IAAA,0BAAa,EAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CACtD,CAAA;AAHU,QAAA,qBAAqB,yBAG/B;AAQI,MAAM,yBAAyB,GAAG,CACvC,KAAqB,EACrB,gBAAqB,EAChB,EAAE;IACP,MAAM,aAAa,GAAG,IAAA,0BAAa,EAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAA;IAC3E,OAAO,IAAA,0BAAa,EAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC;SAC3C,KAAK,CAAC,IAAA,0BAAa,EAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;SAC5D,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAA;AAChF,CAAC,CAAA;AARY,QAAA,yBAAyB,6BAQrC;AAGM,MAAM,qBAAqB,GAAG,CACnC,MAAiC,EACjC,oBAA4B,EACpB,EAAE;IACV,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,oBAAoB,CAAC,CAAA;IACrE,OAAO,KAAK,KAAK,SAAS;QACxB,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,IAAA,0BAAa,EAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;AACvD,CAAC,CAAA;AARY,QAAA,qBAAqB,yBAQjC"}
1
+ {"version":3,"file":"settlementPool.js","sourceRoot":"","sources":["../../../src/utils/settlementPool.ts"],"names":[],"mappings":";;;AAAA,+CAKwB;AACxB,kDAAsD;AAI/C,MAAM,qBAAqB,GAAG,CAAC,KAAqB,EAAU,EAAE,CACrE,IAAA,4BAAgB,EACd,IAAA,kCAAsB,EAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,mCAAoB,CAAC,EACtE,IAAA,kCAAsB,EACpB,KAAK,CAAC,cAAc,EACpB,gBAAgB,EAChB,mCAAoB,CACrB,CACF,CAAA;AARU,QAAA,qBAAqB,yBAQ/B;AAQI,MAAM,yBAAyB,GAAG,CACvC,KAAqB,EACrB,gBAAwB,EAChB,EAAE;IACV,MAAM,aAAa,GAAG,IAAA,kCAAsB,EAC1C,KAAK,CAAC,cAAc,EACpB,gBAAgB,EAChB,mCAAoB,CACrB,CAAA;IACD,OAAO,IAAA,4BAAgB,EACrB,IAAA,iCAAqB,EACnB,IAAA,kCAAsB,EAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,mCAAoB,CAAC,EACtE,IAAA,kCAAsB,EACpB,KAAK,CAAC,cAAc,EACpB,gBAAgB,EAChB,mCAAoB,CACrB,CACF,EACD,IAAA,sCAA0B,EAAC,aAAa,EAAE,gBAAgB,CAAC;QACzD,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,aAAa,CAClB,CAAA;AACH,CAAC,CAAA;AAtBY,QAAA,yBAAyB,6BAsBrC;AAGM,MAAM,qBAAqB,GAAG,CACnC,MAAiC,EACjC,oBAA4B,EACpB,EAAE;IACV,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,oBAAoB,CAAC,CAAA;IACrE,OAAO,KAAK,KAAK,SAAS;QACxB,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,IAAA,kCAAsB,EAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,mCAAoB,CAAC,CAAA;AAC5E,CAAC,CAAA;AARY,QAAA,qBAAqB,yBAQjC"}
@@ -1,8 +1,7 @@
1
1
  import type { Market, MarketContext } from '@lifi/perps-types';
2
- import Big from 'big.js';
3
- export declare const spotPriceByAssetId: (markets: readonly Market[], spotCategoryId: string, contexts: readonly MarketContext[], assetIds: ReadonlySet<string>) => Map<string, Big>;
4
- export declare const spotValuation: (assetId: number, units: string, settlementAssetIndex: number, spotPrices: ReadonlyMap<string, Big>) => {
2
+ export declare const spotPriceByAssetId: (markets: readonly Market[], spotCategoryId: string, contexts: readonly MarketContext[], assetIds: ReadonlySet<string>) => Map<string, string>;
3
+ export declare const spotValuation: (assetId: number, units: string, settlementAssetIndex: number, spotPrices: ReadonlyMap<string, string>) => {
5
4
  valueUsd: string;
6
- price?: Big;
5
+ price?: string;
7
6
  };
8
7
  //# sourceMappingURL=spotPrice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spotPrice.d.ts","sourceRoot":"","sources":["../../../src/utils/spotPrice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,GAAG,MAAM,QAAQ,CAAA;AAaxB,eAAO,MAAM,kBAAkB,GAC7B,SAAS,SAAS,MAAM,EAAE,EAC1B,gBAAgB,MAAM,EACtB,UAAU,SAAS,aAAa,EAAE,EAClC,UAAU,WAAW,CAAC,MAAM,CAAC,KAC5B,GAAG,CAAC,MAAM,EAAE,GAAG,CAmBjB,CAAA;AAOD,eAAO,MAAM,aAAa,GACxB,SAAS,MAAM,EACf,OAAO,MAAM,EACb,sBAAsB,MAAM,EAC5B,YAAY,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,KACnC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAQjC,CAAA"}
1
+ {"version":3,"file":"spotPrice.d.ts","sourceRoot":"","sources":["../../../src/utils/spotPrice.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAa9D,eAAO,MAAM,kBAAkB,GAC7B,SAAS,SAAS,MAAM,EAAE,EAC1B,gBAAgB,MAAM,EACtB,UAAU,SAAS,aAAa,EAAE,EAClC,UAAU,WAAW,CAAC,MAAM,CAAC,KAC5B,GAAG,CAAC,MAAM,EAAE,MAAM,CAuBpB,CAAA;AAOD,eAAO,MAAM,aAAa,GACxB,SAAS,MAAM,EACf,OAAO,MAAM,EACb,sBAAsB,MAAM,EAC5B,YAAY,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KACtC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAMpC,CAAA"}
@@ -1,11 +1,8 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.spotValuation = exports.spotPriceByAssetId = void 0;
7
- const big_js_1 = __importDefault(require("big.js"));
8
- const decimal_js_1 = require("./decimal.js");
4
+ const perps_sdk_1 = require("@lifi/perps-sdk");
5
+ const constants_js_1 = require("../constants.js");
9
6
  const spotPriceByAssetId = (markets, spotCategoryId, contexts, assetIds) => {
10
7
  const markByMarketId = new Map(contexts.map((c) => [c.marketId, c.markPrice]));
11
8
  const priceByAssetId = new Map();
@@ -17,8 +14,8 @@ const spotPriceByAssetId = (markets, spotCategoryId, contexts, assetIds) => {
17
14
  priceByAssetId.has(market.baseAsset.id)) {
18
15
  continue;
19
16
  }
20
- const price = (0, decimal_js_1.toRequiredBig)(mark, 'markPrice');
21
- if (price.gt(0)) {
17
+ const price = (0, perps_sdk_1.unknownToDecimalString)(mark, 'markPrice', constants_js_1.LIGHTER_PROVIDER_KEY);
18
+ if ((0, perps_sdk_1.isDecimalStringGreaterThan)(price, '0')) {
22
19
  priceByAssetId.set(market.baseAsset.id, price);
23
20
  }
24
21
  }
@@ -26,12 +23,10 @@ const spotPriceByAssetId = (markets, spotCategoryId, contexts, assetIds) => {
26
23
  };
27
24
  exports.spotPriceByAssetId = spotPriceByAssetId;
28
25
  const spotValuation = (assetId, units, settlementAssetIndex, spotPrices) => {
29
- const price = assetId === settlementAssetIndex
30
- ? new big_js_1.default(1)
31
- : spotPrices.get(String(assetId));
26
+ const price = assetId === settlementAssetIndex ? '1' : spotPrices.get(String(assetId));
32
27
  return price === undefined
33
28
  ? { valueUsd: '0' }
34
- : { valueUsd: new big_js_1.default(units).times(price).toFixed(), price };
29
+ : { valueUsd: (0, perps_sdk_1.multiplyDecimalString)(units, price), price };
35
30
  };
36
31
  exports.spotValuation = spotValuation;
37
32
  //# sourceMappingURL=spotPrice.js.map