lynx-client 0.0.29 → 0.0.31

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.
Files changed (43) hide show
  1. package/dist/cjs/index.js +4 -0
  2. package/dist/cjs/lib/priceFeeds/flare/flareFeedConstants.js +38 -0
  3. package/dist/cjs/lib/priceFeeds/flare/flareFeedFunctions.js +19 -0
  4. package/dist/cjs/lib/priceFeeds/interfaces.js +2 -0
  5. package/dist/cjs/lib/priceFeeds/pyth/pythFeedConstants.js +7 -1
  6. package/dist/cjs/lib/priceFeeds/pyth/pythFeedFunctions.js +8 -0
  7. package/dist/cjs/lib/priceFeeds/pyth/pythPriceData.js +51 -0
  8. package/dist/esm/index.d.ts +4 -0
  9. package/dist/esm/index.d.ts.map +1 -1
  10. package/dist/esm/index.js +4 -0
  11. package/dist/esm/lib/priceFeeds/flare/flareFeedConstants.d.ts +4 -0
  12. package/dist/esm/lib/priceFeeds/flare/flareFeedConstants.d.ts.map +1 -0
  13. package/dist/esm/lib/priceFeeds/flare/flareFeedConstants.js +38 -0
  14. package/dist/esm/lib/priceFeeds/flare/flareFeedFunctions.d.ts +12 -0
  15. package/dist/esm/lib/priceFeeds/flare/flareFeedFunctions.d.ts.map +1 -0
  16. package/dist/esm/lib/priceFeeds/flare/flareFeedFunctions.js +19 -0
  17. package/dist/esm/lib/priceFeeds/interfaces.d.ts +13 -0
  18. package/dist/esm/lib/priceFeeds/interfaces.d.ts.map +1 -0
  19. package/dist/esm/lib/priceFeeds/interfaces.js +2 -0
  20. package/dist/esm/lib/priceFeeds/pyth/pythFeedConstants.d.ts +1 -0
  21. package/dist/esm/lib/priceFeeds/pyth/pythFeedConstants.d.ts.map +1 -1
  22. package/dist/esm/lib/priceFeeds/pyth/pythFeedConstants.js +7 -1
  23. package/dist/esm/lib/priceFeeds/pyth/pythFeedFunctions.d.ts +5 -0
  24. package/dist/esm/lib/priceFeeds/pyth/pythFeedFunctions.d.ts.map +1 -1
  25. package/dist/esm/lib/priceFeeds/pyth/pythFeedFunctions.js +8 -0
  26. package/dist/esm/lib/priceFeeds/pyth/pythPriceData.d.ts +10 -0
  27. package/dist/esm/lib/priceFeeds/pyth/pythPriceData.d.ts.map +1 -0
  28. package/dist/esm/lib/priceFeeds/pyth/pythPriceData.js +51 -0
  29. package/dist/types/index.d.ts +4 -0
  30. package/dist/types/index.d.ts.map +1 -1
  31. package/dist/types/lib/priceFeeds/flare/flareFeedConstants.d.ts +4 -0
  32. package/dist/types/lib/priceFeeds/flare/flareFeedConstants.d.ts.map +1 -0
  33. package/dist/types/lib/priceFeeds/flare/flareFeedFunctions.d.ts +12 -0
  34. package/dist/types/lib/priceFeeds/flare/flareFeedFunctions.d.ts.map +1 -0
  35. package/dist/types/lib/priceFeeds/interfaces.d.ts +13 -0
  36. package/dist/types/lib/priceFeeds/interfaces.d.ts.map +1 -0
  37. package/dist/types/lib/priceFeeds/pyth/pythFeedConstants.d.ts +1 -0
  38. package/dist/types/lib/priceFeeds/pyth/pythFeedConstants.d.ts.map +1 -1
  39. package/dist/types/lib/priceFeeds/pyth/pythFeedFunctions.d.ts +5 -0
  40. package/dist/types/lib/priceFeeds/pyth/pythFeedFunctions.d.ts.map +1 -1
  41. package/dist/types/lib/priceFeeds/pyth/pythPriceData.d.ts +10 -0
  42. package/dist/types/lib/priceFeeds/pyth/pythPriceData.d.ts.map +1 -0
  43. package/package.json +1 -1
package/dist/cjs/index.js CHANGED
@@ -36,6 +36,10 @@ __exportStar(require("./lib/constants/groupIds"), exports);
36
36
  __exportStar(require("./lib/constants/feeIds"), exports);
37
37
  __exportStar(require("./lib/priceFeeds/pyth/pythFeedConstants"), exports);
38
38
  __exportStar(require("./lib/priceFeeds/pyth/pythFeedFunctions"), exports);
39
+ __exportStar(require("./lib/priceFeeds/pyth/pythPriceData"), exports);
40
+ __exportStar(require("./lib/priceFeeds/interfaces"), exports);
41
+ __exportStar(require("./lib/priceFeeds/flare/flareFeedConstants"), exports);
42
+ __exportStar(require("./lib/priceFeeds/flare/flareFeedFunctions"), exports);
39
43
  __exportStar(require("./lib/addresses/lensAddresses"), exports);
40
44
  __exportStar(require("./lib/addresses/systemAddresses"), exports);
