@lifi/perps-sdk 21.0.0 → 22.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 (207) hide show
  1. package/README.md +84 -16
  2. package/dist/cjs/client/PerpsClient.d.ts +3 -3
  3. package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
  4. package/dist/cjs/client/PerpsClient.js.map +1 -1
  5. package/dist/cjs/decimal/convert.d.ts +1 -5
  6. package/dist/cjs/decimal/convert.d.ts.map +1 -1
  7. package/dist/cjs/decimal/convert.js +10 -28
  8. package/dist/cjs/decimal/convert.js.map +1 -1
  9. package/dist/cjs/decimal/format.d.ts +2 -1
  10. package/dist/cjs/decimal/format.d.ts.map +1 -1
  11. package/dist/cjs/decimal/format.js.map +1 -1
  12. package/dist/cjs/decimal/parse.d.ts +2 -4
  13. package/dist/cjs/decimal/parse.d.ts.map +1 -1
  14. package/dist/cjs/decimal/parse.js +5 -2
  15. package/dist/cjs/decimal/parse.js.map +1 -1
  16. package/dist/cjs/decimal/requireDecimal.d.ts.map +1 -0
  17. package/dist/cjs/{wire → decimal}/requireDecimal.js +2 -1
  18. package/dist/cjs/decimal/requireDecimal.js.map +1 -0
  19. package/dist/cjs/index.d.ts +5 -5
  20. package/dist/cjs/index.d.ts.map +1 -1
  21. package/dist/cjs/index.js +6 -20
  22. package/dist/cjs/index.js.map +1 -1
  23. package/dist/cjs/math/fills.d.ts +3 -3
  24. package/dist/cjs/math/fills.d.ts.map +1 -1
  25. package/dist/cjs/math/fills.js.map +1 -1
  26. package/dist/cjs/math/order.d.ts +1 -8
  27. package/dist/cjs/math/order.d.ts.map +1 -1
  28. package/dist/cjs/math/order.js +6 -11
  29. package/dist/cjs/math/order.js.map +1 -1
  30. package/dist/cjs/math/position.d.ts +3 -8
  31. package/dist/cjs/math/position.d.ts.map +1 -1
  32. package/dist/cjs/math/position.js +12 -12
  33. package/dist/cjs/math/position.js.map +1 -1
  34. package/dist/cjs/services/getActivity.d.ts.map +1 -1
  35. package/dist/cjs/services/getActivity.js.map +1 -1
  36. package/dist/cjs/services/getFills.d.ts.map +1 -1
  37. package/dist/cjs/services/getFills.js.map +1 -1
  38. package/dist/cjs/services/getOrder.d.ts.map +1 -1
  39. package/dist/cjs/services/getOrder.js.map +1 -1
  40. package/dist/cjs/services/getOrders.d.ts.map +1 -1
  41. package/dist/cjs/services/getOrders.js.map +1 -1
  42. package/dist/cjs/services/getPositions.d.ts.map +1 -1
  43. package/dist/cjs/services/getPositions.js.map +1 -1
  44. package/dist/cjs/services/resolveSubscribeQuote.d.ts +1 -1
  45. package/dist/cjs/services/resolveSubscribeQuote.d.ts.map +1 -1
  46. package/dist/cjs/services/resolveSubscribeQuote.js +24 -13
  47. package/dist/cjs/services/resolveSubscribeQuote.js.map +1 -1
  48. package/dist/cjs/types/api.d.ts +4 -4
  49. package/dist/cjs/types/api.d.ts.map +1 -1
  50. package/dist/cjs/types/provider.d.ts +1 -1
  51. package/dist/cjs/types/provider.d.ts.map +1 -1
  52. package/dist/cjs/version.d.ts +1 -1
  53. package/dist/cjs/version.js +1 -1
  54. package/dist/cjs/wire/orderAmounts.d.ts +1 -2
  55. package/dist/cjs/wire/orderAmounts.d.ts.map +1 -1
  56. package/dist/cjs/wire/orderAmounts.js +19 -52
  57. package/dist/cjs/wire/orderAmounts.js.map +1 -1
  58. package/dist/cjs/wire/refuel.js +1 -1
  59. package/dist/cjs/wire/refuel.js.map +1 -1
  60. package/dist/cjs/wire/transferable.js +1 -1
  61. package/dist/cjs/wire/transferable.js.map +1 -1
  62. package/dist/cjs/wire/withdraw.d.ts.map +1 -1
  63. package/dist/cjs/wire/withdraw.js +1 -1
  64. package/dist/cjs/wire/withdraw.js.map +1 -1
  65. package/dist/esm/client/PerpsClient.d.ts +40 -8
  66. package/dist/esm/client/PerpsClient.d.ts.map +1 -1
  67. package/dist/esm/client/PerpsClient.js +37 -5
  68. package/dist/esm/client/PerpsClient.js.map +1 -1
  69. package/dist/esm/decimal/convert.d.ts +8 -24
  70. package/dist/esm/decimal/convert.d.ts.map +1 -1
  71. package/dist/esm/decimal/convert.js +16 -42
  72. package/dist/esm/decimal/convert.js.map +1 -1
  73. package/dist/esm/decimal/format.d.ts +2 -1
  74. package/dist/esm/decimal/format.d.ts.map +1 -1
  75. package/dist/esm/decimal/format.js.map +1 -1
  76. package/dist/esm/decimal/parse.d.ts +7 -20
  77. package/dist/esm/decimal/parse.d.ts.map +1 -1
  78. package/dist/esm/decimal/parse.js +9 -4
  79. package/dist/esm/decimal/parse.js.map +1 -1
  80. package/dist/esm/{wire → decimal}/requireDecimal.d.ts +1 -1
  81. package/dist/esm/decimal/requireDecimal.d.ts.map +1 -0
  82. package/dist/esm/{wire → decimal}/requireDecimal.js +3 -2
  83. package/dist/esm/decimal/requireDecimal.js.map +1 -0
  84. package/dist/esm/index.d.ts +5 -5
  85. package/dist/esm/index.d.ts.map +1 -1
  86. package/dist/esm/index.js +4 -4
  87. package/dist/esm/index.js.map +1 -1
  88. package/dist/esm/math/fills.d.ts +3 -3
  89. package/dist/esm/math/fills.d.ts.map +1 -1
  90. package/dist/esm/math/fills.js +1 -1
  91. package/dist/esm/math/fills.js.map +1 -1
  92. package/dist/esm/math/order.d.ts +3 -34
  93. package/dist/esm/math/order.d.ts.map +1 -1
  94. package/dist/esm/math/order.js +8 -26
  95. package/dist/esm/math/order.js.map +1 -1
  96. package/dist/esm/math/position.d.ts +16 -34
  97. package/dist/esm/math/position.d.ts.map +1 -1
  98. package/dist/esm/math/position.js +23 -36
  99. package/dist/esm/math/position.js.map +1 -1
  100. package/dist/esm/services/getActivity.d.ts +4 -0
  101. package/dist/esm/services/getActivity.d.ts.map +1 -1
  102. package/dist/esm/services/getActivity.js +4 -0
  103. package/dist/esm/services/getActivity.js.map +1 -1
  104. package/dist/esm/services/getFills.d.ts +4 -0
  105. package/dist/esm/services/getFills.d.ts.map +1 -1
  106. package/dist/esm/services/getFills.js +4 -0
  107. package/dist/esm/services/getFills.js.map +1 -1
  108. package/dist/esm/services/getOrder.d.ts +4 -0
  109. package/dist/esm/services/getOrder.d.ts.map +1 -1
  110. package/dist/esm/services/getOrder.js +4 -0
  111. package/dist/esm/services/getOrder.js.map +1 -1
  112. package/dist/esm/services/getOrders.d.ts +10 -1
  113. package/dist/esm/services/getOrders.d.ts.map +1 -1
  114. package/dist/esm/services/getOrders.js +10 -1
  115. package/dist/esm/services/getOrders.js.map +1 -1
  116. package/dist/esm/services/getPositions.d.ts +4 -0
  117. package/dist/esm/services/getPositions.d.ts.map +1 -1
  118. package/dist/esm/services/getPositions.js +4 -0
  119. package/dist/esm/services/getPositions.js.map +1 -1
  120. package/dist/esm/services/resolveSubscribeQuote.d.ts +6 -1
  121. package/dist/esm/services/resolveSubscribeQuote.d.ts.map +1 -1
  122. package/dist/esm/services/resolveSubscribeQuote.js +29 -13
  123. package/dist/esm/services/resolveSubscribeQuote.js.map +1 -1
  124. package/dist/esm/types/api.d.ts +4 -4
  125. package/dist/esm/types/api.d.ts.map +1 -1
  126. package/dist/esm/types/provider.d.ts +1 -1
  127. package/dist/esm/types/provider.d.ts.map +1 -1
  128. package/dist/esm/version.d.ts +1 -1
  129. package/dist/esm/version.js +1 -1
  130. package/dist/esm/wire/orderAmounts.d.ts +15 -29
  131. package/dist/esm/wire/orderAmounts.d.ts.map +1 -1
  132. package/dist/esm/wire/orderAmounts.js +28 -88
  133. package/dist/esm/wire/orderAmounts.js.map +1 -1
  134. package/dist/esm/wire/refuel.js +1 -1
  135. package/dist/esm/wire/refuel.js.map +1 -1
  136. package/dist/esm/wire/transferable.js +1 -1
  137. package/dist/esm/wire/transferable.js.map +1 -1
  138. package/dist/esm/wire/withdraw.d.ts.map +1 -1
  139. package/dist/esm/wire/withdraw.js +1 -1
  140. package/dist/esm/wire/withdraw.js.map +1 -1
  141. package/dist/types/client/PerpsClient.d.ts +40 -8
  142. package/dist/types/client/PerpsClient.d.ts.map +1 -1
  143. package/dist/types/decimal/convert.d.ts +8 -24
  144. package/dist/types/decimal/convert.d.ts.map +1 -1
  145. package/dist/types/decimal/format.d.ts +2 -1
  146. package/dist/types/decimal/format.d.ts.map +1 -1
  147. package/dist/types/decimal/parse.d.ts +7 -20
  148. package/dist/types/decimal/parse.d.ts.map +1 -1
  149. package/dist/types/{wire → decimal}/requireDecimal.d.ts +1 -1
  150. package/dist/types/decimal/requireDecimal.d.ts.map +1 -0
  151. package/dist/types/index.d.ts +5 -5
  152. package/dist/types/index.d.ts.map +1 -1
  153. package/dist/types/math/fills.d.ts +3 -3
  154. package/dist/types/math/fills.d.ts.map +1 -1
  155. package/dist/types/math/order.d.ts +3 -34
  156. package/dist/types/math/order.d.ts.map +1 -1
  157. package/dist/types/math/position.d.ts +16 -34
  158. package/dist/types/math/position.d.ts.map +1 -1
  159. package/dist/types/services/getActivity.d.ts +4 -0
  160. package/dist/types/services/getActivity.d.ts.map +1 -1
  161. package/dist/types/services/getFills.d.ts +4 -0
  162. package/dist/types/services/getFills.d.ts.map +1 -1
  163. package/dist/types/services/getOrder.d.ts +4 -0
  164. package/dist/types/services/getOrder.d.ts.map +1 -1
  165. package/dist/types/services/getOrders.d.ts +10 -1
  166. package/dist/types/services/getOrders.d.ts.map +1 -1
  167. package/dist/types/services/getPositions.d.ts +4 -0
  168. package/dist/types/services/getPositions.d.ts.map +1 -1
  169. package/dist/types/services/resolveSubscribeQuote.d.ts +6 -1
  170. package/dist/types/services/resolveSubscribeQuote.d.ts.map +1 -1
  171. package/dist/types/types/api.d.ts +4 -4
  172. package/dist/types/types/api.d.ts.map +1 -1
  173. package/dist/types/types/provider.d.ts +1 -1
  174. package/dist/types/types/provider.d.ts.map +1 -1
  175. package/dist/types/version.d.ts +1 -1
  176. package/dist/types/wire/orderAmounts.d.ts +15 -29
  177. package/dist/types/wire/orderAmounts.d.ts.map +1 -1
  178. package/dist/types/wire/withdraw.d.ts.map +1 -1
  179. package/package.json +2 -2
  180. package/src/client/PerpsClient.ts +40 -7
  181. package/src/decimal/convert.ts +27 -54
  182. package/src/decimal/format.ts +3 -1
  183. package/src/decimal/parse.ts +10 -6
  184. package/src/{wire → decimal}/requireDecimal.ts +3 -6
  185. package/src/index.ts +4 -21
  186. package/src/math/fills.ts +8 -4
  187. package/src/math/order.ts +8 -31
  188. package/src/math/position.ts +32 -43
  189. package/src/services/getActivity.ts +4 -0
  190. package/src/services/getFills.ts +4 -0
  191. package/src/services/getOrder.ts +4 -0
  192. package/src/services/getOrders.ts +10 -1
  193. package/src/services/getPositions.ts +4 -0
  194. package/src/services/resolveSubscribeQuote.ts +37 -19
  195. package/src/types/api.ts +4 -3
  196. package/src/types/provider.ts +1 -1
  197. package/src/version.ts +1 -1
  198. package/src/wire/orderAmounts.ts +35 -117
  199. package/src/wire/refuel.ts +1 -1
  200. package/src/wire/transferable.ts +1 -1
  201. package/src/wire/withdraw.ts +1 -1
  202. package/dist/cjs/wire/requireDecimal.d.ts.map +0 -1
  203. package/dist/cjs/wire/requireDecimal.js.map +0 -1
  204. package/dist/esm/wire/requireDecimal.d.ts.map +0 -1
  205. package/dist/esm/wire/requireDecimal.js.map +0 -1
  206. package/dist/types/wire/requireDecimal.d.ts.map +0 -1
  207. /package/dist/cjs/{wire → decimal}/requireDecimal.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"getFills.d.ts","sourceRoot":"","sources":["../../../src/services/getFills.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,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,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAWxB"}
