From 74975697ce6a690bb0f6ebb655e8dcf172653b15 Mon Sep 17 00:00:00 2001 From: Jin-K-Yang Date: Thu, 12 Sep 2024 09:34:52 +0000 Subject: [PATCH 1/8] modify the aaveVault contract address to our new upgradable contracts --- projects/lazyotter/index.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/projects/lazyotter/index.js b/projects/lazyotter/index.js index 4dd3d84cda0..ec00f6273d3 100644 --- a/projects/lazyotter/index.js +++ b/projects/lazyotter/index.js @@ -1,8 +1,9 @@ -const aaveVaults = ["0x7100409baaeda121ab92f663e3ddb898f11ff745", "0x844Ccc93888CAeBbAd91332FCa1045e6926a084d"]; +// usdc, weth, wstETH +const aaveVaults = ["0xF91caE959D134065f39DDaa41d66E254dfaFc6f8", "0x81A47E298d634273Afe43AD58EaC5888983d21c4", "0x22EdDd86Ee6e1dcD2eAb06f80ee39B3c084a1E77"]; +const aTokens = ["0x1D738a3436A8C49CefFbaB7fbF04B660fb528CbD", "0xf301805bE1Df81102C957f6d4Ce29d2B8c056B2a", "0x5B1322eeb46240b02e20062b8F0F9908d525B09c"]; async function tvl(api) { const tokens = await api.multiCall({ abi: "address:asset", calls: aaveVaults }); - const aTokens = await api.multiCall({ abi: "address:aToken", calls: aaveVaults }); const tokensAndOwners2 = [tokens.concat(aTokens), aaveVaults.concat(aaveVaults)]; return api.sumTokens({ tokensAndOwners2 }); } From 492f9b5315f8388e3a7ae5847b55af2a885a99b3 Mon Sep 17 00:00:00 2001 From: Jin-K-Yang Date: Thu, 12 Sep 2024 10:29:26 +0000 Subject: [PATCH 2/8] add new ambient vault --- projects/lazyotter/index.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/projects/lazyotter/index.js b/projects/lazyotter/index.js index ec00f6273d3..57ada8a72e9 100644 --- a/projects/lazyotter/index.js +++ b/projects/lazyotter/index.js @@ -1,11 +1,22 @@ -// usdc, weth, wstETH +// [usdc, weth, wstETH] const aaveVaults = ["0xF91caE959D134065f39DDaa41d66E254dfaFc6f8", "0x81A47E298d634273Afe43AD58EaC5888983d21c4", "0x22EdDd86Ee6e1dcD2eAb06f80ee39B3c084a1E77"]; const aTokens = ["0x1D738a3436A8C49CefFbaB7fbF04B660fb528CbD", "0xf301805bE1Df81102C957f6d4Ce29d2B8c056B2a", "0x5B1322eeb46240b02e20062b8F0F9908d525B09c"]; +// [eth/usdc, eth/wbtc, eth/wrsETH, eth/wstETH, usdc/usdt] +const ambientVaults = ["0x07ab0C3A3D9e286ba790FF57f205970bC462BB21", "0x018B3ac371344735025cB01d79871Be0e4AB351C", "0x7D1E707011bA5be76806037532c266fA6eb0699f", "0xe18acadfb098fbf4017108a5C83Fa901B062a53d", "0xfbB0D0cB3324Ec90c6667D9E2b8B98dB8F73a3e6"] + async function tvl(api) { + // Aave vaults const tokens = await api.multiCall({ abi: "address:asset", calls: aaveVaults }); - const tokensAndOwners2 = [tokens.concat(aTokens), aaveVaults.concat(aaveVaults)]; - return api.sumTokens({ tokensAndOwners2 }); + + // Ambient vaults + const lpTokens = await api.multiCall({ abi: "address:asset", calls: ambientVaults }); + + const tokensAndOwners2 = [ + [...tokens, ...aTokens, ...lpTokens], + [...aaveVaults, ...aaveVaults, ...ambientVaults] + ]; + return api.sumTokens({ tokensAndOwners2, resolveLP: true,}); } module.exports = { From edc46b923cc32c1b87c9722d11f900296373e976 Mon Sep 17 00:00:00 2001 From: g1ntoki <99907941+g1nt0ki@users.noreply.github.com> Date: Thu, 12 Sep 2024 15:32:09 +0200 Subject: [PATCH 3/8] code refactor --- projects/lazyotter/index.js | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/projects/lazyotter/index.js b/projects/lazyotter/index.js index 57ada8a72e9..02f3443478c 100644 --- a/projects/lazyotter/index.js +++ b/projects/lazyotter/index.js @@ -1,22 +1,12 @@ // [usdc, weth, wstETH] const aaveVaults = ["0xF91caE959D134065f39DDaa41d66E254dfaFc6f8", "0x81A47E298d634273Afe43AD58EaC5888983d21c4", "0x22EdDd86Ee6e1dcD2eAb06f80ee39B3c084a1E77"]; -const aTokens = ["0x1D738a3436A8C49CefFbaB7fbF04B660fb528CbD", "0xf301805bE1Df81102C957f6d4Ce29d2B8c056B2a", "0x5B1322eeb46240b02e20062b8F0F9908d525B09c"]; // [eth/usdc, eth/wbtc, eth/wrsETH, eth/wstETH, usdc/usdt] const ambientVaults = ["0x07ab0C3A3D9e286ba790FF57f205970bC462BB21", "0x018B3ac371344735025cB01d79871Be0e4AB351C", "0x7D1E707011bA5be76806037532c266fA6eb0699f", "0xe18acadfb098fbf4017108a5C83Fa901B062a53d", "0xfbB0D0cB3324Ec90c6667D9E2b8B98dB8F73a3e6"] async function tvl(api) { - // Aave vaults - const tokens = await api.multiCall({ abi: "address:asset", calls: aaveVaults }); - - // Ambient vaults - const lpTokens = await api.multiCall({ abi: "address:asset", calls: ambientVaults }); - - const tokensAndOwners2 = [ - [...tokens, ...aTokens, ...lpTokens], - [...aaveVaults, ...aaveVaults, ...ambientVaults] - ]; - return api.sumTokens({ tokensAndOwners2, resolveLP: true,}); + await api.erc4626Sum2({ calls: aaveVaults, }); + await api.erc4626Sum2({ calls: ambientVaults, tokenAbi: 'baseToken', balanceAbi: 'totalAssets' }); } module.exports = { From eada0f50b00fc9a6bb96012c1ca0330dff64c282 Mon Sep 17 00:00:00 2001 From: Jin-K-Yang Date: Thu, 12 Sep 2024 17:00:29 +0000 Subject: [PATCH 4/8] remove ambient vault tvl --- projects/lazyotter/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/lazyotter/index.js b/projects/lazyotter/index.js index 02f3443478c..b1b974b8268 100644 --- a/projects/lazyotter/index.js +++ b/projects/lazyotter/index.js @@ -2,11 +2,11 @@ const aaveVaults = ["0xF91caE959D134065f39DDaa41d66E254dfaFc6f8", "0x81A47E298d634273Afe43AD58EaC5888983d21c4", "0x22EdDd86Ee6e1dcD2eAb06f80ee39B3c084a1E77"]; // [eth/usdc, eth/wbtc, eth/wrsETH, eth/wstETH, usdc/usdt] -const ambientVaults = ["0x07ab0C3A3D9e286ba790FF57f205970bC462BB21", "0x018B3ac371344735025cB01d79871Be0e4AB351C", "0x7D1E707011bA5be76806037532c266fA6eb0699f", "0xe18acadfb098fbf4017108a5C83Fa901B062a53d", "0xfbB0D0cB3324Ec90c6667D9E2b8B98dB8F73a3e6"] +// const ambientVaults = ["0x07ab0C3A3D9e286ba790FF57f205970bC462BB21", "0x018B3ac371344735025cB01d79871Be0e4AB351C", "0x7D1E707011bA5be76806037532c266fA6eb0699f", "0xe18acadfb098fbf4017108a5C83Fa901B062a53d", "0xfbB0D0cB3324Ec90c6667D9E2b8B98dB8F73a3e6"] async function tvl(api) { await api.erc4626Sum2({ calls: aaveVaults, }); - await api.erc4626Sum2({ calls: ambientVaults, tokenAbi: 'baseToken', balanceAbi: 'totalAssets' }); + // await api.erc4626Sum2({ calls: ambientVaults, tokenAbi: 'baseToken', balanceAbi: 'totalAssets' }); } module.exports = { From 7e0051f772a5e2ce88afed56216d815957727c94 Mon Sep 17 00:00:00 2001 From: Jin-K-Yang Date: Fri, 13 Sep 2024 08:29:43 +0000 Subject: [PATCH 5/8] add ambient vault tvl --- projects/lazyotter/index.js | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/projects/lazyotter/index.js b/projects/lazyotter/index.js index b1b974b8268..ee00a49da20 100644 --- a/projects/lazyotter/index.js +++ b/projects/lazyotter/index.js @@ -2,11 +2,38 @@ const aaveVaults = ["0xF91caE959D134065f39DDaa41d66E254dfaFc6f8", "0x81A47E298d634273Afe43AD58EaC5888983d21c4", "0x22EdDd86Ee6e1dcD2eAb06f80ee39B3c084a1E77"]; // [eth/usdc, eth/wbtc, eth/wrsETH, eth/wstETH, usdc/usdt] -// const ambientVaults = ["0x07ab0C3A3D9e286ba790FF57f205970bC462BB21", "0x018B3ac371344735025cB01d79871Be0e4AB351C", "0x7D1E707011bA5be76806037532c266fA6eb0699f", "0xe18acadfb098fbf4017108a5C83Fa901B062a53d", "0xfbB0D0cB3324Ec90c6667D9E2b8B98dB8F73a3e6"] +const ambientVaultHelper = "0x9b5BD88893d73d114d252Cff7CFd4f2705eEFAe7" +const ambientVaults = ["0x07ab0C3A3D9e286ba790FF57f205970bC462BB21", "0x018B3ac371344735025cB01d79871Be0e4AB351C", "0x7D1E707011bA5be76806037532c266fA6eb0699f", "0xe18acadfb098fbf4017108a5C83Fa901B062a53d", "0xfbB0D0cB3324Ec90c6667D9E2b8B98dB8F73a3e6"] async function tvl(api) { await api.erc4626Sum2({ calls: aaveVaults, }); - // await api.erc4626Sum2({ calls: ambientVaults, tokenAbi: 'baseToken', balanceAbi: 'totalAssets' }); + + // ambient vaults tvl calculation + for (const vault of ambientVaults) { + const totalAssets = await api.call({ + abi: 'uint256:totalAssets', + target: vault + }) + + const [quoteTokenAmount, baseTokenAmount] = await api.call({ + abi: 'function previewAmountByAsset(address vault, uint256 assets) view returns (uint256, uint256)', + target: ambientVaultHelper, + params: [vault, totalAssets] + }) + + const quoteToken = await api.call({ + abi: 'address:quoteToken', + target: vault + }) + + const baseToken = await api.call({ + abi: 'address:baseToken', + target: vault + }) + + api.add(quoteToken, quoteTokenAmount) + api.add(baseToken, baseTokenAmount) // baseToken might be address(0) which represents eth, is it ok for Defillama's api? + } } module.exports = { From 1d3187f0d81b2eb9fbcb7f0e4d90e81936d20557 Mon Sep 17 00:00:00 2001 From: g1ntoki <99907941+g1nt0ki@users.noreply.github.com> Date: Fri, 13 Sep 2024 12:23:36 +0200 Subject: [PATCH 6/8] code refactor --- projects/lazyotter/index.js | 34 ++++++++-------------------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/projects/lazyotter/index.js b/projects/lazyotter/index.js index ee00a49da20..b93cbd24616 100644 --- a/projects/lazyotter/index.js +++ b/projects/lazyotter/index.js @@ -7,32 +7,14 @@ const ambientVaults = ["0x07ab0C3A3D9e286ba790FF57f205970bC462BB21", "0x018B3ac3 async function tvl(api) { await api.erc4626Sum2({ calls: aaveVaults, }); - - // ambient vaults tvl calculation - for (const vault of ambientVaults) { - const totalAssets = await api.call({ - abi: 'uint256:totalAssets', - target: vault - }) - - const [quoteTokenAmount, baseTokenAmount] = await api.call({ - abi: 'function previewAmountByAsset(address vault, uint256 assets) view returns (uint256, uint256)', - target: ambientVaultHelper, - params: [vault, totalAssets] - }) - - const quoteToken = await api.call({ - abi: 'address:quoteToken', - target: vault - }) - - const baseToken = await api.call({ - abi: 'address:baseToken', - target: vault - }) - - api.add(quoteToken, quoteTokenAmount) - api.add(baseToken, baseTokenAmount) // baseToken might be address(0) which represents eth, is it ok for Defillama's api? + const ambAssets = await api.multiCall({ abi: 'uint256:totalAssets', calls: ambientVaults}) + const calls = ambAssets.map((v, i) => ({ params: [ambientVaults[i], v]})) + const res = await api.multiCall({ abi: 'function previewAmountByAsset(address vault, uint256 assets) view returns (uint256, uint256)', calls, target: ambientVaultHelper}) + const quoteTokens = await api.multiCall({ abi: 'address:quoteToken', calls: ambientVaults}) + const baseTokens = await api.multiCall({ abi: 'address:baseToken', calls: ambientVaults}) + for (const i in res){ + api.add(quoteTokens[i], res[i][0]) + api.add(baseTokens[i], res[i][1]) } } From 0651e271f49a2c48c8795271f92095f9702eb642 Mon Sep 17 00:00:00 2001 From: Jin-K-Yang Date: Mon, 16 Sep 2024 04:58:42 +0000 Subject: [PATCH 7/8] add rho markets vault tvl --- projects/lazyotter/index.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/projects/lazyotter/index.js b/projects/lazyotter/index.js index b93cbd24616..97bad04bb56 100644 --- a/projects/lazyotter/index.js +++ b/projects/lazyotter/index.js @@ -5,8 +5,19 @@ const aaveVaults = ["0xF91caE959D134065f39DDaa41d66E254dfaFc6f8", "0x81A47E298d6 const ambientVaultHelper = "0x9b5BD88893d73d114d252Cff7CFd4f2705eEFAe7" const ambientVaults = ["0x07ab0C3A3D9e286ba790FF57f205970bC462BB21", "0x018B3ac371344735025cB01d79871Be0e4AB351C", "0x7D1E707011bA5be76806037532c266fA6eb0699f", "0xe18acadfb098fbf4017108a5C83Fa901B062a53d", "0xfbB0D0cB3324Ec90c6667D9E2b8B98dB8F73a3e6"] +// [USDC, USDT, wstETH, weETH, wrsETH, STONE] +const rhoMarketsVault = [ + "0x1BA2A898b5EfB716557696e3E42E6479882fCDE1", + "0x87131c9Bb4878067742dd5D60596ED3b353493FD", + "0xfAe6c6E62bc5374a229960891Ec9707e8671a219", + "0x74a28efb7275c3871aCCaE2917f6EE073039042d", + "0x4220F7297eBa7cE583826eC754A0CBE29E4e6F6f", + "0x235ea5d1EA9407334E0AF8F45BA6c9A69DF9AC18" +] + async function tvl(api) { await api.erc4626Sum2({ calls: aaveVaults, }); + await api.erc4626Sum2({ calls: rhoMarketsVault, }); const ambAssets = await api.multiCall({ abi: 'uint256:totalAssets', calls: ambientVaults}) const calls = ambAssets.map((v, i) => ({ params: [ambientVaults[i], v]})) const res = await api.multiCall({ abi: 'function previewAmountByAsset(address vault, uint256 assets) view returns (uint256, uint256)', calls, target: ambientVaultHelper}) From 179d2dbd9f21a52590d3cd6820801b82ce7907c6 Mon Sep 17 00:00:00 2001 From: g1ntoki <99907941+g1nt0ki@users.noreply.github.com> Date: Mon, 16 Sep 2024 09:13:33 +0200 Subject: [PATCH 8/8] minor fix --- projects/lazyotter/index.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/projects/lazyotter/index.js b/projects/lazyotter/index.js index 97bad04bb56..e39cfda9702 100644 --- a/projects/lazyotter/index.js +++ b/projects/lazyotter/index.js @@ -16,8 +16,7 @@ const rhoMarketsVault = [ ] async function tvl(api) { - await api.erc4626Sum2({ calls: aaveVaults, }); - await api.erc4626Sum2({ calls: rhoMarketsVault, }); + await api.erc4626Sum2({ calls: aaveVaults.concat(rhoMarketsVault), }); const ambAssets = await api.multiCall({ abi: 'uint256:totalAssets', calls: ambientVaults}) const calls = ambAssets.map((v, i) => ({ params: [ambientVaults[i], v]})) const res = await api.multiCall({ abi: 'function previewAmountByAsset(address vault, uint256 assets) view returns (uint256, uint256)', calls, target: ambientVaultHelper})