@lifi/perps-sdk-provider-hyperliquid 20.0.0 → 21.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -0
- package/dist/cjs/HyperliquidProvider.d.ts.map +1 -1
- package/dist/cjs/HyperliquidProvider.js +2 -2
- package/dist/cjs/HyperliquidProvider.js.map +1 -1
- package/dist/cjs/services/getAccount.d.ts.map +1 -1
- package/dist/cjs/services/getAccount.js +5 -7
- package/dist/cjs/services/getAccount.js.map +1 -1
- package/dist/cjs/services/getActivity.d.ts.map +1 -1
- package/dist/cjs/services/getActivity.js +68 -44
- package/dist/cjs/services/getActivity.js.map +1 -1
- package/dist/cjs/services/getFills.d.ts.map +1 -1
- package/dist/cjs/services/getFills.js +30 -38
- package/dist/cjs/services/getFills.js.map +1 -1
- package/dist/cjs/services/getWithdrawableBalances.js +1 -1
- package/dist/cjs/services/getWithdrawableBalances.js.map +1 -1
- package/dist/cjs/services/historyPagination.d.ts +22 -0
- package/dist/cjs/services/historyPagination.d.ts.map +1 -0
- package/dist/cjs/services/historyPagination.js +125 -0
- package/dist/cjs/services/historyPagination.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +1 -1
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +3 -3
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/liquidation.js +1 -1
- package/dist/cjs/utils/liquidation.js.map +1 -1
- package/dist/cjs/utils/orderFormatting.d.ts +3 -2
- package/dist/cjs/utils/orderFormatting.d.ts.map +1 -1
- package/dist/cjs/utils/orderFormatting.js +4 -4
- package/dist/cjs/utils/orderFormatting.js.map +1 -1
- package/dist/cjs/utils/spotBalance.d.ts.map +1 -1
- package/dist/cjs/utils/spotBalance.js +2 -2
- package/dist/cjs/utils/spotBalance.js.map +1 -1
- package/dist/cjs/utils/withdrawableBalances.d.ts +1 -1
- package/dist/cjs/utils/withdrawableBalances.d.ts.map +1 -1
- package/dist/cjs/utils/withdrawableBalances.js +7 -4
- package/dist/cjs/utils/withdrawableBalances.js.map +1 -1
- package/dist/cjs/websocket/HyperliquidWsProvider.d.ts +6 -0
- package/dist/cjs/websocket/HyperliquidWsProvider.d.ts.map +1 -1
- package/dist/cjs/websocket/HyperliquidWsProvider.js +135 -37
- package/dist/cjs/websocket/HyperliquidWsProvider.js.map +1 -1
- package/dist/esm/HyperliquidProvider.d.ts.map +1 -1
- package/dist/esm/HyperliquidProvider.js +3 -3
- package/dist/esm/HyperliquidProvider.js.map +1 -1
- package/dist/esm/services/getAccount.d.ts.map +1 -1
- package/dist/esm/services/getAccount.js +6 -5
- package/dist/esm/services/getAccount.js.map +1 -1
- package/dist/esm/services/getActivity.d.ts +3 -13
- package/dist/esm/services/getActivity.d.ts.map +1 -1
- package/dist/esm/services/getActivity.js +74 -64
- package/dist/esm/services/getActivity.js.map +1 -1
- package/dist/esm/services/getFills.d.ts +2 -14
- package/dist/esm/services/getFills.d.ts.map +1 -1
- package/dist/esm/services/getFills.js +32 -58
- package/dist/esm/services/getFills.js.map +1 -1
- package/dist/esm/services/getWithdrawableBalances.js +1 -1
- package/dist/esm/services/getWithdrawableBalances.js.map +1 -1
- package/dist/esm/services/historyPagination.d.ts +22 -0
- package/dist/esm/services/historyPagination.d.ts.map +1 -0
- package/dist/esm/services/historyPagination.js +121 -0
- package/dist/esm/services/historyPagination.js.map +1 -0
- package/dist/esm/utils/index.d.ts +1 -1
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +1 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/liquidation.js +2 -2
- package/dist/esm/utils/liquidation.js.map +1 -1
- package/dist/esm/utils/orderFormatting.d.ts +14 -12
- package/dist/esm/utils/orderFormatting.d.ts.map +1 -1
- package/dist/esm/utils/orderFormatting.js +14 -14
- package/dist/esm/utils/orderFormatting.js.map +1 -1
- package/dist/esm/utils/spotBalance.d.ts.map +1 -1
- package/dist/esm/utils/spotBalance.js +3 -3
- package/dist/esm/utils/spotBalance.js.map +1 -1
- package/dist/esm/utils/withdrawableBalances.d.ts +1 -1
- package/dist/esm/utils/withdrawableBalances.d.ts.map +1 -1
- package/dist/esm/utils/withdrawableBalances.js +7 -4
- package/dist/esm/utils/withdrawableBalances.js.map +1 -1
- package/dist/esm/websocket/HyperliquidWsProvider.d.ts +6 -0
- package/dist/esm/websocket/HyperliquidWsProvider.d.ts.map +1 -1
- package/dist/esm/websocket/HyperliquidWsProvider.js +138 -50
- package/dist/esm/websocket/HyperliquidWsProvider.js.map +1 -1
- package/dist/types/HyperliquidProvider.d.ts.map +1 -1
- package/dist/types/services/getAccount.d.ts.map +1 -1
- package/dist/types/services/getActivity.d.ts +3 -13
- package/dist/types/services/getActivity.d.ts.map +1 -1
- package/dist/types/services/getFills.d.ts +2 -14
- package/dist/types/services/getFills.d.ts.map +1 -1
- package/dist/types/services/historyPagination.d.ts +22 -0
- package/dist/types/services/historyPagination.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +1 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/orderFormatting.d.ts +14 -12
- package/dist/types/utils/orderFormatting.d.ts.map +1 -1
- package/dist/types/utils/spotBalance.d.ts.map +1 -1
- package/dist/types/utils/withdrawableBalances.d.ts +1 -1
- package/dist/types/utils/withdrawableBalances.d.ts.map +1 -1
- package/dist/types/websocket/HyperliquidWsProvider.d.ts +6 -0
- package/dist/types/websocket/HyperliquidWsProvider.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/HyperliquidProvider.ts +6 -5
- package/src/services/getAccount.ts +18 -18
- package/src/services/getActivity.ts +133 -104
- package/src/services/getFills.ts +42 -95
- package/src/services/getWithdrawableBalances.ts +1 -1
- package/src/services/historyPagination.ts +169 -0
- package/src/utils/index.ts +2 -2
- package/src/utils/liquidation.ts +2 -2
- package/src/utils/orderFormatting.ts +20 -16
- package/src/utils/spotBalance.ts +5 -3
- package/src/utils/withdrawableBalances.ts +12 -7
- package/src/websocket/HyperliquidWsProvider.ts +151 -63
package/README.md
CHANGED
|
@@ -35,6 +35,18 @@ Setup registers an agent keypair whose private key signs orders locally, so trad
|
|
|
35
35
|
|
|
36
36
|
The keypair is persisted through a `StorageAdapter`. The default adapter encrypts values with AES-GCM before writing to browser `localStorage`, holding the master key as a non-extractable `CryptoKey` handle in IndexedDB, so key material is never stored as plaintext. Pass your own `StorageAdapter` to the `HyperliquidAgentStore` constructor to use a different backend — a custom adapter bypasses this encryption and is responsible for protecting the key at rest.
|
|
37
37
|
|
|
38
|
+
## Live portfolio valuation
|
|
39
|
+
|
|
40
|
+
`spotBalances` and spot-funded `accountSummary` subscriptions own their shared
|
|
41
|
+
price feeds; neither requires a separate `marketsContext` subscriber. Price
|
|
42
|
+
updates revalue the latest spot snapshot without waiting for another balance
|
|
43
|
+
frame. Releasing another market consumer does not interrupt portfolio pricing.
|
|
44
|
+
|
|
45
|
+
For a held token with a listed spot market, balance and summary emissions wait
|
|
46
|
+
for its first price rather than reporting a zero USD value. Tokens without a
|
|
47
|
+
listed market retain their unpriced balances. Unified and portfolio-margin
|
|
48
|
+
summaries also wait for clearinghouse state and venue-reported buying power.
|
|
49
|
+
|
|
38
50
|
## Ledger asset identity
|
|
39
51
|
|
|
40
52
|
Transfers carry the backend registry `Asset`, including its logo, numeric `id`,
|
|
@@ -98,6 +110,39 @@ Unknown future delta types remain outside the supported activity model.
|
|
|
98
110
|
These exclusions do not apply to missing assets in supported transfer rows:
|
|
99
111
|
the mapper rejects those rows with an error instead of silently omitting them.
|
|
100
112
|
|
|
113
|
+
## History pagination
|
|
114
|
+
|
|
115
|
+
`getFills` and `getActivity` return deterministic newest-first pages. Pass the
|
|
116
|
+
opaque `pagination.cursor` back unchanged with the same address, time bounds
|
|
117
|
+
and activity filters. Malformed cursors and timestamp or `time:trade-id` cursors
|
|
118
|
+
from older provider releases are rejected with `PerpsErrorCode.ValidationError`.
|
|
119
|
+
Discard those stored cursors and restart the traversal without a cursor.
|
|
120
|
+
|
|
121
|
+
Both time bounds are inclusive. Activity cursors distinguish different event
|
|
122
|
+
types and IDs at the same timestamp; fill cursors also distinguish trade IDs.
|
|
123
|
+
Subsequent pages exclude newer arrivals beyond the first page's time boundary.
|
|
124
|
+
|
|
125
|
+
`limit` must be a positive safe integer; invalid values raise
|
|
126
|
+
`PerpsErrorCode.ValidationError`. It defaults to 50, and valid values above 200
|
|
127
|
+
are capped at 200.
|
|
128
|
+
|
|
129
|
+
Hyperliquid's [info endpoint](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint)
|
|
130
|
+
paginates time ranges forwards and caps funding/ledger responses at 500 entries
|
|
131
|
+
or blocks, and fills at 2,000. The provider narrows saturated time windows before
|
|
132
|
+
returning newest-first pages. A single millisecond that saturates the venue cap
|
|
133
|
+
raises an error because the upstream time-only API cannot prove completeness.
|
|
134
|
+
Failures and cancellation reject the request rather than returning a partial page.
|
|
135
|
+
|
|
136
|
+
Only the latest 10,000 fills are available upstream, including liquidation fills;
|
|
137
|
+
pagination cannot recover older venue-discarded history. Liquidation-inclusive
|
|
138
|
+
activity reads scan this bounded retained fill history on each SDK page so all
|
|
139
|
+
fills of an order are aggregated before pagination. Matching ledger liquidations
|
|
140
|
+
are excluded using ledger history between the earliest and latest retained
|
|
141
|
+
liquidation fills, independently of the current SDK page. Their cursors retain
|
|
142
|
+
the original upper time bound, preventing subsequent pages from regrouping an
|
|
143
|
+
order using newly arriving fills. Funding/ledger-only activity and ordinary fill
|
|
144
|
+
pages use bounded newest-first windows instead of repeatedly downloading full history.
|
|
145
|
+
|
|
101
146
|
## Order reads
|
|
102
147
|
|
|
103
148
|
`getOrders` returns `{ provider, orders, pagination }`. Each `Order` carries a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperliquidProvider.d.ts","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,mBAAmB,EAkBxB,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"HyperliquidProvider.d.ts","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,mBAAmB,EAkBxB,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AA4BxB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAa,MAAM,MAAM,CAAA;AAqBxD,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,oCAAoC,CAAA;AAa3C,MAAM,WAAW,0BAA0B;IAOzC,MAAM,CAAC,EAAE,MAAM,CAAA;IAMf,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAWD,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IAKnE,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEnD,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAK5C,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAK5C,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC1E;AAuBD,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,0BAA+B,GACvC,wBAAwB,CA0V1B"}
|
|
@@ -155,8 +155,8 @@ function hyperliquidProvider(options = {}) {
|
|
|
155
155
|
getPortfolioHistory: (params, opts) => (0, getPortfolioHistory_js_1.getPortfolioHistory)(contextRef.require(), { address: params.address, range: params.range }, opts),
|
|
156
156
|
getQuote: (params, opts) => (0, perps_sdk_1.resolveQuote)(contextRef.require().client, constants_js_1.PROVIDER_KEY, params, constants_js_1.HYPERLIQUID_FEE_TIER_FALLBACK, opts),
|
|
157
157
|
getAccountSummary: (account, positions) => (0, accountSummary_js_1.getAccountSummary)(account, positions),
|
|
158
|
-
|
|
159
|
-
|
|
158
|
+
snapOrderPrice: (market, price) => (0, orderFormatting_js_1.snapOrderPrice)(price, market.szDecimals, market.categoryId === constants_js_1.SPOT_MARKET_ID ? 'spot' : undefined),
|
|
159
|
+
snapOrderSize: (market, size) => (0, orderFormatting_js_1.snapOrderSize)(size, market.szDecimals),
|
|
160
160
|
estimateLiquidationPrice: (market, params) => (0, liquidation_js_1.calculateLiquidationPrice)(params.entryPrice, params.leverage, params.isLong, market.maxLeverage),
|
|
161
161
|
positionRemovableMargin: transferMargin_js_1.positionRemovableMargin,
|
|
162
162
|
projectConfig: (config, setup) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperliquidProvider.js","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"HyperliquidProvider.js","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAccount.d.ts","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"getAccount.d.ts","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,wBAAwB,EAE7B,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,eAAe,EAMhB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AA4BvD,MAAM,MAAM,gBAAgB,GAAG,wBAAwB,CAAA;AAmGvD,eAAO,MAAM,UAAU,GACrB,oBAAoB,kBAAkB,EACtC,QAAQ,gBAAgB,EACxB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,eAAe,CAkIzB,CAAA"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.getAccount = void 0;
|
|
7
4
|
const perps_sdk_1 = require("@lifi/perps-sdk");
|
|
8
|
-
const big_js_1 = __importDefault(require("big.js"));
|
|
9
5
|
const constants_js_1 = require("../constants.js");
|
|
10
6
|
const abstractionMode_js_1 = require("../utils/abstractionMode.js");
|
|
11
7
|
const decimal_js_1 = require("../utils/decimal.js");
|
|
@@ -21,7 +17,9 @@ const buildBalances = (abstraction, spotState, stateByDex, quoteAssetIds, priceB
|
|
|
21
17
|
const total = (0, decimal_js_1.toWireBig)(b.total, 'spotClearinghouseState.total');
|
|
22
18
|
return {
|
|
23
19
|
...(0, index_js_1.spotBalance)((0, index_js_1.spotAssetFromToken)(b), b.total, priceById),
|
|
24
|
-
transferable: (0, perps_sdk_1.
|
|
20
|
+
transferable: (0, perps_sdk_1.calculateTransferable)(total
|
|
21
|
+
.minus((0, decimal_js_1.toWireBig)(b.hold, 'spotClearinghouseState.hold'))
|
|
22
|
+
.toFixed(), total.toFixed()),
|
|
25
23
|
};
|
|
26
24
|
}), quoteAssetIds);
|
|
27
25
|
if (!(0, abstractionMode_js_1.isUnifiedAbstraction)(abstraction)) {
|
|
@@ -37,7 +35,7 @@ const buildBalances = (abstraction, spotState, stateByDex, quoteAssetIds, priceB
|
|
|
37
35
|
units: value.toFixed(),
|
|
38
36
|
valueUsd: value.toFixed(),
|
|
39
37
|
price: '1',
|
|
40
|
-
transferable: (0, perps_sdk_1.
|
|
38
|
+
transferable: (0, perps_sdk_1.calculateTransferable)((0, decimal_js_1.toWireBig)(state.withdrawable, 'clearinghouseState.withdrawable').toFixed(), value.toFixed()),
|
|
41
39
|
});
|
|
42
40
|
}
|
|
43
41
|
}
|
|
@@ -62,7 +60,7 @@ const getAccount = async ({ client, apiUrl }, params, options) => {
|
|
|
62
60
|
}, infoOpts))),
|
|
63
61
|
(0, perps_sdk_1.getMarketsContext)(client, { provider: constants_js_1.PROVIDER_KEY }, options),
|
|
64
62
|
]);
|
|
65
|
-
const priceById = (0, index_js_1.spotPriceById)(markets, new Map(prices.map((p) => [p.marketId, (0, perps_sdk_1.
|
|
63
|
+
const priceById = (0, index_js_1.spotPriceById)(markets, new Map(prices.map((p) => [p.marketId, (0, perps_sdk_1.parseDecimal)(p.markPrice) ?? Number.NaN])));
|
|
66
64
|
const positions = stateResults.flatMap((state) => state.assetPositions
|
|
67
65
|
.filter((ap) => !(0, index_js_1.assetIsOutcome)(ap.position.coin) && (0, mapPosition_js_1.isOpenAssetPosition)(ap))
|
|
68
66
|
.map((ap) => (0, mapPosition_js_1.mapPosition)(ap, (0, perps_sdk_1.toPerpsMarketDisplay)(registry.require(ap.position.coin)))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAccount.js","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getAccount.js","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getActivity.d.ts","sourceRoot":"","sources":["../../../src/services/getActivity.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"getActivity.d.ts","sourceRoot":"","sources":["../../../src/services/getActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,kBAAkB,EAInB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,YAAY,EAAkB,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAkCvD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAEhB,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,IAAI,CAAC,EAAE,YAAY,EAAE,CAAA;CACtB;AA8KD,eAAO,MAAM,WAAW,GACtB,oBAAoB,kBAAkB,EACtC,QAAQ,iBAAiB,EACzB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,kBAAkB,CAmD5B,CAAA"}
|
|
@@ -7,6 +7,7 @@ const constants_js_1 = require("../constants.js");
|
|
|
7
7
|
const index_js_1 = require("../types/index.js");
|
|
8
8
|
const index_js_2 = require("../utils/index.js");
|
|
9
9
|
const infoClient_js_1 = require("../utils/infoClient.js");
|
|
10
|
+
const historyPagination_js_1 = require("./historyPagination.js");
|
|
10
11
|
const MARKET_BEARING_TYPES = new Set([
|
|
11
12
|
perps_types_1.ActivityType.FUNDING,
|
|
12
13
|
perps_types_1.ActivityType.LIQUIDATION,
|
|
@@ -17,23 +18,64 @@ const ASSET_BEARING_TYPES = new Set([
|
|
|
17
18
|
perps_types_1.ActivityType.TRANSFER,
|
|
18
19
|
]);
|
|
19
20
|
const needsMarkets = (typeFilter) => !typeFilter || typeFilter.some((t) => MARKET_BEARING_TYPES.has(t));
|
|
20
|
-
const
|
|
21
|
+
const fetchLiquidationHistory = async (apiUrl, user, startTime, endTime, resolveMarket, options) => {
|
|
22
|
+
const retained = new Map();
|
|
23
|
+
while (startTime <= endTime) {
|
|
24
|
+
options?.signal?.throwIfAborted();
|
|
25
|
+
const fills = await (0, infoClient_js_1.infoRequest)(apiUrl, { type: 'userFillsByTime', user, startTime, endTime }, options);
|
|
26
|
+
options?.signal?.throwIfAborted();
|
|
27
|
+
let latest = startTime;
|
|
28
|
+
for (const fill of fills) {
|
|
29
|
+
retained.set(fill.tid, fill);
|
|
30
|
+
latest = Math.max(latest, fill.time);
|
|
31
|
+
}
|
|
32
|
+
if (fills.length < 2000 || retained.size >= 10000) {
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
if (latest === startTime) {
|
|
36
|
+
throw new perps_sdk_1.PerpsError(perps_types_1.PerpsErrorCode.ThirdPartyError, 'Hyperliquid fills saturate a single millisecond; liquidation history cannot be paginated safely');
|
|
37
|
+
}
|
|
38
|
+
startTime = latest;
|
|
39
|
+
}
|
|
40
|
+
const queried = user.toLowerCase();
|
|
41
|
+
const fills = [...retained.values()].filter((fill) => fill.liquidation?.liquidatedUser.toLowerCase() === queried);
|
|
42
|
+
if (fills.length === 0) {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
const hashes = new Set();
|
|
46
|
+
let firstTime = Infinity;
|
|
47
|
+
let lastTime = 0;
|
|
48
|
+
for (const fill of fills) {
|
|
49
|
+
if (fill.hash !== undefined) {
|
|
50
|
+
hashes.add(fill.hash);
|
|
51
|
+
}
|
|
52
|
+
firstTime = Math.min(firstTime, fill.time);
|
|
53
|
+
lastTime = Math.max(lastTime, fill.time);
|
|
54
|
+
}
|
|
55
|
+
const ledger = await (0, historyPagination_js_1.historyPage)({ startTime: firstTime, endTime: lastTime }, Number.MAX_SAFE_INTEGER, async (startTime, endTime) => {
|
|
56
|
+
const updates = await (0, infoClient_js_1.infoRequest)(apiUrl, { type: 'userNonFundingLedgerUpdates', user, startTime, endTime }, options);
|
|
57
|
+
return {
|
|
58
|
+
items: updates.filter((entry) => (0, index_js_1.isLiquidationDelta)(entry.delta) && hashes.has(entry.hash)),
|
|
59
|
+
saturated: updates.length >= 500,
|
|
60
|
+
};
|
|
61
|
+
}, (entry) => ({ time: entry.time, key: entry.hash }), options?.signal);
|
|
62
|
+
return (0, index_js_2.mapLiquidationFills)(fills, constants_js_1.PROVIDER_KEY, user, resolveMarket, new Set(ledger.items.map((entry) => entry.hash)));
|
|
63
|
+
};
|
|
64
|
+
const fetchActivityData = async (apiUrl, typeFilter, timeParams, assetRegistry, resolveMarket, liquidationHistory, options) => {
|
|
21
65
|
const needLedger = !typeFilter || typeFilter.some((t) => t !== perps_types_1.ActivityType.FUNDING);
|
|
22
66
|
const needFunding = !typeFilter || typeFilter.includes(perps_types_1.ActivityType.FUNDING);
|
|
23
|
-
const
|
|
24
|
-
const [ledgerUpdates, fundingUpdates, fills] = await Promise.all([
|
|
67
|
+
const [ledgerUpdates, fundingUpdates, liquidations] = await Promise.all([
|
|
25
68
|
needLedger
|
|
26
69
|
? (0, infoClient_js_1.infoRequest)(apiUrl, { type: 'userNonFundingLedgerUpdates', ...timeParams }, options)
|
|
27
70
|
: Promise.resolve([]),
|
|
28
71
|
needFunding
|
|
29
72
|
? (0, infoClient_js_1.infoRequest)(apiUrl, { type: 'userFunding', ...timeParams }, options)
|
|
30
73
|
: Promise.resolve([]),
|
|
31
|
-
|
|
32
|
-
? (0, infoClient_js_1.infoRequest)(apiUrl, timeParams.startTime === undefined
|
|
33
|
-
? { type: 'userFills', user: timeParams.user }
|
|
34
|
-
: { type: 'userFillsByTime', ...timeParams }, options)
|
|
35
|
-
: Promise.resolve([]),
|
|
74
|
+
liquidationHistory,
|
|
36
75
|
]);
|
|
76
|
+
if (ledgerUpdates.length >= 500 || fundingUpdates.length >= 500) {
|
|
77
|
+
return { items: [], saturated: true };
|
|
78
|
+
}
|
|
37
79
|
const ledgerItems = ledgerUpdates.flatMap((entry) => {
|
|
38
80
|
if (typeFilter !== undefined &&
|
|
39
81
|
(((0, index_js_1.isDepositDelta)(entry.delta) &&
|
|
@@ -56,18 +98,14 @@ const fetchActivityData = async (apiUrl, typeFilter, timeParams, assetRegistry,
|
|
|
56
98
|
const item = (0, index_js_2.mapFundingActivity)(entry, constants_js_1.PROVIDER_KEY, resolveMarket);
|
|
57
99
|
return item === null ? [] : [item];
|
|
58
100
|
});
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if (!typeFilter) {
|
|
65
|
-
return merged;
|
|
66
|
-
}
|
|
67
|
-
const typeSet = new Set(typeFilter);
|
|
68
|
-
return merged.filter((item) => typeSet.has(item.type));
|
|
101
|
+
const merged = [...ledgerItems, ...fundingItems, ...(liquidations ?? [])];
|
|
102
|
+
const items = typeFilter
|
|
103
|
+
? merged.filter((item) => typeFilter.includes(item.type))
|
|
104
|
+
: merged;
|
|
105
|
+
return { items, saturated: false };
|
|
69
106
|
};
|
|
70
107
|
const getActivity = async ({ client, apiUrl }, params, options) => {
|
|
108
|
+
const limit = (0, historyPagination_js_1.getHistoryLimit)(params.limit);
|
|
71
109
|
const registry = (0, perps_sdk_1.getMarketRegistry)(client, constants_js_1.PROVIDER_KEY);
|
|
72
110
|
if (needsMarkets(params.type)) {
|
|
73
111
|
await registry.sync();
|
|
@@ -78,32 +116,18 @@ const getActivity = async ({ client, apiUrl }, params, options) => {
|
|
|
78
116
|
await assetRegistry.sync();
|
|
79
117
|
}
|
|
80
118
|
const infoOpts = (0, infoClient_js_1.hlInfoOptions)(client, options);
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
Number.parseInt(params.cursor, 10));
|
|
94
|
-
const hasMore = filtered.length > limit;
|
|
95
|
-
const items = filtered.slice(0, limit);
|
|
96
|
-
return {
|
|
97
|
-
provider: constants_js_1.PROVIDER_KEY,
|
|
98
|
-
items,
|
|
99
|
-
pagination: {
|
|
100
|
-
limit,
|
|
101
|
-
hasMore,
|
|
102
|
-
cursor: items.length > 0
|
|
103
|
-
? String(new Date(items[items.length - 1].timestamp).getTime())
|
|
104
|
-
: undefined,
|
|
105
|
-
},
|
|
106
|
-
};
|
|
119
|
+
const needLiquidationFills = !params.type || params.type.includes(perps_types_1.ActivityType.LIQUIDATION);
|
|
120
|
+
let liquidationHistory;
|
|
121
|
+
const page = await (0, historyPagination_js_1.historyPage)(params, limit, (startTime, endTime, snapshotEnd) => {
|
|
122
|
+
if (needLiquidationFills && liquidationHistory === undefined) {
|
|
123
|
+
liquidationHistory = fetchLiquidationHistory(apiUrl, params.address, params.startTime ?? 0, snapshotEnd, (coin) => registry.get(coin), infoOpts);
|
|
124
|
+
}
|
|
125
|
+
return fetchActivityData(apiUrl, params.type, { user: params.address, startTime, endTime }, assetRegistry, (coin) => registry.get(coin), liquidationHistory, infoOpts);
|
|
126
|
+
}, (item) => ({
|
|
127
|
+
time: new Date(item.timestamp).getTime(),
|
|
128
|
+
key: `${item.type}:${item.id}`,
|
|
129
|
+
}), options?.signal);
|
|
130
|
+
return { provider: constants_js_1.PROVIDER_KEY, ...page };
|
|
107
131
|
};
|
|
108
132
|
exports.getActivity = getActivity;
|
|
109
133
|
//# sourceMappingURL=getActivity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getActivity.js","sourceRoot":"","sources":["../../../src/services/getActivity.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"getActivity.js","sourceRoot":"","sources":["../../../src/services/getActivity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFills.d.ts","sourceRoot":"","sources":["../../../src/services/getFills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,KAAK,EAAQ,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"getFills.d.ts","sourceRoot":"","sources":["../../../src/services/getFills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,KAAK,EAAQ,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAWvD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAA;IAEhB,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAGD,eAAO,MAAM,QAAQ,GACnB,oBAAoB,kBAAkB,EACtC,QAAQ,cAAc,EACtB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,aAAa,CA8CvB,CAAA"}
|
|
@@ -5,49 +5,41 @@ const perps_sdk_1 = require("@lifi/perps-sdk");
|
|
|
5
5
|
const constants_js_1 = require("../constants.js");
|
|
6
6
|
const index_js_1 = require("../utils/index.js");
|
|
7
7
|
const infoClient_js_1 = require("../utils/infoClient.js");
|
|
8
|
-
const
|
|
9
|
-
const encodeCursor = (fill) => `${fill.time}:${fill.tid}`;
|
|
10
|
-
const decodeCursor = (cursor) => {
|
|
11
|
-
const [time, tid] = cursor.split(':').map(Number);
|
|
12
|
-
return { time, tid };
|
|
13
|
-
};
|
|
8
|
+
const historyPagination_js_1 = require("./historyPagination.js");
|
|
14
9
|
const getFills = async ({ client, apiUrl }, params, options) => {
|
|
10
|
+
const limit = (0, historyPagination_js_1.getHistoryLimit)(params.limit);
|
|
15
11
|
const registry = (0, perps_sdk_1.getMarketRegistry)(client, constants_js_1.PROVIDER_KEY);
|
|
16
12
|
await registry.sync();
|
|
17
13
|
const infoOpts = (0, infoClient_js_1.hlInfoOptions)(client, options);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
user: params.address
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const page = filtered.slice(0, limit);
|
|
34
|
-
const items = page.flatMap((f) => {
|
|
35
|
-
if ((0, index_js_1.assetIsOutcome)(f.coin)) {
|
|
36
|
-
return [];
|
|
14
|
+
let useRecent = params.cursor === undefined &&
|
|
15
|
+
params.startTime === undefined &&
|
|
16
|
+
params.endTime === undefined;
|
|
17
|
+
const page = await (0, historyPagination_js_1.historyPage)(params, limit, async (startTime, endTime) => {
|
|
18
|
+
const fills = await (0, infoClient_js_1.infoRequest)(apiUrl, useRecent
|
|
19
|
+
? { type: 'userFills', user: params.address }
|
|
20
|
+
: {
|
|
21
|
+
type: 'userFillsByTime',
|
|
22
|
+
user: params.address,
|
|
23
|
+
startTime,
|
|
24
|
+
endTime,
|
|
25
|
+
}, infoOpts);
|
|
26
|
+
useRecent = false;
|
|
27
|
+
if (fills.length >= 2000) {
|
|
28
|
+
return { items: [], saturated: true };
|
|
37
29
|
}
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
};
|
|
30
|
+
const items = fills.flatMap((fill) => {
|
|
31
|
+
if ((0, index_js_1.assetIsOutcome)(fill.coin)) {
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
const market = registry.get(fill.coin);
|
|
35
|
+
return market === undefined ? [] : [(0, index_js_1.mapFill)(fill, market)];
|
|
36
|
+
});
|
|
37
|
+
return { items, saturated: false };
|
|
38
|
+
}, (fill) => ({
|
|
39
|
+
time: new Date(fill.createdAt).getTime(),
|
|
40
|
+
key: Number(fill.id),
|
|
41
|
+
}), options?.signal);
|
|
42
|
+
return { provider: constants_js_1.PROVIDER_KEY, ...page };
|
|
51
43
|
};
|
|
52
44
|
exports.getFills = getFills;
|
|
53
45
|
//# sourceMappingURL=getFills.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFills.js","sourceRoot":"","sources":["../../../src/services/getFills.ts"],"names":[],"mappings":";;;AAAA,+CAA2E;AAG3E,
|
|
1
|
+
{"version":3,"file":"getFills.js","sourceRoot":"","sources":["../../../src/services/getFills.ts"],"names":[],"mappings":";;;AAAA,+CAA2E;AAG3E,kDAA8C;AAG9C,gDAA2D;AAC3D,0DAAmE;AACnE,iEAAqE;AAoB9D,MAAM,QAAQ,GAAG,KAAK,EAC3B,EAAE,MAAM,EAAE,MAAM,EAAsB,EACtC,MAAsB,EACtB,OAA2B,EACH,EAAE;IAC1B,MAAM,KAAK,GAAG,IAAA,sCAAe,EAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,QAAQ,GAAG,IAAA,6BAAiB,EAAC,MAAM,EAAE,2BAAY,CAAC,CAAA;IACxD,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IACrB,MAAM,QAAQ,GAAG,IAAA,6BAAa,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE/C,IAAI,SAAS,GACX,MAAM,CAAC,MAAM,KAAK,SAAS;QAC3B,MAAM,CAAC,SAAS,KAAK,SAAS;QAC9B,MAAM,CAAC,OAAO,KAAK,SAAS,CAAA;IAC9B,MAAM,IAAI,GAAG,MAAM,IAAA,kCAAW,EAC5B,MAAM,EACN,KAAK,EACL,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,MAAM,IAAA,2BAAW,EAC7B,MAAM,EACN,SAAS;YACP,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE;YAC7C,CAAC,CAAC;gBACE,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,MAAM,CAAC,OAAO;gBACpB,SAAS;gBACT,OAAO;aACR,EACL,QAAQ,CACT,CAAA;QACD,SAAS,GAAG,KAAK,CAAA;QACjB,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACzB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;QACvC,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAU,EAAE;YAC3C,IAAI,IAAA,yBAAc,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,CAAA;YACX,CAAC;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACtC,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,kBAAO,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;QAC5D,CAAC,CAAC,CAAA;QACF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;IACpC,CAAC,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACT,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;QACxC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;KACrB,CAAC,EACF,OAAO,EAAE,MAAM,CAChB,CAAA;IACD,OAAO,EAAE,QAAQ,EAAE,2BAAY,EAAE,GAAG,IAAI,EAAE,CAAA;AAC5C,CAAC,CAAA;AAlDY,QAAA,QAAQ,YAkDpB"}
|
|
@@ -23,7 +23,7 @@ const getWithdrawableBalances = async ({ client, apiUrl }, params, options) => {
|
|
|
23
23
|
throw error;
|
|
24
24
|
}
|
|
25
25
|
const feeUsd = providers.find((provider) => provider.key === constants_js_1.PROVIDER_KEY)?.withdrawalFeeUsd;
|
|
26
|
-
return (0, withdrawableBalances_js_1.hyperliquidWithdrawableBalances)(abstraction, state, spotState, quoteAsset.id, feeUsd
|
|
26
|
+
return (0, withdrawableBalances_js_1.hyperliquidWithdrawableBalances)(abstraction, state, spotState, quoteAsset.id, feeUsd);
|
|
27
27
|
};
|
|
28
28
|
exports.getWithdrawableBalances = getWithdrawableBalances;
|
|
29
29
|
//# sourceMappingURL=getWithdrawableBalances.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getWithdrawableBalances.js","sourceRoot":"","sources":["../../../src/services/getWithdrawableBalances.ts"],"names":[],"mappings":";;;AAAA,+CAOwB;AACxB,mDAAkD;AAClD,kDAA8D;AAO9D,0DAAmE;AACnE,8EAAkF;AAwB3E,MAAM,uBAAuB,GAAG,KAAK,EAC1C,EAAE,MAAM,EAAE,MAAM,EAAsB,EACtC,MAAqC,EACrC,OAA2B,EACa,EAAE;IAC1C,MAAM,QAAQ,GAAG,IAAA,6BAAiB,EAAC,MAAM,EAAE,2BAAY,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,IAAA,6BAAa,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE/C,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,GAC3D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,IAAA,wBAAY,EAAC,MAAM,EAAE,OAAO,CAAC;QAC7B,QAAQ,CAAC,IAAI,EAAE;QACf,IAAA,2BAAW,EACT,MAAM,EACN,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EACjD,QAAQ,CACT;QACD,IAAA,2BAAW,EACT,MAAM,EACN,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EACpD,QAAQ,CACT;QACD,IAAA,2BAAW,EACT,MAAM,EACN,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EACxD,QAAQ,CACT;KACF,CAAC,CAAA;IAEJ,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAC7B,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,6BAAc,CACjD,EAAE,UAAU,CAAA;IACb,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,sBAAU,CAC1B,4BAAc,CAAC,QAAQ,EACvB,2CAA2C,6BAAc,6CAA6C,CACvG,CAAA;QACD,KAAK,CAAC,IAAI,GAAG,2BAAY,CAAA;QACzB,MAAM,KAAK,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAC3B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,2BAAY,CAC5C,EAAE,gBAAgB,CAAA;IAEnB,OAAO,IAAA,yDAA+B,EACpC,WAAW,EACX,KAAK,EACL,SAAS,EACT,UAAU,CAAC,EAAE,EACb,MAAM,
|
|
1
|
+
{"version":3,"file":"getWithdrawableBalances.js","sourceRoot":"","sources":["../../../src/services/getWithdrawableBalances.ts"],"names":[],"mappings":";;;AAAA,+CAOwB;AACxB,mDAAkD;AAClD,kDAA8D;AAO9D,0DAAmE;AACnE,8EAAkF;AAwB3E,MAAM,uBAAuB,GAAG,KAAK,EAC1C,EAAE,MAAM,EAAE,MAAM,EAAsB,EACtC,MAAqC,EACrC,OAA2B,EACa,EAAE;IAC1C,MAAM,QAAQ,GAAG,IAAA,6BAAiB,EAAC,MAAM,EAAE,2BAAY,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,IAAA,6BAAa,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE/C,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,GAC3D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,IAAA,wBAAY,EAAC,MAAM,EAAE,OAAO,CAAC;QAC7B,QAAQ,CAAC,IAAI,EAAE;QACf,IAAA,2BAAW,EACT,MAAM,EACN,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EACjD,QAAQ,CACT;QACD,IAAA,2BAAW,EACT,MAAM,EACN,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EACpD,QAAQ,CACT;QACD,IAAA,2BAAW,EACT,MAAM,EACN,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EACxD,QAAQ,CACT;KACF,CAAC,CAAA;IAEJ,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAC7B,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,6BAAc,CACjD,EAAE,UAAU,CAAA;IACb,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,sBAAU,CAC1B,4BAAc,CAAC,QAAQ,EACvB,2CAA2C,6BAAc,6CAA6C,CACvG,CAAA;QACD,KAAK,CAAC,IAAI,GAAG,2BAAY,CAAA;QACzB,MAAM,KAAK,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAC3B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,KAAK,2BAAY,CAC5C,EAAE,gBAAgB,CAAA;IAEnB,OAAO,IAAA,yDAA+B,EACpC,WAAW,EACX,KAAK,EACL,SAAS,EACT,UAAU,CAAC,EAAE,EACb,MAAM,CACP,CAAA;AACH,CAAC,CAAA;AApDY,QAAA,uBAAuB,2BAoDnC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
type HistoryKey = string | number;
|
|
2
|
+
export declare const getHistoryLimit: (limit?: number) => number;
|
|
3
|
+
export declare function historyPage<T>(params: {
|
|
4
|
+
startTime?: number;
|
|
5
|
+
endTime?: number;
|
|
6
|
+
cursor?: string;
|
|
7
|
+
}, limit: number, fetchWindow: (startTime: number, endTime: number, snapshotEnd: number) => Promise<{
|
|
8
|
+
items: T[];
|
|
9
|
+
saturated: boolean;
|
|
10
|
+
}>, identify: (item: T) => {
|
|
11
|
+
time: number;
|
|
12
|
+
key: HistoryKey;
|
|
13
|
+
}, signal?: AbortSignal): Promise<{
|
|
14
|
+
items: T[];
|
|
15
|
+
pagination: {
|
|
16
|
+
limit: number;
|
|
17
|
+
hasMore: boolean;
|
|
18
|
+
cursor?: string;
|
|
19
|
+
};
|
|
20
|
+
}>;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=historyPagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"historyPagination.d.ts","sourceRoot":"","sources":["../../../src/services/historyPagination.ts"],"names":[],"mappings":"AAIA,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;AAiBjC,eAAO,MAAM,eAAe,GAAI,cAA6B,KAAG,MAQ/D,CAAA;AAmCD,wBAAsB,WAAW,CAAC,CAAC,EACjC,MAAM,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACjE,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,KAChB,OAAO,CAAC;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,EAChD,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,UAAU,CAAA;CAAE,EACxD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IACT,KAAK,EAAE,CAAC,EAAE,CAAA;IACV,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACjE,CAAC,CA2FD"}
|