@sonarwatch/portfolio-plugins 0.14.44 → 0.14.46

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 (65) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/package.json +1 -1
  3. package/src/plugins/cetus/clmmsFetcher.js +12 -20
  4. package/src/plugins/cetus/clmmsFetcher.js.map +1 -1
  5. package/src/plugins/cetus/getPools.d.ts +2 -2
  6. package/src/plugins/cetus/getPools.js +20 -7
  7. package/src/plugins/cetus/getPools.js.map +1 -1
  8. package/src/plugins/cetus/index.js +2 -1
  9. package/src/plugins/cetus/index.js.map +1 -1
  10. package/src/plugins/cetus/poolsStatsJob.d.ts +3 -0
  11. package/src/plugins/cetus/poolsStatsJob.js +45 -0
  12. package/src/plugins/cetus/poolsStatsJob.js.map +1 -0
  13. package/src/plugins/cetus/types.d.ts +7 -0
  14. package/src/plugins/cetus/types.js.map +1 -1
  15. package/src/plugins/coinmarketcap/constants.d.ts +3 -9
  16. package/src/plugins/coinmarketcap/constants.js +20 -4
  17. package/src/plugins/coinmarketcap/constants.js.map +1 -1
  18. package/src/plugins/coinmarketcap/pricingJob.js +7 -5
  19. package/src/plugins/coinmarketcap/pricingJob.js.map +1 -1
  20. package/src/plugins/coinmarketcap/types.d.ts +21 -0
  21. package/src/plugins/coinmarketcap/types.js +3 -0
  22. package/src/plugins/coinmarketcap/types.js.map +1 -0
  23. package/src/plugins/flowx/stakingPoolV3Fetcher.js +12 -44
  24. package/src/plugins/flowx/stakingPoolV3Fetcher.js.map +1 -1
  25. package/src/plugins/kriya/clmmsFetcher.js +19 -22
  26. package/src/plugins/kriya/clmmsFetcher.js.map +1 -1
  27. package/src/plugins/kriya/constants.d.ts +3 -0
  28. package/src/plugins/kriya/constants.js +4 -1
  29. package/src/plugins/kriya/constants.js.map +1 -1
  30. package/src/plugins/kriya/index.js +7 -1
  31. package/src/plugins/kriya/index.js.map +1 -1
  32. package/src/plugins/kriya/poolsStatsJob.d.ts +3 -0
  33. package/src/plugins/kriya/poolsStatsJob.js +46 -0
  34. package/src/plugins/kriya/poolsStatsJob.js.map +1 -0
  35. package/src/plugins/kriya/types/pools.d.ts +8 -0
  36. package/src/plugins/orca/getWhirlpoolPositions.js +49 -107
  37. package/src/plugins/orca/getWhirlpoolPositions.js.map +1 -1
  38. package/src/plugins/orca/index.js +2 -1
  39. package/src/plugins/orca/index.js.map +1 -1
  40. package/src/plugins/orca/types.d.ts +6 -0
  41. package/src/plugins/orca/types.js +3 -0
  42. package/src/plugins/orca/types.js.map +1 -0
  43. package/src/plugins/orca/whirlpoolsStatsJob.d.ts +3 -0
  44. package/src/plugins/orca/whirlpoolsStatsJob.js +51 -0
  45. package/src/plugins/orca/whirlpoolsStatsJob.js.map +1 -0
  46. package/src/plugins/raydium/getRaydiumCLMMPositions.js +32 -91
  47. package/src/plugins/raydium/getRaydiumCLMMPositions.js.map +1 -1
  48. package/src/plugins/turbos/clmmVaultFetcher.js +13 -51
  49. package/src/plugins/turbos/clmmVaultFetcher.js.map +1 -1
  50. package/src/plugins/turbos/clmmsPositionsFetcher.js +11 -48
  51. package/src/plugins/turbos/clmmsPositionsFetcher.js.map +1 -1
  52. package/src/utils/clmm/estPositionAPRWithDeltaMethod.d.ts +6 -0
  53. package/src/utils/clmm/estPositionAPRWithDeltaMethod.js +72 -0
  54. package/src/utils/clmm/estPositionAPRWithDeltaMethod.js.map +1 -0
  55. package/src/utils/elementbuilder/AssetBuilder.js +3 -3
  56. package/src/utils/elementbuilder/AssetBuilder.js.map +1 -1
  57. package/src/utils/elementbuilder/ConcentratedLiquidityParams.d.ts +16 -0
  58. package/src/utils/elementbuilder/ConcentratedLiquidityParams.js +3 -0
  59. package/src/utils/elementbuilder/ConcentratedLiquidityParams.js.map +1 -0
  60. package/src/utils/elementbuilder/ElementConcentratedLiquidityBuilder.d.ts +13 -0
  61. package/src/utils/elementbuilder/ElementConcentratedLiquidityBuilder.js +71 -0
  62. package/src/utils/elementbuilder/ElementConcentratedLiquidityBuilder.js.map +1 -0
  63. package/src/utils/elementbuilder/ElementRegistry.d.ts +5 -1
  64. package/src/utils/elementbuilder/ElementRegistry.js +10 -4
  65. package/src/utils/elementbuilder/ElementRegistry.js.map +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [0.14.46](https://github.com/sonarwatch/portfolio/compare/plugins-0.14.45...plugins-0.14.46) (2024-11-28)
6
+
7
+
8
+
9
+ ## [0.14.45](https://github.com/sonarwatch/portfolio/compare/plugins-0.14.44...plugins-0.14.45) (2024-11-25)
10
+
11
+
12
+
5
13
  ## [0.14.44](https://github.com/sonarwatch/portfolio/compare/plugins-0.14.43...plugins-0.14.44) (2024-11-22)
6
14
 
7
15
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-plugins",
3
- "version": "0.14.44",
3
+ "version": "0.14.46",
4
4
  "type": "commonjs",
5
5
  "types": "./src/index.d.ts",
6
6
  "peerDependencies": {
@@ -8,16 +8,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
17
13
  const constants_1 = require("./constants");
18
14
  const clients_1 = require("../../utils/clients");
19
15
  const helpers_1 = require("./helpers");
20
- const tokenAmountFromLiquidity_1 = require("../../utils/clmm/tokenAmountFromLiquidity");
21
16
  const getOwnedObjects_1 = require("../../utils/sui/getOwnedObjects");
22
17
  const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
23
18
  const getPools_1 = require("./getPools");
@@ -86,19 +81,18 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
86
81
  return;
87
82
  const fees = allFees[i];
88
83
  const rewards = allRewards[i];
89
- const { tokenAmountA, tokenAmountB } = (0, tokenAmountFromLiquidity_1.getTokenAmountsFromLiquidity)(new bignumber_js_1.default(clmmPosition.liquidity), pool.current_tick_index, clmmPosition.tick_lower_index, clmmPosition.tick_upper_index, false);
90
- const element = elementRegistry.addElementLiquidity({
91
- label: 'LiquidityPool',
92
- tags: ['Concentrated'],
93
- });
94
- const liquidity = element.addLiquidity();
95
- liquidity.addAsset({
96
- address: pool.coinTypeA,
97
- amount: tokenAmountA,
98
- });
99
- liquidity.addAsset({
100
- address: pool.coinTypeB,
101
- amount: tokenAmountB,
84
+ const element = elementRegistry.addElementConcentratedLiquidity();
85
+ const liquidity = element.setLiquidity({
86
+ addressA: pool.coinTypeA,
87
+ addressB: pool.coinTypeB,
88
+ liquidity: clmmPosition.liquidity,
89
+ tickCurrentIndex: pool.current_tick_index,
90
+ tickLowerIndex: clmmPosition.tick_lower_index,
91
+ tickUpperIndex: clmmPosition.tick_upper_index,
92
+ poolLiquidity: pool.liquidity,
93
+ currentSqrtPrice: pool.current_sqrt_price,
94
+ feeRate: Number(pool.fee_rate) / 10000,
95
+ swapVolume24h: pool.vol_in_usd_24h,
102
96
  });
103
97
  liquidity.addRewardAsset({
104
98
  address: pool.coinTypeA,
@@ -114,8 +108,6 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
114
108
  amount: rewarderAmountOwed.amount_owed,
115
109
  });
116
110
  });
117
- if (tokenAmountA.isZero() || tokenAmountB.isZero())
118
- element.addTag('Out Of Range');
119
111
  });
