@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
@@ -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
+ }
@@ -0,0 +1,71 @@
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.ElementConcentratedLiquidityBuilder = void 0;
7
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
9
+ const ElementLiquidityBuilder_1 = require("./ElementLiquidityBuilder");
10
+ const LiquidityBuilder_1 = require("./LiquidityBuilder");
11
+ const tokenAmountFromLiquidity_1 = require("../clmm/tokenAmountFromLiquidity");
12
+ const estPositionAPRWithDeltaMethod_1 = require("../clmm/estPositionAPRWithDeltaMethod");
13
+ const toBN_1 = require("../misc/toBN");
14
+ class ElementConcentratedLiquidityBuilder extends ElementLiquidityBuilder_1.ElementLiquidityBuilder {
15
+ // eslint-disable-next-line class-methods-use-this,@typescript-eslint/no-shadow,@typescript-eslint/no-unused-vars
16
+ addLiquidity(params) {
17
+ throw new Error('Use setLiquidity for ElementConcentratedLiquidityBuilder');
18
+ }
19
+ setLiquidity(params) {
20
+ this.concentratedLiquidityParams = params;
21
+ const liquidityBuilder = new LiquidityBuilder_1.LiquidityBuilder({ name: params.name });
22
+ this.liquidities = [liquidityBuilder];
23
+ return liquidityBuilder;
24
+ }
25
+ mints() {
26
+ var _a, _b;
27
+ const mints = this.liquidities.map((liquidity) => liquidity.mints()).flat();
28
+ if ((_a = this.concentratedLiquidityParams) === null || _a === void 0 ? void 0 : _a.addressA)
29
+ mints.push(this.concentratedLiquidityParams.addressA.toString());
30
+ if ((_b = this.concentratedLiquidityParams) === null || _b === void 0 ? void 0 : _b.addressB)
31
+ mints.push(this.concentratedLiquidityParams.addressB.toString());
32
+ return mints;
33
+ }
34
+ get(networkId, platformId, tokenPrices) {
35
+ if (!this.liquidities[0] || !this.concentratedLiquidityParams)
36
+ return null;
37
+ const { tokenAmountA, tokenAmountB } = (0, tokenAmountFromLiquidity_1.getTokenAmountsFromLiquidity)(new bignumber_js_1.default(this.concentratedLiquidityParams.liquidity), Number(this.concentratedLiquidityParams.tickCurrentIndex.toString()), Number(this.concentratedLiquidityParams.tickLowerIndex.toString()), Number(this.concentratedLiquidityParams.tickUpperIndex.toString()), this.concentratedLiquidityParams.roundUp || false);
38
+ const liquidityBuilder = this.liquidities[0];
39
+ liquidityBuilder.addAsset({
40
+ address: this.concentratedLiquidityParams.addressA,
41
+ amount: tokenAmountA,
42
+ });
43
+ liquidityBuilder.addAsset({
44
+ address: this.concentratedLiquidityParams.addressB,
45
+ amount: tokenAmountB,
46
+ });
47
+ if (this.concentratedLiquidityParams.feeRate &&
48
+ this.concentratedLiquidityParams.currentSqrtPrice &&
49
+ this.concentratedLiquidityParams.swapVolume24h &&
50
+ this.concentratedLiquidityParams.poolLiquidity) {
51
+ if (tokenAmountA.gt(0) && tokenAmountB.gt(0)) {
52
+ const tokenPriceA = tokenPrices.get(this.concentratedLiquidityParams.addressA.toString());
53
+ const tokenPriceB = tokenPrices.get(this.concentratedLiquidityParams.addressB.toString());
54
+ if (tokenPriceA && tokenPriceB) {
55
+ const { feeAPR } = (0, estPositionAPRWithDeltaMethod_1.estPositionAPRWithDeltaMethod)(Number(this.concentratedLiquidityParams.tickCurrentIndex.toString()), Number(this.concentratedLiquidityParams.tickLowerIndex.toString()), Number(this.concentratedLiquidityParams.tickUpperIndex.toString()), (0, toBN_1.toBN)(this.concentratedLiquidityParams.currentSqrtPrice), (0, toBN_1.toBN)(this.concentratedLiquidityParams.poolLiquidity), tokenPriceA.decimals, tokenPriceB.decimals, Number(this.concentratedLiquidityParams.feeRate.toString()), `${tokenAmountA.dividedBy(Math.pow(10, tokenPriceA.decimals))}`, `${tokenAmountB.dividedBy(Math.pow(10, tokenPriceB.decimals))}`, `${this.concentratedLiquidityParams.swapVolume24h}`, `${tokenPriceA.price}`, `${tokenPriceB.price}`);
56
+ if (feeAPR && Number(feeAPR) >= 0) {
57
+ liquidityBuilder.addYield((0, portfolio_core_1.yieldFromApr)(Number(feeAPR) / 100));
58
+ }
59
+ }
60
+ else {
61
+ liquidityBuilder.addYield((0, portfolio_core_1.yieldFromApr)(0));
62
+ }
63
+ }
64
+ }
65
+ if (tokenAmountA.isZero() || tokenAmountB.isZero())
66
+ this.addTag('Out Of Range');
67
+ return super.get(networkId, platformId, tokenPrices);
68
+ }
69
+ }
70
+ exports.ElementConcentratedLiquidityBuilder = ElementConcentratedLiquidityBuilder;
71
+ //# sourceMappingURL=ElementConcentratedLiquidityBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ElementConcentratedLiquidityBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/ElementConcentratedLiquidityBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { NetworkIdType, PortfolioElement } from '@sonarwatch/portfolio-core';
1
+ import { NetworkIdType, PortfolioElement, PortfolioElementLabel } from '@sonarwatch/portfolio-core';
2
2
  import { ElementBuilder } from './ElementBuilder';
