diff --git a/projects/cover.js b/projects/cover.js index 527841ea4..b5db9ec2b 100644 --- a/projects/cover.js +++ b/projects/cover.js @@ -1,32 +1,13 @@ const ADDRESSES = require('./helper/coreAssets.json') -const sdk = require("@defillama/sdk"); const abis = require('./config/cover/cover.js') -const { sumTokens } = require('./helper/unwrapLPs'); -async function tvl(ts, block) { - - let factory = '0xedfC81Bf63527337cD2193925f9C0cF2D537AccA'; - const { output: allProtocols } = await sdk.api.abi.call({ - block, - target: factory, - abi: abis.abis.protocols.getAllProtocolAddresses - }) - - const calls = allProtocols.map(p => ({ target: p })) - const { output: protocolDetails } = await sdk.api.abi.multiCall({ - block, - calls, - abi: abis.abis.cover.getProtocolDetails - }) - const toa = [] - - protocolDetails.forEach(({ output }) => { - output._allCovers.forEach(cover => toa.push( - [ADDRESSES.ethereum.DAI, cover], // DAI - ['0x16de59092dAE5CcF4A1E6439D611fd0653f0Bd01', cover], // yearn DAI - )) - }) - return sumTokens({}, toa, block) +async function tvl(api) { + let factory = '0xedfC81Bf63527337cD2193925f9C0cF2D537AccA' + const allProtocols = await api.call({ abi: abis.abis.protocols.getAllProtocolAddresses, target: factory }) + const details = await api.multiCall({ abi: abis.abis.cover.getProtocolDetails, calls: allProtocols}) + const tokens = [ADDRESSES.ethereum.DAI, '0x16de59092dAE5CcF4A1E6439D611fd0653f0Bd01'] + const owners = details.map(i => i._allCovers).flat() + return api.sumTokens({ owners, tokens }) } diff --git a/projects/dev.js b/projects/dev.js index 1f02f198e..19bdd476a 100644 --- a/projects/dev.js +++ b/projects/dev.js @@ -1,22 +1,10 @@ -const sdk = require("@defillama/sdk") - const ADDRESS_CONFIG_ADDRESS = '0x1D415aa39D647834786EB9B5a333A50e9935b796' const TOKEN_ADDRESS = '0x5cAf454Ba92e6F2c929DF14667Ee360eD9fD5b26' -async function staking(ts, block) { - const { output: lockupAddress } = await sdk.api.abi.call({ - block, - target: ADDRESS_CONFIG_ADDRESS, - abi: 'address:lockup' - }) - const { output: allValue } = await sdk.api.abi.call({ - block, - target: lockupAddress, - abi: 'uint256:getAllValue' - }) - return { - [TOKEN_ADDRESS]: allValue - } +async function staking(api) { + const lockupAddress= await api.call({ abi: 'address:lockup', target: ADDRESS_CONFIG_ADDRESS}) + const bal = await api.call({ abi: 'uint256:getAllValue', target: lockupAddress}) + api.add(TOKEN_ADDRESS, bal) } module.exports = { diff --git a/projects/helper/tokenMapping.js b/projects/helper/tokenMapping.js index 343c5c0c3..4a9051868 100644 --- a/projects/helper/tokenMapping.js +++ b/projects/helper/tokenMapping.js @@ -53,6 +53,12 @@ const fixBalancesTokens = { core: { '0x1281E326C6e4413A98DafBd0D174a4Ae07ff4223': { coingeckoId: "zeepr", decimals: 18, }, }, + velas: { + '0xaadbaa6758fc00dec9b43a0364a372605d8f1883': { coingeckoId: "staked-vlx", decimals: 18, }, + '0x2b1abeb48f875465bf0d3a262a2080ab1c7a3e39': { coingeckoId: "velas", decimals: 18, }, + '0x380f73bad5e7396b260f737291ae5a8100baabcd': { coingeckoId: "ethereum", decimals: 18, }, + '0x4b773e1ae1baa4894e51cc1d1faf485c91b1012f': { coingeckoId: "tether", decimals: 6, }, + }, } ibcChains.forEach(chain => fixBalancesTokens[chain] = { ...ibcMappings, ...(fixBalancesTokens[chain] || {}) }) diff --git a/projects/symblox.js b/projects/symblox.js index ca2ab3118..ff2e8dc2f 100644 --- a/projects/symblox.js +++ b/projects/symblox.js @@ -1,74 +1,16 @@ -const sdk = require("@defillama/sdk"); +const { sumTokens2 } = require("./helper/unwrapLPs"); const symblox = "0xD0CB9244844F3E11061fb3Ea136Aab3a6ACAC017"; const pools = { - "0x2af1fea48018fe9f1266d67d45b388935df1c14d": { - address: "0xaadbaa6758fc00dec9b43a0364a372605d8f1883", - id: "velas", - decimals: 18, - }, - "0x720b92ef8ee928c5cbe9ca787321802610bcbf6e": { - address: "0x2b1abeb48f875465bf0d3a262a2080ab1c7a3e39", - id: "velas", - decimals: 18, - }, - "0x974d24a6bce9e0a0a27228e627c9ca1437fe0286": { - address: "0x380f73bad5e7396b260f737291ae5a8100baabcd", - id: "weth", - decimals: 18, - }, - "0xe7557efbe705e425de6a57e90447ba5ad70e9de5": { - address: "0x4b773e1ae1baa4894e51cc1d1faf485c91b1012f", - id: "tether", - decimals: 6, - }, + "0x2af1fea48018fe9f1266d67d45b388935df1c14d": "0xaadbaa6758fc00dec9b43a0364a372605d8f1883", + "0x720b92ef8ee928c5cbe9ca787321802610bcbf6e": "0x2b1abeb48f875465bf0d3a262a2080ab1c7a3e39", + "0x974d24a6bce9e0a0a27228e627c9ca1437fe0286": "0x380f73bad5e7396b260f737291ae5a8100baabcd", + "0xe7557efbe705e425de6a57e90447ba5ad70e9de5": "0x4b773e1ae1baa4894e51cc1d1faf485c91b1012f", }; -async function tvl(timestamp, block, chainBlocks) { - let balances = {}; - block = chainBlocks.velas; - - const pairBalances = ( - await sdk.api.abi.multiCall({ - abi: "erc20:balanceOf", - calls: Object.keys(pools).map((p) => ({ - target: pools[p].address, - params: p, - })), - block, - chain: "velas", - }) - ).output; - - const syxBalances = ( - await sdk.api.abi.multiCall({ - abi: "erc20:balanceOf", - calls: Object.keys(pools).map((p) => ({ - target: symblox, - params: p, - })), - block, - chain: "velas", - }) - ).output; - - for (let i = 0; i < Object.keys(pools).length; i++) { - const pool = Object.values(pools)[i]; - await Promise.all([ - sdk.util.sumSingleBalance( - balances, - pool.id, - pairBalances[i].output / 10 ** pool.decimals - ), - sdk.util.sumSingleBalance( - balances, - 'symblox', - syxBalances[i].output / 10 ** 18 - ), - ]); - } - - return balances; +async function tvl(api) { + const ownerTokens = Object.entries(pools).map(([id, pool]) => [[pool, symblox], id]) + return sumTokens2({api, ownerTokens }) } module.exports = {