@lifi/perps-sdk-provider-hyperliquid 0.0.0-preview-08a3b76 → 0.0.0-preview-c72bc0b
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/dist/cjs/services/getActivity.d.ts.map +1 -1
- package/dist/cjs/services/getActivity.js +2 -5
- 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 +1 -4
- package/dist/cjs/services/getFills.js.map +1 -1
- package/dist/cjs/utils/mapActivity.d.ts +2 -2
- package/dist/cjs/utils/mapActivity.d.ts.map +1 -1
- package/dist/cjs/utils/mapActivity.js +13 -14
- package/dist/cjs/utils/mapActivity.js.map +1 -1
- package/dist/esm/services/getActivity.d.ts.map +1 -1
- package/dist/esm/services/getActivity.js +2 -8
- package/dist/esm/services/getActivity.js.map +1 -1
- package/dist/esm/services/getFills.d.ts.map +1 -1
- package/dist/esm/services/getFills.js +1 -7
- package/dist/esm/services/getFills.js.map +1 -1
- package/dist/esm/utils/mapActivity.d.ts +5 -10
- package/dist/esm/utils/mapActivity.d.ts.map +1 -1
- package/dist/esm/utils/mapActivity.js +22 -22
- package/dist/esm/utils/mapActivity.js.map +1 -1
- package/dist/types/services/getActivity.d.ts.map +1 -1
- package/dist/types/services/getFills.d.ts.map +1 -1
- package/dist/types/utils/mapActivity.d.ts +5 -10
- package/dist/types/utils/mapActivity.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/services/getActivity.ts +4 -11
- package/src/services/getFills.ts +2 -8
- package/src/utils/mapActivity.ts +26 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getActivity.d.ts","sourceRoot":"","sources":["../../../src/services/getActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,KAAK,EACV,kBAAkB,
|
|
1
|
+
{"version":3,"file":"getActivity.d.ts","sourceRoot":"","sources":["../../../src/services/getActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,KAAK,EACV,kBAAkB,EAGnB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAOnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAiBvD,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;AAuED,eAAO,MAAM,WAAW,GACtB,oBAAoB,kBAAkB,EACtC,QAAQ,iBAAiB,EACzB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,kBAAkB,CA2D5B,CAAA"}
|
|
@@ -25,10 +25,7 @@ const fetchActivityData = async (apiUrl, typeFilter, timeParams, resolveMarket,
|
|
|
25
25
|
const ledgerItems = ledgerUpdates
|
|
26
26
|
.map((entry) => (0, index_js_1.mapLedgerEntry)(entry, constants_js_1.PROVIDER_KEY, timeParams.user, resolveMarket))
|
|
27
27
|
.filter((item) => item !== null);
|
|
28
|
-
const fundingItems = fundingUpdates.
|
|
29
|
-
const item = (0, index_js_1.mapFundingActivity)(entry, constants_js_1.PROVIDER_KEY, resolveMarket);
|
|
30
|
-
return item === null ? [] : [item];
|
|
31
|
-
});
|
|
28
|
+
const fundingItems = fundingUpdates.map((entry) => (0, index_js_1.mapFundingActivity)(entry, constants_js_1.PROVIDER_KEY, resolveMarket));
|
|
32
29
|
const merged = [...ledgerItems, ...fundingItems].sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
|
|
33
30
|
if (!typeFilter) {
|
|
34
31
|
return merged;
|
|
@@ -52,7 +49,7 @@ const getActivity = async ({ client, apiUrl }, params, options) => {
|
|
|
52
49
|
startTime,
|
|
53
50
|
...(endTime === undefined ? {} : { endTime }),
|
|
54
51
|
};
|
|
55
|
-
const merged = await fetchActivityData(apiUrl, params.type, timeParams, (coin) => registry.
|
|
52
|
+
const merged = await fetchActivityData(apiUrl, params.type, timeParams, (coin) => registry.require(coin), infoOpts);
|
|
56
53
|
const filtered = params.cursor === undefined
|
|
57
54
|
? merged
|
|
58
55
|
: merged.filter((item) => new Date(item.timestamp).getTime() <
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getActivity.js","sourceRoot":"","sources":["../../../src/services/getActivity.ts"],"names":[],"mappings":";;;AAAA,+CAA2E;
|
|
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,
|
|
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,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAMnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAcvD,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;AAiCD,eAAO,MAAM,QAAQ,GACnB,oBAAoB,kBAAkB,EACtC,QAAQ,cAAc,EACtB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,aAAa,CAqDvB,CAAA"}
|
|
@@ -31,10 +31,7 @@ const getFills = async ({ client, apiUrl }, params, options) => {
|
|
|
31
31
|
: sorted.filter((f) => compareFillsDesc(f, decodeCursor(params.cursor)) > 0);
|
|
32
32
|
const hasMore = filtered.length > limit;
|
|
33
33
|
const page = filtered.slice(0, limit);
|
|
34
|
-
const items = page.
|
|
35
|
-
const market = registry.get(f.coin);
|
|
36
|
-
return market === undefined ? [] : [(0, index_js_1.mapFill)(f, market)];
|
|
37
|
-
});
|
|
34
|
+
const items = page.map((f) => (0, index_js_1.mapFill)(f, registry.require(f.coin)));
|
|
38
35
|
const lastPageFill = page[page.length - 1];
|
|
39
36
|
return {
|
|
40
37
|
provider: constants_js_1.PROVIDER_KEY,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFills.js","sourceRoot":"","sources":["../../../src/services/getFills.ts"],"names":[],"mappings":";;;AAAA,+CAA2E;AAG3E,kDAIwB;AAOxB,gDAA2C;AAC3C,0DAAmE;AA2BnE,MAAM,gBAAgB,GAAG,CAAC,CAAa,EAAE,CAAa,EAAU,EAAE,CAChE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAA;AAElC,MAAM,YAAY,GAAG,CAAC,IAAgB,EAAU,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;AAE7E,MAAM,YAAY,GAAG,CAAC,MAAc,EAAc,EAAE;IAClD,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACjD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;AACtB,CAAC,CAAA;AAeM,MAAM,QAAQ,GAAG,KAAK,EAC3B,EAAE,MAAM,EAAE,MAAM,EAAsB,EACtC,MAAsB,EACtB,OAA2B,EACH,EAAE;IAC1B,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,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,MAAM,CAAC,KAAK,IAAI,oCAAqB,EACrC,gCAAiB,CAClB,CAAA;IAED,MAAM,SAAS,GACb,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,CAAA;IAEhE,MAAM,QAAQ,GAAG,SAAS;QACxB,CAAC,CAAC,MAAM,IAAA,2BAAW,EACf,MAAM,EACN;YACE,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,MAAM,CAAC,OAAO;YACpB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,CAAC;YAChC,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE,EACD,QAAQ,CACT;QACH,CAAC,CAAC,MAAM,IAAA,2BAAW,EACf,MAAM,EACN,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAC3C,QAAQ,CACT,CAAA;IAEL,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAEnD,MAAM,QAAQ,GACZ,MAAM,CAAC,MAAM,KAAK,SAAS;QACzB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,MAAM,CAAC,MAAM,CACX,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,MAAO,CAAC,CAAC,GAAG,CAAC,CAC7D,CAAA;IAEP,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAA;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"getFills.js","sourceRoot":"","sources":["../../../src/services/getFills.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ActivityItem, FundingActivity, MarketDisplay } from '@lifi/perps-types';
|
|
2
2
|
import type { HlFundingUpdate, HlLedgerUpdate } from '../types/index.js';
|
|
3
|
-
export declare const mapLedgerEntry: (entry: HlLedgerUpdate, providerKey: string, queriedAddress: string, resolveMarket: (coin: string) => MarketDisplay
|
|
4
|
-
export declare const mapFundingActivity: (entry: HlFundingUpdate, providerKey: string, resolveMarket: (coin: string) => MarketDisplay
|
|
3
|
+
export declare const mapLedgerEntry: (entry: HlLedgerUpdate, providerKey: string, queriedAddress: string, resolveMarket: (coin: string) => MarketDisplay) => ActivityItem | null;
|
|
4
|
+
export declare const mapFundingActivity: (entry: HlFundingUpdate, providerKey: string, resolveMarket: (coin: string) => MarketDisplay) => FundingActivity;
|
|
5
5
|
//# sourceMappingURL=mapActivity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapActivity.d.ts","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,eAAe,EAEf,aAAa,EAGd,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"mapActivity.d.ts","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,eAAe,EAEf,aAAa,EAGd,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAgCxE,eAAO,MAAM,cAAc,GACzB,OAAO,cAAc,EACrB,aAAa,MAAM,EACnB,gBAAgB,MAAM,EACtB,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,KAC7C,YAAY,GAAG,IA+IjB,CAAA;AAYD,eAAO,MAAM,kBAAkB,GAC7B,OAAO,eAAe,EACtB,aAAa,MAAM,EACnB,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,KAC7C,eAYF,CAAA"}
|
|
@@ -4,6 +4,10 @@ exports.mapFundingActivity = exports.mapLedgerEntry = void 0;
|
|
|
4
4
|
const perps_types_1 = require("@lifi/perps-types");
|
|
5
5
|
const index_js_1 = require("../types/index.js");
|
|
6
6
|
const HL_COLLATERAL_SYMBOL = 'USDC';
|
|
7
|
+
const ledgerTokenSymbol = (token) => {
|
|
8
|
+
const separator = token.indexOf(':');
|
|
9
|
+
return separator === -1 ? token : token.slice(0, separator);
|
|
10
|
+
};
|
|
7
11
|
const mapLedgerEntry = (entry, providerKey, queriedAddress, resolveMarket) => {
|
|
8
12
|
const { delta } = entry;
|
|
9
13
|
const base = {
|
|
@@ -40,7 +44,7 @@ const mapLedgerEntry = (entry, providerKey, queriedAddress, resolveMarket) => {
|
|
|
40
44
|
type: perps_types_1.ActivityType.TRANSFER,
|
|
41
45
|
direction,
|
|
42
46
|
counterpartyAddress,
|
|
43
|
-
asset: delta.token,
|
|
47
|
+
asset: ledgerTokenSymbol(delta.token),
|
|
44
48
|
amount: delta.amount,
|
|
45
49
|
meta,
|
|
46
50
|
explorerLink: entry.hash
|
|
@@ -72,7 +76,7 @@ const mapLedgerEntry = (entry, providerKey, queriedAddress, resolveMarket) => {
|
|
|
72
76
|
type: perps_types_1.ActivityType.TRANSFER,
|
|
73
77
|
direction,
|
|
74
78
|
counterpartyAddress,
|
|
75
|
-
asset: delta.token,
|
|
79
|
+
asset: ledgerTokenSymbol(delta.token),
|
|
76
80
|
amount: delta.amount,
|
|
77
81
|
meta,
|
|
78
82
|
explorerLink: entry.hash
|
|
@@ -104,12 +108,11 @@ const mapLedgerEntry = (entry, providerKey, queriedAddress, resolveMarket) => {
|
|
|
104
108
|
};
|
|
105
109
|
}
|
|
106
110
|
if ((0, index_js_1.isLiquidationDelta)(delta)) {
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
if (firstPosition === undefined) {
|
|
111
|
+
const liquidatedPositions = (delta.liquidatedPositions ?? []).map((p) => ({
|
|
112
|
+
market: resolveMarket(p.coin),
|
|
113
|
+
size: p.szi,
|
|
114
|
+
}));
|
|
115
|
+
if (liquidatedPositions.length === 0) {
|
|
113
116
|
return null;
|
|
114
117
|
}
|
|
115
118
|
return {
|
|
@@ -122,24 +125,20 @@ const mapLedgerEntry = (entry, providerKey, queriedAddress, resolveMarket) => {
|
|
|
122
125
|
? {}
|
|
123
126
|
: { accountValue: delta.accountValue }),
|
|
124
127
|
leverageType: delta.leverageType,
|
|
125
|
-
liquidatedPositions
|
|
128
|
+
liquidatedPositions,
|
|
126
129
|
};
|
|
127
130
|
}
|
|
128
131
|
return null;
|
|
129
132
|
};
|
|
130
133
|
exports.mapLedgerEntry = mapLedgerEntry;
|
|
131
134
|
const mapFundingActivity = (entry, providerKey, resolveMarket) => {
|
|
132
|
-
const market = resolveMarket(entry.delta.coin);
|
|
133
|
-
if (market === undefined) {
|
|
134
|
-
return null;
|
|
135
|
-
}
|
|
136
135
|
const timestamp = new Date(entry.time).toISOString();
|
|
137
136
|
return {
|
|
138
137
|
id: `funding:${entry.delta.coin}:${timestamp}`,
|
|
139
138
|
provider: providerKey,
|
|
140
139
|
timestamp,
|
|
141
140
|
type: perps_types_1.ActivityType.FUNDING,
|
|
142
|
-
market,
|
|
141
|
+
market: resolveMarket(entry.delta.coin),
|
|
143
142
|
amount: entry.delta.usdc,
|
|
144
143
|
positionSize: entry.delta.szi,
|
|
145
144
|
fundingRate: entry.delta.fundingRate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapActivity.js","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":";;;AASA,mDAAgD;AAEhD,gDAM0B;AAG1B,MAAM,oBAAoB,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"mapActivity.js","sourceRoot":"","sources":["../../../src/utils/mapActivity.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,EAAqB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,KAAK,EACV,kBAAkB,
|
|
1
|
+
{"version":3,"file":"getActivity.d.ts","sourceRoot":"","sources":["../../../src/services/getActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,KAAK,EACV,kBAAkB,EAGnB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAOnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAYvD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sEAAsE;IACtE,IAAI,CAAC,EAAE,YAAY,EAAE,CAAA;CACtB;AA2DD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW,GACtB,oBAAoB,kBAAkB,EACtC,QAAQ,iBAAiB,EACzB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,kBAAkB,CA2D5B,CAAA"}
|
|
@@ -22,10 +22,7 @@ const fetchActivityData = async (apiUrl, typeFilter, timeParams, resolveMarket,
|
|
|
22
22
|
const ledgerItems = ledgerUpdates
|
|
23
23
|
.map((entry) => mapLedgerEntry(entry, PROVIDER_KEY, timeParams.user, resolveMarket))
|
|
24
24
|
.filter((item) => item !== null);
|
|
25
|
-
const fundingItems = fundingUpdates.
|
|
26
|
-
const item = mapFundingActivity(entry, PROVIDER_KEY, resolveMarket);
|
|
27
|
-
return item === null ? [] : [item];
|
|
28
|
-
});
|
|
25
|
+
const fundingItems = fundingUpdates.map((entry) => mapFundingActivity(entry, PROVIDER_KEY, resolveMarket));
|
|
29
26
|
const merged = [...ledgerItems, ...fundingItems].sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
|
|
30
27
|
if (!typeFilter) {
|
|
31
28
|
return merged;
|
|
@@ -63,10 +60,7 @@ export const getActivity = async ({ client, apiUrl }, params, options) => {
|
|
|
63
60
|
startTime,
|
|
64
61
|
...(endTime === undefined ? {} : { endTime }),
|
|
65
62
|
};
|
|
66
|
-
|
|
67
|
-
// only its own row instead of rejecting the whole feed. The registry warns
|
|
68
|
-
// once per unresolved id. A delisted market still resolves, so its rows stay.
|
|
69
|
-
const merged = await fetchActivityData(apiUrl, params.type, timeParams, (coin) => registry.get(coin), infoOpts);
|
|
63
|
+
const merged = await fetchActivityData(apiUrl, params.type, timeParams, (coin) => registry.require(coin), infoOpts);
|
|
70
64
|
// Hyperliquid's endTime is inclusive — drop boundary items so we don't
|
|
71
65
|
// return the cursor row twice on the next page.
|
|
72
66
|
const filtered = params.cursor === undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getActivity.js","sourceRoot":"","sources":["../../../src/services/getActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA0B,MAAM,iBAAiB,CAAA;
|
|
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,
|
|
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,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAMnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AASvD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAoBD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,GACnB,oBAAoB,kBAAkB,EACtC,QAAQ,cAAc,EACtB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,aAAa,CAqDvB,CAAA"}
|
|
@@ -44,13 +44,7 @@ export const getFills = async ({ client, apiUrl }, params, options) => {
|
|
|
44
44
|
: sorted.filter((f) => compareFillsDesc(f, decodeCursor(params.cursor)) > 0);
|
|
45
45
|
const hasMore = filtered.length > limit;
|
|
46
46
|
const page = filtered.slice(0, limit);
|
|
47
|
-
|
|
48
|
-
// only its own row instead of rejecting the whole page. The registry warns
|
|
49
|
-
// once per unresolved id. A delisted market still resolves, so its rows stay.
|
|
50
|
-
const items = page.flatMap((f) => {
|
|
51
|
-
const market = registry.get(f.coin);
|
|
52
|
-
return market === undefined ? [] : [mapFill(f, market)];
|
|
53
|
-
});
|
|
47
|
+
const items = page.map((f) => mapFill(f, registry.require(f.coin)));
|
|
54
48
|
const lastPageFill = page[page.length - 1];
|
|
55
49
|
return {
|
|
56
50
|
provider: PROVIDER_KEY,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFills.js","sourceRoot":"","sources":["../../../src/services/getFills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA0B,MAAM,iBAAiB,CAAA;AAG3E,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,GACb,MAAM,iBAAiB,CAAA;AAOxB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAwBnE,0EAA0E;AAC1E,8EAA8E;AAC9E,kFAAkF;AAClF,MAAM,gBAAgB,GAAG,CAAC,CAAa,EAAE,CAAa,EAAU,EAAE,CAChE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAA;AAElC,MAAM,YAAY,GAAG,CAAC,IAAgB,EAAU,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;AAE7E,MAAM,YAAY,GAAG,CAAC,MAAc,EAAc,EAAE;IAClD,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACjD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;AACtB,CAAC,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,EAAE,MAAM,EAAE,MAAM,EAAsB,EACtC,MAAsB,EACtB,OAA2B,EACH,EAAE;IAC1B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACxD,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IACrB,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAE/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,MAAM,CAAC,KAAK,IAAI,qBAAqB,EACrC,iBAAiB,CAClB,CAAA;IAED,MAAM,SAAS,GACb,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,CAAA;IAEhE,MAAM,QAAQ,GAAG,SAAS;QACxB,CAAC,CAAC,MAAM,WAAW,CACf,MAAM,EACN;YACE,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,MAAM,CAAC,OAAO;YACpB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,CAAC;YAChC,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE,EACD,QAAQ,CACT;QACH,CAAC,CAAC,MAAM,WAAW,CACf,MAAM,EACN,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAC3C,QAAQ,CACT,CAAA;IAEL,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAEnD,MAAM,QAAQ,GACZ,MAAM,CAAC,MAAM,KAAK,SAAS;QACzB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,MAAM,CAAC,MAAM,CACX,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,MAAO,CAAC,CAAC,GAAG,CAAC,CAC7D,CAAA;IAEP,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAA;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACrC,
|
|
1
|
+
{"version":3,"file":"getFills.js","sourceRoot":"","sources":["../../../src/services/getFills.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,23 +7,18 @@ import type { HlFundingUpdate, HlLedgerUpdate } from '../types/index.js';
|
|
|
7
7
|
* `queriedAddress` matching the delta's `user` (OUT) or `destination` (IN).
|
|
8
8
|
* Returns null for unsupported delta types and for same-account moves, where
|
|
9
9
|
* `user === destination === queriedAddress`.
|
|
10
|
-
*
|
|
11
|
-
* @param resolveMarket - Market identity for a venue coin, or `undefined` when
|
|
12
|
-
* the backend market list does not hold it. A liquidated position the resolver
|
|
13
|
-
* cannot identify is dropped.
|
|
14
10
|
* @public
|
|
15
11
|
*/
|
|
16
|
-
export declare const mapLedgerEntry: (entry: HlLedgerUpdate, providerKey: string, queriedAddress: string, resolveMarket: (coin: string) => MarketDisplay
|
|
12
|
+
export declare const mapLedgerEntry: (entry: HlLedgerUpdate, providerKey: string, queriedAddress: string, resolveMarket: (coin: string) => MarketDisplay) => ActivityItem | null;
|
|
17
13
|
/**
|
|
18
|
-
* Map a Hyperliquid funding ledger update to a normalized funding activity
|
|
19
|
-
* `
|
|
20
|
-
*
|
|
21
|
-
* `resolveMarket` supplies the provider-agnostic market metadata.
|
|
14
|
+
* Map a Hyperliquid funding ledger update to a normalized funding activity.
|
|
15
|
+
* `amount`, `positionSize`, and `fundingRate` retain the upstream decimal
|
|
16
|
+
* strings; `resolveMarket` supplies the provider-agnostic market metadata.
|
|
22
17
|
*
|
|
23
18
|
* `userFunding` entries all carry the zero hash, so a deterministic
|
|
24
19
|
* `funding:<coin>:<ISO time>` id is synthesized — funding accrues at most
|
|
25
20
|
* once per coin per hourly settlement, so the pair is unique per account.
|
|
26
21
|
* @public
|
|
27
22
|
*/
|
|
28
|
-
export declare const mapFundingActivity: (entry: HlFundingUpdate, providerKey: string, resolveMarket: (coin: string) => MarketDisplay
|
|
23
|
+
export declare const mapFundingActivity: (entry: HlFundingUpdate, providerKey: string, resolveMarket: (coin: string) => MarketDisplay) => FundingActivity;
|
|
29
24
|
//# sourceMappingURL=mapActivity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapActivity.d.ts","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,eAAe,EAEf,aAAa,EAGd,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"mapActivity.d.ts","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,eAAe,EAEf,aAAa,EAGd,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAuBxE;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,cAAc,EACrB,aAAa,MAAM,EACnB,gBAAgB,MAAM,EACtB,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,KAC7C,YAAY,GAAG,IA+IjB,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,eAAe,EACtB,aAAa,MAAM,EACnB,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,KAC7C,eAYF,CAAA"}
|
|
@@ -2,6 +2,16 @@ import { ActivityType } from '@lifi/perps-types';
|
|
|
2
2
|
import { isDepositDelta, isLiquidationDelta, isSendAssetDelta, isSpotTransferDelta, isWithdrawDelta, } from '../types/index.js';
|
|
3
3
|
/** Hyperliquid settles every perp deposit and withdrawal in USDC. */
|
|
4
4
|
const HL_COLLATERAL_SYMBOL = 'USDC';
|
|
5
|
+
/**
|
|
6
|
+
* Display symbol for a ledger delta's wire token (`"USDC"`, `"PURR:0x..."`).
|
|
7
|
+
* The colon separates the name from the token id, so the symbol is the part
|
|
8
|
+
* BEFORE it — the opposite half to a market coin's `dex:COIN`, which is why
|
|
9
|
+
* `coinAsset` cannot be reused here.
|
|
10
|
+
*/
|
|
11
|
+
const ledgerTokenSymbol = (token) => {
|
|
12
|
+
const separator = token.indexOf(':');
|
|
13
|
+
return separator === -1 ? token : token.slice(0, separator);
|
|
14
|
+
};
|
|
5
15
|
/**
|
|
6
16
|
* Map a Hyperliquid non-funding ledger entry to an ActivityItem.
|
|
7
17
|
*
|
|
@@ -9,10 +19,6 @@ const HL_COLLATERAL_SYMBOL = 'USDC';
|
|
|
9
19
|
* `queriedAddress` matching the delta's `user` (OUT) or `destination` (IN).
|
|
10
20
|
* Returns null for unsupported delta types and for same-account moves, where
|
|
11
21
|
* `user === destination === queriedAddress`.
|
|
12
|
-
*
|
|
13
|
-
* @param resolveMarket - Market identity for a venue coin, or `undefined` when
|
|
14
|
-
* the backend market list does not hold it. A liquidated position the resolver
|
|
15
|
-
* cannot identify is dropped.
|
|
16
22
|
* @public
|
|
17
23
|
*/
|
|
18
24
|
export const mapLedgerEntry = (entry, providerKey, queriedAddress, resolveMarket) => {
|
|
@@ -56,7 +62,7 @@ export const mapLedgerEntry = (entry, providerKey, queriedAddress, resolveMarket
|
|
|
56
62
|
type: ActivityType.TRANSFER,
|
|
57
63
|
direction,
|
|
58
64
|
counterpartyAddress,
|
|
59
|
-
asset: delta.token,
|
|
65
|
+
asset: ledgerTokenSymbol(delta.token),
|
|
60
66
|
amount: delta.amount,
|
|
61
67
|
meta,
|
|
62
68
|
explorerLink: entry.hash
|
|
@@ -92,7 +98,7 @@ export const mapLedgerEntry = (entry, providerKey, queriedAddress, resolveMarket
|
|
|
92
98
|
type: ActivityType.TRANSFER,
|
|
93
99
|
direction,
|
|
94
100
|
counterpartyAddress,
|
|
95
|
-
asset: delta.token,
|
|
101
|
+
asset: ledgerTokenSymbol(delta.token),
|
|
96
102
|
amount: delta.amount,
|
|
97
103
|
meta,
|
|
98
104
|
explorerLink: entry.hash
|
|
@@ -124,15 +130,14 @@ export const mapLedgerEntry = (entry, providerKey, queriedAddress, resolveMarket
|
|
|
124
130
|
};
|
|
125
131
|
}
|
|
126
132
|
if (isLiquidationDelta(delta)) {
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
});
|
|
133
|
+
const liquidatedPositions = (delta.liquidatedPositions ?? []).map((p) => ({
|
|
134
|
+
market: resolveMarket(p.coin),
|
|
135
|
+
size: p.szi,
|
|
136
|
+
}));
|
|
131
137
|
// Liquidation rows must point to at least one market. Drop entries with
|
|
132
138
|
// missing/empty positions so downstream consumers can rely on that
|
|
133
139
|
// invariant and avoid rendering a market-less liquidation card.
|
|
134
|
-
|
|
135
|
-
if (firstPosition === undefined) {
|
|
140
|
+
if (liquidatedPositions.length === 0) {
|
|
136
141
|
return null;
|
|
137
142
|
}
|
|
138
143
|
return {
|
|
@@ -145,16 +150,15 @@ export const mapLedgerEntry = (entry, providerKey, queriedAddress, resolveMarket
|
|
|
145
150
|
? {}
|
|
146
151
|
: { accountValue: delta.accountValue }),
|
|
147
152
|
leverageType: delta.leverageType,
|
|
148
|
-
liquidatedPositions
|
|
153
|
+
liquidatedPositions,
|
|
149
154
|
};
|
|
150
155
|
}
|
|
151
156
|
return null;
|
|
152
157
|
};
|
|
153
158
|
/**
|
|
154
|
-
* Map a Hyperliquid funding ledger update to a normalized funding activity
|
|
155
|
-
* `
|
|
156
|
-
*
|
|
157
|
-
* `resolveMarket` supplies the provider-agnostic market metadata.
|
|
159
|
+
* Map a Hyperliquid funding ledger update to a normalized funding activity.
|
|
160
|
+
* `amount`, `positionSize`, and `fundingRate` retain the upstream decimal
|
|
161
|
+
* strings; `resolveMarket` supplies the provider-agnostic market metadata.
|
|
158
162
|
*
|
|
159
163
|
* `userFunding` entries all carry the zero hash, so a deterministic
|
|
160
164
|
* `funding:<coin>:<ISO time>` id is synthesized — funding accrues at most
|
|
@@ -162,17 +166,13 @@ export const mapLedgerEntry = (entry, providerKey, queriedAddress, resolveMarket
|
|
|
162
166
|
* @public
|
|
163
167
|
*/
|
|
164
168
|
export const mapFundingActivity = (entry, providerKey, resolveMarket) => {
|
|
165
|
-
const market = resolveMarket(entry.delta.coin);
|
|
166
|
-
if (market === undefined) {
|
|
167
|
-
return null;
|
|
168
|
-
}
|
|
169
169
|
const timestamp = new Date(entry.time).toISOString();
|
|
170
170
|
return {
|
|
171
171
|
id: `funding:${entry.delta.coin}:${timestamp}`,
|
|
172
172
|
provider: providerKey,
|
|
173
173
|
timestamp,
|
|
174
174
|
type: ActivityType.FUNDING,
|
|
175
|
-
market,
|
|
175
|
+
market: resolveMarket(entry.delta.coin),
|
|
176
176
|
amount: entry.delta.usdc,
|
|
177
177
|
positionSize: entry.delta.szi,
|
|
178
178
|
fundingRate: entry.delta.fundingRate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapActivity.js","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAE1B,qEAAqE;AACrE,MAAM,oBAAoB,GAAG,MAAM,CAAA;AAEnC
|
|
1
|
+
{"version":3,"file":"mapActivity.js","sourceRoot":"","sources":["../../../src/utils/mapActivity.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,EAAqB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,KAAK,EACV,kBAAkB,
|
|
1
|
+
{"version":3,"file":"getActivity.d.ts","sourceRoot":"","sources":["../../../src/services/getActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,KAAK,EACV,kBAAkB,EAGnB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAOnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAYvD;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sEAAsE;IACtE,IAAI,CAAC,EAAE,YAAY,EAAE,CAAA;CACtB;AA2DD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW,GACtB,oBAAoB,kBAAkB,EACtC,QAAQ,iBAAiB,EACzB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,kBAAkB,CA2D5B,CAAA"}
|
|
@@ -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,
|
|
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,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAMnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AASvD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAoBD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,GACnB,oBAAoB,kBAAkB,EACtC,QAAQ,cAAc,EACtB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,aAAa,CAqDvB,CAAA"}
|
|
@@ -7,23 +7,18 @@ import type { HlFundingUpdate, HlLedgerUpdate } from '../types/index.js';
|
|
|
7
7
|
* `queriedAddress` matching the delta's `user` (OUT) or `destination` (IN).
|
|
8
8
|
* Returns null for unsupported delta types and for same-account moves, where
|
|
9
9
|
* `user === destination === queriedAddress`.
|
|
10
|
-
*
|
|
11
|
-
* @param resolveMarket - Market identity for a venue coin, or `undefined` when
|
|
12
|
-
* the backend market list does not hold it. A liquidated position the resolver
|
|
13
|
-
* cannot identify is dropped.
|
|
14
10
|
* @public
|
|
15
11
|
*/
|
|
16
|
-
export declare const mapLedgerEntry: (entry: HlLedgerUpdate, providerKey: string, queriedAddress: string, resolveMarket: (coin: string) => MarketDisplay
|
|
12
|
+
export declare const mapLedgerEntry: (entry: HlLedgerUpdate, providerKey: string, queriedAddress: string, resolveMarket: (coin: string) => MarketDisplay) => ActivityItem | null;
|
|
17
13
|
/**
|
|
18
|
-
* Map a Hyperliquid funding ledger update to a normalized funding activity
|
|
19
|
-
* `
|
|
20
|
-
*
|
|
21
|
-
* `resolveMarket` supplies the provider-agnostic market metadata.
|
|
14
|
+
* Map a Hyperliquid funding ledger update to a normalized funding activity.
|
|
15
|
+
* `amount`, `positionSize`, and `fundingRate` retain the upstream decimal
|
|
16
|
+
* strings; `resolveMarket` supplies the provider-agnostic market metadata.
|
|
22
17
|
*
|
|
23
18
|
* `userFunding` entries all carry the zero hash, so a deterministic
|
|
24
19
|
* `funding:<coin>:<ISO time>` id is synthesized — funding accrues at most
|
|
25
20
|
* once per coin per hourly settlement, so the pair is unique per account.
|
|
26
21
|
* @public
|
|
27
22
|
*/
|
|
28
|
-
export declare const mapFundingActivity: (entry: HlFundingUpdate, providerKey: string, resolveMarket: (coin: string) => MarketDisplay
|
|
23
|
+
export declare const mapFundingActivity: (entry: HlFundingUpdate, providerKey: string, resolveMarket: (coin: string) => MarketDisplay) => FundingActivity;
|
|
29
24
|
//# sourceMappingURL=mapActivity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapActivity.d.ts","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,eAAe,EAEf,aAAa,EAGd,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"mapActivity.d.ts","sourceRoot":"","sources":["../../../src/utils/mapActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,eAAe,EAEf,aAAa,EAGd,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAuBxE;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,cAAc,EACrB,aAAa,MAAM,EACnB,gBAAgB,MAAM,EACtB,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,KAC7C,YAAY,GAAG,IA+IjB,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,eAAe,EACtB,aAAa,MAAM,EACnB,eAAe,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,KAC7C,eAYF,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lifi/perps-sdk-provider-hyperliquid",
|
|
3
|
-
"version": "0.0.0-preview-
|
|
3
|
+
"version": "0.0.0-preview-c72bc0b",
|
|
4
4
|
"description": "Hyperliquid provider plugin for @lifi/perps-sdk",
|
|
5
5
|
"homepage": "https://github.com/lifinance/perps-sdk",
|
|
6
6
|
"bugs": {
|
|
@@ -49,10 +49,10 @@
|
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"big.js": "^7.0.1",
|
|
51
51
|
"viem": "^2.55.18",
|
|
52
|
-
"@lifi/perps-types": "^0.0.0-preview-
|
|
52
|
+
"@lifi/perps-types": "^0.0.0-preview-c72bc0b"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
|
-
"@lifi/perps-sdk": "^0.0.0-preview-
|
|
55
|
+
"@lifi/perps-sdk": "^0.0.0-preview-c72bc0b"
|
|
56
56
|
},
|
|
57
57
|
"publishConfig": {
|
|
58
58
|
"access": "public"
|
|
@@ -2,7 +2,6 @@ import { getMarketRegistry, type SDKRequestOptions } from '@lifi/perps-sdk'
|
|
|
2
2
|
import type {
|
|
3
3
|
ActivitiesResponse,
|
|
4
4
|
ActivityItem,
|
|
5
|
-
FundingActivity,
|
|
6
5
|
MarketDisplay,
|
|
7
6
|
} from '@lifi/perps-types'
|
|
8
7
|
import { ActivityType } from '@lifi/perps-types'
|
|
@@ -56,7 +55,7 @@ const fetchActivityData = async (
|
|
|
56
55
|
apiUrl: string,
|
|
57
56
|
typeFilter: ActivityType[] | undefined,
|
|
58
57
|
timeParams: { user: Address; startTime: number; endTime?: number },
|
|
59
|
-
resolveMarket: (coin: string) => MarketDisplay
|
|
58
|
+
resolveMarket: (coin: string) => MarketDisplay,
|
|
60
59
|
options?: InfoRequestOptions
|
|
61
60
|
): Promise<ActivityItem[]> => {
|
|
62
61
|
const needLedger =
|
|
@@ -86,11 +85,8 @@ const fetchActivityData = async (
|
|
|
86
85
|
)
|
|
87
86
|
.filter((item): item is ActivityItem => item !== null)
|
|
88
87
|
|
|
89
|
-
const fundingItems: ActivityItem[] = fundingUpdates.
|
|
90
|
-
(entry
|
|
91
|
-
const item = mapFundingActivity(entry, PROVIDER_KEY, resolveMarket)
|
|
92
|
-
return item === null ? [] : [item]
|
|
93
|
-
}
|
|
88
|
+
const fundingItems: ActivityItem[] = fundingUpdates.map((entry) =>
|
|
89
|
+
mapFundingActivity(entry, PROVIDER_KEY, resolveMarket)
|
|
94
90
|
)
|
|
95
91
|
|
|
96
92
|
const merged = [...ledgerItems, ...fundingItems].sort(
|
|
@@ -145,14 +141,11 @@ export const getActivity = async (
|
|
|
145
141
|
...(endTime === undefined ? {} : { endTime }),
|
|
146
142
|
}
|
|
147
143
|
|
|
148
|
-
// `get`, not `require`: a coin the backend market list does not hold drops
|
|
149
|
-
// only its own row instead of rejecting the whole feed. The registry warns
|
|
150
|
-
// once per unresolved id. A delisted market still resolves, so its rows stay.
|
|
151
144
|
const merged = await fetchActivityData(
|
|
152
145
|
apiUrl,
|
|
153
146
|
params.type,
|
|
154
147
|
timeParams,
|
|
155
|
-
(coin) => registry.
|
|
148
|
+
(coin) => registry.require(coin),
|
|
156
149
|
infoOpts
|
|
157
150
|
)
|
|
158
151
|
|
package/src/services/getFills.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getMarketRegistry, type SDKRequestOptions } from '@lifi/perps-sdk'
|
|
2
|
-
import type {
|
|
2
|
+
import type { FillsResponse } from '@lifi/perps-types'
|
|
3
3
|
import type { Address } from 'viem'
|
|
4
4
|
import {
|
|
5
5
|
DEFAULT_HISTORY_LIMIT,
|
|
@@ -108,13 +108,7 @@ export const getFills = async (
|
|
|
108
108
|
|
|
109
109
|
const hasMore = filtered.length > limit
|
|
110
110
|
const page = filtered.slice(0, limit)
|
|
111
|
-
|
|
112
|
-
// only its own row instead of rejecting the whole page. The registry warns
|
|
113
|
-
// once per unresolved id. A delisted market still resolves, so its rows stay.
|
|
114
|
-
const items = page.flatMap((f): Fill[] => {
|
|
115
|
-
const market = registry.get(f.coin)
|
|
116
|
-
return market === undefined ? [] : [mapFill(f, market)]
|
|
117
|
-
})
|
|
111
|
+
const items = page.map((f) => mapFill(f, registry.require(f.coin)))
|
|
118
112
|
const lastPageFill: HlUserFill | undefined = page[page.length - 1]
|
|
119
113
|
|
|
120
114
|
return {
|
package/src/utils/mapActivity.ts
CHANGED
|
@@ -20,6 +20,17 @@ import {
|
|
|
20
20
|
/** Hyperliquid settles every perp deposit and withdrawal in USDC. */
|
|
21
21
|
const HL_COLLATERAL_SYMBOL = 'USDC'
|
|
22
22
|
|
|
23
|
+
/**
|
|
24
|
+
* Display symbol for a ledger delta's wire token (`"USDC"`, `"PURR:0x..."`).
|
|
25
|
+
* The colon separates the name from the token id, so the symbol is the part
|
|
26
|
+
* BEFORE it — the opposite half to a market coin's `dex:COIN`, which is why
|
|
27
|
+
* `coinAsset` cannot be reused here.
|
|
28
|
+
*/
|
|
29
|
+
const ledgerTokenSymbol = (token: string): string => {
|
|
30
|
+
const separator = token.indexOf(':')
|
|
31
|
+
return separator === -1 ? token : token.slice(0, separator)
|
|
32
|
+
}
|
|
33
|
+
|
|
23
34
|
/**
|
|
24
35
|
* Map a Hyperliquid non-funding ledger entry to an ActivityItem.
|
|
25
36
|
*
|
|
@@ -27,17 +38,13 @@ const HL_COLLATERAL_SYMBOL = 'USDC'
|
|
|
27
38
|
* `queriedAddress` matching the delta's `user` (OUT) or `destination` (IN).
|
|
28
39
|
* Returns null for unsupported delta types and for same-account moves, where
|
|
29
40
|
* `user === destination === queriedAddress`.
|
|
30
|
-
*
|
|
31
|
-
* @param resolveMarket - Market identity for a venue coin, or `undefined` when
|
|
32
|
-
* the backend market list does not hold it. A liquidated position the resolver
|
|
33
|
-
* cannot identify is dropped.
|
|
34
41
|
* @public
|
|
35
42
|
*/
|
|
36
43
|
export const mapLedgerEntry = (
|
|
37
44
|
entry: HlLedgerUpdate,
|
|
38
45
|
providerKey: string,
|
|
39
46
|
queriedAddress: string,
|
|
40
|
-
resolveMarket: (coin: string) => MarketDisplay
|
|
47
|
+
resolveMarket: (coin: string) => MarketDisplay
|
|
41
48
|
): ActivityItem | null => {
|
|
42
49
|
const { delta } = entry
|
|
43
50
|
const base = {
|
|
@@ -82,7 +89,7 @@ export const mapLedgerEntry = (
|
|
|
82
89
|
type: ActivityType.TRANSFER,
|
|
83
90
|
direction,
|
|
84
91
|
counterpartyAddress,
|
|
85
|
-
asset: delta.token,
|
|
92
|
+
asset: ledgerTokenSymbol(delta.token),
|
|
86
93
|
amount: delta.amount,
|
|
87
94
|
meta,
|
|
88
95
|
explorerLink: entry.hash
|
|
@@ -121,7 +128,7 @@ export const mapLedgerEntry = (
|
|
|
121
128
|
type: ActivityType.TRANSFER,
|
|
122
129
|
direction,
|
|
123
130
|
counterpartyAddress,
|
|
124
|
-
asset: delta.token,
|
|
131
|
+
asset: ledgerTokenSymbol(delta.token),
|
|
125
132
|
amount: delta.amount,
|
|
126
133
|
meta,
|
|
127
134
|
explorerLink: entry.hash
|
|
@@ -156,15 +163,14 @@ export const mapLedgerEntry = (
|
|
|
156
163
|
}
|
|
157
164
|
|
|
158
165
|
if (isLiquidationDelta(delta)) {
|
|
159
|
-
const
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
})
|
|
166
|
+
const liquidatedPositions = (delta.liquidatedPositions ?? []).map((p) => ({
|
|
167
|
+
market: resolveMarket(p.coin),
|
|
168
|
+
size: p.szi,
|
|
169
|
+
}))
|
|
163
170
|
// Liquidation rows must point to at least one market. Drop entries with
|
|
164
171
|
// missing/empty positions so downstream consumers can rely on that
|
|
165
172
|
// invariant and avoid rendering a market-less liquidation card.
|
|
166
|
-
|
|
167
|
-
if (firstPosition === undefined) {
|
|
173
|
+
if (liquidatedPositions.length === 0) {
|
|
168
174
|
return null
|
|
169
175
|
}
|
|
170
176
|
return {
|
|
@@ -177,7 +183,7 @@ export const mapLedgerEntry = (
|
|
|
177
183
|
? {}
|
|
178
184
|
: { accountValue: delta.accountValue }),
|
|
179
185
|
leverageType: delta.leverageType,
|
|
180
|
-
liquidatedPositions
|
|
186
|
+
liquidatedPositions,
|
|
181
187
|
} satisfies LiquidationActivity
|
|
182
188
|
}
|
|
183
189
|
|
|
@@ -185,10 +191,9 @@ export const mapLedgerEntry = (
|
|
|
185
191
|
}
|
|
186
192
|
|
|
187
193
|
/**
|
|
188
|
-
* Map a Hyperliquid funding ledger update to a normalized funding activity
|
|
189
|
-
* `
|
|
190
|
-
*
|
|
191
|
-
* `resolveMarket` supplies the provider-agnostic market metadata.
|
|
194
|
+
* Map a Hyperliquid funding ledger update to a normalized funding activity.
|
|
195
|
+
* `amount`, `positionSize`, and `fundingRate` retain the upstream decimal
|
|
196
|
+
* strings; `resolveMarket` supplies the provider-agnostic market metadata.
|
|
192
197
|
*
|
|
193
198
|
* `userFunding` entries all carry the zero hash, so a deterministic
|
|
194
199
|
* `funding:<coin>:<ISO time>` id is synthesized — funding accrues at most
|
|
@@ -198,19 +203,15 @@ export const mapLedgerEntry = (
|
|
|
198
203
|
export const mapFundingActivity = (
|
|
199
204
|
entry: HlFundingUpdate,
|
|
200
205
|
providerKey: string,
|
|
201
|
-
resolveMarket: (coin: string) => MarketDisplay
|
|
202
|
-
): FundingActivity
|
|
203
|
-
const market = resolveMarket(entry.delta.coin)
|
|
204
|
-
if (market === undefined) {
|
|
205
|
-
return null
|
|
206
|
-
}
|
|
206
|
+
resolveMarket: (coin: string) => MarketDisplay
|
|
207
|
+
): FundingActivity => {
|
|
207
208
|
const timestamp = new Date(entry.time).toISOString()
|
|
208
209
|
return {
|
|
209
210
|
id: `funding:${entry.delta.coin}:${timestamp}`,
|
|
210
211
|
provider: providerKey,
|
|
211
212
|
timestamp,
|
|
212
213
|
type: ActivityType.FUNDING,
|
|
213
|
-
market,
|
|
214
|
+
market: resolveMarket(entry.delta.coin),
|
|
214
215
|
amount: entry.delta.usdc,
|
|
215
216
|
positionSize: entry.delta.szi,
|
|
216
217
|
fundingRate: entry.delta.fundingRate,
|