@lifi/perps-sdk 3.0.0 → 3.1.1
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 +42 -2
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/format.d.ts +3 -0
- package/dist/cjs/utils/format.d.ts.map +1 -1
- package/dist/cjs/utils/format.js +31 -24
- package/dist/cjs/utils/format.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/format.d.ts +22 -0
- package/dist/esm/utils/format.d.ts.map +1 -1
- package/dist/esm/utils/format.js +57 -27
- package/dist/esm/utils/format.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/utils/format.d.ts +22 -0
- package/dist/types/utils/format.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +2 -2
- package/src/index.ts +2 -1
- package/src/utils/format.ts +108 -28
- package/src/version.ts +1 -1
package/README.md
CHANGED
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
|
|
8
8
|
</div>
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
<h1 align="center"><code>@lifi/perps-sdk</code></h1>
|
|
11
11
|
|
|
12
12
|
Core of the [LI.FI Perps SDK](https://public-perps-docs.mintlify.app/) — a TypeScript SDK for trading perpetuals across multiple DEXes through one unified interface.
|
|
13
13
|
|
|
14
|
-
- **Unified API** across perpetual DEXes (Hyperliquid, Lighter).
|
|
14
|
+
- **Unified API** across perpetual DEXes (Hyperliquid, Lighter, Ondo).
|
|
15
15
|
- **Provider plugins** — each DEX ships as a separate package you register on the client.
|
|
16
16
|
- **Agent-based signing** — trades execute without per-order wallet popups (one-time wallet signature during setup).
|
|
17
17
|
- **Two layers** — low-level service functions and the high-level `PerpsClient`.
|
|
@@ -31,15 +31,55 @@ pnpm add @lifi/perps-sdk @lifi/perps-sdk-provider-hyperliquid
|
|
|
31
31
|
| `@lifi/perps-sdk` | every project |
|
|
32
32
|
| [`@lifi/perps-sdk-provider-hyperliquid`](https://www.npmjs.com/package/@lifi/perps-sdk-provider-hyperliquid) | Hyperliquid |
|
|
33
33
|
| [`@lifi/perps-sdk-provider-lighter`](https://www.npmjs.com/package/@lifi/perps-sdk-provider-lighter) | Lighter |
|
|
34
|
+
| [`@lifi/perps-sdk-provider-ondo`](https://www.npmjs.com/package/@lifi/perps-sdk-provider-ondo) | Ondo |
|
|
34
35
|
|
|
35
36
|
Get an API key from the [LI.FI Partner Portal](https://portal.li.fi/).
|
|
36
37
|
|
|
38
|
+
## Quick start
|
|
39
|
+
|
|
40
|
+
Create a client, register the providers you installed, and call the service functions:
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
import { createPerpsClient, getMarkets } from '@lifi/perps-sdk'
|
|
44
|
+
import { hyperliquidProvider } from '@lifi/perps-sdk-provider-hyperliquid'
|
|
45
|
+
|
|
46
|
+
const client = createPerpsClient({
|
|
47
|
+
integrator: 'my-app',
|
|
48
|
+
apiKey: 'your-api-key',
|
|
49
|
+
providers: [hyperliquidProvider()],
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
const { markets } = await getMarkets(client, { provider: 'hyperliquid' })
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## WebSocket
|
|
56
|
+
|
|
57
|
+
`PerpsWsClient` streams prices, orderbook, and account events over WebSocket. Register a WS provider per DEX; `subscribe()` returns an unsubscribe function, and multiple listeners on the same channel share one wire subscription:
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
import { PerpsWsClient } from '@lifi/perps-sdk'
|
|
61
|
+
import { hyperliquidWsProvider } from '@lifi/perps-sdk-provider-hyperliquid'
|
|
62
|
+
|
|
63
|
+
const ws = new PerpsWsClient(client, {
|
|
64
|
+
wsProviders: { hyperliquid: hyperliquidWsProvider() },
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
const unsubscribe = await ws.subscribe(
|
|
68
|
+
{ channel: 'orderbook', dex: 'hyperliquid', marketId: markets[0].id },
|
|
69
|
+
(event) => console.log(event.data)
|
|
70
|
+
)
|
|
71
|
+
```
|
|
72
|
+
|
|
37
73
|
## Architecture
|
|
38
74
|
|
|
39
75
|
### Package layering
|
|
40
76
|
|
|
41
77
|
`@lifi/perps-types` is a zero-dependency wire-type package at the base. The core `@lifi/perps-sdk` depends on it. Each provider plugin depends on `@lifi/perps-types` directly and takes the core SDK as a peer dependency — so your project installs exactly one copy of the SDK.
|
|
42
78
|
|
|
79
|
+
### Credential storage
|
|
80
|
+
|
|
81
|
+
Every provider persists its trading credentials (agent keys, API keys, session tokens) through a pluggable `StorageAdapter`. The default `localStorageAdapter` encrypts values with AES-GCM before writing to browser `localStorage`, holding the master key as a non-extractable `CryptoKey` handle in IndexedDB — key material is never stored as plaintext. Environments without WebCrypto or IndexedDB degrade to non-persistent sessions rather than plaintext writes. Pass a custom adapter to a provider's store to use another backend.
|
|
82
|
+
|
|
43
83
|
## Examples
|
|
44
84
|
|
|
45
85
|
Runnable scripts live in the [`examples/`](https://github.com/lifinance/perps-sdk/tree/main/examples) directory of the repository — market data, account data, agent trading, error handling, custom storage, and WebSocket subscriptions.
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -58,8 +58,8 @@ export type { DepositProviderKey } from './utils/depositChain.js';
|
|
|
58
58
|
export { LIFI_DEPOSIT_CHAIN_BY_PROVIDER, lifiDepositChainForProvider, } from './utils/depositChain.js';
|
|
59
59
|
export { ExplorerChainId, explorerTxUrl } from './utils/explorer.js';
|
|
60
60
|
export { classifyFillFromPosition } from './utils/fillClassification.js';
|
|
61
|
-
export type { FormatOptions } from './utils/format.js';
|
|
62
|
-
export { formatCompactUsd, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './utils/format.js';
|
|
61
|
+
export type { FormatOptions, RoundingMode } from './utils/format.js';
|
|
62
|
+
export { formatCompactUsd, formatNumber, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './utils/format.js';
|
|
63
63
|
export { ACTIVE_ORDER_STATUSES, classifyFill, FillClassification, isActiveOrderStatus, isStopLossOrder, isTakeProfitOrder, isTpSlOrder, } from './utils/orderClassification.js';
|
|
64
64
|
export { expectedRealizedPnlForOpenOrder, expectedRealizedPnlForTriggerOrder, findMatchingPosition, resolveCloseSize, } from './utils/orderMath.js';
|
|
65
65
|
export { stringToFloat } from './utils/parse.js';
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.calculateRoe = exports.calculateRequiredMargin = exports.calculateRealizedPnlPercent = exports.calculatePositionSize = exports.calculateNotionalValue = exports.calculateExpectedPnl = exports.buildQuote = exports.applySlippage = exports.summarizeAccount = exports.resolveRetryPolicy = exports.LIFI_RETRY_DEFAULTS = exports.LIFI_REQUEST_KEY = exports.DISABLED_RETRY = exports.fetchWithRetry = exports.createMemoryStorage = exports.readValidatedRecord = exports.parseStoredRecord = exports.localStorageAdapter = exports.resolveSubscribeQuote = exports.QUOTE_THROTTLE_MS = exports.resolveQuoteMarket = exports.resolveQuote = exports.getTermsAcceptance = exports.getQuote = exports.getProviders = exports.getPositions = exports.getOrders = exports.getOrderbook = exports.getOrder = exports.getOhlcv = exports.getMeta = exports.getMarketsContext = exports.getMarkets = exports.getMarket = exports.getFills = exports.getAssets = exports.getActivity = exports.getAccount = exports.executeAction = exports.createAction = exports.toMarketDisplay = exports.MarketRegistry = exports.getMarketRegistry = exports.getAssetRegistry = exports.AssetRegistry = exports.PerpsError = exports.PerpsErrorMessage = exports.PerpsClient = exports.DEFAULT_API_URL = exports.createPerpsClient = void 0;
|
|
18
|
-
exports.wsLog = exports.WsProviderBase = exports.WS_CHANNEL_TEARDOWN_LINGER_MS = exports.ReconnectingWebSocket = exports.PerpsWsClient = exports.cachePromise = exports.version = exports.name = exports.validateMargin = exports.fromBaseUnitsNumber = exports.fromBaseUnits = exports.signTypedDataWithSigner = exports.signTypedData = exports.realizedPnlOnClose = exports.predictUnrealizedPnl = exports.predictNewLeverage = exports.predictAverageEntryPrice = exports.estimateIsolatedLiquidationPrice = exports.directionSign = exports.stringToFloat = exports.resolveCloseSize = exports.findMatchingPosition = exports.expectedRealizedPnlForTriggerOrder = exports.expectedRealizedPnlForOpenOrder = exports.isTpSlOrder = exports.isTakeProfitOrder = exports.isStopLossOrder = exports.isActiveOrderStatus = exports.FillClassification = exports.classifyFill = exports.ACTIVE_ORDER_STATUSES = exports.formatUsd = exports.formatSignedUsd = exports.formatSignedPercent = exports.formatPrice = exports.formatCompactUsd = exports.classifyFillFromPosition = exports.explorerTxUrl = exports.ExplorerChainId = exports.lifiDepositChainForProvider = exports.LIFI_DEPOSIT_CHAIN_BY_PROVIDER = exports.walkOrderbook = exports.removableMargin = exports.priceFromPercent = exports.percentFromPrice = exports.liquidationDistancePercent = exports.estimateFees = exports.effectiveLeverage = exports.calculateUnrealizedPnl = void 0;
|
|
18
|
+
exports.wsLog = exports.WsProviderBase = exports.WS_CHANNEL_TEARDOWN_LINGER_MS = exports.ReconnectingWebSocket = exports.PerpsWsClient = exports.cachePromise = exports.version = exports.name = exports.validateMargin = exports.fromBaseUnitsNumber = exports.fromBaseUnits = exports.signTypedDataWithSigner = exports.signTypedData = exports.realizedPnlOnClose = exports.predictUnrealizedPnl = exports.predictNewLeverage = exports.predictAverageEntryPrice = exports.estimateIsolatedLiquidationPrice = exports.directionSign = exports.stringToFloat = exports.resolveCloseSize = exports.findMatchingPosition = exports.expectedRealizedPnlForTriggerOrder = exports.expectedRealizedPnlForOpenOrder = exports.isTpSlOrder = exports.isTakeProfitOrder = exports.isStopLossOrder = exports.isActiveOrderStatus = exports.FillClassification = exports.classifyFill = exports.ACTIVE_ORDER_STATUSES = exports.formatUsd = exports.formatSignedUsd = exports.formatSignedPercent = exports.formatPrice = exports.formatNumber = exports.formatCompactUsd = exports.classifyFillFromPosition = exports.explorerTxUrl = exports.ExplorerChainId = exports.lifiDepositChainForProvider = exports.LIFI_DEPOSIT_CHAIN_BY_PROVIDER = exports.walkOrderbook = exports.removableMargin = exports.priceFromPercent = exports.percentFromPrice = exports.liquidationDistancePercent = exports.estimateFees = exports.effectiveLeverage = exports.calculateUnrealizedPnl = void 0;
|
|
19
19
|
__exportStar(require("@lifi/perps-types"), exports);
|
|
20
20
|
var createPerpsClient_js_1 = require("./client/createPerpsClient.js");
|
|
21
21
|
Object.defineProperty(exports, "createPerpsClient", { enumerable: true, get: function () { return createPerpsClient_js_1.createPerpsClient; } });
|
|
@@ -118,6 +118,7 @@ var fillClassification_js_1 = require("./utils/fillClassification.js");
|
|
|
118
118
|
Object.defineProperty(exports, "classifyFillFromPosition", { enumerable: true, get: function () { return fillClassification_js_1.classifyFillFromPosition; } });
|
|
119
119
|
var format_js_1 = require("./utils/format.js");
|
|
120
120
|
Object.defineProperty(exports, "formatCompactUsd", { enumerable: true, get: function () { return format_js_1.formatCompactUsd; } });
|
|
121
|
+
Object.defineProperty(exports, "formatNumber", { enumerable: true, get: function () { return format_js_1.formatNumber; } });
|
|
121
122
|
Object.defineProperty(exports, "formatPrice", { enumerable: true, get: function () { return format_js_1.formatPrice; } });
|
|
122
123
|
Object.defineProperty(exports, "formatSignedPercent", { enumerable: true, get: function () { return format_js_1.formatSignedPercent; } });
|
|
123
124
|
Object.defineProperty(exports, "formatSignedUsd", { enumerable: true, get: function () { return format_js_1.formatSignedUsd; } });
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAYA,oDAAiC;AACjC,sEAGsC;AAFpC,yHAAA,iBAAiB,OAAA;AACjB,uHAAA,eAAe,OAAA;AAEjB,0DAAqD;AAA5C,6GAAA,WAAW,OAAA;AACpB,sDAAyD;AAAhD,iHAAA,iBAAiB,OAAA;AAC1B,wDAAmD;AAA1C,2GAAA,UAAU,OAAA;AAEnB,gEAA6E;AAApE,iHAAA,aAAa,OAAA;AAAE,oHAAA,gBAAgB,OAAA;AACxC,kEAIqC;AAHnC,sHAAA,iBAAiB,OAAA;AACjB,mHAAA,cAAc,OAAA;AACd,oHAAA,eAAe,OAAA;AAIjB,8DAAyD;AAAhD,+GAAA,YAAY,OAAA;AAErB,gEAA2D;AAAlD,iHAAA,aAAa,OAAA;AAEtB,0DAAqD;AAA5C,2GAAA,UAAU,OAAA;AAEnB,4DAAuD;AAA9C,6GAAA,WAAW,OAAA;AAEpB,wDAAmD;AAA1C,yGAAA,SAAS,OAAA;AAElB,sDAAiD;AAAxC,uGAAA,QAAQ,OAAA;AAEjB,wDAAmD;AAA1C,yGAAA,SAAS,OAAA;AAElB,0DAAqD;AAA5C,2GAAA,UAAU,OAAA;AAEnB,wEAAmE;AAA1D,yHAAA,iBAAiB,OAAA;AAC1B,oDAA+C;AAAtC,qGAAA,OAAO,OAAA;AAEhB,sDAAiD;AAAxC,uGAAA,QAAQ,OAAA;AAEjB,sDAAiD;AAAxC,uGAAA,QAAQ,OAAA;AAEjB,8DAAyD;AAAhD,+GAAA,YAAY,OAAA;AAErB,wDAAmD;AAA1C,yGAAA,SAAS,OAAA;AAElB,8DAAyD;AAAhD,+GAAA,YAAY,OAAA;AACrB,8DAAyD;AAAhD,+GAAA,YAAY,OAAA;AAErB,sDAAiD;AAAxC,uGAAA,QAAQ,OAAA;AACjB,0EAAqE;AAA5D,2HAAA,kBAAkB,OAAA;AAC3B,8DAA6E;AAApE,+GAAA,YAAY,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AACzC,gFAG4C;AAF1C,6HAAA,iBAAiB,OAAA;AACjB,iIAAA,qBAAqB,OAAA;AAEvB,qEAAmE;AAA1D,0HAAA,mBAAmB,OAAA;AAC5B,uEAGuC;AAFrC,yHAAA,iBAAiB,OAAA;AACjB,2HAAA,mBAAmB,OAAA;AAErB,mDAA0D;AAAjD,iHAAA,mBAAmB,OAAA;AAG5B,mEAA8D;AAArD,mHAAA,cAAc,OAAA;AAUvB,6DAKmC;AAJjC,gHAAA,cAAc,OAAA;AACd,kHAAA,gBAAgB,OAAA;AAChB,qHAAA,mBAAmB,OAAA;AACnB,oHAAA,kBAAkB,OAAA;AA4CpB,+DAGkC;AADhC,qHAAA,gBAAgB,OAAA;AAGlB,2DAiBgC;AAhB9B,gHAAA,aAAa,OAAA;AACb,6GAAA,UAAU,OAAA;AACV,uHAAA,oBAAoB,OAAA;AACpB,yHAAA,sBAAsB,OAAA;AACtB,wHAAA,qBAAqB,OAAA;AACrB,8HAAA,2BAA2B,OAAA;AAC3B,0HAAA,uBAAuB,OAAA;AACvB,+GAAA,YAAY,OAAA;AACZ,yHAAA,sBAAsB,OAAA;AACtB,oHAAA,iBAAiB,OAAA;AACjB,+GAAA,YAAY,OAAA;AACZ,6HAAA,0BAA0B,OAAA;AAC1B,mHAAA,gBAAgB,OAAA;AAChB,mHAAA,gBAAgB,OAAA;AAChB,kHAAA,eAAe,OAAA;AACf,gHAAA,aAAa,OAAA;AAGf,2DAGgC;AAF9B,iIAAA,8BAA8B,OAAA;AAC9B,8HAAA,2BAA2B,OAAA;AAE7B,mDAAoE;AAA3D,8GAAA,eAAe,OAAA;AAAE,4GAAA,aAAa,OAAA;AACvC,uEAAwE;AAA/D,iIAAA,wBAAwB,OAAA;AAEjC,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAYA,oDAAiC;AACjC,sEAGsC;AAFpC,yHAAA,iBAAiB,OAAA;AACjB,uHAAA,eAAe,OAAA;AAEjB,0DAAqD;AAA5C,6GAAA,WAAW,OAAA;AACpB,sDAAyD;AAAhD,iHAAA,iBAAiB,OAAA;AAC1B,wDAAmD;AAA1C,2GAAA,UAAU,OAAA;AAEnB,gEAA6E;AAApE,iHAAA,aAAa,OAAA;AAAE,oHAAA,gBAAgB,OAAA;AACxC,kEAIqC;AAHnC,sHAAA,iBAAiB,OAAA;AACjB,mHAAA,cAAc,OAAA;AACd,oHAAA,eAAe,OAAA;AAIjB,8DAAyD;AAAhD,+GAAA,YAAY,OAAA;AAErB,gEAA2D;AAAlD,iHAAA,aAAa,OAAA;AAEtB,0DAAqD;AAA5C,2GAAA,UAAU,OAAA;AAEnB,4DAAuD;AAA9C,6GAAA,WAAW,OAAA;AAEpB,wDAAmD;AAA1C,yGAAA,SAAS,OAAA;AAElB,sDAAiD;AAAxC,uGAAA,QAAQ,OAAA;AAEjB,wDAAmD;AAA1C,yGAAA,SAAS,OAAA;AAElB,0DAAqD;AAA5C,2GAAA,UAAU,OAAA;AAEnB,wEAAmE;AAA1D,yHAAA,iBAAiB,OAAA;AAC1B,oDAA+C;AAAtC,qGAAA,OAAO,OAAA;AAEhB,sDAAiD;AAAxC,uGAAA,QAAQ,OAAA;AAEjB,sDAAiD;AAAxC,uGAAA,QAAQ,OAAA;AAEjB,8DAAyD;AAAhD,+GAAA,YAAY,OAAA;AAErB,wDAAmD;AAA1C,yGAAA,SAAS,OAAA;AAElB,8DAAyD;AAAhD,+GAAA,YAAY,OAAA;AACrB,8DAAyD;AAAhD,+GAAA,YAAY,OAAA;AAErB,sDAAiD;AAAxC,uGAAA,QAAQ,OAAA;AACjB,0EAAqE;AAA5D,2HAAA,kBAAkB,OAAA;AAC3B,8DAA6E;AAApE,+GAAA,YAAY,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AACzC,gFAG4C;AAF1C,6HAAA,iBAAiB,OAAA;AACjB,iIAAA,qBAAqB,OAAA;AAEvB,qEAAmE;AAA1D,0HAAA,mBAAmB,OAAA;AAC5B,uEAGuC;AAFrC,yHAAA,iBAAiB,OAAA;AACjB,2HAAA,mBAAmB,OAAA;AAErB,mDAA0D;AAAjD,iHAAA,mBAAmB,OAAA;AAG5B,mEAA8D;AAArD,mHAAA,cAAc,OAAA;AAUvB,6DAKmC;AAJjC,gHAAA,cAAc,OAAA;AACd,kHAAA,gBAAgB,OAAA;AAChB,qHAAA,mBAAmB,OAAA;AACnB,oHAAA,kBAAkB,OAAA;AA4CpB,+DAGkC;AADhC,qHAAA,gBAAgB,OAAA;AAGlB,2DAiBgC;AAhB9B,gHAAA,aAAa,OAAA;AACb,6GAAA,UAAU,OAAA;AACV,uHAAA,oBAAoB,OAAA;AACpB,yHAAA,sBAAsB,OAAA;AACtB,wHAAA,qBAAqB,OAAA;AACrB,8HAAA,2BAA2B,OAAA;AAC3B,0HAAA,uBAAuB,OAAA;AACvB,+GAAA,YAAY,OAAA;AACZ,yHAAA,sBAAsB,OAAA;AACtB,oHAAA,iBAAiB,OAAA;AACjB,+GAAA,YAAY,OAAA;AACZ,6HAAA,0BAA0B,OAAA;AAC1B,mHAAA,gBAAgB,OAAA;AAChB,mHAAA,gBAAgB,OAAA;AAChB,kHAAA,eAAe,OAAA;AACf,gHAAA,aAAa,OAAA;AAGf,2DAGgC;AAF9B,iIAAA,8BAA8B,OAAA;AAC9B,8HAAA,2BAA2B,OAAA;AAE7B,mDAAoE;AAA3D,8GAAA,eAAe,OAAA;AAAE,4GAAA,aAAa,OAAA;AACvC,uEAAwE;AAA/D,iIAAA,wBAAwB,OAAA;AAEjC,+CAO0B;AANxB,6GAAA,gBAAgB,OAAA;AAChB,yGAAA,YAAY,OAAA;AACZ,wGAAA,WAAW,OAAA;AACX,gHAAA,mBAAmB,OAAA;AACnB,4GAAA,eAAe,OAAA;AACf,sGAAA,SAAS,OAAA;AAEX,yEAQuC;AAPrC,+HAAA,qBAAqB,OAAA;AACrB,sHAAA,YAAY,OAAA;AACZ,4HAAA,kBAAkB,OAAA;AAClB,6HAAA,mBAAmB,OAAA;AACnB,yHAAA,eAAe,OAAA;AACf,2HAAA,iBAAiB,OAAA;AACjB,qHAAA,WAAW,OAAA;AAEb,qDAK6B;AAJ3B,+HAAA,+BAA+B,OAAA;AAC/B,kIAAA,kCAAkC,OAAA;AAClC,oHAAA,oBAAoB,OAAA;AACpB,gHAAA,gBAAgB,OAAA;AAElB,6CAAgD;AAAvC,yGAAA,aAAa,OAAA;AACtB,2DAOgC;AAN9B,gHAAA,aAAa,OAAA;AACb,mIAAA,gCAAgC,OAAA;AAChC,2HAAA,wBAAwB,OAAA;AACxB,qHAAA,kBAAkB,OAAA;AAClB,uHAAA,oBAAoB,OAAA;AACpB,qHAAA,kBAAkB,OAAA;AAEpB,6DAGiC;AAF/B,iHAAA,aAAa,OAAA;AACb,2HAAA,uBAAuB,OAAA;AAEzB,6CAAqE;AAA5D,yGAAA,aAAa,OAAA;AAAE,+GAAA,mBAAmB,OAAA;AAC3C,uDAAsD;AAA7C,+GAAA,cAAc,OAAA;AAEvB,2CAA4C;AAAnC,kGAAA,IAAI,OAAA;AAAE,qGAAA,OAAO,OAAA;AACtB,+DAA0D;AAAjD,+GAAA,YAAY,OAAA;AAKrB,iEAA4D;AAAnD,iHAAA,aAAa,OAAA;AAEtB,iFAA4E;AAAnE,iIAAA,qBAAqB,OAAA;AAQ9B,mEAGsC;AAFpC,kIAAA,6BAA6B,OAAA;AAC7B,mHAAA,cAAc,OAAA;AAEhB,iDAA4C;AAAnC,iGAAA,KAAK,OAAA"}
|
|
@@ -2,8 +2,11 @@ export interface FormatOptions {
|
|
|
2
2
|
decimals?: number;
|
|
3
3
|
placeholder?: string;
|
|
4
4
|
locale?: string;
|
|
5
|
+
rounding?: RoundingMode;
|
|
5
6
|
}
|
|
7
|
+
export type RoundingMode = 'halfUp' | 'floor';
|
|
6
8
|
type FormatInput = number | string | null | undefined;
|
|
9
|
+
export declare function formatNumber(value: FormatInput, options?: FormatOptions): string;
|
|
7
10
|
export declare function formatUsd(value: FormatInput, options?: FormatOptions): string;
|
|
8
11
|
export declare function formatSignedUsd(value: FormatInput, options?: FormatOptions): string;
|
|
9
12
|
export declare function formatSignedPercent(value: FormatInput, options?: FormatOptions): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAE5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,MAAM,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAE5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,MAAM,CAAC,EAAE,MAAM,CAAA;IAOf,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB;AAGD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAA;AAI7C,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAqGrD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAUD,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAWD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAWD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAYD,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAqBR;AAWD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAkBR"}
|
package/dist/cjs/utils/format.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatNumber = formatNumber;
|
|
3
4
|
exports.formatUsd = formatUsd;
|
|
4
5
|
exports.formatSignedUsd = formatSignedUsd;
|
|
5
6
|
exports.formatSignedPercent = formatSignedPercent;
|
|
6
7
|
exports.formatPrice = formatPrice;
|
|
7
8
|
exports.formatCompactUsd = formatCompactUsd;
|
|
8
9
|
const DEFAULT_PLACEHOLDER = '—';
|
|
10
|
+
const FLOAT_GUARD_DIGITS = 9;
|
|
9
11
|
function toFiniteNumber(value) {
|
|
10
12
|
let n;
|
|
11
13
|
if (typeof value === 'string') {
|
|
@@ -23,10 +25,18 @@ function toFiniteNumber(value) {
|
|
|
23
25
|
}
|
|
24
26
|
return Number.isFinite(n) ? n : null;
|
|
25
27
|
}
|
|
26
|
-
function
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
const
|
|
28
|
+
function truncateAbs(abs, decimals) {
|
|
29
|
+
const s = abs.toFixed(Math.min(decimals + FLOAT_GUARD_DIGITS, 100));
|
|
30
|
+
const dot = s.indexOf('.');
|
|
31
|
+
const cut = decimals === 0 ? dot : dot + 1 + decimals;
|
|
32
|
+
return Number(s.slice(0, cut));
|
|
33
|
+
}
|
|
34
|
+
function signAndBody(n, decimals, locale, grouping, rounding, signed) {
|
|
35
|
+
const reduced = rounding === 'floor'
|
|
36
|
+
? (n < 0 ? -1 : 1) * truncateAbs(Math.abs(n), decimals)
|
|
37
|
+
: Number(n.toFixed(decimals));
|
|
38
|
+
const sign = reduced < 0 ? '-' : signed && reduced > 0 ? '+' : '';
|
|
39
|
+
const body = Math.abs(reduced).toLocaleString(locale, {
|
|
30
40
|
minimumFractionDigits: decimals,
|
|
31
41
|
maximumFractionDigits: decimals,
|
|
32
42
|
useGrouping: grouping,
|
|
@@ -45,54 +55,51 @@ function autoDecimals(abs) {
|
|
|
45
55
|
}
|
|
46
56
|
return 6;
|
|
47
57
|
}
|
|
58
|
+
function formatNumber(value, options = {}) {
|
|
59
|
+
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale, rounding = 'halfUp', } = options;
|
|
60
|
+
const n = toFiniteNumber(value);
|
|
61
|
+
if (n === null) {
|
|
62
|
+
return placeholder;
|
|
63
|
+
}
|
|
64
|
+
const { sign, body } = signAndBody(n, decimals, locale, true, rounding, false);
|
|
65
|
+
return `${sign}${body}`;
|
|
66
|
+
}
|
|
48
67
|
function formatUsd(value, options = {}) {
|
|
49
|
-
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale } = options;
|
|
68
|
+
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale, rounding = 'halfUp', } = options;
|
|
50
69
|
const n = toFiniteNumber(value);
|
|
51
70
|
if (n === null) {
|
|
52
71
|
return placeholder;
|
|
53
72
|
}
|
|
54
|
-
const { sign, body } = signAndBody(n, decimals, locale, true);
|
|
73
|
+
const { sign, body } = signAndBody(n, decimals, locale, true, rounding, false);
|
|
55
74
|
return `${sign}$${body}`;
|
|
56
75
|
}
|
|
57
76
|
function formatSignedUsd(value, options = {}) {
|
|
58
|
-
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale } = options;
|
|
77
|
+
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale, rounding = 'halfUp', } = options;
|
|
59
78
|
const n = toFiniteNumber(value);
|
|
60
79
|
if (n === null) {
|
|
61
80
|
return placeholder;
|
|
62
81
|
}
|
|
63
|
-
const
|
|
64
|
-
const sign = rounded > 0 ? '+' : rounded < 0 ? '-' : '';
|
|
65
|
-
const body = Math.abs(rounded).toLocaleString(locale, {
|
|
66
|
-
minimumFractionDigits: decimals,
|
|
67
|
-
maximumFractionDigits: decimals,
|
|
68
|
-
useGrouping: true,
|
|
69
|
-
});
|
|
82
|
+
const { sign, body } = signAndBody(n, decimals, locale, true, rounding, true);
|
|
70
83
|
return `${sign}$${body}`;
|
|
71
84
|
}
|
|
72
85
|
function formatSignedPercent(value, options = {}) {
|
|
73
|
-
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale } = options;
|
|
86
|
+
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale, rounding = 'halfUp', } = options;
|
|
74
87
|
const n = toFiniteNumber(value);
|
|
75
88
|
if (n === null) {
|
|
76
89
|
return placeholder;
|
|
77
90
|
}
|
|
78
|
-
const
|
|
79
|
-
const sign = rounded > 0 ? '+' : rounded < 0 ? '-' : '';
|
|
80
|
-
const body = Math.abs(rounded).toLocaleString(locale, {
|
|
81
|
-
minimumFractionDigits: decimals,
|
|
82
|
-
maximumFractionDigits: decimals,
|
|
83
|
-
useGrouping: false,
|
|
84
|
-
});
|
|
91
|
+
const { sign, body } = signAndBody(n, decimals, locale, false, rounding, true);
|
|
85
92
|
return `${sign}${body}%`;
|
|
86
93
|
}
|
|
87
94
|
function formatPrice(value, options = {}) {
|
|
88
|
-
const { placeholder = DEFAULT_PLACEHOLDER, locale } = options;
|
|
95
|
+
const { placeholder = DEFAULT_PLACEHOLDER, locale, rounding = 'halfUp', } = options;
|
|
89
96
|
const n = toFiniteNumber(value);
|
|
90
97
|
if (n === null) {
|
|
91
98
|
return placeholder;
|
|
92
99
|
}
|
|
93
100
|
const abs = Math.abs(n);
|
|
94
101
|
const decimals = options.decimals ?? autoDecimals(abs);
|
|
95
|
-
const { sign, body } = signAndBody(n, decimals, locale, abs >= 1000);
|
|
102
|
+
const { sign, body } = signAndBody(n, decimals, locale, abs >= 1000, rounding, false);
|
|
96
103
|
return `${sign}$${body}`;
|
|
97
104
|
}
|
|
98
105
|
function formatCompactUsd(value, options = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/version.d.ts
CHANGED
package/dist/cjs/version.js
CHANGED
package/dist/esm/index.d.ts
CHANGED
|
@@ -66,8 +66,8 @@ export type { DepositProviderKey } from './utils/depositChain.js';
|
|
|
66
66
|
export { LIFI_DEPOSIT_CHAIN_BY_PROVIDER, lifiDepositChainForProvider, } from './utils/depositChain.js';
|
|
67
67
|
export { ExplorerChainId, explorerTxUrl } from './utils/explorer.js';
|
|
68
68
|
export { classifyFillFromPosition } from './utils/fillClassification.js';
|
|
69
|
-
export type { FormatOptions } from './utils/format.js';
|
|
70
|
-
export { formatCompactUsd, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './utils/format.js';
|
|
69
|
+
export type { FormatOptions, RoundingMode } from './utils/format.js';
|
|
70
|
+
export { formatCompactUsd, formatNumber, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './utils/format.js';
|
|
71
71
|
export { ACTIVE_ORDER_STATUSES, classifyFill, FillClassification, isActiveOrderStatus, isStopLossOrder, isTakeProfitOrder, isTpSlOrder, } from './utils/orderClassification.js';
|
|
72
72
|
export { expectedRealizedPnlForOpenOrder, expectedRealizedPnlForTriggerOrder, findMatchingPosition, resolveCloseSize, } from './utils/orderMath.js';
|
|
73
73
|
export { stringToFloat } from './utils/parse.js';
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -46,7 +46,7 @@ export { applySlippage, buildQuote, calculateExpectedPnl, calculateNotionalValue
|
|
|
46
46
|
export { LIFI_DEPOSIT_CHAIN_BY_PROVIDER, lifiDepositChainForProvider, } from './utils/depositChain.js';
|
|
47
47
|
export { ExplorerChainId, explorerTxUrl } from './utils/explorer.js';
|
|
48
48
|
export { classifyFillFromPosition } from './utils/fillClassification.js';
|
|
49
|
-
export { formatCompactUsd, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './utils/format.js';
|
|
49
|
+
export { formatCompactUsd, formatNumber, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './utils/format.js';
|
|
50
50
|
export { ACTIVE_ORDER_STATUSES, classifyFill, FillClassification, isActiveOrderStatus, isStopLossOrder, isTakeProfitOrder, isTpSlOrder, } from './utils/orderClassification.js';
|
|
51
51
|
export { expectedRealizedPnlForOpenOrder, expectedRealizedPnlForTriggerOrder, findMatchingPosition, resolveCloseSize, } from './utils/orderMath.js';
|
|
52
52
|
export { stringToFloat } from './utils/parse.js';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,30 @@ export interface FormatOptions {
|
|
|
10
10
|
placeholder?: string;
|
|
11
11
|
/** BCP 47 locale controlling digit grouping and separators (e.g. `'en-US'`). */
|
|
12
12
|
locale?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Rounding applied when reducing to `decimals` places. Defaults to
|
|
15
|
+
* `'halfUp'`. `'floor'` truncates toward zero (matching big.js `roundDown`),
|
|
16
|
+
* so the rendered magnitude never exceeds the source — use it for readouts
|
|
17
|
+
* validated against a ceiling (available balance, removable margin).
|
|
18
|
+
*/
|
|
19
|
+
rounding?: RoundingMode;
|
|
13
20
|
}
|
|
21
|
+
/** Rounding mode for {@link FormatOptions.rounding}. */
|
|
22
|
+
export type RoundingMode = 'halfUp' | 'floor';
|
|
14
23
|
type FormatInput = number | string | null | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Format a bare number, unsigned, with no currency symbol: `1,234.50`,
|
|
26
|
+
* `-1,500.00`, `0.00`. The core the `$`/`%` formatters wrap; use it for
|
|
27
|
+
* balance labels and symbol-suffixed amounts (`12.5 LIT`).
|
|
28
|
+
*
|
|
29
|
+
* Two decimal places with locale digit grouping by default. Negatives keep a
|
|
30
|
+
* leading `-`. `rounding: 'floor'` truncates toward zero so the rendered
|
|
31
|
+
* magnitude never exceeds the source (`99.999` at 2dp → `99.99`, `-99.999` →
|
|
32
|
+
* `-99.99`). Null/undefined/non-finite input renders the placeholder.
|
|
33
|
+
*
|
|
34
|
+
* @public
|
|
35
|
+
*/
|
|
36
|
+
export declare function formatNumber(value: FormatInput, options?: FormatOptions): string;
|
|
15
37
|
/**
|
|
16
38
|
* Format a USD value, unsigned: `$1,234.50`, `-$1,500.00`, `$0.00`.
|
|
17
39
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB;AAED,wDAAwD;AACxD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAA;AAI7C,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAyFrD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAqBR;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAkBR"}
|
package/dist/esm/utils/format.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
const DEFAULT_PLACEHOLDER = '—';
|
|
2
|
+
/**
|
|
3
|
+
* Extra decimal places used to normalise IEEE-754 representation noise before
|
|
4
|
+
* truncating. `toFixed` at this higher precision cleans values like
|
|
5
|
+
* `0.28999999…` back to `0.29`; truncation then chops the guard digits.
|
|
6
|
+
*/
|
|
7
|
+
const FLOAT_GUARD_DIGITS = 9;
|
|
2
8
|
/**
|
|
3
9
|
* Tolerantly coerce a display input to a finite number.
|
|
4
10
|
*
|
|
@@ -24,14 +30,29 @@ function toFiniteNumber(value) {
|
|
|
24
30
|
return Number.isFinite(n) ? n : null;
|
|
25
31
|
}
|
|
26
32
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
33
|
+
* Truncate a non-negative value toward zero to `decimals` places using its
|
|
34
|
+
* decimal string, never float scaling. Representation noise is first
|
|
35
|
+
* normalised by `toFixed` at {@link FLOAT_GUARD_DIGITS} extra precision, then
|
|
36
|
+
* the guard digits are chopped: `99.999` at 2dp → `99.99`, `0.29` → `0.29`.
|
|
37
|
+
*/
|
|
38
|
+
function truncateAbs(abs, decimals) {
|
|
39
|
+
const s = abs.toFixed(Math.min(decimals + FLOAT_GUARD_DIGITS, 100));
|
|
40
|
+
const dot = s.indexOf('.');
|
|
41
|
+
const cut = decimals === 0 ? dot : dot + 1 + decimals;
|
|
42
|
+
return Number(s.slice(0, cut));
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Reduce `n` to `decimals` places then split into a sign and the
|
|
46
|
+
* locale-formatted absolute body. The sign is derived from the reduced value
|
|
47
|
+
* so magnitudes that collapse to zero render without a spurious `-`/`+`.
|
|
48
|
+
* `signed` emits `+` for positives; `rounding` selects half-up or truncation.
|
|
30
49
|
*/
|
|
31
|
-
function signAndBody(n, decimals, locale, grouping) {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
50
|
+
function signAndBody(n, decimals, locale, grouping, rounding, signed) {
|
|
51
|
+
const reduced = rounding === 'floor'
|
|
52
|
+
? (n < 0 ? -1 : 1) * truncateAbs(Math.abs(n), decimals)
|
|
53
|
+
: Number(n.toFixed(decimals));
|
|
54
|
+
const sign = reduced < 0 ? '-' : signed && reduced > 0 ? '+' : '';
|
|
55
|
+
const body = Math.abs(reduced).toLocaleString(locale, {
|
|
35
56
|
minimumFractionDigits: decimals,
|
|
36
57
|
maximumFractionDigits: decimals,
|
|
37
58
|
useGrouping: grouping,
|
|
@@ -54,6 +75,27 @@ function autoDecimals(abs) {
|
|
|
54
75
|
}
|
|
55
76
|
return 6;
|
|
56
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Format a bare number, unsigned, with no currency symbol: `1,234.50`,
|
|
80
|
+
* `-1,500.00`, `0.00`. The core the `$`/`%` formatters wrap; use it for
|
|
81
|
+
* balance labels and symbol-suffixed amounts (`12.5 LIT`).
|
|
82
|
+
*
|
|
83
|
+
* Two decimal places with locale digit grouping by default. Negatives keep a
|
|
84
|
+
* leading `-`. `rounding: 'floor'` truncates toward zero so the rendered
|
|
85
|
+
* magnitude never exceeds the source (`99.999` at 2dp → `99.99`, `-99.999` →
|
|
86
|
+
* `-99.99`). Null/undefined/non-finite input renders the placeholder.
|
|
87
|
+
*
|
|
88
|
+
* @public
|
|
89
|
+
*/
|
|
90
|
+
export function formatNumber(value, options = {}) {
|
|
91
|
+
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale, rounding = 'halfUp', } = options;
|
|
92
|
+
const n = toFiniteNumber(value);
|
|
93
|
+
if (n === null) {
|
|
94
|
+
return placeholder;
|
|
95
|
+
}
|
|
96
|
+
const { sign, body } = signAndBody(n, decimals, locale, true, rounding, false);
|
|
97
|
+
return `${sign}${body}`;
|
|
98
|
+
}
|
|
57
99
|
/**
|
|
58
100
|
* Format a USD value, unsigned: `$1,234.50`, `-$1,500.00`, `$0.00`.
|
|
59
101
|
*
|
|
@@ -63,12 +105,12 @@ function autoDecimals(abs) {
|
|
|
63
105
|
* @public
|
|
64
106
|
*/
|
|
65
107
|
export function formatUsd(value, options = {}) {
|
|
66
|
-
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale } = options;
|
|
108
|
+
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale, rounding = 'halfUp', } = options;
|
|
67
109
|
const n = toFiniteNumber(value);
|
|
68
110
|
if (n === null) {
|
|
69
111
|
return placeholder;
|
|
70
112
|
}
|
|
71
|
-
const { sign, body } = signAndBody(n, decimals, locale, true);
|
|
113
|
+
const { sign, body } = signAndBody(n, decimals, locale, true, rounding, false);
|
|
72
114
|
return `${sign}$${body}`;
|
|
73
115
|
}
|
|
74
116
|
/**
|
|
@@ -81,18 +123,12 @@ export function formatUsd(value, options = {}) {
|
|
|
81
123
|
* @public
|
|
82
124
|
*/
|
|
83
125
|
export function formatSignedUsd(value, options = {}) {
|
|
84
|
-
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale } = options;
|
|
126
|
+
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale, rounding = 'halfUp', } = options;
|
|
85
127
|
const n = toFiniteNumber(value);
|
|
86
128
|
if (n === null) {
|
|
87
129
|
return placeholder;
|
|
88
130
|
}
|
|
89
|
-
const
|
|
90
|
-
const sign = rounded > 0 ? '+' : rounded < 0 ? '-' : '';
|
|
91
|
-
const body = Math.abs(rounded).toLocaleString(locale, {
|
|
92
|
-
minimumFractionDigits: decimals,
|
|
93
|
-
maximumFractionDigits: decimals,
|
|
94
|
-
useGrouping: true,
|
|
95
|
-
});
|
|
131
|
+
const { sign, body } = signAndBody(n, decimals, locale, true, rounding, true);
|
|
96
132
|
return `${sign}$${body}`;
|
|
97
133
|
}
|
|
98
134
|
/**
|
|
@@ -105,18 +141,12 @@ export function formatSignedUsd(value, options = {}) {
|
|
|
105
141
|
* @public
|
|
106
142
|
*/
|
|
107
143
|
export function formatSignedPercent(value, options = {}) {
|
|
108
|
-
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale } = options;
|
|
144
|
+
const { decimals = 2, placeholder = DEFAULT_PLACEHOLDER, locale, rounding = 'halfUp', } = options;
|
|
109
145
|
const n = toFiniteNumber(value);
|
|
110
146
|
if (n === null) {
|
|
111
147
|
return placeholder;
|
|
112
148
|
}
|
|
113
|
-
const
|
|
114
|
-
const sign = rounded > 0 ? '+' : rounded < 0 ? '-' : '';
|
|
115
|
-
const body = Math.abs(rounded).toLocaleString(locale, {
|
|
116
|
-
minimumFractionDigits: decimals,
|
|
117
|
-
maximumFractionDigits: decimals,
|
|
118
|
-
useGrouping: false,
|
|
119
|
-
});
|
|
149
|
+
const { sign, body } = signAndBody(n, decimals, locale, false, rounding, true);
|
|
120
150
|
return `${sign}${body}%`;
|
|
121
151
|
}
|
|
122
152
|
/**
|
|
@@ -130,14 +160,14 @@ export function formatSignedPercent(value, options = {}) {
|
|
|
130
160
|
* @public
|
|
131
161
|
*/
|
|
132
162
|
export function formatPrice(value, options = {}) {
|
|
133
|
-
const { placeholder = DEFAULT_PLACEHOLDER, locale } = options;
|
|
163
|
+
const { placeholder = DEFAULT_PLACEHOLDER, locale, rounding = 'halfUp', } = options;
|
|
134
164
|
const n = toFiniteNumber(value);
|
|
135
165
|
if (n === null) {
|
|
136
166
|
return placeholder;
|
|
137
167
|
}
|
|
138
168
|
const abs = Math.abs(n);
|
|
139
169
|
const decimals = options.decimals ?? autoDecimals(abs);
|
|
140
|
-
const { sign, body } = signAndBody(n, decimals, locale, abs >= 1000);
|
|
170
|
+
const { sign, body } = signAndBody(n, decimals, locale, abs >= 1000, rounding, false);
|
|
141
171
|
return `${sign}$${body}`;
|
|
142
172
|
}
|
|
143
173
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/version.d.ts
CHANGED
package/dist/esm/version.js
CHANGED
package/dist/types/index.d.ts
CHANGED
|
@@ -66,8 +66,8 @@ export type { DepositProviderKey } from './utils/depositChain.js';
|
|
|
66
66
|
export { LIFI_DEPOSIT_CHAIN_BY_PROVIDER, lifiDepositChainForProvider, } from './utils/depositChain.js';
|
|
67
67
|
export { ExplorerChainId, explorerTxUrl } from './utils/explorer.js';
|
|
68
68
|
export { classifyFillFromPosition } from './utils/fillClassification.js';
|
|
69
|
-
export type { FormatOptions } from './utils/format.js';
|
|
70
|
-
export { formatCompactUsd, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './utils/format.js';
|
|
69
|
+
export type { FormatOptions, RoundingMode } from './utils/format.js';
|
|
70
|
+
export { formatCompactUsd, formatNumber, formatPrice, formatSignedPercent, formatSignedUsd, formatUsd, } from './utils/format.js';
|
|
71
71
|
export { ACTIVE_ORDER_STATUSES, classifyFill, FillClassification, isActiveOrderStatus, isStopLossOrder, isTakeProfitOrder, isTpSlOrder, } from './utils/orderClassification.js';
|
|
72
72
|
export { expectedRealizedPnlForOpenOrder, expectedRealizedPnlForTriggerOrder, findMatchingPosition, resolveCloseSize, } from './utils/orderMath.js';
|
|
73
73
|
export { stringToFloat } from './utils/parse.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,30 @@ export interface FormatOptions {
|
|
|
10
10
|
placeholder?: string;
|
|
11
11
|
/** BCP 47 locale controlling digit grouping and separators (e.g. `'en-US'`). */
|
|
12
12
|
locale?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Rounding applied when reducing to `decimals` places. Defaults to
|
|
15
|
+
* `'halfUp'`. `'floor'` truncates toward zero (matching big.js `roundDown`),
|
|
16
|
+
* so the rendered magnitude never exceeds the source — use it for readouts
|
|
17
|
+
* validated against a ceiling (available balance, removable margin).
|
|
18
|
+
*/
|
|
19
|
+
rounding?: RoundingMode;
|
|
13
20
|
}
|
|
21
|
+
/** Rounding mode for {@link FormatOptions.rounding}. */
|
|
22
|
+
export type RoundingMode = 'halfUp' | 'floor';
|
|
14
23
|
type FormatInput = number | string | null | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Format a bare number, unsigned, with no currency symbol: `1,234.50`,
|
|
26
|
+
* `-1,500.00`, `0.00`. The core the `$`/`%` formatters wrap; use it for
|
|
27
|
+
* balance labels and symbol-suffixed amounts (`12.5 LIT`).
|
|
28
|
+
*
|
|
29
|
+
* Two decimal places with locale digit grouping by default. Negatives keep a
|
|
30
|
+
* leading `-`. `rounding: 'floor'` truncates toward zero so the rendered
|
|
31
|
+
* magnitude never exceeds the source (`99.999` at 2dp → `99.99`, `-99.999` →
|
|
32
|
+
* `-99.99`). Null/undefined/non-finite input renders the placeholder.
|
|
33
|
+
*
|
|
34
|
+
* @public
|
|
35
|
+
*/
|
|
36
|
+
export declare function formatNumber(value: FormatInput, options?: FormatOptions): string;
|
|
15
37
|
/**
|
|
16
38
|
* Format a USD value, unsigned: `$1,234.50`, `-$1,500.00`, `$0.00`.
|
|
17
39
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB;AAED,wDAAwD;AACxD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAA;AAI7C,KAAK,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAyFrD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAaR;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAqBR;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAkBR"}
|
package/dist/types/version.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/perps-sdk",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.1",
|
|
4
4
|
"description": "LI.FI Perps SDK for perpetuals trading",
|
|
5
5
|
"homepage": "https://github.com/lifinance/perps-sdk",
|
|
6
6
|
"bugs": {
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@lifi/types": "17.82.1",
|
|
45
45
|
"partysocket": "^1.1.19",
|
|
46
46
|
"viem": "^2.48.8",
|
|
47
|
-
"@lifi/perps-types": "^2.0.
|
|
47
|
+
"@lifi/perps-types": "^2.0.1"
|
|
48
48
|
},
|
|
49
49
|
"publishConfig": {
|
|
50
50
|
"access": "public"
|
package/src/index.ts
CHANGED
|
@@ -160,9 +160,10 @@ export {
|
|
|
160
160
|
} from './utils/depositChain.js'
|
|
161
161
|
export { ExplorerChainId, explorerTxUrl } from './utils/explorer.js'
|
|
162
162
|
export { classifyFillFromPosition } from './utils/fillClassification.js'
|
|
163
|
-
export type { FormatOptions } from './utils/format.js'
|
|
163
|
+
export type { FormatOptions, RoundingMode } from './utils/format.js'
|
|
164
164
|
export {
|
|
165
165
|
formatCompactUsd,
|
|
166
|
+
formatNumber,
|
|
166
167
|
formatPrice,
|
|
167
168
|
formatSignedPercent,
|
|
168
169
|
formatSignedUsd,
|
package/src/utils/format.ts
CHANGED
|
@@ -10,12 +10,29 @@ export interface FormatOptions {
|
|
|
10
10
|
placeholder?: string
|
|
11
11
|
/** BCP 47 locale controlling digit grouping and separators (e.g. `'en-US'`). */
|
|
12
12
|
locale?: string
|
|
13
|
+
/**
|
|
14
|
+
* Rounding applied when reducing to `decimals` places. Defaults to
|
|
15
|
+
* `'halfUp'`. `'floor'` truncates toward zero (matching big.js `roundDown`),
|
|
16
|
+
* so the rendered magnitude never exceeds the source — use it for readouts
|
|
17
|
+
* validated against a ceiling (available balance, removable margin).
|
|
18
|
+
*/
|
|
19
|
+
rounding?: RoundingMode
|
|
13
20
|
}
|
|
14
21
|
|
|
22
|
+
/** Rounding mode for {@link FormatOptions.rounding}. */
|
|
23
|
+
export type RoundingMode = 'halfUp' | 'floor'
|
|
24
|
+
|
|
15
25
|
const DEFAULT_PLACEHOLDER = '—'
|
|
16
26
|
|
|
17
27
|
type FormatInput = number | string | null | undefined
|
|
18
28
|
|
|
29
|
+
/**
|
|
30
|
+
* Extra decimal places used to normalise IEEE-754 representation noise before
|
|
31
|
+
* truncating. `toFixed` at this higher precision cleans values like
|
|
32
|
+
* `0.28999999…` back to `0.29`; truncation then chops the guard digits.
|
|
33
|
+
*/
|
|
34
|
+
const FLOAT_GUARD_DIGITS = 9
|
|
35
|
+
|
|
19
36
|
/**
|
|
20
37
|
* Tolerantly coerce a display input to a finite number.
|
|
21
38
|
*
|
|
@@ -40,19 +57,38 @@ function toFiniteNumber(value: FormatInput): number | null {
|
|
|
40
57
|
}
|
|
41
58
|
|
|
42
59
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
60
|
+
* Truncate a non-negative value toward zero to `decimals` places using its
|
|
61
|
+
* decimal string, never float scaling. Representation noise is first
|
|
62
|
+
* normalised by `toFixed` at {@link FLOAT_GUARD_DIGITS} extra precision, then
|
|
63
|
+
* the guard digits are chopped: `99.999` at 2dp → `99.99`, `0.29` → `0.29`.
|
|
64
|
+
*/
|
|
65
|
+
function truncateAbs(abs: number, decimals: number): number {
|
|
66
|
+
const s = abs.toFixed(Math.min(decimals + FLOAT_GUARD_DIGITS, 100))
|
|
67
|
+
const dot = s.indexOf('.')
|
|
68
|
+
const cut = decimals === 0 ? dot : dot + 1 + decimals
|
|
69
|
+
return Number(s.slice(0, cut))
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Reduce `n` to `decimals` places then split into a sign and the
|
|
74
|
+
* locale-formatted absolute body. The sign is derived from the reduced value
|
|
75
|
+
* so magnitudes that collapse to zero render without a spurious `-`/`+`.
|
|
76
|
+
* `signed` emits `+` for positives; `rounding` selects half-up or truncation.
|
|
46
77
|
*/
|
|
47
78
|
function signAndBody(
|
|
48
79
|
n: number,
|
|
49
80
|
decimals: number,
|
|
50
81
|
locale: string | undefined,
|
|
51
|
-
grouping: boolean
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
const
|
|
82
|
+
grouping: boolean,
|
|
83
|
+
rounding: RoundingMode,
|
|
84
|
+
signed: boolean
|
|
85
|
+
): { sign: '+' | '-' | ''; body: string } {
|
|
86
|
+
const reduced =
|
|
87
|
+
rounding === 'floor'
|
|
88
|
+
? (n < 0 ? -1 : 1) * truncateAbs(Math.abs(n), decimals)
|
|
89
|
+
: Number(n.toFixed(decimals))
|
|
90
|
+
const sign = reduced < 0 ? '-' : signed && reduced > 0 ? '+' : ''
|
|
91
|
+
const body = Math.abs(reduced).toLocaleString(locale, {
|
|
56
92
|
minimumFractionDigits: decimals,
|
|
57
93
|
maximumFractionDigits: decimals,
|
|
58
94
|
useGrouping: grouping,
|
|
@@ -77,6 +113,36 @@ function autoDecimals(abs: number): number {
|
|
|
77
113
|
return 6
|
|
78
114
|
}
|
|
79
115
|
|
|
116
|
+
/**
|
|
117
|
+
* Format a bare number, unsigned, with no currency symbol: `1,234.50`,
|
|
118
|
+
* `-1,500.00`, `0.00`. The core the `$`/`%` formatters wrap; use it for
|
|
119
|
+
* balance labels and symbol-suffixed amounts (`12.5 LIT`).
|
|
120
|
+
*
|
|
121
|
+
* Two decimal places with locale digit grouping by default. Negatives keep a
|
|
122
|
+
* leading `-`. `rounding: 'floor'` truncates toward zero so the rendered
|
|
123
|
+
* magnitude never exceeds the source (`99.999` at 2dp → `99.99`, `-99.999` →
|
|
124
|
+
* `-99.99`). Null/undefined/non-finite input renders the placeholder.
|
|
125
|
+
*
|
|
126
|
+
* @public
|
|
127
|
+
*/
|
|
128
|
+
export function formatNumber(
|
|
129
|
+
value: FormatInput,
|
|
130
|
+
options: FormatOptions = {}
|
|
131
|
+
): string {
|
|
132
|
+
const {
|
|
133
|
+
decimals = 2,
|
|
134
|
+
placeholder = DEFAULT_PLACEHOLDER,
|
|
135
|
+
locale,
|
|
136
|
+
rounding = 'halfUp',
|
|
137
|
+
} = options
|
|
138
|
+
const n = toFiniteNumber(value)
|
|
139
|
+
if (n === null) {
|
|
140
|
+
return placeholder
|
|
141
|
+
}
|
|
142
|
+
const { sign, body } = signAndBody(n, decimals, locale, true, rounding, false)
|
|
143
|
+
return `${sign}${body}`
|
|
144
|
+
}
|
|
145
|
+
|
|
80
146
|
/**
|
|
81
147
|
* Format a USD value, unsigned: `$1,234.50`, `-$1,500.00`, `$0.00`.
|
|
82
148
|
*
|
|
@@ -89,12 +155,17 @@ export function formatUsd(
|
|
|
89
155
|
value: FormatInput,
|
|
90
156
|
options: FormatOptions = {}
|
|
91
157
|
): string {
|
|
92
|
-
const {
|
|
158
|
+
const {
|
|
159
|
+
decimals = 2,
|
|
160
|
+
placeholder = DEFAULT_PLACEHOLDER,
|
|
161
|
+
locale,
|
|
162
|
+
rounding = 'halfUp',
|
|
163
|
+
} = options
|
|
93
164
|
const n = toFiniteNumber(value)
|
|
94
165
|
if (n === null) {
|
|
95
166
|
return placeholder
|
|
96
167
|
}
|
|
97
|
-
const { sign, body } = signAndBody(n, decimals, locale, true)
|
|
168
|
+
const { sign, body } = signAndBody(n, decimals, locale, true, rounding, false)
|
|
98
169
|
return `${sign}$${body}`
|
|
99
170
|
}
|
|
100
171
|
|
|
@@ -111,18 +182,17 @@ export function formatSignedUsd(
|
|
|
111
182
|
value: FormatInput,
|
|
112
183
|
options: FormatOptions = {}
|
|
113
184
|
): string {
|
|
114
|
-
const {
|
|
185
|
+
const {
|
|
186
|
+
decimals = 2,
|
|
187
|
+
placeholder = DEFAULT_PLACEHOLDER,
|
|
188
|
+
locale,
|
|
189
|
+
rounding = 'halfUp',
|
|
190
|
+
} = options
|
|
115
191
|
const n = toFiniteNumber(value)
|
|
116
192
|
if (n === null) {
|
|
117
193
|
return placeholder
|
|
118
194
|
}
|
|
119
|
-
const
|
|
120
|
-
const sign = rounded > 0 ? '+' : rounded < 0 ? '-' : ''
|
|
121
|
-
const body = Math.abs(rounded).toLocaleString(locale, {
|
|
122
|
-
minimumFractionDigits: decimals,
|
|
123
|
-
maximumFractionDigits: decimals,
|
|
124
|
-
useGrouping: true,
|
|
125
|
-
})
|
|
195
|
+
const { sign, body } = signAndBody(n, decimals, locale, true, rounding, true)
|
|
126
196
|
return `${sign}$${body}`
|
|
127
197
|
}
|
|
128
198
|
|
|
@@ -139,18 +209,17 @@ export function formatSignedPercent(
|
|
|
139
209
|
value: FormatInput,
|
|
140
210
|
options: FormatOptions = {}
|
|
141
211
|
): string {
|
|
142
|
-
const {
|
|
212
|
+
const {
|
|
213
|
+
decimals = 2,
|
|
214
|
+
placeholder = DEFAULT_PLACEHOLDER,
|
|
215
|
+
locale,
|
|
216
|
+
rounding = 'halfUp',
|
|
217
|
+
} = options
|
|
143
218
|
const n = toFiniteNumber(value)
|
|
144
219
|
if (n === null) {
|
|
145
220
|
return placeholder
|
|
146
221
|
}
|
|
147
|
-
const
|
|
148
|
-
const sign = rounded > 0 ? '+' : rounded < 0 ? '-' : ''
|
|
149
|
-
const body = Math.abs(rounded).toLocaleString(locale, {
|
|
150
|
-
minimumFractionDigits: decimals,
|
|
151
|
-
maximumFractionDigits: decimals,
|
|
152
|
-
useGrouping: false,
|
|
153
|
-
})
|
|
222
|
+
const { sign, body } = signAndBody(n, decimals, locale, false, rounding, true)
|
|
154
223
|
return `${sign}${body}%`
|
|
155
224
|
}
|
|
156
225
|
|
|
@@ -168,14 +237,25 @@ export function formatPrice(
|
|
|
168
237
|
value: FormatInput,
|
|
169
238
|
options: FormatOptions = {}
|
|
170
239
|
): string {
|
|
171
|
-
const {
|
|
240
|
+
const {
|
|
241
|
+
placeholder = DEFAULT_PLACEHOLDER,
|
|
242
|
+
locale,
|
|
243
|
+
rounding = 'halfUp',
|
|
244
|
+
} = options
|
|
172
245
|
const n = toFiniteNumber(value)
|
|
173
246
|
if (n === null) {
|
|
174
247
|
return placeholder
|
|
175
248
|
}
|
|
176
249
|
const abs = Math.abs(n)
|
|
177
250
|
const decimals = options.decimals ?? autoDecimals(abs)
|
|
178
|
-
const { sign, body } = signAndBody(
|
|
251
|
+
const { sign, body } = signAndBody(
|
|
252
|
+
n,
|
|
253
|
+
decimals,
|
|
254
|
+
locale,
|
|
255
|
+
abs >= 1000,
|
|
256
|
+
rounding,
|
|
257
|
+
false
|
|
258
|
+
)
|
|
179
259
|
return `${sign}$${body}`
|
|
180
260
|
}
|
|
181
261
|
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@lifi/perps-sdk'
|
|
2
|
-
export const version = '3.
|
|
2
|
+
export const version = '3.1.1'
|