/** * Vault Queries * * GraphQL queries for vault data operations. * Includes single vault queries, performance tracking, and vault comparison. */ /** * Complete vault data GraphQL query * * Fetches comprehensive vault information including all available fields. * Used by: get_vault_data tool * * Schema verified against working API query on 2025-01-04 * * Usage: * ```typescript * const data = await graphqlClient.request<{ vaultByAddress: VaultData | null }>( * GET_VAULT_DATA_QUERY, * { address: '0x...', chainId: 1 } * ); * ``` */ export declare const GET_VAULT_DATA_QUERY = "\n query GetVaultData($address: Address!, $chainId: Int!) {\n vaultByAddress(address: $address, chainId: $chainId) {\n ...VaultFragment\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"; /** * Query to fetch vault data for APR calculation * * Fetches vault data optimized for SDK APR calculations. * Used by: get_vault_performance tool * * Usage: * ```typescript * const data = await graphqlClient.request<{ vaultByAddress: VaultData | null }>( * GET_VAULT_FOR_APR_QUERY, * { address: '0x...', chainId: 1 } * ); * ``` */ export declare const GET_VAULT_FOR_APR_QUERY = "\n query GetVaultForAPR($address: Address!, $chainId: Int!) {\n vaultByAddress(address: $address, chainId: $chainId) {\n ...VaultFragment\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 comparison * * Fetches multiple vaults in a single request for side-by-side comparison. * Supports cross-chain comparisons by accepting an array of chain IDs. * Used by: compare_vaults tool * * Usage: * ```typescript * const data = await graphqlClient.request<{ vaults: { items: VaultData[] } }>( * COMPARE_VAULTS_QUERY, * { addresses: ['0x...', '0x...'], chainIds: [1, 8453, 43114] } * ); * ``` */ export declare const COMPARE_VAULTS_QUERY = "\n query CompareVaults($addresses: [String!]!, $chainIds: [Int!]!) {\n vaults(where: { address_in: $addresses, chainId_in: $chainIds }) {\n items {\n ...VaultFragment\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 vault creation timestamp * * Fetches the first transaction for a vault to determine its creation date. * Uses TotalAssetsUpdated or any transaction type, ordered by timestamp ascending. * Used by: compare_vaults tool for actual vault age calculation * * Usage: * ```typescript * const data = await graphqlClient.request<{ transactions: { items: [...] } }>( * VAULT_FIRST_TRANSACTION_QUERY, * { vaultAddress: '0x...' } * ); * const createdAt = data.transactions.items[0]?.timestamp; * ``` */ export declare const VAULT_FIRST_TRANSACTION_QUERY = "\n query VaultFirstTransaction($vaultAddress: Address!) {\n transactions(\n where: { vault_in: [$vaultAddress] },\n orderBy: timestamp,\n orderDirection: asc,\n first: 1\n ) {\n items {\n timestamp\n }\n }\n }\n"; /** * GraphQL query for batch vault first transactions (creation dates) * * Fetches the first transaction for multiple vaults in a single request. * This reduces N parallel requests to 1 batch request for vault age calculation. * Used by: compare_vaults tool for efficient vault age lookup * * Note: Returns ALL transactions for the given vaults ordered by timestamp. * The caller must group by vault address and take the first (oldest) for each. * * The vault address is extracted from the TransactionData union via inline fragments, * since the vault field exists on each transaction type variant, not on Transaction directly. * * Usage: * ```typescript * const data = await graphqlClient.request( * BATCH_VAULT_FIRST_TRANSACTIONS_QUERY, * { vaultAddresses: ['0x...', '0x...', '0x...'] } * ); * // Group results by vault address and take oldest timestamp for each * const ageMap = buildVaultAgeMap(data.transactions.items); * ``` */ export declare const BATCH_VAULT_FIRST_TRANSACTIONS_QUERY = "\n query BatchVaultFirstTransactions($vaultAddresses: [Address!]!) {\n transactions(\n where: { vault_in: $vaultAddresses },\n orderBy: timestamp,\n orderDirection: asc,\n first: 100\n ) {\n items {\n timestamp\n data {\n ...TransactionVaultFragment\n }\n }\n }\n }\n \n fragment TransactionVaultFragment on TransactionData {\n ... on SettleDeposit { vault { address } }\n ... on SettleRedeem { vault { address } }\n ... on DepositRequest { vault { address } }\n ... on RedeemRequest { vault { address } }\n ... on DepositSync { vault { address } }\n ... on DepositRequestCanceled { vault { address } }\n ... on TotalAssetsUpdated { vault { address } }\n ... on NewTotalAssetsUpdated { vault { address } }\n ... on PeriodSummary { vault { address } }\n ... on RatesUpdated { vault { address } }\n ... on StateUpdated { vault { address } }\n ... on WhitelistUpdated { vault { address } }\n }\n\n"; /** * Response type for BATCH_VAULT_FIRST_TRANSACTIONS_QUERY */ export interface BatchVaultFirstTransactionsResponse { transactions: { items: Array<{ data: { vault?: { address: string; }; }; timestamp: number; }>; }; } /** * Historical price-per-share series for a single vault. * * Used by: get_price_history tool. The `options` variable accepts a * `TimeRangeOptions` window (`startTimestamp`/`endTimestamp`); pass `null` for * full history since vault creation. Each series caps at 1000 most recent * points per backend rate-limiting policy — there is no pagination cursor, so * consumers narrow the window via `options` rather than paging. * * Usage: * ```typescript * const data = await graphqlClient.request( * PRICE_HISTORY_QUERY, * { vaultAddress: '0x...', chainId: 1, options: { startTimestamp: 1700000000 } } * ); * ``` */ export declare const PRICE_HISTORY_QUERY = "\n query GetPriceHistory(\n $vaultAddress: Address!,\n $chainId: Int!,\n $options: TimeRangeOptions\n ) {\n vault: vaultByAddress(address: $vaultAddress, chainId: $chainId) {\n address\n stateHistory {\n pricePerShareUsd(options: $options) {\n x\n y\n }\n totalAssetsUsd(options: $options) {\n x\n y\n }\n }\n }\n }\n"; //# sourceMappingURL=vault.queries.d.ts.map