@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
@@ -1,6 +1,15 @@
1
1
  import { requireProvider } from '../client/requireProvider.js';
2
2
  import { ACTIVE_ORDER_STATUSES } from '../utils/orderClassification.js';
3
- /** Read account orders with active lifecycle statuses as the default filter. */
3
+ /**
4
+ * Read account orders with active lifecycle statuses as the default filter.
5
+ *
6
+ * @throws {PerpsError} When the provider plugin is not registered, or on
7
+ * backend / network / parsing errors.
8
+ * @throws {PerpsError} `SetupRequired` when the venue needs a credential (a
9
+ * Lighter auth token or an Ondo session) and none is stored.
10
+ * @throws {PerpsError} `Unauthorized` when the venue rejects the credential.
11
+ * @throws {PerpsError} `AccountNotFound` when the wallet has no venue account.
12
+ */
4
13
  export async function getOrders(client, params, options) {
5
14
  return requireProvider(client, params.provider).getOrders({
6
15
  address: params.address,
@@ -1 +1 @@
1
- {"version":3,"file":"getOrders.js","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAG9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAmBvE,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAsB,EACtB,MAAuB,EACvB,OAA2B;IAE3B,OAAO,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CACvD;QACE,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,GAAG,qBAAqB,CAAC;QACvD,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,EACD,OAAO,CACR,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"getOrders.js","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAG9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAmBvE;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAsB,EACtB,MAAuB,EACvB,OAA2B;IAE3B,OAAO,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CACvD;QACE,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,GAAG,qBAAqB,CAAC;QACvD,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,EACD,OAAO,CACR,CAAA;AACH,CAAC"}
@@ -24,6 +24,10 @@ export interface GetPositionsParams {
24
24
  *
25
25
  * @throws {PerpsError} When the provider plugin is not registered, or on
26
26
  * backend / network / parsing errors.
27
+ * @throws {PerpsError} `SetupRequired` when the venue needs a credential (a
28
+ * Lighter auth token or an Ondo session) and none is stored.
29
+ * @throws {PerpsError} `Unauthorized` when the venue rejects the credential.
30
+ * @throws {PerpsError} `AccountNotFound` when the wallet has no venue account.
27
31
  * @example
28
32
  * ```ts
29
33
  * const { positions } = await getPositions(client, {
@@ -1 +1 @@
1
- {"version":3,"file":"getPositions.d.ts","sourceRoot":"","sources":["../../../src/services/getPositions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAU5B"}
1
+ {"version":3,"file":"getPositions.d.ts","sourceRoot":"","sources":["../../../src/services/getPositions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAU5B"}
@@ -6,6 +6,10 @@ import { requireProvider } from '../client/requireProvider.js';
6
6
  *
7
7
  * @throws {PerpsError} When the provider plugin is not registered, or on
8
8
  * backend / network / parsing errors.
9
+ * @throws {PerpsError} `SetupRequired` when the venue needs a credential (a
10
+ * Lighter auth token or an Ondo session) and none is stored.
11
+ * @throws {PerpsError} `Unauthorized` when the venue rejects the credential.
12
+ * @throws {PerpsError} `AccountNotFound` when the wallet has no venue account.
9
13
  * @example
10
14
  * ```ts
11
15
  * const { positions } = await getPositions(client, {
@@ -1 +1 @@
1
- {"version":3,"file":"getPositions.js","sourceRoot":"","sources":["../../../src/services/getPositions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAoB9D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAsB,EACtB,MAA0B,EAC1B,OAA2B;IAE3B,OAAO,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAC1D;QACE,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,EACD,OAAO,CACR,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"getPositions.js","sourceRoot":"","sources":["../../../src/services/getPositions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAoB9D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAsB,EACtB,MAA0B,EAC1B,OAA2B;IAE3B,OAAO,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAC1D;QACE,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,EACD,OAAO,CACR,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolveQuote.d.ts","sourceRoot":"","sources":["../../../src/services/resolveQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,aAAa,EAElB,KAAK,KAAK,EACX,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACvB,MAAM,sBAAsB,CAAA;AAM7B;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,KAAK,CAAC,CAqBhB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,CAAC,sBAAsB,EAAE,QAAQ,GAAG,MAAM,CAAC,EACvD,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAcjB;AAOD;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAcxB"}
1
+ {"version":3,"file":"resolveQuote.d.ts","sourceRoot":"","sources":["../../../src/services/resolveQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,aAAa,EAElB,KAAK,KAAK,EACX,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACvB,MAAM,sBAAsB,CAAA;AAK7B;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,KAAK,CAAC,CAqBhB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,CAAC,sBAAsB,EAAE,QAAQ,GAAG,MAAM,CAAC,EACvD,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAcjB;AAOD;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAcxB"}
@@ -1,6 +1,6 @@
1
1
  import { PerpsErrorCode, } from '@lifi/perps-types';
2
2
  import { PerpsError } from '../errors/PerpsError.js';
3
- import { buildQuote } from '../utils/calculations.js';
3
+ import { buildQuote } from '../math/order.js';
4
4
  import { getMarkets } from './getMarkets.js';
5
5
  import { getMarketsContext } from './getMarketsContext.js';
6
6
  import { getOrderbook } from './getOrderbook.js';
@@ -1 +1 @@
1
- {"version":3,"file":"resolveQuote.js","sourceRoot":"","sources":["../../../src/services/resolveQuote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveQuote.js","sourceRoot":"","sources":["../../../src/services/resolveQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,cAAc,GAEf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAM7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAsB,EACtB,QAAgB,EAChB,MAA8B,EAC9B,OAAgB,EAChB,OAA2B;IAE3B,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAE1E,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAChD,YAAY,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC;QAChE,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;KACxD,CAAC,CAAA;IAEF,OAAO,UAAU,CAAC;QAChB,QAAQ;QACR,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,IAAI;QACpB,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAsB,EACtB,QAAgB,EAChB,MAAuD,EACvD,OAA2B;IAE3B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAA;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CACzB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,SAAS,CAAC,aAAa,KAAK,MAAM,CAAC,MAAM;QAC3C,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CACjC,CAAA;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,cAAc,EAC7B,MAAM,MAAM,CAAC,IAAI,qBAAqB,QAAQ,iBAAiB,MAAM,CAAC,MAAM,IAAI,CACjF,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,cAAc,GAAG,CACrB,MAAc,EACd,IAAoC,EAC3B,EAAE,CAAC,CAAC,aAAa,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;AAE5E;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAsB,EACtB,QAAgB,EAChB,QAAgB,EAChB,OAA2B;IAE3B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CACxC,MAAM,EACN,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,EACnC,OAAO,CACR,CAAA;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;IACzD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,cAAc,EAC7B,yBAAyB,QAAQ,mBAAmB,QAAQ,IAAI,CACjE,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolveSubscribeQuote.d.ts","sourceRoot":"","sources":["../../../src/services/resolveSubscribeQuote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAGR,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,aAAa,EACd,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGvD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAA;AAEpC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EACjC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC,CAuFrB"}
1
+ {"version":3,"file":"resolveSubscribeQuote.d.ts","sourceRoot":"","sources":["../../../src/services/resolveSubscribeQuote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAGR,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,aAAa,EACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGvD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAA;AAEpC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EACjC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC,CAuFrB"}
@@ -1,4 +1,4 @@
1
- import { buildQuote } from '../utils/calculations.js';
1
+ import { buildQuote } from '../math/order.js';
2
2
  import { resolveQuoteMarket, resolveQuotePrice } from './resolveQuote.js';
3
3
  /**
4
4
  * Minimum gap between successive streamed {@link Quote} emissions — the same
@@ -1 +1 @@
1
- {"version":3,"file":"resolveSubscribeQuote.js","sourceRoot":"","sources":["../../../src/services/resolveSubscribeQuote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveSubscribeQuote.js","sourceRoot":"","sources":["../../../src/services/resolveSubscribeQuote.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AccountConfig, AccountConfigSetting, AccountResponse, AccountSummary, ActionResult, ActionStep, ActionType, ActivitiesResponse, ActivityType, AvailableToTrade, FillsResponse, Market, MarketRef, MarketSettings, Order, OrderStatus, OrdersResponse, PerpsMarket, PerpsSigner, PortfolioHistoryRange, PortfolioHistoryResponse, Position, PositionsResponse, Quote, QuoteSide, SetupAction, SignedActionStep, SigningMethod, TradeType } from '@lifi/perps-types';
1
+ import type { AccountConfig, AccountConfigSetting, AccountResponse, AccountSummary, ActionResult, ActionStep, ActionType, ActivitiesResponse, ActivityType, AvailableToTrade, DecimalString, FillsResponse, Market, MarketRef, MarketSettings, Order, OrderStatus, OrdersResponse, PerpsMarket, PerpsSigner, PortfolioHistoryRange, PortfolioHistoryResponse, Position, PositionsResponse, Quote, QuoteSide, SetupAction, SignedActionStep, SigningMethod, TradeType } from '@lifi/perps-types';
2
2
  import type { Address } from 'viem';
3
3
  import type { PerpsBaseConfig, PerpsClientSigner, SDKRequestOptions } from './config.js';
4
4
  import type { DepositFlow } from './deposit.js';
@@ -416,34 +416,46 @@ export interface PerpsProviderPlugin {
416
416
  */
417
417
  getAccountSummary(account: AccountResponse, positions: Position[]): AccountSummary;
418
418
  /**
419
- * Format an order price onto the venue's tick grid for `market`. This is
420
- * the canonical, provider-correct formatting surface — venue tick rules
421
- * differ per provider, so provider-agnostic consumers must route every
422
- * order price through the market's own provider instead of applying one
423
- * venue's rules to another's markets. Pure — does no I/O.
419
+ * Snap an order price onto the venue's tick grid for `market`, rounding
420
+ * half-up. This is the canonical, provider-correct price surface — venue
421
+ * tick rules differ per provider, so provider-agnostic consumers must route
422
+ * every order price through the market's own provider instead of applying
423
+ * one venue's rules to another's markets. Pure — does no I/O.
424
+ *
425
+ * Takes and gives a {@link DecimalString}. Never pass a `number`: above 15
426
+ * significant digits the value has already lost digits by the time it
427
+ * arrives.
424
428
  *
425
429
  * @returns The price as a wire-ready decimal string, trailing zeros
426
430
  * stripped.
427
431
  * @throws {PerpsError} `ValidationError` when `market` lacks the tick
428
432
  * metadata the venue's rules need (e.g. `Market.priceDecimals` absent).
429
433
  */
430
- formatOrderPrice(market: Market, price: number): string;
434
+ snapOrderPrice(market: Market, price: DecimalString): DecimalString;
431
435
  /**
432
- * Format an order size onto the venue's lot grid for `market`. Truncates
433
- * (never rounds up) so the formatted size cannot exceed the user's intended
434
- * size or available balance. Pure — does no I/O.
436
+ * Snap an order size onto the venue's lot grid for `market`, truncating
437
+ * toward zero (never rounding up) so the snapped size cannot exceed the
438
+ * user's intended size or available balance. Pure — does no I/O.
439
+ *
440
+ * Takes and gives a {@link DecimalString}. Never pass a `number`: above 15
441
+ * significant digits the value has already lost digits by the time it
442
+ * arrives.
435
443
  *
436
444
  * @param size - Size in base-asset units as a non-negative magnitude.
437
445
  * @returns The size as a wire-ready decimal string, trailing zeros
438
446
  * stripped.
439
447
  */
440
- formatOrderSize(market: Market, size: number): string;
448
+ snapOrderSize(market: Market, size: DecimalString): DecimalString;
441
449
  /**
442
450
  * Estimate the liquidation price of a new isolated position on `market`
443
451
  * using the venue's margin model. A preview helper — for existing
444
452
  * positions, prefer `Position.liquidationPrice` from the venue. Pure —
445
453
  * does no I/O.
446
454
  *
455
+ * Numbers, in and out, on purpose: this is a display-tier estimate that
456
+ * feeds a screen, not a wire amount. It is not a `snap*` method and must
457
+ * not be converted to {@link DecimalString}.
458
+ *
447
459
  * @returns The estimated liquidation price, or `undefined` when the venue's
448
460
  * model cannot be evaluated client-side (degenerate inputs, or `market`
449
461
  * lacks the margin metadata the model needs).
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/types/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/types/provider.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,12 @@ export interface ProviderWithdrawableBalance {
13
13
  route: WithdrawalRoute;
14
14
  /** Withdrawable amount in the asset's own units. Always greater than zero. */
15
15
  available: DecimalString;
16
+ /**
17
+ * Largest `amount` the row can fund: `available` when the fee is deducted
18
+ * from the amount or absent; `available − withdrawalFee` floored at zero
19
+ * when the venue charges the fee on top (`isFeeDeducted === false`).
20
+ */
21
+ max: DecimalString;
16
22
  /**
17
23
  * Flat venue fee on a withdrawal from this row, in the asset's own units.
18
24
  * Absent when the venue publishes no fee for the asset. The client rejects
@@ -38,6 +44,12 @@ export interface WithdrawableBalance {
38
44
  route: WithdrawalRoute;
39
45
  /** Withdrawable amount in the asset's own units. */
40
46
  available: DecimalString;
47
+ /**
48
+ * Largest `amount` the row can fund: `available` when the fee is deducted
49
+ * from the amount or absent; `available − withdrawalFee` floored at zero
50
+ * when the venue charges the fee on top (`isFeeDeducted === false`).
51
+ */
52
+ max: DecimalString;
41
53
  /**
42
54
  * Flat venue fee on a withdrawal from this row, in the asset's own units.
43
55
  * Absent when the venue publishes no fee for the asset. With
@@ -1 +1 @@
1
- {"version":3,"file":"withdrawal.d.ts","sourceRoot":"","sources":["../../../src/types/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,KAAK,EACL,aAAa,EACb,eAAe,EAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,YAAY,EAAE,eAAe,EAAE,CAAA;AAE/B;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,eAAe,CAAA;IACtB,8EAA8E;IAC9E,SAAS,EAAE,aAAa,CAAA;IACxB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,eAAe,CAAA;IACtB,oDAAoD;IACpD,SAAS,EAAE,aAAa,CAAA;IACxB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,eAAe,CAAA;IACrB,qEAAqE;IACrE,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,yBAAyB,CAAA"}
1
+ {"version":3,"file":"withdrawal.d.ts","sourceRoot":"","sources":["../../../src/types/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,KAAK,EACL,aAAa,EACb,eAAe,EAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,YAAY,EAAE,eAAe,EAAE,CAAA;AAE/B;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,eAAe,CAAA;IACtB,8EAA8E;IAC9E,SAAS,EAAE,aAAa,CAAA;IACxB;;;;OAIG;IACH,GAAG,EAAE,aAAa,CAAA;IAClB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,eAAe,CAAA;IACtB,oDAAoD;IACpD,SAAS,EAAE,aAAa,CAAA;IACxB;;;;OAIG;IACH,GAAG,EAAE,aAAa,CAAA;IAClB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,OAAO,CAAA;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,eAAe,CAAA;IACrB,qEAAqE;IACrE,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,yBAAyB,CAAA"}
@@ -1,11 +1,5 @@
1
1
  import type { Order, RegularOrder, TriggerOrder, TwapOrder } from '@lifi/perps-types';
2
- import { FillClassification, OrderSide, OrderStatus, TriggerCondition } from '@lifi/perps-types';
3
- /**
4
- * Re-exported fill taxonomy used by {@link classifyFillFromPosition}.
5
- *
6
- * @public
7
- */
8
- export { FillClassification };
2
+ import { OrderSide, OrderStatus, TriggerCondition } from '@lifi/perps-types';
9
3
  /**
10
4
  * Check if an open order is a Take Profit trigger order.
11
5
  * @public
@@ -37,11 +31,4 @@ export declare const ACTIVE_ORDER_STATUSES: ReadonlySet<OrderStatus>;
37
31
  * @public
38
32
  */
39
33
  export declare function isActiveOrderStatus(status: OrderStatus): boolean;
40
- /**
41
- * Classify a fill as open or close based on realizedPnl.
42
- * @deprecated Use `Fill.classification` instead — it uses startPosition
43
- * for accurate open/increase/reduce/close/reverse classification.
44
- * @public
45
- */
46
- export declare function classifyFill(side: OrderSide, realizedPnl: string | null | undefined): FillClassification;
47
34
  //# sourceMappingURL=orderClassification.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orderClassification.d.ts","sourceRoot":"","sources":["../../../src/utils/orderClassification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,SAAS,EACV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EAEX,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAG1B;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAY7B;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAErE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAEnE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAE/D;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,YAAY,CAElE;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,YAAY,CAElE;AAED,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,SAAS,CAE5D;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,EAC1B,IAAI,EAAE,SAAS,GACd,gBAAgB,CAKlB;AAED,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,WAAW,CAMzD,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACrC,kBAAkB,CAUpB"}
1
+ {"version":3,"file":"orderClassification.d.ts","sourceRoot":"","sources":["../../../src/utils/orderClassification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,SAAS,EACV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,SAAS,EACT,WAAW,EAEX,gBAAgB,EACjB,MAAM,mBAAmB,CAAA;AAY1B;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAErE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAEnE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,OAAO,CAE/D;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,YAAY,CAElE;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,YAAY,CAElE;AAED,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,SAAS,CAE5D;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,EAC1B,IAAI,EAAE,SAAS,GACd,gBAAgB,CAKlB;AAED,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,WAAW,CAMzD,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAEhE"}
@@ -1,11 +1,4 @@
1
- import { FillClassification, OrderSide, OrderStatus, OrderType, TriggerCondition, } from '@lifi/perps-types';
2
- import { stringToFloat } from './parse.js';
3
- /**
4
- * Re-exported fill taxonomy used by {@link classifyFillFromPosition}.
5
- *
6
- * @public
7
- */
8
- export { FillClassification };
1
+ import { OrderSide, OrderStatus, OrderType, TriggerCondition, } from '@lifi/perps-types';
9
2
  const TP_TYPES = new Set([
10
3
  OrderType.TAKE_PROFIT_MARKET,
11
4
  OrderType.TAKE_PROFIT_LIMIT,
@@ -70,21 +63,4 @@ export const ACTIVE_ORDER_STATUSES = new Set([
70
63
  export function isActiveOrderStatus(status) {
71
64
  return ACTIVE_ORDER_STATUSES.has(status);
72
65
  }
73
- /**
74
- * Classify a fill as open or close based on realizedPnl.
75
- * @deprecated Use `Fill.classification` instead — it uses startPosition
76
- * for accurate open/increase/reduce/close/reverse classification.
77
- * @public
78
- */
79
- export function classifyFill(side, realizedPnl) {
80
- const isClose = realizedPnl != null && stringToFloat(realizedPnl) !== 0;
81
- if (side === OrderSide.BUY) {
82
- return isClose
83
- ? FillClassification.CLOSED_SHORT
84
- : FillClassification.OPENED_LONG;
85
- }
86
- return isClose
87
- ? FillClassification.CLOSED_LONG
88
- : FillClassification.OPENED_SHORT;
89
- }
90
66
  //# sourceMappingURL=orderClassification.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"orderClassification.js","sourceRoot":"","sources":["../../../src/utils/orderClassification.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,SAAS,EACT,gBAAgB,GACjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAY;IAClC,SAAS,CAAC,kBAAkB;IAC5B,SAAS,CAAC,iBAAiB;CAC5B,CAAC,CAAA;AAEF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAY;IAClC,SAAS,CAAC,WAAW;IACrB,SAAS,CAAC,UAAU;CACrB,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA0B;IAC1D,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAA0B;IACxD,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAA0B;IACpD,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC7D,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAA;AAC1E,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,WAAW,CAAC,KAAY;IACtC,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAA;AACtC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,mBAAmB,CACjC,IAA0B,EAC1B,IAAe;IAEf,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACrC,OAAO,UAAU,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC;QAC7C,CAAC,CAAC,gBAAgB,CAAC,KAAK;QACxB,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAA;AAC5B,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,qBAAqB,GAA6B,IAAI,GAAG,CAAC;IACrE,WAAW,CAAC,IAAI;IAChB,WAAW,CAAC,OAAO;IACnB,WAAW,CAAC,QAAQ;IACpB,WAAW,CAAC,gBAAgB;IAC5B,WAAW,CAAC,SAAS;CACtB,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACrD,OAAO,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAe,EACf,WAAsC;IAEtC,MAAM,OAAO,GAAG,WAAW,IAAI,IAAI,IAAI,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IACvE,IAAI,IAAI,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,OAAO;YACZ,CAAC,CAAC,kBAAkB,CAAC,YAAY;YACjC,CAAC,CAAC,kBAAkB,CAAC,WAAW,CAAA;IACpC,CAAC;IACD,OAAO,OAAO;QACZ,CAAC,CAAC,kBAAkB,CAAC,WAAW;QAChC,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAA;AACrC,CAAC"}
1
+ {"version":3,"file":"orderClassification.js","sourceRoot":"","sources":["../../../src/utils/orderClassification.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,SAAS,EACT,WAAW,EACX,SAAS,EACT,gBAAgB,GACjB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAY;IAClC,SAAS,CAAC,kBAAkB;IAC5B,SAAS,CAAC,iBAAiB;CAC5B,CAAC,CAAA;AAEF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAY;IAClC,SAAS,CAAC,WAAW;IACrB,SAAS,CAAC,UAAU;CACrB,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAA0B;IAC1D,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAA0B;IACxD,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAA0B;IACpD,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC7D,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAA;AAC1E,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,WAAW,CAAC,KAAY;IACtC,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAA;AACtC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,mBAAmB,CACjC,IAA0B,EAC1B,IAAe;IAEf,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACrC,OAAO,UAAU,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC;QAC7C,CAAC,CAAC,gBAAgB,CAAC,KAAK;QACxB,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAA;AAC5B,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,qBAAqB,GAA6B,IAAI,GAAG,CAAC;IACrE,WAAW,CAAC,IAAI;IAChB,WAAW,CAAC,OAAO;IACnB,WAAW,CAAC,QAAQ;IACpB,WAAW,CAAC,gBAAgB;IAC5B,WAAW,CAAC,SAAS;CACtB,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACrD,OAAO,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAC1C,CAAC"}
@@ -9,5 +9,5 @@ export declare const name = "@lifi/perps-sdk";
9
9
  *
10
10
  * @public
11
11
  */
12
- export declare const version = "20.1.1";
12
+ export declare const version = "21.1.0";
13
13
  //# sourceMappingURL=version.d.ts.map
@@ -9,5 +9,5 @@ export const name = '@lifi/perps-sdk';
9
9
  *
10
10
  * @public
11
11
  */
12
- export const version = '20.1.1';
12
+ export const version = '21.1.0';
13
13
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,55 @@
1
+ import { type DecimalString, type Market } from '@lifi/perps-types';
2
+ import type { PerpsSDKClient } from '../types/provider.js';
3
+ /** @public */
4
+ export interface OrderAmountsInput {
5
+ sdk: PerpsSDKClient;
6
+ market: Market;
7
+ /** The field the user typed; the other two are calculated from it. */
8
+ held: 'margin' | 'size' | 'notional';
9
+ amount: DecimalString;
10
+ leverage: number;
11
+ price: DecimalString;
12
+ /** Decimals for the quote-asset amounts (margin, notional). Default 2. */
13
+ quoteDecimals?: number;
14
+ }
15
+ /** @public */
16
+ export interface OrderAmounts {
17
+ /**
18
+ * On the `quoteDecimals` grid: rounded up when derived, so it funds `size`
19
+ * at the requested leverage, and truncated when the user holds it.
20
+ */
21
+ margin: DecimalString;
22
+ /** Snapped onto the venue lot grid. */
23
+ size: DecimalString;
24
+ /** Truncated to `quoteDecimals`. */
25
+ notional: DecimalString;
26
+ }
27
+ /**
28
+ * The three order-entry amounts, derived from whichever one the user typed.
29
+ *
30
+ * The held field is normalised first — truncated to `quoteDecimals` for a
31
+ * margin or notional, snapped onto the venue lot grid for a size — and the
32
+ * other two are then derived from that normalised value, so the three agree
33
+ * with each other rather than with an input the user cannot see.
34
+ *
35
+ * Rounding is directional, so the result always funds itself:
36
+ * `size × price ≤ margin × leverage`. A derived size truncates onto the lot
37
+ * grid and a derived notional truncates onto the quote grid, but a derived
38
+ * margin rounds **up** onto the quote grid, because it is the one amount that
39
+ * has to cover the others rather than cap them.
40
+ *
41
+ * Formulas: `size = margin × leverage ÷ price`,
42
+ * `margin = size × price ÷ leverage`, `notional = size × price`
43
+ * (or `margin × leverage` when the margin is held).
44
+ *
45
+ * @returns `null` when `amount` or `price` is not a positive decimal string,
46
+ * when `leverage` is not a positive finite number, or when the venue and
47
+ * quote grids snap the result to a non-positive amount — a sub-lot size or
48
+ * a sub-cent quote amount describes no order a venue can take.
49
+ * @throws {PerpsError} `ValidationError` when `quoteDecimals` is not a
50
+ * non-negative integer, or `SDKError` when `market.providerId` names no
51
+ * registered provider plugin.
52
+ * @public
53
+ */
54
+ export declare function calculateOrderAmounts(input: OrderAmountsInput): OrderAmounts | null;
55
+ //# sourceMappingURL=orderAmounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderAmounts.d.ts","sourceRoot":"","sources":["../../../src/wire/orderAmounts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,MAAM,EAEZ,MAAM,mBAAmB,CAAA;AAI1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG1D,cAAc;AACd,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAA;IACpC,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,aAAa,CAAA;IACpB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,cAAc;AACd,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,MAAM,EAAE,aAAa,CAAA;IACrB,uCAAuC;IACvC,IAAI,EAAE,aAAa,CAAA;IACnB,oCAAoC;IACpC,QAAQ,EAAE,aAAa,CAAA;CACxB;AAqDD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,GACvB,YAAY,GAAG,IAAI,CAqDrB"}
@@ -0,0 +1,114 @@
1
+ import { isDecimalString, PerpsErrorCode, } from '@lifi/perps-types';
2
+ import Big from 'big.js';
3
+ import { TruncBig } from '../decimal/big.js';
4
+ import { PerpsError } from '../errors/PerpsError.js';
5
+ import { snapOrderSize } from './snap.js';
6
+ const DEFAULT_QUOTE_DECIMALS = 2;
7
+ const TEN = new Big(10);
8
+ /** Round a quote amount down onto its decimal grid, with no trailing zeros. */
9
+ function quoteAmount(value, decimals) {
10
+ const truncated = value.round(decimals, Big.roundDown);
11
+ return truncated.eq(0) ? '0' : truncated.toFixed();
12
+ }
13
+ /**
14
+ * The smallest margin on the `decimals` grid that funds `notional` at
15
+ * `leverage`, so `margin × leverage ≥ notional` holds. The one derived amount
16
+ * that rounds up: a margin rounded down under-funds the size it backs.
17
+ *
18
+ * The ceiling is exact: the remainder decides the carry, so the result never
19
+ * leans on a fixed decimal-place limit the way `div` then `round` would.
20
+ */
21
+ function coveringMargin(notional, leverage, decimals) {
22
+ const scale = TEN.pow(decimals);
23
+ const scaled = notional.times(scale);
24
+ const remainder = scaled.mod(leverage);
25
+ const whole = scaled.minus(remainder).div(leverage);
26
+ const covering = remainder.eq(0) ? whole : whole.plus(1);
27
+ return covering.eq(0) ? '0' : covering.div(scale).toFixed();
28
+ }
29
+ /**
30
+ * An order needs three positive amounts. A grid that snaps any of them to
31
+ * zero — a sub-lot size, a sub-cent quote amount — describes no order a venue
32
+ * can take, so the caller gets `null` instead of a result it has to re-check.
33
+ */
34
+ function executable(amounts) {
35
+ const positive = new Big(amounts.size).gt(0) &&
36
+ new Big(amounts.margin).gt(0) &&
37
+ new Big(amounts.notional).gt(0);
38
+ return positive ? amounts : null;
39
+ }
40
+ function positiveDecimal(value) {
41
+ if (!isDecimalString(value)) {
42
+ return null;
43
+ }
44
+ const parsed = new TruncBig(value);
45
+ return parsed.gt(0) ? parsed : null;
46
+ }
47
+ /**
48
+ * The three order-entry amounts, derived from whichever one the user typed.
49
+ *
50
+ * The held field is normalised first — truncated to `quoteDecimals` for a
51
+ * margin or notional, snapped onto the venue lot grid for a size — and the
52
+ * other two are then derived from that normalised value, so the three agree
53
+ * with each other rather than with an input the user cannot see.
54
+ *
55
+ * Rounding is directional, so the result always funds itself:
56
+ * `size × price ≤ margin × leverage`. A derived size truncates onto the lot
57
+ * grid and a derived notional truncates onto the quote grid, but a derived
58
+ * margin rounds **up** onto the quote grid, because it is the one amount that
59
+ * has to cover the others rather than cap them.
60
+ *
61
+ * Formulas: `size = margin × leverage ÷ price`,
62
+ * `margin = size × price ÷ leverage`, `notional = size × price`
63
+ * (or `margin × leverage` when the margin is held).
64
+ *
65
+ * @returns `null` when `amount` or `price` is not a positive decimal string,
66
+ * when `leverage` is not a positive finite number, or when the venue and
67
+ * quote grids snap the result to a non-positive amount — a sub-lot size or
68
+ * a sub-cent quote amount describes no order a venue can take.
69
+ * @throws {PerpsError} `ValidationError` when `quoteDecimals` is not a
70
+ * non-negative integer, or `SDKError` when `market.providerId` names no
71
+ * registered provider plugin.
72
+ * @public
73
+ */
74
+ export function calculateOrderAmounts(input) {
75
+ const { sdk, market, held, leverage, quoteDecimals = DEFAULT_QUOTE_DECIMALS, } = input;
76
+ if (!Number.isInteger(quoteDecimals) || quoteDecimals < 0) {
77
+ throw new PerpsError(PerpsErrorCode.ValidationError, `Invalid quoteDecimals for order amounts: ${quoteDecimals}`);
78
+ }
79
+ const amount = positiveDecimal(input.amount);
80
+ const price = positiveDecimal(input.price);
81
+ if (amount === null ||
82
+ price === null ||
83
+ !Number.isFinite(leverage) ||
84
+ leverage <= 0) {
85
+ return null;
86
+ }
87
+ const leverageFactor = new TruncBig(leverage);
88
+ if (held === 'size') {
89
+ const size = snapOrderSize(sdk, market, amount.toFixed());
90
+ const notional = new TruncBig(size).times(price);
91
+ return executable({
92
+ margin: coveringMargin(notional, leverageFactor, quoteDecimals),
93
+ size,
94
+ notional: quoteAmount(notional, quoteDecimals),
95
+ });
96
+ }
97
+ if (held === 'notional') {
98
+ const notional = quoteAmount(amount, quoteDecimals);
99
+ const exact = new TruncBig(notional);
100
+ return executable({
101
+ margin: coveringMargin(exact, leverageFactor, quoteDecimals),
102
+ size: snapOrderSize(sdk, market, exact.div(price).toFixed()),
103
+ notional,
104
+ });
105
+ }
106
+ const margin = quoteAmount(amount, quoteDecimals);
107
+ const notional = new TruncBig(margin).times(leverage);
108
+ return executable({
109
+ margin,
110
+ size: snapOrderSize(sdk, market, notional.div(price).toFixed()),
111
+ notional: quoteAmount(notional, quoteDecimals),
112
+ });
113
+ }
114
+ //# sourceMappingURL=orderAmounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderAmounts.js","sourceRoot":"","sources":["../../../src/wire/orderAmounts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type DecimalString } from '@lifi/perps-types';
2
+ /** @public */
3
+ export interface RefuelAmountInput {
4
+ /** USD value of the gas the route recommends. */
5
+ gasUsd: DecimalString;
6
+ /** USD price of one whole source token. */
7
+ priceUsd: DecimalString;
8
+ /** Decimals of the source token, which the result is spelled to exactly. */
9
+ decimals: number;
10
+ }
11
+ /**
12
+ * Source-token amount whose USD value covers `gasUsd`, rounded **up** onto
13
+ * the token's decimal grid so a refuel never lands short of the
14
+ * recommendation. The result keeps trailing zeros to `decimals`, so it seeds
15
+ * an amount input at the token's own precision.
16
+ *
17
+ * The quotient does not terminate for most prices, which is why this is a
18
+ * big.js primitive: an 18-decimal token needs a ceiling at 10^-18, far past
19
+ * what a `number` can carry.
20
+ *
21
+ * @returns `undefined` when `gasUsd` or `priceUsd` is not greater than zero,
22
+ * which is a route with nothing to refuel rather than a failure.
23
+ * @throws {PerpsError} `ValidationError` when `gasUsd` or `priceUsd` is not a
24
+ * {@link DecimalString}, or when `decimals` is not a non-negative integer.
25
+ * @public
26
+ */
27
+ export declare function calculateRefuelAmount(input: RefuelAmountInput): DecimalString | undefined;
28
+ //# sourceMappingURL=refuel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refuel.d.ts","sourceRoot":"","sources":["../../../src/wire/refuel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,mBAAmB,CAAA;AAKtE,cAAc;AACd,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,MAAM,EAAE,aAAa,CAAA;IACrB,2CAA2C;IAC3C,QAAQ,EAAE,aAAa,CAAA;IACvB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,GACvB,aAAa,GAAG,SAAS,CAiB3B"}
@@ -0,0 +1,36 @@
1
+ import { PerpsErrorCode } from '@lifi/perps-types';
2
+ import { DivBig } from '../decimal/big.js';
3
+ import { PerpsError } from '../errors/PerpsError.js';
4
+ import { requireDecimal } from './requireDecimal.js';
5
+ /**
6
+ * Source-token amount whose USD value covers `gasUsd`, rounded **up** onto
7
+ * the token's decimal grid so a refuel never lands short of the
8
+ * recommendation. The result keeps trailing zeros to `decimals`, so it seeds
9
+ * an amount input at the token's own precision.
10
+ *
11
+ * The quotient does not terminate for most prices, which is why this is a
12
+ * big.js primitive: an 18-decimal token needs a ceiling at 10^-18, far past
13
+ * what a `number` can carry.
14
+ *
15
+ * @returns `undefined` when `gasUsd` or `priceUsd` is not greater than zero,
16
+ * which is a route with nothing to refuel rather than a failure.
17
+ * @throws {PerpsError} `ValidationError` when `gasUsd` or `priceUsd` is not a
18
+ * {@link DecimalString}, or when `decimals` is not a non-negative integer.
19
+ * @public
20
+ */
21
+ export function calculateRefuelAmount(input) {
22
+ const { decimals } = input;
23
+ if (!Number.isInteger(decimals) || decimals < 0) {
24
+ throw new PerpsError(PerpsErrorCode.ValidationError, `Invalid \`decimals\` for a refuel amount: ${decimals}`);
25
+ }
26
+ const gasUsd = requireDecimal(input.gasUsd, 'gasUsd');
27
+ const priceUsd = requireDecimal(input.priceUsd, 'priceUsd');
28
+ if (!gasUsd.gt(0) || !priceUsd.gt(0)) {
29
+ return undefined;
30
+ }
31
+ return new DivBig(gasUsd)
32
+ .div(priceUsd)
33
+ .round(decimals, DivBig.roundUp)
34
+ .toFixed(decimals);
35
+ }
36
+ //# sourceMappingURL=refuel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refuel.js","sourceRoot":"","sources":["../../../src/wire/refuel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAYpD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAwB;IAExB,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,eAAe,EAC9B,6CAA6C,QAAQ,EAAE,CACxD,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACrD,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IAC3D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC;SACtB,GAAG,CAAC,QAAQ,CAAC;SACb,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;SAC/B,OAAO,CAAC,QAAQ,CAAC,CAAA;AACtB,CAAC"}