@sonarwatch/portfolio-plugins 0.14.45 → 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 +4 -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
@@ -8,20 +8,16 @@ 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
  exports.getRaydiumCLMMPositions = void 0;
16
13
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
17
14
  const web3_js_1 = require("@solana/web3.js");
18
15
  const constants_1 = require("./constants");
19
- const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
20
16
  const solana_1 = require("../../utils/solana");
21
17
  const clients_1 = require("../../utils/clients");
22
18
  const clmms_1 = require("./structs/clmms");
23
- const tokenAmountFromLiquidity_1 = require("../../utils/clmm/tokenAmountFromLiquidity");
24
19
  const helpers_1 = require("./helpers");
20
+ const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
25
21
  function getRaydiumCLMMPositions(cache, nfts) {
26
22
  return __awaiter(this, void 0, void 0, function* () {
27
23
  const client = (0, clients_1.getClientSolana)();
@@ -39,36 +35,18 @@ function getRaydiumCLMMPositions(cache, nfts) {
39
35
  return [];
40
36
  const poolsIds = personalPositionsInfo.flatMap((position) => position ? position.poolId : []);
41
37
  const poolStatesInfo = yield (0, solana_1.getParsedMultipleAccountsInfo)(client, clmms_1.poolStateStruct, poolsIds);
42
- const mints = new Set();
43
- personalPositionsInfo.forEach((personalPositionInfo, index) => {
38
+ const tickArrays = yield Promise.all(personalPositionsInfo.map((personalPositionInfo, index) => {
44
39
  if (!personalPositionInfo)
45
- return;
40
+ return [];
46
41
  const poolStateInfo = poolStatesInfo[index];
47
42
  if (!poolStateInfo)
48
- return;
49
- mints.add(poolStateInfo.tokenMint0.toString());
50
- mints.add(poolStateInfo.tokenMint1.toString());
51
- poolStateInfo.rewardInfos.forEach((ri) => {
52
- if (ri.tokenMint.toString() !== '11111111111111111111111111111111') {
53
- mints.add(ri.tokenMint.toString());
54
- }
55
- });
56
- });
57
- const [tickArrays, tokenPrices] = yield Promise.all([
58
- Promise.all(personalPositionsInfo.map((personalPositionInfo, index) => {
59
- if (!personalPositionInfo)
60
- return [];
61
- const poolStateInfo = poolStatesInfo[index];
62
- if (!poolStateInfo)
63
- return [];
64
- return (0, solana_1.getParsedMultipleAccountsInfo)(client, clmms_1.tickArrayStatetruct, [
65
- (0, helpers_1.getTickArrayAddress)(constants_1.raydiumProgram.toString(), poolStateInfo.pubkey.toString(), personalPositionInfo.tickLowerIndex, poolStateInfo.tickSpacing),
66
- (0, helpers_1.getTickArrayAddress)(constants_1.raydiumProgram.toString(), poolStateInfo.pubkey.toString(), personalPositionInfo.tickUpperIndex, poolStateInfo.tickSpacing),
67
- ]);
68
- })),
69
- cache.getTokenPricesAsMap([...Array.from(mints)], portfolio_core_1.NetworkId.solana),
70
- ]);
71
- const elements = [];
43
+ return [];
44
+ return (0, solana_1.getParsedMultipleAccountsInfo)(client, clmms_1.tickArrayStatetruct, [
45
+ (0, helpers_1.getTickArrayAddress)(constants_1.raydiumProgram.toString(), poolStateInfo.pubkey.toString(), personalPositionInfo.tickLowerIndex, poolStateInfo.tickSpacing),
46
+ (0, helpers_1.getTickArrayAddress)(constants_1.raydiumProgram.toString(), poolStateInfo.pubkey.toString(), personalPositionInfo.tickUpperIndex, poolStateInfo.tickSpacing),
47
+ ]);
48
+ }));
49
+ const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.solana, constants_1.platformId);
72
50
  for (let index = 0; index < personalPositionsInfo.length; index++) {
73
51
  const poolStateInfo = poolStatesInfo[index];
74
52
  if (!poolStateInfo)
@@ -80,75 +58,38 @@ function getRaydiumCLMMPositions(cache, nfts) {
80
58
  !poolStateInfo.tokenMint1 ||
81
59
  !poolStateInfo.tickCurrent)
82
60
  continue;
83
- const { tokenAmountA, tokenAmountB } = (0, tokenAmountFromLiquidity_1.getTokenAmountsFromLiquidity)(personalPositionInfo.liquidity, poolStateInfo.tickCurrent, personalPositionInfo.tickLowerIndex, personalPositionInfo.tickUpperIndex, false);
84
- if (!tokenAmountA || !tokenAmountB)
85
- continue;
86
- const tokenPriceA = tokenPrices.get(poolStateInfo.tokenMint0.toString());
87
- const tokenPriceB = tokenPrices.get(poolStateInfo.tokenMint1.toString());
88
- if (!tokenPriceA || !tokenPriceB)
89
- continue;
90
- const assetTokenA = (0, tokenPriceToAssetToken_1.default)(tokenPriceA.address, tokenAmountA.dividedBy(Math.pow(10, tokenPriceA.decimals)).toNumber(), portfolio_core_1.NetworkId.solana, tokenPriceA);
91
- const assetTokenB = (0, tokenPriceToAssetToken_1.default)(tokenPriceB.address, tokenAmountB.dividedBy(Math.pow(10, tokenPriceB.decimals)).toNumber(), portfolio_core_1.NetworkId.solana, tokenPriceB);
92
- if (!assetTokenB ||
93
- !assetTokenA ||
94
- assetTokenB.value === null ||
95
- assetTokenA.value === null)
96
- continue;
97
- const tags = [];
98
- if (tokenAmountA.isZero() || tokenAmountB.isZero())
99
- tags.push('Out Of Range');
100
- const rewardAssets = [];
61
+ const element = elementRegistry.addElementConcentratedLiquidity();
62
+ const liquidity = element.setLiquidity({
63
+ addressA: poolStateInfo.tokenMint0,
64
+ addressB: poolStateInfo.tokenMint1,
65
+ liquidity: personalPositionInfo.liquidity,
66
+ tickCurrentIndex: poolStateInfo.tickCurrent,
67
+ tickLowerIndex: personalPositionInfo.tickLowerIndex,
68
+ tickUpperIndex: personalPositionInfo.tickUpperIndex,
69
+ });
101
70
  const feesAndRewardsBalances = (0, helpers_1.getFeesAndRewardsBalance)(personalPositionInfo, poolStateInfo, tickArrays[index]);
102
71
  if (feesAndRewardsBalances) {
103
- if (feesAndRewardsBalances.tokenFeeAmountA.isGreaterThan(0))
104
- rewardAssets.push((0, tokenPriceToAssetToken_1.default)(tokenPriceA.address, feesAndRewardsBalances.tokenFeeAmountA
105
- .dividedBy(Math.pow(10, tokenPriceA.decimals))
106
- .toNumber(), portfolio_core_1.NetworkId.solana, tokenPriceA));
107
- if (feesAndRewardsBalances.tokenFeeAmountB.isGreaterThan(0))
108
- rewardAssets.push((0, tokenPriceToAssetToken_1.default)(tokenPriceB.address, feesAndRewardsBalances.tokenFeeAmountB
109
- .dividedBy(Math.pow(10, tokenPriceB.decimals))
110
- .toNumber(), portfolio_core_1.NetworkId.solana, tokenPriceB));
72
+ liquidity.addRewardAsset({
73
+ address: poolStateInfo.tokenMint0,
74
+ amount: feesAndRewardsBalances.tokenFeeAmountA,
75
+ });
76
+ liquidity.addRewardAsset({
77
+ address: poolStateInfo.tokenMint1,
78
+ amount: feesAndRewardsBalances.tokenFeeAmountB,
79
+ });
111
80
  feesAndRewardsBalances.rewards.forEach((rewardBalance, i) => {
112
81
  if (rewardBalance.isZero() ||
113
82
  poolStateInfo.rewardInfos[i].tokenMint.toString() ===
114
83
  '11111111111111111111111111111111')
115
84
  return;
116
- const rewardTokenPrice = tokenPrices.get(poolStateInfo.rewardInfos[i].tokenMint.toString());
117
- if (!rewardTokenPrice)
118
- return;
119
- rewardAssets.push((0, tokenPriceToAssetToken_1.default)(poolStateInfo.rewardInfos[i].tokenMint.toString(), rewardBalance.dividedBy(Math.pow(10, rewardTokenPrice.decimals)).toNumber(), portfolio_core_1.NetworkId.solana, rewardTokenPrice));
85
+ liquidity.addRewardAsset({
86
+ address: poolStateInfo.rewardInfos[i].tokenMint,
87
+ amount: rewardBalance,
88
+ });
120
89
  });
121
90
  }
122
- const assets = [assetTokenA, assetTokenB];
123
- const assetsValue = (0, portfolio_core_1.getUsdValueSum)(assets.map((a) => a.value));
124
- const rewardAssetsValue = (0, portfolio_core_1.getUsdValueSum)(rewardAssets.map((a) => a.value));
125
- const value = (0, portfolio_core_1.getUsdValueSum)([...assets, ...rewardAssets].map((a) => a.value));
126
- if (!value)
127
- continue;
128
- const liquidities = [
129
- {
130
- assets,
131
- assetsValue,
132
- rewardAssets,
133
- rewardAssetsValue,
134
- value,
135
- yields: [],
136
- },
137
- ];
138
- elements.push({
139
- type: portfolio_core_1.PortfolioElementType.liquidity,
140
- networkId: portfolio_core_1.NetworkId.solana,
141
- platformId: constants_1.platformId,
142
- label: 'LiquidityPool',
143
- name: 'Concentrated',
144
- value: (0, portfolio_core_1.getUsdValueSum)(liquidities.map((a) => a.value)),
145
- data: {
146
- liquidities,
147
- },
148
- tags,
149
- });
150
91
  }
151
- return elements;
92
+ return elementRegistry.getElements(cache);
152
93
  });
153
94
  }
