@lifi/perps-sdk 20.1.1 → 21.1.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 (367) hide show
  1. package/README.md +81 -6
  2. package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
  3. package/dist/cjs/client/PerpsClient.js +4 -1
  4. package/dist/cjs/client/PerpsClient.js.map +1 -1
  5. package/dist/cjs/{utils/decimal.d.ts → decimal/big.d.ts} +1 -1
  6. package/dist/cjs/decimal/big.d.ts.map +1 -0
  7. package/dist/cjs/{utils/decimal.js → decimal/big.js} +1 -1
  8. package/dist/cjs/decimal/big.js.map +1 -0
  9. package/dist/cjs/decimal/convert.d.ts +11 -0
  10. package/dist/cjs/decimal/convert.d.ts.map +1 -0
  11. package/dist/cjs/decimal/convert.js +70 -0
  12. package/dist/cjs/decimal/convert.js.map +1 -0
  13. package/dist/cjs/decimal/format.d.ts.map +1 -0
  14. package/dist/cjs/decimal/format.js.map +1 -0
  15. package/dist/cjs/decimal/parse.d.ts +6 -0
  16. package/dist/cjs/decimal/parse.d.ts.map +1 -0
  17. package/dist/cjs/{utils → decimal}/parse.js +5 -4
  18. package/dist/cjs/decimal/parse.js.map +1 -0
  19. package/dist/cjs/index.d.ts +17 -15
  20. package/dist/cjs/index.d.ts.map +1 -1
  21. package/dist/cjs/index.js +75 -61
  22. package/dist/cjs/index.js.map +1 -1
  23. package/dist/cjs/math/fills.d.ts +5 -0
  24. package/dist/cjs/math/fills.d.ts.map +1 -0
  25. package/dist/cjs/{utils/fillClassification.js → math/fills.js} +16 -1
  26. package/dist/cjs/math/fills.js.map +1 -0
  27. package/dist/cjs/math/order.d.ts +45 -0
  28. package/dist/cjs/math/order.d.ts.map +1 -0
  29. package/dist/cjs/math/order.js +256 -0
  30. package/dist/cjs/math/order.js.map +1 -0
  31. package/dist/cjs/math/position.d.ts +56 -0
  32. package/dist/cjs/math/position.d.ts.map +1 -0
  33. package/dist/cjs/math/position.js +160 -0
  34. package/dist/cjs/math/position.js.map +1 -0
  35. package/dist/cjs/services/getActivity.d.ts.map +1 -1
  36. package/dist/cjs/services/getActivity.js.map +1 -1
  37. package/dist/cjs/services/getFills.d.ts.map +1 -1
  38. package/dist/cjs/services/getFills.js.map +1 -1
  39. package/dist/cjs/services/getOrder.d.ts.map +1 -1
  40. package/dist/cjs/services/getOrder.js.map +1 -1
  41. package/dist/cjs/services/getOrders.d.ts.map +1 -1
  42. package/dist/cjs/services/getOrders.js.map +1 -1
  43. package/dist/cjs/services/getPositions.d.ts.map +1 -1
  44. package/dist/cjs/services/getPositions.js.map +1 -1
  45. package/dist/cjs/services/resolveQuote.d.ts.map +1 -1
  46. package/dist/cjs/services/resolveQuote.js +2 -2
  47. package/dist/cjs/services/resolveQuote.js.map +1 -1
  48. package/dist/cjs/services/resolveSubscribeQuote.d.ts.map +1 -1
  49. package/dist/cjs/services/resolveSubscribeQuote.js +2 -2
  50. package/dist/cjs/services/resolveSubscribeQuote.js.map +1 -1
  51. package/dist/cjs/types/provider.d.ts +3 -3
  52. package/dist/cjs/types/provider.d.ts.map +1 -1
  53. package/dist/cjs/types/withdrawal.d.ts +2 -0
  54. package/dist/cjs/types/withdrawal.d.ts.map +1 -1
  55. package/dist/cjs/utils/orderClassification.d.ts +1 -3
  56. package/dist/cjs/utils/orderClassification.d.ts.map +1 -1
  57. package/dist/cjs/utils/orderClassification.js +1 -15
  58. package/dist/cjs/utils/orderClassification.js.map +1 -1
  59. package/dist/cjs/version.d.ts +1 -1
  60. package/dist/cjs/version.js +1 -1
  61. package/dist/cjs/wire/orderAmounts.d.ts +18 -0
  62. package/dist/cjs/wire/orderAmounts.d.ts.map +1 -0
  63. package/dist/cjs/wire/orderAmounts.js +79 -0
  64. package/dist/cjs/wire/orderAmounts.js.map +1 -0
  65. package/dist/cjs/wire/refuel.d.ts +8 -0
  66. package/dist/cjs/wire/refuel.d.ts.map +1 -0
  67. package/dist/cjs/wire/refuel.js +23 -0
  68. package/dist/cjs/wire/refuel.js.map +1 -0
  69. package/dist/cjs/wire/requireDecimal.d.ts +4 -0
  70. package/dist/cjs/wire/requireDecimal.d.ts.map +1 -0
  71. package/dist/cjs/wire/requireDecimal.js +16 -0
  72. package/dist/cjs/wire/requireDecimal.js.map +1 -0
  73. package/dist/cjs/wire/snap.d.ts +5 -0
  74. package/dist/cjs/wire/snap.d.ts.map +1 -0
  75. package/dist/cjs/wire/snap.js +12 -0
  76. package/dist/cjs/wire/snap.js.map +1 -0
  77. package/dist/cjs/wire/transferable.d.ts +3 -0
  78. package/dist/cjs/wire/transferable.d.ts.map +1 -0
  79. package/dist/cjs/wire/transferable.js +13 -0
  80. package/dist/cjs/wire/transferable.js.map +1 -0
  81. package/dist/cjs/wire/withdraw.d.ts +4 -0
  82. package/dist/cjs/wire/withdraw.d.ts.map +1 -0
  83. package/dist/cjs/wire/withdraw.js +13 -0
  84. package/dist/cjs/wire/withdraw.js.map +1 -0
  85. package/dist/esm/client/PerpsClient.d.ts +37 -5
  86. package/dist/esm/client/PerpsClient.d.ts.map +1 -1
  87. package/dist/esm/client/PerpsClient.js +41 -6
  88. package/dist/esm/client/PerpsClient.js.map +1 -1
  89. package/dist/esm/{utils/decimal.d.ts → decimal/big.d.ts} +1 -1
  90. package/dist/esm/decimal/big.d.ts.map +1 -0
  91. package/dist/esm/{utils/decimal.js → decimal/big.js} +1 -1
  92. package/dist/esm/decimal/big.js.map +1 -0
  93. package/dist/esm/decimal/convert.d.ts +80 -0
  94. package/dist/esm/decimal/convert.d.ts.map +1 -0
  95. package/dist/esm/decimal/convert.js +118 -0
  96. package/dist/esm/decimal/convert.js.map +1 -0
  97. package/dist/esm/decimal/format.d.ts.map +1 -0
  98. package/dist/esm/decimal/format.js.map +1 -0
  99. package/dist/esm/decimal/parse.d.ts +29 -0
  100. package/dist/esm/decimal/parse.d.ts.map +1 -0
  101. package/dist/esm/{utils → decimal}/parse.js +9 -10
  102. package/dist/esm/decimal/parse.js.map +1 -0
  103. package/dist/esm/index.d.ts +17 -15
  104. package/dist/esm/index.d.ts.map +1 -1
  105. package/dist/esm/index.js +12 -12
  106. package/dist/esm/index.js.map +1 -1
  107. package/dist/esm/math/fills.d.ts +26 -0
  108. package/dist/esm/math/fills.d.ts.map +1 -0
  109. package/dist/esm/{utils/fillClassification.js → math/fills.js} +26 -2
  110. package/dist/esm/math/fills.js.map +1 -0
  111. package/dist/esm/{utils/calculations.d.ts → math/order.d.ts} +70 -75
  112. package/dist/esm/math/order.d.ts.map +1 -0
  113. package/dist/esm/{utils/calculations.js → math/order.js} +155 -111
  114. package/dist/esm/math/order.js.map +1 -0
  115. package/dist/esm/math/position.d.ts +211 -0
  116. package/dist/esm/math/position.d.ts.map +1 -0
  117. package/dist/esm/math/position.js +299 -0
  118. package/dist/esm/math/position.js.map +1 -0
  119. package/dist/esm/services/getActivity.d.ts +4 -0
  120. package/dist/esm/services/getActivity.d.ts.map +1 -1
  121. package/dist/esm/services/getActivity.js +4 -0
  122. package/dist/esm/services/getActivity.js.map +1 -1
  123. package/dist/esm/services/getFills.d.ts +4 -0
  124. package/dist/esm/services/getFills.d.ts.map +1 -1
  125. package/dist/esm/services/getFills.js +4 -0
  126. package/dist/esm/services/getFills.js.map +1 -1
  127. package/dist/esm/services/getOrder.d.ts +4 -0
  128. package/dist/esm/services/getOrder.d.ts.map +1 -1
  129. package/dist/esm/services/getOrder.js +4 -0
  130. package/dist/esm/services/getOrder.js.map +1 -1
  131. package/dist/esm/services/getOrders.d.ts +10 -1
  132. package/dist/esm/services/getOrders.d.ts.map +1 -1
  133. package/dist/esm/services/getOrders.js +10 -1
  134. package/dist/esm/services/getOrders.js.map +1 -1
  135. package/dist/esm/services/getPositions.d.ts +4 -0
  136. package/dist/esm/services/getPositions.d.ts.map +1 -1
  137. package/dist/esm/services/getPositions.js +4 -0
  138. package/dist/esm/services/getPositions.js.map +1 -1
  139. package/dist/esm/services/resolveQuote.d.ts.map +1 -1
  140. package/dist/esm/services/resolveQuote.js +1 -1
  141. package/dist/esm/services/resolveQuote.js.map +1 -1
  142. package/dist/esm/services/resolveSubscribeQuote.d.ts.map +1 -1
  143. package/dist/esm/services/resolveSubscribeQuote.js +1 -1
  144. package/dist/esm/services/resolveSubscribeQuote.js.map +1 -1
  145. package/dist/esm/types/provider.d.ts +23 -11
  146. package/dist/esm/types/provider.d.ts.map +1 -1
  147. package/dist/esm/types/withdrawal.d.ts +12 -0
  148. package/dist/esm/types/withdrawal.d.ts.map +1 -1
  149. package/dist/esm/utils/orderClassification.d.ts +1 -14
  150. package/dist/esm/utils/orderClassification.d.ts.map +1 -1
  151. package/dist/esm/utils/orderClassification.js +1 -25
  152. package/dist/esm/utils/orderClassification.js.map +1 -1
  153. package/dist/esm/version.d.ts +1 -1
  154. package/dist/esm/version.js +1 -1
  155. package/dist/esm/wire/orderAmounts.d.ts +55 -0
  156. package/dist/esm/wire/orderAmounts.d.ts.map +1 -0
  157. package/dist/esm/wire/orderAmounts.js +114 -0
  158. package/dist/esm/wire/orderAmounts.js.map +1 -0
  159. package/dist/esm/wire/refuel.d.ts +28 -0
  160. package/dist/esm/wire/refuel.d.ts.map +1 -0
  161. package/dist/esm/wire/refuel.js +36 -0
  162. package/dist/esm/wire/refuel.js.map +1 -0
  163. package/dist/esm/wire/requireDecimal.d.ts +11 -0
  164. package/dist/esm/wire/requireDecimal.d.ts.map +1 -0
  165. package/dist/esm/wire/requireDecimal.js +17 -0
  166. package/dist/esm/wire/requireDecimal.js.map +1 -0
  167. package/dist/esm/wire/snap.d.ts +24 -0
  168. package/dist/esm/wire/snap.d.ts.map +1 -0
  169. package/dist/esm/wire/snap.js +27 -0
  170. package/dist/esm/wire/snap.js.map +1 -0
  171. package/dist/esm/wire/transferable.d.ts +15 -0
  172. package/dist/esm/wire/transferable.d.ts.map +1 -0
  173. package/dist/esm/wire/transferable.js +22 -0
  174. package/dist/esm/wire/transferable.js.map +1 -0
  175. package/dist/esm/wire/withdraw.d.ts +14 -0
  176. package/dist/esm/wire/withdraw.d.ts.map +1 -0
  177. package/dist/esm/wire/withdraw.js +20 -0
  178. package/dist/esm/wire/withdraw.js.map +1 -0
  179. package/dist/types/client/PerpsClient.d.ts +37 -5
  180. package/dist/types/client/PerpsClient.d.ts.map +1 -1
  181. package/dist/types/{utils/decimal.d.ts → decimal/big.d.ts} +1 -1
  182. package/dist/types/decimal/big.d.ts.map +1 -0
  183. package/dist/types/decimal/convert.d.ts +80 -0
  184. package/dist/types/decimal/convert.d.ts.map +1 -0
  185. package/dist/types/decimal/format.d.ts.map +1 -0
  186. package/dist/types/decimal/parse.d.ts +29 -0
  187. package/dist/types/decimal/parse.d.ts.map +1 -0
  188. package/dist/types/index.d.ts +17 -15
  189. package/dist/types/index.d.ts.map +1 -1
  190. package/dist/types/math/fills.d.ts +26 -0
  191. package/dist/types/math/fills.d.ts.map +1 -0
  192. package/dist/types/{utils/calculations.d.ts → math/order.d.ts} +70 -75
  193. package/dist/types/math/order.d.ts.map +1 -0
  194. package/dist/types/math/position.d.ts +211 -0
  195. package/dist/types/math/position.d.ts.map +1 -0
  196. package/dist/types/services/getActivity.d.ts +4 -0
  197. package/dist/types/services/getActivity.d.ts.map +1 -1
  198. package/dist/types/services/getFills.d.ts +4 -0
  199. package/dist/types/services/getFills.d.ts.map +1 -1
  200. package/dist/types/services/getOrder.d.ts +4 -0
  201. package/dist/types/services/getOrder.d.ts.map +1 -1
  202. package/dist/types/services/getOrders.d.ts +10 -1
  203. package/dist/types/services/getOrders.d.ts.map +1 -1
  204. package/dist/types/services/getPositions.d.ts +4 -0
  205. package/dist/types/services/getPositions.d.ts.map +1 -1
  206. package/dist/types/services/resolveQuote.d.ts.map +1 -1
  207. package/dist/types/services/resolveSubscribeQuote.d.ts.map +1 -1
  208. package/dist/types/types/provider.d.ts +23 -11
  209. package/dist/types/types/provider.d.ts.map +1 -1
  210. package/dist/types/types/withdrawal.d.ts +12 -0
  211. package/dist/types/types/withdrawal.d.ts.map +1 -1
  212. package/dist/types/utils/orderClassification.d.ts +1 -14
  213. package/dist/types/utils/orderClassification.d.ts.map +1 -1
  214. package/dist/types/version.d.ts +1 -1
  215. package/dist/types/wire/orderAmounts.d.ts +55 -0
  216. package/dist/types/wire/orderAmounts.d.ts.map +1 -0
  217. package/dist/types/wire/refuel.d.ts +28 -0
  218. package/dist/types/wire/refuel.d.ts.map +1 -0
  219. package/dist/types/wire/requireDecimal.d.ts +11 -0
  220. package/dist/types/wire/requireDecimal.d.ts.map +1 -0
  221. package/dist/types/wire/snap.d.ts +24 -0
  222. package/dist/types/wire/snap.d.ts.map +1 -0
  223. package/dist/types/wire/transferable.d.ts +15 -0
  224. package/dist/types/wire/transferable.d.ts.map +1 -0
  225. package/dist/types/wire/withdraw.d.ts +14 -0
  226. package/dist/types/wire/withdraw.d.ts.map +1 -0
  227. package/package.json +2 -2
  228. package/src/client/PerpsClient.ts +41 -6
  229. package/src/decimal/convert.ts +164 -0
  230. package/src/{utils → decimal}/parse.ts +13 -11
  231. package/src/index.ts +80 -57
  232. package/src/{utils/fillClassification.ts → math/fills.ts} +30 -1
  233. package/src/{utils/calculations.ts → math/order.ts} +205 -127
  234. package/src/{utils/positionMath.ts → math/position.ts} +173 -21
  235. package/src/services/getActivity.ts +4 -0
  236. package/src/services/getFills.ts +4 -0
  237. package/src/services/getOrder.ts +4 -0
  238. package/src/services/getOrders.ts +10 -1
  239. package/src/services/getPositions.ts +4 -0
  240. package/src/services/resolveQuote.ts +1 -1
  241. package/src/services/resolveSubscribeQuote.ts +1 -1
  242. package/src/types/provider.ts +23 -10
  243. package/src/types/withdrawal.ts +12 -0
  244. package/src/utils/orderClassification.ts +0 -30
  245. package/src/version.ts +1 -1
  246. package/src/wire/orderAmounts.ts +172 -0
  247. package/src/wire/refuel.ts +51 -0
  248. package/src/wire/requireDecimal.ts +24 -0
  249. package/src/wire/snap.ts +38 -0
  250. package/src/wire/transferable.ts +26 -0
  251. package/src/wire/withdraw.ts +29 -0
  252. package/dist/cjs/utils/calculations.d.ts +0 -47
  253. package/dist/cjs/utils/calculations.d.ts.map +0 -1
  254. package/dist/cjs/utils/calculations.js +0 -214
  255. package/dist/cjs/utils/calculations.js.map +0 -1
  256. package/dist/cjs/utils/decimal.d.ts.map +0 -1
  257. package/dist/cjs/utils/decimal.js.map +0 -1
  258. package/dist/cjs/utils/fillClassification.d.ts +0 -3
  259. package/dist/cjs/utils/fillClassification.d.ts.map +0 -1
  260. package/dist/cjs/utils/fillClassification.js.map +0 -1
  261. package/dist/cjs/utils/format.d.ts.map +0 -1
  262. package/dist/cjs/utils/format.js.map +0 -1
  263. package/dist/cjs/utils/math.d.ts +0 -4
  264. package/dist/cjs/utils/math.d.ts.map +0 -1
  265. package/dist/cjs/utils/math.js +0 -8
  266. package/dist/cjs/utils/math.js.map +0 -1
  267. package/dist/cjs/utils/orderEntry.d.ts +0 -6
  268. package/dist/cjs/utils/orderEntry.d.ts.map +0 -1
  269. package/dist/cjs/utils/orderEntry.js +0 -20
  270. package/dist/cjs/utils/orderEntry.js.map +0 -1
  271. package/dist/cjs/utils/orderMath.d.ts +0 -6
  272. package/dist/cjs/utils/orderMath.d.ts.map +0 -1
  273. package/dist/cjs/utils/orderMath.js +0 -85
  274. package/dist/cjs/utils/orderMath.js.map +0 -1
  275. package/dist/cjs/utils/parse.d.ts +0 -3
  276. package/dist/cjs/utils/parse.d.ts.map +0 -1
  277. package/dist/cjs/utils/parse.js.map +0 -1
  278. package/dist/cjs/utils/positionMath.d.ts +0 -37
  279. package/dist/cjs/utils/positionMath.d.ts.map +0 -1
  280. package/dist/cjs/utils/positionMath.js +0 -99
  281. package/dist/cjs/utils/positionMath.js.map +0 -1
  282. package/dist/cjs/utils/scaleToInteger.d.ts +0 -3
  283. package/dist/cjs/utils/scaleToInteger.d.ts.map +0 -1
  284. package/dist/cjs/utils/scaleToInteger.js +0 -30
  285. package/dist/cjs/utils/scaleToInteger.js.map +0 -1
  286. package/dist/cjs/utils/units.d.ts +0 -3
  287. package/dist/cjs/utils/units.d.ts.map +0 -1
  288. package/dist/cjs/utils/units.js +0 -18
  289. package/dist/cjs/utils/units.js.map +0 -1
  290. package/dist/cjs/utils/validation.d.ts +0 -2
  291. package/dist/cjs/utils/validation.d.ts.map +0 -1
  292. package/dist/cjs/utils/validation.js +0 -16
  293. package/dist/cjs/utils/validation.js.map +0 -1
  294. package/dist/esm/utils/calculations.d.ts.map +0 -1
  295. package/dist/esm/utils/calculations.js.map +0 -1
  296. package/dist/esm/utils/decimal.d.ts.map +0 -1
  297. package/dist/esm/utils/decimal.js.map +0 -1
  298. package/dist/esm/utils/fillClassification.d.ts +0 -13
  299. package/dist/esm/utils/fillClassification.d.ts.map +0 -1
  300. package/dist/esm/utils/fillClassification.js.map +0 -1
  301. package/dist/esm/utils/format.d.ts.map +0 -1
  302. package/dist/esm/utils/format.js.map +0 -1
  303. package/dist/esm/utils/math.d.ts +0 -6
  304. package/dist/esm/utils/math.d.ts.map +0 -1
  305. package/dist/esm/utils/math.js +0 -5
  306. package/dist/esm/utils/math.js.map +0 -1
  307. package/dist/esm/utils/orderEntry.d.ts +0 -26
  308. package/dist/esm/utils/orderEntry.d.ts.map +0 -1
  309. package/dist/esm/utils/orderEntry.js +0 -34
  310. package/dist/esm/utils/orderEntry.js.map +0 -1
  311. package/dist/esm/utils/orderMath.d.ts +0 -37
  312. package/dist/esm/utils/orderMath.d.ts.map +0 -1
  313. package/dist/esm/utils/orderMath.js +0 -113
  314. package/dist/esm/utils/orderMath.js.map +0 -1
  315. package/dist/esm/utils/parse.d.ts +0 -28
  316. package/dist/esm/utils/parse.d.ts.map +0 -1
  317. package/dist/esm/utils/parse.js.map +0 -1
  318. package/dist/esm/utils/positionMath.d.ts +0 -120
  319. package/dist/esm/utils/positionMath.d.ts.map +0 -1
  320. package/dist/esm/utils/positionMath.js +0 -173
  321. package/dist/esm/utils/positionMath.js.map +0 -1
  322. package/dist/esm/utils/scaleToInteger.d.ts +0 -22
  323. package/dist/esm/utils/scaleToInteger.d.ts.map +0 -1
  324. package/dist/esm/utils/scaleToInteger.js +0 -34
  325. package/dist/esm/utils/scaleToInteger.js.map +0 -1
  326. package/dist/esm/utils/units.d.ts +0 -27
  327. package/dist/esm/utils/units.d.ts.map +0 -1
  328. package/dist/esm/utils/units.js +0 -38
  329. package/dist/esm/utils/units.js.map +0 -1
  330. package/dist/esm/utils/validation.d.ts +0 -18
  331. package/dist/esm/utils/validation.d.ts.map +0 -1
  332. package/dist/esm/utils/validation.js +0 -29
  333. package/dist/esm/utils/validation.js.map +0 -1
  334. package/dist/types/utils/calculations.d.ts.map +0 -1
  335. package/dist/types/utils/decimal.d.ts.map +0 -1
  336. package/dist/types/utils/fillClassification.d.ts +0 -13
  337. package/dist/types/utils/fillClassification.d.ts.map +0 -1
  338. package/dist/types/utils/format.d.ts.map +0 -1
  339. package/dist/types/utils/math.d.ts +0 -6
  340. package/dist/types/utils/math.d.ts.map +0 -1
  341. package/dist/types/utils/orderEntry.d.ts +0 -26
  342. package/dist/types/utils/orderEntry.d.ts.map +0 -1
  343. package/dist/types/utils/orderMath.d.ts +0 -37
  344. package/dist/types/utils/orderMath.d.ts.map +0 -1
  345. package/dist/types/utils/parse.d.ts +0 -28
  346. package/dist/types/utils/parse.d.ts.map +0 -1
  347. package/dist/types/utils/positionMath.d.ts +0 -120
  348. package/dist/types/utils/positionMath.d.ts.map +0 -1
  349. package/dist/types/utils/scaleToInteger.d.ts +0 -22
  350. package/dist/types/utils/scaleToInteger.d.ts.map +0 -1
  351. package/dist/types/utils/units.d.ts +0 -27
  352. package/dist/types/utils/units.d.ts.map +0 -1
  353. package/dist/types/utils/validation.d.ts +0 -18
  354. package/dist/types/utils/validation.d.ts.map +0 -1
  355. package/src/utils/math.ts +0 -7
  356. package/src/utils/orderEntry.ts +0 -38
  357. package/src/utils/orderMath.ts +0 -152
  358. package/src/utils/scaleToInteger.ts +0 -56
  359. package/src/utils/units.ts +0 -39
  360. package/src/utils/validation.ts +0 -38
  361. /package/dist/cjs/{utils → decimal}/format.d.ts +0 -0
  362. /package/dist/cjs/{utils → decimal}/format.js +0 -0
  363. /package/dist/esm/{utils → decimal}/format.d.ts +0 -0
  364. /package/dist/esm/{utils → decimal}/format.js +0 -0
  365. /package/dist/types/{utils → decimal}/format.d.ts +0 -0
  366. /package/src/{utils/decimal.ts → decimal/big.ts} +0 -0
  367. /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.DISABLED_RETRY = exports.isAbortError = exports.fetchWithRetry = exports.errorCodeFromStatus = exports.createMemoryStorage = 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.PerpsError = exports.PerpsErrorMessage = exports.requireProvider = exports.PerpsClient = exports.DEFAULT_API_URL = exports.createPerpsClient = void 0;
