@pear-protocol/hyperliquid-sdk 0.1.4-pnl → 0.1.5-pnl

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.
@@ -1,4 +1,3 @@
1
- import type { TokenMetadata } from '../types';
2
1
  export type PnlCalendarTimeframe = '2W' | '3W' | '2M' | '3M';
3
2
  export interface PnlCalendarOptions {
4
3
  timeframe?: PnlCalendarTimeframe;
@@ -7,12 +6,17 @@ export interface PnlCalendarOptions {
7
6
  }
8
7
  export interface PnlCalendarAsset {
9
8
  coin: string;
10
- metadata: TokenMetadata | null;
9
+ symbol: string;
10
+ assetName: string;
11
+ marketPrefix: string;
12
+ percentage: number;
13
+ collateralToken: string;
11
14
  }
12
15
  export interface PnlCalendarTrade {
13
16
  tradeHistoryId: string;
14
17
  realizedPnl: number;
15
18
  result: 'profit' | 'loss' | 'breakeven';
19
+ collateralTypes: string[];
16
20
  closedLongAssets: PnlCalendarAsset[];
17
21
  closedShortAssets: PnlCalendarAsset[];
18
22
  }
package/dist/index.d.ts CHANGED
@@ -1506,12 +1506,17 @@ interface PnlCalendarOptions {
1506
1506
  }
1507
1507
  interface PnlCalendarAsset {
1508
1508
  coin: string;
1509
- metadata: TokenMetadata | null;
1509
+ symbol: string;
1510
+ assetName: string;
1511
+ marketPrefix: string;
1512
+ percentage: number;
1513
+ collateralToken: string;
1510
1514
  }
1511
1515
  interface PnlCalendarTrade {
1512
1516
  tradeHistoryId: string;
1513
1517
  realizedPnl: number;
1514
1518
  result: 'profit' | 'loss' | 'breakeven';
1519
+ collateralTypes: string[];
1515
1520
  closedLongAssets: PnlCalendarAsset[];
1516
1521
  closedShortAssets: PnlCalendarAsset[];
1517
1522
  }
package/dist/index.js CHANGED
@@ -8492,6 +8492,25 @@ const toISODateString$1 = (input) => {
8492
8492
  return d.toISOString();
8493
8493
  };
8494
8494
  const round2 = (n) => Math.round(n * 100) / 100;
8495
+ const mapAsset$1 = (asset, getAssetByName) => {
8496
+ var _a, _b, _c, _d;
8497
+ const metadata = getAssetByName(asset.coin);
8498
+ const marketInfo = getMarketInfoFromSymbol(asset.coin);
8499
+ return {
8500
+ coin: asset.coin,
8501
+ symbol: (_a = metadata === null || metadata === void 0 ? void 0 : metadata.symbolName) !== null && _a !== void 0 ? _a : marketInfo.symbolName,
8502
+ assetName: (_b = metadata === null || metadata === void 0 ? void 0 : metadata.assetName) !== null && _b !== void 0 ? _b : asset.coin,
8503
+ marketPrefix: (_c = metadata === null || metadata === void 0 ? void 0 : metadata.marketName) !== null && _c !== void 0 ? _c : marketInfo.marketName,
8504
+ percentage: asset.closeWeight * 100,
8505
+ collateralToken: (_d = metadata === null || metadata === void 0 ? void 0 : metadata.collateralToken) !== null && _d !== void 0 ? _d : 'USDC',
8506
+ };
8507
+ };
8508
+ const getCollateralTypes$1 = (assets) => {
8509
+ const set = new Set();
8510
+ for (const a of assets)
8511
+ set.add(a.collateralToken);
8512
+ return set.size > 0 ? Array.from(set) : ['USDC'];
8513
+ };
8495
8514
  const buildSummary = (days) => {
8496
8515
  let pnl = 0;
8497
8516
  let volume = 0;
@@ -8559,12 +8578,15 @@ const buildCalendarData = (tradeHistories, timeframe, rangeStart, rangeEnd, tota
8559
8578
  bucket.volume += isFinite(vol) ? vol : 0;
8560
8579
  bucket.positionsClosed += 1;
8561
8580
  const tradePnl = trade.realizedPnl;
8581
+ const longAssets = trade.closedLongAssets.map((a) => mapAsset$1(a, getAssetByName));
8582
+ const shortAssets = trade.closedShortAssets.map((a) => mapAsset$1(a, getAssetByName));
8562
8583
  bucket.trades.push({
8563
8584
  tradeHistoryId: trade.tradeHistoryId,
8564
8585
  realizedPnl: tradePnl,
8565
8586
  result: tradePnl > 0 ? 'profit' : tradePnl < 0 ? 'loss' : 'breakeven',
8566
- closedLongAssets: trade.closedLongAssets.map((a) => { var _a; return ({ coin: a.coin, metadata: (_a = getAssetByName(a.coin)) !== null && _a !== void 0 ? _a : null }); }),
8567
- closedShortAssets: trade.closedShortAssets.map((a) => { var _a; return ({ coin: a.coin, metadata: (_a = getAssetByName(a.coin)) !== null && _a !== void 0 ? _a : null }); }),
8587
+ collateralTypes: getCollateralTypes$1([...longAssets, ...shortAssets]),
8588
+ closedLongAssets: longAssets,
8589
+ closedShortAssets: shortAssets,
8568
8590
  });
8569
8591
  }
8570
8592
  // Build day objects
@@ -8747,14 +8769,36 @@ const getTimeframeDays = (tf) => {
8747
8769
  }
8748
8770
  };
8749
8771
  const toISODateString = (date) => date.toISOString();
8772
+ const mapAsset = (asset, getAssetByName) => {
8773
+ var _a, _b, _c, _d;
8774
+ const metadata = getAssetByName(asset.coin);
8775
+ const marketInfo = getMarketInfoFromSymbol(asset.coin);
8776
+ return {
8777
+ coin: asset.coin,
8778
+ symbol: (_a = metadata === null || metadata === void 0 ? void 0 : metadata.symbolName) !== null && _a !== void 0 ? _a : marketInfo.symbolName,
8779
+ assetName: (_b = metadata === null || metadata === void 0 ? void 0 : metadata.assetName) !== null && _b !== void 0 ? _b : asset.coin,
8780
+ marketPrefix: (_c = metadata === null || metadata === void 0 ? void 0 : metadata.marketName) !== null && _c !== void 0 ? _c : marketInfo.marketName,
8781
+ percentage: asset.closeWeight * 100,
8782
+ collateralToken: (_d = metadata === null || metadata === void 0 ? void 0 : metadata.collateralToken) !== null && _d !== void 0 ? _d : 'USDC',
8783
+ };
8784
+ };
8785
+ const getCollateralTypes = (assets) => {
8786
+ const set = new Set();
8787
+ for (const a of assets)
8788
+ set.add(a.collateralToken);
8789
+ return set.size > 0 ? Array.from(set) : ['USDC'];
8790
+ };
8750
8791
  const toCalendarTrade = (trade, getAssetByName) => {
8751
8792
  const pnl = trade.realizedPnl;
8793
+ const longAssets = trade.closedLongAssets.map((a) => mapAsset(a, getAssetByName));
8794
+ const shortAssets = trade.closedShortAssets.map((a) => mapAsset(a, getAssetByName));
8752
8795
  return {
8753
8796
  tradeHistoryId: trade.tradeHistoryId,
8754
8797
  realizedPnl: pnl,
8755
8798
  result: pnl > 0 ? 'profit' : pnl < 0 ? 'loss' : 'breakeven',
8756
- closedLongAssets: trade.closedLongAssets.map((a) => { var _a; return ({ coin: a.coin, metadata: (_a = getAssetByName(a.coin)) !== null && _a !== void 0 ? _a : null }); }),
8757
- closedShortAssets: trade.closedShortAssets.map((a) => { var _a; return ({ coin: a.coin, metadata: (_a = getAssetByName(a.coin)) !== null && _a !== void 0 ? _a : null }); }),
8799
+ collateralTypes: getCollateralTypes([...longAssets, ...shortAssets]),
8800
+ closedLongAssets: longAssets,
8801
+ closedShortAssets: shortAssets,
8758
8802
  };
8759
8803
  };
8760
8804
  // ─── hook ───────────────────────────────────────────────────────
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pear-protocol/hyperliquid-sdk",
3
- "version": "0.1.4-pnl",
3
+ "version": "0.1.5-pnl",
4
4
  "description": "React SDK for Pear Protocol Hyperliquid API integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",