41
45
  __exportStar(require("./lib/contractsIntegration/deployedContractsConnector"), exports);
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FLARE_PRICE_FEED_ID_TO_PAIR = exports.FLARE_PAIRS_PRICE_FEED_IDS = void 0;
4
+ const pairIds_1 = require("../../constants/pairIds");
5
+ // You can find the ids of prices at https://flare-systems-explorer.flare.network/price-feeds
6
+ exports.FLARE_PAIRS_PRICE_FEED_IDS = {
7
+ [pairIds_1.PAIR_CONFIGS_IDS.BTC_USD]: "0x014254432f55534400000000000000000000000000",
8
+ [pairIds_1.PAIR_CONFIGS_IDS.ETH_USD]: "0x014554482f55534400000000000000000000000000",
9
+ [pairIds_1.PAIR_CONFIGS_IDS.BNB_USD]: "0x01424e422f55534400000000000000000000000000",
10
+ // [PAIR_CONFIGS_IDS.FTM_USD]: "5c6c0d2386e3352356c3ab84434fafb5ea067ac2678a38a338c4a69ddc4bdb0c",
11
+ // NOTE : Using S instead of deprecated FTM
12
+ [pairIds_1.PAIR_CONFIGS_IDS.FTM_USD]: "0x01532f555344000000000000000000000000000000",
13
+ [pairIds_1.PAIR_CONFIGS_IDS.SOL_USD]: "0x01534f4c2f55534400000000000000000000000000",
14
+ [pairIds_1.PAIR_CONFIGS_IDS.XRP_USD]: "0x015852502f55534400000000000000000000000000",
15
+ [pairIds_1.PAIR_CONFIGS_IDS.S_USD]: "0x01532f555344000000000000000000000000000000",
16
+ [pairIds_1.PAIR_CONFIGS_IDS.FLR_USD]: "0x01464c522f55534400000000000000000000000000",
17
+ [pairIds_1.PAIR_CONFIGS_IDS.EUR_USD]: "",
18
+ [pairIds_1.PAIR_CONFIGS_IDS.GBP_USD]: "",
19
+ [pairIds_1.PAIR_CONFIGS_IDS.AUD_USD]: "",
20
+ [pairIds_1.PAIR_CONFIGS_IDS.NZD_USD]: "",
21
+ [pairIds_1.PAIR_CONFIGS_IDS.USD_JPY]: "",
22
+ [pairIds_1.PAIR_CONFIGS_IDS.USD_CHF]: "",
23
+ // NOTE : CAT pair will have the same price feed id as the non-CAT pair
24
+ [pairIds_1.PAIR_CONFIGS_IDS.BTC_USD_CAT]: "",
25
+ [pairIds_1.PAIR_CONFIGS_IDS.ETH_USD_CAT]: "",
26
+ [pairIds_1.PAIR_CONFIGS_IDS.EUR_USD_CAT]: "",
27
+ [pairIds_1.PAIR_CONFIGS_IDS.GBP_USD_CAT]: "",
28
+ [pairIds_1.PAIR_CONFIGS_IDS.AUD_USD_CAT]: "",
29
+ [pairIds_1.PAIR_CONFIGS_IDS.NZD_USD_CAT]: "",
30
+ [pairIds_1.PAIR_CONFIGS_IDS.USD_JPY_CAT]: "",
31
+ [pairIds_1.PAIR_CONFIGS_IDS.USD_CHF_CAT]: "",
32
+ };
33
+ // Reverse mapping
34
+ exports.FLARE_PRICE_FEED_ID_TO_PAIR = Object.entries(exports.FLARE_PAIRS_PRICE_FEED_IDS).reduce((acc, [pairId, feedId]) => {
35
+ if (feedId)
36
+ acc[feedId] = parseInt(pairId);
37
+ return acc;
38
+ }, {});
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFlareFeedIdForPair = getFlareFeedIdForPair;
4
+ exports.getPairIdForFlareFeedId = getPairIdForFlareFeedId;
5
+ const flareFeedConstants_1 = require("./flareFeedConstants");
6
+ /**
7
+ * Get the Flare feed id for a pair
8
+ * @param pairId The pair id
9
+ */
10
+ function getFlareFeedIdForPair(pairId) {
11
+ return flareFeedConstants_1.FLARE_PAIRS_PRICE_FEED_IDS[pairId];
12
+ }
13
+ /**
14
+ * Get the Pair ID for Flare Feed ID (reversal lookup)
15
+ * @param feedId The Flare feed id
16
+ */
17
+ function getPairIdForFlareFeedId(feedId) {
18
+ return flareFeedConstants_1.FLARE_PRICE_FEED_ID_TO_PAIR[feedId];
19
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PYTH_PAIRS_PRICE_FEED_IDS = exports.PYTH_PRICE_ENTRIES = exports.PYTH_PRICE_KEYS = void 0;
3
+ exports.PYTH_PRICE_FEED_ID_TO_PAIR = exports.PYTH_PAIRS_PRICE_FEED_IDS = exports.PYTH_PRICE_ENTRIES = exports.PYTH_PRICE_KEYS = void 0;
4
4
  const pairIds_1 = require("../../constants/pairIds");
5
5
  exports.PYTH_PRICE_KEYS = {
6
6
  [pairIds_1.PAIR_CONFIGS_IDS.BTC_USD]: "Crypto.BTC/USD",
@@ -62,3 +62,9 @@ exports.PYTH_PAIRS_PRICE_FEED_IDS = {
62
62
  [pairIds_1.PAIR_CONFIGS_IDS.USD_JPY_CAT]: "",
63
63
  [pairIds_1.PAIR_CONFIGS_IDS.USD_CHF_CAT]: "",
64
64
  };
65
+ // Reverse mapping
66
+ exports.PYTH_PRICE_FEED_ID_TO_PAIR = Object.entries(exports.PYTH_PAIRS_PRICE_FEED_IDS).reduce((acc, [pairId, feedId]) => {
67
+ if (feedId)
68
+ acc[feedId] = parseInt(pairId);
69
+ return acc;
70
+ }, {});
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getPythFeedIdForPair = getPythFeedIdForPair;
4
+ exports.getPairIdForPythFeedId = getPairIdForPythFeedId;
4
5
  const pythFeedConstants_1 = require("./pythFeedConstants");
5
6
  /**
6
7
  * Get the Pyth feed id for a pair
@@ -9,3 +10,10 @@ const pythFeedConstants_1 = require("./pythFeedConstants");
9
10
  function getPythFeedIdForPair(pairId) {
10
11
  return pythFeedConstants_1.PYTH_PRICE_KEYS[pairId];
11
12
  }
13
+ /**
14
+ * Get the Pair ID for Pyth Feed ID (reversal lookup)
15
+ * @param feedId The Pyth feed id
16
+ */
17
+ function getPairIdForPythFeedId(feedId) {
18
+ return pythFeedConstants_1.PYTH_PRICE_FEED_ID_TO_PAIR[feedId];
19
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPricesForTimestamp = getPricesForTimestamp;
4
+ const scales_1 = require("../../constants/scales");
5
+ const lynxScalesUtils_1 = require("../../lynxSystem/lynxScalesUtils");
6
+ const bignumbers_1 = require("../../utils/bignumbers");
7
+ /**
8
+ * Helper function to parse Pyth API response data into CombinedPriceData
9
+ */
10
+ function parseResponse(data) {
11
+ const encodedPrice = data.binary?.data ? `0x${data.binary.data}` : "";
12
+ // Handle both response formats - direct parsed[0] and nested parsed[0].price
13
+ const priceData = data.parsed?.[0]?.price || data.parsed?.[0];
14
+ if (!priceData) {
15
+ throw new Error("Invalid Pyth API response: missing price data");
16
+ }
17
+ const expo = priceData.expo;
18
+ const price = priceData.price;
19
+ const conf = priceData.conf;
20
+ const publishTime = priceData.publish_time;
21
+ const priceInScale = (0, bignumbers_1.floatToUnitsBn)(Number(price), scales_1.PRICES_SCALE + expo);
22
+ const confInScale = (0, bignumbers_1.floatToUnitsBn)(Number(conf), scales_1.PRICES_SCALE + expo);
23
+ return {
24
+ encodedPrice,
25
+ priceInUnits: (0, lynxScalesUtils_1.priceBnToFloat)(priceInScale),
26
+ priceConfidenceInUnits: (0, lynxScalesUtils_1.priceBnToFloat)(confInScale),
27
+ priceTimestamp: Number(publishTime),
28
+ priceInScale,
29
+ confInScale,
30
+ };
31
+ }
32
+ /**
33
+ * Fetches historical price data from Pyth for a specific timestamp or later
34
+ * Only searches forward in time (timestamp >= startTimestamp), never backwards
35
+ * @param priceFeedId - The Pyth price feed ID
36
+ * @param startTimestamp - The minimum timestamp to search from
37
+ * @param maxTimeGap - Maximum seconds to search forward from startTimestamp
38
+ */
39
+ async function getPricesForTimestamp(priceFeedId, startTimestamp, maxTimeGap) {
40
+ const hermesUrl = "https://hermes.pyth.network";
41
+ const buildUrl = (timestamp) => `${hermesUrl}/v2/updates/price/${timestamp}?ids[]=${priceFeedId}&encoding=hex`;
42
+ // Try timestamps from startTimestamp onwards, incrementing by 1 second
43
+ for (let offset = 0; offset <= maxTimeGap; offset++) {
44
+ const timestamp = startTimestamp + offset;
45
+ const response = await fetch(buildUrl(timestamp));
46
+ if (response.ok) {
47
+ return parseResponse(await response.json());
48
+ }
49
+ }
50
+ throw new Error(`No price found for asset ${priceFeedId} at or within ${maxTimeGap}s after timestamp ${startTimestamp}`);
51
+ }
@@ -19,6 +19,10 @@ export * from "./lib/constants/groupIds";
19
19
  export * from "./lib/constants/feeIds";
20
20
  export * from "./lib/priceFeeds/pyth/pythFeedConstants";
21
21
  export * from "./lib/priceFeeds/pyth/pythFeedFunctions";
22
+ export * from "./lib/priceFeeds/pyth/pythPriceData";
23
+ export * from "./lib/priceFeeds/interfaces";
24
+ export * from "./lib/priceFeeds/flare/flareFeedConstants";
25
+ export * from "./lib/priceFeeds/flare/flareFeedFunctions";
22
26
  export * from "./lib/addresses/lensAddresses";
23
27
  export * from "./lib/addresses/systemAddresses";
24
28
  export * from "./lib/contractsIntegration/deployedContractsConnector";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AAExC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC;AAClC,cAAc,2CAA2C,CAAC;AAE1D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAE1D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAEhD,cAAc,uDAAuD,CAAC;AAEtE,cAAc,iDAAiD,CAAC;AAChE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,6CAA6C,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,wDAAwD,CAAC;AACrG,YAAY,EAAE,4BAA4B,EAAE,MAAM,wDAAwD,CAAC;AAC3G,OAAO,EAAE,+BAA+B,EAAE,MAAM,4DAA4D,CAAC;AAC7G,YAAY,EAAE,gCAAgC,EAAE,MAAM,4DAA4D,CAAC;AACnH,OAAO,EAAE,2BAA2B,EAAE,MAAM,wDAAwD,CAAC;AACrG,YAAY,EAAE,4BAA4B,EAAE,MAAM,wDAAwD,CAAC;AAC3G,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,YAAY,EACV,uBAAuB,EACvB,gDAAgD,EAChD,mDAAmD,EACnD,4CAA4C,EAC5C,6CAA6C,EAC7C,iDAAiD,EACjD,cAAc,EACd,qBAAqB,IAAI,oCAAoC,EAC7D,0BAA0B,EAC1B,wBAAwB,EACzB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AACzF,YAAY,EACV,sBAAsB,EACtB,+CAA+C,EAC/C,gDAAgD,EAChD,4CAA4C,EAC5C,gDAAgD,IAAI,gDAAgD,EACpG,eAAe,EACf,kBAAkB,EACnB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,YAAY,EACV,kBAAkB,EAClB,yCAAyC,EACzC,2CAA2C,EAC3C,2CAA2C,EAC3C,wCAAwC,EACxC,gDAAgD,EAChD,uCAAuC,EACvC,iBAAiB,EACjB,eAAe,EAChB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,oCAAoC,EAAE,MAAM,iEAAiE,CAAC;AACvH,YAAY,EACV,qCAAqC,EACrC,wDAAwD,EACxD,yDAAyD,EACzD,0DAA0D,EAC3D,MAAM,iEAAiE,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,YAAY,EACV,iBAAiB,EACjB,uCAAuC,EACvC,2CAA2C,EAC3C,qCAAqC,EACrC,oCAAoC,EACpC,mCAAmC,EACnC,wCAAwC,EACxC,gDAAgD,EAChD,sCAAsC,EACtC,uCAAuC,EACvC,8BAA8B,EAC9B,kCAAkC,EAClC,qCAAqC,EACrC,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,6CAA6C,EAAE,MAAM,0EAA0E,CAAC;AACzI,YAAY,EACV,8CAA8C,EAC9C,qEAAqE,EACrE,8EAA8E,EAC9E,oEAAoE,EACrE,MAAM,0EAA0E,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,YAAY,EACV,YAAY,EACZ,mCAAmC,EACnC,kCAAkC,EAClC,wCAAwC,EACxC,iCAAiC,EACjC,mCAAmC,EACnC,gBAAgB,EACjB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,YAAY,EACV,wBAAwB,EACxB,8CAA8C,EAC9C,4CAA4C,EAC5C,+CAA+C,EAC/C,uCAAuC,EACvC,wCAAwC,EACxC,2CAA2C,EAC3C,2CAA2C,EAC3C,8CAA8C,EAC9C,kDAAkD,EAClD,+CAA+C,EAC/C,8CAA8C,EAC9C,4CAA4C,EAC5C,yCAAyC,EACzC,0BAA0B,EAC1B,gCAAgC,EAChC,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,oDAAoD,CAAC;AAE5D,cAAc,uDAAuD,CAAC;AACtE,cAAc,yDAAyD,CAAC;AACxE,cAAc,oDAAoD,CAAC;AACnE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iDAAiD,CAAC;AAEhE,cAAc,+DAA+D,CAAC;AAC9E,cAAc,iEAAiE,CAAC;AAChF,cAAc,mDAAmD,CAAC;AAClE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,yDAAyD,CAAC;AAGxE,YAAY,EAAE,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAC3F,YAAY,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AACrF,YAAY,EAAE,iBAAiB,EAAE,MAAM,+DAA+D,CAAC;AACvG,YAAY,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAC;AACjG,YAAY,EAAE,cAAc,EAAE,MAAM,yDAAyD,CAAC;AAC9F,YAAY,EAAE,WAAW,EAAE,MAAM,sDAAsD,CAAC;AACxF,YAAY,EAAE,eAAe,EAAE,MAAM,8DAA8D,CAAC;AACpG,YAAY,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAGrF,YAAY,EAAE,SAAS,EAAE,MAAM,sDAAsD,CAAC;AACtF,YAAY,EAAE,gBAAgB,EAAE,MAAM,oEAAoE,CAAC;AAG3G,YAAY,EAAE,IAAI,EAAE,MAAM,8CAA8C,CAAC;AAGzE,YAAY,EAAE,sCAAsC,EAAE,MAAM,0FAA0F,CAAC;AAGvJ,YAAY,EAAE,sBAAsB,EAAE,MAAM,uEAAuE,CAAC;AACpH,YAAY,EAAE,0BAA0B,EAAE,MAAM,2EAA2E,CAAC;AAC5H,YAAY,EAAE,sBAAsB,EAAE,MAAM,uEAAuE,CAAC;AAGpH,YAAY,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AAG1G,YAAY,EAAE,gBAAgB,EAAE,MAAM,gEAAgE,CAAC;AAGvG,YAAY,EAAE,UAAU,EAAE,MAAM,4DAA4D,CAAC;AAC7F,YAAY,EAAE,6BAA6B,EAAE,MAAM,0EAA0E,CAAC;AAG9H,OAAO,EAAE,gCAAgC,EAAE,MAAM,mGAAmG,CAAC;AACrJ,OAAO,EAAE,oCAAoC,EAAE,MAAM,2GAA2G,CAAC;AACjK,OAAO,EAAE,gCAAgC,EAAE,MAAM,mGAAmG,CAAC;AAGrJ,cAAc,kFAAkF,CAAC;AACjG,cAAc,oFAAoF,CAAC;AACnG,cAAc,sEAAsE,CAAC;AACrF,cAAc,+EAA+E,CAAC;AAC9F,cAAc,4EAA4E,CAAC;AAG3F,cAAc,0FAA0F,CAAC;AACzG,cAAc,8FAA8F,CAAC;AAC7G,cAAc,0FAA0F,CAAC;AAGzG,cAAc,qFAAqF,CAAC;AAGpG,cAAc,mFAAmF,CAAC;AAGlG,cAAc,+EAA+E,CAAC;AAC9F,cAAc,6FAA6F,CAAC;AAG5G,cAAc,aAAa,CAAC"}
package/dist/esm/index.js CHANGED
@@ -36,6 +36,10 @@ __exportStar(require("./lib/constants/groupIds"), exports);
36
36
  __exportStar(require("./lib/constants/feeIds"), exports);
37
37
  __exportStar(require("./lib/priceFeeds/pyth/pythFeedConstants"), exports);
38
38
  __exportStar(require("./lib/priceFeeds/pyth/pythFeedFunctions"), exports);
39
+ __exportStar(require("./lib/priceFeeds/pyth/pythPriceData"), exports);
40
+ __exportStar(require("./lib/priceFeeds/interfaces"), exports);
41
+ __exportStar(require("./lib/priceFeeds/flare/flareFeedConstants"), exports);
42
+ __exportStar(require("./lib/priceFeeds/flare/flareFeedFunctions"), exports);
39
43
  __exportStar(require("./lib/addresses/lensAddresses"), exports);
40
44
  __exportStar(require("./lib/addresses/systemAddresses"), exports);
41
45
  __exportStar(require("./lib/contractsIntegration/deployedContractsConnector"), exports);
@@ -0,0 +1,4 @@
1
+ import { TPairIds } from "../../constants/pairIds";
2
+ export declare const FLARE_PAIRS_PRICE_FEED_IDS: Record<TPairIds, string>;
3
+ export declare const FLARE_PRICE_FEED_ID_TO_PAIR: Record<string, TPairIds>;
4
+ //# sourceMappingURL=flareFeedConstants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flareFeedConstants.d.ts","sourceRoot":"","sources":["../../../../../lib/priceFeeds/flare/flareFeedConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGrE,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAyC/D,CAAC;AAGF,eAAO,MAAM,2BAA2B,0BAKlC,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FLARE_PRICE_FEED_ID_TO_PAIR = exports.FLARE_PAIRS_PRICE_FEED_IDS = void 0;
4
+ const pairIds_1 = require("../../constants/pairIds");
5
+ // You can find the ids of prices at https://flare-systems-explorer.flare.network/price-feeds
6
+ exports.FLARE_PAIRS_PRICE_FEED_IDS = {
7
+ [pairIds_1.PAIR_CONFIGS_IDS.BTC_USD]: "0x014254432f55534400000000000000000000000000",
8
+ [pairIds_1.PAIR_CONFIGS_IDS.ETH_USD]: "0x014554482f55534400000000000000000000000000",
9
+ [pairIds_1.PAIR_CONFIGS_IDS.BNB_USD]: "0x01424e422f55534400000000000000000000000000",
10
+ // [PAIR_CONFIGS_IDS.FTM_USD]: "5c6c0d2386e3352356c3ab84434fafb5ea067ac2678a38a338c4a69ddc4bdb0c",
11
+ // NOTE : Using S instead of deprecated FTM
12
+ [pairIds_1.PAIR_CONFIGS_IDS.FTM_USD]: "0x01532f555344000000000000000000000000000000",
13
+ [pairIds_1.PAIR_CONFIGS_IDS.SOL_USD]: "0x01534f4c2f55534400000000000000000000000000",
14
+ [pairIds_1.PAIR_CONFIGS_IDS.XRP_USD]: "0x015852502f55534400000000000000000000000000",
15
+ [pairIds_1.PAIR_CONFIGS_IDS.S_USD]: "0x01532f555344000000000000000000000000000000",
16
+ [pairIds_1.PAIR_CONFIGS_IDS.FLR_USD]: "0x01464c522f55534400000000000000000000000000",
17
+ [pairIds_1.PAIR_CONFIGS_IDS.EUR_USD]: "",
18
+ [pairIds_1.PAIR_CONFIGS_IDS.GBP_USD]: "",
19
+ [pairIds_1.PAIR_CONFIGS_IDS.AUD_USD]: "",
20
+ [pairIds_1.PAIR_CONFIGS_IDS.NZD_USD]: "",
21
+ [pairIds_1.PAIR_CONFIGS_IDS.USD_JPY]: "",
22
+ [pairIds_1.PAIR_CONFIGS_IDS.USD_CHF]: "",
23
+ // NOTE : CAT pair will have the same price feed id as the non-CAT pair
24
+ [pairIds_1.PAIR_CONFIGS_IDS.BTC_USD_CAT]: "",
25
+ [pairIds_1.PAIR_CONFIGS_IDS.ETH_USD_CAT]: "",
26
+ [pairIds_1.PAIR_CONFIGS_IDS.EUR_USD_CAT]: "",
27
+ [pairIds_1.PAIR_CONFIGS_IDS.GBP_USD_CAT]: "",
28
+ [pairIds_1.PAIR_CONFIGS_IDS.AUD_USD_CAT]: "",
29
+ [pairIds_1.PAIR_CONFIGS_IDS.NZD_USD_CAT]: "",
30
+ [pairIds_1.PAIR_CONFIGS_IDS.USD_JPY_CAT]: "",
31
+ [pairIds_1.PAIR_CONFIGS_IDS.USD_CHF_CAT]: "",
32
+ };
33
+ // Reverse mapping
34
+ exports.FLARE_PRICE_FEED_ID_TO_PAIR = Object.entries(exports.FLARE_PAIRS_PRICE_FEED_IDS).reduce((acc, [pairId, feedId]) => {
35
+ if (feedId)
36
+ acc[feedId] = parseInt(pairId);
37
+ return acc;
38
+ }, {});
@@ -0,0 +1,12 @@
1
+ import { TPairIds } from "../../constants/pairIds";
2
+ /**
3
+ * Get the Flare feed id for a pair
4
+ * @param pairId The pair id
5
+ */
6
+ export declare function getFlareFeedIdForPair(pairId: TPairIds): string;
7
+ /**
8
+ * Get the Pair ID for Flare Feed ID (reversal lookup)
9
+ * @param feedId The Flare feed id
10
+ */
11
+ export declare function getPairIdForFlareFeedId(feedId: string): TPairIds;
12
+ //# sourceMappingURL=flareFeedFunctions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flareFeedFunctions.d.ts","sourceRoot":"","sources":["../../../../../lib/priceFeeds/flare/flareFeedFunctions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAE9D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAEhE"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFlareFeedIdForPair = getFlareFeedIdForPair;
4
+ exports.getPairIdForFlareFeedId = getPairIdForFlareFeedId;
5
+ const flareFeedConstants_1 = require("./flareFeedConstants");
6
+ /**
7
+ * Get the Flare feed id for a pair
8
+ * @param pairId The pair id
9
+ */
10
+ function getFlareFeedIdForPair(pairId) {
11
+ return flareFeedConstants_1.FLARE_PAIRS_PRICE_FEED_IDS[pairId];
12
+ }
13
+ /**
14
+ * Get the Pair ID for Flare Feed ID (reversal lookup)
15
+ * @param feedId The Flare feed id
16
+ */
17
+ function getPairIdForFlareFeedId(feedId) {
18
+ return flareFeedConstants_1.FLARE_PRICE_FEED_ID_TO_PAIR[feedId];
19
+ }
@@ -0,0 +1,13 @@
1
+ export interface PriceData {
2
+ encodedPrice: string;
3
+ priceInUnits: number;
4
+ priceTimestamp: number;
5
+ priceConfidenceInUnits: number;
6
+ fee?: bigint;
7
+ }
8
+ export interface RawPriceData {
9
+ priceInScale: bigint;
10
+ confInScale: bigint;
11
+ }
12
+ export type CombinedPriceData = RawPriceData & PriceData;
13
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../lib/priceFeeds/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -2,4 +2,5 @@ import { TPairIds } from "../../constants/pairIds";
2
2
  export declare const PYTH_PRICE_KEYS: Record<TPairIds, string>;
3
3
  export declare const PYTH_PRICE_ENTRIES: [TPairIds, string][];
4
4
  export declare const PYTH_PAIRS_PRICE_FEED_IDS: Record<TPairIds, string>;
5
+ export declare const PYTH_PRICE_FEED_ID_TO_PAIR: Record<string, TPairIds>;
5
6
  //# sourceMappingURL=pythFeedConstants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pythFeedConstants.d.ts","sourceRoot":"","sources":["../../../../../lib/priceFeeds/pyth/pythFeedConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAErE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAgCpD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAKjD,CAAC;AAGH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAyC9D,CAAC"}
1
+ {"version":3,"file":"pythFeedConstants.d.ts","sourceRoot":"","sources":["../../../../../lib/priceFeeds/pyth/pythFeedConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAErE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAgCpD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAKjD,CAAC;AAGH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAyC9D,CAAC;AAGF,eAAO,MAAM,0BAA0B,0BAKjC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PYTH_PAIRS_PRICE_FEED_IDS = exports.PYTH_PRICE_ENTRIES = exports.PYTH_PRICE_KEYS = void 0;
3
+ exports.PYTH_PRICE_FEED_ID_TO_PAIR = exports.PYTH_PAIRS_PRICE_FEED_IDS = exports.PYTH_PRICE_ENTRIES = exports.PYTH_PRICE_KEYS = void 0;
4
4
  const pairIds_1 = require("../../constants/pairIds");
5
5
  exports.PYTH_PRICE_KEYS = {
6
6
  [pairIds_1.PAIR_CONFIGS_IDS.BTC_USD]: "Crypto.BTC/USD",
@@ -62,3 +62,9 @@ exports.PYTH_PAIRS_PRICE_FEED_IDS = {
62
62
  [pairIds_1.PAIR_CONFIGS_IDS.USD_JPY_CAT]: "",
63
63
  [pairIds_1.PAIR_CONFIGS_IDS.USD_CHF_CAT]: "",
64
64
  };
65
+ // Reverse mapping
66
+ exports.PYTH_PRICE_FEED_ID_TO_PAIR = Object.entries(exports.PYTH_PAIRS_PRICE_FEED_IDS).reduce((acc, [pairId, feedId]) => {
67
+ if (feedId)
68
+ acc[feedId] = parseInt(pairId);
69
+ return acc;
70
+ }, {});
@@ -4,4 +4,9 @@ import { TPairIds } from "../../constants/pairIds";
4
4
  * @param pairId The pair id
5
5
  */
6
6
  export declare function getPythFeedIdForPair(pairId: TPairIds): string;
7
+ /**
8
+ * Get the Pair ID for Pyth Feed ID (reversal lookup)
9
+ * @param feedId The Pyth feed id
10
+ */
11
+ export declare function getPairIdForPythFeedId(feedId: string): TPairIds;
7
12
  //# sourceMappingURL=pythFeedFunctions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pythFeedFunctions.d.ts","sourceRoot":"","sources":["../../../../../lib/priceFeeds/pyth/pythFeedFunctions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAE7D"}
1
+ {"version":3,"file":"pythFeedFunctions.d.ts","sourceRoot":"","sources":["../../../../../lib/priceFeeds/pyth/pythFeedFunctions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAE7D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAE/D"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getPythFeedIdForPair = getPythFeedIdForPair;
4
+ exports.getPairIdForPythFeedId = getPairIdForPythFeedId;
4
5
  const pythFeedConstants_1 = require("./pythFeedConstants");
5
6
  /**
6
7
  * Get the Pyth feed id for a pair
@@ -9,3 +10,10 @@ const pythFeedConstants_1 = require("./pythFeedConstants");
9
10
  function getPythFeedIdForPair(pairId) {
10
11
  return pythFeedConstants_1.PYTH_PRICE_KEYS[pairId];
11
12
  }
13
+ /**
14
+ * Get the Pair ID for Pyth Feed ID (reversal lookup)
15
+ * @param feedId The Pyth feed id
16
+ */
17
+ function getPairIdForPythFeedId(feedId) {
18
+ return pythFeedConstants_1.PYTH_PRICE_FEED_ID_TO_PAIR[feedId];
19
+ }
@@ -0,0 +1,10 @@
1
+ import { CombinedPriceData } from "../interfaces";
2
+ /**
3
+ * Fetches historical price data from Pyth for a specific timestamp or later
4
+ * Only searches forward in time (timestamp >= startTimestamp), never backwards
5
+ * @param priceFeedId - The Pyth price feed ID
6
+ * @param startTimestamp - The minimum timestamp to search from
7
+ * @param maxTimeGap - Maximum seconds to search forward from startTimestamp
8
+ */
9
+ export declare function getPricesForTimestamp(priceFeedId: string, startTimestamp: number, maxTimeGap: number): Promise<CombinedPriceData>;
10
+ //# sourceMappingURL=pythPriceData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pythPriceData.d.ts","sourceRoot":"","sources":["../../../../../lib/priceFeeds/pyth/pythPriceData.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAgClD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC,CAiB5B"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPricesForTimestamp = getPricesForTimestamp;
4
+ const scales_1 = require("../../constants/scales");
5
+ const lynxScalesUtils_1 = require("../../lynxSystem/lynxScalesUtils");
6
+ const bignumbers_1 = require("../../utils/bignumbers");
7
+ /**
8
+ * Helper function to parse Pyth API response data into CombinedPriceData
9
+ */
10
+ function parseResponse(data) {
11
+ const encodedPrice = data.binary?.data ? `0x${data.binary.data}` : "";
12
+ // Handle both response formats - direct parsed[0] and nested parsed[0].price
13
+ const priceData = data.parsed?.[0]?.price || data.parsed?.[0];
14
+ if (!priceData) {
15
+ throw new Error("Invalid Pyth API response: missing price data");
16
+ }
17
+ const expo = priceData.expo;
18
+ const price = priceData.price;
19
+ const conf = priceData.conf;
20
+ const publishTime = priceData.publish_time;
21
+ const priceInScale = (0, bignumbers_1.floatToUnitsBn)(Number(price), scales_1.PRICES_SCALE + expo);
22
+ const confInScale = (0, bignumbers_1.floatToUnitsBn)(Number(conf), scales_1.PRICES_SCALE + expo);
23
+ return {
24
+ encodedPrice,
25
+ priceInUnits: (0, lynxScalesUtils_1.priceBnToFloat)(priceInScale),
26
+ priceConfidenceInUnits: (0, lynxScalesUtils_1.priceBnToFloat)(confInScale),
27
+ priceTimestamp: Number(publishTime),
28
+ priceInScale,
29
+ confInScale,
30
+ };
31
+ }
32
+ /**
33
+ * Fetches historical price data from Pyth for a specific timestamp or later
34
+ * Only searches forward in time (timestamp >= startTimestamp), never backwards
35
+ * @param priceFeedId - The Pyth price feed ID
36
+ * @param startTimestamp - The minimum timestamp to search from
37
+ * @param maxTimeGap - Maximum seconds to search forward from startTimestamp
38
+ */
39
+ async function getPricesForTimestamp(priceFeedId, startTimestamp, maxTimeGap) {
40
+ const hermesUrl = "https://hermes.pyth.network";
41
+ const buildUrl = (timestamp) => `${hermesUrl}/v2/updates/price/${timestamp}?ids[]=${priceFeedId}&encoding=hex`;
42
+ // Try timestamps from startTimestamp onwards, incrementing by 1 second
43
+ for (let offset = 0; offset <= maxTimeGap; offset++) {
44
+ const timestamp = startTimestamp + offset;
45
+ const response = await fetch(buildUrl(timestamp));
46
+ if (response.ok) {
47
+ return parseResponse(await response.json());
48
+ }
49
+ }
50
+ throw new Error(`No price found for asset ${priceFeedId} at or within ${maxTimeGap}s after timestamp ${startTimestamp}`);
51
+ }
@@ -19,6 +19,10 @@ export * from "./lib/constants/groupIds";
19
19
  export * from "./lib/constants/feeIds";
20
20
  export * from "./lib/priceFeeds/pyth/pythFeedConstants";
21
21
  export * from "./lib/priceFeeds/pyth/pythFeedFunctions";
22
+ export * from "./lib/priceFeeds/pyth/pythPriceData";
23
+ export * from "./lib/priceFeeds/interfaces";
24
+ export * from "./lib/priceFeeds/flare/flareFeedConstants";
25
+ export * from "./lib/priceFeeds/flare/flareFeedFunctions";
22
26
  export * from "./lib/addresses/lensAddresses";
23
27
  export * from "./lib/addresses/systemAddresses";
24
28
  export * from "./lib/contractsIntegration/deployedContractsConnector";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { TPairIds } from "../../constants/pairIds";
2
+ export declare const FLARE_PAIRS_PRICE_FEED_IDS: Record<TPairIds, string>;
3
+ export declare const FLARE_PRICE_FEED_ID_TO_PAIR: Record<string, TPairIds>;
4
+ //# sourceMappingURL=flareFeedConstants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flareFeedConstants.d.ts","sourceRoot":"","sources":["../../../../../lib/priceFeeds/flare/flareFeedConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGrE,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAyC/D,CAAC;AAGF,eAAO,MAAM,2BAA2B,0BAKlC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { TPairIds } from "../../constants/pairIds";
2
+ /**
3
+ * Get the Flare feed id for a pair
4
+ * @param pairId The pair id
5
+ */
6
+ export declare function getFlareFeedIdForPair(pairId: TPairIds): string;
7
+ /**
8
+ * Get the Pair ID for Flare Feed ID (reversal lookup)
9
+ * @param feedId The Flare feed id
10
+ */
11
+ export declare function getPairIdForFlareFeedId(feedId: string): TPairIds;
12
+ //# sourceMappingURL=flareFeedFunctions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flareFeedFunctions.d.ts","sourceRoot":"","sources":["../../../../../lib/priceFeeds/flare/flareFeedFunctions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAE9D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAEhE"}
@@ -0,0 +1,13 @@
1
+ export interface PriceData {
2
+ encodedPrice: string;
3
+ priceInUnits: number;
4
+ priceTimestamp: number;
5
+ priceConfidenceInUnits: number;
6
+ fee?: bigint;
7
+ }
8
+ export interface RawPriceData {
9
+ priceInScale: bigint;
10
+ confInScale: bigint;
11
+ }
12
+ export type CombinedPriceData = RawPriceData & PriceData;
13
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../lib/priceFeeds/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,SAAS,CAAC"}
@@ -2,4 +2,5 @@ import { TPairIds } from "../../constants/pairIds";
2
2
  export declare const PYTH_PRICE_KEYS: Record<TPairIds, string>;
3
3
  export declare const PYTH_PRICE_ENTRIES: [TPairIds, string][];
4
4
  export declare const PYTH_PAIRS_PRICE_FEED_IDS: Record<TPairIds, string>;
5
+ export declare const PYTH_PRICE_FEED_ID_TO_PAIR: Record<string, TPairIds>;
5
6
  //# sourceMappingURL=pythFeedConstants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pythFeedConstants.d.ts","sourceRoot":"","sources":["../../../../../lib/priceFeeds/pyth/pythFeedConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAErE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAgCpD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAKjD,CAAC;AAGH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAyC9D,CAAC"}
1
+ {"version":3,"file":"pythFeedConstants.d.ts","sourceRoot":"","sources":["../../../../../lib/priceFeeds/pyth/pythFeedConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAErE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAgCpD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAKjD,CAAC;AAGH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAyC9D,CAAC;AAGF,eAAO,MAAM,0BAA0B,0BAKjC,CAAC"}
@@ -4,4 +4,9 @@ import { TPairIds } from "../../constants/pairIds";
4
4
  * @param pairId The pair id
5
5
  */
6
6
  export declare function getPythFeedIdForPair(pairId: TPairIds): string;
7
+ /**
8
+ * Get the Pair ID for Pyth Feed ID (reversal lookup)
9
+ * @param feedId The Pyth feed id
10
+ */
11
+ export declare function getPairIdForPythFeedId(feedId: string): TPairIds;
7
12
  //# sourceMappingURL=pythFeedFunctions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pythFeedFunctions.d.ts","sourceRoot":"","sources":["../../../../../lib/priceFeeds/pyth/pythFeedFunctions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAE7D"}
1
+ {"version":3,"file":"pythFeedFunctions.d.ts","sourceRoot":"","sources":["../../../../../lib/priceFeeds/pyth/pythFeedFunctions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,CAE7D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAE/D"}
@@ -0,0 +1,10 @@
1
+ import { CombinedPriceData } from "../interfaces";
2
+ /**
3
+ * Fetches historical price data from Pyth for a specific timestamp or later
4
+ * Only searches forward in time (timestamp >= startTimestamp), never backwards
5
+ * @param priceFeedId - The Pyth price feed ID
6
+ * @param startTimestamp - The minimum timestamp to search from
7
+ * @param maxTimeGap - Maximum seconds to search forward from startTimestamp
8
+ */
9
+ export declare function getPricesForTimestamp(priceFeedId: string, startTimestamp: number, maxTimeGap: number): Promise<CombinedPriceData>;
10
+ //# sourceMappingURL=pythPriceData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pythPriceData.d.ts","sourceRoot":"","sources":["../../../../../lib/priceFeeds/pyth/pythPriceData.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAgClD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC,CAiB5B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lynx-client",
3
- "version": "0.0.29",
3
+ "version": "0.0.31",
4
4
  "description": "Client library for interacting with Lynx publicly available services",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",