@sonarwatch/portfolio-plugins 0.14.45 → 0.14.47

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 (80) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/package.json +1 -1
  3. package/src/plugins/bluefin/clmmsFetcher.d.ts +3 -0
  4. package/src/plugins/bluefin/clmmsFetcher.js +85 -0
  5. package/src/plugins/bluefin/clmmsFetcher.js.map +1 -0
  6. package/src/plugins/bluefin/clmmsJob.d.ts +3 -0
  7. package/src/plugins/bluefin/clmmsJob.js +45 -0
  8. package/src/plugins/bluefin/clmmsJob.js.map +1 -0
  9. package/src/plugins/bluefin/constants.d.ts +5 -0
  10. package/src/plugins/bluefin/constants.js +6 -1
  11. package/src/plugins/bluefin/constants.js.map +1 -1
  12. package/src/plugins/bluefin/helpers.d.ts +7 -0
  13. package/src/plugins/bluefin/helpers.js +65 -0
  14. package/src/plugins/bluefin/helpers.js.map +1 -0
  15. package/src/plugins/bluefin/index.js +9 -2
  16. package/src/plugins/bluefin/index.js.map +1 -1
  17. package/src/plugins/bluefin/types.d.ts +76 -0
  18. package/src/plugins/cetus/clmmsFetcher.js +12 -20
  19. package/src/plugins/cetus/clmmsFetcher.js.map +1 -1
  20. package/src/plugins/cetus/getPools.d.ts +2 -2
  21. package/src/plugins/cetus/getPools.js +20 -7
  22. package/src/plugins/cetus/getPools.js.map +1 -1
  23. package/src/plugins/cetus/index.js +2 -1
  24. package/src/plugins/cetus/index.js.map +1 -1
  25. package/src/plugins/cetus/poolsStatsJob.d.ts +3 -0
  26. package/src/plugins/cetus/poolsStatsJob.js +45 -0
  27. package/src/plugins/cetus/poolsStatsJob.js.map +1 -0
  28. package/src/plugins/cetus/types.d.ts +7 -0
  29. package/src/plugins/cetus/types.js.map +1 -1
  30. package/src/plugins/coinmarketcap/constants.d.ts +3 -9
  31. package/src/plugins/coinmarketcap/constants.js +20 -4
  32. package/src/plugins/coinmarketcap/constants.js.map +1 -1
  33. package/src/plugins/coinmarketcap/pricingJob.js +7 -5
  34. package/src/plugins/coinmarketcap/pricingJob.js.map +1 -1
  35. package/src/plugins/coinmarketcap/types.d.ts +21 -0
  36. package/src/plugins/coinmarketcap/types.js +3 -0
  37. package/src/plugins/coinmarketcap/types.js.map +1 -0
  38. package/src/plugins/flowx/stakingPoolV3Fetcher.js +12 -44
  39. package/src/plugins/flowx/stakingPoolV3Fetcher.js.map +1 -1
  40. package/src/plugins/kriya/clmmsFetcher.js +19 -22
  41. package/src/plugins/kriya/clmmsFetcher.js.map +1 -1
  42. package/src/plugins/kriya/constants.d.ts +3 -0
  43. package/src/plugins/kriya/constants.js +4 -1
  44. package/src/plugins/kriya/constants.js.map +1 -1
  45. package/src/plugins/kriya/index.js +7 -1
  46. package/src/plugins/kriya/index.js.map +1 -1
  47. package/src/plugins/kriya/poolsStatsJob.d.ts +3 -0
  48. package/src/plugins/kriya/poolsStatsJob.js +46 -0
  49. package/src/plugins/kriya/poolsStatsJob.js.map +1 -0
  50. package/src/plugins/kriya/types/pools.d.ts +8 -0
  51. package/src/plugins/orca/getWhirlpoolPositions.js +49 -107
  52. package/src/plugins/orca/getWhirlpoolPositions.js.map +1 -1
  53. package/src/plugins/orca/index.js +2 -1
  54. package/src/plugins/orca/index.js.map +1 -1
  55. package/src/plugins/orca/types.d.ts +6 -0
  56. package/src/plugins/orca/types.js +3 -0
  57. package/src/plugins/orca/types.js.map +1 -0
  58. package/src/plugins/orca/whirlpoolsStatsJob.d.ts +3 -0
  59. package/src/plugins/orca/whirlpoolsStatsJob.js +51 -0
  60. package/src/plugins/orca/whirlpoolsStatsJob.js.map +1 -0
  61. package/src/plugins/raydium/getRaydiumCLMMPositions.js +32 -91
  62. package/src/plugins/raydium/getRaydiumCLMMPositions.js.map +1 -1
  63. package/src/plugins/turbos/clmmVaultFetcher.js +13 -51
  64. package/src/plugins/turbos/clmmVaultFetcher.js.map +1 -1
  65. package/src/plugins/turbos/clmmsPositionsFetcher.js +11 -48
  66. package/src/plugins/turbos/clmmsPositionsFetcher.js.map +1 -1
  67. package/src/utils/clmm/estPositionAPRWithDeltaMethod.d.ts +6 -0
  68. package/src/utils/clmm/estPositionAPRWithDeltaMethod.js +72 -0
  69. package/src/utils/clmm/estPositionAPRWithDeltaMethod.js.map +1 -0
  70. package/src/utils/elementbuilder/AssetBuilder.js +3 -3
  71. package/src/utils/elementbuilder/AssetBuilder.js.map +1 -1
  72. package/src/utils/elementbuilder/ConcentratedLiquidityParams.d.ts +16 -0
  73. package/src/utils/elementbuilder/ConcentratedLiquidityParams.js +3 -0
  74. package/src/utils/elementbuilder/ConcentratedLiquidityParams.js.map +1 -0
  75. package/src/utils/elementbuilder/ElementConcentratedLiquidityBuilder.d.ts +13 -0
  76. package/src/utils/elementbuilder/ElementConcentratedLiquidityBuilder.js +71 -0
  77. package/src/utils/elementbuilder/ElementConcentratedLiquidityBuilder.js.map +1 -0
  78. package/src/utils/elementbuilder/ElementRegistry.d.ts +5 -1
  79. package/src/utils/elementbuilder/ElementRegistry.js +10 -4
  80. 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.47](https://github.com/sonarwatch/portfolio/compare/plugins-0.14.46...plugins-0.14.47) (2024-11-28)
6
+
7
+
8
+
9
+ ## [0.14.46](https://github.com/sonarwatch/portfolio/compare/plugins-0.14.45...plugins-0.14.46) (2024-11-28)
10
+
11
+
12
+
5
13
  ## [0.14.45](https://github.com/sonarwatch/portfolio/compare/plugins-0.14.44...plugins-0.14.45) (2024-11-25)
6
14
 
7
15
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-plugins",
3
- "version": "0.14.45",
3
+ "version": "0.14.47",
4
4
  "type": "commonjs",
5
5
  "types": "./src/index.d.ts",
6
6
  "peerDependencies": {
@@ -0,0 +1,3 @@
1
+ import { Fetcher } from '../../Fetcher';
2
+ declare const fetcher: Fetcher;
3
+ export default fetcher;
@@ -0,0 +1,85 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
13
+ const constants_1 = require("./constants");
14
+ const clients_1 = require("../../utils/clients");
15
+ const getOwnedObjects_1 = require("../../utils/sui/getOwnedObjects");
16
+ const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
17
+ const bitsToNumber_1 = require("../../utils/sui/bitsToNumber");
18
+ const MemoizedCache_1 = require("../../utils/misc/MemoizedCache");
19
+ const helpers_1 = require("./helpers");
20
+ const poolsMemo = new MemoizedCache_1.MemoizedCache(constants_1.clmmsPoolsKey, {
21
+ prefix: constants_1.platformId,
22
+ networkId: portfolio_core_1.NetworkId.sui,
23
+ });
24
+ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
25
+ var _a, _b, _c, _d, _e;
26
+ const client = (0, clients_1.getClientSui)();
27
+ const objects = yield (0, getOwnedObjects_1.getOwnedObjects)(client, owner, {
28
+ filter: {
29
+ StructType: constants_1.clmmPoolPositionType,
30
+ },
31
+ });
32
+ if (objects.length === 0)
33
+ return [];
34
+ const pools = yield poolsMemo.getItem(cache);
35
+ if (!pools)
36
+ return [];
37
+ const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.sui, constants_1.platformId);
38
+ for (const clmmPosition of objects) {
39
+ if (!((_a = clmmPosition.data) === null || _a === void 0 ? void 0 : _a.content))
40
+ continue;
41
+ const pool = pools.find((p) => {
42
+ var _a, _b, _c, _d;
43
+ return ((_b = (_a = p === null || p === void 0 ? void 0 : p.data) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.fields.id.id) ===
44
+ ((_d = (_c = clmmPosition.data) === null || _c === void 0 ? void 0 : _c.content) === null || _d === void 0 ? void 0 : _d.fields.pool_id);
45
+ });
46
+ if (!pool || !((_b = pool.data) === null || _b === void 0 ? void 0 : _b.content))
47
+ continue;
48
+ const feesAndRewards = yield (0, helpers_1.getAccruedFeeAndRewards)(clmmPosition.data.content.fields.coin_type_a, clmmPosition.data.content.fields.coin_type_b, pool.data.content.fields.id.id, clmmPosition.data.content.fields.id.id, pool.data.content.fields.reward_infos.map((r) => r.fields.reward_coin_type), owner);
49
+ const element = elementRegistry.addElementConcentratedLiquidity();
50
+ const liquidity = element.setLiquidity({
51
+ addressA: clmmPosition.data.content.fields.coin_type_a,
52
+ addressB: clmmPosition.data.content.fields.coin_type_b,
53
+ liquidity: clmmPosition.data.content.fields.liquidity,
54
+ tickCurrentIndex: (0, bitsToNumber_1.bitsToNumber)(pool.data.content.fields.current_tick_index.fields.bits),
55
+ tickLowerIndex: (0, bitsToNumber_1.bitsToNumber)(clmmPosition.data.content.fields.lower_tick.fields.bits),
56
+ tickUpperIndex: (0, bitsToNumber_1.bitsToNumber)(clmmPosition.data.content.fields.upper_tick.fields.bits),
57
+ currentSqrtPrice: pool.data.content.fields.current_sqrt_price,
58
+ poolLiquidity: pool.data.content.fields.liquidity,
59
+ feeRate: Number(pool.data.content.fields.fee_rate) / 10000,
60
+ swapVolume24h: (_c = pool.stats) === null || _c === void 0 ? void 0 : _c.day.volume,
61
+ });
62
+ liquidity.addRewardAsset({
63
+ address: clmmPosition.data.content.fields.coin_type_a,
64
+ amount: (_d = feesAndRewards === null || feesAndRewards === void 0 ? void 0 : feesAndRewards.fee) === null || _d === void 0 ? void 0 : _d.coinA,
65
+ });
66
+ liquidity.addRewardAsset({
67
+ address: clmmPosition.data.content.fields.coin_type_b,
68
+ amount: (_e = feesAndRewards === null || feesAndRewards === void 0 ? void 0 : feesAndRewards.fee) === null || _e === void 0 ? void 0 : _e.coinB,
69
+ });
70
+ pool.data.content.fields.reward_infos.forEach((reward, i) => {
71
+ liquidity.addRewardAsset({
72
+ address: reward.fields.reward_coin_type,
73
+ amount: feesAndRewards === null || feesAndRewards === void 0 ? void 0 : feesAndRewards.rewards[i],
74
+ });
75
+ });
76
+ }
77
+ return elementRegistry.getElements(cache);
78
+ });
79
+ const fetcher = {
80
+ id: `${constants_1.platformId}-clmms`,
81
+ networkId: portfolio_core_1.NetworkId.sui,
82
+ executor,
83
+ };
84
+ exports.default = fetcher;
85
+ //# sourceMappingURL=clmmsFetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clmmsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/bluefin/clmmsFetcher.ts"],"names":[],"mappings":"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"}
@@ -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 clients_1 = require("../../utils/clients");
19
+ const queryEventsSafe_1 = require("../../utils/sui/queryEventsSafe");
20
+ const multiGetObjects_1 = require("../../utils/sui/multiGetObjects");
21
+ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
22
+ const client = (0, clients_1.getClientSui)();
23
+ const poolCreatedEvents = yield (0, queryEventsSafe_1.queryEventsSafe)(client, {
24
+ MoveEventType: constants_1.clmmPoolCreatedEventType,
25
+ });
26
+ const poolIds = poolCreatedEvents.map((e) => { var _a; return (_a = e.parsedJson) === null || _a === void 0 ? void 0 : _a.id; });
27
+ const [pools, apiRes] = yield Promise.all([
28
+ (0, multiGetObjects_1.multiGetObjects)(client, poolIds),
29
+ axios_1.default.get(constants_1.clmmPoolsApiUrl).catch(() => null), // fail silently
30
+ ]);
31
+ yield cache.setItem(constants_1.clmmsPoolsKey, pools.map((p) => {
32
+ const poolStat = apiRes === null || apiRes === void 0 ? void 0 : apiRes.data.find((s) => { var _a; return ((_a = p.data) === null || _a === void 0 ? void 0 : _a.content) && s.address === p.data.content.fields.id.id; });
33
+ return Object.assign(Object.assign({}, p), { stats: Object.assign({}, poolStat) });
34
+ }), {
35
+ prefix: constants_1.platformId,
36
+ networkId: portfolio_core_1.NetworkId.sui,
37
+ });
38
+ });
39
+ const job = {
40
+ id: `${constants_1.platformId}-clmms`,
41
+ executor,
42
+ label: 'normal',
43
+ };
44
+ exports.default = job;
45
+ //# sourceMappingURL=clmmsJob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clmmsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/bluefin/clmmsJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAAuD;AACvD,kDAA0B;AAG1B,2CAKqB;AACrB,iDAAmD;AAEnD,qEAAkE;AAClE,qEAAkE;AAElE,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,IAAA,sBAAY,GAAE,CAAC;IAE9B,MAAM,iBAAiB,GAAG,MAAM,IAAA,iCAAe,EAE5C,MAAM,EAAE;QACT,aAAa,EAAE,oCAAwB;KACxC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,UAAU,0CAAE,EAAE,CAAA,EAAA,CAAa,CAAC;IAE3E,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxC,IAAA,iCAAe,EAAW,MAAM,EAAE,OAAO,CAAC;QAC1C,eAAK,CAAC,GAAG,CAAiB,2BAAe,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,gBAAgB;KAC/E,CAAC,CAAC;IAEH,MAAM,KAAK,CAAC,OAAO,CACjB,yBAAa,EACb,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACd,MAAM,QAAQ,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,IAAI,CAChC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,IAAI,0CAAE,OAAO,KAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAA,EAAA,CACpE,CAAC;QACF,uCAAY,CAAC,KAAE,KAAK,oBAAO,QAAQ,KAAK;IAC1C,CAAC,CAAC,EACF;QACE,MAAM,EAAE,sBAAU;QAClB,SAAS,EAAE,0BAAS,CAAC,GAAG;KACzB,CACF,CAAC;AACJ,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,QAAQ;IACzB,QAAQ;IACR,KAAK,EAAE,QAAQ;CAChB,CAAC;AAEF,kBAAe,GAAG,CAAC"}
@@ -6,3 +6,8 @@ export declare const bankObjectId = "0x39c65abefaee0a18ffa0e059a0074fcc9910216fa
6
6
  export declare const poolKey = "pool";