3
3
  import { ElementParams } from './ElementParams';
4
4
  import { Cache } from '../../Cache';
@@ -6,6 +6,7 @@ import { ElementMultipleBuilder } from './ElementMultipleBuilder';
6
6
  import { ElementLiquidityBuilder } from './ElementLiquidityBuilder';
7
7
  import { ElementBorrowlendBuilder } from './ElementBorrowlendBuilder';
8
8
  import { ElementLeverageBuilder } from './ElementLeverageBuilder';
9
+ import { ElementConcentratedLiquidityBuilder } from './ElementConcentratedLiquidityBuilder';
9
10
  export declare class ElementRegistry {
10
11
  readonly networkId: NetworkIdType;
11
12
  readonly platformId: string;
@@ -13,6 +14,9 @@ export declare class ElementRegistry {
13
14
  constructor(networkId: NetworkIdType, platformId: string);
14
15
  addElementMultiple(params: Omit<ElementParams, 'type'>): ElementMultipleBuilder;
15
16
  addElementLiquidity(params: Omit<ElementParams, 'type'>): ElementLiquidityBuilder;
17
+ addElementConcentratedLiquidity(elementParams?: Omit<ElementParams, 'type' | 'label'> & {
18
+ label?: PortfolioElementLabel;
19
+ }): ElementConcentratedLiquidityBuilder;
16
20
  addElementBorrowlend(params: Omit<ElementParams, 'type'>): ElementBorrowlendBuilder;
17
21
  addElementLeverage(params: Omit<ElementParams, 'type'>): ElementLeverageBuilder;
18
22
  getElements(cache: Cache): Promise<PortfolioElement[]>;
@@ -15,6 +15,7 @@ const ElementMultipleBuilder_1 = require("./ElementMultipleBuilder");
15
15
  const ElementLiquidityBuilder_1 = require("./ElementLiquidityBuilder");
16
16
  const ElementBorrowlendBuilder_1 = require("./ElementBorrowlendBuilder");
17
17
  const ElementLeverageBuilder_1 = require("./ElementLeverageBuilder");
18
+ const ElementConcentratedLiquidityBuilder_1 = require("./ElementConcentratedLiquidityBuilder");
18
19
  class ElementRegistry {
19
20
  constructor(networkId, platformId) {
20
21
  this.networkId = networkId;
@@ -22,22 +23,27 @@ class ElementRegistry {
22
23
  this.elements = [];
23
24
  }
24
25
  addElementMultiple(params) {
25
- const elementBuilder = new ElementMultipleBuilder_1.ElementMultipleBuilder(Object.assign({ type: portfolio_core_1.PortfolioElementType.multiple }, params));
26
+ const elementBuilder = new ElementMultipleBuilder_1.ElementMultipleBuilder(Object.assign(Object.assign({}, params), { type: portfolio_core_1.PortfolioElementType.multiple }));
26
27
  this.elements.push(elementBuilder);
27
28
  return elementBuilder;
28
29
  }
29
30
  addElementLiquidity(params) {
30
- const elementBuilder = new ElementLiquidityBuilder_1.ElementLiquidityBuilder(Object.assign({ type: portfolio_core_1.PortfolioElementType.liquidity }, params));
31
+ const elementBuilder = new ElementLiquidityBuilder_1.ElementLiquidityBuilder(Object.assign(Object.assign({}, params), { type: portfolio_core_1.PortfolioElementType.liquidity }));
32
+ this.elements.push(elementBuilder);
33
+ return elementBuilder;
34
+ }
35
+ addElementConcentratedLiquidity(elementParams) {
36
+ const elementBuilder = new ElementConcentratedLiquidityBuilder_1.ElementConcentratedLiquidityBuilder(Object.assign(Object.assign({}, elementParams), { type: portfolio_core_1.PortfolioElementType.liquidity, tags: [...((elementParams === null || elementParams === void 0 ? void 0 : elementParams.tags) || []), 'Concentrated'], label: (elementParams === null || elementParams === void 0 ? void 0 : elementParams.label) || 'LiquidityPool' }));
31
37
  this.elements.push(elementBuilder);
32
38
  return elementBuilder;
33
39
  }
34
40
  addElementBorrowlend(params) {
35
- const elementBuilder = new ElementBorrowlendBuilder_1.ElementBorrowlendBuilder(Object.assign({ type: portfolio_core_1.PortfolioElementType.borrowlend }, params));
41
+ const elementBuilder = new ElementBorrowlendBuilder_1.ElementBorrowlendBuilder(Object.assign(Object.assign({}, params), { type: portfolio_core_1.PortfolioElementType.borrowlend }));
36
42
  this.elements.push(elementBuilder);
37
43
  return elementBuilder;
38
44
  }
39
45
  addElementLeverage(params) {
40
- const elementBuilder = new ElementLeverageBuilder_1.ElementLeverageBuilder(Object.assign({ type: portfolio_core_1.PortfolioElementType.leverage }, params));
46
+ const elementBuilder = new ElementLeverageBuilder_1.ElementLeverageBuilder(Object.assign(Object.assign({}, params), { type: portfolio_core_1.PortfolioElementType.leverage }));
41
47
  this.elements.push(elementBuilder);
42
48
  return elementBuilder;
43
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ElementRegistry.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/ElementRegistry.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAIoC;AAIpC,qEAAkE;AAClE,uEAAoE;AACpE,yEAAsE;AACtE,qEAAkE;AAElE,MAAa,eAAe;IAK1B,YAAY,SAAwB,EAAE,UAAkB;QACtD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IACD,kBAAkB,CAChB,MAAmC;QAEnC,MAAM,cAAc,GAAG,IAAI,+CAAsB,iBAC/C,IAAI,EAAE,qCAAoB,CAAC,QAAQ,IAChC,MAAM,EACT,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,mBAAmB,CACjB,MAAmC;QAEnC,MAAM,cAAc,GAAG,IAAI,iDAAuB,iBAChD,IAAI,EAAE,qCAAoB,CAAC,SAAS,IACjC,MAAM,EACT,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,oBAAoB,CAClB,MAAmC;QAEnC,MAAM,cAAc,GAAG,IAAI,mDAAwB,iBACjD,IAAI,EAAE,qCAAoB,CAAC,UAAU,IAClC,MAAM,EACT,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,kBAAkB,CAChB,MAAmC;QAEnC,MAAM,cAAc,GAAG,IAAI,+CAAsB,iBAC/C,IAAI,EAAE,qCAAoB,CAAC,QAAQ,IAChC,MAAM,EACT,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IAEK,WAAW,CAAC,KAAY;;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACzD,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAE3E,OAAO,IAAI,CAAC,QAAQ;iBACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;iBAC/D,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CACtB,CAAC;QAC5B,CAAC;KAAA;CACF;AAhED,0CAgEC"}
1
+ {"version":3,"file":"ElementRegistry.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/ElementRegistry.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAKoC;AAIpC,qEAAkE;AAClE,uEAAoE;AACpE,yEAAsE;AACtE,qEAAkE;AAClE,+FAA4F;AAE5F,MAAa,eAAe;IAK1B,YAAY,SAAwB,EAAE,UAAkB;QACtD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,kBAAkB,CAChB,MAAmC;QAEnC,MAAM,cAAc,GAAG,IAAI,+CAAsB,iCAC5C,MAAM,KACT,IAAI,EAAE,qCAAoB,CAAC,QAAQ,IACnC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,mBAAmB,CACjB,MAAmC;QAEnC,MAAM,cAAc,GAAG,IAAI,iDAAuB,iCAC7C,MAAM,KACT,IAAI,EAAE,qCAAoB,CAAC,SAAS,IACpC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,+BAA+B,CAC7B,aAEC;QAED,MAAM,cAAc,GAAG,IAAI,yEAAmC,iCACzD,aAAa,KAChB,IAAI,EAAE,qCAAoB,CAAC,SAAS,EACpC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,KAAI,EAAE,CAAC,EAAE,cAAc,CAAC,EACtD,KAAK,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,KAAI,eAAe,IAC9C,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,oBAAoB,CAClB,MAAmC;QAEnC,MAAM,cAAc,GAAG,IAAI,mDAAwB,iCAC9C,MAAM,KACT,IAAI,EAAE,qCAAoB,CAAC,UAAU,IACrC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,kBAAkB,CAChB,MAAmC;QAEnC,MAAM,cAAc,GAAG,IAAI,+CAAsB,iCAC5C,MAAM,KACT,IAAI,EAAE,qCAAoB,CAAC,QAAQ,IACnC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IAEK,WAAW,CAAC,KAAY;;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACzD,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAE3E,OAAO,IAAI,CAAC,QAAQ;iBACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;iBAC/D,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CACtB,CAAC;QAC5B,CAAC;KAAA;CACF;AAhFD,0CAgFC"}