@lagoon-protocol/lagoon-mcp 0.1.0
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/LICENSE +201 -0
- package/README.md +618 -0
- package/dist/cache/index.d.ts +97 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +106 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/config.d.ts +34 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +40 -0
- package/dist/config.js.map +1 -0
- package/dist/core/cache-adapter.d.ts +73 -0
- package/dist/core/cache-adapter.d.ts.map +1 -0
- package/dist/core/cache-adapter.js +47 -0
- package/dist/core/cache-adapter.js.map +1 -0
- package/dist/core/cache-invalidation.d.ts +72 -0
- package/dist/core/cache-invalidation.d.ts.map +1 -0
- package/dist/core/cache-invalidation.js +114 -0
- package/dist/core/cache-invalidation.js.map +1 -0
- package/dist/core/container.d.ts +34 -0
- package/dist/core/container.d.ts.map +1 -0
- package/dist/core/container.js +75 -0
- package/dist/core/container.js.map +1 -0
- package/dist/graphql/client.d.ts +32 -0
- package/dist/graphql/client.d.ts.map +1 -0
- package/dist/graphql/client.js +49 -0
- package/dist/graphql/client.js.map +1 -0
- package/dist/graphql/fragments/apr-breakdown.fragment.d.ts +64 -0
- package/dist/graphql/fragments/apr-breakdown.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/apr-breakdown.fragment.js +62 -0
- package/dist/graphql/fragments/apr-breakdown.fragment.js.map +1 -0
- package/dist/graphql/fragments/asset-info.fragment.d.ts +18 -0
- package/dist/graphql/fragments/asset-info.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/asset-info.fragment.js +36 -0
- package/dist/graphql/fragments/asset-info.fragment.js.map +1 -0
- package/dist/graphql/fragments/chain-info.fragment.d.ts +18 -0
- package/dist/graphql/fragments/chain-info.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/chain-info.fragment.js +32 -0
- package/dist/graphql/fragments/chain-info.fragment.js.map +1 -0
- package/dist/graphql/fragments/index.d.ts +15 -0
- package/dist/graphql/fragments/index.d.ts.map +1 -0
- package/dist/graphql/fragments/index.js +21 -0
- package/dist/graphql/fragments/index.js.map +1 -0
- package/dist/graphql/fragments/pageinfo.fragment.d.ts +33 -0
- package/dist/graphql/fragments/pageinfo.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/pageinfo.fragment.js +47 -0
- package/dist/graphql/fragments/pageinfo.fragment.js.map +1 -0
- package/dist/graphql/fragments/transaction-base.fragment.d.ts +19 -0
- package/dist/graphql/fragments/transaction-base.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/transaction-base.fragment.js +32 -0
- package/dist/graphql/fragments/transaction-base.fragment.js.map +1 -0
- package/dist/graphql/fragments/vault-list.fragment.d.ts +53 -0
- package/dist/graphql/fragments/vault-list.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/vault-list.fragment.js +51 -0
- package/dist/graphql/fragments/vault-list.fragment.js.map +1 -0
- package/dist/graphql/fragments/vault-summary.fragment.d.ts +68 -0
- package/dist/graphql/fragments/vault-summary.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/vault-summary.fragment.js +66 -0
- package/dist/graphql/fragments/vault-summary.fragment.js.map +1 -0
- package/dist/graphql/fragments/vault.fragment.d.ts +133 -0
- package/dist/graphql/fragments/vault.fragment.d.ts.map +1 -0
- package/dist/graphql/fragments/vault.fragment.js +119 -0
- package/dist/graphql/fragments/vault.fragment.js.map +1 -0
- package/dist/graphql/fragments.d.ts +183 -0
- package/dist/graphql/fragments.d.ts.map +1 -0
- package/dist/graphql/fragments.js +297 -0
- package/dist/graphql/fragments.js.map +1 -0
- package/dist/graphql/queries/export.queries.d.ts +72 -0
- package/dist/graphql/queries/export.queries.d.ts.map +1 -0
- package/dist/graphql/queries/export.queries.js +202 -0
- package/dist/graphql/queries/export.queries.js.map +1 -0
- package/dist/graphql/queries/index.d.ts +15 -0
- package/dist/graphql/queries/index.d.ts.map +1 -0
- package/dist/graphql/queries/index.js +23 -0
- package/dist/graphql/queries/index.js.map +1 -0
- package/dist/graphql/queries/performance.queries.d.ts +63 -0
- package/dist/graphql/queries/performance.queries.d.ts.map +1 -0
- package/dist/graphql/queries/performance.queries.js +133 -0
- package/dist/graphql/queries/performance.queries.js.map +1 -0
- package/dist/graphql/queries/period-summaries.d.ts +15 -0
- package/dist/graphql/queries/period-summaries.d.ts.map +1 -0
- package/dist/graphql/queries/period-summaries.js +24 -0
- package/dist/graphql/queries/period-summaries.js.map +1 -0
- package/dist/graphql/queries/portfolio.queries.d.ts +78 -0
- package/dist/graphql/queries/portfolio.queries.d.ts.map +1 -0
- package/dist/graphql/queries/portfolio.queries.js +198 -0
- package/dist/graphql/queries/portfolio.queries.js.map +1 -0
- package/dist/graphql/queries/prediction.queries.d.ts +38 -0
- package/dist/graphql/queries/prediction.queries.d.ts.map +1 -0
- package/dist/graphql/queries/prediction.queries.js +100 -0
- package/dist/graphql/queries/prediction.queries.js.map +1 -0
- package/dist/graphql/queries/risk.queries.d.ts +37 -0
- package/dist/graphql/queries/risk.queries.d.ts.map +1 -0
- package/dist/graphql/queries/risk.queries.js +90 -0
- package/dist/graphql/queries/risk.queries.js.map +1 -0
- package/dist/graphql/queries/search.queries.d.ts +61 -0
- package/dist/graphql/queries/search.queries.d.ts.map +1 -0
- package/dist/graphql/queries/search.queries.js +103 -0
- package/dist/graphql/queries/search.queries.js.map +1 -0
- package/dist/graphql/queries/transaction.queries.d.ts +60 -0
- package/dist/graphql/queries/transaction.queries.d.ts.map +1 -0
- package/dist/graphql/queries/transaction.queries.js +252 -0
- package/dist/graphql/queries/transaction.queries.js.map +1 -0
- package/dist/graphql/queries/vault.queries.d.ts +54 -0
- package/dist/graphql/queries/vault.queries.d.ts.map +1 -0
- package/dist/graphql/queries/vault.queries.js +78 -0
- package/dist/graphql/queries/vault.queries.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/competitor-comparison.d.ts +8 -0
- package/dist/prompts/competitor-comparison.d.ts.map +1 -0
- package/dist/prompts/competitor-comparison.js +432 -0
- package/dist/prompts/competitor-comparison.js.map +1 -0
- package/dist/prompts/curator-performance.d.ts +8 -0
- package/dist/prompts/curator-performance.d.ts.map +1 -0
- package/dist/prompts/curator-performance.js +383 -0
- package/dist/prompts/curator-performance.js.map +1 -0
- package/dist/prompts/financial-analysis.d.ts +8 -0
- package/dist/prompts/financial-analysis.d.ts.map +1 -0
- package/dist/prompts/financial-analysis.js +480 -0
- package/dist/prompts/financial-analysis.js.map +1 -0
- package/dist/prompts/index.d.ts +21 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +50 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/onboarding-first-vault.d.ts +8 -0
- package/dist/prompts/onboarding-first-vault.d.ts.map +1 -0
- package/dist/prompts/onboarding-first-vault.js +317 -0
- package/dist/prompts/onboarding-first-vault.js.map +1 -0
- package/dist/prompts/portfolio-optimization.d.ts +8 -0
- package/dist/prompts/portfolio-optimization.d.ts.map +1 -0
- package/dist/prompts/portfolio-optimization.js +412 -0
- package/dist/prompts/portfolio-optimization.js.map +1 -0
- package/dist/prompts/protocol-overview.d.ts +8 -0
- package/dist/prompts/protocol-overview.d.ts.map +1 -0
- package/dist/prompts/protocol-overview.js +398 -0
- package/dist/prompts/protocol-overview.js.map +1 -0
- package/dist/prompts/shared/disclaimers.d.ts +54 -0
- package/dist/prompts/shared/disclaimers.d.ts.map +1 -0
- package/dist/prompts/shared/disclaimers.js +400 -0
- package/dist/prompts/shared/disclaimers.js.map +1 -0
- package/dist/resources/glossary.d.ts +8 -0
- package/dist/resources/glossary.d.ts.map +1 -0
- package/dist/resources/glossary.js +407 -0
- package/dist/resources/glossary.js.map +1 -0
- package/dist/resources/index.d.ts +18 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +29 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/schema.d.ts +22 -0
- package/dist/resources/schema.d.ts.map +1 -0
- package/dist/resources/schema.js +67 -0
- package/dist/resources/schema.js.map +1 -0
- package/dist/schemas/config.schema.d.ts +46 -0
- package/dist/schemas/config.schema.d.ts.map +1 -0
- package/dist/schemas/config.schema.js +48 -0
- package/dist/schemas/config.schema.js.map +1 -0
- package/dist/sdk/__tests__/apr-service.test.d.ts +7 -0
- package/dist/sdk/__tests__/apr-service.test.d.ts.map +1 -0
- package/dist/sdk/__tests__/apr-service.test.js +385 -0
- package/dist/sdk/__tests__/apr-service.test.js.map +1 -0
- package/dist/sdk/__tests__/math-utils.test.d.ts +7 -0
- package/dist/sdk/__tests__/math-utils.test.d.ts.map +1 -0
- package/dist/sdk/__tests__/math-utils.test.js +185 -0
- package/dist/sdk/__tests__/math-utils.test.js.map +1 -0
- package/dist/sdk/__tests__/simulation-service.test.d.ts +5 -0
- package/dist/sdk/__tests__/simulation-service.test.d.ts.map +1 -0
- package/dist/sdk/__tests__/simulation-service.test.js +397 -0
- package/dist/sdk/__tests__/simulation-service.test.js.map +1 -0
- package/dist/sdk/__tests__/vault-utils.test.d.ts +7 -0
- package/dist/sdk/__tests__/vault-utils.test.d.ts.map +1 -0
- package/dist/sdk/__tests__/vault-utils.test.js +189 -0
- package/dist/sdk/__tests__/vault-utils.test.js.map +1 -0
- package/dist/sdk/apr-service.d.ts +101 -0
- package/dist/sdk/apr-service.d.ts.map +1 -0
- package/dist/sdk/apr-service.js +175 -0
- package/dist/sdk/apr-service.js.map +1 -0
- package/dist/sdk/math-utils.d.ts +138 -0
- package/dist/sdk/math-utils.d.ts.map +1 -0
- package/dist/sdk/math-utils.js +218 -0
- package/dist/sdk/math-utils.js.map +1 -0
- package/dist/sdk/simulation-service.d.ts +106 -0
- package/dist/sdk/simulation-service.d.ts.map +1 -0
- package/dist/sdk/simulation-service.js +143 -0
- package/dist/sdk/simulation-service.js.map +1 -0
- package/dist/sdk/vault-utils.d.ts +125 -0
- package/dist/sdk/vault-utils.d.ts.map +1 -0
- package/dist/sdk/vault-utils.js +165 -0
- package/dist/sdk/vault-utils.js.map +1 -0
- package/dist/server.d.ts +21 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +225 -0
- package/dist/server.js.map +1 -0
- package/dist/services/analytics/protocol-overview.service.d.ts +61 -0
- package/dist/services/analytics/protocol-overview.service.d.ts.map +1 -0
- package/dist/services/analytics/protocol-overview.service.js +182 -0
- package/dist/services/analytics/protocol-overview.service.js.map +1 -0
- package/dist/services/analytics/risk.service.d.ts +92 -0
- package/dist/services/analytics/risk.service.d.ts.map +1 -0
- package/dist/services/analytics/risk.service.js +423 -0
- package/dist/services/analytics/risk.service.js.map +1 -0
- package/dist/services/base.service.d.ts +39 -0
- package/dist/services/base.service.d.ts.map +1 -0
- package/dist/services/base.service.js +37 -0
- package/dist/services/base.service.js.map +1 -0
- package/dist/services/index.d.ts +30 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +101 -0
- package/dist/services/index.js.map +1 -0
- package/dist/tools/__tests__/simulate-vault.test.d.ts +5 -0
- package/dist/tools/__tests__/simulate-vault.test.d.ts.map +1 -0
- package/dist/tools/__tests__/simulate-vault.test.js +363 -0
- package/dist/tools/__tests__/simulate-vault.test.js.map +1 -0
- package/dist/tools/analyze-risk.d.ts +34 -0
- package/dist/tools/analyze-risk.d.ts.map +1 -0
- package/dist/tools/analyze-risk.js +100 -0
- package/dist/tools/analyze-risk.js.map +1 -0
- package/dist/tools/compare-vaults.d.ts +29 -0
- package/dist/tools/compare-vaults.d.ts.map +1 -0
- package/dist/tools/compare-vaults.js +285 -0
- package/dist/tools/compare-vaults.js.map +1 -0
- package/dist/tools/export-data.d.ts +34 -0
- package/dist/tools/export-data.d.ts.map +1 -0
- package/dist/tools/export-data.js +309 -0
- package/dist/tools/export-data.js.map +1 -0
- package/dist/tools/get-price-history.d.ts +29 -0
- package/dist/tools/get-price-history.d.ts.map +1 -0
- package/dist/tools/get-price-history.js +236 -0
- package/dist/tools/get-price-history.js.map +1 -0
- package/dist/tools/get-transactions.d.ts +29 -0
- package/dist/tools/get-transactions.d.ts.map +1 -0
- package/dist/tools/get-transactions.js +181 -0
- package/dist/tools/get-transactions.js.map +1 -0
- package/dist/tools/index.d.ts +26 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +32 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/optimize-portfolio.d.ts +37 -0
- package/dist/tools/optimize-portfolio.d.ts.map +1 -0
- package/dist/tools/optimize-portfolio.js +459 -0
- package/dist/tools/optimize-portfolio.js.map +1 -0
- package/dist/tools/predict-yield.d.ts +30 -0
- package/dist/tools/predict-yield.d.ts.map +1 -0
- package/dist/tools/predict-yield.js +248 -0
- package/dist/tools/predict-yield.js.map +1 -0
- package/dist/tools/query-graphql.d.ts +35 -0
- package/dist/tools/query-graphql.d.ts.map +1 -0
- package/dist/tools/query-graphql.js +54 -0
- package/dist/tools/query-graphql.js.map +1 -0
- package/dist/tools/registry.d.ts +42 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +231 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/search-vaults.d.ts +40 -0
- package/dist/tools/search-vaults.d.ts.map +1 -0
- package/dist/tools/search-vaults.js +184 -0
- package/dist/tools/search-vaults.js.map +1 -0
- package/dist/tools/simulate-vault.d.ts +80 -0
- package/dist/tools/simulate-vault.d.ts.map +1 -0
- package/dist/tools/simulate-vault.js +281 -0
- package/dist/tools/simulate-vault.js.map +1 -0
- package/dist/tools/user-portfolio.d.ts +30 -0
- package/dist/tools/user-portfolio.d.ts.map +1 -0
- package/dist/tools/user-portfolio.js +142 -0
- package/dist/tools/user-portfolio.js.map +1 -0
- package/dist/tools/vault-data.d.ts +23 -0
- package/dist/tools/vault-data.d.ts.map +1 -0
- package/dist/tools/vault-data.js +68 -0
- package/dist/tools/vault-data.js.map +1 -0
- package/dist/tools/vault-performance.d.ts +30 -0
- package/dist/tools/vault-performance.d.ts.map +1 -0
- package/dist/tools/vault-performance.js +275 -0
- package/dist/tools/vault-performance.js.map +1 -0
- package/dist/types/generated.d.ts +1109 -0
- package/dist/types/generated.d.ts.map +1 -0
- package/dist/types/generated.js +2 -0
- package/dist/types/generated.js.map +1 -0
- package/dist/types/index.d.ts +46 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/comparison-metrics.d.ts +120 -0
- package/dist/utils/comparison-metrics.d.ts.map +1 -0
- package/dist/utils/comparison-metrics.js +215 -0
- package/dist/utils/comparison-metrics.js.map +1 -0
- package/dist/utils/config-loader.d.ts +17 -0
- package/dist/utils/config-loader.d.ts.map +1 -0
- package/dist/utils/config-loader.js +45 -0
- package/dist/utils/config-loader.js.map +1 -0
- package/dist/utils/csv-generator.d.ts +89 -0
- package/dist/utils/csv-generator.d.ts.map +1 -0
- package/dist/utils/csv-generator.js +97 -0
- package/dist/utils/csv-generator.js.map +1 -0
- package/dist/utils/disclaimers.d.ts +70 -0
- package/dist/utils/disclaimers.d.ts.map +1 -0
- package/dist/utils/disclaimers.js +161 -0
- package/dist/utils/disclaimers.js.map +1 -0
- package/dist/utils/errors.d.ts +66 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +86 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/execute-tool-with-cache.d.ts +97 -0
- package/dist/utils/execute-tool-with-cache.d.ts.map +1 -0
- package/dist/utils/execute-tool-with-cache.js +105 -0
- package/dist/utils/execute-tool-with-cache.js.map +1 -0
- package/dist/utils/portfolio-optimization.d.ts +100 -0
- package/dist/utils/portfolio-optimization.d.ts.map +1 -0
- package/dist/utils/portfolio-optimization.js +283 -0
- package/dist/utils/portfolio-optimization.js.map +1 -0
- package/dist/utils/risk-scoring.d.ts +226 -0
- package/dist/utils/risk-scoring.d.ts.map +1 -0
- package/dist/utils/risk-scoring.js +523 -0
- package/dist/utils/risk-scoring.js.map +1 -0
- package/dist/utils/tool-error-handler.d.ts +16 -0
- package/dist/utils/tool-error-handler.d.ts.map +1 -0
- package/dist/utils/tool-error-handler.js +43 -0
- package/dist/utils/tool-error-handler.js.map +1 -0
- package/dist/utils/tool-handler.d.ts +33 -0
- package/dist/utils/tool-handler.d.ts.map +1 -0
- package/dist/utils/tool-handler.js +59 -0
- package/dist/utils/tool-handler.js.map +1 -0
- package/dist/utils/tool-response.d.ts +16 -0
- package/dist/utils/tool-response.d.ts.map +1 -0
- package/dist/utils/tool-response.js +25 -0
- package/dist/utils/tool-response.js.map +1 -0
- package/dist/utils/validators.d.ts +359 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +233 -0
- package/dist/utils/validators.js.map +1 -0
- package/dist/utils/yield-prediction.d.ts +69 -0
- package/dist/utils/yield-prediction.d.ts.map +1 -0
- package/dist/utils/yield-prediction.js +290 -0
- package/dist/utils/yield-prediction.js.map +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Risk Scoring Utility
|
|
3
|
+
*
|
|
4
|
+
* Multi-factor risk analysis algorithms for vault assessment.
|
|
5
|
+
* Provides comprehensive risk scoring across multiple dimensions.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Risk score breakdown by category
|
|
9
|
+
*/
|
|
10
|
+
export interface RiskScoreBreakdown {
|
|
11
|
+
tvlRisk: number;
|
|
12
|
+
concentrationRisk: number;
|
|
13
|
+
volatilityRisk: number;
|
|
14
|
+
ageRisk: number;
|
|
15
|
+
curatorRisk: number;
|
|
16
|
+
feeRisk: number;
|
|
17
|
+
liquidityRisk: number;
|
|
18
|
+
aprConsistencyRisk: number;
|
|
19
|
+
yieldSustainabilityRisk: number;
|
|
20
|
+
settlementRisk: number;
|
|
21
|
+
integrationComplexityRisk: number;
|
|
22
|
+
capacityUtilizationRisk: number;
|
|
23
|
+
overallRisk: number;
|
|
24
|
+
riskLevel: 'Low' | 'Medium' | 'High' | 'Critical';
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Risk thresholds for scoring
|
|
28
|
+
*/
|
|
29
|
+
export declare const RISK_THRESHOLDS: {
|
|
30
|
+
TVL_VERY_HIGH: number;
|
|
31
|
+
TVL_HIGH: number;
|
|
32
|
+
TVL_MEDIUM: number;
|
|
33
|
+
TVL_LOW: number;
|
|
34
|
+
CONCENTRATION_LOW: number;
|
|
35
|
+
CONCENTRATION_MEDIUM: number;
|
|
36
|
+
CONCENTRATION_HIGH: number;
|
|
37
|
+
VOLATILITY_LOW: number;
|
|
38
|
+
VOLATILITY_MEDIUM: number;
|
|
39
|
+
VOLATILITY_HIGH: number;
|
|
40
|
+
AGE_MATURE: number;
|
|
41
|
+
AGE_ESTABLISHED: number;
|
|
42
|
+
AGE_NEW: number;
|
|
43
|
+
OVERALL_LOW: number;
|
|
44
|
+
OVERALL_MEDIUM: number;
|
|
45
|
+
OVERALL_HIGH: number;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Calculate TVL-based risk score
|
|
49
|
+
* Higher TVL = lower risk (more liquidity and market validation)
|
|
50
|
+
*
|
|
51
|
+
* @param tvl - Total value locked in USD
|
|
52
|
+
* @returns Risk score 0-1 (0 = lowest risk, 1 = highest risk)
|
|
53
|
+
*/
|
|
54
|
+
export declare function calculateTVLRisk(tvl: number): number;
|
|
55
|
+
/**
|
|
56
|
+
* Calculate concentration risk score
|
|
57
|
+
* Measures vault's share of total protocol TVL
|
|
58
|
+
*
|
|
59
|
+
* @param vaultTVL - Vault's TVL in USD
|
|
60
|
+
* @param totalProtocolTVL - Total protocol TVL in USD
|
|
61
|
+
* @returns Risk score 0-1 (0 = lowest risk, 1 = highest risk)
|
|
62
|
+
*/
|
|
63
|
+
export declare function calculateConcentrationRisk(vaultTVL: number, totalProtocolTVL: number): number;
|
|
64
|
+
/**
|
|
65
|
+
* Calculate volatility risk score
|
|
66
|
+
* Based on price volatility over time
|
|
67
|
+
*
|
|
68
|
+
* @param pricePoints - Array of price per share values over time
|
|
69
|
+
* @returns Risk score 0-1 (0 = lowest risk, 1 = highest risk)
|
|
70
|
+
*/
|
|
71
|
+
export declare function calculateVolatilityRisk(pricePoints: number[]): number;
|
|
72
|
+
/**
|
|
73
|
+
* Calculate age-based risk score
|
|
74
|
+
* Newer vaults are riskier (less battle-tested)
|
|
75
|
+
*
|
|
76
|
+
* @param ageInDays - Vault age in days
|
|
77
|
+
* @returns Risk score 0-1 (0 = lowest risk, 1 = highest risk)
|
|
78
|
+
*/
|
|
79
|
+
export declare function calculateAgeRisk(ageInDays: number): number;
|
|
80
|
+
/**
|
|
81
|
+
* Calculate curator reputation risk score
|
|
82
|
+
* Based on curator's track record, professional signals, and vault management
|
|
83
|
+
*
|
|
84
|
+
* @param curatorVaultCount - Number of vaults managed by curator
|
|
85
|
+
* @param curatorSuccessRate - Success rate (0-1) of curator's vaults
|
|
86
|
+
* @param professionalSignals - Professional indicators: website, description, multiple curators
|
|
87
|
+
* @returns Risk score 0-1 (0 = lowest risk, 1 = highest risk)
|
|
88
|
+
*/
|
|
89
|
+
export declare function calculateCuratorRisk(curatorVaultCount: number, curatorSuccessRate?: number, professionalSignals?: {
|
|
90
|
+
hasWebsite: boolean;
|
|
91
|
+
hasDescription: boolean;
|
|
92
|
+
multipleCurators: boolean;
|
|
93
|
+
curatorCount: number;
|
|
94
|
+
}): number;
|
|
95
|
+
/**
|
|
96
|
+
* Calculate fee risk score
|
|
97
|
+
* Based on management fees and performance fee impact
|
|
98
|
+
*
|
|
99
|
+
* @param managementFee - Annual management fee percentage (e.g., 2 for 2%)
|
|
100
|
+
* @param performanceFee - Performance fee percentage (e.g., 20 for 20%)
|
|
101
|
+
* @param performanceFeeActive - Whether performance fee is currently active (above HWM)
|
|
102
|
+
* @returns Risk score 0-1 (0 = lowest risk, 1 = highest risk)
|
|
103
|
+
*/
|
|
104
|
+
export declare function calculateFeeRisk(managementFee: number, performanceFee: number, performanceFeeActive: boolean): number;
|
|
105
|
+
/**
|
|
106
|
+
* Calculate liquidity risk score
|
|
107
|
+
* Based on safe assets vs pending redemptions coverage
|
|
108
|
+
*
|
|
109
|
+
* @param safeAssets - Assets available for immediate redemptions (USD)
|
|
110
|
+
* @param pendingRedemptions - Outstanding redemption requests (USD)
|
|
111
|
+
* @returns Risk score 0-1 (0 = lowest risk, 1 = highest risk)
|
|
112
|
+
*/
|
|
113
|
+
export declare function calculateLiquidityRisk(safeAssets: number, pendingRedemptions: number): number;
|
|
114
|
+
/**
|
|
115
|
+
* Calculate APR consistency risk score
|
|
116
|
+
* Analyzes volatility of returns across different time periods
|
|
117
|
+
*
|
|
118
|
+
* @param aprData - APR values across different time periods
|
|
119
|
+
* @returns Risk score 0-1 (0 = lowest risk, 1 = highest risk)
|
|
120
|
+
*/
|
|
121
|
+
export declare function calculateAPRConsistencyRisk(aprData: {
|
|
122
|
+
weeklyApr?: number;
|
|
123
|
+
monthlyApr?: number;
|
|
124
|
+
yearlyApr?: number;
|
|
125
|
+
inceptionApr?: number;
|
|
126
|
+
}): number;
|
|
127
|
+
/**
|
|
128
|
+
* Calculate yield sustainability risk score
|
|
129
|
+
* Assesses composition of APR sources (native vs temporary incentives)
|
|
130
|
+
*
|
|
131
|
+
* @param yieldComposition - Breakdown of yield sources
|
|
132
|
+
* @returns Risk score 0-1 (0 = lowest risk, 1 = highest risk)
|
|
133
|
+
*/
|
|
134
|
+
export declare function calculateYieldSustainabilityRisk(yieldComposition: {
|
|
135
|
+
totalApr: number;
|
|
136
|
+
nativeYieldsApr: number;
|
|
137
|
+
airdropsApr: number;
|
|
138
|
+
incentivesApr: number;
|
|
139
|
+
}): number;
|
|
140
|
+
/**
|
|
141
|
+
* Calculate settlement time risk score
|
|
142
|
+
* Quantifies redemption delay and operational efficiency
|
|
143
|
+
*
|
|
144
|
+
* @param settlementData - Settlement time and pending operations data
|
|
145
|
+
* @returns Risk score 0-1 (0 = lowest risk, 1 = highest risk)
|
|
146
|
+
*/
|
|
147
|
+
export declare function calculateSettlementRisk(settlementData: {
|
|
148
|
+
averageSettlementDays: number;
|
|
149
|
+
pendingOperationsRatio: number;
|
|
150
|
+
}): number;
|
|
151
|
+
/**
|
|
152
|
+
* Calculate integration complexity risk score
|
|
153
|
+
* Assesses smart contract attack surface based on number of integrations
|
|
154
|
+
*
|
|
155
|
+
* @param integrationCount - Number of DeFi protocol integrations
|
|
156
|
+
* @returns Risk score 0-1 (0 = lowest risk, 1 = highest risk)
|
|
157
|
+
*/
|
|
158
|
+
export declare function calculateIntegrationComplexityRisk(integrationCount: number): number;
|
|
159
|
+
/**
|
|
160
|
+
* Calculate capacity utilization risk score
|
|
161
|
+
* Assesses deposit headroom and demand signals
|
|
162
|
+
*
|
|
163
|
+
* @param utilizationData - Capacity and utilization data
|
|
164
|
+
* @returns Risk score 0-1 (0 = lowest risk, 1 = highest risk)
|
|
165
|
+
*/
|
|
166
|
+
export declare function calculateCapacityUtilizationRisk(utilizationData: {
|
|
167
|
+
totalAssets: number;
|
|
168
|
+
maxCapacity: number | null;
|
|
169
|
+
}): number;
|
|
170
|
+
/**
|
|
171
|
+
* Calculate overall risk score with weighted factors
|
|
172
|
+
*
|
|
173
|
+
* @param breakdown - Individual risk factor scores
|
|
174
|
+
* @returns Overall risk score 0-1 and risk level
|
|
175
|
+
*/
|
|
176
|
+
export declare function calculateOverallRisk(breakdown: Omit<RiskScoreBreakdown, 'overallRisk' | 'riskLevel'>): {
|
|
177
|
+
overallRisk: number;
|
|
178
|
+
riskLevel: 'Low' | 'Medium' | 'High' | 'Critical';
|
|
179
|
+
};
|
|
180
|
+
/**
|
|
181
|
+
* Generate comprehensive risk analysis
|
|
182
|
+
*
|
|
183
|
+
* @param params - Risk analysis parameters
|
|
184
|
+
* @returns Complete risk score breakdown
|
|
185
|
+
*/
|
|
186
|
+
export declare function analyzeRisk(params: {
|
|
187
|
+
tvl: number;
|
|
188
|
+
totalProtocolTVL: number;
|
|
189
|
+
priceHistory: number[];
|
|
190
|
+
ageInDays: number;
|
|
191
|
+
curatorVaultCount: number;
|
|
192
|
+
curatorSuccessRate?: number;
|
|
193
|
+
curatorProfessionalSignals?: {
|
|
194
|
+
hasWebsite: boolean;
|
|
195
|
+
hasDescription: boolean;
|
|
196
|
+
multipleCurators: boolean;
|
|
197
|
+
curatorCount: number;
|
|
198
|
+
};
|
|
199
|
+
managementFee: number;
|
|
200
|
+
performanceFee: number;
|
|
201
|
+
performanceFeeActive: boolean;
|
|
202
|
+
safeAssets: number;
|
|
203
|
+
pendingRedemptions: number;
|
|
204
|
+
aprData?: {
|
|
205
|
+
weeklyApr?: number;
|
|
206
|
+
monthlyApr?: number;
|
|
207
|
+
yearlyApr?: number;
|
|
208
|
+
inceptionApr?: number;
|
|
209
|
+
};
|
|
210
|
+
yieldComposition?: {
|
|
211
|
+
totalApr: number;
|
|
212
|
+
nativeYieldsApr: number;
|
|
213
|
+
airdropsApr: number;
|
|
214
|
+
incentivesApr: number;
|
|
215
|
+
};
|
|
216
|
+
settlementData?: {
|
|
217
|
+
averageSettlementDays: number;
|
|
218
|
+
pendingOperationsRatio: number;
|
|
219
|
+
};
|
|
220
|
+
integrationCount?: number;
|
|
221
|
+
capacityData?: {
|
|
222
|
+
totalAssets: number;
|
|
223
|
+
maxCapacity: number | null;
|
|
224
|
+
};
|
|
225
|
+
}): RiskScoreBreakdown;
|
|
226
|
+
//# sourceMappingURL=risk-scoring.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"risk-scoring.d.ts","sourceRoot":"","sources":["../../src/utils/risk-scoring.ts"],"names":[],"mappings":"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"}
|