18
- exports.marginFromSize = exports.marginFromNotional = exports.triggerConditionFor = exports.isTwapOrder = exports.isTriggerOrder = exports.isTpSlOrder = exports.isTakeProfitOrder = exports.isStopLossOrder = exports.isRegularOrder = exports.isActiveOrderStatus = exports.FillClassification = exports.classifyFill = exports.ACTIVE_ORDER_STATUSES = exports.minOf = exports.maxOf = exports.formatUsd = exports.formatSignedUsd = exports.formatSignedPercent = exports.formatPrice = exports.formatNumber = exports.formatCompactUsd = exports.classifyFillFromPosition = 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.walkOrderbook = exports.priceFromPercent = exports.percentFromPrice = exports.liquidationDistancePercent = exports.estimateFees = exports.effectiveLeverage = exports.calculateUnrealizedPnl = exports.calculateRoe = exports.calculateRequiredMargin = exports.calculateRealizedPnlPercent = exports.calculatePositionSize = exports.calculateNotionalValue = exports.calculateExpectedPnl = exports.buildQuote = exports.applySlippage = exports.paginateActivity = exports.resolveRetryPolicy = exports.LIFI_RETRY_DEFAULTS = exports.LIFI_REQUEST_KEY = void 0;
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.validateMargin = exports.fromBaseUnitsNumber = exports.fromBaseUnits = exports.signTypedDataWithSigner = exports.signTypedData = exports.selectUserSetupActions = exports.isSetupOptionFor = exports.scaleToInteger = exports.wouldImmediatelyLiquidate = exports.realizedPnlOnClose = exports.predictUnrealizedPnl = exports.predictNewLeverage = exports.predictAverageEntryPrice = exports.estimateIsolatedLiquidationPrice = exports.directionSign = exports.stringToFloat = exports.parseDecimal = exports.resolveCloseSize = exports.findMatchingPosition = exports.expectedRealizedPnlForTriggerOrder = exports.expectedRealizedPnlForOpenOrder = exports.sizeFromNotional = exports.sizeFromMargin = void 0;
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
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
- //# sourceMappingURL=fillClassification.js.map
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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"}