@lagoon-protocol/lagoon-mcp 0.2.19 → 0.2.21
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/dist/graphql/queries/index.d.ts +1 -1
- package/dist/graphql/queries/index.d.ts.map +1 -1
- package/dist/graphql/queries/index.js +1 -1
- package/dist/graphql/queries/index.js.map +1 -1
- package/dist/graphql/queries/vault.queries.d.ts +17 -0
- package/dist/graphql/queries/vault.queries.d.ts.map +1 -1
- package/dist/graphql/queries/vault.queries.js +30 -0
- package/dist/graphql/queries/vault.queries.js.map +1 -1
- package/dist/server.js +1 -1
- package/dist/services/analytics/risk.service.d.ts +2 -2
- package/dist/services/analytics/risk.service.d.ts.map +1 -1
- package/dist/services/analytics/risk.service.js +51 -2
- package/dist/services/analytics/risk.service.js.map +1 -1
- package/dist/tools/compare-vaults.d.ts.map +1 -1
- package/dist/tools/compare-vaults.js +76 -12
- package/dist/tools/compare-vaults.js.map +1 -1
- package/dist/tools/predict-yield.d.ts.map +1 -1
- package/dist/tools/predict-yield.js +32 -0
- package/dist/tools/predict-yield.js.map +1 -1
- package/dist/utils/comparison-metrics.d.ts +2 -2
- package/dist/utils/comparison-metrics.d.ts.map +1 -1
- package/dist/utils/comparison-metrics.js +22 -10
- package/dist/utils/comparison-metrics.js.map +1 -1
- package/dist/utils/portfolio-optimization.d.ts.map +1 -1
- package/dist/utils/portfolio-optimization.js +66 -17
- package/dist/utils/portfolio-optimization.js.map +1 -1
- package/dist/utils/risk-scoring.d.ts +61 -2
- package/dist/utils/risk-scoring.d.ts.map +1 -1
- package/dist/utils/risk-scoring.js +109 -32
- package/dist/utils/risk-scoring.js.map +1 -1
- package/dist/utils/safe-math.d.ts +64 -0
- package/dist/utils/safe-math.d.ts.map +1 -0
- package/dist/utils/safe-math.js +116 -0
- package/dist/utils/safe-math.js.map +1 -0
- package/dist/utils/yield-prediction.d.ts +7 -0
- package/dist/utils/yield-prediction.d.ts.map +1 -1
- package/dist/utils/yield-prediction.js +49 -31
- package/dist/utils/yield-prediction.js.map +1 -1
- package/package.json +1 -1
- package/dist/services/analytics/protocol-overview.service.d.ts +0 -61
- package/dist/services/analytics/protocol-overview.service.d.ts.map +0 -1
- package/dist/services/analytics/protocol-overview.service.js +0 -182
- package/dist/services/analytics/protocol-overview.service.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"predict-yield.d.ts","sourceRoot":"","sources":["../../src/tools/predict-yield.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAO3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"predict-yield.d.ts","sourceRoot":"","sources":["../../src/tools/predict-yield.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAO3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AA8SxD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,gBAAgB,GAC1B,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,cAAc,CAAC,CAkEvD"}
|
|
@@ -174,6 +174,37 @@ function createTransformYieldPredictionData(input, timestampThreshold) {
|
|
|
174
174
|
const pricePerShare = BigInt(data.vault.state?.pricePerShare || '0');
|
|
175
175
|
const highWaterMark = BigInt(data.vault.state?.highWaterMark || '0');
|
|
176
176
|
const performanceFeeActive = pricePerShare > highWaterMark;
|
|
177
|
+
// Calculate actual profit margin from historical period summaries
|
|
178
|
+
// This is used for accurate performance fee impact calculation
|
|
179
|
+
let actualProfitMargin;
|
|
180
|
+
if (data.performanceHistory && data.performanceHistory.items.length >= 2) {
|
|
181
|
+
// Calculate period-over-period price changes
|
|
182
|
+
const sortedItems = [...data.performanceHistory.items].sort((a, b) => parseInt(a.timestamp, 10) - parseInt(b.timestamp, 10));
|
|
183
|
+
const priceChanges = [];
|
|
184
|
+
for (let i = 1; i < sortedItems.length; i++) {
|
|
185
|
+
const prevAssets = parseFloat(sortedItems[i - 1].data.totalAssetsAtStart);
|
|
186
|
+
const prevSupply = parseFloat(sortedItems[i - 1].data.totalSupplyAtStart);
|
|
187
|
+
const currAssets = parseFloat(sortedItems[i].data.totalAssetsAtStart);
|
|
188
|
+
const currSupply = parseFloat(sortedItems[i].data.totalSupplyAtStart);
|
|
189
|
+
// Calculate price per share for each period
|
|
190
|
+
const prevPPS = prevSupply > 0 ? prevAssets / prevSupply : 0;
|
|
191
|
+
const currPPS = currSupply > 0 ? currAssets / currSupply : 0;
|
|
192
|
+
// Calculate percentage change
|
|
193
|
+
if (prevPPS > 0) {
|
|
194
|
+
const change = (currPPS - prevPPS) / prevPPS;
|
|
195
|
+
priceChanges.push(change);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// Actual profit margin is the average of positive returns (profits only)
|
|
199
|
+
// This reflects the historical rate at which performance fees are triggered
|
|
200
|
+
const positiveChanges = priceChanges.filter((c) => c > 0);
|
|
201
|
+
if (positiveChanges.length > 0) {
|
|
202
|
+
actualProfitMargin =
|
|
203
|
+
positiveChanges.reduce((sum, c) => sum + c, 0) / positiveChanges.length;
|
|
204
|
+
}
|
|
205
|
+
// If no positive changes, actualProfitMargin remains undefined
|
|
206
|
+
// which means fee-adjusted predictions will be omitted (no data to calculate)
|
|
207
|
+
}
|
|
177
208
|
// Only pass fee parameters if vault has meaningful fees
|
|
178
209
|
const hasFees = managementFee > 0 || performanceFee > 0;
|
|
179
210
|
// Perform yield prediction with optional fee parameters
|
|
@@ -182,6 +213,7 @@ function createTransformYieldPredictionData(input, timestampThreshold) {
|
|
|
182
213
|
managementFee,
|
|
183
214
|
performanceFee,
|
|
184
215
|
performanceFeeActive,
|
|
216
|
+
actualProfitMargin,
|
|
185
217
|
}
|
|
186
218
|
: undefined);
|
|
187
219
|
// Format prediction as markdown
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"predict-yield.js","sourceRoot":"","sources":["../../src/tools/predict-yield.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"predict-yield.js","sourceRoot":"","sources":["../../src/tools/predict-yield.ts"],"names":[],"mappings":"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"}
|
|
@@ -112,9 +112,9 @@ export declare function normalizeAndRankVaults(vaults: VaultComparisonData[]): N
|
|
|
112
112
|
/**
|
|
113
113
|
* Generate comparison summary statistics
|
|
114
114
|
* @param vaults Array of vault data
|
|
115
|
-
* @returns Summary statistics
|
|
115
|
+
* @returns Summary statistics or null if no vaults
|
|
116
116
|
*/
|
|
117
|
-
export declare function generateComparisonSummary(vaults: VaultComparisonData[]): ComparisonSummary;
|
|
117
|
+
export declare function generateComparisonSummary(vaults: VaultComparisonData[]): ComparisonSummary | null;
|
|
118
118
|
/**
|
|
119
119
|
* Format comparison output as markdown table
|
|
120
120
|
* @param vaults Normalized vaults with rankings
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comparison-metrics.d.ts","sourceRoot":"","sources":["../../src/utils/comparison-metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"comparison-metrics.d.ts","sourceRoot":"","sources":["../../src/utils/comparison-metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Provides normalization, ranking, and comparison functions for multi-vault analysis
|
|
5
5
|
*/
|
|
6
|
+
import { safeToFixed, safeDivide } from './safe-math.js';
|
|
6
7
|
/**
|
|
7
8
|
* Calculate percentile rank for a value in an array
|
|
8
9
|
* @param value The value to calculate percentile for
|
|
@@ -10,10 +11,19 @@
|
|
|
10
11
|
* @returns Percentile (0-100)
|
|
11
12
|
*/
|
|
12
13
|
export function calculatePercentile(value, arr) {
|
|
14
|
+
// Guard: empty array
|
|
15
|
+
if (!arr || arr.length === 0) {
|
|
16
|
+
return 0;
|
|
17
|
+
}
|
|
18
|
+
// Guard: single element - percentile is meaningless, return middle value
|
|
19
|
+
if (arr.length === 1) {
|
|
20
|
+
return arr[0] === value ? 50 : 0;
|
|
21
|
+
}
|
|
13
22
|
const sorted = [...arr].sort((a, b) => a - b);
|
|
14
23
|
const index = sorted.indexOf(value);
|
|
15
24
|
if (index === -1)
|
|
16
25
|
return 0;
|
|
26
|
+
// sorted.length - 1 is now guaranteed > 0 because arr.length > 1
|
|
17
27
|
const percentile = (index / (sorted.length - 1)) * 100;
|
|
18
28
|
return Math.round(percentile * 100) / 100; // Round to 2 decimals
|
|
19
29
|
}
|
|
@@ -97,11 +107,12 @@ export function normalizeAndRankVaults(vaults) {
|
|
|
97
107
|
/**
|
|
98
108
|
* Generate comparison summary statistics
|
|
99
109
|
* @param vaults Array of vault data
|
|
100
|
-
* @returns Summary statistics
|
|
110
|
+
* @returns Summary statistics or null if no vaults
|
|
101
111
|
*/
|
|
102
112
|
export function generateComparisonSummary(vaults) {
|
|
103
|
-
|
|
104
|
-
|
|
113
|
+
// Guard: empty or null array - return null instead of throwing
|
|
114
|
+
if (!vaults || vaults.length === 0) {
|
|
115
|
+
return null;
|
|
105
116
|
}
|
|
106
117
|
// Calculate averages
|
|
107
118
|
const totalTvl = vaults.reduce((sum, v) => sum + v.tvl, 0);
|
|
@@ -213,12 +224,13 @@ export function formatComparisonTable(vaults) {
|
|
|
213
224
|
header += '\n' + separator + '\n';
|
|
214
225
|
const rows = vaults
|
|
215
226
|
.map((v) => {
|
|
216
|
-
|
|
227
|
+
// Use safeToFixed to handle NaN/undefined values gracefully
|
|
228
|
+
const tvlFormatted = `$${safeToFixed(safeDivide(v.tvl, 1000000, 0), 2, '0.00')}M`;
|
|
217
229
|
// APR values from API are already percentages (e.g., 4.12 means 4.12%)
|
|
218
|
-
const aprFormatted = `${v.apr.
|
|
219
|
-
const scoreFormatted = v.overallScore.
|
|
220
|
-
const tvlDeltaFormatted = `${v.tvlDelta > 0 ? '+' : ''}${v.tvlDelta.
|
|
221
|
-
const aprDeltaFormatted = `${v.aprDelta > 0 ? '+' : ''}${v.aprDelta.
|
|
230
|
+
const aprFormatted = `${safeToFixed(v.apr, 2, '0.00')}%`;
|
|
231
|
+
const scoreFormatted = safeToFixed(v.overallScore, 1, '0.0');
|
|
232
|
+
const tvlDeltaFormatted = `${v.tvlDelta > 0 ? '+' : ''}${safeToFixed(v.tvlDelta, 1, '0.0')}%`;
|
|
233
|
+
const aprDeltaFormatted = `${v.aprDelta > 0 ? '+' : ''}${safeToFixed(v.aprDelta, 1, '0.0')}%`;
|
|
222
234
|
let row = `| ${v.rank} | ${v.name} (${v.symbol}) | ${tvlFormatted} | ${aprFormatted} |`;
|
|
223
235
|
if (hasFeeData) {
|
|
224
236
|
const mgmtFeeFormatted = formatFee(v.fees?.managementFee);
|
|
@@ -227,14 +239,14 @@ export function formatComparisonTable(vaults) {
|
|
|
227
239
|
}
|
|
228
240
|
if (hasRiskData) {
|
|
229
241
|
const riskFormatted = v.riskScore !== undefined
|
|
230
|
-
? `${riskEmoji(v.riskLevel)} ${(v.riskScore * 100
|
|
242
|
+
? `${riskEmoji(v.riskLevel)} ${safeToFixed(v.riskScore * 100, 1, '0.0')}%`
|
|
231
243
|
: 'N/A';
|
|
232
244
|
row += ` ${riskFormatted} |`;
|
|
233
245
|
}
|
|
234
246
|
row += ` ${scoreFormatted} | ${tvlDeltaFormatted} | ${aprDeltaFormatted} |`;
|
|
235
247
|
if (hasRiskData) {
|
|
236
248
|
const riskDeltaFormatted = v.riskDelta !== undefined
|
|
237
|
-
? `${v.riskDelta > 0 ? '+' : ''}${v.riskDelta.
|
|
249
|
+
? `${v.riskDelta > 0 ? '+' : ''}${safeToFixed(v.riskDelta, 1, '0.0')}%`
|
|
238
250
|
: 'N/A';
|
|
239
251
|
row += ` ${riskDeltaFormatted} |`;
|
|
240
252
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comparison-metrics.js","sourceRoot":"","sources":["../../src/utils/comparison-metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"comparison-metrics.js","sourceRoot":"","sources":["../../src/utils/comparison-metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portfolio-optimization.d.ts","sourceRoot":"","sources":["../../src/utils/portfolio-optimization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"portfolio-optimization.d.ts","sourceRoot":"","sources":["../../src/utils/portfolio-optimization.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,17 +4,23 @@
|
|
|
4
4
|
* Portfolio allocation and rebalancing algorithms for optimal vault distribution.
|
|
5
5
|
* Provides risk-adjusted portfolio recommendations and rebalancing guidance.
|
|
6
6
|
*/
|
|
7
|
+
import { safeDivide } from './safe-math.js';
|
|
7
8
|
/**
|
|
8
9
|
* Calculate equal-weight allocation strategy
|
|
9
10
|
* Allocates portfolio equally across all vaults
|
|
10
11
|
*/
|
|
11
12
|
export function calculateEqualWeight(vaults, totalValueUsd) {
|
|
13
|
+
// Guard: empty array
|
|
14
|
+
if (vaults.length === 0) {
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
12
17
|
const targetAllocation = 100 / vaults.length;
|
|
13
18
|
return vaults.map((vault) => {
|
|
14
|
-
const currentAllocation = (vault.currentValueUsd
|
|
19
|
+
const currentAllocation = safeDivide(vault.currentValueUsd, totalValueUsd, 0) * 100;
|
|
15
20
|
const targetValueUsd = (targetAllocation / 100) * totalValueUsd;
|
|
16
21
|
const rebalanceAmount = targetValueUsd - vault.currentValueUsd;
|
|
17
|
-
|
|
22
|
+
// Guard: avoid division by zero when currentValueUsd is 0
|
|
23
|
+
const rebalancePercentage = safeDivide(rebalanceAmount, vault.currentValueUsd, rebalanceAmount > 0 ? 100 : rebalanceAmount < 0 ? -100 : 0);
|
|
18
24
|
return {
|
|
19
25
|
vaultAddress: vault.address,
|
|
20
26
|
vaultName: vault.name,
|
|
@@ -34,15 +40,25 @@ export function calculateEqualWeight(vaults, totalValueUsd) {
|
|
|
34
40
|
* Allocates based on inverse risk (lower risk = higher allocation)
|
|
35
41
|
*/
|
|
36
42
|
export function calculateRiskParity(vaults, totalValueUsd) {
|
|
43
|
+
// Guard: empty array
|
|
44
|
+
if (vaults.length === 0) {
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
37
47
|
// Calculate inverse risk scores (lower risk = higher weight)
|
|
38
|
-
const
|
|
48
|
+
const RISK_EPSILON = 0.01;
|
|
49
|
+
const inverseRisks = vaults.map((v) => safeDivide(1, v.riskScore + RISK_EPSILON, 1));
|
|
39
50
|
const totalInverseRisk = inverseRisks.reduce((sum, r) => sum + r, 0);
|
|
51
|
+
// Guard: if all inverse risks sum to 0, fall back to equal weight
|
|
52
|
+
if (totalInverseRisk === 0) {
|
|
53
|
+
return calculateEqualWeight(vaults, totalValueUsd);
|
|
54
|
+
}
|
|
40
55
|
return vaults.map((vault, index) => {
|
|
41
|
-
const targetAllocation = (inverseRisks[index] /
|
|
42
|
-
const currentAllocation = (vault.currentValueUsd
|
|
56
|
+
const targetAllocation = safeDivide(inverseRisks[index], totalInverseRisk, 100 / vaults.length) * 100;
|
|
57
|
+
const currentAllocation = safeDivide(vault.currentValueUsd, totalValueUsd, 0) * 100;
|
|
43
58
|
const targetValueUsd = (targetAllocation / 100) * totalValueUsd;
|
|
44
59
|
const rebalanceAmount = targetValueUsd - vault.currentValueUsd;
|
|
45
|
-
|
|
60
|
+
// Guard: avoid division by zero when currentValueUsd is 0
|
|
61
|
+
const rebalancePercentage = safeDivide(rebalanceAmount, vault.currentValueUsd, rebalanceAmount > 0 ? 100 : rebalanceAmount < 0 ? -100 : 0);
|
|
46
62
|
return {
|
|
47
63
|
vaultAddress: vault.address,
|
|
48
64
|
vaultName: vault.name,
|
|
@@ -63,10 +79,15 @@ export function calculateRiskParity(vaults, totalValueUsd) {
|
|
|
63
79
|
*/
|
|
64
80
|
export function calculateMaxSharpe(vaults, totalValueUsd, riskFreeRate = 2.0 // Default 2% risk-free rate
|
|
65
81
|
) {
|
|
82
|
+
// Guard: empty array
|
|
83
|
+
if (vaults.length === 0) {
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
66
86
|
// Calculate Sharpe ratios for each vault
|
|
87
|
+
const VOLATILITY_EPSILON = 0.01;
|
|
67
88
|
const sharpeRatios = vaults.map((v) => {
|
|
68
89
|
const excessReturn = v.expectedApr - riskFreeRate;
|
|
69
|
-
return excessReturn
|
|
90
|
+
return safeDivide(excessReturn, v.volatility + VOLATILITY_EPSILON, 0);
|
|
70
91
|
});
|
|
71
92
|
// Normalize Sharpe ratios to get weights (only positive Sharpe ratios)
|
|
72
93
|
const positiveSharpes = sharpeRatios.map((s) => Math.max(0, s));
|
|
@@ -76,11 +97,12 @@ export function calculateMaxSharpe(vaults, totalValueUsd, riskFreeRate = 2.0 //
|
|
|
76
97
|
return calculateEqualWeight(vaults, totalValueUsd);
|
|
77
98
|
}
|
|
78
99
|
return vaults.map((vault, index) => {
|
|
79
|
-
const targetAllocation = (positiveSharpes[index] /
|
|
80
|
-
const currentAllocation = (vault.currentValueUsd
|
|
100
|
+
const targetAllocation = safeDivide(positiveSharpes[index], totalSharpe, 100 / vaults.length) * 100;
|
|
101
|
+
const currentAllocation = safeDivide(vault.currentValueUsd, totalValueUsd, 0) * 100;
|
|
81
102
|
const targetValueUsd = (targetAllocation / 100) * totalValueUsd;
|
|
82
103
|
const rebalanceAmount = targetValueUsd - vault.currentValueUsd;
|
|
83
|
-
|
|
104
|
+
// Guard: avoid division by zero when currentValueUsd is 0
|
|
105
|
+
const rebalancePercentage = safeDivide(rebalanceAmount, vault.currentValueUsd, rebalanceAmount > 0 ? 100 : rebalanceAmount < 0 ? -100 : 0);
|
|
84
106
|
return {
|
|
85
107
|
vaultAddress: vault.address,
|
|
86
108
|
vaultName: vault.name,
|
|
@@ -100,15 +122,25 @@ export function calculateMaxSharpe(vaults, totalValueUsd, riskFreeRate = 2.0 //
|
|
|
100
122
|
* Allocates to minimize portfolio volatility
|
|
101
123
|
*/
|
|
102
124
|
export function calculateMinVariance(vaults, totalValueUsd) {
|
|
125
|
+
// Guard: empty array
|
|
126
|
+
if (vaults.length === 0) {
|
|
127
|
+
return [];
|
|
128
|
+
}
|
|
103
129
|
// Allocate based on inverse variance (lower volatility = higher allocation)
|
|
104
|
-
const
|
|
130
|
+
const VARIANCE_EPSILON = 0.0001;
|
|
131
|
+
const inverseVariances = vaults.map((v) => safeDivide(1, v.volatility * v.volatility + VARIANCE_EPSILON, 1));
|
|
105
132
|
const totalInverseVariance = inverseVariances.reduce((sum, v) => sum + v, 0);
|
|
133
|
+
// Guard: if all inverse variances sum to 0, fall back to equal weight
|
|
134
|
+
if (totalInverseVariance === 0) {
|
|
135
|
+
return calculateEqualWeight(vaults, totalValueUsd);
|
|
136
|
+
}
|
|
106
137
|
return vaults.map((vault, index) => {
|
|
107
|
-
const targetAllocation = (inverseVariances[index] /
|
|
108
|
-
const currentAllocation = (vault.currentValueUsd
|
|
138
|
+
const targetAllocation = safeDivide(inverseVariances[index], totalInverseVariance, 100 / vaults.length) * 100;
|
|
139
|
+
const currentAllocation = safeDivide(vault.currentValueUsd, totalValueUsd, 0) * 100;
|
|
109
140
|
const targetValueUsd = (targetAllocation / 100) * totalValueUsd;
|
|
110
141
|
const rebalanceAmount = targetValueUsd - vault.currentValueUsd;
|
|
111
|
-
|
|
142
|
+
// Guard: avoid division by zero when currentValueUsd is 0
|
|
143
|
+
const rebalancePercentage = safeDivide(rebalanceAmount, vault.currentValueUsd, rebalanceAmount > 0 ? 100 : rebalanceAmount < 0 ? -100 : 0);
|
|
112
144
|
return {
|
|
113
145
|
vaultAddress: vault.address,
|
|
114
146
|
vaultName: vault.name,
|
|
@@ -127,20 +159,37 @@ export function calculateMinVariance(vaults, totalValueUsd) {
|
|
|
127
159
|
* Calculate portfolio metrics
|
|
128
160
|
*/
|
|
129
161
|
export function calculatePortfolioMetrics(positions, vaults, riskFreeRate = 2.0) {
|
|
162
|
+
// Guard: empty arrays
|
|
163
|
+
if (positions.length === 0 || vaults.length === 0) {
|
|
164
|
+
return {
|
|
165
|
+
expectedReturn: 0,
|
|
166
|
+
portfolioRisk: 0,
|
|
167
|
+
sharpeRatio: 0,
|
|
168
|
+
diversificationScore: 0,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
130
171
|
// Calculate expected return (weighted average of vault APRs)
|
|
131
172
|
const expectedReturn = vaults.reduce((sum, vault, index) => {
|
|
132
|
-
|
|
173
|
+
// Guard: check positions array bounds
|
|
174
|
+
const position = positions[index];
|
|
175
|
+
if (!position)
|
|
176
|
+
return sum;
|
|
177
|
+
const weight = position.targetAllocation / 100;
|
|
133
178
|
return sum + vault.expectedApr * weight;
|
|
134
179
|
}, 0);
|
|
135
180
|
// Calculate portfolio risk (simplified - weighted average volatility)
|
|
136
181
|
// Note: This is a simplification; true portfolio variance requires correlation matrix
|
|
137
182
|
const portfolioRisk = vaults.reduce((sum, vault, index) => {
|
|
138
|
-
|
|
183
|
+
// Guard: check positions array bounds
|
|
184
|
+
const position = positions[index];
|
|
185
|
+
if (!position)
|
|
186
|
+
return sum;
|
|
187
|
+
const weight = position.targetAllocation / 100;
|
|
139
188
|
return sum + vault.volatility * weight;
|
|
140
189
|
}, 0);
|
|
141
190
|
// Calculate Sharpe ratio
|
|
142
191
|
const excessReturn = expectedReturn - riskFreeRate;
|
|
143
|
-
const sharpeRatio =
|
|
192
|
+
const sharpeRatio = safeDivide(excessReturn, portfolioRisk, 0);
|
|
144
193
|
// Calculate diversification score (1 - Herfindahl index)
|
|
145
194
|
const herfindahl = positions.reduce((sum, pos) => {
|
|
146
195
|
const weight = pos.targetAllocation / 100;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portfolio-optimization.js","sourceRoot":"","sources":["../../src/utils/portfolio-optimization.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"portfolio-optimization.js","sourceRoot":"","sources":["../../src/utils/portfolio-optimization.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,18 @@ export interface RiskScoreBreakdown {
|
|
|
24
24
|
topProtocolConcentrationRisk: number;
|
|
25
25
|
overallRisk: number;
|
|
26
26
|
riskLevel: 'Low' | 'Medium' | 'High' | 'Critical';
|
|
27
|
+
/**
|
|
28
|
+
* Indicates the quality of data used for risk analysis.
|
|
29
|
+
* - 'high': All data sources available, calculations based on real data
|
|
30
|
+
* - 'medium': Some data missing, using defaults for 1-2 factors
|
|
31
|
+
* - 'low': Significant data gaps, multiple factors using default assumptions
|
|
32
|
+
*/
|
|
33
|
+
dataQuality: 'high' | 'medium' | 'low';
|
|
34
|
+
/**
|
|
35
|
+
* Specific notes about data limitations affecting the risk analysis.
|
|
36
|
+
* Empty array indicates all data was available and of good quality.
|
|
37
|
+
*/
|
|
38
|
+
dataQualityNotes: string[];
|
|
27
39
|
}
|
|
28
40
|
/**
|
|
29
41
|
* Risk thresholds for scoring
|
|
@@ -194,13 +206,60 @@ export declare function calculateCapacityUtilizationRisk(utilizationData: {
|
|
|
194
206
|
totalAssets: number;
|
|
195
207
|
maxCapacity: number | null;
|
|
196
208
|
}): number;
|
|
209
|
+
/**
|
|
210
|
+
* Risk factor weights for calculating overall risk score.
|
|
211
|
+
*
|
|
212
|
+
* Weights are derived from DeFi risk research and empirical analysis:
|
|
213
|
+
*
|
|
214
|
+
* **Market & Liquidity (24%)**
|
|
215
|
+
* - TVL (8%): Liquidity depth and market validation signal
|
|
216
|
+
* - Concentration (8%): Protocol-wide exposure and systemic risk
|
|
217
|
+
* - Liquidity (8%): Redemption coverage and operational liquidity
|
|
218
|
+
*
|
|
219
|
+
* **Performance & Stability (27%)**
|
|
220
|
+
* - Volatility (14%): Primary indicator of price instability and risk
|
|
221
|
+
* - APR Consistency (13%): Yield reliability signals strategy health
|
|
222
|
+
*
|
|
223
|
+
* **Operational (21%)**
|
|
224
|
+
* - Age (8%): Operational track record and battle-testing
|
|
225
|
+
* - Curator (8%): Management quality and experience
|
|
226
|
+
* - Settlement (5%): Operational efficiency and delay risk
|
|
227
|
+
*
|
|
228
|
+
* **Fee Structure (8%)**
|
|
229
|
+
* - Fee (8%): Cost drag on returns and alignment of interests
|
|
230
|
+
*
|
|
231
|
+
* **Strategy Composition (20%)**
|
|
232
|
+
* - Yield Sustainability (5%): Native vs incentive-based yield mix
|
|
233
|
+
* - Integration Complexity (5%): Smart contract attack surface
|
|
234
|
+
* - Capacity Utilization (5%): Demand signals and deposit headroom
|
|
235
|
+
* - Protocol Diversification (5%): HHI-based protocol concentration
|
|
236
|
+
* - Top Protocol Concentration (5%): Single protocol exposure risk
|
|
237
|
+
*
|
|
238
|
+
* Total: 100% (weights sum to 1.0)
|
|
239
|
+
*/
|
|
240
|
+
export declare const RISK_WEIGHTS: {
|
|
241
|
+
readonly tvl: 0.08;
|
|
242
|
+
readonly concentration: 0.08;
|
|
243
|
+
readonly volatility: 0.14;
|
|
244
|
+
readonly age: 0.08;
|
|
245
|
+
readonly curator: 0.08;
|
|
246
|
+
readonly fee: 0.08;
|
|
247
|
+
readonly liquidity: 0.08;
|
|
248
|
+
readonly aprConsistency: 0.13;
|
|
249
|
+
readonly yieldSustainability: 0.05;
|
|
250
|
+
readonly settlement: 0.05;
|
|
251
|
+
readonly integrationComplexity: 0.05;
|
|
252
|
+
readonly capacityUtilization: 0.05;
|
|
253
|
+
readonly protocolDiversification: 0.05;
|
|
254
|
+
readonly topProtocolConcentration: 0.05;
|
|
255
|
+
};
|
|
197
256
|
/**
|
|
198
257
|
* Calculate overall risk score with weighted factors
|
|
199
258
|
*
|
|
200
|
-
* @param breakdown - Individual risk factor scores
|
|
259
|
+
* @param breakdown - Individual risk factor scores (excluding overall and data quality fields)
|
|
201
260
|
* @returns Overall risk score 0-1 and risk level
|
|
202
261
|
*/
|
|
203
|
-
export declare function calculateOverallRisk(breakdown: Omit<RiskScoreBreakdown, 'overallRisk' | 'riskLevel'>): {
|
|
262
|
+
export declare function calculateOverallRisk(breakdown: Omit<RiskScoreBreakdown, 'overallRisk' | 'riskLevel' | 'dataQuality' | 'dataQualityNotes'>): {
|
|
204
263
|
overallRisk: number;
|
|
205
264
|
riskLevel: 'Low' | 'Medium' | 'High' | 'Critical';
|
|
206
265
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"risk-scoring.d.ts","sourceRoot":"","sources":["../../src/utils/risk-scoring.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uBAAuB,EAAE,MAAM,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB,EAAE,MAAM,CAAC;IAClC,uBAAuB,EAAE,MAAM,CAAC;IAChC,2BAA2B,EAAE,MAAM,CAAC;IACpC,4BAA4B,EAAE,MAAM,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"risk-scoring.d.ts","sourceRoot":"","sources":["../../src/utils/risk-scoring.ts"],"names":[],"mappings":"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"}
|