@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.
- package/README.md +102 -56
- package/dist/cjs/client/PerpsClient.d.ts +3 -2
- package/dist/cjs/client/PerpsClient.d.ts.map +1 -1
- package/dist/cjs/client/PerpsClient.js +16 -9
- package/dist/cjs/client/PerpsClient.js.map +1 -1
- package/dist/cjs/decimal/arithmetic.d.ts +15 -0
- package/dist/cjs/decimal/arithmetic.d.ts.map +1 -0
- package/dist/cjs/decimal/arithmetic.js +53 -0
- package/dist/cjs/decimal/arithmetic.js.map +1 -0
- package/dist/cjs/decimal/big.d.ts +0 -1
- package/dist/cjs/decimal/big.d.ts.map +1 -1
- package/dist/cjs/decimal/big.js +0 -4
- package/dist/cjs/decimal/big.js.map +1 -1
- package/dist/cjs/decimal/compare.d.ts +6 -2
- package/dist/cjs/decimal/compare.d.ts.map +1 -1
- package/dist/cjs/decimal/compare.js +15 -2
- package/dist/cjs/decimal/compare.js.map +1 -1
- package/dist/cjs/decimal/convert.d.ts +10 -6
- package/dist/cjs/decimal/convert.d.ts.map +1 -1
- package/dist/cjs/decimal/convert.js +34 -21
- package/dist/cjs/decimal/convert.js.map +1 -1
- package/dist/cjs/decimal/decimalStringToBig.d.ts +5 -0
- package/dist/cjs/decimal/decimalStringToBig.d.ts.map +1 -0
- package/dist/cjs/decimal/decimalStringToBig.js +25 -0
- package/dist/cjs/decimal/decimalStringToBig.js.map +1 -0
- package/dist/cjs/decimal/format.d.ts.map +1 -1
- package/dist/cjs/decimal/format.js +70 -52
- package/dist/cjs/decimal/format.js.map +1 -1
- package/dist/cjs/decimal/parse.d.ts +5 -4
- package/dist/cjs/decimal/parse.d.ts.map +1 -1
- package/dist/cjs/decimal/parse.js +43 -25
- package/dist/cjs/decimal/parse.js.map +1 -1
- package/dist/cjs/errors/invalidInput.d.ts +3 -0
- package/dist/cjs/errors/invalidInput.d.ts.map +1 -0
- package/dist/cjs/errors/invalidInput.js +9 -0
- package/dist/cjs/errors/invalidInput.js.map +1 -0
- package/dist/cjs/index.d.ts +15 -12
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +69 -9
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/math/fills.d.ts +1 -1
- package/dist/cjs/math/fills.d.ts.map +1 -1
- package/dist/cjs/math/fills.js +28 -13
- package/dist/cjs/math/fills.js.map +1 -1
- package/dist/cjs/math/order.d.ts +27 -16
- package/dist/cjs/math/order.d.ts.map +1 -1
- package/dist/cjs/math/order.js +131 -134
- package/dist/cjs/math/order.js.map +1 -1
- package/dist/cjs/math/position.d.ts +85 -35
- package/dist/cjs/math/position.d.ts.map +1 -1
- package/dist/cjs/math/position.js +93 -94
- package/dist/cjs/math/position.js.map +1 -1
- package/dist/cjs/services/getGasRecommendation.js +1 -1
- package/dist/cjs/services/getGasRecommendation.js.map +1 -1
- package/dist/cjs/services/getQuote.d.ts +1 -1
- package/dist/cjs/services/resolveSubscribeQuote.d.ts.map +1 -1
- package/dist/cjs/services/resolveSubscribeQuote.js +3 -2
- package/dist/cjs/services/resolveSubscribeQuote.js.map +1 -1
- package/dist/cjs/transport/request.d.ts +1 -0
- package/dist/cjs/transport/request.d.ts.map +1 -1
- package/dist/cjs/transport/request.js +2 -2
- package/dist/cjs/transport/request.js.map +1 -1
- package/dist/cjs/types/api.d.ts +4 -0
- package/dist/cjs/types/api.d.ts.map +1 -1
- package/dist/cjs/types/provider.d.ts +9 -5
- package/dist/cjs/types/provider.d.ts.map +1 -1
- package/dist/cjs/types/withdrawal.d.ts +12 -4
- package/dist/cjs/types/withdrawal.d.ts.map +1 -1
- package/dist/cjs/utils/createSafeFunction.d.ts +2 -0
- package/dist/cjs/utils/createSafeFunction.d.ts.map +1 -0
- package/dist/cjs/utils/createSafeFunction.js +15 -0
- package/dist/cjs/utils/createSafeFunction.js.map +1 -0
- package/dist/cjs/utils/timestampToIsoString.d.ts +3 -0
- package/dist/cjs/utils/timestampToIsoString.d.ts.map +1 -0
- package/dist/cjs/utils/timestampToIsoString.js +16 -0
- package/dist/cjs/utils/timestampToIsoString.js.map +1 -0
- package/dist/cjs/utils/warnOnce.d.ts +6 -0
- package/dist/cjs/utils/warnOnce.d.ts.map +1 -1
- package/dist/cjs/utils/warnOnce.js +19 -1
- package/dist/cjs/utils/warnOnce.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/websocket/PerpsWsClient.d.ts +2 -0
- package/dist/cjs/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/cjs/websocket/PerpsWsClient.js +14 -1
- package/dist/cjs/websocket/PerpsWsClient.js.map +1 -1
- package/dist/cjs/websocket/wsLog.d.ts +2 -0
- package/dist/cjs/websocket/wsLog.d.ts.map +1 -1
- package/dist/cjs/websocket/wsLog.js +9 -0
- package/dist/cjs/websocket/wsLog.js.map +1 -1
- package/dist/cjs/wire/orderAmounts.d.ts +3 -2
- package/dist/cjs/wire/orderAmounts.d.ts.map +1 -1
- package/dist/cjs/wire/orderAmounts.js +22 -21
- package/dist/cjs/wire/orderAmounts.js.map +1 -1
- package/dist/cjs/wire/refuel.d.ts +4 -1
- package/dist/cjs/wire/refuel.d.ts.map +1 -1
- package/dist/cjs/wire/refuel.js +23 -6
- package/dist/cjs/wire/refuel.js.map +1 -1
- package/dist/cjs/wire/transferable.js +3 -3
- package/dist/cjs/wire/transferable.js.map +1 -1
- package/dist/cjs/wire/withdraw.d.ts.map +1 -1
- package/dist/cjs/wire/withdraw.js +3 -3
- package/dist/cjs/wire/withdraw.js.map +1 -1
- package/dist/esm/client/PerpsClient.d.ts +17 -4
- package/dist/esm/client/PerpsClient.d.ts.map +1 -1
- package/dist/esm/client/PerpsClient.js +30 -8
- package/dist/esm/client/PerpsClient.js.map +1 -1
- package/dist/esm/decimal/arithmetic.d.ts +98 -0
- package/dist/esm/decimal/arithmetic.d.ts.map +1 -0
- package/dist/esm/decimal/arithmetic.js +126 -0
- package/dist/esm/decimal/arithmetic.js.map +1 -0
- package/dist/esm/decimal/big.d.ts +0 -2
- package/dist/esm/decimal/big.d.ts.map +1 -1
- package/dist/esm/decimal/big.js +0 -4
- package/dist/esm/decimal/big.js.map +1 -1
- package/dist/esm/decimal/compare.d.ts +40 -6
- package/dist/esm/decimal/compare.d.ts.map +1 -1
- package/dist/esm/decimal/compare.js +46 -6
- package/dist/esm/decimal/compare.js.map +1 -1
- package/dist/esm/decimal/convert.d.ts +50 -36
- package/dist/esm/decimal/convert.d.ts.map +1 -1
- package/dist/esm/decimal/convert.js +64 -42
- package/dist/esm/decimal/convert.js.map +1 -1
- package/dist/esm/decimal/decimalStringToBig.d.ts +25 -0
- package/dist/esm/decimal/decimalStringToBig.d.ts.map +1 -0
- package/dist/esm/decimal/decimalStringToBig.js +37 -0
- package/dist/esm/decimal/decimalStringToBig.js.map +1 -0
- package/dist/esm/decimal/format.d.ts +4 -1
- package/dist/esm/decimal/format.d.ts.map +1 -1
- package/dist/esm/decimal/format.js +71 -70
- package/dist/esm/decimal/format.js.map +1 -1
- package/dist/esm/decimal/parse.d.ts +29 -13
- package/dist/esm/decimal/parse.d.ts.map +1 -1
- package/dist/esm/decimal/parse.js +61 -44
- package/dist/esm/decimal/parse.js.map +1 -1
- package/dist/esm/errors/invalidInput.d.ts +4 -0
- package/dist/esm/errors/invalidInput.d.ts.map +1 -0
- package/dist/esm/errors/invalidInput.js +7 -0
- package/dist/esm/errors/invalidInput.js.map +1 -0
- package/dist/esm/index.d.ts +15 -12
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +11 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/math/fills.d.ts +6 -3
- package/dist/esm/math/fills.d.ts.map +1 -1
- package/dist/esm/math/fills.js +31 -16
- package/dist/esm/math/fills.js.map +1 -1
- package/dist/esm/math/order.d.ts +84 -66
- package/dist/esm/math/order.d.ts.map +1 -1
- package/dist/esm/math/order.js +178 -175
- package/dist/esm/math/order.js.map +1 -1
- package/dist/esm/math/position.d.ts +155 -98
- package/dist/esm/math/position.d.ts.map +1 -1
- package/dist/esm/math/position.js +160 -156
- package/dist/esm/math/position.js.map +1 -1
- package/dist/esm/services/getGasRecommendation.js +1 -1
- package/dist/esm/services/getGasRecommendation.js.map +1 -1
- package/dist/esm/services/getQuote.d.ts +2 -2
- package/dist/esm/services/getQuote.js +1 -1
- package/dist/esm/services/resolveSubscribeQuote.d.ts +1 -1
- package/dist/esm/services/resolveSubscribeQuote.d.ts.map +1 -1
- package/dist/esm/services/resolveSubscribeQuote.js +4 -3
- package/dist/esm/services/resolveSubscribeQuote.js.map +1 -1
- package/dist/esm/transport/request.d.ts +5 -0
- package/dist/esm/transport/request.d.ts.map +1 -1
- package/dist/esm/transport/request.js +2 -2
- package/dist/esm/transport/request.js.map +1 -1
- package/dist/esm/types/api.d.ts +9 -0
- package/dist/esm/types/api.d.ts.map +1 -1
- package/dist/esm/types/provider.d.ts +30 -16
- package/dist/esm/types/provider.d.ts.map +1 -1
- package/dist/esm/types/withdrawal.d.ts +32 -7
- package/dist/esm/types/withdrawal.d.ts.map +1 -1
- package/dist/esm/utils/createSafeFunction.d.ts +9 -0
- package/dist/esm/utils/createSafeFunction.d.ts.map +1 -0
- package/dist/esm/utils/createSafeFunction.js +19 -0
- package/dist/esm/utils/createSafeFunction.js.map +1 -0
- package/dist/esm/utils/timestampToIsoString.d.ts +15 -0
- package/dist/esm/utils/timestampToIsoString.d.ts.map +1 -0
- package/dist/esm/utils/timestampToIsoString.js +24 -0
- package/dist/esm/utils/timestampToIsoString.js.map +1 -0
- package/dist/esm/utils/warnOnce.d.ts +27 -0
- package/dist/esm/utils/warnOnce.d.ts.map +1 -1
- package/dist/esm/utils/warnOnce.js +36 -0
- package/dist/esm/utils/warnOnce.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/websocket/PerpsWsClient.d.ts +7 -0
- package/dist/esm/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/esm/websocket/PerpsWsClient.js +20 -2
- package/dist/esm/websocket/PerpsWsClient.js.map +1 -1
- package/dist/esm/websocket/wsLog.d.ts +12 -0
- package/dist/esm/websocket/wsLog.d.ts.map +1 -1
- package/dist/esm/websocket/wsLog.js +19 -0
- package/dist/esm/websocket/wsLog.js.map +1 -1
- package/dist/esm/wire/orderAmounts.d.ts +9 -7
- package/dist/esm/wire/orderAmounts.d.ts.map +1 -1
- package/dist/esm/wire/orderAmounts.js +24 -20
- package/dist/esm/wire/orderAmounts.js.map +1 -1
- package/dist/esm/wire/refuel.d.ts +24 -14
- package/dist/esm/wire/refuel.d.ts.map +1 -1
- package/dist/esm/wire/refuel.js +38 -17
- package/dist/esm/wire/refuel.js.map +1 -1
- package/dist/esm/wire/transferable.d.ts +2 -2
- package/dist/esm/wire/transferable.js +5 -5
- package/dist/esm/wire/transferable.js.map +1 -1
- package/dist/esm/wire/withdraw.d.ts.map +1 -1
- package/dist/esm/wire/withdraw.js +3 -3
- package/dist/esm/wire/withdraw.js.map +1 -1
- package/dist/types/client/PerpsClient.d.ts +17 -4
- package/dist/types/client/PerpsClient.d.ts.map +1 -1
- package/dist/types/decimal/arithmetic.d.ts +98 -0
- package/dist/types/decimal/arithmetic.d.ts.map +1 -0
- package/dist/types/decimal/big.d.ts +0 -2
- package/dist/types/decimal/big.d.ts.map +1 -1
- package/dist/types/decimal/compare.d.ts +40 -6
- package/dist/types/decimal/compare.d.ts.map +1 -1
- package/dist/types/decimal/convert.d.ts +50 -36
- package/dist/types/decimal/convert.d.ts.map +1 -1
- package/dist/types/decimal/decimalStringToBig.d.ts +25 -0
- package/dist/types/decimal/decimalStringToBig.d.ts.map +1 -0
- package/dist/types/decimal/format.d.ts +4 -1
- package/dist/types/decimal/format.d.ts.map +1 -1
- package/dist/types/decimal/parse.d.ts +29 -13
- package/dist/types/decimal/parse.d.ts.map +1 -1
- package/dist/types/errors/invalidInput.d.ts +4 -0
- package/dist/types/errors/invalidInput.d.ts.map +1 -0
- package/dist/types/index.d.ts +15 -12
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/math/fills.d.ts +6 -3
- package/dist/types/math/fills.d.ts.map +1 -1
- package/dist/types/math/order.d.ts +84 -66
- package/dist/types/math/order.d.ts.map +1 -1
- package/dist/types/math/position.d.ts +155 -98
- package/dist/types/math/position.d.ts.map +1 -1
- package/dist/types/services/getQuote.d.ts +2 -2
- package/dist/types/services/resolveSubscribeQuote.d.ts +1 -1
- package/dist/types/services/resolveSubscribeQuote.d.ts.map +1 -1
- package/dist/types/transport/request.d.ts +5 -0
- package/dist/types/transport/request.d.ts.map +1 -1
- package/dist/types/types/api.d.ts +9 -0
- package/dist/types/types/api.d.ts.map +1 -1
- package/dist/types/types/provider.d.ts +30 -16
- package/dist/types/types/provider.d.ts.map +1 -1
- package/dist/types/types/withdrawal.d.ts +32 -7
- package/dist/types/types/withdrawal.d.ts.map +1 -1
- package/dist/types/utils/createSafeFunction.d.ts +9 -0
- package/dist/types/utils/createSafeFunction.d.ts.map +1 -0
- package/dist/types/utils/timestampToIsoString.d.ts +15 -0
- package/dist/types/utils/timestampToIsoString.d.ts.map +1 -0
- package/dist/types/utils/warnOnce.d.ts +27 -0
- package/dist/types/utils/warnOnce.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/websocket/PerpsWsClient.d.ts +7 -0
- package/dist/types/websocket/PerpsWsClient.d.ts.map +1 -1
- package/dist/types/websocket/wsLog.d.ts +12 -0
- package/dist/types/websocket/wsLog.d.ts.map +1 -1
- package/dist/types/wire/orderAmounts.d.ts +9 -7
- package/dist/types/wire/orderAmounts.d.ts.map +1 -1
- package/dist/types/wire/refuel.d.ts +24 -14
- package/dist/types/wire/refuel.d.ts.map +1 -1
- package/dist/types/wire/transferable.d.ts +2 -2
- package/dist/types/wire/withdraw.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/client/PerpsClient.ts +48 -10
- package/src/decimal/arithmetic.ts +170 -0
- package/src/decimal/big.ts +0 -5
- package/src/decimal/compare.ts +61 -11
- package/src/decimal/convert.ts +105 -63
- package/src/decimal/decimalStringToBig.ts +42 -0
- package/src/decimal/format.ts +81 -72
- package/src/decimal/parse.ts +78 -57
- package/src/errors/invalidInput.ts +10 -0
- package/src/index.ts +80 -12
- package/src/math/fills.ts +32 -17
- package/src/math/order.ts +279 -226
- package/src/math/position.ts +280 -196
- package/src/services/getGasRecommendation.ts +1 -1
- package/src/services/getQuote.ts +2 -2
- package/src/services/resolveSubscribeQuote.ts +4 -3
- package/src/transport/request.ts +7 -2
- package/src/types/api.ts +10 -0
- package/src/types/provider.ts +39 -16
- package/src/types/withdrawal.ts +35 -8
- package/src/utils/createSafeFunction.ts +20 -0
- package/src/utils/timestampToIsoString.ts +31 -0
- package/src/utils/warnOnce.ts +60 -0
- package/src/version.ts +1 -1
- package/src/websocket/PerpsWsClient.ts +25 -2
- package/src/websocket/wsLog.ts +44 -0
- package/src/wire/orderAmounts.ts +45 -26
- package/src/wire/refuel.ts +56 -20
- package/src/wire/transferable.ts +5 -5
- package/src/wire/withdraw.ts +3 -5
- package/dist/cjs/decimal/requireDecimal.d.ts +0 -4
- package/dist/cjs/decimal/requireDecimal.d.ts.map +0 -1
- package/dist/cjs/decimal/requireDecimal.js +0 -12
- package/dist/cjs/decimal/requireDecimal.js.map +0 -1
- package/dist/esm/decimal/requireDecimal.d.ts +0 -5
- package/dist/esm/decimal/requireDecimal.d.ts.map +0 -1
- package/dist/esm/decimal/requireDecimal.js +0 -7
- package/dist/esm/decimal/requireDecimal.js.map +0 -1
- package/dist/types/decimal/requireDecimal.d.ts +0 -5
- package/dist/types/decimal/requireDecimal.d.ts.map +0 -1
- 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
|
|
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
|
-
* @
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
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
|
-
* @
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
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 =
|
|
29
|
-
const price =
|
|
30
|
-
if (
|
|
31
|
-
|
|
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 (
|
|
43
|
-
|
|
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":"
|
|
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
|
-
/**
|
|
5
|
-
|
|
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
|
|
13
|
-
* the
|
|
14
|
-
*
|
|
15
|
-
*
|
|
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
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
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;
|
|
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"}
|
package/dist/esm/wire/refuel.js
CHANGED
|
@@ -1,21 +1,34 @@
|
|
|
1
1
|
import { PerpsErrorCode } from '@lifi/perps-types';
|
|
2
2
|
import { DivBig } from '../decimal/big.js';
|
|
3
|
-
import {
|
|
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
|
-
*
|
|
7
|
-
*
|
|
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
|
-
*
|
|
12
|
-
|
|
13
|
-
|
|
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
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
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
|
|
27
|
-
const
|
|
28
|
-
|
|
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
|
|
32
|
-
.
|
|
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;
|
|
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
|
|
11
|
-
*
|
|
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 {
|
|
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
|
|
11
|
-
*
|
|
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 =
|
|
16
|
-
const held =
|
|
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,
|
|
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,
|
|
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 {
|
|
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 =
|
|
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(
|
|
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,
|
|
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,
|
|
274
|
-
* `params.provider`. The venue owns how its balances split across
|
|
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":"AAAA,OAAO,KAAK,EAEV,eAAe,EACf,cAAc,EACd,eAAe,EAEf,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,SAAS,EACT,cAAc,EACd,cAAc,EACd,KAAK,EACL,cAAc,EACd,wBAAwB,EACxB,QAAQ,EAGR,WAAW,EACX,WAAW,EAEZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAEL,UAAU,EAKX,MAAM,mBAAmB,CAAA;
|
|
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
|
|
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
|
|
4
|
-
*
|
|
5
|
-
*
|
|
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
|
|
6
|
+
* @throws {PerpsError} `ValidationError` when either operand does not match the decimal pattern.
|
|
8
7
|
* @public
|
|
9
8
|
*/
|
|
10
|
-
export declare function isDecimalStringGreaterThan(a:
|
|
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":"
|
|
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"}
|