154
95
  exports.getRaydiumCLMMPositions = getRaydiumCLMMPositions;
@@ -1 +1 @@
1
- {"version":3,"file":"getRaydiumCLMMPositions.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/raydium/getRaydiumCLMMPositions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getRaydiumCLMMPositions.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/raydium/getRaydiumCLMMPositions.ts"],"names":[],"mappings":"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"}
@@ -8,20 +8,15 @@ 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 getOwnedObjects_1 = require("../../utils/sui/getOwnedObjects");
19
15
  const clients_1 = require("../../utils/clients");
20
16
  const multiGetObjects_1 = require("../../utils/sui/multiGetObjects");
21
- const tokenAmountFromLiquidity_1 = require("../../utils/clmm/tokenAmountFromLiquidity");
22
- const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
23
17
  const multiDynamicFieldObjects_1 = require("../../utils/sui/multiDynamicFieldObjects");
24
18
  const bitsToNumber_1 = require("../../utils/sui/bitsToNumber");
19
+ const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
25
20
  const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
26
21
  var _a;
27
22
  const client = (0, clients_1.getClientSui)();
@@ -99,18 +94,12 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
99
94
  if (vaultsInfoObj.length === 0)
100
95
  return [];
101
96
  const vaultInfoById = new Map();
102
- const coins = new Set();
103
97
  vaultsInfoObj.forEach((vault) => {
104
98
  var _a;
105
99
  if ((_a = vault.data) === null || _a === void 0 ? void 0 : _a.content) {
106
100
  vaultInfoById.set(vault.data.objectId, vault.data.content.fields);
107
- coins.add((0, portfolio_core_1.formatMoveTokenAddress)(vault.data.content.fields.value.fields.value.fields.coin_a_type_name
108
- .fields.name));
109
- coins.add((0, portfolio_core_1.formatMoveTokenAddress)(vault.data.content.fields.value.fields.value.fields.coin_b_type_name
110
- .fields.name));
111
101
  }
112
102
  });
