@lagoon-protocol/lagoon-mcp 0.5.0 → 0.7.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/README.md +72 -54
- package/dist/cache/index.d.ts +4 -1
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/index.js +4 -1
- package/dist/cache/index.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/core/container.js +1 -1
- package/dist/graphql/fragments/apr-breakdown.fragment.d.ts +4 -1
- package/dist/graphql/fragments/apr-breakdown.fragment.d.ts.map +1 -1
- package/dist/graphql/fragments/apr-breakdown.fragment.js +3 -0
- package/dist/graphql/fragments/apr-breakdown.fragment.js.map +1 -1
- package/dist/graphql/fragments/composition.fragment.d.ts +23 -134
- package/dist/graphql/fragments/composition.fragment.d.ts.map +1 -1
- package/dist/graphql/fragments/composition.fragment.js +9 -7
- package/dist/graphql/fragments/composition.fragment.js.map +1 -1
- package/dist/graphql/fragments/index.d.ts +1 -1
- package/dist/graphql/fragments/index.d.ts.map +1 -1
- package/dist/graphql/fragments/index.js +5 -4
- package/dist/graphql/fragments/index.js.map +1 -1
- package/dist/graphql/fragments/transaction-base.fragment.d.ts +1 -1
- package/dist/graphql/fragments/transaction-base.fragment.d.ts.map +1 -1
- package/dist/graphql/fragments/transaction-base.fragment.js +0 -1
- package/dist/graphql/fragments/transaction-base.fragment.js.map +1 -1
- package/dist/graphql/fragments/vault.fragment.d.ts +29 -1
- package/dist/graphql/fragments/vault.fragment.d.ts.map +1 -1
- package/dist/graphql/fragments/vault.fragment.js +29 -0
- package/dist/graphql/fragments/vault.fragment.js.map +1 -1
- package/dist/graphql/queries/composition.queries.d.ts +10 -28
- package/dist/graphql/queries/composition.queries.d.ts.map +1 -1
- package/dist/graphql/queries/composition.queries.js +17 -28
- package/dist/graphql/queries/composition.queries.js.map +1 -1
- package/dist/graphql/queries/discovery.queries.d.ts +50 -0
- package/dist/graphql/queries/discovery.queries.d.ts.map +1 -0
- package/dist/graphql/queries/discovery.queries.js +188 -0
- package/dist/graphql/queries/discovery.queries.js.map +1 -0
- package/dist/graphql/queries/export.queries.d.ts +5 -7
- package/dist/graphql/queries/export.queries.d.ts.map +1 -1
- package/dist/graphql/queries/export.queries.js +22 -28
- package/dist/graphql/queries/export.queries.js.map +1 -1
- package/dist/graphql/queries/index.d.ts +4 -3
- package/dist/graphql/queries/index.d.ts.map +1 -1
- package/dist/graphql/queries/index.js +5 -3
- package/dist/graphql/queries/index.js.map +1 -1
- package/dist/graphql/queries/performance.queries.d.ts +6 -4
- package/dist/graphql/queries/performance.queries.d.ts.map +1 -1
- package/dist/graphql/queries/performance.queries.js +5 -11
- package/dist/graphql/queries/performance.queries.js.map +1 -1
- package/dist/graphql/queries/portfolio.queries.d.ts +6 -12
- package/dist/graphql/queries/portfolio.queries.d.ts.map +1 -1
- package/dist/graphql/queries/portfolio.queries.js +21 -88
- package/dist/graphql/queries/portfolio.queries.js.map +1 -1
- package/dist/graphql/queries/prediction.queries.d.ts +13 -15
- package/dist/graphql/queries/prediction.queries.d.ts.map +1 -1
- package/dist/graphql/queries/prediction.queries.js +12 -31
- package/dist/graphql/queries/prediction.queries.js.map +1 -1
- package/dist/graphql/queries/risk.queries.d.ts +3 -3
- package/dist/graphql/queries/risk.queries.d.ts.map +1 -1
- package/dist/graphql/queries/risk.queries.js +7 -22
- package/dist/graphql/queries/risk.queries.js.map +1 -1
- package/dist/graphql/queries/search.queries.d.ts.map +1 -1
- package/dist/graphql/queries/search.queries.js +6 -2
- package/dist/graphql/queries/search.queries.js.map +1 -1
- package/dist/graphql/queries/transaction.queries.d.ts +6 -26
- package/dist/graphql/queries/transaction.queries.d.ts.map +1 -1
- package/dist/graphql/queries/transaction.queries.js +227 -59
- package/dist/graphql/queries/transaction.queries.js.map +1 -1
- package/dist/graphql/queries/vault.queries.d.ts +21 -3
- package/dist/graphql/queries/vault.queries.d.ts.map +1 -1
- package/dist/graphql/queries/vault.queries.js +38 -0
- package/dist/graphql/queries/vault.queries.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/services/analytics/risk.service.d.ts +52 -33
- package/dist/services/analytics/risk.service.d.ts.map +1 -1
- package/dist/services/analytics/risk.service.js +165 -155
- 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 +50 -77
- package/dist/tools/compare-vaults.js.map +1 -1
- package/dist/tools/export-data.d.ts.map +1 -1
- package/dist/tools/export-data.js +10 -16
- package/dist/tools/export-data.js.map +1 -1
- package/dist/tools/get-asset.d.ts +17 -0
- package/dist/tools/get-asset.d.ts.map +1 -0
- package/dist/tools/get-asset.js +44 -0
- package/dist/tools/get-asset.js.map +1 -0
- package/dist/tools/get-curator.d.ts +13 -0
- package/dist/tools/get-curator.d.ts.map +1 -0
- package/dist/tools/get-curator.js +81 -0
- package/dist/tools/get-curator.js.map +1 -0
- package/dist/tools/get-global-tvl.d.ts +20 -0
- package/dist/tools/get-global-tvl.d.ts.map +1 -0
- package/dist/tools/get-global-tvl.js +38 -0
- package/dist/tools/get-global-tvl.js.map +1 -0
- package/dist/tools/get-historical-state.d.ts +22 -0
- package/dist/tools/get-historical-state.d.ts.map +1 -0
- package/dist/tools/get-historical-state.js +65 -0
- package/dist/tools/get-historical-state.js.map +1 -0
- package/dist/tools/get-indexing-status.d.ts +20 -0
- package/dist/tools/get-indexing-status.d.ts.map +1 -0
- package/dist/tools/get-indexing-status.js +38 -0
- package/dist/tools/get-indexing-status.js.map +1 -0
- package/dist/tools/get-price-history.d.ts.map +1 -1
- package/dist/tools/get-price-history.js +55 -63
- package/dist/tools/get-price-history.js.map +1 -1
- package/dist/tools/get-transactions.d.ts.map +1 -1
- package/dist/tools/get-transactions.js +3 -1
- package/dist/tools/get-transactions.js.map +1 -1
- package/dist/tools/list-chains.d.ts +16 -0
- package/dist/tools/list-chains.d.ts.map +1 -0
- package/dist/tools/list-chains.js +46 -0
- package/dist/tools/list-chains.js.map +1 -0
- package/dist/tools/list-curators.d.ts +18 -0
- package/dist/tools/list-curators.d.ts.map +1 -0
- package/dist/tools/list-curators.js +49 -0
- package/dist/tools/list-curators.js.map +1 -0
- package/dist/tools/optimize-portfolio.d.ts.map +1 -1
- package/dist/tools/optimize-portfolio.js +6 -17
- package/dist/tools/optimize-portfolio.js.map +1 -1
- package/dist/tools/predict-yield.d.ts.map +1 -1
- package/dist/tools/predict-yield.js +109 -11
- package/dist/tools/predict-yield.js.map +1 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +83 -11
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/search-vaults.d.ts.map +1 -1
- package/dist/tools/search-vaults.js +9 -2
- package/dist/tools/search-vaults.js.map +1 -1
- package/dist/tools/simulate-vault.d.ts +1 -1
- package/dist/tools/user-portfolio.d.ts.map +1 -1
- package/dist/tools/user-portfolio.js +30 -51
- package/dist/tools/user-portfolio.js.map +1 -1
- package/dist/tools/vault-composition.d.ts +18 -15
- package/dist/tools/vault-composition.d.ts.map +1 -1
- package/dist/tools/vault-composition.js +71 -155
- package/dist/tools/vault-composition.js.map +1 -1
- package/dist/tools/vault-performance.d.ts.map +1 -1
- package/dist/tools/vault-performance.js +7 -19
- package/dist/tools/vault-performance.js.map +1 -1
- package/dist/types/generated.d.ts +1191 -21
- package/dist/types/generated.d.ts.map +1 -1
- package/dist/utils/comparison-metrics.d.ts +13 -1
- package/dist/utils/comparison-metrics.d.ts.map +1 -1
- package/dist/utils/comparison-metrics.js +29 -4
- package/dist/utils/comparison-metrics.js.map +1 -1
- package/dist/utils/composition-metrics.d.ts +42 -0
- package/dist/utils/composition-metrics.d.ts.map +1 -0
- package/dist/utils/composition-metrics.js +50 -0
- package/dist/utils/composition-metrics.js.map +1 -0
- package/dist/utils/csv-generator.d.ts +4 -1
- package/dist/utils/csv-generator.d.ts.map +1 -1
- package/dist/utils/csv-generator.js +8 -4
- package/dist/utils/csv-generator.js.map +1 -1
- package/dist/utils/fee-formatting.d.ts +41 -0
- package/dist/utils/fee-formatting.d.ts.map +1 -0
- package/dist/utils/fee-formatting.js +57 -0
- package/dist/utils/fee-formatting.js.map +1 -0
- package/dist/utils/operational-signals.d.ts +55 -0
- package/dist/utils/operational-signals.d.ts.map +1 -0
- package/dist/utils/operational-signals.js +105 -0
- package/dist/utils/operational-signals.js.map +1 -0
- package/dist/utils/tool-error-handler.d.ts.map +1 -1
- package/dist/utils/tool-error-handler.js +8 -6
- package/dist/utils/tool-error-handler.js.map +1 -1
- package/dist/utils/validators.d.ts +112 -3
- package/dist/utils/validators.d.ts.map +1 -1
- package/dist/utils/validators.js +108 -4
- package/dist/utils/validators.js.map +1 -1
- package/dist/utils/yield-prediction.d.ts +3 -0
- package/dist/utils/yield-prediction.d.ts.map +1 -1
- package/dist/utils/yield-prediction.js +13 -1
- package/dist/utils/yield-prediction.js.map +1 -1
- package/package.json +2 -2
- package/dist/graphql/fragments.d.ts +0 -183
- package/dist/graphql/fragments.d.ts.map +0 -1
- package/dist/graphql/fragments.js +0 -297
- package/dist/graphql/fragments.js.map +0 -1
- package/dist/graphql/queries/period-summaries.d.ts +0 -15
- package/dist/graphql/queries/period-summaries.d.ts.map +0 -1
- package/dist/graphql/queries/period-summaries.js +0 -24
- package/dist/graphql/queries/period-summaries.js.map +0 -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
- package/dist/tools/index.d.ts +0 -26
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -32
- package/dist/tools/index.js.map +0 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fee Formatting Utilities
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for converting Lagoon's basis-point fee values
|
|
5
|
+
* (uint16 from GraphQL; `2000` = 20%) into percentages for display and risk
|
|
6
|
+
* calculations.
|
|
7
|
+
*
|
|
8
|
+
* The SDK simulator (`@lagoon-protocol/v0-computation`) expects raw basis
|
|
9
|
+
* points — do NOT use these helpers in the simulation path.
|
|
10
|
+
*
|
|
11
|
+
* Covers all fee fields on `VaultState`:
|
|
12
|
+
* - managementFee, performanceFee, protocolFee (legacy fee model)
|
|
13
|
+
* - entryRate, exitRate, haircutRate (v0.6+ fee model)
|
|
14
|
+
* - upcomingManagementFee, upcomingPerformanceFee (staged rates)
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Convert a basis-point value to a decimal percentage.
|
|
18
|
+
* `2000` → `20.0`. Returns `0` for `null`/`undefined`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function basisPointsToPercent(bps: number | null | undefined): number;
|
|
21
|
+
/**
|
|
22
|
+
* Format a basis-point value as a human-readable percentage string.
|
|
23
|
+
* `2000` → `"20.00%"`. Returns `"N/A"` for `null`/`undefined`.
|
|
24
|
+
*/
|
|
25
|
+
export declare function formatBasisPointsAsPercent(bps: number | null | undefined, decimals?: number): string;
|
|
26
|
+
/**
|
|
27
|
+
* Apply `basisPointsToPercent` to every fee field on a VaultState-like
|
|
28
|
+
* object. Returns a shallow copy with numeric percentages (not basis points).
|
|
29
|
+
* Useful when emitting fees to a downstream consumer that expects %.
|
|
30
|
+
*/
|
|
31
|
+
export declare function normalizeFeesToPercent<T extends {
|
|
32
|
+
managementFee?: number | null;
|
|
33
|
+
performanceFee?: number | null;
|
|
34
|
+
protocolFee?: number | null;
|
|
35
|
+
entryRate?: number | null;
|
|
36
|
+
exitRate?: number | null;
|
|
37
|
+
haircutRate?: number | null;
|
|
38
|
+
upcomingManagementFee?: number | null;
|
|
39
|
+
upcomingPerformanceFee?: number | null;
|
|
40
|
+
}>(state: T): T;
|
|
41
|
+
//# sourceMappingURL=fee-formatting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fee-formatting.d.ts","sourceRoot":"","sources":["../../src/utils/fee-formatting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAG3E;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,SAAI,GAAG,MAAM,CAG/F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,SAAS;IACR,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC,EACD,KAAK,EAAE,CAAC,GAAG,CAAC,CAkBb"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fee Formatting Utilities
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for converting Lagoon's basis-point fee values
|
|
5
|
+
* (uint16 from GraphQL; `2000` = 20%) into percentages for display and risk
|
|
6
|
+
* calculations.
|
|
7
|
+
*
|
|
8
|
+
* The SDK simulator (`@lagoon-protocol/v0-computation`) expects raw basis
|
|
9
|
+
* points — do NOT use these helpers in the simulation path.
|
|
10
|
+
*
|
|
11
|
+
* Covers all fee fields on `VaultState`:
|
|
12
|
+
* - managementFee, performanceFee, protocolFee (legacy fee model)
|
|
13
|
+
* - entryRate, exitRate, haircutRate (v0.6+ fee model)
|
|
14
|
+
* - upcomingManagementFee, upcomingPerformanceFee (staged rates)
|
|
15
|
+
*/
|
|
16
|
+
const BASIS_POINTS_PER_PERCENT = 100;
|
|
17
|
+
/**
|
|
18
|
+
* Convert a basis-point value to a decimal percentage.
|
|
19
|
+
* `2000` → `20.0`. Returns `0` for `null`/`undefined`.
|
|
20
|
+
*/
|
|
21
|
+
export function basisPointsToPercent(bps) {
|
|
22
|
+
if (bps == null)
|
|
23
|
+
return 0;
|
|
24
|
+
return bps / BASIS_POINTS_PER_PERCENT;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Format a basis-point value as a human-readable percentage string.
|
|
28
|
+
* `2000` → `"20.00%"`. Returns `"N/A"` for `null`/`undefined`.
|
|
29
|
+
*/
|
|
30
|
+
export function formatBasisPointsAsPercent(bps, decimals = 2) {
|
|
31
|
+
if (bps == null)
|
|
32
|
+
return 'N/A';
|
|
33
|
+
return `${(bps / BASIS_POINTS_PER_PERCENT).toFixed(decimals)}%`;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Apply `basisPointsToPercent` to every fee field on a VaultState-like
|
|
37
|
+
* object. Returns a shallow copy with numeric percentages (not basis points).
|
|
38
|
+
* Useful when emitting fees to a downstream consumer that expects %.
|
|
39
|
+
*/
|
|
40
|
+
export function normalizeFeesToPercent(state) {
|
|
41
|
+
return {
|
|
42
|
+
...state,
|
|
43
|
+
managementFee: basisPointsToPercent(state.managementFee),
|
|
44
|
+
performanceFee: basisPointsToPercent(state.performanceFee),
|
|
45
|
+
protocolFee: basisPointsToPercent(state.protocolFee),
|
|
46
|
+
entryRate: basisPointsToPercent(state.entryRate),
|
|
47
|
+
exitRate: basisPointsToPercent(state.exitRate),
|
|
48
|
+
haircutRate: basisPointsToPercent(state.haircutRate),
|
|
49
|
+
upcomingManagementFee: state.upcomingManagementFee == null
|
|
50
|
+
? null
|
|
51
|
+
: basisPointsToPercent(state.upcomingManagementFee),
|
|
52
|
+
upcomingPerformanceFee: state.upcomingPerformanceFee == null
|
|
53
|
+
? null
|
|
54
|
+
: basisPointsToPercent(state.upcomingPerformanceFee),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=fee-formatting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fee-formatting.js","sourceRoot":"","sources":["../../src/utils/fee-formatting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAErC;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAA8B;IACjE,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,CAAC,CAAC;IAC1B,OAAO,GAAG,GAAG,wBAAwB,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,GAA8B,EAAE,QAAQ,GAAG,CAAC;IACrF,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9B,OAAO,GAAG,CAAC,GAAG,GAAG,wBAAwB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAWpC,KAAQ;IACR,OAAO;QACL,GAAG,KAAK;QACR,aAAa,EAAE,oBAAoB,CAAC,KAAK,CAAC,aAAa,CAAC;QACxD,cAAc,EAAE,oBAAoB,CAAC,KAAK,CAAC,cAAc,CAAC;QAC1D,WAAW,EAAE,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC;QACpD,SAAS,EAAE,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC;QAChD,QAAQ,EAAE,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC9C,WAAW,EAAE,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC;QACpD,qBAAqB,EACnB,KAAK,CAAC,qBAAqB,IAAI,IAAI;YACjC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,qBAAqB,CAAC;QACvD,sBAAsB,EACpB,KAAK,CAAC,sBAAsB,IAAI,IAAI;YAClC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,sBAAsB,CAAC;KACzD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operational signals derived from `VaultState` v0.6+ flags.
|
|
3
|
+
*
|
|
4
|
+
* These are NOT inputs to the calibrated 14-factor weighted risk score in
|
|
5
|
+
* `src/utils/risk-scoring.ts` — adding a 15th factor would force a weight
|
|
6
|
+
* reallocation and invalidate test calibration. Instead, signals:
|
|
7
|
+
*
|
|
8
|
+
* 1. Are surfaced as a separate output block (`operationalSignals[]`).
|
|
9
|
+
* 2. Apply a *risk-level floor* on the bucket (Critical/High/Medium/Low),
|
|
10
|
+
* following the same pattern as `CRITICAL_FACTOR_THRESHOLD` in
|
|
11
|
+
* `calculateOverallRisk` — the numeric score is unchanged, only the
|
|
12
|
+
* bucket can move up.
|
|
13
|
+
*
|
|
14
|
+
* Recomputed on every `analyze_risk` call (no separate cache horizon) — they
|
|
15
|
+
* derive from already-cached vault state, so the cost is negligible, and a
|
|
16
|
+
* `stale_total_assets` signal would silently expire if we cached it.
|
|
17
|
+
*/
|
|
18
|
+
export type OperationalSignalCode = 'paused' | 'safe_unlocked' | 'super_operator_unlocked' | 'blacklist_mode_active' | 'stale_total_assets';
|
|
19
|
+
export type OperationalSeverity = 'Critical' | 'High' | 'Medium';
|
|
20
|
+
export interface OperationalSignal {
|
|
21
|
+
code: OperationalSignalCode;
|
|
22
|
+
severity: OperationalSeverity;
|
|
23
|
+
message: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* VaultState shape consumed by this evaluator. Intentionally a structural
|
|
27
|
+
* subset of `VaultData['state']` (from `src/graphql/fragments/vault.fragment.ts`)
|
|
28
|
+
* so we don't depend on the full fragment for unit-testable signal evaluation.
|
|
29
|
+
*/
|
|
30
|
+
export interface OperationalSignalsState {
|
|
31
|
+
isPaused?: boolean;
|
|
32
|
+
safeLocked?: boolean;
|
|
33
|
+
superOperatorLocked?: boolean | null;
|
|
34
|
+
accessMode?: 'Whitelist' | 'Blacklist' | null;
|
|
35
|
+
blacklist?: string[] | null;
|
|
36
|
+
totalAssetsExpiration?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Evaluate `state` against each signal rule. `nowSeconds` is injected for
|
|
40
|
+
* deterministic testability (don't read `Date.now()` here).
|
|
41
|
+
*/
|
|
42
|
+
export declare function evaluateOperationalSignals(state: OperationalSignalsState | null | undefined, nowSeconds: number): OperationalSignal[];
|
|
43
|
+
/**
|
|
44
|
+
* The risk-level floor implied by a set of signals. Critical > High > Medium.
|
|
45
|
+
* Returns null when no signals are present.
|
|
46
|
+
*
|
|
47
|
+
* Pair with `riskLevelMax(weightedLevel, floor)` to compute the effective
|
|
48
|
+
* level: the floor can only move the bucket up, never down.
|
|
49
|
+
*/
|
|
50
|
+
export declare function operationalSignalFloor(signals: OperationalSignal[]): 'Critical' | 'High' | 'Medium' | null;
|
|
51
|
+
/**
|
|
52
|
+
* Take the worse (higher) of two risk levels.
|
|
53
|
+
*/
|
|
54
|
+
export declare function riskLevelMax(a: 'Low' | 'Medium' | 'High' | 'Critical', b: 'Low' | 'Medium' | 'High' | 'Critical' | null): 'Low' | 'Medium' | 'High' | 'Critical';
|
|
55
|
+
//# sourceMappingURL=operational-signals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operational-signals.d.ts","sourceRoot":"","sources":["../../src/utils/operational-signals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,GACR,eAAe,GACf,yBAAyB,GACzB,uBAAuB,GACvB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,mBAAmB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,uBAAuB,GAAG,IAAI,GAAG,SAAS,EACjD,UAAU,EAAE,MAAM,GACjB,iBAAiB,EAAE,CA8DrB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,iBAAiB,EAAE,GAC3B,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI,CAKvC;AASD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,EACzC,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,GAC/C,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAGxC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operational signals derived from `VaultState` v0.6+ flags.
|
|
3
|
+
*
|
|
4
|
+
* These are NOT inputs to the calibrated 14-factor weighted risk score in
|
|
5
|
+
* `src/utils/risk-scoring.ts` — adding a 15th factor would force a weight
|
|
6
|
+
* reallocation and invalidate test calibration. Instead, signals:
|
|
7
|
+
*
|
|
8
|
+
* 1. Are surfaced as a separate output block (`operationalSignals[]`).
|
|
9
|
+
* 2. Apply a *risk-level floor* on the bucket (Critical/High/Medium/Low),
|
|
10
|
+
* following the same pattern as `CRITICAL_FACTOR_THRESHOLD` in
|
|
11
|
+
* `calculateOverallRisk` — the numeric score is unchanged, only the
|
|
12
|
+
* bucket can move up.
|
|
13
|
+
*
|
|
14
|
+
* Recomputed on every `analyze_risk` call (no separate cache horizon) — they
|
|
15
|
+
* derive from already-cached vault state, so the cost is negligible, and a
|
|
16
|
+
* `stale_total_assets` signal would silently expire if we cached it.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Evaluate `state` against each signal rule. `nowSeconds` is injected for
|
|
20
|
+
* deterministic testability (don't read `Date.now()` here).
|
|
21
|
+
*/
|
|
22
|
+
export function evaluateOperationalSignals(state, nowSeconds) {
|
|
23
|
+
if (!state)
|
|
24
|
+
return [];
|
|
25
|
+
const signals = [];
|
|
26
|
+
if (state.isPaused === true) {
|
|
27
|
+
signals.push({
|
|
28
|
+
code: 'paused',
|
|
29
|
+
severity: 'Critical',
|
|
30
|
+
message: 'Vault is currently paused — deposits, redeems, and settlements are halted.',
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
if (state.safeLocked === false) {
|
|
34
|
+
signals.push({
|
|
35
|
+
code: 'safe_unlocked',
|
|
36
|
+
severity: 'High',
|
|
37
|
+
message: 'Safe (fund custody) address can still be changed by the vault owner — a malicious owner could rotate custody.',
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
// superOperatorLocked is null on pre-v0.6.0 vaults that lack the role.
|
|
41
|
+
// Only flag when it's explicitly false (role exists and is mutable).
|
|
42
|
+
if (state.superOperatorLocked === false) {
|
|
43
|
+
signals.push({
|
|
44
|
+
code: 'super_operator_unlocked',
|
|
45
|
+
severity: 'High',
|
|
46
|
+
message: 'Super-operator role can still be changed — the holder can act on behalf of any controller and bypass access checks.',
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
if (state.accessMode === 'Blacklist' &&
|
|
50
|
+
Array.isArray(state.blacklist) &&
|
|
51
|
+
state.blacklist.length > 0) {
|
|
52
|
+
// Don't embed the exact blacklist size — for vault-operator (non-OFAC)
|
|
53
|
+
// blacklists the count can be sensitive operator metadata, and it adds
|
|
54
|
+
// no risk-analytic value beyond "non-empty". Callers needing the exact
|
|
55
|
+
// size can read state.blacklist directly via get_vault_data.
|
|
56
|
+
signals.push({
|
|
57
|
+
code: 'blacklist_mode_active',
|
|
58
|
+
severity: 'Medium',
|
|
59
|
+
message: 'Vault enforces a non-empty blacklist — operator can deny specific users access.',
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
if (state.totalAssetsExpiration) {
|
|
63
|
+
const expiration = Number(state.totalAssetsExpiration);
|
|
64
|
+
// 0 means "not configured" — skip the check rather than treat as stale.
|
|
65
|
+
if (Number.isFinite(expiration) && expiration > 0 && nowSeconds > expiration) {
|
|
66
|
+
signals.push({
|
|
67
|
+
code: 'stale_total_assets',
|
|
68
|
+
severity: 'High',
|
|
69
|
+
message: 'totalAssets valuation has expired — synchronous operations may be disabled and downstream analytics may be working from a stale TVL.',
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return signals;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The risk-level floor implied by a set of signals. Critical > High > Medium.
|
|
77
|
+
* Returns null when no signals are present.
|
|
78
|
+
*
|
|
79
|
+
* Pair with `riskLevelMax(weightedLevel, floor)` to compute the effective
|
|
80
|
+
* level: the floor can only move the bucket up, never down.
|
|
81
|
+
*/
|
|
82
|
+
export function operationalSignalFloor(signals) {
|
|
83
|
+
if (signals.length === 0)
|
|
84
|
+
return null;
|
|
85
|
+
if (signals.some((s) => s.severity === 'Critical'))
|
|
86
|
+
return 'Critical';
|
|
87
|
+
if (signals.some((s) => s.severity === 'High'))
|
|
88
|
+
return 'High';
|
|
89
|
+
return 'Medium';
|
|
90
|
+
}
|
|
91
|
+
const RISK_LEVEL_RANK = {
|
|
92
|
+
Low: 0,
|
|
93
|
+
Medium: 1,
|
|
94
|
+
High: 2,
|
|
95
|
+
Critical: 3,
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Take the worse (higher) of two risk levels.
|
|
99
|
+
*/
|
|
100
|
+
export function riskLevelMax(a, b) {
|
|
101
|
+
if (b === null)
|
|
102
|
+
return a;
|
|
103
|
+
return RISK_LEVEL_RANK[a] >= RISK_LEVEL_RANK[b] ? a : b;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=operational-signals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operational-signals.js","sourceRoot":"","sources":["../../src/utils/operational-signals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-error-handler.d.ts","sourceRoot":"","sources":["../../src/utils/tool-error-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIpE;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"tool-error-handler.d.ts","sourceRoot":"","sources":["../../src/utils/tool-error-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAIpE;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,CA4ChF"}
|
|
@@ -25,16 +25,18 @@ export function handleToolError(error, toolName) {
|
|
|
25
25
|
logError(validationError, toolName);
|
|
26
26
|
return errorResponse(validationError);
|
|
27
27
|
}
|
|
28
|
-
// Handle GraphQL errors — sanitize
|
|
28
|
+
// Handle GraphQL errors — sanitize by default; the MCP runs over stdio in
|
|
29
|
+
// user environments where NODE_ENV is rarely 'production', so a production-only
|
|
30
|
+
// gate effectively unmasks backend internals to LLM clients. Verbose output
|
|
31
|
+
// is opt-in via LAGOON_DEBUG=1.
|
|
29
32
|
if (error && typeof error === 'object' && 'response' in error) {
|
|
30
33
|
const gqlError = error;
|
|
31
34
|
if (gqlError.response?.errors) {
|
|
32
35
|
logError(error, toolName);
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
: JSON.stringify(gqlError.response.errors, null, 2);
|
|
36
|
+
const verbose = process.env.LAGOON_DEBUG === '1';
|
|
37
|
+
const sanitized = verbose
|
|
38
|
+
? JSON.stringify(gqlError.response.errors, null, 2)
|
|
39
|
+
: gqlError.response.errors.map((e) => e.message ?? 'Unknown error').join('; ');
|
|
38
40
|
return {
|
|
39
41
|
content: [
|
|
40
42
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-error-handler.js","sourceRoot":"","sources":["../../src/utils/tool-error-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvE;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc,EAAE,QAAgB;IAC9D,0EAA0E;IAC1E,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7C,wEAAwE;YACxE,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,eAAe,CACzC,4BAA4B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzD,CAAC;QACF,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QACpC,OAAO,aAAa,CAAC,eAAe,CAAC,CAAC;IACxC,CAAC;IAED,4EAA4E;IAC5E,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,KAEhB,CAAC;QACF,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC9B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1B,
|
|
1
|
+
{"version":3,"file":"tool-error-handler.js","sourceRoot":"","sources":["../../src/utils/tool-error-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvE;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc,EAAE,QAAgB;IAC9D,0EAA0E;IAC1E,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7C,wEAAwE;YACxE,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,eAAe,CACzC,4BAA4B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzD,CAAC;QACF,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QACpC,OAAO,aAAa,CAAC,eAAe,CAAC,CAAC;IACxC,CAAC;IAED,0EAA0E;IAC1E,gFAAgF;IAChF,4EAA4E;IAC5E,gCAAgC;IAChC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,KAEhB,CAAC;QACF,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC9B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC;YACjD,MAAM,SAAS,GAAG,OAAO;gBACvB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnD,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,kBAAkB,SAAS,EAAE;qBACpC;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1B,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -106,6 +106,8 @@ export declare const searchVaultsInputSchema: z.ZodObject<{
|
|
|
106
106
|
}>>;
|
|
107
107
|
orderBy: z.ZodDefault<z.ZodEnum<["address", "chainId", "id", "totalAssetsUsd"]>>;
|
|
108
108
|
orderDirection: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
|
|
109
|
+
search: z.ZodOptional<z.ZodString>;
|
|
110
|
+
entityIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
109
111
|
responseFormat: z.ZodDefault<z.ZodEnum<["list", "summary", "full"]>>;
|
|
110
112
|
maxResults: z.ZodDefault<z.ZodNumber>;
|
|
111
113
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -134,6 +136,8 @@ export declare const searchVaultsInputSchema: z.ZodObject<{
|
|
|
134
136
|
first: number;
|
|
135
137
|
skip: number;
|
|
136
138
|
} | undefined;
|
|
139
|
+
search?: string | undefined;
|
|
140
|
+
entityIds?: string[] | undefined;
|
|
137
141
|
}, {
|
|
138
142
|
responseFormat?: "full" | "list" | "summary" | undefined;
|
|
139
143
|
filters?: {
|
|
@@ -159,6 +163,8 @@ export declare const searchVaultsInputSchema: z.ZodObject<{
|
|
|
159
163
|
} | undefined;
|
|
160
164
|
orderBy?: "chainId" | "address" | "id" | "totalAssetsUsd" | undefined;
|
|
161
165
|
orderDirection?: "asc" | "desc" | undefined;
|
|
166
|
+
search?: string | undefined;
|
|
167
|
+
entityIds?: string[] | undefined;
|
|
162
168
|
maxResults?: number | undefined;
|
|
163
169
|
}>;
|
|
164
170
|
export declare const getVaultPerformanceInputSchema: z.ZodObject<{
|
|
@@ -183,7 +189,7 @@ export declare const getVaultPerformanceInputSchema: z.ZodObject<{
|
|
|
183
189
|
export declare const getTransactionsInputSchema: z.ZodObject<{
|
|
184
190
|
vaultAddress: z.ZodEffects<z.ZodString, string, string>;
|
|
185
191
|
chainId: z.ZodNumber;
|
|
186
|
-
transactionTypes: z.ZodOptional<z.ZodArray<z.ZodEnum<["SettleDeposit", "SettleRedeem", "DepositRequest", "RedeemRequest", "NewTotalAssetsUpdated", "TotalAssetsUpdated", "PeriodSummary", "
|
|
192
|
+
transactionTypes: z.ZodOptional<z.ZodArray<z.ZodEnum<["SettleDeposit", "SettleRedeem", "DepositRequest", "DepositRequestCanceled", "RedeemRequest", "RedeemRequestCanceled", "Deposit", "Withdraw", "DepositSync", "WithdrawSync", "PreMint", "NewTotalAssetsUpdated", "TotalAssetsUpdated", "PeriodSummary", "StateUpdated", "VaultState", "RatesUpdated", "FeeTaken", "HaircutTaken", "AccessModeUpdated", "AsyncOnlyActivated", "BlacklistUpdated", "WhitelistUpdated", "ExternalSanctionsListUpdated", "GuardrailsStatusUpdated", "GuardrailsUpdated", "MaxCapUpdated", "NameUpdated", "SymbolUpdated", "SyncModeUpdated", "TotalAssetsExpirationUpdated", "SafeUpdated", "SecurityCouncilUpdated", "SuperOperatorUpdated", "ProxyDeployed"]>, "many">>;
|
|
187
193
|
pagination: z.ZodOptional<z.ZodObject<{
|
|
188
194
|
first: z.ZodDefault<z.ZodNumber>;
|
|
189
195
|
skip: z.ZodDefault<z.ZodNumber>;
|
|
@@ -207,7 +213,7 @@ export declare const getTransactionsInputSchema: z.ZodObject<{
|
|
|
207
213
|
first: number;
|
|
208
214
|
skip: number;
|
|
209
215
|
} | undefined;
|
|
210
|
-
transactionTypes?: ("SettleDeposit" | "SettleRedeem" | "DepositRequest" | "RedeemRequest" | "NewTotalAssetsUpdated" | "TotalAssetsUpdated" | "PeriodSummary" | "
|
|
216
|
+
transactionTypes?: ("SettleDeposit" | "SettleRedeem" | "DepositRequest" | "DepositRequestCanceled" | "RedeemRequest" | "RedeemRequestCanceled" | "Deposit" | "Withdraw" | "DepositSync" | "WithdrawSync" | "PreMint" | "NewTotalAssetsUpdated" | "TotalAssetsUpdated" | "PeriodSummary" | "StateUpdated" | "VaultState" | "RatesUpdated" | "FeeTaken" | "HaircutTaken" | "AccessModeUpdated" | "AsyncOnlyActivated" | "BlacklistUpdated" | "WhitelistUpdated" | "ExternalSanctionsListUpdated" | "GuardrailsStatusUpdated" | "GuardrailsUpdated" | "MaxCapUpdated" | "NameUpdated" | "SymbolUpdated" | "SyncModeUpdated" | "TotalAssetsExpirationUpdated" | "SafeUpdated" | "SecurityCouncilUpdated" | "SuperOperatorUpdated" | "ProxyDeployed")[] | undefined;
|
|
211
217
|
}, {
|
|
212
218
|
vaultAddress: string;
|
|
213
219
|
chainId: number;
|
|
@@ -218,16 +224,18 @@ export declare const getTransactionsInputSchema: z.ZodObject<{
|
|
|
218
224
|
} | undefined;
|
|
219
225
|
orderBy?: "chainId" | "id" | "blockNumber" | "timestamp" | undefined;
|
|
220
226
|
orderDirection?: "asc" | "desc" | undefined;
|
|
221
|
-
transactionTypes?: ("SettleDeposit" | "SettleRedeem" | "DepositRequest" | "RedeemRequest" | "NewTotalAssetsUpdated" | "TotalAssetsUpdated" | "PeriodSummary" | "
|
|
227
|
+
transactionTypes?: ("SettleDeposit" | "SettleRedeem" | "DepositRequest" | "DepositRequestCanceled" | "RedeemRequest" | "RedeemRequestCanceled" | "Deposit" | "Withdraw" | "DepositSync" | "WithdrawSync" | "PreMint" | "NewTotalAssetsUpdated" | "TotalAssetsUpdated" | "PeriodSummary" | "StateUpdated" | "VaultState" | "RatesUpdated" | "FeeTaken" | "HaircutTaken" | "AccessModeUpdated" | "AsyncOnlyActivated" | "BlacklistUpdated" | "WhitelistUpdated" | "ExternalSanctionsListUpdated" | "GuardrailsStatusUpdated" | "GuardrailsUpdated" | "MaxCapUpdated" | "NameUpdated" | "SymbolUpdated" | "SyncModeUpdated" | "TotalAssetsExpirationUpdated" | "SafeUpdated" | "SecurityCouncilUpdated" | "SuperOperatorUpdated" | "ProxyDeployed")[] | undefined;
|
|
222
228
|
}>;
|
|
223
229
|
export declare const compareVaultsInputSchema: z.ZodEffects<z.ZodObject<{
|
|
224
230
|
vaultAddresses: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
|
|
225
231
|
chainId: z.ZodOptional<z.ZodNumber>;
|
|
226
232
|
chainIds: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
227
233
|
responseFormat: z.ZodDefault<z.ZodEnum<["summary", "full"]>>;
|
|
234
|
+
rankBy: z.ZodDefault<z.ZodEnum<["totalApr", "sustainableApr"]>>;
|
|
228
235
|
}, "strip", z.ZodTypeAny, {
|
|
229
236
|
responseFormat: "full" | "summary";
|
|
230
237
|
vaultAddresses: string[];
|
|
238
|
+
rankBy: "totalApr" | "sustainableApr";
|
|
231
239
|
chainId?: number | undefined;
|
|
232
240
|
chainIds?: number[] | undefined;
|
|
233
241
|
}, {
|
|
@@ -235,9 +243,11 @@ export declare const compareVaultsInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
235
243
|
chainId?: number | undefined;
|
|
236
244
|
responseFormat?: "full" | "summary" | undefined;
|
|
237
245
|
chainIds?: number[] | undefined;
|
|
246
|
+
rankBy?: "totalApr" | "sustainableApr" | undefined;
|
|
238
247
|
}>, {
|
|
239
248
|
responseFormat: "full" | "summary";
|
|
240
249
|
vaultAddresses: string[];
|
|
250
|
+
rankBy: "totalApr" | "sustainableApr";
|
|
241
251
|
chainId?: number | undefined;
|
|
242
252
|
chainIds?: number[] | undefined;
|
|
243
253
|
}, {
|
|
@@ -245,6 +255,7 @@ export declare const compareVaultsInputSchema: z.ZodEffects<z.ZodObject<{
|
|
|
245
255
|
chainId?: number | undefined;
|
|
246
256
|
responseFormat?: "full" | "summary" | undefined;
|
|
247
257
|
chainIds?: number[] | undefined;
|
|
258
|
+
rankBy?: "totalApr" | "sustainableApr" | undefined;
|
|
248
259
|
}>;
|
|
249
260
|
export declare const priceHistoryInputSchema: z.ZodObject<{
|
|
250
261
|
vaultAddress: z.ZodEffects<z.ZodString, string, string>;
|
|
@@ -382,14 +393,105 @@ export declare const optimizePortfolioInputSchema: z.ZodObject<{
|
|
|
382
393
|
}>;
|
|
383
394
|
export declare const getVaultCompositionInputSchema: z.ZodObject<{
|
|
384
395
|
vaultAddress: z.ZodEffects<z.ZodString, string, string>;
|
|
396
|
+
chainId: z.ZodNumber;
|
|
385
397
|
responseFormat: z.ZodDefault<z.ZodEnum<["summary", "protocols", "full"]>>;
|
|
386
398
|
}, "strip", z.ZodTypeAny, {
|
|
387
399
|
vaultAddress: string;
|
|
400
|
+
chainId: number;
|
|
388
401
|
responseFormat: "full" | "summary" | "protocols";
|
|
389
402
|
}, {
|
|
390
403
|
vaultAddress: string;
|
|
404
|
+
chainId: number;
|
|
391
405
|
responseFormat?: "full" | "summary" | "protocols" | undefined;
|
|
392
406
|
}>;
|
|
407
|
+
export declare const getGlobalTvlInputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
408
|
+
export declare const getIndexingStatusInputSchema: z.ZodObject<{
|
|
409
|
+
chainIds: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
410
|
+
}, "strip", z.ZodTypeAny, {
|
|
411
|
+
chainIds?: number[] | undefined;
|
|
412
|
+
}, {
|
|
413
|
+
chainIds?: number[] | undefined;
|
|
414
|
+
}>;
|
|
415
|
+
export declare const listChainsInputSchema: z.ZodObject<{
|
|
416
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
417
|
+
pagination: z.ZodOptional<z.ZodObject<{
|
|
418
|
+
first: z.ZodDefault<z.ZodNumber>;
|
|
419
|
+
skip: z.ZodDefault<z.ZodNumber>;
|
|
420
|
+
}, "strip", z.ZodTypeAny, {
|
|
421
|
+
first: number;
|
|
422
|
+
skip: number;
|
|
423
|
+
}, {
|
|
424
|
+
first?: number | undefined;
|
|
425
|
+
skip?: number | undefined;
|
|
426
|
+
}>>;
|
|
427
|
+
}, "strip", z.ZodTypeAny, {
|
|
428
|
+
pagination?: {
|
|
429
|
+
first: number;
|
|
430
|
+
skip: number;
|
|
431
|
+
} | undefined;
|
|
432
|
+
isVisible?: boolean | undefined;
|
|
433
|
+
}, {
|
|
434
|
+
pagination?: {
|
|
435
|
+
first?: number | undefined;
|
|
436
|
+
skip?: number | undefined;
|
|
437
|
+
} | undefined;
|
|
438
|
+
isVisible?: boolean | undefined;
|
|
439
|
+
}>;
|
|
440
|
+
export declare const listCuratorsInputSchema: z.ZodObject<{
|
|
441
|
+
isVisible: z.ZodOptional<z.ZodBoolean>;
|
|
442
|
+
pagination: z.ZodOptional<z.ZodObject<{
|
|
443
|
+
first: z.ZodDefault<z.ZodNumber>;
|
|
444
|
+
skip: z.ZodDefault<z.ZodNumber>;
|
|
445
|
+
}, "strip", z.ZodTypeAny, {
|
|
446
|
+
first: number;
|
|
447
|
+
skip: number;
|
|
448
|
+
}, {
|
|
449
|
+
first?: number | undefined;
|
|
450
|
+
skip?: number | undefined;
|
|
451
|
+
}>>;
|
|
452
|
+
}, "strip", z.ZodTypeAny, {
|
|
453
|
+
pagination?: {
|
|
454
|
+
first: number;
|
|
455
|
+
skip: number;
|
|
456
|
+
} | undefined;
|
|
457
|
+
isVisible?: boolean | undefined;
|
|
458
|
+
}, {
|
|
459
|
+
pagination?: {
|
|
460
|
+
first?: number | undefined;
|
|
461
|
+
skip?: number | undefined;
|
|
462
|
+
} | undefined;
|
|
463
|
+
isVisible?: boolean | undefined;
|
|
464
|
+
}>;
|
|
465
|
+
export declare const getCuratorInputSchema: z.ZodObject<{
|
|
466
|
+
curatorId: z.ZodString;
|
|
467
|
+
}, "strip", z.ZodTypeAny, {
|
|
468
|
+
curatorId: string;
|
|
469
|
+
}, {
|
|
470
|
+
curatorId: string;
|
|
471
|
+
}>;
|
|
472
|
+
export declare const getAssetInputSchema: z.ZodObject<{
|
|
473
|
+
assetAddress: z.ZodEffects<z.ZodString, string, string>;
|
|
474
|
+
chainId: z.ZodNumber;
|
|
475
|
+
}, "strip", z.ZodTypeAny, {
|
|
476
|
+
chainId: number;
|
|
477
|
+
assetAddress: string;
|
|
478
|
+
}, {
|
|
479
|
+
chainId: number;
|
|
480
|
+
assetAddress: string;
|
|
481
|
+
}>;
|
|
482
|
+
export declare const getHistoricalStateInputSchema: z.ZodObject<{
|
|
483
|
+
vaultAddress: z.ZodEffects<z.ZodString, string, string>;
|
|
484
|
+
chainId: z.ZodNumber;
|
|
485
|
+
timestamp: z.ZodNumber;
|
|
486
|
+
}, "strip", z.ZodTypeAny, {
|
|
487
|
+
vaultAddress: string;
|
|
488
|
+
chainId: number;
|
|
489
|
+
timestamp: number;
|
|
490
|
+
}, {
|
|
491
|
+
vaultAddress: string;
|
|
492
|
+
chainId: number;
|
|
493
|
+
timestamp: number;
|
|
494
|
+
}>;
|
|
393
495
|
/**
|
|
394
496
|
* Type inference helpers
|
|
395
497
|
*/
|
|
@@ -407,4 +509,11 @@ export type AnalyzeRisksInput = z.infer<typeof analyzeRisksInputSchema>;
|
|
|
407
509
|
export type PredictYieldInput = z.infer<typeof predictYieldInputSchema>;
|
|
408
510
|
export type OptimizePortfolioInput = z.infer<typeof optimizePortfolioInputSchema>;
|
|
409
511
|
export type GetVaultCompositionInput = z.infer<typeof getVaultCompositionInputSchema>;
|
|
512
|
+
export type GetGlobalTvlInput = z.infer<typeof getGlobalTvlInputSchema>;
|
|
513
|
+
export type GetIndexingStatusInput = z.infer<typeof getIndexingStatusInputSchema>;
|
|
514
|
+
export type ListChainsInput = z.infer<typeof listChainsInputSchema>;
|
|
515
|
+
export type ListCuratorsInput = z.infer<typeof listCuratorsInputSchema>;
|
|
516
|
+
export type GetCuratorInput = z.infer<typeof getCuratorInputSchema>;
|
|
517
|
+
export type GetAssetInput = z.infer<typeof getAssetInputSchema>;
|
|
518
|
+
export type GetHistoricalStateInput = z.infer<typeof getHistoricalStateInputSchema>;
|
|
410
519
|
//# sourceMappingURL=validators.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAIH,eAAO,MAAM,qBAAqB,2CAMQ,CAAC;AAG3C,eAAO,MAAM,aAAa,aAAmE,CAAC;AAI9F,eAAO,MAAM,qBAAqB,2BAKpB,CAAC;AAGf,eAAO,MAAM,oBAAoB,2BAIpB,CAAC;AAEd;;GAEG;AAGH,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAC;AAGH,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAC;AAGH,eAAO,MAAM,2BAA2B;;;;;;;;;EAQtC,CAAC;AAGH,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"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"}
|