@lifi/perps-sdk 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -141
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/services/getMarketsContext.d.ts +9 -0
- package/dist/cjs/services/getMarketsContext.d.ts.map +1 -0
- package/dist/cjs/services/{getPrices.js → getMarketsContext.js} +4 -4
- package/dist/cjs/services/getMarketsContext.js.map +1 -0
- package/dist/cjs/services/resolveQuote.d.ts +2 -2
- package/dist/cjs/services/resolveQuote.d.ts.map +1 -1
- package/dist/cjs/services/resolveQuote.js +2 -2
- package/dist/cjs/services/resolveQuote.js.map +1 -1
- package/dist/cjs/utils/calculations.d.ts +2 -2
- package/dist/cjs/utils/calculations.d.ts.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/services/{getPrices.d.ts → getMarketsContext.d.ts} +6 -5
- package/dist/esm/services/getMarketsContext.d.ts.map +1 -0
- package/dist/esm/services/{getPrices.js → getMarketsContext.js} +5 -4
- package/dist/esm/services/getMarketsContext.js.map +1 -0
- package/dist/esm/services/resolveQuote.d.ts +3 -3
- package/dist/esm/services/resolveQuote.d.ts.map +1 -1
- package/dist/esm/services/resolveQuote.js +3 -3
- package/dist/esm/services/resolveQuote.js.map +1 -1
- package/dist/esm/utils/calculations.d.ts +3 -3
- package/dist/esm/utils/calculations.d.ts.map +1 -1
- package/dist/esm/utils/calculations.js +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/services/{getPrices.d.ts → getMarketsContext.d.ts} +6 -5
- package/dist/types/services/getMarketsContext.d.ts.map +1 -0
- package/dist/types/services/resolveQuote.d.ts +3 -3
- package/dist/types/services/resolveQuote.d.ts.map +1 -1
- package/dist/types/utils/calculations.d.ts +3 -3
- package/dist/types/utils/calculations.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +3 -3
- package/src/index.ts +2 -2
- package/src/services/{getPrices.ts → getMarketsContext.ts} +7 -6
- package/src/services/resolveQuote.ts +5 -5
- package/src/utils/calculations.ts +3 -3
- package/src/version.ts +1 -1
- package/dist/cjs/services/getPrices.d.ts +0 -9
- package/dist/cjs/services/getPrices.d.ts.map +0 -1
- package/dist/cjs/services/getPrices.js.map +0 -1
- package/dist/esm/services/getPrices.d.ts.map +0 -1
- package/dist/esm/services/getPrices.js.map +0 -1
- package/dist/types/services/getPrices.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ Core of the [LI.FI Perps SDK](https://public-perps-docs.mintlify.app/) — a Typ
|
|
|
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`.
|
|
18
|
-
- **
|
|
18
|
+
- **Streaming** — WebSocket subscriptions for prices, orderbook, and fills.
|
|
19
19
|
- **Fully typed** — all types exported, sourced from `@lifi/perps-types`.
|
|
20
20
|
|
|
21
21
|
## Installation
|
|
@@ -24,8 +24,6 @@ Install the core SDK plus the provider plugin(s) for the DEX(es) you target:
|
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
26
|
pnpm add @lifi/perps-sdk @lifi/perps-sdk-provider-hyperliquid
|
|
27
|
-
# or
|
|
28
|
-
npm install @lifi/perps-sdk @lifi/perps-sdk-provider-hyperliquid
|
|
29
27
|
```
|
|
30
28
|
|
|
31
29
|
| Package | Install for |
|
|
@@ -36,150 +34,12 @@ npm install @lifi/perps-sdk @lifi/perps-sdk-provider-hyperliquid
|
|
|
36
34
|
|
|
37
35
|
Get an API key from the [LI.FI Partner Portal](https://portal.li.fi/).
|
|
38
36
|
|
|
39
|
-
## Gotchas
|
|
40
|
-
|
|
41
|
-
- **Register every provider plugin on the client.** The core SDK ships no DEX
|
|
42
|
-
logic — pass the plugins via the `providers` option (`hyperliquidProvider()`,
|
|
43
|
-
`lighterProvider()`) or a call to any provider-specific service throws.
|
|
44
|
-
- **Setup needs a one-time wallet signature.** `placeOrder` signs with a
|
|
45
|
-
per-user agent, not the wallet. Run `checkSetup` and complete the returned
|
|
46
|
-
steps (one user-signed step provisions the agent) before trading; `isReady`
|
|
47
|
-
flips `true` once everything is satisfied.
|
|
48
|
-
- **Markets are referenced by opaque `marketId`, not display symbol.** A
|
|
49
|
-
`MarketRef` is `{ marketId, categoryId }` where `marketId` is `Market.id`
|
|
50
|
-
from `getMarkets` — not a string like `'BTC'`. The same applies to the
|
|
51
|
-
`marketIds` filter on `getMarkets` / `getPrices`.
|
|
52
|
-
|
|
53
37
|
## Architecture
|
|
54
38
|
|
|
55
39
|
### Package layering
|
|
56
40
|
|
|
57
41
|
`@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.
|
|
58
42
|
|
|
59
|
-
### Action lifecycle
|
|
60
|
-
|
|
61
|
-
Every mutating action (order placement, cancellation, withdrawal, setup) follows the same pipeline: `PerpsClient` requests unsigned action steps from the LI.FI backend (`createAction`), the provider plugin signs them, and the client submits the signed steps back (`executeAction`). The developer experience is one wallet signature at setup time — the agent provisioned during setup signs all subsequent orders automatically, with no per-order wallet popups.
|
|
62
|
-
|
|
63
|
-
### Data-plane split
|
|
64
|
-
|
|
65
|
-
Market-structure reads (markets, assets, prices, OHLCV, orderbook) go through the LI.FI backend, which fans out to each venue on your behalf. Per-user reads (account state, positions, orders, fills, activity) go from the SDK directly to the venue API using the end-user's own IP — this keeps venue rate limits per-user rather than concentrating them on the backend's single egress address.
|
|
66
|
-
|
|
67
|
-
## Quick Start
|
|
68
|
-
|
|
69
|
-
### Fetch market data
|
|
70
|
-
|
|
71
|
-
```typescript
|
|
72
|
-
import { createPerpsClient, getProviders, getMarkets, getPrices } from '@lifi/perps-sdk'
|
|
73
|
-
|
|
74
|
-
const client = createPerpsClient({ integrator: 'my-app', apiKey: 'your-api-key' })
|
|
75
|
-
|
|
76
|
-
// getProviders returns the live provider list; provider: takes a key string
|
|
77
|
-
// like 'hyperliquid' or 'lighter'.
|
|
78
|
-
const { providers } = await getProviders(client)
|
|
79
|
-
const { markets } = await getMarkets(client, { provider: providers[0].key })
|
|
80
|
-
const { prices } = await getPrices(client, {
|
|
81
|
-
provider: 'hyperliquid',
|
|
82
|
-
marketIds: markets.slice(0, 2).map((m) => m.id),
|
|
83
|
-
})
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### Trade with PerpsClient
|
|
87
|
-
|
|
88
|
-
Register the provider plugin(s), run the one-time setup flow, then place orders:
|
|
89
|
-
|
|
90
|
-
```typescript
|
|
91
|
-
import { PerpsClient, OrderSide, OrderType } from '@lifi/perps-sdk'
|
|
92
|
-
import { hyperliquidProvider } from '@lifi/perps-sdk-provider-hyperliquid'
|
|
93
|
-
|
|
94
|
-
const perps = new PerpsClient({
|
|
95
|
-
integrator: 'my-app',
|
|
96
|
-
apiKey: 'your-api-key',
|
|
97
|
-
providers: [hyperliquidProvider()],
|
|
98
|
-
})
|
|
99
|
-
|
|
100
|
-
// One-time setup: provisions the signing agent and reports any steps still
|
|
101
|
-
// needing the user's wallet signature. isReady === true once satisfied.
|
|
102
|
-
const setup = await perps.checkSetup({ provider: 'hyperliquid', address })
|
|
103
|
-
|
|
104
|
-
// Resolve the market to trade from getMarkets, then place the order — the
|
|
105
|
-
// agent signs automatically, no wallet popups.
|
|
106
|
-
const result = await perps.placeOrder({
|
|
107
|
-
provider: 'hyperliquid',
|
|
108
|
-
address,
|
|
109
|
-
market: { marketId: market.id, categoryId: market.categoryId },
|
|
110
|
-
side: OrderSide.BUY,
|
|
111
|
-
type: OrderType.MARKET,
|
|
112
|
-
size: '0.1',
|
|
113
|
-
price: '95000.00',
|
|
114
|
-
})
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
See the [`agent-trading` example](https://github.com/lifinance/perps-sdk/tree/main/examples) for the full setup flow, including signing the user-gated steps.
|
|
118
|
-
|
|
119
|
-
### Venue-correct order formatting
|
|
120
|
-
|
|
121
|
-
Tick/lot rules and margin models differ per venue, so price/size formatting and
|
|
122
|
-
liquidation previews are provider methods — always route them through the
|
|
123
|
-
market's own provider rather than applying one venue's rules to another's
|
|
124
|
-
markets:
|
|
125
|
-
|
|
126
|
-
```typescript
|
|
127
|
-
const provider = perps.client.getProvider(market.providerId)!
|
|
128
|
-
const price = provider.formatOrderPrice(market, 95000.25)
|
|
129
|
-
const size = provider.formatOrderSize(market, 0.123456)
|
|
130
|
-
const liq = provider.estimateLiquidationPrice(market, {
|
|
131
|
-
entryPrice: 95000,
|
|
132
|
-
leverage: 10,
|
|
133
|
-
isLong: true,
|
|
134
|
-
}) // number, or undefined when the venue model can't be evaluated client-side
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
## Realtime (WebSocket)
|
|
138
|
-
|
|
139
|
-
`PerpsWsClient` is the realtime layer. It lazily opens one socket per provider
|
|
140
|
-
on first subscribe, ref-counts listeners onto a single wire subscription per
|
|
141
|
-
channel, and fans each event out to every listener — so each consumer
|
|
142
|
-
subscribes independently and the SDK dedupes. Active subscriptions are replayed
|
|
143
|
-
automatically on reconnect.
|
|
144
|
-
|
|
145
|
-
```typescript
|
|
146
|
-
import { PerpsWsClient, createPerpsClient } from '@lifi/perps-sdk'
|
|
147
|
-
import { hyperliquidWsProvider } from '@lifi/perps-sdk-provider-hyperliquid'
|
|
148
|
-
import { lighterWsProvider } from '@lifi/perps-sdk-provider-lighter'
|
|
149
|
-
|
|
150
|
-
const client = createPerpsClient({ integrator: 'my-app', apiKey: 'your-api-key' })
|
|
151
|
-
|
|
152
|
-
const ws = new PerpsWsClient(client, {
|
|
153
|
-
wsProviders: {
|
|
154
|
-
hyperliquid: hyperliquidWsProvider(),
|
|
155
|
-
lighter: lighterWsProvider(),
|
|
156
|
-
},
|
|
157
|
-
})
|
|
158
|
-
|
|
159
|
-
const unsubscribe = await ws.subscribe(
|
|
160
|
-
{ channel: 'prices', dex: 'hyperliquid' },
|
|
161
|
-
(event) => console.log(event.data), // Market.id → last-trade price
|
|
162
|
-
(status) => console.log(status), // 'connected' | 'reconnecting' | 'disconnected'
|
|
163
|
-
)
|
|
164
|
-
|
|
165
|
-
unsubscribe() // release this listener; socket closes when the last one releases
|
|
166
|
-
ws.close() // close all sockets and drop cached providers
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
Lighter's account-scoped channels (`orderUpdates`, `positions`) require an
|
|
170
|
-
`authProvider` on `lighterWsProvider()`. See the
|
|
171
|
-
[`websocket-subscriptions` example](https://github.com/lifinance/perps-sdk/tree/main/examples)
|
|
172
|
-
and the [SDK documentation](https://public-perps-docs.mintlify.app/) for the
|
|
173
|
-
full channel list, authentication, and reconnect model.
|
|
174
|
-
|
|
175
|
-
## Provider plugins
|
|
176
|
-
|
|
177
|
-
Register one plugin per DEX you trade. Each plugin's README documents its
|
|
178
|
-
signing model, setup flow, and exported surface:
|
|
179
|
-
|
|
180
|
-
- [`@lifi/perps-sdk-provider-hyperliquid`](https://www.npmjs.com/package/@lifi/perps-sdk-provider-hyperliquid)
|
|
181
|
-
- [`@lifi/perps-sdk-provider-lighter`](https://www.npmjs.com/package/@lifi/perps-sdk-provider-lighter)
|
|
182
|
-
|
|
183
43
|
## Examples
|
|
184
44
|
|
|
185
45
|
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
|
@@ -21,6 +21,8 @@ export type { GetMarketParams } from './services/getMarket.js';
|
|
|
21
21
|
export { getMarket } from './services/getMarket.js';
|
|
22
22
|
export type { GetMarketsParams } from './services/getMarkets.js';
|
|
23
23
|
export { getMarkets } from './services/getMarkets.js';
|
|
24
|
+
export type { GetMarketsContextParams } from './services/getMarketsContext.js';
|
|
25
|
+
export { getMarketsContext } from './services/getMarketsContext.js';
|
|
24
26
|
export { getMeta } from './services/getMeta.js';
|
|
25
27
|
export type { GetOhlcvParams } from './services/getOhlcv.js';
|
|
26
28
|
export { getOhlcv } from './services/getOhlcv.js';
|
|
@@ -32,8 +34,6 @@ export type { GetOrdersParams } from './services/getOrders.js';
|
|
|
32
34
|
export { getOrders } from './services/getOrders.js';
|
|
33
35
|
export type { GetPositionsParams } from './services/getPositions.js';
|
|
34
36
|
export { getPositions } from './services/getPositions.js';
|
|
35
|
-
export type { GetPricesParams } from './services/getPrices.js';
|
|
36
|
-
export { getPrices } from './services/getPrices.js';
|
|
37
37
|
export { getProviders } from './services/getProviders.js';
|
|
38
38
|
export type { GetQuoteParams } from './services/getQuote.js';
|
|
39
39
|
export { getQuote } from './services/getQuote.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":"AAYA,cAAc,mBAAmB,CAAA;AACjC,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAEnD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC7E,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,8BAA8B,CAAA;AAErC,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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.localStorageAdapter = exports.createMemoryStorage = exports.readValidatedRecord = exports.parseStoredRecord = exports.resolveSubscribeQuote = exports.QUOTE_THROTTLE_MS = exports.resolveQuoteMarket = exports.resolveQuote = exports.getTermsAcceptance = exports.getQuote = exports.getProviders = exports.
|
|
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.localStorageAdapter = exports.createMemoryStorage = exports.readValidatedRecord = exports.parseStoredRecord = 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
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;
|
|
19
19
|
__exportStar(require("@lifi/perps-types"), exports);
|
|
20
20
|
var createPerpsClient_js_1 = require("./client/createPerpsClient.js");
|
|
@@ -49,6 +49,8 @@ var getMarket_js_1 = require("./services/getMarket.js");
|
|
|
49
49
|
Object.defineProperty(exports, "getMarket", { enumerable: true, get: function () { return getMarket_js_1.getMarket; } });
|
|
50
50
|
var getMarkets_js_1 = require("./services/getMarkets.js");
|
|
51
51
|
Object.defineProperty(exports, "getMarkets", { enumerable: true, get: function () { return getMarkets_js_1.getMarkets; } });
|
|
52
|
+
var getMarketsContext_js_1 = require("./services/getMarketsContext.js");
|
|
53
|
+
Object.defineProperty(exports, "getMarketsContext", { enumerable: true, get: function () { return getMarketsContext_js_1.getMarketsContext; } });
|
|
52
54
|
var getMeta_js_1 = require("./services/getMeta.js");
|
|
53
55
|
Object.defineProperty(exports, "getMeta", { enumerable: true, get: function () { return getMeta_js_1.getMeta; } });
|
|
54
56
|
var getOhlcv_js_1 = require("./services/getOhlcv.js");
|
|
@@ -61,8 +63,6 @@ var getOrders_js_1 = require("./services/getOrders.js");
|
|
|
61
63
|
Object.defineProperty(exports, "getOrders", { enumerable: true, get: function () { return getOrders_js_1.getOrders; } });
|
|
62
64
|
var getPositions_js_1 = require("./services/getPositions.js");
|
|
63
65
|
Object.defineProperty(exports, "getPositions", { enumerable: true, get: function () { return getPositions_js_1.getPositions; } });
|
|
64
|
-
var getPrices_js_1 = require("./services/getPrices.js");
|
|
65
|
-
Object.defineProperty(exports, "getPrices", { enumerable: true, get: function () { return getPrices_js_1.getPrices; } });
|
|
66
66
|
var getProviders_js_1 = require("./services/getProviders.js");
|
|
67
67
|
Object.defineProperty(exports, "getProviders", { enumerable: true, get: function () { return getProviders_js_1.getProviders; } });
|
|
68
68
|
var getQuote_js_1 = require("./services/getQuote.js");
|
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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PricesResponse } from '@lifi/perps-types';
|
|
2
|
+
import type { SDKRequestOptions } from '../types/config.js';
|
|
3
|
+
import type { PerpsSDKClient } from '../types/provider.js';
|
|
4
|
+
export interface GetMarketsContextParams {
|
|
5
|
+
provider: string;
|
|
6
|
+
marketIds?: string[];
|
|
7
|
+
}
|
|
8
|
+
export declare function getMarketsContext(client: PerpsSDKClient, params: GetMarketsContextParams, options?: SDKRequestOptions): Promise<PricesResponse>;
|
|
9
|
+
//# sourceMappingURL=getMarketsContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMarketsContext.d.ts","sourceRoot":"","sources":["../../../src/services/getMarketsContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAO1D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAA;IAEhB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AASD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAMzB"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getMarketsContext = getMarketsContext;
|
|
4
4
|
const request_js_1 = require("../transport/request.js");
|
|
5
|
-
async function
|
|
6
|
-
const url = (0, request_js_1.buildUrl)(`${client.config.apiUrl}/
|
|
5
|
+
async function getMarketsContext(client, params, options) {
|
|
6
|
+
const url = (0, request_js_1.buildUrl)(`${client.config.apiUrl}/marketsContext`, {
|
|
7
7
|
provider: params.provider,
|
|
8
8
|
marketIds: params.marketIds?.join(','),
|
|
9
9
|
});
|
|
10
10
|
return (0, request_js_1.request)(client.config, url, {}, options);
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=
|
|
12
|
+
//# sourceMappingURL=getMarketsContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMarketsContext.js","sourceRoot":"","sources":["../../../src/services/getMarketsContext.ts"],"names":[],"mappings":";;AAuBA,8CAUC;AAhCD,wDAA2D;AAsBpD,KAAK,UAAU,iBAAiB,CACrC,MAAsB,EACtB,MAA+B,EAC/B,OAA2B;IAE3B,MAAM,GAAG,GAAG,IAAA,qBAAQ,EAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,iBAAiB,EAAE;QAC7D,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC;KACvC,CAAC,CAAA;IACF,OAAO,IAAA,oBAAO,EAAiB,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACjE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type FeeTier, type Market, type
|
|
1
|
+
import { type FeeTier, type Market, type MarketContext, type Quote } from '@lifi/perps-types';
|
|
2
2
|
import type { SDKRequestOptions } from '../types/config.js';
|
|
3
3
|
import type { PerpsSDKClient, ProviderGetQuoteParams } from '../types/provider.js';
|
|
4
4
|
export declare function resolveQuote(client: PerpsSDKClient, provider: string, params: ProviderGetQuoteParams, feeTier: FeeTier, options?: SDKRequestOptions): Promise<Quote>;
|
|
5
5
|
export declare function resolveQuoteMarket(client: PerpsSDKClient, provider: string, params: Pick<ProviderGetQuoteParams, 'symbol' | 'type'>, options?: SDKRequestOptions): Promise<Market>;
|
|
6
|
-
export declare function resolveQuotePrice(client: PerpsSDKClient, provider: string, marketId: string, options?: SDKRequestOptions): Promise<
|
|
6
|
+
export declare function resolveQuotePrice(client: PerpsSDKClient, provider: string, marketId: string, options?: SDKRequestOptions): Promise<MarketContext>;
|
|
7
7
|
//# sourceMappingURL=resolveQuote.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveQuote.d.ts","sourceRoot":"","sources":["../../../src/services/resolveQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,
|
|
1
|
+
{"version":3,"file":"resolveQuote.d.ts","sourceRoot":"","sources":["../../../src/services/resolveQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,aAAa,EAElB,KAAK,KAAK,EACX,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACvB,MAAM,sBAAsB,CAAA;AAiB7B,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,KAAK,CAAC,CAqBhB;AAWD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,CAAC,sBAAsB,EAAE,QAAQ,GAAG,MAAM,CAAC,EACvD,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAcjB;AAgBD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAcxB"}
|
|
@@ -7,8 +7,8 @@ const perps_types_1 = require("@lifi/perps-types");
|
|
|
7
7
|
const PerpsError_js_1 = require("../errors/PerpsError.js");
|
|
8
8
|
const calculations_js_1 = require("../utils/calculations.js");
|
|
9
9
|
const getMarkets_js_1 = require("./getMarkets.js");
|
|
10
|
+
const getMarketsContext_js_1 = require("./getMarketsContext.js");
|
|
10
11
|
const getOrderbook_js_1 = require("./getOrderbook.js");
|
|
11
|
-
const getPrices_js_1 = require("./getPrices.js");
|
|
12
12
|
async function resolveQuote(client, provider, params, feeTier, options) {
|
|
13
13
|
const market = await resolveQuoteMarket(client, provider, params, options);
|
|
14
14
|
const [{ bids, asks }, price] = await Promise.all([
|
|
@@ -40,7 +40,7 @@ async function resolveQuoteMarket(client, provider, params, options) {
|
|
|
40
40
|
}
|
|
41
41
|
const isMarketOfType = (market, type) => ('maxLeverage' in market ? type === 'perps' : type === 'spot');
|
|
42
42
|
async function resolveQuotePrice(client, provider, marketId, options) {
|
|
43
|
-
const { prices } = await (0,
|
|
43
|
+
const { prices } = await (0, getMarketsContext_js_1.getMarketsContext)(client, { provider, marketIds: [marketId] }, options);
|
|
44
44
|
const price = prices.find((p) => p.marketId === marketId);
|
|
45
45
|
if (price === undefined) {
|
|
46
46
|
throw new PerpsError_js_1.PerpsError(perps_types_1.PerpsErrorCode.ServerError, `No price returned by '${provider}' for marketId '${marketId}'.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveQuote.js","sourceRoot":"","sources":["../../../src/services/resolveQuote.ts"],"names":[],"mappings":";;AA6BA,oCA2BC;AAWD,gDAmBC;AAgBD,8CAmBC;AAzHD,mDAM0B;AAC1B,2DAAoD;AAMpD,8DAAqD;AACrD,mDAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"resolveQuote.js","sourceRoot":"","sources":["../../../src/services/resolveQuote.ts"],"names":[],"mappings":";;AA6BA,oCA2BC;AAWD,gDAmBC;AAgBD,8CAmBC;AAzHD,mDAM0B;AAC1B,2DAAoD;AAMpD,8DAAqD;AACrD,mDAA4C;AAC5C,iEAA0D;AAC1D,uDAAgD;AAazC,KAAK,UAAU,YAAY,CAChC,MAAsB,EACtB,QAAgB,EAChB,MAA8B,EAC9B,OAAgB,EAChB,OAA2B;IAE3B,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAE1E,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAChD,IAAA,8BAAY,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC;QAChE,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;KACxD,CAAC,CAAA;IAEF,OAAO,IAAA,4BAAU,EAAC;QAChB,QAAQ;QACR,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,IAAI;QACpB,MAAM;QACN,KAAK;QACL,IAAI;QACJ,IAAI;QACJ,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC,CAAA;AACJ,CAAC;AAWM,KAAK,UAAU,kBAAkB,CACtC,MAAsB,EACtB,QAAgB,EAChB,MAAuD,EACvD,OAA2B;IAE3B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,0BAAU,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAA;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CACzB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,SAAS,CAAC,aAAa,KAAK,MAAM,CAAC,MAAM;QAC3C,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CACjC,CAAA;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,0BAAU,CAClB,4BAAc,CAAC,cAAc,EAC7B,MAAM,MAAM,CAAC,IAAI,qBAAqB,QAAQ,iBAAiB,MAAM,CAAC,MAAM,IAAI,CACjF,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,cAAc,GAAG,CACrB,MAAc,EACd,IAAoC,EAC3B,EAAE,CAAC,CAAC,aAAa,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;AAWrE,KAAK,UAAU,iBAAiB,CACrC,MAAsB,EACtB,QAAgB,EAChB,QAAgB,EAChB,OAA2B;IAE3B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,wCAAiB,EACxC,MAAM,EACN,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,EACnC,OAAO,CACR,CAAA;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;IACzD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,0BAAU,CAClB,4BAAc,CAAC,WAAW,EAC1B,yBAAyB,QAAQ,mBAAmB,QAAQ,IAAI,CACjE,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FeeTier, Market,
|
|
1
|
+
import type { FeeTier, Market, MarketContext, OrderbookLevel, Quote, QuoteSide, TradeType } from '@lifi/perps-types';
|
|
2
2
|
export declare function calculatePositionSize(marginUsd: number, leverage: number, price: number): number;
|
|
3
3
|
export declare function calculateNotionalValue(size: number, price: number): number;
|
|
4
4
|
export declare function calculateUnrealizedPnl(entryPrice: number, currentPrice: number, size: number): number;
|
|
@@ -41,7 +41,7 @@ interface BuildQuoteInput {
|
|
|
41
41
|
side: QuoteSide;
|
|
42
42
|
sizeUsd: number;
|
|
43
43
|
market: Market;
|
|
44
|
-
price:
|
|
44
|
+
price: MarketContext;
|
|
45
45
|
bids: OrderbookLevel[];
|
|
46
46
|
asks: OrderbookLevel[];
|
|
47
47
|
feeTier: FeeTier;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculations.d.ts","sourceRoot":"","sources":["../../../src/utils/calculations.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,OAAO,EACP,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"calculations.d.ts","sourceRoot":"","sources":["../../../src/utils/calculations.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
|
@@ -29,6 +29,8 @@ export type { GetMarketParams } from './services/getMarket.js';
|
|
|
29
29
|
export { getMarket } from './services/getMarket.js';
|
|
30
30
|
export type { GetMarketsParams } from './services/getMarkets.js';
|
|
31
31
|
export { getMarkets } from './services/getMarkets.js';
|
|
32
|
+
export type { GetMarketsContextParams } from './services/getMarketsContext.js';
|
|
33
|
+
export { getMarketsContext } from './services/getMarketsContext.js';
|
|
32
34
|
export { getMeta } from './services/getMeta.js';
|
|
33
35
|
export type { GetOhlcvParams } from './services/getOhlcv.js';
|
|
34
36
|
export { getOhlcv } from './services/getOhlcv.js';
|
|
@@ -40,8 +42,6 @@ export type { GetOrdersParams } from './services/getOrders.js';
|
|
|
40
42
|
export { getOrders } from './services/getOrders.js';
|
|
41
43
|
export type { GetPositionsParams } from './services/getPositions.js';
|
|
42
44
|
export { getPositions } from './services/getPositions.js';
|
|
43
|
-
export type { GetPricesParams } from './services/getPrices.js';
|
|
44
|
-
export { getPrices } from './services/getPrices.js';
|
|
45
45
|
export { getProviders } from './services/getProviders.js';
|
|
46
46
|
export type { GetQuoteParams } from './services/getQuote.js';
|
|
47
47
|
export { getQuote } from './services/getQuote.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":"AAGA;;;;;;;GAOG;AAEH,cAAc,mBAAmB,CAAA;AACjC,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAEnD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC7E,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,8BAA8B,CAAA;AAErC,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -24,13 +24,13 @@ export { getAssets } from './services/getAssets.js';
|
|
|
24
24
|
export { getFills } from './services/getFills.js';
|
|
25
25
|
export { getMarket } from './services/getMarket.js';
|
|
26
26
|
export { getMarkets } from './services/getMarkets.js';
|
|
27
|
+
export { getMarketsContext } from './services/getMarketsContext.js';
|
|
27
28
|
export { getMeta } from './services/getMeta.js';
|
|
28
29
|
export { getOhlcv } from './services/getOhlcv.js';
|
|
29
30
|
export { getOrder } from './services/getOrder.js';
|
|
30
31
|
export { getOrderbook } from './services/getOrderbook.js';
|
|
31
32
|
export { getOrders } from './services/getOrders.js';
|
|
32
33
|
export { getPositions } from './services/getPositions.js';
|
|
33
|
-
export { getPrices } from './services/getPrices.js';
|
|
34
34
|
export { getProviders } from './services/getProviders.js';
|
|
35
35
|
export { getQuote } from './services/getQuote.js';
|
|
36
36
|
export { getTermsAcceptance } from './services/getTermsAcceptance.js';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+EAA+E;AAE/E;;;;;;;GAOG;AAEH,cAAc,mBAAmB,CAAA;AACjC,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC7E,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,8BAA8B,CAAA;AAGrC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,20 +2,21 @@ import type { PricesResponse } from '@lifi/perps-types';
|
|
|
2
2
|
import type { SDKRequestOptions } from '../types/config.js';
|
|
3
3
|
import type { PerpsSDKClient } from '../types/provider.js';
|
|
4
4
|
/**
|
|
5
|
-
* Parameters for {@link
|
|
5
|
+
* Parameters for {@link getMarketsContext}.
|
|
6
6
|
*
|
|
7
7
|
* @public
|
|
8
8
|
*/
|
|
9
|
-
export interface
|
|
9
|
+
export interface GetMarketsContextParams {
|
|
10
10
|
provider: string;
|
|
11
11
|
/** Optional filter — opaque `Market.id`s (not display symbols). */
|
|
12
12
|
marketIds?: string[];
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
|
-
* Get current
|
|
15
|
+
* Get current market context (mid/mark/oracle) for markets, optionally filtered
|
|
16
|
+
* by `Market.id`.
|
|
16
17
|
*
|
|
17
18
|
* @throws {PerpsError} On backend error responses, network, or parsing errors.
|
|
18
19
|
* @public
|
|
19
20
|
*/
|
|
20
|
-
export declare function
|
|
21
|
-
//# sourceMappingURL=
|
|
21
|
+
export declare function getMarketsContext(client: PerpsSDKClient, params: GetMarketsContextParams, options?: SDKRequestOptions): Promise<PricesResponse>;
|
|
22
|
+
//# sourceMappingURL=getMarketsContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMarketsContext.d.ts","sourceRoot":"","sources":["../../../src/services/getMarketsContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAMzB"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { buildUrl, request } from '../transport/request.js';
|
|
2
2
|
/**
|
|
3
|
-
* Get current
|
|
3
|
+
* Get current market context (mid/mark/oracle) for markets, optionally filtered
|
|
4
|
+
* by `Market.id`.
|
|
4
5
|
*
|
|
5
6
|
* @throws {PerpsError} On backend error responses, network, or parsing errors.
|
|
6
7
|
* @public
|
|
7
8
|
*/
|
|
8
|
-
export async function
|
|
9
|
-
const url = buildUrl(`${client.config.apiUrl}/
|
|
9
|
+
export async function getMarketsContext(client, params, options) {
|
|
10
|
+
const url = buildUrl(`${client.config.apiUrl}/marketsContext`, {
|
|
10
11
|
provider: params.provider,
|
|
11
12
|
marketIds: params.marketIds?.join(','),
|
|
12
13
|
});
|
|
13
14
|
return request(client.config, url, {}, options);
|
|
14
15
|
}
|
|
15
|
-
//# sourceMappingURL=
|
|
16
|
+
//# sourceMappingURL=getMarketsContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMarketsContext.js","sourceRoot":"","sources":["../../../src/services/getMarketsContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAe3D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAsB,EACtB,MAA+B,EAC/B,OAA2B;IAE3B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,iBAAiB,EAAE;QAC7D,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC;KACvC,CAAC,CAAA;IACF,OAAO,OAAO,CAAiB,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACjE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type FeeTier, type Market, type
|
|
1
|
+
import { type FeeTier, type Market, type MarketContext, type Quote } from '@lifi/perps-types';
|
|
2
2
|
import type { SDKRequestOptions } from '../types/config.js';
|
|
3
3
|
import type { PerpsSDKClient, ProviderGetQuoteParams } from '../types/provider.js';
|
|
4
4
|
/**
|
|
@@ -24,7 +24,7 @@ export declare function resolveQuote(client: PerpsSDKClient, provider: string, p
|
|
|
24
24
|
*/
|
|
25
25
|
export declare function resolveQuoteMarket(client: PerpsSDKClient, provider: string, params: Pick<ProviderGetQuoteParams, 'symbol' | 'type'>, options?: SDKRequestOptions): Promise<Market>;
|
|
26
26
|
/**
|
|
27
|
-
* Fetch the live {@link
|
|
27
|
+
* Fetch the live {@link MarketContext} for `marketId` on `provider`, the source
|
|
28
28
|
* of the `markPrice` and `funding` a {@link Quote} carries. Shared by the
|
|
29
29
|
* one-shot {@link resolveQuote} and the streaming quote subscription.
|
|
30
30
|
*
|
|
@@ -32,5 +32,5 @@ export declare function resolveQuoteMarket(client: PerpsSDKClient, provider: str
|
|
|
32
32
|
* market.
|
|
33
33
|
* @internal
|
|
34
34
|
*/
|
|
35
|
-
export declare function resolveQuotePrice(client: PerpsSDKClient, provider: string, marketId: string, options?: SDKRequestOptions): Promise<
|
|
35
|
+
export declare function resolveQuotePrice(client: PerpsSDKClient, provider: string, marketId: string, options?: SDKRequestOptions): Promise<MarketContext>;
|
|
36
36
|
//# sourceMappingURL=resolveQuote.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveQuote.d.ts","sourceRoot":"","sources":["../../../src/services/resolveQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,
|
|
1
|
+
{"version":3,"file":"resolveQuote.d.ts","sourceRoot":"","sources":["../../../src/services/resolveQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,aAAa,EAElB,KAAK,KAAK,EACX,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACvB,MAAM,sBAAsB,CAAA;AAM7B;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,KAAK,CAAC,CAqBhB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,CAAC,sBAAsB,EAAE,QAAQ,GAAG,MAAM,CAAC,EACvD,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAcjB;AAOD;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAcxB"}
|
|
@@ -2,8 +2,8 @@ import { PerpsErrorCode, } from '@lifi/perps-types';
|
|
|
2
2
|
import { PerpsError } from '../errors/PerpsError.js';
|
|
3
3
|
import { buildQuote } from '../utils/calculations.js';
|
|
4
4
|
import { getMarkets } from './getMarkets.js';
|
|
5
|
+
import { getMarketsContext } from './getMarketsContext.js';
|
|
5
6
|
import { getOrderbook } from './getOrderbook.js';
|
|
6
|
-
import { getPrices } from './getPrices.js';
|
|
7
7
|
/**
|
|
8
8
|
* Shared provider-side `getQuote` implementation: resolve `params.symbol` to a
|
|
9
9
|
* market on `provider` (matching `baseAsset.displaySymbol`, scoped by
|
|
@@ -55,7 +55,7 @@ export async function resolveQuoteMarket(client, provider, params, options) {
|
|
|
55
55
|
}
|
|
56
56
|
const isMarketOfType = (market, type) => ('maxLeverage' in market ? type === 'perps' : type === 'spot');
|
|
57
57
|
/**
|
|
58
|
-
* Fetch the live {@link
|
|
58
|
+
* Fetch the live {@link MarketContext} for `marketId` on `provider`, the source
|
|
59
59
|
* of the `markPrice` and `funding` a {@link Quote} carries. Shared by the
|
|
60
60
|
* one-shot {@link resolveQuote} and the streaming quote subscription.
|
|
61
61
|
*
|
|
@@ -64,7 +64,7 @@ const isMarketOfType = (market, type) => ('maxLeverage' in market ? type === 'pe
|
|
|
64
64
|
* @internal
|
|
65
65
|
*/
|
|
66
66
|
export async function resolveQuotePrice(client, provider, marketId, options) {
|
|
67
|
-
const { prices } = await
|
|
67
|
+
const { prices } = await getMarketsContext(client, { provider, marketIds: [marketId] }, options);
|
|
68
68
|
const price = prices.find((p) => p.marketId === marketId);
|
|
69
69
|
if (price === undefined) {
|
|
70
70
|
throw new PerpsError(PerpsErrorCode.ServerError, `No price returned by '${provider}' for marketId '${marketId}'.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveQuote.js","sourceRoot":"","sources":["../../../src/services/resolveQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,cAAc,GAEf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAMpD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"resolveQuote.js","sourceRoot":"","sources":["../../../src/services/resolveQuote.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* of the perps SDK would need. All parameters are required — no default
|
|
6
6
|
* values for critical financial parameters.
|
|
7
7
|
*/
|
|
8
|
-
import type { FeeTier, Market,
|
|
8
|
+
import type { FeeTier, Market, MarketContext, OrderbookLevel, Quote, QuoteSide, TradeType } from '@lifi/perps-types';
|
|
9
9
|
/**
|
|
10
10
|
* Calculate position size in asset units from margin.
|
|
11
11
|
*
|
|
@@ -204,7 +204,7 @@ interface BuildQuoteInput {
|
|
|
204
204
|
side: QuoteSide;
|
|
205
205
|
sizeUsd: number;
|
|
206
206
|
market: Market;
|
|
207
|
-
price:
|
|
207
|
+
price: MarketContext;
|
|
208
208
|
bids: OrderbookLevel[];
|
|
209
209
|
asks: OrderbookLevel[];
|
|
210
210
|
/** Public base-tier fees for the venue; `isDefaultFeeTier` is always set true. */
|
|
@@ -212,7 +212,7 @@ interface BuildQuoteInput {
|
|
|
212
212
|
timestamp: number;
|
|
213
213
|
}
|
|
214
214
|
/**
|
|
215
|
-
* Build a {@link Quote} from a resolved market, its live {@link
|
|
215
|
+
* Build a {@link Quote} from a resolved market, its live {@link MarketContext},
|
|
216
216
|
* and its orderbook snapshot. Pure: walks the relevant side (buy → asks,
|
|
217
217
|
* sell → bids) for the VWAP fill, derives the price impact in basis points
|
|
218
218
|
* versus mark, applies the base taker fee on the filled notional, and carries
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculations.d.ts","sourceRoot":"","sources":["../../../src/utils/calculations.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"calculations.d.ts","sourceRoot":"","sources":["../../../src/utils/calculations.ts"],"names":[],"mappings":"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"}
|
|
@@ -252,7 +252,7 @@ export function walkOrderbook(levels, sizeUsd) {
|
|
|
252
252
|
};
|
|
253
253
|
}
|
|
254
254
|
/**
|
|
255
|
-
* Build a {@link Quote} from a resolved market, its live {@link
|
|
255
|
+
* Build a {@link Quote} from a resolved market, its live {@link MarketContext},
|
|
256
256
|
* and its orderbook snapshot. Pure: walks the relevant side (buy → asks,
|
|
257
257
|
* sell → bids) for the VWAP fill, derives the price impact in basis points
|
|
258
258
|
* versus mark, applies the base taker fee on the filled notional, and carries
|
package/dist/esm/version.d.ts
CHANGED
package/dist/esm/version.js
CHANGED
package/dist/types/index.d.ts
CHANGED
|
@@ -29,6 +29,8 @@ export type { GetMarketParams } from './services/getMarket.js';
|
|
|
29
29
|
export { getMarket } from './services/getMarket.js';
|
|
30
30
|
export type { GetMarketsParams } from './services/getMarkets.js';
|
|
31
31
|
export { getMarkets } from './services/getMarkets.js';
|
|
32
|
+
export type { GetMarketsContextParams } from './services/getMarketsContext.js';
|
|
33
|
+
export { getMarketsContext } from './services/getMarketsContext.js';
|
|
32
34
|
export { getMeta } from './services/getMeta.js';
|
|
33
35
|
export type { GetOhlcvParams } from './services/getOhlcv.js';
|
|
34
36
|
export { getOhlcv } from './services/getOhlcv.js';
|
|
@@ -40,8 +42,6 @@ export type { GetOrdersParams } from './services/getOrders.js';
|
|
|
40
42
|
export { getOrders } from './services/getOrders.js';
|
|
41
43
|
export type { GetPositionsParams } from './services/getPositions.js';
|
|
42
44
|
export { getPositions } from './services/getPositions.js';
|
|
43
|
-
export type { GetPricesParams } from './services/getPrices.js';
|
|
44
|
-
export { getPrices } from './services/getPrices.js';
|
|
45
45
|
export { getProviders } from './services/getProviders.js';
|
|
46
46
|
export type { GetQuoteParams } from './services/getQuote.js';
|
|
47
47
|
export { getQuote } from './services/getQuote.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,cAAc,mBAAmB,CAAA;AACjC,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAEnD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC7E,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,8BAA8B,CAAA;AAErC,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,20 +2,21 @@ import type { PricesResponse } from '@lifi/perps-types';
|
|
|
2
2
|
import type { SDKRequestOptions } from '../types/config.js';
|
|
3
3
|
import type { PerpsSDKClient } from '../types/provider.js';
|
|
4
4
|
/**
|
|
5
|
-
* Parameters for {@link
|
|
5
|
+
* Parameters for {@link getMarketsContext}.
|
|
6
6
|
*
|
|
7
7
|
* @public
|
|
8
8
|
*/
|
|
9
|
-
export interface
|
|
9
|
+
export interface GetMarketsContextParams {
|
|
10
10
|
provider: string;
|
|
11
11
|
/** Optional filter — opaque `Market.id`s (not display symbols). */
|
|
12
12
|
marketIds?: string[];
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
|
-
* Get current
|
|
15
|
+
* Get current market context (mid/mark/oracle) for markets, optionally filtered
|
|
16
|
+
* by `Market.id`.
|
|
16
17
|
*
|
|
17
18
|
* @throws {PerpsError} On backend error responses, network, or parsing errors.
|
|
18
19
|
* @public
|
|
19
20
|
*/
|
|
20
|
-
export declare function
|
|
21
|
-
//# sourceMappingURL=
|
|
21
|
+
export declare function getMarketsContext(client: PerpsSDKClient, params: GetMarketsContextParams, options?: SDKRequestOptions): Promise<PricesResponse>;
|
|
22
|
+
//# sourceMappingURL=getMarketsContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMarketsContext.d.ts","sourceRoot":"","sources":["../../../src/services/getMarketsContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAMzB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type FeeTier, type Market, type
|
|
1
|
+
import { type FeeTier, type Market, type MarketContext, type Quote } from '@lifi/perps-types';
|
|
2
2
|
import type { SDKRequestOptions } from '../types/config.js';
|
|
3
3
|
import type { PerpsSDKClient, ProviderGetQuoteParams } from '../types/provider.js';
|
|
4
4
|
/**
|
|
@@ -24,7 +24,7 @@ export declare function resolveQuote(client: PerpsSDKClient, provider: string, p
|
|
|
24
24
|
*/
|
|
25
25
|
export declare function resolveQuoteMarket(client: PerpsSDKClient, provider: string, params: Pick<ProviderGetQuoteParams, 'symbol' | 'type'>, options?: SDKRequestOptions): Promise<Market>;
|
|
26
26
|
/**
|
|
27
|
-
* Fetch the live {@link
|
|
27
|
+
* Fetch the live {@link MarketContext} for `marketId` on `provider`, the source
|
|
28
28
|
* of the `markPrice` and `funding` a {@link Quote} carries. Shared by the
|
|
29
29
|
* one-shot {@link resolveQuote} and the streaming quote subscription.
|
|
30
30
|
*
|
|
@@ -32,5 +32,5 @@ export declare function resolveQuoteMarket(client: PerpsSDKClient, provider: str
|
|
|
32
32
|
* market.
|
|
33
33
|
* @internal
|
|
34
34
|
*/
|
|
35
|
-
export declare function resolveQuotePrice(client: PerpsSDKClient, provider: string, marketId: string, options?: SDKRequestOptions): Promise<
|
|
35
|
+
export declare function resolveQuotePrice(client: PerpsSDKClient, provider: string, marketId: string, options?: SDKRequestOptions): Promise<MarketContext>;
|
|
36
36
|
//# sourceMappingURL=resolveQuote.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveQuote.d.ts","sourceRoot":"","sources":["../../../src/services/resolveQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,
|
|
1
|
+
{"version":3,"file":"resolveQuote.d.ts","sourceRoot":"","sources":["../../../src/services/resolveQuote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,aAAa,EAElB,KAAK,KAAK,EACX,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACvB,MAAM,sBAAsB,CAAA;AAM7B;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,KAAK,CAAC,CAqBhB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,CAAC,sBAAsB,EAAE,QAAQ,GAAG,MAAM,CAAC,EACvD,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAcjB;AAOD;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAcxB"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* of the perps SDK would need. All parameters are required — no default
|
|
6
6
|
* values for critical financial parameters.
|
|
7
7
|
*/
|
|
8
|
-
import type { FeeTier, Market,
|
|
8
|
+
import type { FeeTier, Market, MarketContext, OrderbookLevel, Quote, QuoteSide, TradeType } from '@lifi/perps-types';
|
|
9
9
|
/**
|
|
10
10
|
* Calculate position size in asset units from margin.
|
|
11
11
|
*
|
|
@@ -204,7 +204,7 @@ interface BuildQuoteInput {
|
|
|
204
204
|
side: QuoteSide;
|
|
205
205
|
sizeUsd: number;
|
|
206
206
|
market: Market;
|
|
207
|
-
price:
|
|
207
|
+
price: MarketContext;
|
|
208
208
|
bids: OrderbookLevel[];
|
|
209
209
|
asks: OrderbookLevel[];
|
|
210
210
|
/** Public base-tier fees for the venue; `isDefaultFeeTier` is always set true. */
|
|
@@ -212,7 +212,7 @@ interface BuildQuoteInput {
|
|
|
212
212
|
timestamp: number;
|
|
213
213
|
}
|
|
214
214
|
/**
|
|
215
|
-
* Build a {@link Quote} from a resolved market, its live {@link
|
|
215
|
+
* Build a {@link Quote} from a resolved market, its live {@link MarketContext},
|
|
216
216
|
* and its orderbook snapshot. Pure: walks the relevant side (buy → asks,
|
|
217
217
|
* sell → bids) for the VWAP fill, derives the price impact in basis points
|
|
218
218
|
* versus mark, applies the base taker fee on the filled notional, and carries
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculations.d.ts","sourceRoot":"","sources":["../../../src/utils/calculations.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"calculations.d.ts","sourceRoot":"","sources":["../../../src/utils/calculations.ts"],"names":[],"mappings":"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"}
|
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": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "LI.FI Perps SDK for perpetuals trading",
|
|
5
5
|
"homepage": "https://github.com/lifinance/perps-sdk",
|
|
6
6
|
"bugs": {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"url": "https://github.com/lifinance/perps-sdk.git"
|
|
12
12
|
},
|
|
13
13
|
"license": "Apache-2.0",
|
|
14
|
-
"author": "
|
|
14
|
+
"author": "Aaron Boyd <aaron@li.finance>",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"main": "./dist/cjs/index.js",
|
|
17
17
|
"module": "./dist/esm/index.js",
|
|
@@ -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": "1.
|
|
47
|
+
"@lifi/perps-types": "^1.1.0"
|
|
48
48
|
},
|
|
49
49
|
"publishConfig": {
|
|
50
50
|
"access": "public"
|
package/src/index.ts
CHANGED
|
@@ -42,6 +42,8 @@ export type { GetMarketParams } from './services/getMarket.js'
|
|
|
42
42
|
export { getMarket } from './services/getMarket.js'
|
|
43
43
|
export type { GetMarketsParams } from './services/getMarkets.js'
|
|
44
44
|
export { getMarkets } from './services/getMarkets.js'
|
|
45
|
+
export type { GetMarketsContextParams } from './services/getMarketsContext.js'
|
|
46
|
+
export { getMarketsContext } from './services/getMarketsContext.js'
|
|
45
47
|
export { getMeta } from './services/getMeta.js'
|
|
46
48
|
export type { GetOhlcvParams } from './services/getOhlcv.js'
|
|
47
49
|
export { getOhlcv } from './services/getOhlcv.js'
|
|
@@ -53,8 +55,6 @@ export type { GetOrdersParams } from './services/getOrders.js'
|
|
|
53
55
|
export { getOrders } from './services/getOrders.js'
|
|
54
56
|
export type { GetPositionsParams } from './services/getPositions.js'
|
|
55
57
|
export { getPositions } from './services/getPositions.js'
|
|
56
|
-
export type { GetPricesParams } from './services/getPrices.js'
|
|
57
|
-
export { getPrices } from './services/getPrices.js'
|
|
58
58
|
export { getProviders } from './services/getProviders.js'
|
|
59
59
|
export type { GetQuoteParams } from './services/getQuote.js'
|
|
60
60
|
export { getQuote } from './services/getQuote.js'
|
|
@@ -4,28 +4,29 @@ import type { SDKRequestOptions } from '../types/config.js'
|
|
|
4
4
|
import type { PerpsSDKClient } from '../types/provider.js'
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* Parameters for {@link
|
|
7
|
+
* Parameters for {@link getMarketsContext}.
|
|
8
8
|
*
|
|
9
9
|
* @public
|
|
10
10
|
*/
|
|
11
|
-
export interface
|
|
11
|
+
export interface GetMarketsContextParams {
|
|
12
12
|
provider: string
|
|
13
13
|
/** Optional filter — opaque `Market.id`s (not display symbols). */
|
|
14
14
|
marketIds?: string[]
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* Get current
|
|
18
|
+
* Get current market context (mid/mark/oracle) for markets, optionally filtered
|
|
19
|
+
* by `Market.id`.
|
|
19
20
|
*
|
|
20
21
|
* @throws {PerpsError} On backend error responses, network, or parsing errors.
|
|
21
22
|
* @public
|
|
22
23
|
*/
|
|
23
|
-
export async function
|
|
24
|
+
export async function getMarketsContext(
|
|
24
25
|
client: PerpsSDKClient,
|
|
25
|
-
params:
|
|
26
|
+
params: GetMarketsContextParams,
|
|
26
27
|
options?: SDKRequestOptions
|
|
27
28
|
): Promise<PricesResponse> {
|
|
28
|
-
const url = buildUrl(`${client.config.apiUrl}/
|
|
29
|
+
const url = buildUrl(`${client.config.apiUrl}/marketsContext`, {
|
|
29
30
|
provider: params.provider,
|
|
30
31
|
marketIds: params.marketIds?.join(','),
|
|
31
32
|
})
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
type FeeTier,
|
|
3
3
|
type Market,
|
|
4
|
-
type
|
|
4
|
+
type MarketContext,
|
|
5
5
|
PerpsErrorCode,
|
|
6
6
|
type Quote,
|
|
7
7
|
} from '@lifi/perps-types'
|
|
@@ -13,8 +13,8 @@ import type {
|
|
|
13
13
|
} from '../types/provider.js'
|
|
14
14
|
import { buildQuote } from '../utils/calculations.js'
|
|
15
15
|
import { getMarkets } from './getMarkets.js'
|
|
16
|
+
import { getMarketsContext } from './getMarketsContext.js'
|
|
16
17
|
import { getOrderbook } from './getOrderbook.js'
|
|
17
|
-
import { getPrices } from './getPrices.js'
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* Shared provider-side `getQuote` implementation: resolve `params.symbol` to a
|
|
@@ -92,7 +92,7 @@ const isMarketOfType = (
|
|
|
92
92
|
): boolean => ('maxLeverage' in market ? type === 'perps' : type === 'spot')
|
|
93
93
|
|
|
94
94
|
/**
|
|
95
|
-
* Fetch the live {@link
|
|
95
|
+
* Fetch the live {@link MarketContext} for `marketId` on `provider`, the source
|
|
96
96
|
* of the `markPrice` and `funding` a {@link Quote} carries. Shared by the
|
|
97
97
|
* one-shot {@link resolveQuote} and the streaming quote subscription.
|
|
98
98
|
*
|
|
@@ -105,8 +105,8 @@ export async function resolveQuotePrice(
|
|
|
105
105
|
provider: string,
|
|
106
106
|
marketId: string,
|
|
107
107
|
options?: SDKRequestOptions
|
|
108
|
-
): Promise<
|
|
109
|
-
const { prices } = await
|
|
108
|
+
): Promise<MarketContext> {
|
|
109
|
+
const { prices } = await getMarketsContext(
|
|
110
110
|
client,
|
|
111
111
|
{ provider, marketIds: [marketId] },
|
|
112
112
|
options
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import type {
|
|
10
10
|
FeeTier,
|
|
11
11
|
Market,
|
|
12
|
-
|
|
12
|
+
MarketContext,
|
|
13
13
|
OrderbookLevel,
|
|
14
14
|
Quote,
|
|
15
15
|
QuoteSide,
|
|
@@ -355,7 +355,7 @@ interface BuildQuoteInput {
|
|
|
355
355
|
side: QuoteSide
|
|
356
356
|
sizeUsd: number
|
|
357
357
|
market: Market
|
|
358
|
-
price:
|
|
358
|
+
price: MarketContext
|
|
359
359
|
bids: OrderbookLevel[]
|
|
360
360
|
asks: OrderbookLevel[]
|
|
361
361
|
/** Public base-tier fees for the venue; `isDefaultFeeTier` is always set true. */
|
|
@@ -364,7 +364,7 @@ interface BuildQuoteInput {
|
|
|
364
364
|
}
|
|
365
365
|
|
|
366
366
|
/**
|
|
367
|
-
* Build a {@link Quote} from a resolved market, its live {@link
|
|
367
|
+
* Build a {@link Quote} from a resolved market, its live {@link MarketContext},
|
|
368
368
|
* and its orderbook snapshot. Pure: walks the relevant side (buy → asks,
|
|
369
369
|
* sell → bids) for the VWAP fill, derives the price impact in basis points
|
|
370
370
|
* versus mark, applies the base taker fee on the filled notional, and carries
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const name = '@lifi/perps-sdk'
|
|
2
|
-
export const version = '1.
|
|
2
|
+
export const version = '1.1.0'
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { PricesResponse } from '@lifi/perps-types';
|
|
2
|
-
import type { SDKRequestOptions } from '../types/config.js';
|
|
3
|
-
import type { PerpsSDKClient } from '../types/provider.js';
|
|
4
|
-
export interface GetPricesParams {
|
|
5
|
-
provider: string;
|
|
6
|
-
marketIds?: string[];
|
|
7
|
-
}
|
|
8
|
-
export declare function getPrices(client: PerpsSDKClient, params: GetPricesParams, options?: SDKRequestOptions): Promise<PricesResponse>;
|
|
9
|
-
//# sourceMappingURL=getPrices.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getPrices.d.ts","sourceRoot":"","sources":["../../../src/services/getPrices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAO1D,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAEhB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAQD,wBAAsB,SAAS,CAC7B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAMzB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getPrices.js","sourceRoot":"","sources":["../../../src/services/getPrices.ts"],"names":[],"mappings":";;AAsBA,8BAUC;AA/BD,wDAA2D;AAqBpD,KAAK,UAAU,SAAS,CAC7B,MAAsB,EACtB,MAAuB,EACvB,OAA2B;IAE3B,MAAM,GAAG,GAAG,IAAA,qBAAQ,EAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,SAAS,EAAE;QACrD,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC;KACvC,CAAC,CAAA;IACF,OAAO,IAAA,oBAAO,EAAiB,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACjE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getPrices.d.ts","sourceRoot":"","sources":["../../../src/services/getPrices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAMzB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getPrices.js","sourceRoot":"","sources":["../../../src/services/getPrices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAe3D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAsB,EACtB,MAAuB,EACvB,OAA2B;IAE3B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,SAAS,EAAE;QACrD,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC;KACvC,CAAC,CAAA;IACF,OAAO,OAAO,CAAiB,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACjE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getPrices.d.ts","sourceRoot":"","sources":["../../../src/services/getPrices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAMzB"}
|