113
- const tokenPriceById = yield cache.getTokenPricesAsMap(Array.from(coins), portfolio_core_1.NetworkId.sui);
114
103
  const clmmPositions = vaultsInfoObj
115
104
  .map((vault) => {
116
105
  var _a, _b;
@@ -127,8 +116,7 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
127
116
  return;
128
117
  clmmPositionById.set((_b = vault.data) === null || _b === void 0 ? void 0 : _b.objectId, vault.data.content.fields);
129
118
  });
130
- const assets = [];
131
- let totalLiquidityValue = 0;
119
+ const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.sui, constants_1.platformId);
132
120
  for (const vaultInfoObject of vaultsInfoObj) {
133
121
  if (!((_a = vaultInfoObject.data) === null || _a === void 0 ? void 0 : _a.content))
134
122
  continue;
@@ -137,45 +125,19 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
137
125
  const clmmPosition = clmmPositionById.get(vaultInfo.base_clmm_position_id);
138
126
  if (!pool || !clmmPosition)
139
127
  continue;
140
- const { tokenAmountA, tokenAmountB } = (0, tokenAmountFromLiquidity_1.getTokenAmountsFromLiquidity)(new bignumber_js_1.default(clmmPosition.liquidity), (0, bitsToNumber_1.bitsToNumber)(vaultInfo.base_last_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);
141
- const coinA = (0, portfolio_core_1.formatMoveTokenAddress)(vaultInfo.coin_a_type_name.fields.name);
142
- const coinB = (0, portfolio_core_1.formatMoveTokenAddress)(vaultInfo.coin_b_type_name.fields.name);
143
- const tokenPriceA = tokenPriceById.get(coinA);
144
- const tokenPriceB = tokenPriceById.get(coinB);
145
- if (!tokenPriceA || !tokenPriceB)
146
- continue;
147
- const assetTokenA = (0, tokenPriceToAssetToken_1.default)(coinA, tokenAmountA.dividedBy(Math.pow(10, tokenPriceA.decimals)).toNumber(), portfolio_core_1.NetworkId.sui, tokenPriceA);
148
- const assetTokenB = (0, tokenPriceToAssetToken_1.default)(coinB, tokenAmountB.dividedBy(Math.pow(10, tokenPriceB.decimals)).toNumber(), portfolio_core_1.NetworkId.sui, tokenPriceB);
149
- if (!assetTokenA ||
150
- !assetTokenB ||
151
- assetTokenA.value === null ||
152
- assetTokenB.value === null)
153
- continue;
154
- const value = assetTokenA.value + assetTokenB.value;
155
- assets.push({
156
- assets: [assetTokenA, assetTokenB],
157
- assetsValue: value,
158
- rewardAssets: [],
159
- rewardAssetsValue: 0,
160
- value,
161
- yields: [],
128
+ const element = elementRegistry.addElementConcentratedLiquidity({
129
+ label: 'Vault',
130
+ });
131
+ element.setLiquidity({
132
+ addressA: vaultInfo.coin_a_type_name.fields.name,
133
+ addressB: vaultInfo.coin_b_type_name.fields.name,
134
+ liquidity: clmmPosition.liquidity,
135
+ tickCurrentIndex: (0, bitsToNumber_1.bitsToNumber)(vaultInfo.base_last_tick_index.fields.bits),
136
+ tickLowerIndex: (0, bitsToNumber_1.bitsToNumber)(clmmPosition.tick_lower_index.fields.bits),
137
+ tickUpperIndex: (0, bitsToNumber_1.bitsToNumber)(clmmPosition.tick_upper_index.fields.bits),
162
138
  });
163
- totalLiquidityValue += value;
164
139
  }
165
- if (assets.length === 0)
166
- return [];
167
- return [
168
- {
169
- type: portfolio_core_1.PortfolioElementType.liquidity,
170
- networkId: portfolio_core_1.NetworkId.sui,
171
- platformId: constants_1.platformId,
172
- label: 'Vault',
173
- value: totalLiquidityValue,
174
- data: {
175
- liquidities: assets,
176
- },
177
- },
178
- ];
140
+ return elementRegistry.getElements(cache);
179
141
  });
180
142
  const fetcher = {
181
143
  id: `${constants_1.platformId}-clmm-vault`,
@@ -1 +1 @@
1
- {"version":3,"file":"clmmVaultFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/turbos/clmmVaultFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clmmVaultFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/turbos/clmmVaultFetcher.ts"],"names":[],"mappings":"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"}
@@ -8,20 +8,15 @@ 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
- const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
21
15
  const helper_1 = require("./helper");
22
16
  const getOwnedObjects_1 = require("../../utils/sui/getOwnedObjects");
23
17
  const multiGetObjects_1 = require("../../utils/sui/multiGetObjects");
24
18
  const bitsToNumber_1 = require("../../utils/sui/bitsToNumber");
19
+ const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
25
20
  const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
26
21
  var _a, _b;
27
22
  const client = (0, clients_1.getClientSui)();
@@ -70,8 +65,7 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
70
65
  showDisplay: true,
71
66
  showOwner: true,
72
67
  });