7
7
  export declare const perpetualIdsKey = "perpetualIdsKey";
8
8
  export declare const metaUrl = "https://dapi.api.sui-prod.bluefin.io/meta";
9
+ export declare const clmmsPoolsKey = "clmms-pools";
10
+ export declare const clmmPoolCreatedEventType = "0x3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::events::PoolCreated";
11
+ export declare const clmmPoolsApiUrl = "https://swap.api.sui-prod.bluefin.io/api/v1/pools/info";
12
+ export declare const clmmPoolPositionType = "0x3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::position::Position";
13
+ export declare const clmmPackage = "0xa31282fc0a0ad50cf5f20908cfbb1539a143f5a38912eb8823a8dd6cbf98bc44";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.metaUrl = exports.perpetualIdsKey = exports.poolKey = exports.bankObjectId = exports.aquaVault = exports.platform = exports.platformId = void 0;
3
+ exports.clmmPackage = exports.clmmPoolPositionType = exports.clmmPoolsApiUrl = exports.clmmPoolCreatedEventType = exports.clmmsPoolsKey = exports.metaUrl = exports.perpetualIdsKey = exports.poolKey = exports.bankObjectId = exports.aquaVault = exports.platform = exports.platformId = void 0;
4
4
  exports.platformId = 'bluefin';
