@steerprotocol/sdk 1.30.2 → 1.30.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"SubgraphVaultClient.js","sourceRoot":"","sources":["../../../src/utils/SubgraphVaultClient.ts"],"names":[],"mappings":"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","sourcesContent":["import { Address } from 'viem';\nimport { VaultEdge, VaultNode, VaultsConnection } from '../base/VaultClient';\nimport { getProtocolTypeByBeacon } from '../const';\nimport { Protocol } from '../const/chain';\nimport {\n LpPriceResponse,\n SubgraphResponse,\n SubgraphVaultDetails,\n SubgraphVaultDetailsWithLpData,\n SubgraphVaultPosition,\n VaultFetchOptions,\n} from './subgraph-types';\n\n/**\n * GraphQL queries for fetching vault data from Steer subgraphs\n */\nconst FIND_ALL_VAULTS = (batchSize: number = 1000, timestamp?: string) => {\n if (timestamp) {\n return `query {\n vaults(first: ${batchSize}, where: { createdAt_lte: \"${timestamp}\" }, orderBy: createdAt, orderDirection: desc) {\n id\n name\n token0\n token1\n pool\n weeklyFeeAPR\n token0Symbol\n token0Decimals\n token1Symbol\n token1Decimals\n totalValueLockedToken0\n totalValueLockedToken1\n token0Balance\n token1Balance\n totalLPTokensIssued\n createdAt\n feeTier\n strategyToken {\n id\n name\n creator {\n id\n }\n admin\n executionBundle\n }\n positions(first: 1, orderBy: timestamp, orderDirection: desc) {\n id\n upperTick\n lowerTick\n relativeWeight\n }\n fees0\n fees1\n beaconName\n payloadIpfs\n deployer\n }\n }`;\n }\n\n return `query {\n vaults(first: ${batchSize}, orderBy: createdAt, orderDirection: desc) {\n id\n name\n token0\n token1\n pool\n weeklyFeeAPR\n token0Symbol\n token0Decimals\n token1Symbol\n token1Decimals\n totalValueLockedToken0\n totalValueLockedToken1\n token0Balance\n token1Balance\n totalLPTokensIssued\n createdAt\n feeTier\n strategyToken {\n id\n name\n creator {\n id\n }\n admin\n executionBundle\n }\n positions(first: 1, orderBy: timestamp, orderDirection: desc) {\n id\n upperTick\n lowerTick\n relativeWeight\n }\n fees0\n fees1\n beaconName\n payloadIpfs\n deployer\n }\n }`;\n};\n\nconst FIND_ALL_VAULTS_BY_PROTOCOL = (\n batchSize: number = 1000,\n timestamp?: string,\n beaconNames?: string[]\n) => {\n if (!beaconNames || beaconNames.length === 0) {\n throw new Error('At least one beacon name is required');\n }\n\n // Format beaconNames for GraphQL _in filter\n const beaconNamesList = beaconNames.map((b) => `\"${b}\"`).join(', ');\n const beaconNameFilter = `beaconName_in: [${beaconNamesList}]`;\n\n if (timestamp) {\n return `query {\n vaults(first: ${batchSize}, where: { createdAt_lte: \"${timestamp}\", ${beaconNameFilter} }, orderBy: createdAt, orderDirection: desc) {\n id\n name\n token0\n token1\n pool\n weeklyFeeAPR\n token0Symbol\n token0Decimals\n token1Symbol\n token1Decimals\n totalValueLockedToken0\n totalValueLockedToken1\n token0Balance\n token1Balance\n totalLPTokensIssued\n createdAt\n feeTier\n positions(first: 1, orderBy: timestamp, orderDirection: desc) {\n id\n upperTick\n lowerTick\n relativeWeight\n }\n fees0\n fees1\n strategyToken {\n id\n name\n creator {\n id\n }\n admin\n executionBundle\n }\n beaconName\n payloadIpfs\n deployer\n }\n }`;\n }\n\n return `query {\n vaults(first: ${batchSize}, where: { ${beaconNameFilter} }, orderBy: createdAt, orderDirection: desc) {\n id\n name\n token0\n token1\n pool\n weeklyFeeAPR\n token0Symbol\n token0Decimals\n token1Symbol\n token1Decimals\n totalValueLockedToken0\n totalValueLockedToken1\n token0Balance\n token1Balance\n totalLPTokensIssued\n createdAt\n feeTier\n strategyToken {\n id\n name\n creator {\n id\n }\n admin\n executionBundle\n }\n positions(first: 1, orderBy: timestamp, orderDirection: desc) {\n id\n upperTick\n lowerTick\n relativeWeight\n }\n fees0\n fees1\n beaconName\n payloadIpfs\n deployer\n }\n }`;\n};\n\n/**\n * Utility class for fetching vault data from Steer subgraphs\n */\nexport class SubgraphVaultClient {\n private readonly SENTIO_API_KEY =\n typeof process !== 'undefined' ? process.env?.SENTIO_API_KEY : undefined;\n\n /**\n * Transform subgraph vault data to match VaultClient interface\n */\n private transformSubgraphVaultToVaultNode(\n vault: SubgraphVaultDetailsWithLpData,\n chainId: number,\n aprMap: Map<string, number>\n ): VaultNode {\n const feeApr = aprMap.get(vault.id) ? aprMap.get(vault.id) : undefined;\n\n const tickRange = this.computeTickRange(vault.positions ?? []);\n\n return {\n id: vault.id,\n chainId,\n vaultAddress: vault.id,\n protocol: getProtocolTypeByBeacon(vault.beaconName) || Protocol.Uniswap,\n beaconName: vault.beaconName,\n protocolBaseType: this.getProtocolBaseType(vault.beaconName),\n name: vault.name || '',\n feeApr: feeApr ? parseFloat(feeApr.toString()) : undefined,\n stakingApr: undefined,\n merklApr: undefined,\n positions: (vault.positions ?? []).map((p) => ({\n id: p.id,\n upperTick: parseInt(p.upperTick, 10),\n lowerTick: parseInt(p.lowerTick, 10),\n relativeWeight: p.relativeWeight,\n })),\n tickRange,\n fees:\n vault.fees0 !== undefined && vault.fees1 !== undefined\n ? { fees0: vault.fees0, fees1: vault.fees1 }\n : undefined,\n pool: {\n id: vault.pool,\n poolAddress: vault.pool,\n feeTier: vault.feeTier,\n tick: undefined,\n liquidity: undefined,\n volumeUSD: undefined,\n totalValueLockedUSD: vault.lpPriceData?.vault.usd.totalValue?.toString(),\n },\n token0: {\n id: vault.token0,\n symbol: vault.token0Symbol,\n name: vault.token0Symbol,\n decimals: parseInt(vault.token0Decimals),\n address: vault.token0,\n chainId,\n },\n token1: {\n id: vault.token1,\n symbol: vault.token1Symbol,\n name: vault.token1Symbol,\n decimals: parseInt(vault.token1Decimals),\n address: vault.token1,\n chainId,\n },\n };\n }\n\n /**\n * Compute the tick range across all vault positions.\n * Returns the minimum lowerTick and maximum upperTick, giving the full\n * span of liquidity currently deployed by the vault strategy.\n */\n private computeTickRange(\n positions: SubgraphVaultPosition[]\n ): VaultNode['tickRange'] {\n if (!positions.length) return undefined;\n\n let minLowerTick = Infinity;\n let maxUpperTick = -Infinity;\n\n for (const pos of positions) {\n const lower = parseInt(pos.lowerTick, 10);\n const upper = parseInt(pos.upperTick, 10);\n if (!isNaN(lower) && lower < minLowerTick) minLowerTick = lower;\n if (!isNaN(upper) && upper > maxUpperTick) maxUpperTick = upper;\n }\n\n if (minLowerTick === Infinity || maxUpperTick === -Infinity) return undefined;\n\n return { minLowerTick, maxUpperTick };\n }\n\n /**\n * Get protocol base type from beacon name\n */\n private getProtocolBaseType(beaconName: string): string {\n if (beaconName.includes('uniswap')) {\n return 'UniswapV3';\n }\n const protocol = getProtocolTypeByBeacon(beaconName);\n if (protocol) {\n return protocol === Protocol.Blackhole ? 'Algebra Integral' : protocol;\n }\n if (beaconName.includes('Stryke')) {\n return 'Stryke';\n }\n return 'UniswapV3'; // Default\n }\n\n /**\n * Create a mock LP price response for vaults without LP data\n */\n private createMockLpPriceData(vault: SubgraphVaultDetails): LpPriceResponse {\n return {\n vault: {\n address: vault.id as Address,\n token0: vault.token0 as Address,\n token1: vault.token1 as Address,\n balances: {\n token0: vault.token0Balance,\n token1: vault.token1Balance,\n totalSupply: vault.totalLPTokensIssued,\n token0Formatted: vault.token0Balance,\n token1Formatted: vault.token1Balance,\n totalSupplyFormatted: vault.totalLPTokensIssued,\n },\n usd: {\n lpValue: 0,\n totalValue: 0,\n token0Price: 0,\n token0Value: 0,\n token1Price: 0,\n token1Value: 0,\n },\n token0Symbol: vault.token0Symbol,\n token1Symbol: vault.token1Symbol,\n token0Decimals: vault.token0Decimals,\n token1Decimals: vault.token1Decimals,\n },\n routes: {\n token0ToUsd: [],\n token1ToUsd: [],\n },\n };\n }\n\n /**\n * Fetch vault data from subgraph\n */\n public async getAllVaultsFromSubgraph(\n options: VaultFetchOptions\n ): Promise<SubgraphVaultDetailsWithLpData[]> {\n const { subgraphUrl, showCurrentProtocol = false, beaconNames, batchSize = 1000 } = options;\n\n const allVaults: SubgraphVaultDetailsWithLpData[] = [];\n\n try {\n // First get the latest vault to get the most recent timestamp\n const latestVaultResponse = await fetch(subgraphUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n ...(subgraphUrl.includes('sentio') && this.SENTIO_API_KEY\n ? { 'api-key': this.SENTIO_API_KEY }\n : {}),\n },\n body: JSON.stringify({\n query: !showCurrentProtocol\n ? FIND_ALL_VAULTS(1)\n : FIND_ALL_VAULTS_BY_PROTOCOL(1, undefined, beaconNames),\n variables: {},\n }),\n });\n\n const latestVaultData: SubgraphResponse<SubgraphVaultDetails> =\n await latestVaultResponse.json();\n let lastTimestamp = latestVaultData?.data?.vaults?.[0]?.createdAt;\n\n if (!lastTimestamp) {\n return [];\n }\n\n let hasMoreData = true;\n while (hasMoreData) {\n const response = await fetch(subgraphUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n ...(subgraphUrl.includes('sentio') && this.SENTIO_API_KEY\n ? { 'api-key': this.SENTIO_API_KEY }\n : {}),\n },\n body: JSON.stringify({\n query: !showCurrentProtocol\n ? FIND_ALL_VAULTS(batchSize, lastTimestamp)\n : FIND_ALL_VAULTS_BY_PROTOCOL(batchSize, lastTimestamp, beaconNames),\n variables: {},\n }),\n });\n\n const responseData: SubgraphResponse<SubgraphVaultDetails> = await response.json();\n const vaults = responseData?.data?.vaults || [];\n\n if (!vaults.length) {\n hasMoreData = false;\n continue;\n }\n\n // Filter out duplicates based on vault ID\n const newVaults = vaults.filter(\n (vault: SubgraphVaultDetails) => !allVaults.some((existing) => existing.id === vault.id)\n );\n\n if (!newVaults.length) {\n hasMoreData = false;\n continue;\n }\n\n // For now, attach mock LP data to each vault\n // In a real implementation, you would fetch LP price data here\n const vaultsWithLpData: SubgraphVaultDetailsWithLpData[] = newVaults.map((vault) => ({\n ...vault,\n lpPriceData: this.createMockLpPriceData(vault),\n }));\n\n allVaults.push(...vaultsWithLpData);\n const lastVaultTimestamp = vaults[vaults.length - 1]?.createdAt;\n if (!lastVaultTimestamp) {\n hasMoreData = false;\n continue;\n }\n lastTimestamp = lastVaultTimestamp;\n }\n\n // Filter deprecated vaults if needed\n // Note: In a real implementation, you would fetch deprecation data\n // For now, we return all vaults\n return allVaults;\n } catch (error) {\n console.error('Error fetching vaults from subgraph:', error);\n throw error;\n }\n }\n\n /**\n * Transform subgraph vault data to VaultsConnection format\n */\n public transformToVaultsConnection(\n vaults: SubgraphVaultDetailsWithLpData[],\n chainId: number,\n first: number = 50,\n aprMap: Map<string, number>,\n after?: string | null\n ): VaultsConnection {\n // Sort vaults by creation time (newest first)\n const sortedVaults = vaults.sort((a, b) => parseInt(b.createdAt) - parseInt(a.createdAt));\n\n // Apply pagination\n let startIndex = 0;\n if (after) {\n const afterIndex = sortedVaults.findIndex((vault) => vault.id === after);\n startIndex = afterIndex + 1;\n }\n\n const paginatedVaults = sortedVaults.slice(startIndex, startIndex + first);\n const hasNextPage = startIndex + first < sortedVaults.length;\n const endCursor =\n paginatedVaults.length > 0 ? paginatedVaults[paginatedVaults.length - 1].id : null;\n\n const edges: VaultEdge[] = paginatedVaults.map((vault) => ({\n cursor: vault.id,\n node: this.transformSubgraphVaultToVaultNode(vault, chainId, aprMap),\n }));\n\n return {\n edges,\n pageInfo: {\n hasNextPage,\n endCursor,\n },\n totalCount: sortedVaults.length,\n };\n }\n}\n"]}
1
+ {"version":3,"file":"SubgraphVaultClient.js","sourceRoot":"","sources":["../../../src/utils/SubgraphVaultClient.ts"],"names":[],"mappings":"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","sourcesContent":["import { Address } from 'viem';\nimport { VaultEdge, VaultNode, VaultsConnection } from '../base/VaultClient.js';\nimport { getProtocolTypeByBeacon } from '../const/index.js';\nimport { Protocol } from '../const/chain.js';\nimport {\n LpPriceResponse,\n SubgraphResponse,\n SubgraphVaultDetails,\n SubgraphVaultDetailsWithLpData,\n SubgraphVaultPosition,\n VaultFetchOptions,\n} from './subgraph-types';\n\n/**\n * GraphQL queries for fetching vault data from Steer subgraphs\n */\nconst FIND_ALL_VAULTS = (batchSize: number = 1000, timestamp?: string) => {\n if (timestamp) {\n return `query {\n vaults(first: ${batchSize}, where: { createdAt_lte: \"${timestamp}\" }, orderBy: createdAt, orderDirection: desc) {\n id\n name\n token0\n token1\n pool\n weeklyFeeAPR\n token0Symbol\n token0Decimals\n token1Symbol\n token1Decimals\n totalValueLockedToken0\n totalValueLockedToken1\n token0Balance\n token1Balance\n totalLPTokensIssued\n createdAt\n feeTier\n strategyToken {\n id\n name\n creator {\n id\n }\n admin\n executionBundle\n }\n positions(first: 1, orderBy: timestamp, orderDirection: desc) {\n id\n upperTick\n lowerTick\n relativeWeight\n }\n fees0\n fees1\n beaconName\n payloadIpfs\n deployer\n }\n }`;\n }\n\n return `query {\n vaults(first: ${batchSize}, orderBy: createdAt, orderDirection: desc) {\n id\n name\n token0\n token1\n pool\n weeklyFeeAPR\n token0Symbol\n token0Decimals\n token1Symbol\n token1Decimals\n totalValueLockedToken0\n totalValueLockedToken1\n token0Balance\n token1Balance\n totalLPTokensIssued\n createdAt\n feeTier\n strategyToken {\n id\n name\n creator {\n id\n }\n admin\n executionBundle\n }\n positions(first: 1, orderBy: timestamp, orderDirection: desc) {\n id\n upperTick\n lowerTick\n relativeWeight\n }\n fees0\n fees1\n beaconName\n payloadIpfs\n deployer\n }\n }`;\n};\n\nconst FIND_ALL_VAULTS_BY_PROTOCOL = (\n batchSize: number = 1000,\n timestamp?: string,\n beaconNames?: string[]\n) => {\n if (!beaconNames || beaconNames.length === 0) {\n throw new Error('At least one beacon name is required');\n }\n\n // Format beaconNames for GraphQL _in filter\n const beaconNamesList = beaconNames.map((b) => `\"${b}\"`).join(', ');\n const beaconNameFilter = `beaconName_in: [${beaconNamesList}]`;\n\n if (timestamp) {\n return `query {\n vaults(first: ${batchSize}, where: { createdAt_lte: \"${timestamp}\", ${beaconNameFilter} }, orderBy: createdAt, orderDirection: desc) {\n id\n name\n token0\n token1\n pool\n weeklyFeeAPR\n token0Symbol\n token0Decimals\n token1Symbol\n token1Decimals\n totalValueLockedToken0\n totalValueLockedToken1\n token0Balance\n token1Balance\n totalLPTokensIssued\n createdAt\n feeTier\n positions(first: 1, orderBy: timestamp, orderDirection: desc) {\n id\n upperTick\n lowerTick\n relativeWeight\n }\n fees0\n fees1\n strategyToken {\n id\n name\n creator {\n id\n }\n admin\n executionBundle\n }\n beaconName\n payloadIpfs\n deployer\n }\n }`;\n }\n\n return `query {\n vaults(first: ${batchSize}, where: { ${beaconNameFilter} }, orderBy: createdAt, orderDirection: desc) {\n id\n name\n token0\n token1\n pool\n weeklyFeeAPR\n token0Symbol\n token0Decimals\n token1Symbol\n token1Decimals\n totalValueLockedToken0\n totalValueLockedToken1\n token0Balance\n token1Balance\n totalLPTokensIssued\n createdAt\n feeTier\n strategyToken {\n id\n name\n creator {\n id\n }\n admin\n executionBundle\n }\n positions(first: 1, orderBy: timestamp, orderDirection: desc) {\n id\n upperTick\n lowerTick\n relativeWeight\n }\n fees0\n fees1\n beaconName\n payloadIpfs\n deployer\n }\n }`;\n};\n\n/**\n * Utility class for fetching vault data from Steer subgraphs\n */\nexport class SubgraphVaultClient {\n private readonly SENTIO_API_KEY =\n typeof process !== 'undefined' ? process.env?.SENTIO_API_KEY : undefined;\n\n /**\n * Transform subgraph vault data to match VaultClient interface\n */\n private transformSubgraphVaultToVaultNode(\n vault: SubgraphVaultDetailsWithLpData,\n chainId: number,\n aprMap: Map<string, number>\n ): VaultNode {\n const feeApr = aprMap.get(vault.id) ? aprMap.get(vault.id) : undefined;\n\n const tickRange = this.computeTickRange(vault.positions ?? []);\n\n return {\n id: vault.id,\n chainId,\n vaultAddress: vault.id,\n protocol: getProtocolTypeByBeacon(vault.beaconName) || Protocol.Uniswap,\n beaconName: vault.beaconName,\n protocolBaseType: this.getProtocolBaseType(vault.beaconName),\n name: vault.name || '',\n feeApr: feeApr ? parseFloat(feeApr.toString()) : undefined,\n stakingApr: undefined,\n merklApr: undefined,\n positions: (vault.positions ?? []).map((p) => ({\n id: p.id,\n upperTick: parseInt(p.upperTick, 10),\n lowerTick: parseInt(p.lowerTick, 10),\n relativeWeight: p.relativeWeight,\n })),\n tickRange,\n fees:\n vault.fees0 !== undefined && vault.fees1 !== undefined\n ? { fees0: vault.fees0, fees1: vault.fees1 }\n : undefined,\n pool: {\n id: vault.pool,\n poolAddress: vault.pool,\n feeTier: vault.feeTier,\n tick: undefined,\n liquidity: undefined,\n volumeUSD: undefined,\n totalValueLockedUSD: vault.lpPriceData?.vault.usd.totalValue?.toString(),\n },\n token0: {\n id: vault.token0,\n symbol: vault.token0Symbol,\n name: vault.token0Symbol,\n decimals: parseInt(vault.token0Decimals),\n address: vault.token0,\n chainId,\n },\n token1: {\n id: vault.token1,\n symbol: vault.token1Symbol,\n name: vault.token1Symbol,\n decimals: parseInt(vault.token1Decimals),\n address: vault.token1,\n chainId,\n },\n };\n }\n\n /**\n * Compute the tick range across all vault positions.\n * Returns the minimum lowerTick and maximum upperTick, giving the full\n * span of liquidity currently deployed by the vault strategy.\n */\n private computeTickRange(\n positions: SubgraphVaultPosition[]\n ): VaultNode['tickRange'] {\n if (!positions.length) return undefined;\n\n let minLowerTick = Infinity;\n let maxUpperTick = -Infinity;\n\n for (const pos of positions) {\n const lower = parseInt(pos.lowerTick, 10);\n const upper = parseInt(pos.upperTick, 10);\n if (!isNaN(lower) && lower < minLowerTick) minLowerTick = lower;\n if (!isNaN(upper) && upper > maxUpperTick) maxUpperTick = upper;\n }\n\n if (minLowerTick === Infinity || maxUpperTick === -Infinity) return undefined;\n\n return { minLowerTick, maxUpperTick };\n }\n\n /**\n * Get protocol base type from beacon name\n */\n private getProtocolBaseType(beaconName: string): string {\n if (beaconName.includes('uniswap')) {\n return 'UniswapV3';\n }\n const protocol = getProtocolTypeByBeacon(beaconName);\n if (protocol) {\n return protocol === Protocol.Blackhole ? 'Algebra Integral' : protocol;\n }\n if (beaconName.includes('Stryke')) {\n return 'Stryke';\n }\n return 'UniswapV3'; // Default\n }\n\n /**\n * Create a mock LP price response for vaults without LP data\n */\n private createMockLpPriceData(vault: SubgraphVaultDetails): LpPriceResponse {\n return {\n vault: {\n address: vault.id as Address,\n token0: vault.token0 as Address,\n token1: vault.token1 as Address,\n balances: {\n token0: vault.token0Balance,\n token1: vault.token1Balance,\n totalSupply: vault.totalLPTokensIssued,\n token0Formatted: vault.token0Balance,\n token1Formatted: vault.token1Balance,\n totalSupplyFormatted: vault.totalLPTokensIssued,\n },\n usd: {\n lpValue: 0,\n totalValue: 0,\n token0Price: 0,\n token0Value: 0,\n token1Price: 0,\n token1Value: 0,\n },\n token0Symbol: vault.token0Symbol,\n token1Symbol: vault.token1Symbol,\n token0Decimals: vault.token0Decimals,\n token1Decimals: vault.token1Decimals,\n },\n routes: {\n token0ToUsd: [],\n token1ToUsd: [],\n },\n };\n }\n\n /**\n * Fetch vault data from subgraph\n */\n public async getAllVaultsFromSubgraph(\n options: VaultFetchOptions\n ): Promise<SubgraphVaultDetailsWithLpData[]> {\n const { subgraphUrl, showCurrentProtocol = false, beaconNames, batchSize = 1000 } = options;\n\n const allVaults: SubgraphVaultDetailsWithLpData[] = [];\n\n try {\n // First get the latest vault to get the most recent timestamp\n const latestVaultResponse = await fetch(subgraphUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n ...(subgraphUrl.includes('sentio') && this.SENTIO_API_KEY\n ? { 'api-key': this.SENTIO_API_KEY }\n : {}),\n },\n body: JSON.stringify({\n query: !showCurrentProtocol\n ? FIND_ALL_VAULTS(1)\n : FIND_ALL_VAULTS_BY_PROTOCOL(1, undefined, beaconNames),\n variables: {},\n }),\n });\n\n const latestVaultData: SubgraphResponse<SubgraphVaultDetails> =\n await latestVaultResponse.json();\n let lastTimestamp = latestVaultData?.data?.vaults?.[0]?.createdAt;\n\n if (!lastTimestamp) {\n return [];\n }\n\n let hasMoreData = true;\n while (hasMoreData) {\n const response = await fetch(subgraphUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n ...(subgraphUrl.includes('sentio') && this.SENTIO_API_KEY\n ? { 'api-key': this.SENTIO_API_KEY }\n : {}),\n },\n body: JSON.stringify({\n query: !showCurrentProtocol\n ? FIND_ALL_VAULTS(batchSize, lastTimestamp)\n : FIND_ALL_VAULTS_BY_PROTOCOL(batchSize, lastTimestamp, beaconNames),\n variables: {},\n }),\n });\n\n const responseData: SubgraphResponse<SubgraphVaultDetails> = await response.json();\n const vaults = responseData?.data?.vaults || [];\n\n if (!vaults.length) {\n hasMoreData = false;\n continue;\n }\n\n // Filter out duplicates based on vault ID\n const newVaults = vaults.filter(\n (vault: SubgraphVaultDetails) => !allVaults.some((existing) => existing.id === vault.id)\n );\n\n if (!newVaults.length) {\n hasMoreData = false;\n continue;\n }\n\n // For now, attach mock LP data to each vault\n // In a real implementation, you would fetch LP price data here\n const vaultsWithLpData: SubgraphVaultDetailsWithLpData[] = newVaults.map((vault) => ({\n ...vault,\n lpPriceData: this.createMockLpPriceData(vault),\n }));\n\n allVaults.push(...vaultsWithLpData);\n const lastVaultTimestamp = vaults[vaults.length - 1]?.createdAt;\n if (!lastVaultTimestamp) {\n hasMoreData = false;\n continue;\n }\n lastTimestamp = lastVaultTimestamp;\n }\n\n // Filter deprecated vaults if needed\n // Note: In a real implementation, you would fetch deprecation data\n // For now, we return all vaults\n return allVaults;\n } catch (error) {\n console.error('Error fetching vaults from subgraph:', error);\n throw error;\n }\n }\n\n /**\n * Transform subgraph vault data to VaultsConnection format\n */\n public transformToVaultsConnection(\n vaults: SubgraphVaultDetailsWithLpData[],\n chainId: number,\n first: number = 50,\n aprMap: Map<string, number>,\n after?: string | null\n ): VaultsConnection {\n // Sort vaults by creation time (newest first)\n const sortedVaults = vaults.sort((a, b) => parseInt(b.createdAt) - parseInt(a.createdAt));\n\n // Apply pagination\n let startIndex = 0;\n if (after) {\n const afterIndex = sortedVaults.findIndex((vault) => vault.id === after);\n startIndex = afterIndex + 1;\n }\n\n const paginatedVaults = sortedVaults.slice(startIndex, startIndex + first);\n const hasNextPage = startIndex + first < sortedVaults.length;\n const endCursor =\n paginatedVaults.length > 0 ? paginatedVaults[paginatedVaults.length - 1].id : null;\n\n const edges: VaultEdge[] = paginatedVaults.map((vault) => ({\n cursor: vault.id,\n node: this.transformSubgraphVaultToVaultNode(vault, chainId, aprMap),\n }));\n\n return {\n edges,\n pageInfo: {\n hasNextPage,\n endCursor,\n },\n totalCount: sortedVaults.length,\n };\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Chain } from '../chain';
1
+ import { Chain } from '../chain.js';
2
2
  export interface StabilityVaultInfo {
3
3
  beaconContract: string;
4
4
  peripheryAddress: Partial<{
@@ -1 +1 @@
1
- {"version":3,"file":"stabilityVaultsConfig.d.ts","sourceRoot":"","sources":["../../../../src/const/stabilityVaults/stabilityVaultsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;SAAG,KAAK,IAAI,KAAK,GAAG,MAAM;KAAE,CAAC,CAAC;IACxD,WAAW,EAAE,OAAO,CAAC;SAAG,KAAK,IAAI,KAAK,GAAG,MAAM;KAAE,CAAC,CAAC;IACnD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAGD,eAAO,MAAM,qBAAqB,EAAE,kBAWnC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAEnF;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAE9E"}
1
+ {"version":3,"file":"stabilityVaultsConfig.d.ts","sourceRoot":"","sources":["../../../../src/const/stabilityVaults/stabilityVaultsConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;SAAG,KAAK,IAAI,KAAK,GAAG,MAAM;KAAE,CAAC,CAAC;IACxD,WAAW,EAAE,OAAO,CAAC;SAAG,KAAK,IAAI,KAAK,GAAG,MAAM;KAAE,CAAC,CAAC;IACnD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAGD,eAAO,MAAM,qBAAqB,EAAE,kBAWnC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAEnF;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAE9E"}
@@ -1,4 +1,4 @@
1
- import { VaultsConnection } from '../base/VaultClient';
1
+ import { VaultsConnection } from '../base/VaultClient.js';
2
2
  import { SubgraphVaultDetailsWithLpData, VaultFetchOptions } from './subgraph-types';
3
3
  /**
4
4
  * Utility class for fetching vault data from Steer subgraphs
@@ -1 +1 @@
1
- {"version":3,"file":"SubgraphVaultClient.d.ts","sourceRoot":"","sources":["../../../src/utils/SubgraphVaultClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG7E,OAAO,EAIL,8BAA8B,EAE9B,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAiM1B;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAC4C;IAE3E;;OAEG;IACH,OAAO,CAAC,iCAAiC;IA2DzC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkC7B;;OAEG;IACU,wBAAwB,CACnC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,8BAA8B,EAAE,CAAC;IA6F5C;;OAEG;IACI,2BAA2B,CAChC,MAAM,EAAE,8BAA8B,EAAE,EACxC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,YAAK,EAClB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACpB,gBAAgB;CA8BpB"}
1
+ {"version":3,"file":"SubgraphVaultClient.d.ts","sourceRoot":"","sources":["../../../src/utils/SubgraphVaultClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAGhF,OAAO,EAIL,8BAA8B,EAE9B,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAiM1B;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAC4C;IAE3E;;OAEG;IACH,OAAO,CAAC,iCAAiC;IA2DzC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkC7B;;OAEG;IACU,wBAAwB,CACnC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,8BAA8B,EAAE,CAAC;IA6F5C;;OAEG;IACI,2BAA2B,CAChC,MAAM,EAAE,8BAA8B,EAAE,EACxC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,YAAK,EAClB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GACpB,gBAAgB;CA8BpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steerprotocol/sdk",
3
- "version": "1.30.2",
3
+ "version": "1.30.3",
4
4
  "description": "Steer Protocol SDK",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -1,12 +1,12 @@
1
1
  import { createClient } from '@steerprotocol/api-sdk';
2
2
  import { Pool as PoolV3 } from "@uniswap/v3-sdk";
3
3
  import type { Address, Hash, PublicClient, WalletClient } from 'viem';
4
- import { chainIdToName, getBeaconNameByProtocol, getProtocolTypeByBeacon } from '../const';
4
+ import { chainIdToName, getBeaconNameByProtocol, getProtocolTypeByBeacon } from '../const/index.js';
5
5
  import { getAmmConfig } from '../const/amm/configs/ammConfig.js';
6
- import { getProtocolsForChainId } from '../const/amm/utils/protocol';
7
- import { ChainId, MultiPositionManagers, Protocol } from '../const/chain';
8
- import { steerSubgraphConfig } from '../const/subgraph';
9
- import { SubgraphVaultClient } from '../utils/SubgraphVaultClient';
6
+ import { getProtocolsForChainId } from '../const/amm/utils/protocol.js';
7
+ import { ChainId, MultiPositionManagers, Protocol } from '../const/chain.js';
8
+ import { steerSubgraphConfig } from '../const/subgraph.js';
9
+ import { SubgraphVaultClient } from '../utils/SubgraphVaultClient.js';
10
10
  import { getApiUrl } from '../const/api.js';
11
11
  import { abis } from '../const/deployments/abis.js';
12
12
  import { SteerResponse, VaultDetailsResponse } from '../types.js';
@@ -1,4 +1,4 @@
1
- import { Chain } from '../chain';
1
+ import { Chain } from '../chain.js';
2
2
 
3
3
  export interface StabilityVaultInfo {
4
4
  beaconContract: string;
@@ -1,7 +1,7 @@
1
1
  import { Address } from 'viem';
2
- import { VaultEdge, VaultNode, VaultsConnection } from '../base/VaultClient';
3
- import { getProtocolTypeByBeacon } from '../const';
4
- import { Protocol } from '../const/chain';
2
+ import { VaultEdge, VaultNode, VaultsConnection } from '../base/VaultClient.js';
3
+ import { getProtocolTypeByBeacon } from '../const/index.js';
4
+ import { Protocol } from '../const/chain.js';
5
5
  import {
6
6
  LpPriceResponse,
7
7
  SubgraphResponse,