@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.
- package/CHANGELOG.md +4 -0
- package/package.json +1 -1
- package/src/plugins/cetus/clmmsFetcher.js +12 -20
- package/src/plugins/cetus/clmmsFetcher.js.map +1 -1
- package/src/plugins/cetus/getPools.d.ts +2 -2
- package/src/plugins/cetus/getPools.js +20 -7
- package/src/plugins/cetus/getPools.js.map +1 -1
- package/src/plugins/cetus/index.js +2 -1
- package/src/plugins/cetus/index.js.map +1 -1
- package/src/plugins/cetus/poolsStatsJob.d.ts +3 -0
- package/src/plugins/cetus/poolsStatsJob.js +45 -0
- package/src/plugins/cetus/poolsStatsJob.js.map +1 -0
- package/src/plugins/cetus/types.d.ts +7 -0
- package/src/plugins/cetus/types.js.map +1 -1
- package/src/plugins/coinmarketcap/constants.d.ts +3 -9
- package/src/plugins/coinmarketcap/constants.js +20 -4
- package/src/plugins/coinmarketcap/constants.js.map +1 -1
- package/src/plugins/coinmarketcap/pricingJob.js +7 -5
- package/src/plugins/coinmarketcap/pricingJob.js.map +1 -1
- package/src/plugins/coinmarketcap/types.d.ts +21 -0
- package/src/plugins/coinmarketcap/types.js +3 -0
- package/src/plugins/coinmarketcap/types.js.map +1 -0
- package/src/plugins/flowx/stakingPoolV3Fetcher.js +12 -44
- package/src/plugins/flowx/stakingPoolV3Fetcher.js.map +1 -1
- package/src/plugins/kriya/clmmsFetcher.js +19 -22
- package/src/plugins/kriya/clmmsFetcher.js.map +1 -1
- package/src/plugins/kriya/constants.d.ts +3 -0
- package/src/plugins/kriya/constants.js +4 -1
- package/src/plugins/kriya/constants.js.map +1 -1
- package/src/plugins/kriya/index.js +7 -1
- package/src/plugins/kriya/index.js.map +1 -1
- package/src/plugins/kriya/poolsStatsJob.d.ts +3 -0
- package/src/plugins/kriya/poolsStatsJob.js +46 -0
- package/src/plugins/kriya/poolsStatsJob.js.map +1 -0
- package/src/plugins/kriya/types/pools.d.ts +8 -0
- package/src/plugins/orca/getWhirlpoolPositions.js +49 -107
- package/src/plugins/orca/getWhirlpoolPositions.js.map +1 -1
- package/src/plugins/orca/index.js +2 -1
- package/src/plugins/orca/index.js.map +1 -1
- package/src/plugins/orca/types.d.ts +6 -0
- package/src/plugins/orca/types.js +3 -0
- package/src/plugins/orca/types.js.map +1 -0
- package/src/plugins/orca/whirlpoolsStatsJob.d.ts +3 -0
- package/src/plugins/orca/whirlpoolsStatsJob.js +51 -0
- package/src/plugins/orca/whirlpoolsStatsJob.js.map +1 -0
- package/src/plugins/raydium/getRaydiumCLMMPositions.js +32 -91
- package/src/plugins/raydium/getRaydiumCLMMPositions.js.map +1 -1
- package/src/plugins/turbos/clmmVaultFetcher.js +13 -51
- package/src/plugins/turbos/clmmVaultFetcher.js.map +1 -1
- package/src/plugins/turbos/clmmsPositionsFetcher.js +11 -48
- package/src/plugins/turbos/clmmsPositionsFetcher.js.map +1 -1
- package/src/utils/clmm/estPositionAPRWithDeltaMethod.d.ts +6 -0
- package/src/utils/clmm/estPositionAPRWithDeltaMethod.js +72 -0
- package/src/utils/clmm/estPositionAPRWithDeltaMethod.js.map +1 -0
- package/src/utils/elementbuilder/AssetBuilder.js +3 -3
- package/src/utils/elementbuilder/AssetBuilder.js.map +1 -1
- package/src/utils/elementbuilder/ConcentratedLiquidityParams.d.ts +16 -0
- package/src/utils/elementbuilder/ConcentratedLiquidityParams.js +3 -0
- package/src/utils/elementbuilder/ConcentratedLiquidityParams.js.map +1 -0
- package/src/utils/elementbuilder/ElementConcentratedLiquidityBuilder.d.ts +13 -0
- package/src/utils/elementbuilder/ElementConcentratedLiquidityBuilder.js +71 -0
- package/src/utils/elementbuilder/ElementConcentratedLiquidityBuilder.js.map +1 -0
- package/src/utils/elementbuilder/ElementRegistry.d.ts +5 -1
- package/src/utils/elementbuilder/ElementRegistry.js +10 -4
- 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
|
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
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
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
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
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
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
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
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
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
|
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":"
|
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
|
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
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
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
|
-
|
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":"
|
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
|
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
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
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
|
-
|
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":"
|
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,
|
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 @@
|
|
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
|
+
}
|