5
5
  exports.platform = {
6
6
  id: exports.platformId,
@@ -15,4 +15,9 @@ exports.bankObjectId = '0x39c65abefaee0a18ffa0e059a0074fcc9910216fa1a3550aa32c2e
15
15
  exports.poolKey = 'pool';
16
16
  exports.perpetualIdsKey = 'perpetualIdsKey';
17
17
  exports.metaUrl = 'https://dapi.api.sui-prod.bluefin.io/meta';
18
+ exports.clmmsPoolsKey = 'clmms-pools';
19
+ exports.clmmPoolCreatedEventType = `0x3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::events::PoolCreated`;
20
+ exports.clmmPoolsApiUrl = `https://swap.api.sui-prod.bluefin.io/api/v1/pools/info`;
21
+ exports.clmmPoolPositionType = '0x3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::position::Position';
22
+ exports.clmmPackage = '0xa31282fc0a0ad50cf5f20908cfbb1539a143f5a38912eb8823a8dd6cbf98bc44';
18
23
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/bluefin/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG,SAAS,CAAC;AACvB,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,gDAAgD;IACvD,WAAW,EAAE,SAAS,EAAE,sCAAsC;IAC9D,OAAO,EAAE,2BAA2B;IACpC,OAAO,EAAE,0BAA0B;CACpC,CAAC;AAEW,QAAA,SAAS,GACpB,oEAAoE,CAAC;AAE1D,QAAA,YAAY,GACvB,oEAAoE,CAAC;AAE1D,QAAA,OAAO,GAAG,MAAM,CAAC;AACjB,QAAA,eAAe,GAAG,iBAAiB,CAAC;AAEpC,QAAA,OAAO,GAAG,2CAA2C,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/bluefin/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG,SAAS,CAAC;AACvB,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,gDAAgD;IACvD,WAAW,EAAE,SAAS,EAAE,sCAAsC;IAC9D,OAAO,EAAE,2BAA2B;IACpC,OAAO,EAAE,0BAA0B;CACpC,CAAC;AAEW,QAAA,SAAS,GACpB,oEAAoE,CAAC;AAE1D,QAAA,YAAY,GACvB,oEAAoE,CAAC;AAE1D,QAAA,OAAO,GAAG,MAAM,CAAC;AACjB,QAAA,eAAe,GAAG,iBAAiB,CAAC;AAEpC,QAAA,OAAO,GAAG,2CAA2C,CAAC;AAEtD,QAAA,aAAa,GAAG,aAAa,CAAC;AAC9B,QAAA,wBAAwB,GAAG,yFAAyF,CAAC;AACrH,QAAA,eAAe,GAAG,wDAAwD,CAAC;AAC3E,QAAA,oBAAoB,GAC/B,wFAAwF,CAAC;AAC9E,QAAA,WAAW,GACtB,oEAAoE,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const getAccruedFeeAndRewards: (coinA: string, coinB: string, poolId: string, positionId: string, rewards: string[], owner: string) => Promise<{
2
+ rewards: any[];
3
+ fee: {
4
+ coinA: any;
5
+ coinB: any;
6
+ };
7
+ } | null>;
@@ -0,0 +1,65 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getAccruedFeeAndRewards = void 0;
13
+ const transactions_1 = require("@mysten/sui/transactions");
14
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
15
+ const clients_1 = require("../../utils/clients");
16
+ const helpers_1 = require("../mole/helpers");
17
+ const constants_1 = require("./constants");
18
+ const getAccruedFeeAndRewards = (coinA, coinB, poolId, positionId, rewards, owner) => __awaiter(void 0, void 0, void 0, function* () {
19
+ const tx = new transactions_1.Transaction();
20
+ rewards.forEach((reward) => {
21
+ tx.moveCall({
22
+ arguments: [
23
+ tx.object(portfolio_core_1.suiClockAddress),
24
+ tx.object(poolId),
25
+ tx.object(positionId),
26
+ ],
27
+ target: `${constants_1.clmmPackage}::pool::get_accrued_rewards`,
28
+ typeArguments: [coinA, coinB, reward],
29
+ });
30
+ });
31
+ tx.moveCall({
32
+ arguments: [
33
+ tx.object(portfolio_core_1.suiClockAddress),
34
+ tx.object(poolId),
35
+ tx.object(positionId),
36
+ ],
37
+ target: `${constants_1.clmmPackage}::pool::get_accrued_fee`,
38
+ typeArguments: [coinA, coinB],
39
+ });
40
+ const simulateRes = yield (0, clients_1.getClientSui)().devInspectTransactionBlock({
41
+ transactionBlock: tx,
42
+ sender: owner,
43
+ });
44
+ if (!simulateRes.results)
45
+ return null;
46
+ const { returnValues } = simulateRes.results[simulateRes.results.length - 1];
47
+ if (!returnValues)
48
+ return null;
49
+ return {
50
+ rewards: rewards.map((reward, i) => {
51
+ if (!simulateRes.results)
52
+ return null;
53
+ const { returnValues: rewardReturnValues } = simulateRes.results[i];
54
+ if (!rewardReturnValues)
55
+ return null;
56
+ return (0, helpers_1.serializeReturnValue)(rewardReturnValues[0]);
57
+ }),
58
+ fee: {
59
+ coinA: (0, helpers_1.serializeReturnValue)(returnValues[0]),
60
+ coinB: (0, helpers_1.serializeReturnValue)(returnValues[1]),
61
+ },
62
+ };
63
+ });
64
+ exports.getAccruedFeeAndRewards = getAccruedFeeAndRewards;
65
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/bluefin/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2DAAuD;AACvD,+DAA6D;AAC7D,iDAAmD;AACnD,6CAAuD;AACvD,2CAA0C;AAEnC,MAAM,uBAAuB,GAAG,CACrC,KAAa,EACb,KAAa,EACb,MAAc,EACd,UAAkB,EAClB,OAAiB,EACjB,KAAa,EACb,EAAE;IACF,MAAM,EAAE,GAAG,IAAI,0BAAW,EAAE,CAAC;IAE7B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QACzB,EAAE,CAAC,QAAQ,CAAC;YACV,SAAS,EAAE;gBACT,EAAE,CAAC,MAAM,CAAC,gCAAe,CAAC;gBAC1B,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;gBACjB,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;aACtB;YACD,MAAM,EAAE,GAAG,uBAAW,6BAA6B;YACnD,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;SACtC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,QAAQ,CAAC;QACV,SAAS,EAAE;YACT,EAAE,CAAC,MAAM,CAAC,gCAAe,CAAC;YAC1B,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;YACjB,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;SACtB;QACD,MAAM,EAAE,GAAG,uBAAW,yBAAyB;QAC/C,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;KAC9B,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,IAAA,sBAAY,GAAE,CAAC,0BAA0B,CAAC;QAClE,gBAAgB,EAAE,EAAE;QACpB,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7E,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAE/B,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,IAAI,CAAC,WAAW,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YACtC,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACpE,IAAI,CAAC,kBAAkB;gBAAE,OAAO,IAAI,CAAC;YACrC,OAAO,IAAA,8BAAoB,EAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,GAAG,EAAE;YACH,KAAK,EAAE,IAAA,8BAAoB,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5C,KAAK,EAAE,IAAA,8BAAoB,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAC7C;KACF,CAAC;AACJ,CAAC,CAAA,CAAC;AArDW,QAAA,uBAAuB,2BAqDlC"}
@@ -10,7 +10,14 @@ const poolJob_1 = __importDefault(require("./poolJob"));
10
10
  const bankFetcher_1 = __importDefault(require("./bankFetcher"));
11
11
  const positionFetcher_1 = __importDefault(require("./positionFetcher"));
12
12
  const perpsJob_1 = __importDefault(require("./perpsJob"));
13
+ const clmmsFetcher_1 = __importDefault(require("./clmmsFetcher"));
14
+ const clmmsJob_1 = __importDefault(require("./clmmsJob"));
13
15
  exports.platforms = [constants_1.platform];
14
- exports.jobs = [poolJob_1.default, perpsJob_1.default];
15
- exports.fetchers = [poolFetcher_1.default, bankFetcher_1.default, positionFetcher_1.default];
16
+ exports.jobs = [poolJob_1.default, perpsJob_1.default, clmmsJob_1.default];
17
+ exports.fetchers = [
18
+ poolFetcher_1.default,
19
+ bankFetcher_1.default,
20
+ positionFetcher_1.default,
21
+ clmmsFetcher_1.default,
22
+ ];
16
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/bluefin/index.ts"],"names":[],"mappings":";;;;;;AAGA,2CAAuC;AACvC,gEAAwC;AACxC,wDAAgC;AAChC,gEAAwC;AACxC,wEAAgD;AAChD,0DAAkC;AAErB,QAAA,SAAS,GAAe,CAAC,oBAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAU,CAAC,iBAAO,EAAE,kBAAQ,CAAC,CAAC;AAClC,QAAA,QAAQ,GAAc,CAAC,qBAAW,EAAE,qBAAW,EAAE,yBAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/bluefin/index.ts"],"names":[],"mappings":";;;;;;AAGA,2CAAuC;AACvC,gEAAwC;AACxC,wDAAgC;AAChC,gEAAwC;AACxC,wEAAgD;AAChD,0DAAkC;AAClC,kEAA0C;AAC1C,0DAAkC;AAErB,QAAA,SAAS,GAAe,CAAC,oBAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAU,CAAC,iBAAO,EAAE,kBAAQ,EAAE,kBAAQ,CAAC,CAAC;AAC5C,QAAA,QAAQ,GAAc;IACjC,qBAAW;IACX,qBAAW;IACX,yBAAe;IACf,sBAAY;CACb,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { ID } from '../../utils/sui/structs/id';
1
2
  export type Vault = {
2
3
  name: string;
3
4
  users: {
@@ -86,3 +87,78 @@ export type PerpetualMeta = {
86
87
  dataType: string;
87
88
  };
88
89
  };
90
+ export type ClmmPosition = {
91
+ coin_type_a: string;
92
+ coin_type_b: string;
93
+ description: string;
94
+ fee_growth_coin_a: string;
95
+ fee_growth_coin_b: string;
96
+ fee_rate: string;
97
+ id: ID;
98
+ liquidity: string;
99
+ lower_tick: {
100
+ fields: {
101
+ bits: number;
102
+ };
103
+ type: string;
104
+ };
105
+ upper_tick: {
106
+ fields: {
107
+ bits: number;
108
+ };
109
+ type: string;
110
+ };
111
+ pool_id: string;
112
+ position_index: string;
113
+ reward_infos: {
114
+ fields: {
115
+ coins_owed_reward: string;
116
+ reward_growth_inside_last: string;
117
+ };
118
+ type: string;
119
+ }[];
120
+ token_a_fee: string;
121
+ token_b_fee: string;
122
+ };
123
+ export type ClmmPool = {
124
+ coin_a: string;
125
+ coin_b: string;
126
+ current_sqrt_price: string;
127
+ current_tick_index: {
128
+ fields: {
129
+ bits: number;
130
+ };
131
+ type: string;
132
+ };
133
+ fee_growth_global_coin_a: string;
134
+ fee_growth_global_coin_b: string;
135
+ fee_rate: string;
136
+ id: ID;
137
+ is_paused: boolean;
138
+ liquidity: string;
139
+ protocol_fee_coin_a: string;
140
+ protocol_fee_coin_b: string;
141
+ protocol_fee_share: string;
142
+ reward_infos: {
143
+ fields: {
144
+ ended_at_seconds: string;
145
+ last_update_time: string;
146
+ reward_coin_decimals: number;
147
+ reward_coin_symbol: string;
148
+ reward_coin_type: string;
149
+ reward_growth_global: string;
150
+ reward_per_seconds: string;
151
+ total_reward: string;
152
+ total_reward_allocated: string;
153
+ };
154
+ type: string;
155
+ }[];
156
+ };
157
+ export type ClmmPoolStat = {
158
+ address: string;
159
+ day: {
160
+ volume: string;
161
+ };
162
+ feeRate: string;
163
+ tvl: string;
164
+ };
@@ -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"}