120
112
  return elementRegistry.getElements(cache);
121
113
  });
@@ -1 +1 @@
1
- {"version":3,"file":"clmmsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/clmmsFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clmmsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/clmmsFetcher.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { Pool } from './types';
1
+ import { Pool, PoolStat } from './types';
2
2
  import { Cache } from '../../Cache';
3
- export declare const getPools: (poolIds: string[], cache: Cache) => Promise<(Pool | null)[]>;
3
+ export declare const getPools: (poolIds: string[], cache: Cache) => Promise<((Pool & PoolStat) | null)[]>;
@@ -20,27 +20,40 @@ const helpers_1 = require("./helpers");
20
20
  const getPools = (poolIds, cache) => __awaiter(void 0, void 0, void 0, function* () {
21
21
  var _a;
22
22
  const pools = [];
23
- const cachedPools = yield cache.getItems(poolIds, {
24
- prefix: constants_1.clmmPoolsPrefix,
25
- networkId: portfolio_core_1.NetworkId.sui,
26
- });
23
+ const [cachedPools, cachedPoolsStats] = yield Promise.all([
24
+ cache.getItems(poolIds, {
25
+ prefix: constants_1.clmmPoolsPrefix,
26
+ networkId: portfolio_core_1.NetworkId.sui,
27
+ }),
28
+ cache.getItems(poolIds, {
29
+ prefix: `${constants_1.clmmPoolsPrefix}-stats`,
30
+ networkId: portfolio_core_1.NetworkId.sui,
31
+ }),
32
+ ]);
27
33
  const client = (0, clients_1.getClientSui)();
28
34
  for (const poolId of poolIds) {
29
35
  const i = poolIds.indexOf(poolId);
30
36
  const cachedPool = cachedPools[i];
37
+ const cachedPoolStat = cachedPoolsStats[i];
38
+ let pool;
31
39
  if (cachedPool) {
32
- pools.push(cachedPool);
40
+ pool = cachedPool;
33
41
  }
34
42
  else {
35
43
  const poolObject = yield (0, getObject_1.getObject)(client, poolId);
36
- const pool = (0, helpers_1.getPoolFromObject)(poolObject);
44
+ pool = (0, helpers_1.getPoolFromObject)(poolObject);
37
45
  if (((_a = poolObject.data) === null || _a === void 0 ? void 0 : _a.objectId) !== poolId || !pool) {
38
- pools.push(null);
46
+ pool = null;
39
47
  }
40
48
  yield cache.setItem(poolId, pool, {
41
49
  prefix: constants_1.clmmPoolsPrefix,
42
50
  networkId: portfolio_core_1.NetworkId.sui,
43
51
  });
52
+ }
53
+ if (pool && cachedPoolStat) {
54
+ pools.push(Object.assign(Object.assign({}, pool), cachedPoolStat));
55
+ }
56
+ else {
44
57
  pools.push(pool);
45
58
  }
46
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getPools.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/getPools.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAAuD;AAEvD,2CAA8C;AAE9C,iDAAmD;AACnD,yDAAsD;AACtD,uCAA8C;AAE9C,4CAA4C;AAC5C,sDAAsD;AAC/C,MAAM,QAAQ,GAAG,CACtB,OAAiB,EACjB,KAAY,EACc,EAAE;;IAC5B,MAAM,KAAK,GAAG,EAAE,CAAC;IAEjB,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAO,OAAO,EAAE;QACtD,MAAM,EAAE,2BAAe;QACvB,SAAS,EAAE,0BAAS,CAAC,GAAG;KACzB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,sBAAY,GAAE,CAAC;IAE9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,MAAM,IAAA,qBAAS,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,IAAA,2BAAiB,EAAC,UAAU,CAAC,CAAC;YAE3C,IAAI,CAAA,MAAA,UAAU,CAAC,IAAI,0CAAE,QAAQ,MAAK,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;YAED,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE;gBAChC,MAAM,EAAE,2BAAe;gBACvB,SAAS,EAAE,0BAAS,CAAC,GAAG;aACzB,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAA,CAAC;AAnCW,QAAA,QAAQ,YAmCnB"}
1
+ {"version":3,"file":"getPools.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/getPools.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAAuD;AAEvD,2CAA8C;AAE9C,iDAAmD;AACnD,yDAAsD;AACtD,uCAA8C;AAE9C,4CAA4C;AAC5C,sDAAsD;AAC/C,MAAM,QAAQ,GAAG,CACtB,OAAiB,EACjB,KAAY,EAC2B,EAAE;;IACzC,MAAM,KAAK,GAAG,EAAE,CAAC;IAEjB,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxD,KAAK,CAAC,QAAQ,CAAO,OAAO,EAAE;YAC5B,MAAM,EAAE,2BAAe;YACvB,SAAS,EAAE,0BAAS,CAAC,GAAG;SACzB,CAAC;QACF,KAAK,CAAC,QAAQ,CAAW,OAAO,EAAE;YAChC,MAAM,EAAE,GAAG,2BAAe,QAAQ;YAClC,SAAS,EAAE,0BAAS,CAAC,GAAG;SACzB,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,sBAAY,GAAE,CAAC;IAE9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAE3C,IAAI,IAAI,CAAC;QAET,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,GAAG,UAAU,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,MAAM,IAAA,qBAAS,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACnD,IAAI,GAAG,IAAA,2BAAiB,EAAC,UAAU,CAAC,CAAC;YAErC,IAAI,CAAA,MAAA,UAAU,CAAC,IAAI,0CAAE,QAAQ,MAAK,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClD,IAAI,GAAG,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE;gBAChC,MAAM,EAAE,2BAAe;gBACvB,SAAS,EAAE,0BAAS,CAAC,GAAG;aACzB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,IAAI,IAAI,cAAc,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,iCAAM,IAAI,GAAK,cAAc,EAAG,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAA,CAAC;AAlDW,QAAA,QAAQ,YAkDnB"}
@@ -11,8 +11,9 @@ const vaultsJob_1 = __importDefault(require("./vaultsJob"));
11
11
  const farmsFetcher_1 = __importDefault(require("./farmsFetcher"));
12
12
  const limitFetcher_1 = __importDefault(require("./limitFetcher"));
13
13
  const dcaFetcher_1 = __importDefault(require("./dcaFetcher"));
14
+ const poolsStatsJob_1 = __importDefault(require("./poolsStatsJob"));
14
15
  exports.platforms = [constants_1.platform];
15
- exports.jobs = [poolsJob_1.default, vaultsJob_1.default];
16
+ exports.jobs = [poolsJob_1.default, poolsStatsJob_1.default, vaultsJob_1.default];
16
17
  exports.fetchers = [
17
18
  clmmsFetcher_1.default,
18
19
  farmsFetcher_1.default,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/index.ts"],"names":[],"mappings":";;;;;;AAGA,0DAAkC;AAClC,kEAAiD;AACjD,2CAAuC;AACvC,4DAAoC;AACpC,kEAA0C;AAC1C,kEAA0C;AAC1C,8DAAsC;AAEzB,QAAA,SAAS,GAAe,CAAC,oBAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAU,CAAC,kBAAQ,EAAE,mBAAS,CAAC,CAAC;AACpC,QAAA,QAAQ,GAAc;IACjC,sBAAmB;IACnB,sBAAY;IACZ,sBAAY;IACZ,oBAAU;CACX,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/index.ts"],"names":[],"mappings":";;;;;;AAGA,0DAAkC;AAClC,kEAAiD;AACjD,2CAAuC;AACvC,4DAAoC;AACpC,kEAA0C;AAC1C,kEAA0C;AAC1C,8DAAsC;AACtC,oEAA4C;AAE/B,QAAA,SAAS,GAAe,CAAC,oBAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAU,CAAC,kBAAQ,EAAE,uBAAa,EAAE,mBAAS,CAAC,CAAC;AACnD,QAAA,QAAQ,GAAc;IACjC,sBAAmB;IACnB,sBAAY;IACZ,sBAAY;IACZ,oBAAU;CACX,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Job } from '../../Job';
2
+ declare const job: Job;
3
+ export default job;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
+ const axios_1 = __importDefault(require("axios"));
17
+ const constants_1 = require("./constants");
18
+ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
19
+ const apiRes = yield axios_1.default.get(`https://api-sui.cetus.zone/v2/sui/swap/count`);
20
+ const cacheItems = [];
21
+ apiRes.data.data.pools.forEach((p) => {
22
+ cacheItems.push({
23
+ key: p.swap_account,
24
+ value: {
25
+ vol_in_usd: p.vol_in_usd,
26
+ apr_24h: p.apr_24h,
27
+ apr_7day: p.apr_7day,
28
+ apr_30day: p.apr_30day,
29
+ vol_in_usd_24h: p.vol_in_usd_24h,
30
+ },
31
+ });
32
+ });
33
+ // always use getPools helper to retrieve cetus pools
34
+ yield cache.setItems(cacheItems, {
35
+ prefix: `${constants_1.clmmPoolsPrefix}-stats`,
36
+ networkId: portfolio_core_1.NetworkId.sui,
37
+ });
38
+ });
39
+ const job = {
40
+ id: `${constants_1.platformId}-pools-stats`,
41
+ executor,
42
+ label: 'normal',
43
+ };
44
+ exports.default = job;
45
+ //# sourceMappingURL=poolsStatsJob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poolsStatsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/poolsStatsJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAAuD;AACvD,kDAA6C;AAG7C,2CAA0D;AAG1D,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,MAAM,GAWP,MAAM,eAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAErE,MAAM,UAAU,GAAuC,EAAE,CAAC;IAE1D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACnC,UAAU,CAAC,IAAI,CAAC;YACd,GAAG,EAAE,CAAC,CAAC,YAAY;YACnB,KAAK,EAAE;gBACL,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,cAAc,EAAE,CAAC,CAAC,cAAc;aACjC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,MAAM,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE;QAC/B,MAAM,EAAE,GAAG,2BAAe,QAAQ;QAClC,SAAS,EAAE,0BAAS,CAAC,GAAG;KACzB,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,cAAc;IAC/B,QAAQ;IACR,KAAK,EAAE,QAAQ;CAChB,CAAC;AACF,kBAAe,GAAG,CAAC"}
@@ -34,6 +34,13 @@ export type Pool = {
34
34
  uri: string;
35
35
  name: string;
36
36
  } & PoolImmutables;
37
+ export type PoolStat = {
38
+ vol_in_usd?: string;
39
+ vol_in_usd_24h?: string;
40
+ apr_24h?: string;
41
+ apr_7day?: string;
42
+ apr_30day?: string;
43
+ };
37
44
  export type SuiStructTag = {
38
45
  full_address: string;
39
46
  source_address: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/types.ts"],"names":[],"mappings":";;;AAyDA,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,yCAAqB,CAAA;IACrB,uCAAmB,CAAA;IACnB,6CAAyB,CAAA;AAC3B,CAAC,EAJW,kBAAkB,kCAAlB,kBAAkB,QAI7B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/types.ts"],"names":[],"mappings":";;;AAiEA,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,yCAAqB,CAAA;IACrB,uCAAmB,CAAA;IACnB,6CAAyB,CAAA;AAC3B,CAAC,EAJW,kBAAkB,kCAAlB,kBAAkB,QAI7B"}
@@ -1,11 +1,5 @@
1
- import { NetworkIdType, Platform } from '@sonarwatch/portfolio-core';
1
+ import { Platform } from '@sonarwatch/portfolio-core';
2
+ import { CmcToken } from './types';
2
3
  export declare const platformId = "coinmarketcap";
3
4
  export declare const platform: Platform;
4
- export declare const cmcTokens: {
5
- slug: string;
6
- tokens: {
7
- mint: string;
8
- decimals: number;
9
- networkId: NetworkIdType;
10
- }[];
11
- }[];
5
+ export declare const cmcTokens: CmcToken[];
@@ -8,10 +8,6 @@ exports.platformId = 'coinmarketcap';
8
8
  exports.platform = {
9
9
  id: exports.platformId,
10
10
  name: 'CoinMarketCap',
11
- image: 'https://sonar.watch/img/platforms/coinmarketcap.webp',
12
- // defiLlamaId: 'pyth-network', // from https://defillama.com/docs/api
13
- website: 'https://coinmarketcap.com/',
14
- // twitter: 'https://twitter.com/PythNetwork',
15
11
  };
16
12
  exports.cmcTokens = [
17
13
  {
@@ -84,5 +80,25 @@ exports.cmcTokens = [
84
80
  },
85
81
  ],
86
82
  },
83
+ {
84
+ slug: 'bonk1',
85
+ tokens: [
86
+ {
87
+ mint: 'DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263',
88
+ decimals: 5,
89
+ networkId: portfolio_core_1.NetworkId.solana,
90
+ },
91
+ ],
92
+ },
93
+ {
94
+ slug: 'dogwifhat',
95
+ tokens: [
96
+ {
97
+ mint: 'EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm',
98
+ decimals: 6,
99
+ networkId: portfolio_core_1.NetworkId.solana,
100
+ },
101
+ ],
102
+ },
87
103
  ];
88
104
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/coinmarketcap/constants.ts"],"names":[],"mappings":";;;AAAA,+DAWoC;AACpC,yDAKmC;AACnC,+CAAwE;AAE3D,QAAA,UAAU,GAAG,eAAe,CAAC;AAC7B,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,sDAAsD;IAC7D,sEAAsE;IACtE,OAAO,EAAE,4BAA4B;IACrC,8CAA8C;CAC/C,CAAC;AAEW,QAAA,SAAS,GAGhB;IACJ;QACE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,oCAAmB;gBACzB,QAAQ,EAAE,qCAAoB;gBAC9B,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B;YACD;gBACE,IAAI,EAAE,2CAA0B;gBAChC,QAAQ,EAAE,qCAAoB;gBAC9B,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B;SACF;KACF;IACD;QACE,IAAI,EAAE,KAAK;QACX,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,iCAAgB;gBACtB,QAAQ,EAAE,kCAAiB;gBAC3B,SAAS,EAAE,0BAAS,CAAC,GAAG;aACzB;YACD;gBACE,IAAI,EAAE,eAAe;gBACrB,QAAQ,EAAE,kCAAiB;gBAC3B,SAAS,EAAE,0BAAS,CAAC,GAAG;aACzB;SACF;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,mCAAkB;gBACxB,QAAQ,EAAE,oCAAmB;gBAC7B,SAAS,EAAE,0BAAS,CAAC,KAAK;aAC3B;SACF;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,wBAAY;gBAClB,QAAQ,EAAE,4BAAgB;gBAC1B,SAAS,EAAE,0BAAS,CAAC,GAAG;aACzB;YACD;gBACE,IAAI,EAAE,uBAAW;gBACjB,QAAQ,EAAE,2BAAe;gBACzB,SAAS,EAAE,0BAAS,CAAC,GAAG;aACzB;YACD;gBACE,IAAI,EAAE,uBAAc;gBACpB,QAAQ,EAAE,2BAAkB;gBAC5B,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B;SACF;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,8CAA8C;gBACpD,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B;SACF;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/coinmarketcap/constants.ts"],"names":[],"mappings":";;;AAAA,+DAUoC;AACpC,yDAKmC;AACnC,+CAAwE;AAG3D,QAAA,UAAU,GAAG,eAAe,CAAC;AAC7B,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,eAAe;CACtB,CAAC;AAEW,QAAA,SAAS,GAAe;IACnC;QACE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,oCAAmB;gBACzB,QAAQ,EAAE,qCAAoB;gBAC9B,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B;YACD;gBACE,IAAI,EAAE,2CAA0B;gBAChC,QAAQ,EAAE,qCAAoB;gBAC9B,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B;SACF;KACF;IACD;QACE,IAAI,EAAE,KAAK;QACX,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,iCAAgB;gBACtB,QAAQ,EAAE,kCAAiB;gBAC3B,SAAS,EAAE,0BAAS,CAAC,GAAG;aACzB;YACD;gBACE,IAAI,EAAE,eAAe;gBACrB,QAAQ,EAAE,kCAAiB;gBAC3B,SAAS,EAAE,0BAAS,CAAC,GAAG;aACzB;SACF;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,mCAAkB;gBACxB,QAAQ,EAAE,oCAAmB;gBAC7B,SAAS,EAAE,0BAAS,CAAC,KAAK;aAC3B;SACF;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,wBAAY;gBAClB,QAAQ,EAAE,4BAAgB;gBAC1B,SAAS,EAAE,0BAAS,CAAC,GAAG;aACzB;YACD;gBACE,IAAI,EAAE,uBAAW;gBACjB,QAAQ,EAAE,2BAAe;gBACzB,SAAS,EAAE,0BAAS,CAAC,GAAG;aACzB;YACD;gBACE,IAAI,EAAE,uBAAc;gBACpB,QAAQ,EAAE,2BAAkB;gBAC5B,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B;SACF;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,8CAA8C;gBACpD,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B;SACF;KACF;IACD;QACE,IAAI,EAAE,OAAO;QACb,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,8CAA8C;gBACpD,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B;SACF;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,8CAA8C;gBACpD,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B;SACF;KACF;CACF,CAAC"}
@@ -16,19 +16,21 @@ const axios_1 = __importDefault(require("axios"));
16
16
  const constants_1 = require("../tokens/constants");
17
17
  const constants_2 = require("./constants");
18
18
  const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
19
+ if (!process.env['PORTFOLIO_CMC_API_KEY'])
20
+ throw Error('PORTFOLIO_CMC_API_KEY is not defined');
19
21
  const url = `https://pro-api.coinmarketcap.com/v2/cryptocurrency/quotes/latest?slug=${constants_2.cmcTokens
20
22
  .map((t) => t.slug)
21
- .join(',')}&CMC_PRO_API_KEY=${'86388059-e077-420d-8512-74496d323918'}`;
22
- const quotesRes = yield axios_1.default.get(url).catch(() => null);
23
+ .join(',')}&CMC_PRO_API_KEY=${process.env['PORTFOLIO_CMC_API_KEY']}`;
24
+ const quotesRes = yield axios_1.default.get(url);
23
25
  const sources = [];
24
- Object.values((quotesRes === null || quotesRes === void 0 ? void 0 : quotesRes.data.data) || {}).forEach((coin) => {
26
+ Object.values(quotesRes.data.data || {}).forEach((coin) => {
25
27
  const tokenConf = constants_2.cmcTokens.find((t) => t.slug === coin.slug);
26
28
  if (!tokenConf)
27
29
  return;
28
30
  tokenConf.tokens.forEach((token) => {
29
31
  sources.push({
30
32
  address: token.mint,
31
- id: `coinmarketcap-${coin.slug}`,
33
+ id: `${constants_2.platformId}-${coin.slug}`,
32
34
  decimals: token.decimals,
33
35
  networkId: token.networkId,
34
36
  platformId: constants_1.walletTokensPlatform.id,
@@ -43,7 +45,7 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
43
45
  const job = {
44
46
  id: `${constants_2.platformId}-pricing`,
45
47
  executor,
46
- label: 'realtime',
48
+ label: 'coingecko',
47
49
  };
48
50
  exports.default = job;
49
51
  //# sourceMappingURL=pricingJob.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pricingJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/coinmarketcap/pricingJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,kDAA6C;AAC7C,mDAA2D;AAG3D,2CAAoD;AAEpD,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,GAAG,GAAG,0EAA0E,qBAAS;SAC5F,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,GAAG,CAAC,oBAAoB,sCAAsC,EAAE,CAAC;IAEzE,MAAM,SAAS,GAWH,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAEnD,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,MAAM,CAAC,MAAM,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAC,IAAI,KAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACzD,MAAM,SAAS,GAAG,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACjC,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,KAAK,CAAC,IAAI;gBACnB,EAAE,EAAE,iBAAiB,IAAI,CAAC,IAAI,EAAE;gBAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,UAAU,EAAE,gCAAoB,CAAC,EAAE;gBACnC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK;gBAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,MAAM,EAAE,CAAC;aACV,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC,CAAA,CAAC;AACF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,UAAU;IAC3B,QAAQ;IACR,KAAK,EAAE,UAAU;CAClB,CAAC;AACF,kBAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"pricingJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/coinmarketcap/pricingJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,kDAA6C;AAC7C,mDAA2D;AAG3D,2CAAoD;AAGpD,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;QACvC,MAAM,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAEtD,MAAM,GAAG,GAAG,0EAA0E,qBAAS;SAC5F,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAAE,CAAC;IAEvE,MAAM,SAAS,GAA6B,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEjE,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACxD,MAAM,SAAS,GAAG,qBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACjC,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,KAAK,CAAC,IAAI;gBACnB,EAAE,EAAE,GAAG,sBAAU,IAAI,IAAI,CAAC,IAAI,EAAE;gBAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,UAAU,EAAE,gCAAoB,CAAC,EAAE;gBACnC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK;gBAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,MAAM,EAAE,CAAC;aACV,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,UAAU;IAC3B,QAAQ;IACR,KAAK,EAAE,WAAW;CACnB,CAAC;AACF,kBAAe,GAAG,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { NetworkIdType } from '@sonarwatch/portfolio-core';
2
+ export type QuotesRes = {
3
+ data: {
4
+ [key: string]: {
5
+ slug: string;
6
+ quote: {
7
+ USD: {
8
+ price: number;
9
+ };
10
+ };
11
+ };
12
+ };
13
+ };
14
+ export type CmcToken = {
15
+ slug: string;
16
+ tokens: {
17
+ mint: string;
18
+ decimals: number;
19
+ networkId: NetworkIdType;
20
+ }[];
21
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/coinmarketcap/types.ts"],"names":[],"mappings":""}
@@ -8,19 +8,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
17
13
  const constants_1 = require("./constants");
18
14
  const clients_1 = require("../../utils/clients");
19
15
  const getOwnedObjects_1 = require("../../utils/sui/getOwnedObjects");
20
- const tokenAmountFromLiquidity_1 = require("../../utils/clmm/tokenAmountFromLiquidity");
21
- const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
22
16
  const multiGetObjects_1 = require("../../utils/sui/multiGetObjects");
23
17
  const bitsToNumber_1 = require("../../utils/sui/bitsToNumber");
18
+ const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
24
19
  const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
25
20
  const client = (0, clients_1.getClientSui)();
26
21
  const positions = yield (0, getOwnedObjects_1.getOwnedObjects)(client, owner, {
@@ -41,11 +36,8 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
41
36
  if ((_f = (_e = position.data) === null || _e === void 0 ? void 0 : _e.content) === null || _f === void 0 ? void 0 : _f.fields.pool_id)
42
37
  poolsIds.add((_h = (_g = position.data) === null || _g === void 0 ? void 0 : _g.content) === null || _h === void 0 ? void 0 : _h.fields.pool_id);
43
38
  });
44
- const [tokenPrices, pools] = yield Promise.all([
45
- cache.getTokenPricesAsMap(mints, portfolio_core_1.NetworkId.sui),
46
- (0, multiGetObjects_1.multiGetObjects)(client, Array.from(poolsIds.values())),
47
- ]);
48
- const liquidities = [];
39
+ const pools = yield (0, multiGetObjects_1.multiGetObjects)(client, Array.from(poolsIds.values()));
40
+ const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.sui, constants_1.platformId);
49
41
  positions.forEach((position) => {
50
42
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
51
43
  if (!((_b = (_a = position.data) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.fields.liquidity))
@@ -55,41 +47,17 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
55
47
  const pool = pools.find((p) => { var _a, _b, _c; return ((_a = p.data) === null || _a === void 0 ? void 0 : _a.objectId) === ((_c = (_b = position.data) === null || _b === void 0 ? void 0 : _b.content) === null || _c === void 0 ? void 0 : _c.fields.pool_id); });
56
48
  if (!((_f = (_e = pool === null || pool === void 0 ? void 0 : pool.data) === null || _e === void 0 ? void 0 : _e.content) === null || _f === void 0 ? void 0 : _f.fields))
57
49
  return;
58
- const tokenPriceX = tokenPrices.get((0, portfolio_core_1.formatMoveTokenAddress)(position.data.content.fields.coin_type_x.fields.name));
59
- const tokenPriceY = tokenPrices.get((0, portfolio_core_1.formatMoveTokenAddress)(position.data.content.fields.coin_type_y.fields.name));
60
- if (!tokenPriceX || !tokenPriceY)
61
- return;
62
- const tokenAmounts = (0, tokenAmountFromLiquidity_1.getTokenAmountsFromLiquidity)(new bignumber_js_1.default((_h = (_g = position.data) === null || _g === void 0 ? void 0 : _g.content) === null || _h === void 0 ? void 0 : _h.fields.liquidity), (0, bitsToNumber_1.bitsToNumber)((_k = (_j = pool === null || pool === void 0 ? void 0 : pool.data) === null || _j === void 0 ? void 0 : _j.content) === null || _k === void 0 ? void 0 : _k.fields.tick_index.fields.bits), (0, bitsToNumber_1.bitsToNumber)((_m = (_l = position.data) === null || _l === void 0 ? void 0 : _l.content) === null || _m === void 0 ? void 0 : _m.fields.tick_lower_index.fields.bits), (0, bitsToNumber_1.bitsToNumber)((_p = (_o = position.data) === null || _o === void 0 ? void 0 : _o.content) === null || _p === void 0 ? void 0 : _p.fields.tick_upper_index.fields.bits), false);
63
- const assetX = (0, tokenPriceToAssetToken_1.default)(tokenPriceX.address, tokenAmounts.tokenAmountA
64
- .dividedBy(Math.pow(10, tokenPriceX.decimals))
65
- .toNumber(), portfolio_core_1.NetworkId.sui, tokenPriceX);
66
- const assetY = (0, tokenPriceToAssetToken_1.default)(tokenPriceY.address, tokenAmounts.tokenAmountB
67
- .dividedBy(Math.pow(10, tokenPriceY.decimals))
68
- .toNumber(), portfolio_core_1.NetworkId.sui, tokenPriceY);
69
- const value = (0, portfolio_core_1.getUsdValueSum)([assetX.value, assetY.value]);
70
- liquidities.push({
71
- assets: [assetX, assetY],
72
- assetsValue: value,
73
- rewardAssets: [],
74
- rewardAssetsValue: null,
75
- value,
76
- yields: [],
50
+ const element = elementRegistry.addElementConcentratedLiquidity();
51
+ element.setLiquidity({
52
+ addressA: position.data.content.fields.coin_type_x.fields.name,
53
+ addressB: position.data.content.fields.coin_type_y.fields.name,
54
+ liquidity: (_h = (_g = position.data) === null || _g === void 0 ? void 0 : _g.content) === null || _h === void 0 ? void 0 : _h.fields.liquidity,
55
+ tickCurrentIndex: (0, bitsToNumber_1.bitsToNumber)((_k = (_j = pool === null || pool === void 0 ? void 0 : pool.data) === null || _j === void 0 ? void 0 : _j.content) === null || _k === void 0 ? void 0 : _k.fields.tick_index.fields.bits),
56
+ tickLowerIndex: (0, bitsToNumber_1.bitsToNumber)((_m = (_l = position.data) === null || _l === void 0 ? void 0 : _l.content) === null || _m === void 0 ? void 0 : _m.fields.tick_lower_index.fields.bits),
57
+ tickUpperIndex: (0, bitsToNumber_1.bitsToNumber)((_p = (_o = position.data) === null || _o === void 0 ? void 0 : _o.content) === null || _p === void 0 ? void 0 : _p.fields.tick_upper_index.fields.bits),
77
58
  });
78
59
  });
79
- if (liquidities.length === 0)
80
- return [];
81
- return [
82
- {
83
- type: portfolio_core_1.PortfolioElementType.liquidity,
84
- networkId: portfolio_core_1.NetworkId.sui,
85
- platformId: constants_1.platformId,
86
- label: 'LiquidityPool',
87
- value: (0, portfolio_core_1.getUsdValueSum)(liquidities.map((a) => a.value)),
88
- data: {
89
- liquidities,
90
- },
91
- },
92
- ];
60
+ return elementRegistry.getElements(cache);
93
61
  });
94
62
  const fetcher = {
95
63
  id: `${constants_1.platformId}-staking-pool-v3`,
@@ -1 +1 @@
1
- {"version":3,"file":"stakingPoolV3Fetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/flowx/stakingPoolV3Fetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stakingPoolV3Fetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/flowx/stakingPoolV3Fetcher.ts"],"names":[],"mappings":"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"}
@@ -8,15 +8,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
17
13
  const constants_1 = require("./constants");
18
14
  const clients_1 = require("../../utils/clients");
19
- const tokenAmountFromLiquidity_1 = require("../../utils/clmm/tokenAmountFromLiquidity");
20
15
  const getOwnedObjects_1 = require("../../utils/sui/getOwnedObjects");
21
16
  const multiGetObjects_1 = require("../../utils/sui/multiGetObjects");
22
17
  const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
@@ -39,8 +34,12 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
39
34
  return [];
40
35
  const poolsIds = clmmPositions.map((position) => position.pool_id);
41
36
  const poolsById = new Map();
42
- const poolsObjects = yield (0, multiGetObjects_1.multiGetObjects)(client, [
43
- ...new Set(poolsIds),
37
+ const [poolsObjects, poolsStats] = yield Promise.all([
38
+ (0, multiGetObjects_1.multiGetObjects)(client, [...new Set(poolsIds)]),
39
+ cache.getItem(constants_1.farmsStatsInfoKey, {
40
+ prefix: constants_1.platformId,
41
+ networkId: portfolio_core_1.NetworkId.sui,
42
+ }),
44
43
  ]);
45
44
  poolsObjects.forEach((poolObj) => {
46
45
  var _a, _b, _c, _d;
@@ -50,25 +49,23 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
50
49
  });
51
50
  const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.sui, constants_1.platformId);
52
51
  clmmPositions.forEach((clmmPosition) => {
52
+ var _a;
53
53
  const pool = poolsById.get(clmmPosition.pool_id);
54
54
  if (!pool)
55
55
  return;
56
- const { tokenAmountA, tokenAmountB } = (0, tokenAmountFromLiquidity_1.getTokenAmountsFromLiquidity)(new bignumber_js_1.default(clmmPosition.liquidity), (0, bitsToNumber_1.bitsToNumber)(pool.tick_index.fields.bits), (0, bitsToNumber_1.bitsToNumber)(clmmPosition.tick_lower_index.fields.bits), (0, bitsToNumber_1.bitsToNumber)(clmmPosition.tick_upper_index.fields.bits), false);
57
- const element = elementRegistry.addElementLiquidity({
58
- label: 'LiquidityPool',
59
- tags: ['Concentrated'],
60
- });
61
- const liquidity = element.addLiquidity();
62
- liquidity.addAsset({
63
- address: pool.type_x.fields.name,
64
- amount: tokenAmountA,
65
- });
66
- liquidity.addAsset({
67
- address: pool.type_y.fields.name,
68
- amount: tokenAmountB,
56
+ const element = elementRegistry.addElementConcentratedLiquidity();
57
+ element.setLiquidity({
58
+ addressA: pool.type_x.fields.name,
59
+ addressB: pool.type_y.fields.name,
60
+ liquidity: clmmPosition.liquidity,
61
+ tickCurrentIndex: (0, bitsToNumber_1.bitsToNumber)(pool.tick_index.fields.bits),
62
+ tickLowerIndex: (0, bitsToNumber_1.bitsToNumber)(clmmPosition.tick_lower_index.fields.bits),
63
+ tickUpperIndex: (0, bitsToNumber_1.bitsToNumber)(clmmPosition.tick_upper_index.fields.bits),
64
+ currentSqrtPrice: pool.sqrt_price,
65
+ poolLiquidity: pool.liquidity,
66
+ feeRate: Number(pool.swap_fee_rate) / 10000,
67
+ swapVolume24h: (_a = (poolsStats || []).find((p) => p.pool_id === clmmPosition.pool_id)) === null || _a === void 0 ? void 0 : _a.volume_24h,
69
68
  });
70
- if (tokenAmountA.isZero() || tokenAmountB.isZero())
71
- element.addTag('Out Of Range');
72
69
  });
73
70
  return elementRegistry.getElements(cache);
74
71
  });
@@ -1 +1 @@
1
- {"version":3,"file":"clmmsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/kriya/clmmsFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clmmsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/kriya/clmmsFetcher.ts"],"names":[],"mappings":"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"}