73
- const assets = [];
74
- let totalLiquidityValue = 0;
68
+ const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.sui, constants_1.platformId);
75
69
  for (let i = 0; i < clmmPositionsRes.length; i++) {
76
70
  const clmmPosition = (_b = (_a = clmmPositionsRes[i].data) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.fields;
77
71
  if (!clmmPosition)
@@ -82,49 +76,18 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
82
76
  const pool = poolsById.get(nftPosition.pool_id);
83
77
  if (!pool)
84
78
  continue;
85
- const { tokenAmountA, tokenAmountB } = (0, tokenAmountFromLiquidity_1.getTokenAmountsFromLiquidity)(new bignumber_js_1.default(clmmPosition.liquidity), (0, bitsToNumber_1.bitsToNumber)(pool.tick_current_index.fields.bits), (0, bitsToNumber_1.bitsToNumber)(clmmPosition.tick_lower_index.fields.bits), (0, bitsToNumber_1.bitsToNumber)(clmmPosition.tick_upper_index.fields.bits), false);
86
79
  // TODO : améliorer le problème du 0x000002::sui::SUI + manque de 0x
87
- const coinA = (0, helper_1.formatForNative)(`0x${nftPosition.coin_type_a.fields.name}`);
88
- const coinB = (0, helper_1.formatForNative)(`0x${nftPosition.coin_type_b.fields.name}`);
89
- const tokenPriceA = yield cache.getTokenPrice(coinA, portfolio_core_1.NetworkId.sui);
90
- if (!tokenPriceA)
91
- continue;
92
- const assetTokenA = (0, tokenPriceToAssetToken_1.default)(coinA, tokenAmountA.dividedBy(Math.pow(10, tokenPriceA.decimals)).toNumber(), portfolio_core_1.NetworkId.sui, tokenPriceA);
93
- const tokenPriceB = yield cache.getTokenPrice(coinB, portfolio_core_1.NetworkId.sui);
94
- if (!tokenPriceB)
95
- continue;
96
- const assetTokenB = (0, tokenPriceToAssetToken_1.default)(coinB, tokenAmountB.dividedBy(Math.pow(10, tokenPriceB.decimals)).toNumber(), portfolio_core_1.NetworkId.sui, tokenPriceB);
97
- if (!assetTokenA ||
98
- !assetTokenB ||
99
- assetTokenA.value === null ||
100
- assetTokenB.value === null)
101
- continue;
102
- const value = assetTokenA.value + assetTokenB.value;
103
- assets.push({
104
- assets: [assetTokenA, assetTokenB],
105
- assetsValue: value,
106
- rewardAssets: [],
107
- rewardAssetsValue: 0,
108
- value,
109
- yields: [],
80
+ const element = elementRegistry.addElementConcentratedLiquidity();
81
+ element.setLiquidity({
82
+ addressA: (0, helper_1.formatForNative)(`0x${nftPosition.coin_type_a.fields.name}`),
83
+ addressB: (0, helper_1.formatForNative)(`0x${nftPosition.coin_type_b.fields.name}`),
84
+ liquidity: clmmPosition.liquidity,
85
+ tickCurrentIndex: (0, bitsToNumber_1.bitsToNumber)(pool.tick_current_index.fields.bits),
86
+ tickLowerIndex: (0, bitsToNumber_1.bitsToNumber)(clmmPosition.tick_lower_index.fields.bits),
87
+ tickUpperIndex: (0, bitsToNumber_1.bitsToNumber)(clmmPosition.tick_upper_index.fields.bits),
110
88
  });
111
- totalLiquidityValue += value;
112
89
  }
113
- if (assets.length === 0)
114
- return [];
115
- return [
116
- {
117
- type: portfolio_core_1.PortfolioElementType.liquidity,
118
- networkId: portfolio_core_1.NetworkId.sui,
119
- platformId: constants_1.platformId,
120
- label: 'LiquidityPool',
121
- tags: ['Concentrated'],
122
- value: totalLiquidityValue,
123
- data: {
124
- liquidities: assets,
125
- },
126
- },
127
- ];
90
+ return elementRegistry.getElements(cache);
128
91
  });
129
92
  const fetcher = {
130
93
  id: `${constants_1.platformId}-clmms-positions`,
@@ -1 +1 @@
1
- {"version":3,"file":"clmmsPositionsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/turbos/clmmsPositionsFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clmmsPositionsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/turbos/clmmsPositionsFetcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import BN from 'bn.js';
2
+ import Decimal from 'decimal.js';
3
+ export type EstPosAPRResult = {
4
+ feeAPR: Decimal;
5
+ };
6
+ export declare function estPositionAPRWithDeltaMethod(currentTickIndex: number, lowerTickIndex: number, upperTickIndex: number, currentSqrtPriceX64: BN, poolLiquidity: BN, decimalsA: number, decimalsB: number, feeRate: number, amountAStr: string, amountBStr: string, swapVolumeStr: string, coinAPriceStr: string, coinBPriceStr: string): EstPosAPRResult;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.estPositionAPRWithDeltaMethod = void 0;
7
+ const decimal_js_1 = __importDefault(require("decimal.js"));
8
+ const tokenAmountFromLiquidity_1 = require("./tokenAmountFromLiquidity");
9
+ const toBN_1 = require("../misc/toBN");
10
+ const Q_64 = '18446744073709551616';
11
+ function toX64Decimal(num) {
12
+ return num.mul(decimal_js_1.default.pow(2, 64));
13
+ }
14
+ function fromX64(num) {
15
+ return new decimal_js_1.default(num.toString()).mul(decimal_js_1.default.pow(2, -64));
16
+ }
17
+ function estPositionAPRWithDeltaMethod(currentTickIndex, lowerTickIndex, upperTickIndex, currentSqrtPriceX64, poolLiquidity, decimalsA, decimalsB, feeRate, amountAStr, amountBStr, swapVolumeStr, coinAPriceStr, coinBPriceStr) {
18
+ const amountA = new decimal_js_1.default(amountAStr);
19
+ const amountB = new decimal_js_1.default(amountBStr);
20
+ const swapVolume = new decimal_js_1.default(swapVolumeStr);
21
+ const coinAPrice = new decimal_js_1.default(coinAPriceStr);
22
+ const coinBPrice = new decimal_js_1.default(coinBPriceStr);
23
+ const lowerSqrtPriceX64 = (0, toBN_1.toBN)((0, tokenAmountFromLiquidity_1.tickIndexToSqrtPriceX64)(lowerTickIndex));
24
+ const upperSqrtPriceX64 = (0, toBN_1.toBN)((0, tokenAmountFromLiquidity_1.tickIndexToSqrtPriceX64)(upperTickIndex));
25
+ const lowerSqrtPriceD = toX64Decimal(fromX64(lowerSqrtPriceX64)).round();
26
+ const upperSqrtPriceD = toX64Decimal(fromX64(upperSqrtPriceX64)).round();
27
+ const currentSqrtPriceD = toX64Decimal(fromX64(currentSqrtPriceX64)).round();
28
+ let deltaLiquidity;
29
+ const liquidityAmount0 = amountA
30
+ .mul(new decimal_js_1.default(Math.pow(10, decimalsA)))
31
+ .mul(upperSqrtPriceD.mul(lowerSqrtPriceD))
32
+ .div(Q_64)
33
+ .div(upperSqrtPriceD.sub(lowerSqrtPriceD))
34
+ .round();
35
+ const liquidityAmount1 = amountB
36
+ .mul(new decimal_js_1.default(Math.pow(10, decimalsB)))
37
+ .mul(Q_64)
38
+ .div(upperSqrtPriceD.sub(lowerSqrtPriceD))
39
+ .round();
40
+ if (currentTickIndex < lowerTickIndex) {
41
+ deltaLiquidity = liquidityAmount0;
42
+ }
43
+ else if (currentTickIndex > upperTickIndex) {
44
+ deltaLiquidity = liquidityAmount1;
45
+ }
46
+ else {
47
+ deltaLiquidity = decimal_js_1.default.min(liquidityAmount0, liquidityAmount1);
48
+ }
49
+ const deltaY = deltaLiquidity
50
+ .mul(currentSqrtPriceD.sub(lowerSqrtPriceD))
51
+ .div(Q_64);
52
+ const deltaX = deltaLiquidity
53
+ .mul(upperSqrtPriceD.sub(currentSqrtPriceD))
54
+ .div(currentSqrtPriceD.mul(upperSqrtPriceD))
55
+ .mul(Q_64);
56
+ const posValidTVL = deltaX
57
+ .div(new decimal_js_1.default(Math.pow(10, decimalsA)))
58
+ .mul(coinAPrice)
59
+ .add(deltaY.div(new decimal_js_1.default(Math.pow(10, decimalsB)).mul(coinBPrice)));
60
+ const feeAPR = deltaLiquidity.eq(new decimal_js_1.default(0))
61
+ ? new decimal_js_1.default(0)
62
+ : new decimal_js_1.default(feeRate)
63
+ .mul(swapVolume)
64
+ .mul(new decimal_js_1.default(deltaLiquidity.toString()).div(new decimal_js_1.default(poolLiquidity.toString()).add(new decimal_js_1.default(deltaLiquidity.toString()))))
65
+ .div(posValidTVL)
66
+ .mul(365);
67
+ return {
68
+ feeAPR,
69
+ };
70
+ }
71
+ exports.estPositionAPRWithDeltaMethod = estPositionAPRWithDeltaMethod;
72
+ //# sourceMappingURL=estPositionAPRWithDeltaMethod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estPositionAPRWithDeltaMethod.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/clmm/estPositionAPRWithDeltaMethod.ts"],"names":[],"mappings":"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"}
@@ -15,12 +15,12 @@ class AssetBuilder {
15
15
  this.alreadyShifted = params.alreadyShifted || false;
16
16
  }
17
17
  getUnderlyings(networkId, tokenPrices) {
18
- let amount = new bignumber_js_1.default(this.amount);
19
- if (amount.isZero())
20
- return [];
21
18
  const tokenPrice = tokenPrices.get(this.address);
22
19
  if (!tokenPrice)
23
20
  return [];
21
+ let amount = new bignumber_js_1.default(this.amount);
22
+ if (amount.isZero() && tokenPrice.underlyings)
23
+ return [];
24
24
  if (!this.alreadyShifted)
25
25
  amount = amount.dividedBy(Math.pow(10, tokenPrice.decimals));
26
26
  return (0, tokenPriceToAssetTokens_1.default)(tokenPrice.address, amount.toNumber(), networkId, tokenPrice, undefined, this.attributes);
@@ -1 +1 @@
1
- {"version":3,"file":"AssetBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/AssetBuilder.ts"],"names":[],"mappings":";;;;;;AAKA,gEAAqC;AAErC,4FAAoE;AAEpE,8FAAsE;AAEtE,MAAa,YAAY;IAMvB,YAAY,MAA4B;QACtC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC;IACvD,CAAC;IAED,cAAc,CACZ,SAAwB,EACxB,WAA0B;QAE1B,IAAI,MAAM,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,MAAM,EAAE;YAAE,OAAO,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,cAAc;YACtB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,SAAA,EAAE,EAAI,UAAU,CAAC,QAAQ,CAAA,CAAC,CAAC;QAEvD,OAAO,IAAA,iCAAuB,EAC5B,UAAU,CAAC,OAAO,EAClB,MAAM,CAAC,QAAQ,EAAE,EACjB,SAAS,EACT,UAAU,EACV,SAAS,EACT,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;IAED,GAAG,CACD,SAAwB,EACxB,WAA0B;QAE1B,IAAI,MAAM,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,MAAM,EAAE;YAAE,OAAO,IAAI,CAAC;QACjC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,cAAc;YACtB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,SAAA,EAAE,EAAI,UAAU,CAAC,QAAQ,CAAA,CAAC,CAAC;QAEvD,OAAO,IAAA,gCAAsB,EAC3B,UAAU,CAAC,OAAO,EAClB,MAAM,CAAC,QAAQ,EAAE,EACjB,SAAS,EACT,UAAU,EACV,SAAS,EACT,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;CACF;AAxDD,oCAwDC"}
1
+ {"version":3,"file":"AssetBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/AssetBuilder.ts"],"names":[],"mappings":";;;;;;AAKA,gEAAqC;AAErC,4FAAoE;AAEpE,8FAAsE;AAEtE,MAAa,YAAY;IAMvB,YAAY,MAA4B;QACtC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC;IACvD,CAAC;IAED,cAAc,CACZ,SAAwB,EACxB,WAA0B;QAE1B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAE3B,IAAI,MAAM,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAEzD,IAAI,CAAC,IAAI,CAAC,cAAc;YACtB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,SAAA,EAAE,EAAI,UAAU,CAAC,QAAQ,CAAA,CAAC,CAAC;QAEvD,OAAO,IAAA,iCAAuB,EAC5B,UAAU,CAAC,OAAO,EAClB,MAAM,CAAC,QAAQ,EAAE,EACjB,SAAS,EACT,UAAU,EACV,SAAS,EACT,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;IAED,GAAG,CACD,SAAwB,EACxB,WAA0B;QAE1B,IAAI,MAAM,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,MAAM,EAAE;YAAE,OAAO,IAAI,CAAC;QACjC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAE7B,IAAI,CAAC,IAAI,CAAC,cAAc;YACtB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,SAAA,EAAE,EAAI,UAAU,CAAC,QAAQ,CAAA,CAAC,CAAC;QAEvD,OAAO,IAAA,gCAAsB,EAC3B,UAAU,CAAC,OAAO,EAClB,MAAM,CAAC,QAAQ,EAAE,EACjB,SAAS,EACT,UAAU,EACV,SAAS,EACT,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;CACF;AA1DD,oCA0DC"}
@@ -0,0 +1,16 @@
1
+ import BigNumber from 'bignumber.js';
2
+ import { PublicKey } from '@solana/web3.js';
3
+ export type ConcentratedLiquidityParams = {
4
+ addressA: string | PublicKey;
5
+ addressB: string | PublicKey;
6
+ liquidity: number | BigNumber | string;
7
+ tickCurrentIndex: number | BigNumber | string;
8
+ tickLowerIndex: number | BigNumber | string;
9
+ tickUpperIndex: number | BigNumber | string;
10
+ currentSqrtPrice?: number | BigNumber | string;
11
+ poolLiquidity?: number | BigNumber | string;
12
+ feeRate?: number | BigNumber | string;
13
+ swapVolume24h?: number | BigNumber | string;
14
+ roundUp?: boolean;
15
+ name?: string;
16
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ConcentratedLiquidityParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcentratedLiquidityParams.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/ConcentratedLiquidityParams.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { NetworkIdType, PortfolioElement } from '@sonarwatch/portfolio-core';
2
+ import { ConcentratedLiquidityParams } from './ConcentratedLiquidityParams';
3
+ import { ElementLiquidityBuilder } from './ElementLiquidityBuilder';
4
+ import { LiquidityParams } from './LiquidityParams';
5
+ import { LiquidityBuilder } from './LiquidityBuilder';
6
+ import { TokenPriceMap } from '../../TokenPriceMap';
7
+ export declare class ElementConcentratedLiquidityBuilder extends ElementLiquidityBuilder {
8
+ concentratedLiquidityParams?: ConcentratedLiquidityParams;
9
+ addLiquidity(params?: LiquidityParams): LiquidityBuilder;
10
+ setLiquidity(params: ConcentratedLiquidityParams): LiquidityBuilder;
11
+ mints(): string[];
12
+ get(networkId: NetworkIdType, platformId: string, tokenPrices: TokenPriceMap): PortfolioElement | null;
13
+ }