/** * Risk Queries * * GraphQL queries for vault risk analysis. * Includes multi-factor risk scoring with vault, protocol, and market data. */ /** * GraphQL query for vault risk analysis data * * Fetches comprehensive data for multi-factor risk analysis including: * - Vault data with complete metadata * - All vaults for concentration risk calculation * - Curator's other vaults for reputation analysis * - Price history for volatility analysis * * Used by: analyze_risk tool * * Usage: * ```typescript * const data = await graphqlClient.request( * RISK_ANALYSIS_QUERY, * { * vaultAddress: '0x...', * chainId: 1, * curatorId: 'curator-id', * where: { * vault_in: ['0x...'], * type_in: ['TotalAssetsUpdated'] * }, * orderBy: 'timestamp', * orderDirection: 'asc' * } * ); * ``` */ export declare const RISK_ANALYSIS_QUERY = "\n query RiskAnalysis(\n $vaultAddress: Address!,\n $chainId: Int!,\n $curatorId: String!,\n $options: TimeRangeOptions\n ) {\n vault: vaultByAddress(address: $vaultAddress, chainId: $chainId) {\n ...VaultFragment\n stateHistory {\n pricePerShareUsd(options: $options) {\n x\n y\n }\n }\n }\n\n # Get all vaults for concentration risk calculation\n allVaults: vaults(where: { chainId_eq: $chainId, isVisible_eq: true }) {\n items {\n state {\n totalAssetsUsd\n }\n }\n }\n\n # Get curator's other vaults for reputation analysis\n curatorVaults: vaults(where: { chainId_eq: $chainId, curatorIds_contains: $curatorId }) {\n items {\n address\n state {\n totalAssetsUsd\n }\n }\n }\n }\n \n fragment VaultFragment on Vault {\n address\n symbol\n decimals\n name\n description\n shortDescription\n maxCapacity\n logoUrl\n averageSettlement\n isVisible\n creationDate\n inception\n asset {\n ...AssetInfoFragment\n }\n chain {\n ...ChainInfoFragment\n }\n state {\n state\n version\n syncMode\n isAsyncOnly\n isPaused\n safeLocked\n superOperatorLocked\n allowHighWaterMarkReset\n accessMode\n blacklist\n externalSanctionsList\n maxCap\n totalAssets\n totalAssetsUsd\n totalAssetsExpiration\n totalAssetsLifespan\n totalSupply\n pricePerShare\n pricePerShareUsd\n safeAssetBalance\n liveAPR {\n grossApr\n name\n netApr\n description\n }\n roles {\n owner\n valuationManager\n whitelistManager\n safe\n feeReceiver\n securityCouncil\n superOperator\n }\n managementFee\n performanceFee\n protocolFee\n entryRate\n exitRate\n haircutRate\n upcomingManagementFee\n upcomingPerformanceFee\n feeRatesCooldown\n newRatesTimestamp\n guardrails {\n activated\n lowerRate\n upperRate\n }\n isWhitelistActivated\n whitelist\n pendingSettlement {\n assets\n assetsUsd\n shares\n }\n inceptionApr {\n ...APRBreakdownFragment\n }\n pendingSiloBalances {\n assets\n shares\n }\n monthlyApr {\n ...APRBreakdownFragment\n }\n newTotalAssets\n highWaterMark\n lastFeeTime\n safeAssetBalanceUsd\n weeklyApr {\n ...APRBreakdownFragment\n }\n yearlyApr {\n ...APRBreakdownFragment\n }\n }\n curators {\n name\n id\n aboutDescription\n logoUrl\n url\n }\n integrator {\n name\n url\n logoUrl\n aboutDescription\n }\n defiIntegrations {\n name\n description\n link\n logoUrl\n type\n }\n bundles {\n octav\n debank\n }\n }\n \n fragment AssetInfoFragment on Asset {\n id\n name\n symbol\n decimals\n address\n logoUrl\n description\n isVisible\n priceUsd\n chain {\n id\n name\n nativeToken\n logoUrl\n }\n }\n\n \n fragment ChainInfoFragment on Chain {\n id\n name\n nativeToken\n logoUrl\n wrappedNativeToken {\n address\n decimals\n name\n symbol\n }\n factory\n }\n\n \n fragment APRBreakdownFragment on APRs {\n linearNetApr\n linearNetAprWithoutExtraYields\n twrrNetApr\n twrrNetAprWithoutExtraYields\n twrrGrossAprWithoutExtraYields\n airdrops {\n name\n apr\n description\n distributionTimestamp\n endTimestamp\n isEstimation\n logoUrl\n multiplier\n ppsIncrease\n startTimestamp\n }\n incentives {\n name\n apr\n aprDescription\n description\n endTimestamp\n incentiveRate {\n incentiveAmount\n referenceToken {\n id\n }\n referenceTokenAmount\n }\n }\n nativeYields {\n name\n apr\n aprDescription\n description\n endTimestamp\n isEstimation\n logoUrl\n multiplier\n startTimestamp\n }\n }\n\n\n"; /** * GraphQL query for batch vault risk analysis data * * Fetches data for multiple vaults in a single request, reducing API calls. * Uses address_in filter to fetch all vaults at once. * * Key differences from single vault query: * - Fetches multiple vaults using address_in filter * - Shares allVaults context across all vaults (single fetch) * - Per-vault curator and price data fetched separately in service layer * * Used by: analyze_risks tool (batch) * * Usage: * ```typescript * const data = await graphqlClient.request( * BATCH_RISK_ANALYSIS_QUERY, * { * vaultAddresses: ['0x...', '0x...'], * chainId: 1 * } * ); * ``` */ export declare const BATCH_RISK_ANALYSIS_QUERY = "\n query BatchRiskAnalysis(\n $vaultAddresses: [String!]!,\n $chainId: Int!\n ) {\n # Get all requested vaults in single query\n vaults(where: { address_in: $vaultAddresses, chainId_eq: $chainId }) {\n items {\n ...VaultFragment\n }\n }\n\n # Get all vaults on chain for concentration risk calculation (shared context)\n allVaults: vaults(where: { chainId_eq: $chainId, isVisible_eq: true }) {\n items {\n state {\n totalAssetsUsd\n }\n }\n }\n }\n \n fragment VaultFragment on Vault {\n address\n symbol\n decimals\n name\n description\n shortDescription\n maxCapacity\n logoUrl\n averageSettlement\n isVisible\n creationDate\n inception\n asset {\n ...AssetInfoFragment\n }\n chain {\n ...ChainInfoFragment\n }\n state {\n state\n version\n syncMode\n isAsyncOnly\n isPaused\n safeLocked\n superOperatorLocked\n allowHighWaterMarkReset\n accessMode\n blacklist\n externalSanctionsList\n maxCap\n totalAssets\n totalAssetsUsd\n totalAssetsExpiration\n totalAssetsLifespan\n totalSupply\n pricePerShare\n pricePerShareUsd\n safeAssetBalance\n liveAPR {\n grossApr\n name\n netApr\n description\n }\n roles {\n owner\n valuationManager\n whitelistManager\n safe\n feeReceiver\n securityCouncil\n superOperator\n }\n managementFee\n performanceFee\n protocolFee\n entryRate\n exitRate\n haircutRate\n upcomingManagementFee\n upcomingPerformanceFee\n feeRatesCooldown\n newRatesTimestamp\n guardrails {\n activated\n lowerRate\n upperRate\n }\n isWhitelistActivated\n whitelist\n pendingSettlement {\n assets\n assetsUsd\n shares\n }\n inceptionApr {\n ...APRBreakdownFragment\n }\n pendingSiloBalances {\n assets\n shares\n }\n monthlyApr {\n ...APRBreakdownFragment\n }\n newTotalAssets\n highWaterMark\n lastFeeTime\n safeAssetBalanceUsd\n weeklyApr {\n ...APRBreakdownFragment\n }\n yearlyApr {\n ...APRBreakdownFragment\n }\n }\n curators {\n name\n id\n aboutDescription\n logoUrl\n url\n }\n integrator {\n name\n url\n logoUrl\n aboutDescription\n }\n defiIntegrations {\n name\n description\n link\n logoUrl\n type\n }\n bundles {\n octav\n debank\n }\n }\n \n fragment AssetInfoFragment on Asset {\n id\n name\n symbol\n decimals\n address\n logoUrl\n description\n isVisible\n priceUsd\n chain {\n id\n name\n nativeToken\n logoUrl\n }\n }\n\n \n fragment ChainInfoFragment on Chain {\n id\n name\n nativeToken\n logoUrl\n wrappedNativeToken {\n address\n decimals\n name\n symbol\n }\n factory\n }\n\n \n fragment APRBreakdownFragment on APRs {\n linearNetApr\n linearNetAprWithoutExtraYields\n twrrNetApr\n twrrNetAprWithoutExtraYields\n twrrGrossAprWithoutExtraYields\n airdrops {\n name\n apr\n description\n distributionTimestamp\n endTimestamp\n isEstimation\n logoUrl\n multiplier\n ppsIncrease\n startTimestamp\n }\n incentives {\n name\n apr\n aprDescription\n description\n endTimestamp\n incentiveRate {\n incentiveAmount\n referenceToken {\n id\n }\n referenceTokenAmount\n }\n }\n nativeYields {\n name\n apr\n aprDescription\n description\n endTimestamp\n isEstimation\n logoUrl\n multiplier\n startTimestamp\n }\n }\n\n\n"; /** * GraphQL query for cross-chain batch risk analysis * * For analyzing vaults across multiple chains, we need separate queries per chain * since chainId_eq filter only supports single chain. * This query fetches vaults for a single chain - call multiple times for cross-chain. * * Used by: analyze_risks tool when chainIds array is provided */ export declare const CROSS_CHAIN_VAULTS_QUERY = "\n query CrossChainVaults(\n $vaultAddresses: [String!]!,\n $chainId: Int!\n ) {\n vaults(where: { address_in: $vaultAddresses, chainId_eq: $chainId }) {\n items {\n ...VaultFragment\n }\n }\n\n allVaults: vaults(where: { chainId_eq: $chainId, isVisible_eq: true }) {\n items {\n state {\n totalAssetsUsd\n }\n }\n }\n }\n \n fragment VaultFragment on Vault {\n address\n symbol\n decimals\n name\n description\n shortDescription\n maxCapacity\n logoUrl\n averageSettlement\n isVisible\n creationDate\n inception\n asset {\n ...AssetInfoFragment\n }\n chain {\n ...ChainInfoFragment\n }\n state {\n state\n version\n syncMode\n isAsyncOnly\n isPaused\n safeLocked\n superOperatorLocked\n allowHighWaterMarkReset\n accessMode\n blacklist\n externalSanctionsList\n maxCap\n totalAssets\n totalAssetsUsd\n totalAssetsExpiration\n totalAssetsLifespan\n totalSupply\n pricePerShare\n pricePerShareUsd\n safeAssetBalance\n liveAPR {\n grossApr\n name\n netApr\n description\n }\n roles {\n owner\n valuationManager\n whitelistManager\n safe\n feeReceiver\n securityCouncil\n superOperator\n }\n managementFee\n performanceFee\n protocolFee\n entryRate\n exitRate\n haircutRate\n upcomingManagementFee\n upcomingPerformanceFee\n feeRatesCooldown\n newRatesTimestamp\n guardrails {\n activated\n lowerRate\n upperRate\n }\n isWhitelistActivated\n whitelist\n pendingSettlement {\n assets\n assetsUsd\n shares\n }\n inceptionApr {\n ...APRBreakdownFragment\n }\n pendingSiloBalances {\n assets\n shares\n }\n monthlyApr {\n ...APRBreakdownFragment\n }\n newTotalAssets\n highWaterMark\n lastFeeTime\n safeAssetBalanceUsd\n weeklyApr {\n ...APRBreakdownFragment\n }\n yearlyApr {\n ...APRBreakdownFragment\n }\n }\n curators {\n name\n id\n aboutDescription\n logoUrl\n url\n }\n integrator {\n name\n url\n logoUrl\n aboutDescription\n }\n defiIntegrations {\n name\n description\n link\n logoUrl\n type\n }\n bundles {\n octav\n debank\n }\n }\n \n fragment AssetInfoFragment on Asset {\n id\n name\n symbol\n decimals\n address\n logoUrl\n description\n isVisible\n priceUsd\n chain {\n id\n name\n nativeToken\n logoUrl\n }\n }\n\n \n fragment ChainInfoFragment on Chain {\n id\n name\n nativeToken\n logoUrl\n wrappedNativeToken {\n address\n decimals\n name\n symbol\n }\n factory\n }\n\n \n fragment APRBreakdownFragment on APRs {\n linearNetApr\n linearNetAprWithoutExtraYields\n twrrNetApr\n twrrNetAprWithoutExtraYields\n twrrGrossAprWithoutExtraYields\n airdrops {\n name\n apr\n description\n distributionTimestamp\n endTimestamp\n isEstimation\n logoUrl\n multiplier\n ppsIncrease\n startTimestamp\n }\n incentives {\n name\n apr\n aprDescription\n description\n endTimestamp\n incentiveRate {\n incentiveAmount\n referenceToken {\n id\n }\n referenceTokenAmount\n }\n }\n nativeYields {\n name\n apr\n aprDescription\n description\n endTimestamp\n isEstimation\n logoUrl\n multiplier\n startTimestamp\n }\n }\n\n\n"; //# sourceMappingURL=risk.queries.d.ts.map