From afb57f19d09ab8f2f05354abe10dc4c4ae07b3d2 Mon Sep 17 00:00:00 2001 From: swan-of-bodom Date: Sat, 19 Jul 2025 18:58:23 +0200 Subject: [PATCH 1/3] Add avalanche lending vaults --- src/adaptors/impermax-v3/blacklist.js | 1 + src/adaptors/impermax-v3/index.js | 31 +++++++++++++++++++++++---- src/adaptors/impermax-v3/query.js | 22 ++++++++++++++++++- 3 files changed, 49 insertions(+), 5 deletions(-) diff --git a/src/adaptors/impermax-v3/blacklist.js b/src/adaptors/impermax-v3/blacklist.js index 9db2416c0e..0f8800c593 100644 --- a/src/adaptors/impermax-v3/blacklist.js +++ b/src/adaptors/impermax-v3/blacklist.js @@ -63,6 +63,7 @@ const blacklistedLendingVaults = { ethereum: [], optimism: [], fantom: [], + avalanche: [] }; module.exports = { diff --git a/src/adaptors/impermax-v3/index.js b/src/adaptors/impermax-v3/index.js index fd80ecdb3a..16ba1c9188 100644 --- a/src/adaptors/impermax-v3/index.js +++ b/src/adaptors/impermax-v3/index.js @@ -9,7 +9,7 @@ const { blacklistedLendingPools, blacklistedLendingVaults, } = require('./blacklist.js'); -const { graphQuery, vaultGraphQuery } = require('./query.js'); +const { graphQuery, vaultGraphQuery, vaultGraphQueryV2 } = require('./query.js'); const { GECKOTERMINAL_IDS } = require('./geckoterminal.js'); /** @@ -20,6 +20,11 @@ const config = { arbitrum: ['https://arbitrum-factory-v3-production.up.railway.app/'], base: ['https://base-factory-v3-production.up.railway.app/'], unichain: ['https://unichain-factoryv3-production.up.railway.app/'], + avalanche: [], + scroll: [], + polygon: [], + sonic: [], + blast: [] }; const lendingVaultsConfig = { @@ -48,6 +53,9 @@ const lendingVaultsConfig = { unichain: [ 'https://api.studio.thegraph.com/query/46041/lending-vault-unichain/v0.0.1', ], + avalanche: [ + 'https://avalanche-lendingvaults-production.up.railway.app' + ] }; // NFTLP factory address @@ -137,6 +145,20 @@ const lendingVaultProfiles = { risk: "Conservative" } ], + avalanche: [ + { + address: "0xe93ca55cbd509fab8420649f7198705ef37790de".toLowerCase(), + risk: "Conservative", + }, // AVAX + { + address: "0x74480d1cee7e53195c35055f5b33a30e3739888a".toLowerCase(), + risk: "Conservative", + }, // USDC + { + address: "0x3d992bcd37de363dec6c4ec81f97aeb66e866af2".toLowerCase(), + risk: "Conservative", + }, // WETH.e + ] }; /** @@ -163,8 +185,9 @@ const getChainVaults = async (chain) => { let allLendingVaults = []; for (const url of urls) { - const queryResult = await request(url, vaultGraphQuery); - allLendingVaults = allLendingVaults.concat(queryResult.lendingVaults); + const isV2 = url.includes("railway"); + const queryResult = await request(url, isV2 ? vaultGraphQueryV2 : vaultGraphQuery); + allLendingVaults = allLendingVaults.concat(isV2 ? queryResult.lendingVaults.items : queryResult.lendingVaults); } const blacklist = blacklistedLendingVaults[chain] || []; @@ -416,7 +439,7 @@ const main = async () => { const price = prices[`${chain}:${underlying.id}`]; if (!price) { - console.warn(`Missing price, skipping vault ${vault.id} `); + console.warn(`Missing price, skipping vault ${vault.id} on ${chain}`); continue; } diff --git a/src/adaptors/impermax-v3/query.js b/src/adaptors/impermax-v3/query.js index 089baeba53..a90337afaa 100644 --- a/src/adaptors/impermax-v3/query.js +++ b/src/adaptors/impermax-v3/query.js @@ -56,7 +56,27 @@ const vaultGraphQuery = `{ } }` +const vaultGraphQueryV2 = `{ + lendingVaults { + items { + id + supplyRate + underlying { + id + symbol + } + reserveFactor + lastUpdate + totalBalance + totalSupply + exchangeRate + availableLiquidity + } + } +}` + module.exports = { graphQuery, - vaultGraphQuery + vaultGraphQuery, + vaultGraphQueryV2, }; From 98e9487be2acf5af537c2b4304df8b3db832b668 Mon Sep 17 00:00:00 2001 From: swan-of-bodom Date: Sat, 19 Jul 2025 20:29:59 +0200 Subject: [PATCH 2/3] update lending vaults --- src/adaptors/impermax-v3/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/adaptors/impermax-v3/index.js b/src/adaptors/impermax-v3/index.js index 16ba1c9188..65071391a3 100644 --- a/src/adaptors/impermax-v3/index.js +++ b/src/adaptors/impermax-v3/index.js @@ -147,15 +147,15 @@ const lendingVaultProfiles = { ], avalanche: [ { - address: "0xe93ca55cbd509fab8420649f7198705ef37790de".toLowerCase(), + address: "0x6859e20754ffbf93a81428f3da55c9f0eb723b2a".toLowerCase(), risk: "Conservative", }, // AVAX { - address: "0x74480d1cee7e53195c35055f5b33a30e3739888a".toLowerCase(), + address: "0xf35c95bd8869f4ae4b68a97e25462c3db08e9468".toLowerCase(), risk: "Conservative", }, // USDC { - address: "0x3d992bcd37de363dec6c4ec81f97aeb66e866af2".toLowerCase(), + address: "0x738f2d9a7c52f91c4f2fdf515fb8aad951c22cd9".toLowerCase(), risk: "Conservative", }, // WETH.e ] From 4822eef977cdeb72ae8a81c7a6a5cfeeeba5b129 Mon Sep 17 00:00:00 2001 From: swan-of-bodom Date: Sat, 19 Jul 2025 20:32:34 +0200 Subject: [PATCH 3/3] Update vault profiles --- src/adaptors/impermax-v3/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/adaptors/impermax-v3/index.js b/src/adaptors/impermax-v3/index.js index 65071391a3..dda71deb56 100644 --- a/src/adaptors/impermax-v3/index.js +++ b/src/adaptors/impermax-v3/index.js @@ -148,15 +148,15 @@ const lendingVaultProfiles = { avalanche: [ { address: "0x6859e20754ffbf93a81428f3da55c9f0eb723b2a".toLowerCase(), - risk: "Conservative", + risk: "Balanced", }, // AVAX { address: "0xf35c95bd8869f4ae4b68a97e25462c3db08e9468".toLowerCase(), - risk: "Conservative", + risk: "Balanced", }, // USDC { address: "0x738f2d9a7c52f91c4f2fdf515fb8aad951c22cd9".toLowerCase(), - risk: "Conservative", + risk: "Balanced", }, // WETH.e ] };