1
+ {"version":3,"file":"getFills.d.ts","sourceRoot":"","sources":["../../../src/services/getFills.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,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,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAWxB"}
@@ -20,6 +20,10 @@ export interface GetOrderParams {
20
20
  *
21
21
  * @throws {PerpsError} When the provider plugin is not registered, or on
22
22
  * backend / network / parsing errors.
23
+ * @throws {PerpsError} `SetupRequired` when the venue needs a credential (a
24
+ * Lighter auth token or an Ondo session) and none is stored.
25
+ * @throws {PerpsError} `Unauthorized` when the venue rejects the credential.
26
+ * @throws {PerpsError} `AccountNotFound` when the wallet has no venue account.
23
27
  * @example
24
28
  * ```ts
25
29
  * const order = await getOrder(client, {
@@ -1 +1 @@
1
- {"version":3,"file":"getOrder.d.ts","sourceRoot":"","sources":["../../../src/services/getOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC9C,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,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAA;CACX;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,KAAK,CAAC,CAKhB"}
1
+ {"version":3,"file":"getOrder.d.ts","sourceRoot":"","sources":["../../../src/services/getOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC9C,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,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAA;CACX;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,KAAK,CAAC,CAKhB"}
@@ -18,6 +18,15 @@ export interface GetOrdersParams {
18
18
  /** Opaque pagination cursor from the previous response. */
19
19
  cursor?: string;
20
20
  }
21
- /** Read account orders with active lifecycle statuses as the default filter. */
21
+ /**
22
+ * Read account orders with active lifecycle statuses as the default filter.
23
+ *
24
+ * @throws {PerpsError} When the provider plugin is not registered, or on
25
+ * backend / network / parsing errors.
26
+ * @throws {PerpsError} `SetupRequired` when the venue needs a credential (a
27
+ * Lighter auth token or an Ondo session) and none is stored.
28
+ * @throws {PerpsError} `Unauthorized` when the venue rejects the credential.
29
+ * @throws {PerpsError} `AccountNotFound` when the wallet has no venue account.
30
+ */
22
31
  export declare function getOrders(client: PerpsSDKClient, params: GetOrdersParams, options?: SDKRequestOptions): Promise<OrdersResponse>;
23
32
  //# sourceMappingURL=getOrders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getOrders.d.ts","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACpE,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;AAG1D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,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,gFAAgF;AAChF,wBAAsB,SAAS,CAC7B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAWzB"}
1
+ {"version":3,"file":"getOrders.d.ts","sourceRoot":"","sources":["../../../src/services/getOrders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACpE,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;AAG1D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,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;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAWzB"}
@@ -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"}
@@ -1,4 +1,4 @@
1
- import type { FeeTier } from '@lifi/perps-types';
1
+ import { type FeeTier } from '@lifi/perps-types';
2
2
  import type { PerpsSDKClient, ProviderGetQuoteParams, QuoteListener } from '../types/provider.js';
3
3
  import type { WsProvider } from '../websocket/types.js';
4
4
  /**
@@ -25,6 +25,11 @@ export declare const QUOTE_THROTTLE_MS = 100;
25
25
  * listeners once and cancels any pending trailing emission, so the wire
26
26
  * subscriptions' ref counts cannot be double-decremented.
27
27
  *
28
+ * A throw while building or delivering a streamed quote (an unparsable mark
29
+ * price, a throwing `onQuote`) is logged via `wsLog.listenerFailure` and the
30
+ * emission is skipped, on both the immediate and the trailing-timer path.
31
+ *
32
+ * @throws {PerpsError} `ValidationError` when `params.size` is not finite.
28
33
  * @throws {PerpsError} `MarketNotFound` when no market matches symbol+type.
29
34
  * @internal
30
35
  */
@@ -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;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
+ {"version":3,"file":"resolveSubscribeQuote.d.ts","sourceRoot":"","sources":["../../../src/services/resolveSubscribeQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAIb,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,aAAa,EACd,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAIvD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAA;AAEpC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;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,CAiGrB"}
@@ -1,4 +1,4 @@
1
- import type { AccountConfigSetting, AccountResponse, CancelTwapOrderParams as ActionCancelTwapOrderParams, CreateReferralCodeParams as ActionCreateReferralCodeParams, ActionParamsMap, PlaceTwapOrderParams as ActionPlaceTwapOrderParams, ActionStep, ExecuteActionResponse, MarginMode, MarketRef, MetaActionType, ModifyOrderInput, OnboardParams, OrderSide, OrderType, PortfolioHistoryRange, SetupAction, SetupOption, SignedActionStep, TimeInForce, TriggerOrderInput, WithdrawalParams } from '@lifi/perps-types';
1
+ import type { AccountConfigSetting, AccountResponse, CancelTwapOrderParams as ActionCancelTwapOrderParams, CreateReferralCodeParams as ActionCreateReferralCodeParams, ActionParamsMap, PlaceTwapOrderParams as ActionPlaceTwapOrderParams, ActionStep, DecimalString, ExecuteActionResponse, MarginMode, MarketRef, MetaActionType, ModifyOrderInput, OnboardParams, OrderSide, OrderType, PortfolioHistoryRange, SetupAction, SetupOption, SignedActionStep, TimeInForce, TriggerOrderInput, WithdrawalParams } from '@lifi/perps-types';
2
2
  import type { Account, Address, WalletClient } from 'viem';
3
3
  import type { RetryConfig } from '../transport/retryPolicy.js';
4
4
  import type { RequestInterceptor, SwitchChainHook } from './config.js';
@@ -110,9 +110,9 @@ export interface PlaceOrderParams {
110
110
  side: OrderSide;
111
111
  type: Exclude<OrderType, OrderType.TWAP>;
112
112
  /** Base-asset size as a decimal wire string. */
113
- size: string;
113
+ size: DecimalString;
114
114
  /** Limit price as a decimal wire string; required by limit-style orders. */
115
- price: string;
115
+ price: DecimalString;
116
116
  /** Optional leverage multiplier; provider defaults apply when omitted. */
117
117
  leverage?: number;
118
118
  /**
@@ -191,7 +191,7 @@ export interface SendAssetActionParams {
191
191
  /** Destination DEX/account identifier understood by the provider. */
192
192
  destinationDex: string;
193
193
  /** Transfer amount as a provider-compatible decimal wire string. */
194
- amount: string;
194
+ amount: DecimalString;
195
195
  }
196
196
  /**
197
197
  * Parameters for canceling orders.
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/types/api.ts"],"names":[],"mappings":"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"}
@@ -472,7 +472,7 @@ export interface PerpsProviderPlugin {
472
472
  * @throws {PerpsError} `ValidationError` when a `Position` decimal that the
473
473
  * venue formula reads is malformed.
474
474
  */
475
- positionRemovableMargin(position: Position): string | undefined;
475
+ positionRemovableMargin(position: Position): DecimalString | undefined;
476
476
  /**
477
477
  * Project a typed {@link AccountConfig} against the provider's `setup`
478
478
  * descriptors into `AccountConfigSetting[]`. Used by
@@ -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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"}
@@ -9,5 +9,5 @@ export declare const name = "@lifi/perps-sdk";
9
9
  *
10
10
  * @public
11
11
  */
12
- export declare const version = "21.0.0";
12
+ export declare const version = "22.0.0";
13
13
  //# sourceMappingURL=version.d.ts.map
@@ -1,4 +1,4 @@
1
- import { type DecimalString, type Market } from '@lifi/perps-types';
1
+ import type { DecimalString, Market } from '@lifi/perps-types';
2
2
  import type { PerpsSDKClient } from '../types/provider.js';
3
3
  /** @public */
4
4
  export interface OrderAmountsInput {
@@ -9,46 +9,32 @@ export interface OrderAmountsInput {
9
9
  amount: DecimalString;
10
10
  leverage: number;
11
11
  price: DecimalString;
12
- /** Decimals for the quote-asset amounts (margin, notional). Default 2. */
13
- quoteDecimals?: number;
14
12
  }
15
13
  /** @public */
16
14
  export interface OrderAmounts {
17
15
  /**
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.
16
+ * The held `amount`, byte-identical, when the user holds the margin;
17
+ * otherwise `notional ÷ leverage`, a display and comparison value that
18
+ * never reaches a venue.
20
19
  */
21
20
  margin: DecimalString;
22
- /** Snapped onto the venue lot grid. */
21
+ /** Snapped onto the venue lot grid; the one amount an order sends. */
23
22
  size: DecimalString;
24
- /** Truncated to `quoteDecimals`. */
23
+ /** Exactly `size × price`, from the snapped size. */
25
24
  notional: DecimalString;
26
25
  }
27
26
  /**
28
27
  * The three order-entry amounts, derived from whichever one the user typed.
28
+ * Only `size` snaps, onto the market's venue lot grid, because an order sends
29
+ * size alone; no quote amount has a grid. A held margin returns byte-identical,
30
+ * `notional` is the snapped size × price, and a derived margin is
31
+ * `notional ÷ leverage` in `DivBig` (40 places, half-up).
29
32
  *
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.
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.
52
38
  * @public
53
39
  */
54
40
  export declare function calculateOrderAmounts(input: OrderAmountsInput): OrderAmounts | null;
@@ -1 +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"}
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 +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;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAGjE;;;;;;;;;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,CASf"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifi/perps-sdk",
3
- "version": "21.0.0",
3
+ "version": "22.0.0",
4
4
  "description": "LI.FI Perps SDK for perpetuals trading",
5
5
  "homepage": "https://github.com/lifinance/perps-sdk",
6
6
  "bugs": {
@@ -46,7 +46,7 @@
46
46
  "big.js": "^7.0.1",
47
47
  "partysocket": "^1.1.19",
48
48
  "viem": "^2.55.18",
49
- "@lifi/perps-types": "^19.0.0"
49
+ "@lifi/perps-types": "^20.0.0"
50
50
  },
51
51
  "publishConfig": {
52
52
  "access": "public"
@@ -7,6 +7,7 @@ import type {
7
7
  ActionStep,
8
8
  AvailableToTrade,
9
9
  CreateActionResponse,
10
+ DecimalString,
10
11
  ExecuteActionResponse,
11
12
  MarketRef,
12
13
  MarketSettings,
@@ -360,7 +361,14 @@ export class PerpsClient {
360
361
  return resolveProvider(this.sdkClient, provider)
361
362
  }
362
363
 
363
- /** Read active or historical orders from the selected venue. */
364
+ /**
365
+ * Read active or historical orders from the selected venue.
366
+ *
367
+ * @throws {PerpsError} `SetupRequired` when the venue needs a credential (a
368
+ * Lighter auth token or an Ondo session) and none is stored.
369
+ * @throws {PerpsError} `Unauthorized` when the venue rejects the credential.
370
+ * @throws {PerpsError} `AccountNotFound` when the wallet has no venue account.
371
+ */
364
372
  async getOrders(
365
373
  params: GetOrdersParams,
366
374
  options?: SDKRequestOptions
@@ -368,7 +376,14 @@ export class PerpsClient {
368
376
  return fetchOrders(this.sdkClient, params, options)
369
377
  }
370
378
 
371
- /** Read one venue order through the provider's unified mapper. */
379
+ /**
380
+ * Read one venue order through the provider's unified mapper.
381
+ *
382
+ * @throws {PerpsError} `SetupRequired` when the venue needs a credential (a
383
+ * Lighter auth token or an Ondo session) and none is stored.
384
+ * @throws {PerpsError} `Unauthorized` when the venue rejects the credential.
385
+ * @throws {PerpsError} `AccountNotFound` when the wallet has no venue account.
386
+ */
372
387
  async getOrder(
373
388
  params: GetOrderParams,
374
389
  options?: SDKRequestOptions
@@ -654,6 +669,9 @@ export class PerpsClient {
654
669
  * @throws {PerpsError} When the provider plugin is not registered,
655
670
  * `ValidationError` for a spot market, or any other `PerpsError` when the
656
671
  * venue read fails or carries no usable value.
672
+ * @throws {PerpsError} `SetupRequired` when the venue needs a credential (an
673
+ * Ondo session) and none is stored.
674
+ * @throws {PerpsError} `Unauthorized` when the venue rejects the credential.
657
675
  * @public
658
676
  */
659
677
  async getMarketSettings(params: {
@@ -674,12 +692,19 @@ export class PerpsClient {
674
692
  * account displays read the account-scoped
675
693
  * {@link AccountSummary.availableMargin} instead.
676
694
  *
677
- * Providers that read a per-market figure answer it directly. For every
678
- * other provider this falls back to the account summary, so both sides
679
- * equal `availableMargin` and the asset is the market's quote asset.
695
+ * Providers that read a per-market figure answer it directly. A provider
696
+ * that has no per-market figure for the market (a Hyperliquid or Lighter
697
+ * spot market) resolves `undefined`, and this falls back to the account
698
+ * summary, so both sides equal `availableMargin` and the asset is the
699
+ * market's quote asset. A provider read that throws propagates and never
700
+ * falls back.
680
701
  *
681
702
  * @throws {PerpsError} When the provider plugin is not registered, or the
682
703
  * market is unknown to the provider's market registry.
704
+ * @throws {PerpsError} `SetupRequired` when the venue needs a credential (a
705
+ * Lighter auth token or an Ondo session) and none is stored.
706
+ * @throws {PerpsError} `Unauthorized` when the venue rejects the credential.
707
+ * @throws {PerpsError} `AccountNotFound` when the wallet has no venue account.
683
708
  * @public
684
709
  */
685
710
  async getAvailableToTrade(
@@ -729,7 +754,7 @@ export class PerpsClient {
729
754
  * venue formula reads is malformed.
730
755
  * @public
731
756
  */
732
- getPositionRemovableMargin(position: Position): string | undefined {
757
+ getPositionRemovableMargin(position: Position): DecimalString | undefined {
733
758
  return this.requireProvider(
734
759
  position.market.providerId
735
760
  ).positionRemovableMargin(position)
@@ -813,6 +838,10 @@ export class PerpsClient {
813
838
  * @throws {PerpsError} When the provider plugin is not registered, when
814
839
  * either the plugin read or the asset sync fails, when a row's
815
840
  * `withdrawalFee` is not a non-negative decimal.
841
+ * @throws {PerpsError} `SetupRequired` when the venue needs a credential (a
842
+ * Lighter auth token or an Ondo session) and none is stored.
843
+ * @throws {PerpsError} `Unauthorized` when the venue rejects the credential.
844
+ * @throws {PerpsError} `AccountNotFound` when the wallet has no venue account.
816
845
  * @public
817
846
  */
818
847
  async getWithdrawableBalances(
@@ -880,6 +909,10 @@ export class PerpsClient {
880
909
  *
881
910
  * @throws {PerpsError} When the provider plugin is not registered, when it
882
911
  * declares no portfolio history read, or when the venue read fails.
912
+ * @throws {PerpsError} `SetupRequired` when the venue needs a credential (a
913
+ * Lighter auth token or an Ondo session) and none is stored.
914
+ * @throws {PerpsError} `Unauthorized` when the venue rejects the credential.
915
+ * @throws {PerpsError} `AccountNotFound` when the wallet has no venue account.
883
916
  * @public
884
917
  */
885
918
  async getPortfolioHistory(
@@ -1416,7 +1449,7 @@ export class PerpsClient {
1416
1449
  address: Address
1417
1450
  market: MarketRef
1418
1451
  action: 'add' | 'remove'
1419
- amount: string
1452
+ amount: DecimalString
1420
1453
  }): Promise<ExecuteActionResponse> {
1421
1454
  return this.execute({
1422
1455
  ...params,
@@ -2,7 +2,7 @@ import { type DecimalString, PerpsErrorCode } from '@lifi/perps-types'
2
2
  import Big from 'big.js'
3
3
  import { formatUnits } from 'viem'
4
4
  import { PerpsError } from '../errors/PerpsError.js'
5
- import { parseDecimal } from './parse.js'
5
+ import { requireDecimal } from './requireDecimal.js'
6
6
 
7
7
  /**
8
8
  * Off-grid resolution for {@link decimalToBaseUnits}:
@@ -14,19 +14,14 @@ import { parseDecimal } from './parse.js'
14
14
  */
15
15
  export type BaseUnitsRounding = 'truncate' | 'round'
16
16
 
17
- /**
18
- * @deprecated Use `BaseUnitsRounding`. Removed in the next major.
19
- */
20
- export type ScaleToIntegerPolicy = BaseUnitsRounding
21
-
22
17
  /**
23
18
  * Scale a decimal string to a scaled integer in exact decimal arithmetic — an
24
19
  * on-grid input maps to its exact scaled integer with no binary float
25
20
  * artifacts (`'0.29'` at 2 decimals is 29, never 28). Off-grid input resolves
26
21
  * per `rounding`; there is no silent default.
27
22
  *
28
- * @throws {PerpsError} `ValidationError` when `value` is not a decimal
29
- * numeric string, `decimals` is not a non-negative integer, or the scaled
23
+ * @throws {PerpsError} `ValidationError` when `value` is not a
24
+ * {@link DecimalString}, `decimals` is not a non-negative integer, or the scaled
30
25
  * result's magnitude exceeds `Number.MAX_SAFE_INTEGER`.
31
26
  * @public
32
27
  */
@@ -41,16 +36,7 @@ export const decimalToBaseUnits = (
41
36
  `Invalid decimals for integer scaling: ${decimals}`
42
37
  )
43
38
  }
44
- let parsed: Big
45
- try {
46
- parsed = new Big(value)
47
- } catch {
48
- throw new PerpsError(
49
- PerpsErrorCode.ValidationError,
50
- `Invalid decimal string for integer scaling: '${value}'`
51
- )
52
- }
53
- const scaled = parsed
39
+ const scaled = requireDecimal(value, 'decimalToBaseUnits(value)')
54
40
  .times(new Big(10).pow(decimals))
55
41
  .round(0, rounding === 'truncate' ? Big.roundDown : Big.roundHalfUp)
56
42
  if (scaled.abs().gt(Number.MAX_SAFE_INTEGER)) {
@@ -62,17 +48,15 @@ export const decimalToBaseUnits = (
62
48
  return scaled.toNumber()
63
49
  }
64
50
 
65
- /**
66
- * @deprecated Use `decimalToBaseUnits`. Removed in the next major.
67
- */
68
- export const scaleToInteger = decimalToBaseUnits
51
+ const BASE_UNITS_PATTERN = /^-?\d+$/
69
52
 
70
53
  /**
71
- * Convert a base-unit amount (bigint string) to a decimal string.
54
+ * Convert a base-unit amount (integer string) to a decimal string.
72
55
  *
73
56
  * @param amount - Amount in base units (e.g. "1000000" for 1 USDC)
74
57
  * @param decimals - Token decimals (e.g. 6 for USDC)
75
- * @returns Decimal string; `"0"` when `amount` is not a valid bigint
58
+ * @throws {PerpsError} `ValidationError` when `amount` is not an integer
59
+ * string, or `decimals` is not a non-negative integer.
76
60
  * @example
77
61
  * ```ts
78
62
  * baseUnitsToDecimal('1000000', 6) // '1'
@@ -80,27 +64,22 @@ export const scaleToInteger = decimalToBaseUnits
80
64
  * @public
81
65
  */
82
66
  export function baseUnitsToDecimal(
83
- amount: string,
67
+ amount: DecimalString,
84
68
  decimals: number
85
69
  ): DecimalString {
86
- try {
87
- return formatUnits(BigInt(amount), decimals)
88
- } catch {
89
- return '0'
70
+ if (!Number.isInteger(decimals) || decimals < 0) {
71
+ throw new PerpsError(
72
+ PerpsErrorCode.ValidationError,
73
+ `Invalid \`baseUnitsToDecimal(decimals)\`: ${decimals} is not a non-negative integer.`
74
+ )
90
75
  }
91
- }
92
-
93
- /**
94
- * @deprecated Use `baseUnitsToDecimal`. Removed in the next major.
95
- */
96
- export const fromBaseUnits = baseUnitsToDecimal
97
-
98
- /**
99
- * @deprecated Compose `parseDecimal(baseUnitsToDecimal(...))`. Removed in the
100
- * next major.
101
- */
102
- export function fromBaseUnitsNumber(amount: string, decimals: number): number {
103
- return parseDecimal(baseUnitsToDecimal(amount, decimals)) ?? 0
76
+ if (!BASE_UNITS_PATTERN.test(amount)) {
77
+ throw new PerpsError(
78
+ PerpsErrorCode.ValidationError,
79
+ `Invalid \`baseUnitsToDecimal(amount)\`: '${amount}' is not an integer base-unit string.`
80
+ )
81
+ }
82
+ return formatUnits(BigInt(amount), decimals)
104
83
  }
105
84
 
106
85
  /**
@@ -114,8 +93,8 @@ export function fromBaseUnitsNumber(amount: string, decimals: number): number {
114
93
  * float artifact: `'0.01'` at 18 decimals gives
115
94
  * `'0.010000000000000000'`, which `Number#toFixed` cannot.
116
95
  *
117
- * @throws {PerpsError} `ValidationError` when `value` is not a decimal
118
- * numeric string, or `decimals` is not a non-negative integer.
96
+ * @throws {PerpsError} `ValidationError` when `value` is not a
97
+ * {@link DecimalString}, or `decimals` is not a non-negative integer.
119
98
  * @public
120
99
  */
121
100
  export function truncateDecimal(
@@ -128,16 +107,10 @@ export function truncateDecimal(
128
107
  `Invalid decimals for truncation: ${decimals}`
129
108
  )
130
109
  }
131
- let parsed: Big
132
- try {
133
- parsed = new Big(value)
134
- } catch {
135
- throw new PerpsError(
136
- PerpsErrorCode.ValidationError,
137
- `Invalid decimal string for truncation: '${value}'`
138
- )
139
- }
140
- const truncated = parsed.round(decimals, Big.roundDown)
110
+ const truncated = requireDecimal(value, 'truncateDecimal(value)').round(
111
+ decimals,
112
+ Big.roundDown
113
+ )
141
114
  // big.js carries the sign through a round to zero; '-0.00' is not a spelling.
142
115
  return (truncated.eq(0) ? new Big(0) : truncated).toFixed(decimals)
143
116
  }
@@ -1,3 +1,5 @@
1
+ import type { DecimalString } from '@lifi/perps-types'
2
+
1
3
  /**
2
4
  * Options shared by the human-facing display formatters.
3
5
  *
@@ -28,7 +30,7 @@ export type RoundingMode = 'halfUp' | 'floor'
28
30
 
29
31
  const DEFAULT_PLACEHOLDER = '—'
30
32
 
31
- type FormatInput = number | string | null | undefined
33
+ type FormatInput = number | DecimalString | string | null | undefined
32
34
 
33
35
  /**
34
36
  * Extra decimal places used to normalise IEEE-754 representation noise before
@@ -1,4 +1,4 @@
1
- import type { DecimalString } from '@lifi/perps-types'
1
+ import { DECIMAL_PATTERN, type DecimalString } from '@lifi/perps-types'
2
2
 
3
3
  /**
4
4
  * Parse a string to a float, stripping common formatting artefacts.
@@ -24,11 +24,6 @@ function toFloat(value: string): number {
24
24
  return parseFloat(cleaned)
25
25
  }
26
26
 
27
- /**
28
- * @deprecated Use `parseDecimal`. Removed in the next major.
29
- */
30
- export const stringToFloat = toFloat
31
-
32
27
  const FORMATTED_NUMBER =
33
28
  /^(?:[+-]\s*)?(?:\$\s*)?(?:(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?(?:\s*(?:%|USD))?$/i
34
29
 
@@ -54,3 +49,12 @@ export function parseDecimal(
54
49
  const parsed = toFloat(value)
55
50
  return Number.isFinite(parsed) ? parsed : undefined
56
51
  }
52
+
53
+ /**
54
+ * Narrows an unknown value to a {@link DecimalString}.
55
+ *
56
+ * @public
57
+ */
58
+ export function isDecimalString(value: unknown): value is DecimalString {
59
+ return typeof value === 'string' && DECIMAL_PATTERN.test(value)
60
+ }
@@ -1,13 +1,10 @@
1
- import {
2
- type DecimalString,
3
- isDecimalString,
4
- PerpsErrorCode,
5
- } from '@lifi/perps-types'
1
+ import { type DecimalString, PerpsErrorCode } from '@lifi/perps-types'
6
2
  import Big from 'big.js'
7
3
  import { PerpsError } from '../errors/PerpsError.js'
4
+ import { isDecimalString } from './parse.js'
8
5
 
9
6
  /**
10
- * Parse a wire-tier decimal input, naming the field it came from when the
7
+ * Parse a decimal input, naming the field it came from when the
11
8
  * value breaks the {@link DecimalString} contract, so a malformed amount
12
9
  * fails at the SDK boundary instead of inside big.js.
13
10
  *