@lifi/perps-sdk 23.1.0 → 25.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/README.md +102 -56
  2. package/dist/cjs/client/PerpsClient.d.ts +3 -2
  3. package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
  4. package/dist/cjs/client/PerpsClient.js +16 -9
  5. package/dist/cjs/client/PerpsClient.js.map +1 -1
  6. package/dist/cjs/decimal/arithmetic.d.ts +15 -0
  7. package/dist/cjs/decimal/arithmetic.d.ts.map +1 -0
  8. package/dist/cjs/decimal/arithmetic.js +53 -0
  9. package/dist/cjs/decimal/arithmetic.js.map +1 -0
  10. package/dist/cjs/decimal/big.d.ts +0 -1
  11. package/dist/cjs/decimal/big.d.ts.map +1 -1
  12. package/dist/cjs/decimal/big.js +0 -4
  13. package/dist/cjs/decimal/big.js.map +1 -1
  14. package/dist/cjs/decimal/compare.d.ts +6 -2
  15. package/dist/cjs/decimal/compare.d.ts.map +1 -1
  16. package/dist/cjs/decimal/compare.js +15 -2
  17. package/dist/cjs/decimal/compare.js.map +1 -1
  18. package/dist/cjs/decimal/convert.d.ts +10 -6
  19. package/dist/cjs/decimal/convert.d.ts.map +1 -1
  20. package/dist/cjs/decimal/convert.js +34 -21
  21. package/dist/cjs/decimal/convert.js.map +1 -1
  22. package/dist/cjs/decimal/decimalStringToBig.d.ts +5 -0
  23. package/dist/cjs/decimal/decimalStringToBig.d.ts.map +1 -0
  24. package/dist/cjs/decimal/decimalStringToBig.js +25 -0
  25. package/dist/cjs/decimal/decimalStringToBig.js.map +1 -0
  26. package/dist/cjs/decimal/format.d.ts.map +1 -1
  27. package/dist/cjs/decimal/format.js +70 -52
  28. package/dist/cjs/decimal/format.js.map +1 -1
  29. package/dist/cjs/decimal/parse.d.ts +5 -4
  30. package/dist/cjs/decimal/parse.d.ts.map +1 -1
  31. package/dist/cjs/decimal/parse.js +43 -25
  32. package/dist/cjs/decimal/parse.js.map +1 -1
  33. package/dist/cjs/errors/invalidInput.d.ts +3 -0
  34. package/dist/cjs/errors/invalidInput.d.ts.map +1 -0
  35. package/dist/cjs/errors/invalidInput.js +9 -0
  36. package/dist/cjs/errors/invalidInput.js.map +1 -0
  37. package/dist/cjs/index.d.ts +15 -12
  38. package/dist/cjs/index.d.ts.map +1 -1
  39. package/dist/cjs/index.js +69 -9
  40. package/dist/cjs/index.js.map +1 -1
  41. package/dist/cjs/math/fills.d.ts +1 -1
  42. package/dist/cjs/math/fills.d.ts.map +1 -1
  43. package/dist/cjs/math/fills.js +28 -13
  44. package/dist/cjs/math/fills.js.map +1 -1
  45. package/dist/cjs/math/order.d.ts +27 -16
  46. package/dist/cjs/math/order.d.ts.map +1 -1
  47. package/dist/cjs/math/order.js +131 -134
  48. package/dist/cjs/math/order.js.map +1 -1
  49. package/dist/cjs/math/position.d.ts +85 -35
  50. package/dist/cjs/math/position.d.ts.map +1 -1
  51. package/dist/cjs/math/position.js +93 -94
  52. package/dist/cjs/math/position.js.map +1 -1
  53. package/dist/cjs/services/getGasRecommendation.js +1 -1
  54. package/dist/cjs/services/getGasRecommendation.js.map +1 -1
  55. package/dist/cjs/services/getQuote.d.ts +1 -1
  56. package/dist/cjs/services/resolveSubscribeQuote.d.ts.map +1 -1
  57. package/dist/cjs/services/resolveSubscribeQuote.js +3 -2
  58. package/dist/cjs/services/resolveSubscribeQuote.js.map +1 -1
  59. package/dist/cjs/transport/request.d.ts +1 -0
  60. package/dist/cjs/transport/request.d.ts.map +1 -1
  61. package/dist/cjs/transport/request.js +2 -2
  62. package/dist/cjs/transport/request.js.map +1 -1
  63. package/dist/cjs/types/api.d.ts +4 -0
  64. package/dist/cjs/types/api.d.ts.map +1 -1
  65. package/dist/cjs/types/provider.d.ts +9 -5
  66. package/dist/cjs/types/provider.d.ts.map +1 -1
  67. package/dist/cjs/types/withdrawal.d.ts +12 -4
  68. package/dist/cjs/types/withdrawal.d.ts.map +1 -1
  69. package/dist/cjs/utils/createSafeFunction.d.ts +2 -0
  70. package/dist/cjs/utils/createSafeFunction.d.ts.map +1 -0
  71. package/dist/cjs/utils/createSafeFunction.js +15 -0
  72. package/dist/cjs/utils/createSafeFunction.js.map +1 -0
  73. package/dist/cjs/utils/timestampToIsoString.d.ts +3 -0
  74. package/dist/cjs/utils/timestampToIsoString.d.ts.map +1 -0
  75. package/dist/cjs/utils/timestampToIsoString.js +16 -0
  76. package/dist/cjs/utils/timestampToIsoString.js.map +1 -0
  77. package/dist/cjs/utils/warnOnce.d.ts +6 -0
  78. package/dist/cjs/utils/warnOnce.d.ts.map +1 -1
  79. package/dist/cjs/utils/warnOnce.js +19 -1
  80. package/dist/cjs/utils/warnOnce.js.map +1 -1
  81. package/dist/cjs/version.d.ts +1 -1
  82. package/dist/cjs/version.js +1 -1
  83. package/dist/cjs/websocket/PerpsWsClient.d.ts +2 -0
  84. package/dist/cjs/websocket/PerpsWsClient.d.ts.map +1 -1
  85. package/dist/cjs/websocket/PerpsWsClient.js +14 -1
  86. package/dist/cjs/websocket/PerpsWsClient.js.map +1 -1
  87. package/dist/cjs/websocket/wsLog.d.ts +2 -0
  88. package/dist/cjs/websocket/wsLog.d.ts.map +1 -1
  89. package/dist/cjs/websocket/wsLog.js +9 -0
  90. package/dist/cjs/websocket/wsLog.js.map +1 -1
  91. package/dist/cjs/wire/orderAmounts.d.ts +3 -2
  92. package/dist/cjs/wire/orderAmounts.d.ts.map +1 -1
  93. package/dist/cjs/wire/orderAmounts.js +22 -21
  94. package/dist/cjs/wire/orderAmounts.js.map +1 -1
  95. package/dist/cjs/wire/refuel.d.ts +4 -1
  96. package/dist/cjs/wire/refuel.d.ts.map +1 -1
  97. package/dist/cjs/wire/refuel.js +23 -6
  98. package/dist/cjs/wire/refuel.js.map +1 -1
  99. package/dist/cjs/wire/transferable.js +3 -3
  100. package/dist/cjs/wire/transferable.js.map +1 -1
  101. package/dist/cjs/wire/withdraw.d.ts.map +1 -1
  102. package/dist/cjs/wire/withdraw.js +3 -3
  103. package/dist/cjs/wire/withdraw.js.map +1 -1
  104. package/dist/esm/client/PerpsClient.d.ts +17 -4
  105. package/dist/esm/client/PerpsClient.d.ts.map +1 -1
  106. package/dist/esm/client/PerpsClient.js +30 -8
  107. package/dist/esm/client/PerpsClient.js.map +1 -1
  108. package/dist/esm/decimal/arithmetic.d.ts +98 -0
  109. package/dist/esm/decimal/arithmetic.d.ts.map +1 -0
  110. package/dist/esm/decimal/arithmetic.js +126 -0
  111. package/dist/esm/decimal/arithmetic.js.map +1 -0
  112. package/dist/esm/decimal/big.d.ts +0 -2
  113. package/dist/esm/decimal/big.d.ts.map +1 -1
  114. package/dist/esm/decimal/big.js +0 -4
  115. package/dist/esm/decimal/big.js.map +1 -1
  116. package/dist/esm/decimal/compare.d.ts +40 -6
  117. package/dist/esm/decimal/compare.d.ts.map +1 -1
  118. package/dist/esm/decimal/compare.js +46 -6
  119. package/dist/esm/decimal/compare.js.map +1 -1
  120. package/dist/esm/decimal/convert.d.ts +50 -36
  121. package/dist/esm/decimal/convert.d.ts.map +1 -1
  122. package/dist/esm/decimal/convert.js +64 -42
  123. package/dist/esm/decimal/convert.js.map +1 -1
  124. package/dist/esm/decimal/decimalStringToBig.d.ts +25 -0
  125. package/dist/esm/decimal/decimalStringToBig.d.ts.map +1 -0
  126. package/dist/esm/decimal/decimalStringToBig.js +37 -0
  127. package/dist/esm/decimal/decimalStringToBig.js.map +1 -0
  128. package/dist/esm/decimal/format.d.ts +4 -1
  129. package/dist/esm/decimal/format.d.ts.map +1 -1
  130. package/dist/esm/decimal/format.js +71 -70
  131. package/dist/esm/decimal/format.js.map +1 -1
  132. package/dist/esm/decimal/parse.d.ts +29 -13
  133. package/dist/esm/decimal/parse.d.ts.map +1 -1
  134. package/dist/esm/decimal/parse.js +61 -44
  135. package/dist/esm/decimal/parse.js.map +1 -1
  136. package/dist/esm/errors/invalidInput.d.ts +4 -0
  137. package/dist/esm/errors/invalidInput.d.ts.map +1 -0
  138. package/dist/esm/errors/invalidInput.js +7 -0
  139. package/dist/esm/errors/invalidInput.js.map +1 -0
  140. package/dist/esm/index.d.ts +15 -12
  141. package/dist/esm/index.d.ts.map +1 -1
  142. package/dist/esm/index.js +11 -8
  143. package/dist/esm/index.js.map +1 -1
  144. package/dist/esm/math/fills.d.ts +6 -3
  145. package/dist/esm/math/fills.d.ts.map +1 -1
  146. package/dist/esm/math/fills.js +31 -16
  147. package/dist/esm/math/fills.js.map +1 -1
  148. package/dist/esm/math/order.d.ts +84 -66
  149. package/dist/esm/math/order.d.ts.map +1 -1
  150. package/dist/esm/math/order.js +178 -175
  151. package/dist/esm/math/order.js.map +1 -1
  152. package/dist/esm/math/position.d.ts +155 -98
  153. package/dist/esm/math/position.d.ts.map +1 -1
  154. package/dist/esm/math/position.js +160 -156
  155. package/dist/esm/math/position.js.map +1 -1
  156. package/dist/esm/services/getGasRecommendation.js +1 -1
  157. package/dist/esm/services/getGasRecommendation.js.map +1 -1
  158. package/dist/esm/services/getQuote.d.ts +2 -2
  159. package/dist/esm/services/getQuote.js +1 -1
  160. package/dist/esm/services/resolveSubscribeQuote.d.ts +1 -1
  161. package/dist/esm/services/resolveSubscribeQuote.d.ts.map +1 -1
  162. package/dist/esm/services/resolveSubscribeQuote.js +4 -3
  163. package/dist/esm/services/resolveSubscribeQuote.js.map +1 -1
  164. package/dist/esm/transport/request.d.ts +5 -0
  165. package/dist/esm/transport/request.d.ts.map +1 -1
  166. package/dist/esm/transport/request.js +2 -2
  167. package/dist/esm/transport/request.js.map +1 -1
  168. package/dist/esm/types/api.d.ts +9 -0
  169. package/dist/esm/types/api.d.ts.map +1 -1
  170. package/dist/esm/types/provider.d.ts +30 -16
  171. package/dist/esm/types/provider.d.ts.map +1 -1
  172. package/dist/esm/types/withdrawal.d.ts +32 -7
  173. package/dist/esm/types/withdrawal.d.ts.map +1 -1
  174. package/dist/esm/utils/createSafeFunction.d.ts +9 -0
  175. package/dist/esm/utils/createSafeFunction.d.ts.map +1 -0
  176. package/dist/esm/utils/createSafeFunction.js +19 -0
  177. package/dist/esm/utils/createSafeFunction.js.map +1 -0
  178. package/dist/esm/utils/timestampToIsoString.d.ts +15 -0
  179. package/dist/esm/utils/timestampToIsoString.d.ts.map +1 -0
  180. package/dist/esm/utils/timestampToIsoString.js +24 -0
  181. package/dist/esm/utils/timestampToIsoString.js.map +1 -0
  182. package/dist/esm/utils/warnOnce.d.ts +27 -0
  183. package/dist/esm/utils/warnOnce.d.ts.map +1 -1
  184. package/dist/esm/utils/warnOnce.js +36 -0
  185. package/dist/esm/utils/warnOnce.js.map +1 -1
  186. package/dist/esm/version.d.ts +1 -1
  187. package/dist/esm/version.js +1 -1
  188. package/dist/esm/websocket/PerpsWsClient.d.ts +7 -0
  189. package/dist/esm/websocket/PerpsWsClient.d.ts.map +1 -1
  190. package/dist/esm/websocket/PerpsWsClient.js +20 -2
  191. package/dist/esm/websocket/PerpsWsClient.js.map +1 -1
  192. package/dist/esm/websocket/wsLog.d.ts +12 -0
  193. package/dist/esm/websocket/wsLog.d.ts.map +1 -1
  194. package/dist/esm/websocket/wsLog.js +19 -0
  195. package/dist/esm/websocket/wsLog.js.map +1 -1
  196. package/dist/esm/wire/orderAmounts.d.ts +9 -7
  197. package/dist/esm/wire/orderAmounts.d.ts.map +1 -1
  198. package/dist/esm/wire/orderAmounts.js +24 -20
  199. package/dist/esm/wire/orderAmounts.js.map +1 -1
  200. package/dist/esm/wire/refuel.d.ts +24 -14
  201. package/dist/esm/wire/refuel.d.ts.map +1 -1
  202. package/dist/esm/wire/refuel.js +38 -17
  203. package/dist/esm/wire/refuel.js.map +1 -1
  204. package/dist/esm/wire/transferable.d.ts +2 -2
  205. package/dist/esm/wire/transferable.js +5 -5
  206. package/dist/esm/wire/transferable.js.map +1 -1
  207. package/dist/esm/wire/withdraw.d.ts.map +1 -1
  208. package/dist/esm/wire/withdraw.js +3 -3
  209. package/dist/esm/wire/withdraw.js.map +1 -1
  210. package/dist/types/client/PerpsClient.d.ts +17 -4
  211. package/dist/types/client/PerpsClient.d.ts.map +1 -1
  212. package/dist/types/decimal/arithmetic.d.ts +98 -0
  213. package/dist/types/decimal/arithmetic.d.ts.map +1 -0
  214. package/dist/types/decimal/big.d.ts +0 -2
  215. package/dist/types/decimal/big.d.ts.map +1 -1
  216. package/dist/types/decimal/compare.d.ts +40 -6
  217. package/dist/types/decimal/compare.d.ts.map +1 -1
  218. package/dist/types/decimal/convert.d.ts +50 -36
  219. package/dist/types/decimal/convert.d.ts.map +1 -1
  220. package/dist/types/decimal/decimalStringToBig.d.ts +25 -0
  221. package/dist/types/decimal/decimalStringToBig.d.ts.map +1 -0
  222. package/dist/types/decimal/format.d.ts +4 -1
  223. package/dist/types/decimal/format.d.ts.map +1 -1
  224. package/dist/types/decimal/parse.d.ts +29 -13
  225. package/dist/types/decimal/parse.d.ts.map +1 -1
  226. package/dist/types/errors/invalidInput.d.ts +4 -0
  227. package/dist/types/errors/invalidInput.d.ts.map +1 -0
  228. package/dist/types/index.d.ts +15 -12
  229. package/dist/types/index.d.ts.map +1 -1
  230. package/dist/types/math/fills.d.ts +6 -3
  231. package/dist/types/math/fills.d.ts.map +1 -1
  232. package/dist/types/math/order.d.ts +84 -66
  233. package/dist/types/math/order.d.ts.map +1 -1
  234. package/dist/types/math/position.d.ts +155 -98
  235. package/dist/types/math/position.d.ts.map +1 -1
  236. package/dist/types/services/getQuote.d.ts +2 -2
  237. package/dist/types/services/resolveSubscribeQuote.d.ts +1 -1
  238. package/dist/types/services/resolveSubscribeQuote.d.ts.map +1 -1
  239. package/dist/types/transport/request.d.ts +5 -0
  240. package/dist/types/transport/request.d.ts.map +1 -1
  241. package/dist/types/types/api.d.ts +9 -0
  242. package/dist/types/types/api.d.ts.map +1 -1
  243. package/dist/types/types/provider.d.ts +30 -16
  244. package/dist/types/types/provider.d.ts.map +1 -1
  245. package/dist/types/types/withdrawal.d.ts +32 -7
  246. package/dist/types/types/withdrawal.d.ts.map +1 -1
  247. package/dist/types/utils/createSafeFunction.d.ts +9 -0
  248. package/dist/types/utils/createSafeFunction.d.ts.map +1 -0
  249. package/dist/types/utils/timestampToIsoString.d.ts +15 -0
  250. package/dist/types/utils/timestampToIsoString.d.ts.map +1 -0
  251. package/dist/types/utils/warnOnce.d.ts +27 -0
  252. package/dist/types/utils/warnOnce.d.ts.map +1 -1
  253. package/dist/types/version.d.ts +1 -1
  254. package/dist/types/websocket/PerpsWsClient.d.ts +7 -0
  255. package/dist/types/websocket/PerpsWsClient.d.ts.map +1 -1
  256. package/dist/types/websocket/wsLog.d.ts +12 -0
  257. package/dist/types/websocket/wsLog.d.ts.map +1 -1
  258. package/dist/types/wire/orderAmounts.d.ts +9 -7
  259. package/dist/types/wire/orderAmounts.d.ts.map +1 -1
  260. package/dist/types/wire/refuel.d.ts +24 -14
  261. package/dist/types/wire/refuel.d.ts.map +1 -1
  262. package/dist/types/wire/transferable.d.ts +2 -2
  263. package/dist/types/wire/withdraw.d.ts.map +1 -1
  264. package/package.json +2 -2
  265. package/src/client/PerpsClient.ts +48 -10
  266. package/src/decimal/arithmetic.ts +170 -0
  267. package/src/decimal/big.ts +0 -5
  268. package/src/decimal/compare.ts +61 -11
  269. package/src/decimal/convert.ts +105 -63
  270. package/src/decimal/decimalStringToBig.ts +42 -0
  271. package/src/decimal/format.ts +81 -72
  272. package/src/decimal/parse.ts +78 -57
  273. package/src/errors/invalidInput.ts +10 -0
  274. package/src/index.ts +80 -12
  275. package/src/math/fills.ts +32 -17
  276. package/src/math/order.ts +279 -226
  277. package/src/math/position.ts +280 -196
  278. package/src/services/getGasRecommendation.ts +1 -1
  279. package/src/services/getQuote.ts +2 -2
  280. package/src/services/resolveSubscribeQuote.ts +4 -3
  281. package/src/transport/request.ts +7 -2
  282. package/src/types/api.ts +10 -0
  283. package/src/types/provider.ts +39 -16
  284. package/src/types/withdrawal.ts +35 -8
  285. package/src/utils/createSafeFunction.ts +20 -0
  286. package/src/utils/timestampToIsoString.ts +31 -0
  287. package/src/utils/warnOnce.ts +60 -0
  288. package/src/version.ts +1 -1
  289. package/src/websocket/PerpsWsClient.ts +25 -2
  290. package/src/websocket/wsLog.ts +44 -0
  291. package/src/wire/orderAmounts.ts +45 -26
  292. package/src/wire/refuel.ts +56 -20
  293. package/src/wire/transferable.ts +5 -5
  294. package/src/wire/withdraw.ts +3 -5
  295. package/dist/cjs/decimal/requireDecimal.d.ts +0 -4
  296. package/dist/cjs/decimal/requireDecimal.d.ts.map +0 -1
  297. package/dist/cjs/decimal/requireDecimal.js +0 -12
  298. package/dist/cjs/decimal/requireDecimal.js.map +0 -1
  299. package/dist/esm/decimal/requireDecimal.d.ts +0 -5
  300. package/dist/esm/decimal/requireDecimal.d.ts.map +0 -1
  301. package/dist/esm/decimal/requireDecimal.js +0 -7
  302. package/dist/esm/decimal/requireDecimal.js.map +0 -1
  303. package/dist/types/decimal/requireDecimal.d.ts +0 -5
  304. package/dist/types/decimal/requireDecimal.d.ts.map +0 -1
  305. package/src/decimal/requireDecimal.ts +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"wsLog.js","sourceRoot":"","sources":["../../../src/websocket/wsLog.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE,CACvC,GAAG,CAAC,MAAM,GAAG,iBAAiB;IAC5B,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,KAAK,GAAG,CAAC,MAAM,SAAS;IAC5D,CAAC,CAAC,GAAG,CAAA;AAET;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB;;;OAGG;IACH,YAAY,CAAC,QAAgB,EAAE,GAAW;QACxC,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,iCAAiC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5E,CAAC;IACD;;;;OAIG;IACH,cAAc,CAAC,QAAgB,EAAE,KAAc;QAC7C,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,4BAA4B,EAAE,KAAK,CAAC,CAAA;IAChE,CAAC;IACD;;;;;OAKG;IACH,WAAW,CAAC,QAAgB,EAAE,OAAe;QAC3C,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,mBAAmB,EAAE,OAAO,CAAC,CAAA;IACzD,CAAC;IACD;;;;OAIG;IACH,gBAAgB,CAAC,QAAgB,EAAE,OAAe,EAAE,KAAc;QAChE,OAAO,CAAC,KAAK,CACX,IAAI,QAAQ,wCAAwC,OAAO,0DAA0D,EACrH,KAAK,CACN,CAAA;IACH,CAAC;IACD;;;;OAIG;IACH,aAAa,CAAC,QAAgB,EAAE,QAAgB;QAC9C,OAAO,CAAC,IAAI,CACV,IAAI,QAAQ,0CAA0C,QAAQ,GAAG,CAClE,CAAA;IACH,CAAC;IACD;;;OAGG;IACH,oBAAoB,CAAC,QAAgB,EAAE,KAAc;QACnD,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,qCAAqC,EAAE,KAAK,CAAC,CAAA;IACxE,CAAC;IACD;;;OAGG;IACH,eAAe,CACb,QAAgB,EAChB,YAAoB,EACpB,KAAc;QAEd,OAAO,CAAC,KAAK,CACX,IAAI,QAAQ,+BAA+B,YAAY,WAAW,EAClE,KAAK,CACN,CAAA;IACH,CAAC;CACO,CAAA"}
1
+ {"version":3,"file":"wsLog.js","sourceRoot":"","sources":["../../../src/websocket/wsLog.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,YAAY,EACZ,iBAAiB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE,CACvC,GAAG,CAAC,MAAM,GAAG,iBAAiB;IAC5B,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,KAAK,GAAG,CAAC,MAAM,SAAS;IAC5D,CAAC,CAAC,GAAG,CAAA;AAET,MAAM,kBAAkB,GAAG,cAAc,EAAE,CAAA;AAE3C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB;;;OAGG;IACH,YAAY,CAAC,QAAgB,EAAE,GAAW;QACxC,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,iCAAiC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5E,CAAC;IACD;;;;OAIG;IACH,cAAc,CAAC,QAAgB,EAAE,KAAc;QAC7C,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,4BAA4B,EAAE,KAAK,CAAC,CAAA;IAChE,CAAC;IACD;;;;;OAKG;IACH,WAAW,CAAC,QAAgB,EAAE,OAAe;QAC3C,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,mBAAmB,EAAE,OAAO,CAAC,CAAA;IACzD,CAAC;IACD;;;;OAIG;IACH,gBAAgB,CAAC,QAAgB,EAAE,OAAe,EAAE,KAAc;QAChE,OAAO,CAAC,KAAK,CACX,IAAI,QAAQ,wCAAwC,OAAO,0DAA0D,EACrH,KAAK,CACN,CAAA;IACH,CAAC;IACD;;;;OAIG;IACH,aAAa,CAAC,QAAgB,EAAE,QAAgB;QAC9C,OAAO,CAAC,IAAI,CACV,IAAI,QAAQ,0CAA0C,QAAQ,GAAG,CAClE,CAAA;IACH,CAAC;IACD;;;;OAIG;IACH,UAAU,CACR,QAAgB,EAChB,GAAW,EACX,KAAa,EACb,KAAc,EACd,QAAiB;QAEjB,kBAAkB,CAChB,GAAG,QAAQ,IAAI,GAAG,IAAI,KAAK,IAAI,QAAQ,IAAI,EAAE,EAAE,EAC/C,iBAAiB,CACf,GAAG,QAAQ,KAAK,EAChB,GAAG,EACH,KAAK,EACL,KAAK,EACL,SAAS,EACT,QAAQ,CACT,CACF,CAAA;IACH,CAAC;IACD;;;;OAIG;IACH,UAAU,CAAC,QAAgB,EAAE,GAAW,EAAE,MAAc;QACtD,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;QAClC,kBAAkB,CAChB,GAAG,QAAQ,IAAI,GAAG,YAAY,KAAK,EAAE,EACrC,IAAI,QAAQ,iBAAiB,GAAG,SAAS,KAAK,EAAE,CACjD,CAAA;IACH,CAAC;IACD;;;OAGG;IACH,oBAAoB,CAAC,QAAgB,EAAE,KAAc;QACnD,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,qCAAqC,EAAE,KAAK,CAAC,CAAA;IACxE,CAAC;IACD;;;OAGG;IACH,eAAe,CACb,QAAgB,EAChB,YAAoB,EACpB,KAAc;QAEd,OAAO,CAAC,KAAK,CACX,IAAI,QAAQ,+BAA+B,YAAY,WAAW,EAClE,KAAK,CACN,CAAA;IACH,CAAC;CACO,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { DecimalString, Market } from '@lifi/perps-types';
1
+ import { type DecimalString, type Market } from '@lifi/perps-types';
2
2
  import type { PerpsSDKClient } from '../types/provider.js';
3
3
  /** @public */
4
4
  export interface OrderAmountsInput {
@@ -30,12 +30,14 @@ export interface OrderAmounts {
30
30
  * `notional` is the snapped size × price, and a derived margin is
31
31
  * `notional ÷ leverage` in `DivBig` (40 places, half-up).
32
32
  *
33
- * @returns `null` when `amount` or `price` is not a positive
34
- * {@link DecimalString}, when `leverage` is not a positive finite number, or
35
- * when the snapped size is zero (below one lot).
36
- * @throws {PerpsError} `SDKError` when `market.providerId` names no registered
37
- * provider plugin.
33
+ * @throws {PerpsError} `ValidationError` that names `amount` or `price` when
34
+ * it is not a positive decimal, or `leverage` when it is not a finite number
35
+ * above zero. `ValidationError` with the lot size when the snapped size is
36
+ * zero (below one lot). `SDKError` when `market.providerId` names no
37
+ * registered provider plugin.
38
38
  * @public
39
39
  */
40
- export declare function calculateOrderAmounts(input: OrderAmountsInput): OrderAmounts | null;
40
+ export declare function calculateOrderAmounts(input: OrderAmountsInput): OrderAmounts;
41
+ /** @public */
42
+ export declare const safeCalculateOrderAmounts: (input: OrderAmountsInput) => OrderAmounts | undefined;
41
43
  //# sourceMappingURL=orderAmounts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"orderAmounts.d.ts","sourceRoot":"","sources":["../../../src/wire/orderAmounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAI9D,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;CACrB;AAED,cAAc;AACd,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,MAAM,EAAE,aAAa,CAAA;IACrB,sEAAsE;IACtE,IAAI,EAAE,aAAa,CAAA;IACnB,qDAAqD;IACrD,QAAQ,EAAE,aAAa,CAAA;CACxB;AAUD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,GACvB,YAAY,GAAG,IAAI,CAiCrB"}
1
+ {"version":3,"file":"orderAmounts.d.ts","sourceRoot":"","sources":["../../../src/wire/orderAmounts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,MAAM,EAEZ,MAAM,mBAAmB,CAAA;AAO1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAI1D,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;CACrB;AAED,cAAc;AACd,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,MAAM,EAAE,aAAa,CAAA;IACrB,sEAAsE;IACtE,IAAI,EAAE,aAAa,CAAA;IACnB,qDAAqD;IACrD,QAAQ,EAAE,aAAa,CAAA;CACxB;AAgBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,CAkC5E;AAED,cAAc;AACd,eAAO,MAAM,yBAAyB,wDAGrC,CAAA"}
@@ -1,14 +1,19 @@
1
- import Big from 'big.js';
1
+ import { PerpsErrorCode, } from '@lifi/perps-types';
2
2
  import { DivBig, TruncBig } from '../decimal/big.js';
3
+ import { isDecimalStringZero } from '../decimal/compare.js';
3
4
  import { isDecimalString } from '../decimal/parse.js';
5
+ import { invalidInput } from '../errors/invalidInput.js';
6
+ import { PerpsError } from '../errors/PerpsError.js';
7
+ import { createSafeFunction } from '../utils/createSafeFunction.js';
4
8
  import { snapOrderSize } from './snap.js';
5
- function positiveDecimal(value) {
6
- if (!isDecimalString(value)) {
7
- return null;
9
+ function requirePositiveDecimal(value, parameter) {
10
+ const parsed = isDecimalString(value) ? new TruncBig(value) : undefined;
11
+ if (parsed === undefined || !parsed.gt(0)) {
12
+ throw invalidInput(parameter, `must be a positive decimal, got '${String(value)}'`);
8
13
  }
9
- const parsed = new TruncBig(value);
10
- return parsed.gt(0) ? parsed : null;
14
+ return parsed;
11
15
  }
16
+ const lotSize = (market) => market.sizeIncrement ?? new TruncBig(`1e-${market.szDecimals}`).toFixed();
12
17
  /**
13
18
  * The three order-entry amounts, derived from whichever one the user typed.
14
19
  * Only `size` snaps, onto the market's venue lot grid, because an order sends
@@ -16,22 +21,19 @@ function positiveDecimal(value) {
16
21
  * `notional` is the snapped size × price, and a derived margin is
17
22
  * `notional ÷ leverage` in `DivBig` (40 places, half-up).
18
23
  *
19
- * @returns `null` when `amount` or `price` is not a positive
20
- * {@link DecimalString}, when `leverage` is not a positive finite number, or
21
- * when the snapped size is zero (below one lot).
22
- * @throws {PerpsError} `SDKError` when `market.providerId` names no registered
23
- * provider plugin.
24
+ * @throws {PerpsError} `ValidationError` that names `amount` or `price` when
25
+ * it is not a positive decimal, or `leverage` when it is not a finite number
26
+ * above zero. `ValidationError` with the lot size when the snapped size is
27
+ * zero (below one lot). `SDKError` when `market.providerId` names no
28
+ * registered provider plugin.
24
29
  * @public
25
30
  */
26
31
  export function calculateOrderAmounts(input) {
27
32
  const { sdk, market, held, leverage } = input;
28
- const amount = positiveDecimal(input.amount);
29
- const price = positiveDecimal(input.price);
30
- if (amount === null ||
31
- price === null ||
32
- !Number.isFinite(leverage) ||
33
- leverage <= 0) {
34
- return null;
33
+ const amount = requirePositiveDecimal(input.amount, 'amount');
34
+ const price = requirePositiveDecimal(input.price, 'price');
35
+ if (!Number.isFinite(leverage) || leverage <= 0) {
36
+ throw invalidInput('leverage', `must be a finite number above zero, got ${leverage}`);
35
37
  }
36
38
  const requested = held === 'size'
37
39
  ? input.amount
@@ -39,8 +41,8 @@ export function calculateOrderAmounts(input) {
39
41
  ? amount.div(price).toFixed()
40
42
  : amount.times(leverage).div(price).toFixed();
41
43
  const size = snapOrderSize(sdk, market, requested);
42
- if (new Big(size).eq(0)) {
43
- return null;
44
+ if (isDecimalStringZero(size)) {
45
+ throw new PerpsError(PerpsErrorCode.ValidationError, `The order size ${requested} is below the lot size ${lotSize(market)}.`);
44
46
  }
45
47
  const notional = new TruncBig(size).times(price);
46
48
  return {
@@ -51,4 +53,6 @@ export function calculateOrderAmounts(input) {
51
53
  notional: notional.toFixed(),
52
54
  };
53
55
  }
56
+ /** @public */
57
+ export const safeCalculateOrderAmounts = createSafeFunction('calculateOrderAmounts', calculateOrderAmounts);
54
58
  //# sourceMappingURL=orderAmounts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"orderAmounts.js","sourceRoot":"","sources":["../../../src/wire/orderAmounts.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AA2BzC,SAAS,eAAe,CAAC,KAAoB;IAC3C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAA;IAClC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;AACrC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAwB;IAExB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC5C,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC1C,IACE,MAAM,KAAK,IAAI;QACf,KAAK,KAAK,IAAI;QACd,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC1B,QAAQ,IAAI,CAAC,EACb,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,SAAS,GACb,IAAI,KAAK,MAAM;QACb,CAAC,CAAC,KAAK,CAAC,MAAM;QACd,CAAC,CAAC,IAAI,KAAK,UAAU;YACnB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;YAC7B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAA;IACnD,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IAClD,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAChD,OAAO;QACL,MAAM,EACJ,IAAI,KAAK,QAAQ;YACf,CAAC,CAAC,KAAK,CAAC,MAAM;YACd,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;QAClD,IAAI;QACJ,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE;KAC7B,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"orderAmounts.js","sourceRoot":"","sources":["../../../src/wire/orderAmounts.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,37 @@
1
1
  import { type DecimalString } from '@lifi/perps-types';
2
+ /**
3
+ * Headroom, in percent, that {@link calculateRefuelAmount} adds over the gas
4
+ * deficit to pay the refuel route's own swap and bridge fees.
5
+ *
6
+ * @public
7
+ */
8
+ export declare const REFUEL_FEE_MARGIN_PERCENT = 20;
2
9
  /** @public */
3
10
  export interface RefuelAmountInput {
4
- /** USD value of the gas the route recommends. */
5
- gasUsd: DecimalString;
11
+ /** Native gas amount the LI.FI gas suggestion recommends, in base units. */
12
+ recommendedAmount: DecimalString;
13
+ /** USD value of `recommendedAmount`. */
14
+ recommendedUsd: DecimalString;
15
+ /** Native balance the wallet holds on the recommendation's chain, in base units. */
16
+ nativeBalance: DecimalString;
6
17
  /** USD price of one whole source token. */
7
18
  priceUsd: DecimalString;
8
19
  /** Decimals of the source token, which the result is spelled to exactly. */
9
20
  decimals: number;
10
21
  }
11
22
  /**
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.
23
+ * Source-token amount that buys the native gas the wallet lacks: the part of
24
+ * the recommendation above `nativeBalance`, valued pro rata on
25
+ * `recommendedUsd`, plus {@link REFUEL_FEE_MARGIN_PERCENT}. Rounded **up**
26
+ * onto the token's decimal grid so a refuel never lands short, and spelled
27
+ * with trailing zeros to `decimals` to seed an amount input.
20
28
  *
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.
29
+ * @returns `undefined` when the wallet already holds the recommendation, or
30
+ * when `recommendedAmount`, `recommendedUsd` or `priceUsd` is not greater
31
+ * than zero: a route with nothing to refuel, not a failure.
32
+ * @throws {PerpsError} `ValidationError` when a base-unit field is not an
33
+ * integer string, a USD field does not match the decimal pattern, or `decimals`
34
+ * is not a non-negative integer.
25
35
  * @public
26
36
  */
27
37
  export declare function calculateRefuelAmount(input: RefuelAmountInput): DecimalString | undefined;
@@ -1 +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"}
1
+ {"version":3,"file":"refuel.d.ts","sourceRoot":"","sources":["../../../src/wire/refuel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,mBAAmB,CAAA;AAOtE;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAA;AAE3C,cAAc;AACd,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,iBAAiB,EAAE,aAAa,CAAA;IAChC,wCAAwC;IACxC,cAAc,EAAE,aAAa,CAAA;IAC7B,oFAAoF;IACpF,aAAa,EAAE,aAAa,CAAA;IAC5B,2CAA2C;IAC3C,QAAQ,EAAE,aAAa,CAAA;IACvB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAA;CACjB;AAYD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,GACvB,aAAa,GAAG,SAAS,CA8B3B"}
@@ -1,21 +1,34 @@
1
1
  import { PerpsErrorCode } from '@lifi/perps-types';
2
2
  import { DivBig } from '../decimal/big.js';
3
- import { requireDecimal } from '../decimal/requireDecimal.js';
3
+ import { BASE_UNITS_PATTERN } from '../decimal/convert.js';
4
+ import { decimalStringToDivBig } from '../decimal/decimalStringToBig.js';
4
5
  import { PerpsError } from '../errors/PerpsError.js';
5
6
  /**
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.
7
+ * Headroom, in percent, that {@link calculateRefuelAmount} adds over the gas
8
+ * deficit to pay the refuel route's own swap and bridge fees.
10
9
  *
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.
10
+ * @public
11
+ */
12
+ export const REFUEL_FEE_MARGIN_PERCENT = 20;
13
+ function requireBaseUnits(value, field) {
14
+ if (!BASE_UNITS_PATTERN.test(value)) {
15
+ throw new PerpsError(PerpsErrorCode.ValidationError, `Invalid \`${field}\`: '${value}' is not an integer base-unit string.`);
16
+ }
17
+ return new DivBig(value);
18
+ }
19
+ /**
20
+ * Source-token amount that buys the native gas the wallet lacks: the part of
21
+ * the recommendation above `nativeBalance`, valued pro rata on
22
+ * `recommendedUsd`, plus {@link REFUEL_FEE_MARGIN_PERCENT}. Rounded **up**
23
+ * onto the token's decimal grid so a refuel never lands short, and spelled
24
+ * with trailing zeros to `decimals` to seed an amount input.
14
25
  *
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.
26
+ * @returns `undefined` when the wallet already holds the recommendation, or
27
+ * when `recommendedAmount`, `recommendedUsd` or `priceUsd` is not greater
28
+ * than zero: a route with nothing to refuel, not a failure.
29
+ * @throws {PerpsError} `ValidationError` when a base-unit field is not an
30
+ * integer string, a USD field does not match the decimal pattern, or `decimals`
31
+ * is not a non-negative integer.
19
32
  * @public
20
33
  */
21
34
  export function calculateRefuelAmount(input) {
@@ -23,13 +36,21 @@ export function calculateRefuelAmount(input) {
23
36
  if (!Number.isInteger(decimals) || decimals < 0) {
24
37
  throw new PerpsError(PerpsErrorCode.ValidationError, `Invalid \`decimals\` for a refuel amount: ${decimals}`);
25
38
  }
26
- const gasUsd = requireDecimal(input.gasUsd, 'gasUsd');
27
- const priceUsd = requireDecimal(input.priceUsd, 'priceUsd');
28
- if (!gasUsd.gt(0) || !priceUsd.gt(0)) {
39
+ const recommended = requireBaseUnits(input.recommendedAmount, 'recommendedAmount');
40
+ const balance = requireBaseUnits(input.nativeBalance, 'nativeBalance');
41
+ const recommendedUsd = decimalStringToDivBig(input.recommendedUsd);
42
+ const priceUsd = decimalStringToDivBig(input.priceUsd);
43
+ const deficit = recommended.minus(balance);
44
+ if (!recommended.gt(0) ||
45
+ !recommendedUsd.gt(0) ||
46
+ !priceUsd.gt(0) ||
47
+ !deficit.gt(0)) {
29
48
  return undefined;
30
49
  }
31
- return new DivBig(gasUsd)
32
- .div(priceUsd)
50
+ return recommendedUsd
51
+ .times(deficit)
52
+ .times(100 + REFUEL_FEE_MARGIN_PERCENT)
53
+ .div(recommended.times(100).times(priceUsd))
33
54
  .round(decimals, DivBig.roundUp)
34
55
  .toFixed(decimals);
35
56
  }
@@ -1 +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,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,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"}
1
+ {"version":3,"file":"refuel.js","sourceRoot":"","sources":["../../../src/wire/refuel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAgB3C,SAAS,gBAAgB,CAAC,KAAoB,EAAE,KAAa;IAC3D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,UAAU,CAClB,cAAc,CAAC,eAAe,EAC9B,aAAa,KAAK,QAAQ,KAAK,uCAAuC,CACvE,CAAA;IACH,CAAC;IACD,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,CAAA;AAC1B,CAAC;AAED;;;;;;;;;;;;;;GAcG;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,WAAW,GAAG,gBAAgB,CAClC,KAAK,CAAC,iBAAiB,EACvB,mBAAmB,CACpB,CAAA;IACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;IACtE,MAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAClE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACtD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC1C,IACE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QAClB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;QACrB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACf,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EACd,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,cAAc;SAClB,KAAK,CAAC,OAAO,CAAC;SACd,KAAK,CAAC,GAAG,GAAG,yBAAyB,CAAC;SACtC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC3C,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;SAC/B,OAAO,CAAC,QAAQ,CAAC,CAAA;AACtB,CAAC"}
@@ -7,8 +7,8 @@ import type { DecimalString } from '@lifi/perps-types';
7
7
  * @param venueFigure - The venue's free figure for the category, which can
8
8
  * exceed `units` or fall below zero.
9
9
  * @param units - Units held in the category, the upper bound of the clamp.
10
- * @throws {PerpsError} `ValidationError` when either input is not a
11
- * {@link DecimalString}, naming the field.
10
+ * @throws {PerpsError} `ValidationError` when either input does not match the
11
+ * decimal pattern, naming the field.
12
12
  * @public
13
13
  */
14
14
  export declare function calculateTransferable(venueFigure: DecimalString, units: DecimalString): DecimalString;
@@ -1,4 +1,4 @@
1
- import { requireDecimal } from '../decimal/requireDecimal.js';
1
+ import { decimalStringToBig } from '../decimal/decimalStringToBig.js';
2
2
  /**
3
3
  * The part of `units` that a venue-wide free figure releases: never below
4
4
  * zero, never above the units held. `Balance.transferable` on every provider
@@ -7,13 +7,13 @@ import { requireDecimal } from '../decimal/requireDecimal.js';
7
7
  * @param venueFigure - The venue's free figure for the category, which can
8
8
  * exceed `units` or fall below zero.
9
9
  * @param units - Units held in the category, the upper bound of the clamp.
10
- * @throws {PerpsError} `ValidationError` when either input is not a
11
- * {@link DecimalString}, naming the field.
10
+ * @throws {PerpsError} `ValidationError` when either input does not match the
11
+ * decimal pattern, naming the field.
12
12
  * @public
13
13
  */
14
14
  export function calculateTransferable(venueFigure, units) {
15
- const figure = requireDecimal(venueFigure, 'venueFigure');
16
- const held = requireDecimal(units, 'units');
15
+ const figure = decimalStringToBig(venueFigure);
16
+ const held = decimalStringToBig(units);
17
17
  if (figure.lt(0)) {
18
18
  return '0';
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transferable.js","sourceRoot":"","sources":["../../../src/wire/transferable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,WAA0B,EAC1B,KAAoB;IAEpB,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;IACzD,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAC3C,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;AACpD,CAAC"}
1
+ {"version":3,"file":"transferable.js","sourceRoot":"","sources":["../../../src/wire/transferable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAErE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,WAA0B,EAC1B,KAAoB;IAEpB,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACtC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAA;AACpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"withdraw.d.ts","sourceRoot":"","sources":["../../../src/wire/withdraw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEjE;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,IAAI,CACP,mBAAmB,EACnB,WAAW,GAAG,eAAe,GAAG,eAAe,CAChD,GACA,aAAa,CASf"}
1
+ {"version":3,"file":"withdraw.d.ts","sourceRoot":"","sources":["../../../src/wire/withdraw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEjE;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,IAAI,CACP,mBAAmB,EACnB,WAAW,GAAG,eAAe,GAAG,eAAe,CAChD,GACA,aAAa,CAOf"}
@@ -1,4 +1,4 @@
1
- import { requireDecimal } from '../decimal/requireDecimal.js';
1
+ import { decimalStringToBig } from '../decimal/decimalStringToBig.js';
2
2
  /**
3
3
  * Largest `amount` a withdrawable row can fund: `available` when the venue
4
4
  * deducts the fee from the amount or publishes no fee, and
@@ -10,11 +10,11 @@ import { requireDecimal } from '../decimal/requireDecimal.js';
10
10
  * @public
11
11
  */
12
12
  export function calculateWithdrawMax(row) {
13
- const available = requireDecimal(row.available, 'available');
13
+ const available = decimalStringToBig(row.available);
14
14
  if (row.isFeeDeducted !== false || row.withdrawalFee === undefined) {
15
15
  return available.toFixed();
16
16
  }
17
- const funded = available.minus(requireDecimal(row.withdrawalFee, 'withdrawalFee'));
17
+ const funded = available.minus(decimalStringToBig(row.withdrawalFee));
18
18
  return funded.gt(0) ? funded.toFixed() : '0';
19
19
  }
20
20
  //# sourceMappingURL=withdraw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../../src/wire/withdraw.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAG7D;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAGC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAC5D,IAAI,GAAG,CAAC,aAAa,KAAK,KAAK,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACnE,OAAO,SAAS,CAAC,OAAO,EAAE,CAAA;IAC5B,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAC5B,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,CACnD,CAAA;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;AAC9C,CAAC"}
1
+ {"version":3,"file":"withdraw.js","sourceRoot":"","sources":["../../../src/wire/withdraw.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAGrE;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAGC;IAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACnD,IAAI,GAAG,CAAC,aAAa,KAAK,KAAK,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACnE,OAAO,SAAS,CAAC,OAAO,EAAE,CAAA;IAC5B,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAA;IACrE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;AAC9C,CAAC"}
@@ -3,11 +3,11 @@ import { ActionType } from '@lifi/perps-types';
3
3
  import type { Address } from 'viem';
4
4
  import { type GetOrderParams } from '../services/getOrder.js';
5
5
  import { type GetOrdersParams } from '../services/getOrders.js';
6
- import type { BuildProviderSetupParams, CancelOrdersParams, CancelTwapOrderParams, CreateReferralCodeActionParams, ExecuteMetaActionParams, GetAccountResult, GetDepositFlowParams, GetPortfolioHistoryParams, GetSetupParams, GetWithdrawableBalancesParams, GetWithdrawFlowParams, ModifyOrdersParams, PerpsClientOptions, PlaceOrderParams, PlaceTriggerOrderParams, PlaceTwapOrderParams, ProviderSetup, SendAssetActionParams, SetupChecklistItem, SubmitOnboardingParams, WithdrawParams } from '../types/api.js';
6
+ import type { BuildProviderSetupParams, CancelOrdersParams, CancelTwapOrderParams, CreateReferralCodeActionParams, ExecuteMetaActionParams, GetAccountResult, GetDepositFlowParams, GetPortfolioHistoryParams, GetSetupParams, GetWithdrawableBalancesParams, GetWithdrawalTypesParams, GetWithdrawFlowParams, ModifyOrdersParams, PerpsClientOptions, PlaceOrderParams, PlaceTriggerOrderParams, PlaceTwapOrderParams, ProviderSetup, SendAssetActionParams, SetupChecklistItem, SubmitOnboardingParams, WithdrawParams } from '../types/api.js';
7
7
  import type { SDKRequestOptions, SwitchChainHook } from '../types/config.js';
8
8
  import type { DepositFlow } from '../types/deposit.js';
9
9
  import type { PerpsSDKClient, SignActionProgress } from '../types/provider.js';
10
- import type { WithdrawableBalance, WithdrawFlow } from '../types/withdrawal.js';
10
+ import type { WithdrawableBalance, WithdrawalSourceTypes, WithdrawFlow } from '../types/withdrawal.js';
11
11
  /**
12
12
  * The primary high-level perps API: wraps a {@link PerpsSDKClient} and owns the
13
13
  * end-to-end signing pipeline for provider setup, orders, and account-level
@@ -270,8 +270,9 @@ export declare class PerpsClient {
270
270
  */
271
271
  getWithdrawFlow(params: GetWithdrawFlowParams, options?: SDKRequestOptions): Promise<WithdrawFlow | undefined>;
272
272
  /**
273
- * The `(asset, route)` selections `params.address` can actually withdraw at
274
- * `params.provider`. The venue owns how its balances split across routes;
273
+ * The `(asset, category)` selections `params.address` can actually withdraw
274
+ * at `params.provider`. The venue owns how its balances split across
275
+ * categories;
275
276
  * this join adds the core `/assets` metadata — precision, L1 identity and
276
277
  * the per-asset minimum — and drops every row the minimum rules out, plus
277
278
  * any row whose asset the provider's registry does not carry, since without
@@ -289,6 +290,18 @@ export declare class PerpsClient {
289
290
  * @public
290
291
  */
291
292
  getWithdrawableBalances(params: GetWithdrawableBalancesParams, options?: SDKRequestOptions): Promise<WithdrawableBalance[] | undefined>;
293
+ /**
294
+ * The withdrawal types `params.address` can choose per holding at
295
+ * `params.provider`, each with its cap and the `withdrawalOptions` to pass
296
+ * unchanged in `WithdrawalParams`.
297
+ *
298
+ * @returns `undefined` when the registered plugin declares no withdrawal
299
+ * types read.
300
+ * @throws {PerpsError} When the provider plugin is not registered, or when
301
+ * the plugin read fails.
302
+ * @public
303
+ */
304
+ getWithdrawalTypes(params: GetWithdrawalTypesParams, options?: SDKRequestOptions): Promise<WithdrawalSourceTypes[] | undefined>;
292
305
  /**
293
306
  * The account's portfolio value and cumulative PnL over `params.range` at
294
307
  * `params.provider`, read directly from the venue.
@@ -1 +1 @@
1
- {"version":3,"file":"PerpsClient.d.ts","sourceRoot":"","sources":["../../../src/client/PerpsClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PerpsClient.d.ts","sourceRoot":"","sources":["../../../src/client/PerpsClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Exact `a + b`.
3
+ *
4
+ * @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
5
+ * @public
6
+ */
7
+ export declare function addDecimalString(a: string, b: string): string;
8
+ /**
9
+ * {@link addDecimalString}, or `undefined` with a warning when it throws.
10
+ *
11
+ * @public
12
+ */
13
+ export declare const safeAddDecimalString: (a: string, b: string) => string | undefined;
14
+ /**
15
+ * Exact sum of every value; `'0'` for an empty list.
16
+ *
17
+ * @throws {PerpsError} `ValidationError` when a value does not match the
18
+ * decimal pattern.
19
+ * @public
20
+ */
21
+ export declare function addDecimalStrings(values: readonly string[]): string;
22
+ /**
23
+ * {@link addDecimalStrings}, or `undefined` with a warning when it throws.
24
+ * One bad value gives `undefined`, never a partial sum.
25
+ *
26
+ * @public
27
+ */
28
+ export declare const safeAddDecimalStrings: (values: readonly string[]) => string | undefined;
29
+ /**
30
+ * Exact `a - b`.
31
+ *
32
+ * @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
33
+ * @public
34
+ */
35
+ export declare function subtractDecimalString(a: string, b: string): string;
36
+ /**
37
+ * {@link subtractDecimalString}, or `undefined` with a warning when it throws.
38
+ *
39
+ * @public
40
+ */
41
+ export declare const safeSubtractDecimalString: (a: string, b: string) => string | undefined;
42
+ /**
43
+ * Exact `a × b`.
44
+ *
45
+ * @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
46
+ * @public
47
+ */
48
+ export declare function multiplyDecimalString(a: string, b: string): string;
49
+ /**
50
+ * {@link multiplyDecimalString}, or `undefined` with a warning when it throws.
51
+ *
52
+ * @public
53
+ */
54
+ export declare const safeMultiplyDecimalString: (a: string, b: string) => string | undefined;
55
+ /**
56
+ * `a ÷ b` to 40 decimal places, rounded half up.
57
+ *
58
+ * @throws {PerpsError} `ValidationError` when an input does not match the
59
+ * decimal pattern or `b` is zero.
60
+ * @public
61
+ */
62
+ export declare function divideDecimalString(a: string, b: string): string;
63
+ /**
64
+ * {@link divideDecimalString}, or `undefined` with a warning when it throws.
65
+ *
66
+ * @public
67
+ */
68
+ export declare const safeDivideDecimalString: (a: string, b: string) => string | undefined;
69
+ /**
70
+ * `a ÷ b` to 40 decimal places, truncated toward zero, so a derived amount
71
+ * never exceeds the exact quotient.
72
+ *
73
+ * @throws {PerpsError} `ValidationError` when an input does not match the
74
+ * decimal pattern or `b` is zero.
75
+ * @public
76
+ */
77
+ export declare function divideDecimalStringRoundDown(a: string, b: string): string;
78
+ /**
79
+ * {@link divideDecimalStringRoundDown}, or `undefined` with a warning when it
80
+ * throws.
81
+ *
82
+ * @public
83
+ */
84
+ export declare const safeDivideDecimalStringRoundDown: (a: string, b: string) => string | undefined;
85
+ /**
86
+ * Exact `|value|`.
87
+ *
88
+ * @throws {PerpsError} `ValidationError` when `value` does not match the decimal pattern.
89
+ * @public
90
+ */
91
+ export declare function absDecimalString(value: string): string;
92
+ /**
93
+ * {@link absDecimalString}, or `undefined` with a warning when it throws.
94
+ *
95
+ * @public
96
+ */
97
+ export declare const safeAbsDecimalString: (value: string) => string | undefined;
98
+ //# sourceMappingURL=arithmetic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arithmetic.d.ts","sourceRoot":"","sources":["../../../src/decimal/arithmetic.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,8CAGhC,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAOnE;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,mDAGjC,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,8CAGrC,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,8CAGrC,CAAA;AAaD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,8CAGnC,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGzE;AAED;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,8CAG5C,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,uCAGhC,CAAA"}
@@ -9,6 +9,4 @@ export declare const DivBig: Big.BigConstructor;
9
9
  * exact quotient.
10
10
  */
11
11
  export declare const TruncBig: Big.BigConstructor;
12
- /** True when every value is a finite number, so `new DivBig(value)` cannot throw. */
13
- export declare function areFinite(...values: number[]): boolean;
14
12
  //# sourceMappingURL=big.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"big.d.ts","sourceRoot":"","sources":["../../../src/decimal/big.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,QAAQ,CAAA;AAExB;;;GAGG;AACH,eAAO,MAAM,MAAM,oBAAQ,CAAA;AAG3B;;;GAGG;AACH,eAAO,MAAM,QAAQ,oBAAQ,CAAA;AAI7B,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAEtD"}
1
+ {"version":3,"file":"big.d.ts","sourceRoot":"","sources":["../../../src/decimal/big.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,QAAQ,CAAA;AAExB;;;GAGG;AACH,eAAO,MAAM,MAAM,oBAAQ,CAAA;AAG3B;;;GAGG;AACH,eAAO,MAAM,QAAQ,oBAAQ,CAAA"}
@@ -1,11 +1,45 @@
1
- import type { DecimalString } from '@lifi/perps-types';
2
1
  /**
3
- * Exact `a > b` on two {@link DecimalString}s, with no float rounding, so a
4
- * funds gate can tell `'1.0000000000000001'` from `'1'`. The other relations
5
- * follow from it: `a <= b` is `!isDecimalStringGreaterThan(a, b)`.
2
+ * Exact `a > b` on two decimal strings, with no float rounding, so a funds
3
+ * gate can tell `'1.0000000000000001'` from `'1'`. The other relations follow
4
+ * from it: `a <= b` is `!isDecimalStringGreaterThan(a, b)`.
6
5
  *
7
- * @throws {PerpsError} `ValidationError` when either operand is not a decimal string.
6
+ * @throws {PerpsError} `ValidationError` when either operand does not match the decimal pattern.
8
7
  * @public
9
8
  */
10
- export declare function isDecimalStringGreaterThan(a: DecimalString, b: DecimalString): boolean;
9
+ export declare function isDecimalStringGreaterThan(a: string, b: string): boolean;
10
+ /**
11
+ * {@link isDecimalStringGreaterThan}, or `undefined` with a warning when it
12
+ * throws.
13
+ *
14
+ * @public
15
+ */
16
+ export declare const safeIsDecimalStringGreaterThan: (a: string, b: string) => boolean | undefined;
17
+ /**
18
+ * Exact `value == 0`, so a flat-position check never reads `'0.0'` as
19
+ * non-zero.
20
+ *
21
+ * @throws {PerpsError} `ValidationError` when `value` does not match the decimal pattern.
22
+ * @public
23
+ */
24
+ export declare function isDecimalStringZero(value: string): boolean;
25
+ /**
26
+ * {@link isDecimalStringZero}, or `undefined` with a warning when it throws.
27
+ *
28
+ * @public
29
+ */
30
+ export declare const safeIsDecimalStringZero: (value: string) => boolean | undefined;
31
+ /**
32
+ * Exact three-way compare for a sort: `-1` when `a < b`, `0` when equal, `1`
33
+ * when `a > b`.
34
+ *
35
+ * @throws {PerpsError} `ValidationError` when either operand does not match the decimal pattern.
36
+ * @public
37
+ */
38
+ export declare function compareDecimalStrings(a: string, b: string): -1 | 0 | 1;
39
+ /**
40
+ * {@link compareDecimalStrings}, or `undefined` with a warning when it throws.
41
+ *
42
+ * @public
43
+ */
44
+ export declare const safeCompareDecimalStrings: (a: string, b: string) => 0 | 1 | -1 | undefined;
11
45
  //# sourceMappingURL=compare.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/decimal/compare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGtD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,aAAa,EAChB,CAAC,EAAE,aAAa,GACf,OAAO,CAET"}
1
+ {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/decimal/compare.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAExE;AAED;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,+CAG1C,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,wCAGnC,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAEtE;AAED;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,kDAGrC,CAAA"}