diff --git a/package-lock.json b/package-lock.json index e105101bb596..794800f1dd65 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1009,9 +1009,9 @@ } }, "node_modules/@defillama/sdk": { - "version": "5.0.109", - "resolved": "https://registry.npmjs.org/@defillama/sdk/-/sdk-5.0.109.tgz", - "integrity": "sha512-FRooEEJImkjp6gi0Kn9OH9aXxn7vXlm4fIU5Oi9z1AB8ZZbsfzjElonweenxkJu6lLzMenH/7Z4bTZAZVN3Lkw==", + "version": "5.0.110", + "resolved": "https://registry.npmjs.org/@defillama/sdk/-/sdk-5.0.110.tgz", + "integrity": "sha512-qqU+NcxoPVKQ0hWqsLFxMsAma/RsOxE1Hga/h8jjIqQjSipShkwJ1rU8niwJKxHm3/ZDVT70fIFmSJit80lJZg==", "dependencies": { "@aws-sdk/client-s3": "^3.400.0", "@elastic/elasticsearch": "^8.13.1", diff --git a/projects/Equalizer/index.js b/projects/Equalizer/index.js index 1d2e0a465712..f4ccf119a486 100644 --- a/projects/Equalizer/index.js +++ b/projects/Equalizer/index.js @@ -7,4 +7,7 @@ module.exports = { tvl: uniTvlExport("0xc6366EFD0AF1d09171fe0EBF32c7943BB310832a", "fantom", undefined, undefined, { hasStablePools: true, useDefaultCoreAssets: true, }), staking: staking("0x8313f3551C4D3984FfbaDFb42f780D0c8763Ce94", "0x3Fd3A0c85B70754eFc07aC9Ac0cbBDCe664865A6"), }, + sonic: { + tvl: uniTvlExport("0xDDD9845Ba0D8f38d3045f804f67A1a8B9A528FcC", "fantom", undefined, undefined, { hasStablePools: true, useDefaultCoreAssets: true, stablePoolSymbol: 's-'}), + } } diff --git a/projects/ZTLN/index.js b/projects/ZTLN/index.js index f3d9acdf980d..c8f8aff25d24 100644 --- a/projects/ZTLN/index.js +++ b/projects/ZTLN/index.js @@ -13,38 +13,31 @@ query MyQuery { } `; -async function getTvl() { - try { - const data = await request(endpoint, query); - - const securities = data.securities || []; - - let tokens = 0; - const currencyDecimal = 10 ** 18; - - securities.forEach(security => { - security.secondaryInvestors.forEach(investor => { - const amt = parseFloat(investor.amount); - tokens += amt / currencyDecimal; - }); - }); +async function tvl(api) { + const data = await request(endpoint, query); - const price = 100.5; - const tvl = tokens * price; + const securities = data.securities || []; - // console.log("tvl", tvl); - return tvl; - } catch (error) { - console.error("Error fetching TVL:", error); - return 0; - } + let tokens = 0; + const currencyDecimal = 10 ** 18; + + securities.forEach(security => { + security.secondaryInvestors.forEach(investor => { + const amt = parseFloat(investor.amount); + tokens += amt / currencyDecimal; + }); + }); + + const price = 100.5; + const tvl = tokens * price + api.addUSDValue(tvl); } module.exports = { timetravel: false, + misrepresentedTokens: true, methodology: "The value in RWA held by the protocol", ethereum: { - fetch: getTvl + tvl }, - fetch: getTvl }; \ No newline at end of file diff --git a/projects/alexar/index.js b/projects/alexar/index.js index f904f2c2686b..73cbe4349d9a 100644 --- a/projects/alexar/index.js +++ b/projects/alexar/index.js @@ -1,8 +1,6 @@ const { getConfig } = require('../helper/cache') const { sumTokens } = require('../helper/sumTokens') -const blacklistedAssets = ['uaxl']; - const chainMapping = { avax: 'avalanche', cosmos: 'cosmoshub', @@ -11,9 +9,12 @@ const chainMapping = { }; const blackListChains = ['comdex', 'crescent']; -const chainListSupply = ['juno', 'cosmos', 'carbon', 'injective', 'kujira', 'osmosis', 'persistence', 'stargaze', 'secret', 'stargaze', 'umee', 'evmos', 'terra2']; +const chainListSupply = ['juno', 'cosmos', 'injective', 'kujira', 'osmosis', 'persistence', 'stargaze', 'secret', 'stargaze', 'umee', 'evmos', 'terra2']; const chainListTotal = ['avax', 'bsc', 'moonbeam', 'polygon', 'fantom', 'arbitrum', 'aurora', 'celo', 'kava', 'mantle', 'ethereum', 'base']; +const blacklistedTokensChain = { + ethereum: ['0x946fb08103b400d1c79e07acCCDEf5cfd26cd374'], // KIP tvl is higher than the circulating supply +} chainListSupply.concat(chainListTotal).forEach(chain => { if (blackListChains.includes(chain)) { @@ -25,6 +26,7 @@ chainListSupply.concat(chainListTotal).forEach(chain => { const config = await getConfig('alexar', 'https://api.axelarscan.io/api/getTVL') const tokensAndOwners = [] const owners = [] + const blacklistedTokens = blacklistedTokensChain[chain] || [] const mappedChain = chainMapping[chain] || chain; config.data.forEach(({ tvl: { [mappedChain]: assetTvl } = {} }) => { if (!assetTvl) return; @@ -42,8 +44,8 @@ chainListSupply.concat(chainListTotal).forEach(chain => { } }) if (tokensAndOwners.length > 0) - return api.sumTokens({ tokensAndOwners }) - return sumTokens({ chain, owners }) + return api.sumTokens({ tokensAndOwners, blacklistedTokens }) + return sumTokens({ chain, owners, blacklistedTokens, }) } }); diff --git a/projects/apwine/index.js b/projects/apwine/index.js index 79522802e0a2..65d76621ae9c 100644 --- a/projects/apwine/index.js +++ b/projects/apwine/index.js @@ -108,7 +108,7 @@ module.exports = { doublecounted: true, ethereum: { tvl: tvl_from_registry('ethereum'), - staking: staking(veAPW, APW), + //staking: staking(veAPW, APW), }, polygon: { tvl: tvl_from_registry('polygon'), diff --git a/projects/blacksail/index.js b/projects/blacksail/index.js new file mode 100644 index 000000000000..28fe21edc3f2 --- /dev/null +++ b/projects/blacksail/index.js @@ -0,0 +1,48 @@ +const { get } = require('../helper/http') +const { sumUnknownTokens } = require('../helper/unknownTokens') + +async function fetcher() { + const response = await get('https://api.blacksail.finance/stats'); + return response; +} + +const strats = [ + "0x11d58E28048132957FA344Be0Ae3FaE56bA185d2", "0x197329445441dFa5B725eA654A6f910f7669e83f", "0x14E19a5d30E75e252F02f6cFD3985b1b5c64D298", "0x33f02985658B7E2763859154B92A97d90F8Ec7ad", "0xAc57B713C630f188bc2d95c2ae3C27A1DE1DebA1", "0xDBa26763C6DbA30891453897Ef0b85C3Ab126Bb7", "0x6506920CF039087792BE09066712F4dC2186C749", "0xba5eC23096D5579b2052aA77317167E2d905D84E", "0xBdfF1fFbBdA067416c10719804EAC95A49B84EE4", "0xb896e66473915157534C77e06925d88E5b42C057", "0xe15825c6a9e26F47b436b9c3bd76b79daDfd7075", "0x613662ED769c0313cF228d76Fb3863456B6D0C5a", "0x88BF4D8efF256eEaE1Ccc7D5A93f23d88EC178f4", "0x2D5016734838FDf467016c9EF649327FD4110c71", "0x79f28bebd165D2B884f90e60b1946154A58752f1", "0xF5F2A9Ae7673dc28A327684b023A89248F8E8318", "0x0149Ed6072b343E587718f5B82dE7F665E44E403", "0x32259E464d130479eE4cB2c3F375d21A401Ab129", "0x3bBf53067B7C596De32092C789C051f5284c50bD", "0xc48077cDdbD8AC80aC1E7e22D510480ba700cbd1", "0x14A8B80078b818E62A53B39781C357610EC3C16F", "0xC84FcDF81b86D817A28d046eA89752030f6c1c4d", "0x491612ACe7d4ccd255fC5D08710ABF1b666a77DF", "0x4D6C1b29FD117790b8dA064d259821154fe99a42", "0x41b3407e368F96f58645543Bce307493631e303B", "0x30f10efC192BC2095f9085199F3916Cd043b2d44", "0xba6b2bb02854E174Ab9B995261B447154EAbd10a", "0x9Fb4B224Ab74DeB01899C4CdBC037419e2700aCF", "0x96c2BCed606bdddb1f1f0BAfe6a5dc8d746F8484", "0x1175D5fF8fA3cC545eAEb9697eB20237873281B3", "0x4d8C24Ab68B5C32c38BC39ab841B6cCE454C03aD", "0x4f796426B6d8cD98cE814837e03eCa4e8D66Dff3", "0x174A963186BB90852461D189035eB923f6fCc838", "0xAC76a4714f08F04F32DF75D647979f2660239078", "0x978526df622cE9b02b5A32f4D76C73d066b72FEb", "0x33B1C16403fF2BFbA0508e15eAEA58BDA1eDc48C", "0xe8F694512973eBE7D6FDA181872e6Ffb1B7eaB5c" +] + +async function tvl(api) { + const bals = await api.multiCall({ abi: 'uint256:balanceOf', calls: strats }) + const tokens = await api.multiCall({ abi: 'address:staking_token', calls: strats }) + const symbols = await api.multiCall({ abi: 'string:symbol', calls: tokens }) + const ichiVaults = [] + const ichiBals = [] + tokens.forEach((token, i) => { + if (symbols[i] === 'ICHI_Vault_LP') { + ichiVaults.push(token) + ichiBals.push(bals[i]) + } else + api.add(token, bals[i]) + }) + + // resolve ichi vaults + const iSupplies = await api.multiCall({ abi: 'uint256:totalSupply', calls: ichiVaults }) + const iToken0s = await api.multiCall({ abi: 'address:token0', calls: ichiVaults }) + const iToken1s = await api.multiCall({ abi: 'address:token1', calls: ichiVaults }) + const iTokenBals = await api.multiCall({ abi: 'function getTotalAmounts() view returns (uint256 bal1, uint256 bal2)', calls: ichiVaults }) + + iSupplies.map((_, i) => { + const token0 = iToken0s[i] + const token1 = iToken1s[i] + const ratio = ichiBals[i] / iSupplies[i] + api.add(token0, iTokenBals[i].bal1 * ratio) + api.add(token1, iTokenBals[i].bal2 * ratio) + }) + + return sumUnknownTokens({ api, useDefaultCoreAssets: true, lps: tokens.filter((_, i) => symbols[i].startsWith('v-')), resolveLP: true, allLps: true, }) +} + +module.exports = { + sonic: { + tvl, + } +} \ No newline at end of file diff --git a/projects/credbull/index.js b/projects/credbull/index.js index fc22664beac7..dd5fae54c2d0 100644 --- a/projects/credbull/index.js +++ b/projects/credbull/index.js @@ -1,15 +1,46 @@ const { getConfig } = require('../helper/cache'); -const STAKING_VAULT_CONTRACT = "0xe4a4d891f02DF7bFFc5ff9e691313DE8a9E76b91"; -const CBL_TOKEN = "0xD6b3d81868770083307840F513A3491960b95cb6"; +const cblConfigArbitrum = { + cbl: "0xD6b3d81868770083307840F513A3491960b95cb6", + cblStakingV2: "0xc0C1DaA773570C041c47cE12c397AdDFD6B7403F", +}; + +const fundConfigPolygon = { + liquidStoneFund: "0x2eda17eb596858566be933b26fae6fa4ee8ccd6d", + fundNavCalculator: "0xcdf038dd3b66506d2e5378aee185b2f0084b7a33", +}; +// Credbull DeFi Vaults v1 TVL (6 or 12 month fixed APY) async function tvl(api) { let vaults = await getConfig('credbull', "https://incredbull.io/api/vaults") vaults = vaults[api.chain] const tokens = await api.multiCall({ abi: 'address:asset', calls: vaults }) + return api.sumTokens({ tokensAndOwners2: [tokens, vaults] }) } +// Credbull Fund, including LiquidStone +async function borrowedFund(api) { + const fundNavResults = await api.multiCall({ + abi: 'function calcNav(address _vaultProxy) external returns (address denominationAsset, uint256 nav)', + calls: [fundConfigPolygon.liquidStoneFund], + target: fundConfigPolygon.fundNavCalculator, + excludeFailed: true, + }) + const vaultBalance = await api.call({ abi: 'erc20:balanceOf', target: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', params: fundConfigPolygon.liquidStoneFund }) + api.add('0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', vaultBalance * -1) + + fundNavResults.forEach((i) => { + api.add(i.denominationAsset, i.nav) + }); + api.getBalancesV2().removeNegativeBalances() +} + +async function polygonTvl(api) { + const vaultBalance = await api.call({ abi: 'erc20:balanceOf', target: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', params: fundConfigPolygon.liquidStoneFund }) + api.add('0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359', vaultBalance) +} + async function borrowed(api) { let vaults = await getConfig('credbull', "https://incredbull.io/api/vaults") vaults = vaults[api.chain] @@ -21,12 +52,13 @@ async function borrowed(api) { } async function stakedCbl(api) { - const bals = await api.multiCall({ abi: 'address:totalAssets', calls: [STAKING_VAULT_CONTRACT,] }) - api.add(CBL_TOKEN, bals) + const bals = await api.multiCall({ abi: 'address:totalAssets', calls: [cblConfigArbitrum.cblStakingV2,] }) + api.add(cblConfigArbitrum.cbl, bals) } module.exports = { methodology: 'TVL consist of the sum of every deposit of all vaults for a given asset.', - btr: { tvl, borrowed, }, arbitrum: { tvl, borrowed, staking: stakedCbl }, + btr: { tvl, borrowed, }, + polygon: { borrowed: borrowedFund, tvl: polygonTvl }, }; diff --git a/projects/cronos-zk/index.js b/projects/cronos-zk/index.js index 8de3a066146f..a0e11b966bb5 100644 --- a/projects/cronos-zk/index.js +++ b/projects/cronos-zk/index.js @@ -1,31 +1,7 @@ -const { sumTokens2 } = require("../helper/unwrapLPs"); - -const target = "0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB" -const gasQuery = '0x0000000000000000000000000000000000000001' -const gasAddress = '0x0000000000000000000000000000000000000000' -const chainId = 388 +const getTvl = require("../txBridge/util") module.exports = { ethereum: { - tvl: async (api) => { - const totalBalances = await sumTokens2({ - api, - owner: target, - fetchCoValentTokens: true, - }) - const balances = await api.multiCall({ - calls: [gasQuery, ...Object.keys(totalBalances)].map(token => ({ - target, params: [chainId, token.substring(token.indexOf(':') + 1)] - })), - abi: { "inputs": [{ "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "l1Token", "type": "address" }], "name": "chainBalance", "outputs": [{ "internalType": "uint256", "name": "balance", "type": "uint256" }], "stateMutability": "view", "type": "function" }, - permitFailure: true, - withMetadata: true - }) - api._balances._balances = {} - balances.map(call => { - const token = call.input.params[1] - api.add(token == gasQuery ? gasAddress : token, call.output) - }) - } + tvl: async (api) => getTvl(api, { chainId: 388, }), }, -}; +} diff --git a/projects/curve/contracts.json b/projects/curve/contracts.json index 20f177d9e6ca..3ad5498ed0fb 100644 --- a/projects/curve/contracts.json +++ b/projects/curve/contracts.json @@ -214,5 +214,12 @@ "CurveStableswapFactoryNG": "0xd7E72f3615aa65b92A4DBdC211E296a35512988B", "CurveTwocryptoFactoryNG": "0x5Ea9DD3b6f042A34Df818C6c1324BC5A7c61427a", "CurveTricryptoFactoryNG": "0x7Ca46A636b02D4aBC66883D7FF164bDE506DC66a" + }, + "sonic": { + "gasTokenDummy": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", + "wrapped": "0x039e2fb66102314ce7b64ce5ce3e5183bc94ad38", + "CurveStableswapFactoryNG": "0x7C2085419BE6a04f4ad88ea91bC9F5C6E6C463D8", + "CurveTwocryptoFactoryNG": "0x1A83348F9cCFD3Fe1A8C0adBa580Ac4e267Fe495", + "CurveTricryptoFactoryNG": "0x635742dCC8313DCf8c904206037d962c042EAfBd" } } \ No newline at end of file diff --git a/projects/curve/index.js b/projects/curve/index.js index 0d7b871d2746..85295f3fdb5e 100644 --- a/projects/curve/index.js +++ b/projects/curve/index.js @@ -11,14 +11,14 @@ const contracts = require("./contracts.json"); const { getLogs } = require('../helper/cache/getLogs') const chains = [ - "ethereum", //-200M - "polygon", //-40M - "arbitrum", //G - "aurora", //G - "avax", //-30M - "fantom", //-80M - "optimism", //-6M - "xdai", //G + "ethereum", + "polygon", + "arbitrum", + "aurora", + "avax", + "fantom", + "optimism", + "xdai", "moonbeam", "celo", "kava", @@ -29,7 +29,8 @@ const chains = [ "mantle", "taiko", "corn", -]; // Object.keys(contracts); + "sonic", +]; const registryIds = { stableswap: 0, stableFactory: 3, @@ -94,7 +95,7 @@ async function getPools(block, chain) { let { registriesMapping, addressProvider } = contracts[chain] if (!registriesMapping) { registriesMapping = {}; - if(addressProvider){ + if (addressProvider) { (await sdk.api.abi.multiCall({ block, chain, calls: Object.values(registryIds).map(r => ({ params: r })), @@ -259,7 +260,7 @@ module.exports = chainTypeExports(chains); module.exports.ethereum["staking"] = staking( contracts.ethereum.veCRV, contracts.ethereum.CRV -); +); module.exports.harmony = { tvl: async (api) => { @@ -267,10 +268,12 @@ module.exports.harmony = { // harmony hack return {}; } - return api.sumTokens({ owner: '0xC5cfaDA84E902aD92DD40194f0883ad49639b023', tokens: [ - "0xef977d2f931c1978db5f6747666fa1eacb0d0339", - "0x3c2b8be99c50593081eaa2a724f0b8285f5aba8f" - ]}) + return api.sumTokens({ + owner: '0xC5cfaDA84E902aD92DD40194f0883ad49639b023', tokens: [ + "0xef977d2f931c1978db5f6747666fa1eacb0d0339", + "0x3c2b8be99c50593081eaa2a724f0b8285f5aba8f" + ] + }) } }; diff --git a/projects/dtrinity-dlend/index.js b/projects/dtrinity-dlend/index.js new file mode 100644 index 000000000000..ca0cc26075b0 --- /dev/null +++ b/projects/dtrinity-dlend/index.js @@ -0,0 +1,6 @@ +const { aaveExports, methodology } = require('../helper/aave') + +module.exports = { + fraxtal: aaveExports(null, undefined, undefined, ['0xFB3adf4c845fD6352D24F3F0981eb7954401829c'], { v3: true, blacklistedTokens: ['0x788D96f655735f52c676A133f4dFC53cEC614d4A'] }), + methodology, +} diff --git a/projects/dtrinity/index.js b/projects/dtrinity/index.js new file mode 100644 index 000000000000..f8ebd1ff8804 --- /dev/null +++ b/projects/dtrinity/index.js @@ -0,0 +1,26 @@ +const ADDRESSES = require('../helper/coreAssets.json') + +const dUSDCollateralVault = "0x624E12dE7a97B8cFc1AD1F050a1c9263b1f4FeBC" + +async function getAMOTvl(api) { + const fraxDUSDCurveLP = '0x9CA648D2f51098941688Db9a0beb1DadC2D1B357' + const fraxDUSDCurveLPBal = await api.call({ abi: 'erc20:balanceOf', target: fraxDUSDCurveLP, params: '0x0B0BD5F8A6f4c72a09748fA915Af12Ca423B7240' }) + const fraxDUSDCurveLPFraxBal = await api.call({ abi: 'erc20:balanceOf', params: fraxDUSDCurveLP, target: ADDRESSES.fraxtal.FRAX }) + const fraxDUSDCurveLPSupply = await api.call({ abi: 'erc20:totalSupply', target: fraxDUSDCurveLP, }) + const fraxBal = fraxDUSDCurveLPFraxBal * fraxDUSDCurveLPBal / fraxDUSDCurveLPSupply + api.add(ADDRESSES.fraxtal.FRAX, fraxBal) +} + +const tvl = async (api) => { + await getAMOTvl(api) + + const tokens = await api.call({ abi: 'address[]:listCollateral', target: dUSDCollateralVault }) + return api.sumTokens({ owner: dUSDCollateralVault, tokens }) +} + +module.exports = { + methodology: 'Includes TVL for dLEND and TVL for dUSD.', + fraxtal: { + tvl, + } +}; \ No newline at end of file diff --git a/projects/dyorswap/index.js b/projects/dyorswap/index.js index e4d27a2d890b..1626095e85b5 100644 --- a/projects/dyorswap/index.js +++ b/projects/dyorswap/index.js @@ -9,6 +9,7 @@ const config = { xlayer: '0x2ccadb1e437aa9cdc741574bda154686b1f04c09', bob: '0x2CcaDb1e437AA9cDc741574bDa154686B1F04C09', ink: '0x6c86ab200661512fDBd27Da4Bb87dF15609A2806', + sonic: '0xd8863d794520285185197F97215c8B8AD04E8815', } module.exports = { diff --git a/projects/equalizer-cl/index.js b/projects/equalizer-cl/index.js new file mode 100644 index 000000000000..982eac7c964c --- /dev/null +++ b/projects/equalizer-cl/index.js @@ -0,0 +1,5 @@ +const { uniV3Export } = require('../helper/uniswapV3') + +module.exports = uniV3Export({ + sonic: { factory: '0x7Ca1dCCFB4f49564b8f13E18a67747fd428F1C40', fromBlock: 548413, }, +}) \ No newline at end of file diff --git a/projects/equilibria/index.js b/projects/equilibria/index.js index 14c6cc39e75c..9441ff0d0e71 100644 --- a/projects/equilibria/index.js +++ b/projects/equilibria/index.js @@ -1,114 +1,113 @@ -const sdk = require("@defillama/sdk"); -const { sumTokensExport } = require("../helper/unwrapLPs"); - -const contracts = { +const config = { ethereum: { - boosterAddress: "0x4D32C8Ff2fACC771eC7Efc70d6A8468bC30C26bF", - staker: "0x64627901dAdb46eD7f275fD4FC87d086cfF1e6E3", - eqbAddress: "0xfE80D611c6403f70e5B1b9B722D2B3510B740B2B", - eqbRewardsAddress: "0xd8967B2B15b3CDF96039b7407813B4037f73ec27", - pendleAddress: "0x808507121b80c02388fad14726482e061b8da827", + pendleBooster: "0x4D32C8Ff2fACC771eC7Efc70d6A8468bC30C26bF", + pendleProxy: "0x64627901dAdb46eD7f275fD4FC87d086cfF1e6E3", + eqb: "0xfE80D611c6403f70e5B1b9B722D2B3510B740B2B", + vlEqb: "0xd8967B2B15b3CDF96039b7407813B4037f73ec27", + pendle: "0x808507121b80c02388fad14726482e061b8da827", + ePendle: "0x22Fc5A29bd3d6CCe19a06f844019fd506fCe4455", + ePendleReward: "0x357F55b46821A6C6e476CC32EBB2674cD125e849", }, arbitrum: { - boosterAddress: "0x4D32C8Ff2fACC771eC7Efc70d6A8468bC30C26bF", - staker: "0x64627901dAdb46eD7f275fD4FC87d086cfF1e6E3", - eqbRewardsAddress: "0x70f61901658aAFB7aE57dA0C30695cE4417e72b9", - pendleAddress: "0x0c880f6761F1af8d9Aa9C466984b80DAb9a8c9e8", + pendleBooster: "0x4D32C8Ff2fACC771eC7Efc70d6A8468bC30C26bF", + pendleProxy: "0x64627901dAdb46eD7f275fD4FC87d086cfF1e6E3", + eqb: "0xBfbCFe8873fE28Dfa25f1099282b088D52bbAD9C", + vlEqb: "0x70f61901658aAFB7aE57dA0C30695cE4417e72b9", + pendle: "0x0c880f6761F1af8d9Aa9C466984b80DAb9a8c9e8", + ePendle: "0x3EaBE18eAE267D1B57f917aBa085bb5906114600", + ePendleReward: "0x9739d1E515C5291faA26D92a5D02761b6BbB4D6F", }, bsc: { - boosterAddress: "0x4D32C8Ff2fACC771eC7Efc70d6A8468bC30C26bF", - staker: "0x64627901dAdb46eD7f275fD4FC87d086cfF1e6E3", - eqbRewardsAddress: "0x0140dE476f49B6B42f7b73612b6dc317aB91D3BC", - pendleAddress: "0xb3Ed0A426155B79B898849803E3B36552f7ED507", + pendleBooster: "0x4D32C8Ff2fACC771eC7Efc70d6A8468bC30C26bF", + pendleProxy: "0x64627901dAdb46eD7f275fD4FC87d086cfF1e6E3", + eqb: "0x374Ca32fd7934c5d43240E1e73fa9B2283468609", + vlEqb: "0x0140dE476f49B6B42f7b73612b6dc317aB91D3BC", + pendle: "0xb3Ed0A426155B79B898849803E3B36552f7ED507", + ePendle: "0x898CA9B3ef8b6a30dA5fc7202f70E7992b3602B3", + ePendleReward: "0xE2dB20ce7D845f99338BbA4bdFF00e733801Dde7", }, optimism: { - boosterAddress: "0x18C61629E6CBAdB85c29ba7993f251b3EbE2B356", - staker: "0x4D32C8Ff2fACC771eC7Efc70d6A8468bC30C26bF", - eqbRewardsAddress: "0x22Fc5A29bd3d6CCe19a06f844019fd506fCe4455", - pendleAddress: "0xBC7B1Ff1c6989f006a1185318eD4E7b5796e66E1", + pendleBooster: "0x18C61629E6CBAdB85c29ba7993f251b3EbE2B356", + pendleProxy: "0x4D32C8Ff2fACC771eC7Efc70d6A8468bC30C26bF", + eqb: "0xaf3A6f67Af1624d3878A8d30b09FAe7915DcA2a0", + vlEqb: "0x22Fc5A29bd3d6CCe19a06f844019fd506fCe4455", + pendle: "0xBC7B1Ff1c6989f006a1185318eD4E7b5796e66E1", + ePendle: "0x86a20111fEae36f3511A30c0640d2099b3A818C5", + ePendleReward: "0x898CA9B3ef8b6a30dA5fc7202f70E7992b3602B3", }, mantle: { - boosterAddress: "0x920873E5b302A619C54c908aDFB77a1C4256A3B8", - staker: "0x479603DE0a8B6D2f4D4eaA1058Eea0d7Ac9E218d", - eqbRewardsAddress: "0x71e0ce200a10f0bBFB9F924fE466ACf0B7401EbF", - pendleAddress: "0xd27B18915e7acc8FD6Ac75DB6766a80f8D2f5729", + pendleBooster: "0x920873E5b302A619C54c908aDFB77a1C4256A3B8", + pendleProxy: "0x479603DE0a8B6D2f4D4eaA1058Eea0d7Ac9E218d", + eqb: "0x3e7eF8f50246f725885102E8238CBba33F276747", + vlEqb: "0x71e0ce200a10f0bBFB9F924fE466ACf0B7401EbF", + pendle: "0xd27B18915e7acc8FD6Ac75DB6766a80f8D2f5729", + ePendle: "0x6EE066b813cd8C2586D86F79eD0025e81801b923", + ePendleReward: "0x741620136cf08a782c1Df1Fc9E3cAA760Cc4Fecc", + }, + base: { + pendleBooster: "0x2583A2538272f31e9A15dD12A432B8C96Ab4821d", + pendleProxy: "0x920873E5b302A619C54c908aDFB77a1C4256A3B8", + eqb: "0x010cd9b9be7E416E07793dc6Ce2F45868A80a50a", + vlEqb: "0x70f61901658aAFB7aE57dA0C30695cE4417e72b9", + pendle: "0xA99F6e6785Da0F5d6fB42495Fe424BCE029Eeb3E", + ePendle: "0x741620136cf08a782c1Df1Fc9E3cAA760Cc4Fecc", + ePendleReward: "0xB2D167EB1Fff17EbD727B0a21e7f5F50424264c8", } }; -async function tvl(chain, block) { - const balances = {}; +const abi = { + "poolLength": "uint256:poolLength", + "poolInfo": "function poolInfo(uint256) view returns (address market, address token, address rewardPool, bool shutdown)" +}; + +const { staking } = require('../helper/staking') + +async function tvl(api) { + const { pendleBooster, vlEqb, pendleProxy, pendle } = config[api.chain]; - if (chain === "ethereum") { - const pendleLocked = await sdk.api2.abi.call({ + if (api.chain === "ethereum") { + const pendleLocked = await api.call({ target: "0x4f30A9D41B80ecC5B94306AB4364951AE3170210", - params: contracts[chain].staker, + params: pendleProxy, abi: "erc20:balanceOf", - block, }); - sdk.util.sumSingleBalance( - balances, - contracts[chain].pendleAddress, + api.add( + pendle, pendleLocked ); } - const poolLength = await sdk.api2.abi.call({ - chain, - block, - target: contracts[chain].boosterAddress, - abi: "function poolLength() view returns (uint256)", + const poolInfos = await api.fetchList({ + lengthAbi: abi.poolLength, + itemAbi: abi.poolInfo, + target: pendleBooster, }); - - const poolInfos = await Promise.all( - Array.from(Array(Number(poolLength)).keys()).map((params) => - sdk.api2.abi.call({ - chain, - block, - target: contracts[chain].boosterAddress, - params, - abi: "function poolInfo(uint256) view returns (address market, address token, address rewardPool, bool shutdown)", - }) - ) - ); // multicall fails here - - const { output: gaugeBalances } = await sdk.api.abi.multiCall({ - abi: "erc20:balanceOf", - calls: Array.from(new Set(poolInfos.map((p) => p.market))).map((i) => ({ - target: i, - params: contracts[chain].staker, - })), - chain, - block, - }); - - gaugeBalances.forEach(({ output, input }, i) => - sdk.util.sumSingleBalance( - balances, - chain + - ":" + - poolInfos.find( - (p) => p.market.toLowerCase() === input.target.toLowerCase() - ).market, - output - ) - ); - - return balances; + const poolTokens = poolInfos.map(pool => pool.market); + const blacklistedTokens = []; + if (vlEqb) blacklistedTokens.push(vlEqb); + return api.sumTokens({ tokens: poolTokens, owner: pendleProxy, blacklistedTokens }); } -const chains = ["ethereum", "arbitrum", 'bsc', 'optimism', 'mantle']; - -module.exports = { - doublecounted: true, -}; +Object.keys(config).forEach((chain) => { + const { eqb, vlEqb, ePendle, ePendleReward } = config[chain]; -chains.forEach((chain) => { module.exports[chain] = { - tvl: async (_, _b, { [chain]: block }) => tvl(chain, block), + tvl, }; -}); -module.exports.ethereum.staking = sumTokensExport({ - owner: contracts.ethereum.eqbRewardsAddress, - tokens: [contracts.ethereum.eqbAddress], + const stakingContracts = []; + const stakingTokens= []; + if (eqb && vlEqb) { + stakingContracts.push(vlEqb); + stakingTokens.push(eqb); + } + + if (ePendle && ePendleReward) { + stakingContracts.push(ePendleReward); + stakingTokens.push(ePendle); + } + + if (stakingContracts.length) module.exports[chain].staking = staking(stakingContracts, stakingTokens); }); + +module.exports.doublecounted = true; diff --git a/projects/fisclend/index.js b/projects/fisclend/index.js index da3d724db566..d5c622f22930 100644 --- a/projects/fisclend/index.js +++ b/projects/fisclend/index.js @@ -1,7 +1,13 @@ const { compoundExports2 } = require('../helper/compound') module.exports = { + hallmarks: [ + [1735862400, "Rug Pull"] + ], + deadFrom: 1735862400, apechain: compoundExports2({comptroller: '0xd11443B079D62700061F7311fC48C40B30BCEA91', cether: '0xB1974B31b60C7134978e5574F5f1fC8A16535b5D'}), wc: compoundExports2({comptroller: '0xE3de48DCF4968B419BB55421D6B5bF2c049DaFB2', cether: '0xCD04992D1D8d42BB432AD794103c3B498016Da88'}), sonic: compoundExports2({comptroller: '0x65E8768B86350875DDE19A791f06FfB7a4ADA71b', cether: '0x0B19823EF1F4a6B1f7c52336F428F1a92e9f645E'}), } + +Object.keys(module.exports).forEach(key => module.exports[key].borrowed = () => ({})) \ No newline at end of file diff --git a/projects/folks-galgo/index.js b/projects/folks-galgo/index.js index 3591023d4b28..42804a463de7 100644 --- a/projects/folks-galgo/index.js +++ b/projects/folks-galgo/index.js @@ -26,4 +26,5 @@ module.exports.hallmarks = [ [1711900800, "Algo Gov"], //11 [1719763200, "Algo Gov"], //12 [1727712000, "Algo Gov"], //13 + [1735660800, "Algo Gov"], //14 ] \ No newline at end of file diff --git a/projects/fringe-v2/index.js b/projects/fringe-v2/index.js index c87bc5636ac6..374fb2e88fd2 100644 --- a/projects/fringe-v2/index.js +++ b/projects/fringe-v2/index.js @@ -5,5 +5,6 @@ getExports({ optimism: "0x088F23ac0c07A3Ce008FB88c4bacFF06FECC6158", polygon: "0x286475366f736fcEeB0480d7233ef169AE614Fe4", ethereum: "0x70467416507B75543C18093096BA4612a9261DB8", - era: "0x8f1d37769a56340542Fb399Cb1cA49d46Aa9fec8" + era: "0x8f1d37769a56340542Fb399Cb1cA49d46Aa9fec8", + base: "0x36a327E6db347fC7431509C02122A829Dc559BFE" }, module.exports) \ No newline at end of file diff --git a/projects/gate-io/index.js b/projects/gate-io/index.js index 4499b8885c3a..4ead38599bac 100644 --- a/projects/gate-io/index.js +++ b/projects/gate-io/index.js @@ -1,13 +1,13 @@ const { cexExports } = require("../helper/cex"); const bitcoinAddressBook = require("../helper/bitcoin-book/index.js"); + const config = { - ethereum: { - owners: [ + "ethereum": { + "owners": [ "0x0d0707963952f2fba59dd06f2b425ace40b492fe", "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", "0x234ee9e35f8e9749a002fc42970d570db716453b", - //'0x925206b8a707096Ed26ae47C84747fE0bb734F59', //this should never be here, its the WBT token wallet "0xD793281182A0e3E023116004778F45c29fc14F19", "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", "0x246a2ecd9626f9eda55fffbff5216ed417a904f5", @@ -15,156 +15,1646 @@ const config = { "0x35b31ae2604dd81d9456205025ea02418dba8242", "0xd87C8e083AECc5405B0107c90D8E0C7F70996B84", "0x60618B3c6E3164c4a72d352Bde263A5D15f9F7eE", - ], + "0xa4992ccf2a74132936b87cbf28b5d52304ba3be7", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x1f92332145465f3e536b7be301dde8d420478387", + "0x2bea9375c50f41f828c4e8eb0da3194449b5f062", + "0x54c82d26624e85000d1387ee7c9580c3c6d7b5b7", + "0x0fc73ffb9a0ded685234428e103d26b3762df460", + "0x7750fe679d47a9e00575ad46043297a234e83fa2", + "0xa2df23519a6059dbc6f027f6cf8e59bdaecaf56f", + "0x4bbe1961bd0a6cd1fe3cd8947be15bd8ae2ee562", + "0xd793281182a0e3e023116004778f45c29fc14f19", + "0x354e0184a6a6e634ccb07388e2617e05e427563c", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] }, - avax: { - owners: [ + "avax": { + "owners": [ "0x0d0707963952f2fba59dd06f2b425ace40b492fe", "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", "0xD793281182A0e3E023116004778F45c29fc14F19", "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", - ], + ] }, - arbitrum: { - owners: [ + "arbitrum": { + "owners": [ "0x0d0707963952f2fba59dd06f2b425ace40b492fe", "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", "0xD793281182A0e3E023116004778F45c29fc14F19", "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", - ], + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] }, - polygon: { - owners: [ + "polygon": { + "owners": [ "0x0d0707963952f2fba59dd06f2b425ace40b492fe", "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", "0xD793281182A0e3E023116004778F45c29fc14F19", "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", - ], + "0xa4992ccf2a74132936b87cbf28b5d52304ba3be7", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0x54c82d26624e85000d1387ee7c9580c3c6d7b5b7", + "0x1f92332145465f3e536b7be301dde8d420478387", + "0x7750fe679d47a9e00575ad46043297a234e83fa2", + "0x0fc73ffb9a0ded685234428e103d26b3762df460", + "0xa2df23519a6059dbc6f027f6cf8e59bdaecaf56f", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] }, - fantom: { - owners: [ + "fantom": { + "owners": [ "0x0d0707963952f2fba59dd06f2b425ace40b492fe", "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", "0xD793281182A0e3E023116004778F45c29fc14F19", "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", - ], + "0xa4992ccf2a74132936b87cbf28b5d52304ba3be7", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] }, - bsc: { - owners: [ + "bsc": { + "owners": [ "0x0d0707963952f2fba59dd06f2b425ace40b492fe", "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", "0xD793281182A0e3E023116004778F45c29fc14F19", "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", - ], + "0xa4992ccf2a74132936b87cbf28b5d52304ba3be7", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] }, - optimism: { - owners: [ + "optimism": { + "owners": [ "0x0d0707963952f2fba59dd06f2b425ace40b492fe", "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", "0xD793281182A0e3E023116004778F45c29fc14F19", "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", - ], + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] }, - era: { - owners: [ + "era": { + "owners": [ "0x0d0707963952f2fba59dd06f2b425ace40b492fe", "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", "0x234ee9e35f8e9749a002fc42970d570db716453b", - // '0x925206b8a707096Ed26ae47C84747fE0bb734F59', "0xD793281182A0e3E023116004778F45c29fc14F19", "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", "0x85FAa6C1F2450b9caEA300838981C2e6E120C35c", "0xeb01f8cdae433e7b55023ff0b2da44c4c712dce2", - ], + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] }, bitcoin: { owners: bitcoinAddressBook.gateIo, }, - tron: { - owners: [ + "tron": { + "owners": [ "TBA6CypYJizwA9XdC7Ubgc5F1bxrQ7SqPt", "TCYpJ6MMzd9ytoUvD82HnS58iV75QimPh6", "TDHkXgDHEiK5WhaKTccJenZKRyUMTxoREx", "TN1K2zNVA399AHbp51yyPPfjaD9JNLfQpo", "TUt2HuZFZvXAMmF9uh7BqujvMXsZ4F1pif", - ], + "TCr9697xxWMbZznvpJh8uVQzAQR9cLXZm9", + "TDyR4wBeodpigiKmnwyBQC8UfsCH1T25XF", + "THhVZfr2Q4J3spWK84Je4ALiFyrnnSq6nN", + "TZJNuEg5VaYLR9kdQfjj7WE6jh4vt9JMp2" + ] }, - cardano: { - owners: [ + "cardano": { + "owners": [ "DdzFFzCqrhseMuShaXzLDGDBa8jGEjdEjNc83jouqdqBQzk5R52MedutUq3QGdMPiauR5SjbttqdBjDA5g6rf3H6LjpvK3dFsf8yZ6qo", "DdzFFzCqrhtBatWqyFge4w6M6VLgNUwRHiXTAg3xfQCUdTcjJxSrPHVZJBsQprUEc5pRhgMWQaGciTssoZVwrSKmG1fneZ1AeCtLgs5Y", - ], + "addr1qyzppj9mh28q9d7x070j7aphnn6dx5lsh203zukzs7q68jqf08fcmxg8h9tvx8m529hjjnm9g3pt8vlkh95em7nup32sm78295", + "addr1q9lqxlvk2dk8sffhr56gc4c4lckpv56l4r7wwh474caywurve9ssnt966vmezsfsppfm5sxgu5sqxacp8t7kpjzp9yxqn24ckj" + ] }, - solana: { - owners: [ + "solana": { + "owners": [ "u6PJ8DtQuPFnfmwHbGFULQ4u4EgjDiyYKjVEsynXq2w", "HiRpdAZifEsZGdzQ5Xo5wcnaH3D2Jj9SoNsUzcYNK78J", "CLNEVwuSAiGsvPtE74yLhda4beNfd8qfZXVKkUcAJZDL", "CVMV7614DjSjY114GwHhG1HNFXofceziDpuGz7VjDD5K", "G9XFfWz6adb9wFDKN2v7HfmJDgAc2hirrTwBmca4w26C", - ], + "E2tbmDk29G6jHdrgwHC6kXGFfDsyrXUyWjD3e3ZB4oNp", + "EnYo9PZuYwhJNi2hnk5AgsJaoNegscFF5CJkSPx1f7td", + "HMbkbJVNitT3t4EtaDJeUtwfTFGYcjU6vhE7h7dqxDzJ" + ] }, - ripple: { - owners: [ + "ripple": { + "owners": [ "rHcFoo6a9qT5NHiVn1THQRhsEGcxtYCV4d", "rLzxZuZuAHM7k3FzfmhGkXVwScM4QSxoY7", "rNnWmrc1EtNRe5SEQEs9pFibcjhpvAiVKF", "rNu9U5sSouNoFunHp9e9trsLV6pvsSf54z", - ], + "rhnS6iYGnrmh8NEgEKq3sBgF4FMLD9dHGf" + ] }, - starknet: { - owners: [ + "starknet": { + "owners": [ "0x00e91830f84747f37692127b20d4e4f9b96482b1007592fee1d7c0136ee60e6d", - ], + "0x016dd5370bfa06e862508e8b81b8f676327b55404231bfb5b34c1df10ddd8963" + ] }, - algorand: { - owners: [ + "algorand": { + "owners": [ "BVMEUTF37WNEQ6GYCZISRFHGLEMOKT5OCPPTTJXVED6JBSXKF6YJJRZRI4", "7BL55CRKRASIQI263JQ5H5A4JJQFSHL7RWXMCKM6YDZAIJVEZQ76SXF2S4", - ], + // "YGR5VO4VWBTWPWZKXBPNBPUGCM5BLP7DVAH2AF6LXAZBM5QKQGAXY5IXII" // getting account not found error + ] }, - base: { - owners: ["0xc882b111a75c0c657fc507c04fbfcd2cc984f071"], + "base": { + "owners": [ + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0xa4992ccf2a74132936b87cbf28b5d52304ba3be7", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0x1f92332145465f3e536b7be301dde8d420478387", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] }, - litecoin: { - owners: [ + "litecoin": { + "owners": [ "LaH52f9sspcacPMf2Z7mU5tkhKcWJxvAgA", "LYyhXjiwi7qcrf1QVwdPpFSptwRZ8L8PuW", "Lc3BUJTitygdVPCyiBTwA2HephzBKnHPaH", "LNyjBuigbWcHYQYbVKxk15u3Ux23QvEnS9", "LQFZFmkrmxuyL5TCjuVxngM4wRFdM2a9EW", "MQ4wXRL6etqkEPrLm4f1FKu2eXTM7EMgXo", - ], + "LZZH8R24wpRVN9g2qM9Rh2BmfcTvThDtpE" + ] }, - manta: { - owners: ["0xc882b111a75c0c657fc507c04fbfcd2cc984f071"], + "manta": { + "owners": [ + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] }, - mantle: { - owners: ["0xc882b111a75c0c657fc507c04fbfcd2cc984f071"], + "mantle": { + "owners": [ + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] }, - polkadot: { - owners: [ + "polkadot": { + "owners": [ "1JVrK16XZm9vyZjHoYVPjtZ35LvTQ4oyufMoUFTFpAUhath", "16ccyj8JqnP8d2DSaifgek6kSSBAu5cGtd4mu2uXTg4H6mSU", "14ooXLY2gmiUTVym9SnKxNwEgcoikXzMEav2kiLjr7pPPHPR", "1665ypcQXKmqXtjE9yuWsZqK5MQmBQokFjPGLq5SvoKAWBjQ", - ], + "123tA7zfH9XdqHX5v9W4mB4VfmrjE95yJvdvMbpWv5V851rX", + "15NtvAi8CGHrbaUBvXdki8GXc5YfHM9yTv6HGmaYDetLH2ob", + "15dZTKqG6YZiQNiisMZP1DT4J6J9bmEEC4Bkz24nMC1ccRe2" + ] }, - scroll: { - owners: ["0xc882b111a75c0c657fc507c04fbfcd2cc984f071"], + "scroll": { + "owners": [ + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] }, - sei: { - owners: ["sei1xunyznpjmj9jv5e2zwngp2qrzmulr2gg45sg0h"], + "sei": { + "owners": [ + "sei1xunyznpjmj9jv5e2zwngp2qrzmulr2gg45sg0h", + "sei155svs6sgxe55rnvs6ghprtqu0mh69kehwl7mxz", + "sei1jm068whkhkxk48gx80ppm2m0nwy677prmjk402", + "sei1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn9vsqw3v" + ] }, - stacks: { - owners: [ + "stacks": { + "owners": [ "SP33XEHK2SXXH625VG6W6665WBBPX1ENQVKNEYCYY", "SP15R31KXD5C0N9ESSG7B28M3DP6ZQE2GSED759B3", - ], + "SP3RWVFCERVDYEE1F9630H13P0Q0GEAGDC9MW9BJ0" + ] + }, + "taiko": { + "owners": [ + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "acala": { + "owners": [ + "21B6SER8NUWRVZcNM8LjAkYoVvms1EN1sKCfxJgTtN7MWpWm", + "26VDZeYLgh8QBcG5e3TvRkkzuHc7SuuUn2c63sLY6E19vDaU", + "24gQ7Fx4XgTk262QCmaZjPbV9UEfJNHZ7zTLuYmkUfmGCMwH", + "25FVW68A3B38AAWpyrRzV8vn4vybqBTBMKdbRc1YrCqD64b7" + ] + }, + "aelf": { + "owners": [ + "2ZwykiMYYMPx7NUodb4Z9VRzYqLrrxEpPcVuNKwT3kSQaSerQW", + "21Te3eubq6Yc7kv2FzVUvBLiyQnTZVe7nXodvexsKSZYBeoYuR", + "MTCNynuhCFJsFAwExEsXWe6tnydfnyv7WqA1SxVfsE9DT3YiG" + ] + }, + "aeternity": { + "owners": [ + "ak_6sssiKcg7AywyJkfSdHz52RbDUq5cZe4V4hcvghXnrPz4H4Qg", + "ak_2tNbVhpU6Bo3xGBJYATnqc62uXjR8yBv9e63TeYCpa6ASgEz94", + "ak_2UHGyGVYKx8L7EgPw88x3Dm2CK9WerYSTVWDf6RLuNEUxKu6q8" + ] + }, + "agoric": { + "owners": [ + "agoric155svs6sgxe55rnvs6ghprtqu0mh69keh3wdjs4", + "agoric1jm068whkhkxk48gx80ppm2m0nwy677pryr9uea", + "agoric1xunyznpjmj9jv5e2zwngp2qrzmulr2gg29rpeq", + "agoric1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn9npn88m" + ] + }, + "ailayer": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "airdao": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "alephium": { + "owners": [ + "17R6Ptkz9i1LhiKyMhnitUMkgFygGeeQUFZvRx6GgV8Fc", + "13fKFYVSosvQZKhPP8izubADEn6q9a4np3uqw3YWjA6Hk", + "133kTjVSJA9VDrybSVCWahbQ5BQ5WevtLmHoGKp83dGPT" + ] + }, + "apechain": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "aptos": { + "owners": [ + "0x0cf869189c785beaaad2f5c636ced4805aeae9cbf49070dc93aed2f16b99012a", + // address not found + // "0x8b88f330e9ee14c6571d6707c48858bdd126d715c5df145eee58f4f4f6217898", + // "0x107ffec1dd5c5faa26dbff442253ae9fc2cb026e3e9b55a6613c10cc90904a40" + ] + }, + "arbitrum_nova": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0xa4992ccf2a74132936b87cbf28b5d52304ba3be7", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "archway": { + "owners": [ + "archway155svs6sgxe55rnvs6ghprtqu0mh69kehkcnf25", + "archway1jm068whkhkxk48gx80ppm2m0nwy677prr4m8ru", + "archway1xunyznpjmj9jv5e2zwngp2qrzmulr2ggdna6rp", + "archway1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn95hdua6" + ] + }, + "astar": { + "owners": [ + "WEo9Gi7T28niGb3pTwcHFDgGW4PjKDQvcS1stTxa68v73nQ", + "bYvGgqKmEkmQKEm7P4oYFRsfrteAzksqKqRyT82mx2iWSZt", + "Zk6pJF3cE67Eo15g7BSqtGMv3XC2T8xBHggq8ZFAPnpnpnY", + "aKCD8R97ifVNsVWTC2sbdbeqWG8ZGJaQcrwMBo3XvrmgR4N" + ] + }, + "aura": { + "owners": [ + "aura155svs6sgxe55rnvs6ghprtqu0mh69kehc9c0z6", + "aura1jm068whkhkxk48gx80ppm2m0nwy677prdgsptj", + "aura1xunyznpjmj9jv5e2zwngp2qrzmulr2ggrwkut0", + "aura1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn962x645" + ] + }, + "aurora": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "band": { + "owners": [ + "band155svs6sgxe55rnvs6ghprtqu0mh69keh6u00ct", + "band1jm068whkhkxk48gx80ppm2m0nwy677pr038p3r", + "band1xunyznpjmj9jv5e2zwngp2qrzmulr2ggphpu37", + "band1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn9cn3609" + ] + }, + "beam": { + "owners": [ + "11d33ef5b07f977a51dc3aad64c49abf56c759c0059a468926b82a133a15b39d7bc" + ] + }, + "bifrost": { + "owners": [ + "c2TQGFWqK1WsKzWizpdf9V6uzCgnVqw7Yz9Va7G2wjQPHTY", + "hLaXgNj9XdVZNeE1uwpv9hJKM2wEBPQ2GPZb8mLEodCnpB2", + "fXm5HnSzWxqPrQYae4UDnXnZXfV5dmUNEEpSpCYdFPK4z69", + "g6rU7xYW1YDXvtyMiutyXs5UzQRcSw6bZR4xsSLznTFxfxW" + ] + }, + "binance": { + "owners": [ + "bnb155svs6sgxe55rnvs6ghprtqu0mh69kehphsppd", + "bnb1jm068whkhkxk48gx80ppm2m0nwy677pr56c0g9", + "bnb1nj68zufj3axulhletk4qut5ztn30fah9nhscg0", + "bnb1hv30rmjgu0wvtyyrzvm6njs8u2dc5l6aydw3gh", + "bnb1r4vvasqg7tsh9u4kl68ywskg3rq8juf6f640jz", + "bnb1agsyvgg2m45p5pef5xaetemhwcp3v84qgprhzq", + "bnb1hpcfdtv84srdq7n9a7mhnnmd3jwuda97dqzftu", + "bnb19yhugy8qzps8rur4mnp6tnz8w6nh7qrqz05yj0", + "bnb1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn9rcw5kr" + ] + }, + "bitchain": { + "owners": [ + "1G47mSr3oANXMafVrR8UC4pzV7FEAzo3r9", + "18AV9vQZYm6yvG1W5JadaHSHR2b2xzujLf", + "1EkkGXR7dTbZbrKFKoe6YEP4gj4GzMeKvw", + "1HpED69tpKSaEaWpY3Udt1DtcVcuCUoh2Y", + "14kmvhQrWrNEHbrSKBySj4qHGjemDtS3SF", + "162bzZT2hJfv5Gm3ZmWfWfHJjCtMD6rHhw", + "3HroDXv8hmzKRtaSfBffRgedKpru8fgy6M", + "1FLKsCiEsABS7LysfDA8R181TQ6eLjoxPv" + ] + }, + "bitcoincash": { + "owners": [ + "1G47mSr3oANXMafVrR8UC4pzV7FEAzo3r9", + "18AV9vQZYm6yvG1W5JadaHSHR2b2xzujLf", + "1EkkGXR7dTbZbrKFKoe6YEP4gj4GzMeKvw", + "1HpED69tpKSaEaWpY3Udt1DtcVcuCUoh2Y", + "14kmvhQrWrNEHbrSKBySj4qHGjemDtS3SF", + "162bzZT2hJfv5Gm3ZmWfWfHJjCtMD6rHhw", + "3HroDXv8hmzKRtaSfBffRgedKpru8fgy6M", + "1FLKsCiEsABS7LysfDA8R181TQ6eLjoxPv" + ] + }, + "bitgert": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "bitkub": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "bittensor": { + "owners": [ + "5CNChyk2fnVgVSZDLAVVFb4QBTMGm6WfuQvseBG6hj8xWzKP", + "5HgKqPsEz17fBVCvd5cgWbGbapBXCn48p8LHjjvAub2kvVyd", + "5FsWP1GxpzT11xyFBojKpE75pzp54ESDA6BYbRMPJ2nsCZE5", + "5GSbmqT4LV2PA3TfxtakZySNkTZ1b3bqPRMo7UbBfZrp6d8k" + ] + }, + "bittorrent": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "blast": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "boba": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "bone": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "bouncebit": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "bsquared": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "btr": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "callisto": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "canto": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "celestia": { + "owners": [ + "celestia155svs6sgxe55rnvs6ghprtqu0mh69kehje7a6w", + "celestia1jm068whkhkxk48gx80ppm2m0nwy677pr85knnx", + "celestia1xunyznpjmj9jv5e2zwngp2qrzmulr2ggfjswnm", + "celestia1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn9skqgdq" + ] + }, + "celo": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "chainx": { + "owners": [ + "5PwXDxpqSNF8oZN99EFY1PbFURdrsTmiHJ38sYYhdSKw5fjn", + "5VFeMNx3kas7Vc1rS9NjGPoSsnU7K9KBC1SYy7CmqJDjV5iE", + "5U1vHpXs74mqUAGbmxLoKmyE3RqbhQrsmJU4LqsnbH3nezDb" + ] + }, + "chz": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "clv": { + "owners": [ + "jHCPYN1HbjjwkKZnLYHYDS5onRwjVHSgTmkU7mDcxQFQ1C3BR", + "jHHhfVRQp3xZj1cS3qCfQh61yqJZjj8DvgTsXrnH2c7HobQWB", + "jHFtr32pXtwu4r6CNPvn3zirU5VCHaac12RiniTiEzZ3useUz", + "jHGTwRrzdQSUSzAgoB1dUkUBkzwwE7PmdFku3EWx3N67rmDRT" + ] + }, + "cmp": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "concordium": { + "owners": [ + "3rzzW6gBVMWXajrh3QLE8aFtmGQbdVFvCmKrcxsYBQxnfywfrR" + ] + }, + "conflux": { + "owners": [ + "cfx:aasusb60hfktf87fx1jg8m4cnnhebrew92f4swayt0", + "cfx:aase06fdw4cdrsrazhhzebshu9z2ds4zvu8j9zv3ad", + "cfx:aat80d5bu6rp5redv18g4yec8bv8ssheee8c9zur0a" + ] + }, + "core": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "cosmos": { + "owners": [ + "cosmos155svs6sgxe55rnvs6ghprtqu0mh69kehrn0dqr", + "cosmos1jm068whkhkxk48gx80ppm2m0nwy677prk78rft", + "cosmos1hpcfdtv84srdq7n9a7mhnnmd3jwuda970ya92j", + "cosmos19yhugy8qzps8rur4mnp6tnz8w6nh7qrqqttgnp", + "cosmos1xunyznpjmj9jv5e2zwngp2qrzmulr2ggccp7fk", + "cosmos1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn9pu3chd", + "cosmos10v2gu0vvdeuv8pexnl98lmyva4cq8jkaa4845c" + ] + }, + "cronos": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0xa4992ccf2a74132936b87cbf28b5d52304ba3be7", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "cube": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "dash": { + "owners": [ + "XqjxbhVwksb7WXG5iJSh3bWnKSpvEYjG1P", + "XpSb6n51bAp9knuqBgxKPm4rX4dy3rjSjY", + "XsW53Lonn2fAPX7QPvnrjXugSqCbDcmBpj", + "XeSckx4kUZapSYT2B5HfabX575ETHqUX8i", + "XfiSpp6vf1tWEDMdReptNBy6ZYU3Gbozpo", + "7iaS3jCJWm5xRf7PvoLAm4eHFNhH3FETUG", + "Xq2AhTN8psQ2GHaTX6UMGXooHjgLGjFNkp" + ] + }, + "defichain": { + "owners": [ + "8W8yVQDEaQiJ5PB4Hy8CvKj9pBtD3zqkhb", + "8UqbzUnJQhwLKepomMdqGVHE1ohFpnzjSr", + "8VRBbA5ReQXCq9VS6m9s9G2AnUjd74nwQn" + ] + }, + "doge": { + "owners": [ + "DLCDJhnh6aGotar6b182jpzbNEyXb3C361", + "DJtqonMkvsVr8rVr4Pdf5zYfZrnaLSdnwi", + "DKRg7bL5s1NbWp1VMKhP1gbw6mqydnoX2u", + "DMxKkM6Y7jLrmahRGdUCRmPVVdMCZh7QKy", + "D8tsTxMVpGGWpc333my1Gpzt9sP4YQjoDx", + "DAAhXpPfziaCcGweJMWE4RSucLcee7NcqL", + "A8c3xNz2mqsDLFwv5KL5fpH12QEwDaoTXo", + "DKURQTetAa5ieMAUPo9gxmHcLXpwes8kH1" + ] + }, + "dydx": { + "owners": [ + "dydx155svs6sgxe55rnvs6ghprtqu0mh69keh22pfq5", + "dydx1jm068whkhkxk48gx80ppm2m0nwy677prl8f8fu", + "dydx1xunyznpjmj9jv5e2zwngp2qrzmulr2gg3p06fp", + "dydx1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn9g9luh6", + "dydx10v2gu0vvdeuv8pexnl98lmyva4cq8jka5vf350" + ] + }, + "dymension": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "edg": { + "owners": [ + "hp7fFnvDbtF2PPydXhf33kXZULyqgUTJVYH7FkZVoKtfhoD", + "o8Enfv8XpWDiS3gvSprJ3xixqBEHN1vDCwhCpQdhfDh5EPb", + "mKRLHKrNoqZYup1VAwVbgoDD1on8pPzZAnx4Vqr66yoMFSJ", + "mtWj7VwtJQwgzJSGFnvMS8W8UYifdZcnVyCaZ5eTe3kF4Jj" + ] + }, + "elastos": { + "owners": [ + "EKk4HeHnLvMpxFiSbjVizcrCB1nVt39Bwe", + "EWwQTNN6ehrVLBh4imEYtQr61txBE2ARUk", + "Eb1wiohh195bcZrsPowoMdNRmaaJk4wbai", + "EftXuMPJRVxKjFKQ2Z3oiayi5hL4v56u5R", + "EdGT5d52SZhYASQpMdCydpnv1iiS4j2YoA" + ] + }, + "elrond": { + "owners": [ + "erd1p4vy5n9mlkdys7xczegj398xtyvw2nawz00nnfh4yr7fpjh297cqtsu7lw", + "erd1lptaaz323qjgsg67mfsa8aquffs9j8tl3khvz2v7creqgf4yeslsf2u99c", + "erd1cx3a4wu4kpnk0ke2hp0dp05xzvapt0lr4q86q97thqepvas2sxqsnh0533" + ] + }, + "elys": { + "owners": [ + "elys155svs6sgxe55rnvs6ghprtqu0mh69kehrnk2dp", + "elys1jm068whkhkxk48gx80ppm2m0nwy677prk77yyf", + "elys1xunyznpjmj9jv5e2zwngp2qrzmulr2ggcccey5", + "elys1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn9pugl60" + ] + }, + "energyweb": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "enuls": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "eos": { + "owners": [ + "gateiowallet", + "ha2tanbqg4ge", + "eos32signhw1" + ] + }, + "eos_evm": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "equilibrium": { + "owners": [ + "cg3QZnNBPvXUiaAJzXqR1Ria2egcLXgmmRu9wGa2nQk5aV7FP", + "cg8igunJcEk6hGCxhpkYCginE43SayNKELcZMN8grcbyNtcg9", + "cg6usTPiL5jS36gj2PUeqzMciJE58pphJgaQcDp8513jVAtc8", + "cg7UxrDtRbE1REmDTAZWGk6x1Dgp5MdrvuuarjsMsNaoS4eUp" + ] + }, + "ergo": { + "owners": [ + "9iKFBBrryPhBYVGDKHuZQW7SuLfuTdUJtTPzecbQ5pQQzD4VykC", + "9gQYrh6yubA4z55u4TtsacKnaEteBEdnY4W2r5BLcFZXcQoQDcq", + "9f5WpnpDCAWHXk4HYARp7NKBJV58QSkCKAC2vucsaVBjPgKsght" + ] + }, + "ethereumclassic": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0x246a2ecd9626f9eda55fffbff5216ed417a904f5", + "0x840760aed6bbd878c46c5850d3af0a61afcd09c8", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0x4bbe1961bd0a6cd1fe3cd8947be15bd8ae2ee562", + "0xd793281182a0e3e023116004778f45c29fc14f19", + "0x35b31ae2604dd81d9456205025ea02418dba8242", + "0x354e0184a6a6e634ccb07388e2617e05e427563c", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "ethf": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0x54c82d26624e85000d1387ee7c9580c3c6d7b5b7", + "0x7750fe679d47a9e00575ad46043297a234e83fa2", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xd793281182a0e3e023116004778f45c29fc14f19", + "0x354e0184a6a6e634ccb07388e2617e05e427563c" + ] + }, + "etlk": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "etn": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "evmos": { + "owners": [ + "evmos1p5rs093e2te0hfva6phjksj6eeqtfyh7ma0cjz", + "evmos1r39hpgukssmtng9feafqt3u8awqmk4vv7vvwtl", + "evmos1ezptzyd8tsxx2l79qlqyl07d9nycfur36wpmyf", + "evmos1ll4s7cv8rtxmfqudl3k4pqhsv0nn3eppwgmrq9" + ] + }, + "filecoin": { + "owners": [ + "f1d7mq36vf6osdhcd32i6k3wyb223mdjlxnafnala", + "f1z7izlq5yv2wkrt6ks4fnzscesnd6kntt6vovqai", + "f1pbcpx47wwpb5za2stdz3skfcplmk6zxi7hwv3sy" + ] + }, + "findora": { + "owners": [ + "fra1p4vy5n9mlkdys7xczegj398xtyvw2nawz00nnfh4yr7fpjh297cqsxfv7v", + "fra1lptaaz323qjgsg67mfsa8aquffs9j8tl3khvz2v7creqgf4yeslsjufhy6", + "fra1cx3a4wu4kpnk0ke2hp0dp05xzvapt0lr4q86q97thqepvas2sxqsgp6xsn" + ] + }, + "flare": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "flow": { + "owners": [ + "0xb65cb9286d8eab6c", + "0x4f45575f29f5dffb", + "0xa008dc1bf48aa10d" + ] + }, + "ftn": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "fuel": { + "owners": [ + "0x778c29331c90bc9d986dd790c6ed7225e1b9d0857952d4be81e91f0dfbc57a2e", + "0x188f36048cd9353bdd3809e349d20deab4cacad709d7cce64f2a417e55d27ec5", + "0xdd8861e6d56cfde6c3a017e246e0ff26d29ff30d08eef4e927d221a6a0b765c1" + ] + }, + "fuse": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "fusion": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "gochain": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "harmony": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0x246a2ecd9626f9eda55fffbff5216ed417a904f5", + "0x840760aed6bbd878c46c5850d3af0a61afcd09c8", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "heco": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "heiko": { + "owners": [ + "hJFVeb7Z8zaQSPwjw8x6rRySFtxzk4KJrUCGs1pk71CQGyqd1", + "hJLomiXgMJo2R5zPeRsE3gyeTJKpzVzrKNugH7PQBD4J5NwfD", + "hJKa3eyGAfGw94YePmgC7kMpETyCUtGQ1xChnV85By388Z6px" + ] + }, + "hpb": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "hydra": { + "owners": [ + "HMaF9nmaCNua4vExqCTDb5iTfHYxdL6K8q", + "HLGsesLe2g8cKBtiJaxqwFGXruN1QGJji2", + "HLrTFYdmGNiUpgZLdzUsp21UdaQNh7E8Tb" + ] + }, + "hyperliquid": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] }, - taiko: { - owners: ["0xc882b111a75c0c657fc507c04fbfcd2cc984f071"], + "icon": { + "owners": [ + "hx548ad28ef8d6caed7f27f6001fb7a654ad8cca40", + "hx5130e85046609cda7c6f579c09946bcf6c86d81b", + "hx46a0528308c53c8d3e40f17b08f2c3fcfafb94d6", + "hxce12bc670be0e35dbb6ffb8935648d87fbd74154", + "hxffd3f84a64d2673b8b7564dd5307d16624553a3e" + ] + }, + "icp": { + "owners": [ + "8fe706db7b08f957a15199e07761039a7718937aabcc0fe48bc380a4daf9afb0", + "8f079b740ca593e6741e8a552f06352d0e6c844f6fd75533e3bd575ec76cb147", + "6463450788218283a2959d7cf4e1bfbaf422753e5c4596b593ed9d3f4cf20497" + ] + }, + "injective": { + "owners": [ + "inj155svs6sgxe55rnvs6ghprtqu0mh69kehf6cfjm", + "inj1s52g6m4h96lxyug2hejrqs6ffu26cuf5ym5mgq", + "inj1jm068whkhkxk48gx80ppm2m0nwy677pruhs8mn", + "inj1xunyznpjmj9jv5e2zwngp2qrzmulr2ggj3k6mw", + "inj1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn9t4xu94", + "inj10v2gu0vvdeuv8pexnl98lmyva4cq8jkahus3xq" + ] + }, + "interlay": { + "owners": [ + "wd7oNzH5QHFCkwjRmAKXdkjyhcRmJ5QX1CTLB4M2FZSkcUFEd", + "wdD7W7hCcbTpjdn5UTEeq1kBu1nbYX64U7Ajb9ugKmJeQsYz5", + "wdBJgfJcLSTA5UFqo1xmUKP2PFyE6NYSYT8ar1b7Y9kQX9o1v", + "wdBsn48nRwwjTcLLDo3cu58MgBRy2uMcAgTm6XeMLXHUU3aH7" + ] + }, + "iotex": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0x246a2ecd9626f9eda55fffbff5216ed417a904f5", + "0x840760aed6bbd878c46c5850d3af0a61afcd09c8", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "islm": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "kadena": { + "owners": [ + "k:0d584a4cbbfd9a4878d816512894e65918e54fae13df39a6f520fc90caea2fb0", + "k:f857de8a2a882488235eda61d3f41c4a60591d7f8daec1299ec0f20426a4cc3f", + "k:c1a3dabb95b06767db2ab85ed0be86133a15bfe3a80fa017cbb83216760a8181" + ] + }, + "kardia": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "karura": { + "owners": [ + "obmvFLKbtkyBSoSY4agQx1xCxVGts6yVS6QiwPrxevNxE7f", + "tuu3fTXv7NwsVT9pyhsfxE9cKKXLYeSQ9VppW3wAWpBMM7B", + "s75bGsFm6iHhyDUPhpWyb4drVx5C12Wk7M5gBV9YxaHdova", + "sgAz73MGbHfr3huAnfwjLPvmxh1ipC8ySXLCEiwvVeEXeBn" + ] + }, + "kava": { + "owners": [ + "kava155svs6sgxe55rnvs6ghprtqu0mh69kehlxmsky", + "kava1jm068whkhkxk48gx80ppm2m0nwy677pr2tn7lv", + "kava1hpcfdtv84srdq7n9a7mhnnmd3jwuda97n3fcu4", + "kava19yhugy8qzps8rur4mnp6tnz8w6nh7qrqu7l49x", + "kava1xunyznpjmj9jv5e2zwngp2qrzmulr2ggyd4rl3", + "kava1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn9af99p2" + ] + }, + "kintsugi": { + "owners": [ + "a3aWepSsLfy67vUAAaKCiSnCj7G72feeTCgfKCBLivBWWTdFW", + "a3fpmwrzYzBi6cWossEKuhnQvWcwH7LBv7Q4jHjzo83QJs1ys", + "a3e1xVUQGqB3SSzaCRxSZ1RFQkoZpxnZzTMuz9RS1WVAR9BBL", + "a3eb3tJaNLfcpb54dD3HymAahgGJmVbjcgh6EfUfot2EN2oJB" + ] + }, + "klaytn": { + "owners": [ + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "kroma": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "kusuma": { + "owners": [ + "CspNJ5uJ9WcF6Nf6sJY9YRQL3dWZmKrMnmd2qY4BXMTGEgi", + "JBwViD7cN8aw92NPnRjQYdbjQTm1SsKGWB38QC8PPFFfLuc", + "DdCg75U3jH69QL1jDG7WybLxk9KLWM1gokBay77qng6dbhT", + "GP83KcqTMTvmcngxWYNiBU5yb6JruFPcU2Hz5dLmq1MwqGs", + "GxDS9nvxr3JuhH7jbPoTvoNu3qFPiR1qoCYW8s99N5JqhT5", + "GS988ESnKUHMYixhAZJLJjQkpBEGRN3AdEJbY7CXxauxoQo", + "J5VsgNemdBg2bfvHresAtBZdxE67WrS656Caup3MgsBE2y7", + "ErJ8h2WUY35Eb1cDMTCZgnht2kT2gKdKeNnw21tDDmRxSXL", + "HfQVohDHuXHr1Y9y3fZdNNANKhMHn4ndcVXaCN3rWW94hN7" + ] + }, + "linea": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "lisk": { + "owners": [ + "lskqov47at3sqaaf9bg38kymku92rcdax7refhpk3", + "lsko9dq4zcp7yu5fvr2owm672sxdpc5swapv3dbyk", + "lskwqe5qassrz55474rux63537nwasf53va79hczs" + ] + }, + "lukso": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "manta_atlantic": { + "owners": [ + "dfWrWfp3dJ7FNXyLCEW8gvmknvAyi9FTa5gFZeGUD7GaSbUXa", + "dfcAdoEAqcKsME1yuXRFtBmxzKXoxaw12zPeyjq8HK8UEzgZ6", + "dfaMpLqaZTKCh4VkE69NXVQoUZiSWSPP7LMWEbWZVhaEMH5hW", + "dfavujfkexon5CaEesEDxFA8mVBBSyCYjZggV7ZoJ57JJAbVb" + ] + }, + "matchain": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "merlin": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "meter": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "metis": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "mode": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "moonbeam": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "moonriver": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "naka": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "near": { + "owners": [ + "0d584a4cbbfd9a4878d816512894e65918e54fae13df39a6f520fc90caea2fb0", + "f857de8a2a882488235eda61d3f41c4a60591d7f8daec1299ec0f20426a4cc3f", + "c1a3dabb95b06767db2ab85ed0be86133a15bfe3a80fa017cbb83216760a8181" + ] + }, + "neo": { + "owners": [ + "AJN2SZJuF7j4mvKaMYAY9N8KsyD4j1fNdf", + "AVZNcHPDYuDj9rJCUZuN3A8DirNk8QPBEr", + "AZdusiiouLSqSEU19cccWNeZUXzsZEk2UB", + "AeWW4GQRKhKZYuvXnMicsLFqnekdpSofk6", + "AbtREY69Lm4mz71x7Rsnna53ig8zzXRrXK" + ] + }, + "neo3": { + "owners": [ + "NTWC7Hh5VYMQ5K8YJbyCLbmJ4RhfQ1Ej64", + "NY8VmiQ8if23Cr7Fe6xwXZ4a59JTVXHDCN", + "NcSZPD4ToU3v1C8NPK13hibCnZcPEqHD1a" + ] + }, + "neon_evm": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "neutron": { + "owners": [ + "neutron155svs6sgxe55rnvs6ghprtqu0mh69keh8vx06y", + "neutron1jm068whkhkxk48gx80ppm2m0nwy677prjpwpnv", + "neutron1xunyznpjmj9jv5e2zwngp2qrzmulr2ggu8gun3", + "neutron1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn99rc6d2" + ] + }, + "nibiru": { + "owners": [ + "nibi155svs6sgxe55rnvs6ghprtqu0mh69keh5kt5fs", + "nibi1jm068whkhkxk48gx80ppm2m0nwy677prpmr6qc", + "nibi1xunyznpjmj9jv5e2zwngp2qrzmulr2gg0a98q9", + "nibi1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn9ke4p77" + ] + }, + "nuls": { + "owners": [ + "NULSd6Hge2GxNKwYRxxvnQynMK2gKt5YAVANR", + "NULSd6Hgd9SJyzE6cmFmPQQ6VcpcQPLvbM4K2", + "NULSd6HgdY5zjfxhHhQMyGnJmxZREDxr8Zhh1" + ] + }, + "oas": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "oasis": { + "owners": [ + "oasis1qppfyeugxmxdx5m4gpasg4xqg296zcdndy0k2zsg", + "oasis1qqz86qv538ff9y4exy6g3j724mq68wj7pu55rgwt", + "oasis1qp8f5gh8zgad5t47hc40ayw37ptcszrtsq6eh5de" + ] + }, + "okexchain": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "ontology": { + "owners": [ + "AJN2SZJuF7j4mvKaMYAY9N8KsyD4j1fNdf", + "AVZNcHPDYuDj9rJCUZuN3A8DirNk8QPBEr", + "AWGrHN1DUAo6Ao3yTHu4tUHZonPNAy9ZmU", + "AM1te97HdmaereEMgtLg7YvfUP624Ra4iF", + "ASPPqj8yCcCV2sWHQZwsYfWZS2FMfd3PF7", + "AZdusiiouLSqSEU19cccWNeZUXzsZEk2UB", + "AeWW4GQRKhKZYuvXnMicsLFqnekdpSofk6", + "AbtREY69Lm4mz71x7Rsnna53ig8zzXRrXK" + ] + }, + "op_bnb": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "orai": { + "owners": [ + "orai155svs6sgxe55rnvs6ghprtqu0mh69kehsqewps", + "orai1jm068whkhkxk48gx80ppm2m0nwy677pr9d3qgc", + "orai1xunyznpjmj9jv5e2zwngp2qrzmulr2ggtthag9", + "orai1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn9j08mk7" + ] + }, + "osmosis": { + "owners": [ + "osmo155svs6sgxe55rnvs6ghprtqu0mh69kehtguak3", + "osmo1jm068whkhkxk48gx80ppm2m0nwy677pr795nle", + "osmo1xunyznpjmj9jv5e2zwngp2qrzmulr2ggsrjwly", + "osmo1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn9f8zgpl" + ] + }, + "parallel": { + "owners": [ + "DVhKTLv9mkh42BZRKJTmWRjlT64T3zmm9SD8kMrqL7A", + "-FfeiiqIJIgjXtph0_QcSmBZHX-NrsEpnsDyBCakzD8", + "waPau5WwZ2fbKrhe0L6GEzoVv-OoD6AXy7gyFnYKgYE" + ] + }, + "persistence": { + "owners": [ + "persistence155svs6sgxe55rnvs6ghprtqu0mh69kehdlf7w8", + "persistence1jm068whkhkxk48gx80ppm2m0nwy677prcjps80", + "persistence1xunyznpjmj9jv5e2zwngp2qrzmulr2ggk58d8j", + "persistence1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn90shtef" + ] + }, + "pokt": { + "owners": [ + "ab04976668dd739f34df43e912d20dc487ac85d2", + "63755480647460bf0a5865caa76361d106bddf24", + "bd6cbae77b9016b4b932805485a1c7be77e5a059" + ] + }, + "polkadex": { + "owners": [ + "esm4teFDTrvy4VJ8msKTQmAywumeinGjzsrFzmTEB5FBiiekE", + "esrP1mfLgB9b3BLnVAEac2BC9K8UyDxHTnZfQs1tFH75X81FT", + "espaCKGkQ28vP1pYoixhFKp2dZK7X5QfY8XWfihKTfYqdQFGd", + "esq9Hi6vVXdVm9u3EW3Yg5ZMvUmrTcDqAMrgvEkZG35uaJ6tp" + ] + }, + "polygon_zkevm": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "proton": { + "owners": [ + "gatedeposit", + "gateiocold" + ] + }, + "radixdlt": { + "owners": [ + "account_rdx16y5vw2latcyn7h2leujsc0th2junpgxnafx0aqrher4yw7pmnmfyx8", + "account_rdx16xkm9wvwcwq0q8ly6hm6m86s90zcqxeexhnzn8l9jkgtk3t8z7j2yz", + "account_rdx169r653rp86kepz28wrzlxzy6ll2use5jmew5rz9h24uyj9cjqtl38n" + ] + }, + "reef": { + "owners": [ + "5CNChyk2fnVgVSZDLAVVFb4QBTMGm6WfuQvseBG6hj8xWzKP", + "5HgKqPsEz17fBVCvd5cgWbGbapBXCn48p8LHjjvAub2kvVyd", + "5FsWP1GxpzT11xyFBojKpE75pzp54ESDA6BYbRMPJ2nsCZE5", + "5GSbmqT4LV2PA3TfxtakZySNkTZ1b3bqPRMo7UbBfZrp6d8k" + ] + }, + "rei": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "rollux": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "ronin": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "rsk": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "rvn": { + "owners": [ + "RQLJqxjLPzB6Rb2hKb7bHbACFNhpq11zhv", + "RP2wM3JQEHQ8frgSnydDdkiGSzWscgUihs", + "RS6RHc3BR9F9Jat21DTkyXZ6Nm5VrLUKxt", + "RD2y1DJ97gAoMcDdnMxZpbAV317MvAuu8A", + "REJo55LKJ8UV9H8F2wVncBcWVULwtsoiKn", + "RPcWwibXTyz1BMM58P9FWXTDDfZExE78SG" + ] + }, + "secret": { + "owners": [ + "secret155svs6sgxe55rnvs6ghprtqu0mh69kehpkmyal", + "secret1jm068whkhkxk48gx80ppm2m0nwy677pr5mn25h", + "secret1xunyznpjmj9jv5e2zwngp2qrzmulr2gg6a4h52", + "secret1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn9re9323" + ] + }, + "shibarium": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "shiden": { + "owners": [ + "WEo9Gi7T28niGb3pTwcHFDgGW4PjKDQvcS1stTxa68v73nQ", + "bYvGgqKmEkmQKEm7P4oYFRsfrteAzksqKqRyT82mx2iWSZt", + "Zk6pJF3cE67Eo15g7BSqtGMv3XC2T8xBHggq8ZFAPnpnpnY", + "aKCD8R97ifVNsVWTC2sbdbeqWG8ZGJaQcrwMBo3XvrmgR4N" + ] + }, + "songbird": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "sora": { + "owners": [ + "cnRnnKrqCX9TEZvCgVuiXbPbE1jmA3R55W6cLeKC43U8nVoma", + "cnX6uTGxQqN5DFxrPnpqirPoRR6bQV6cYQp1kjsr8FL2au8KM", + "cnVJ5ztN8gMQZ6SciMYxNA2dufHDxLYzckms1bZHLdmnhBbm7", + "cnVsBPiYEBqywEX798donumyCajxtsNAEz73G7cX91Jre5TfS" + ] + }, + "stafi": { + "owners": [ + "313h29qADPFh49f1QT8xwmD3xnCoZ4fDkijz797UWv4EKqmx", + "36Mp9ZxNXbsfkCJihNGACmRFN933zkCgfS9QChmYimx2jPEb", + "34YzhBN6NbD1ag53G6NoWQFjcKfbrCam1Pzf4PCm7Di91dtJ", + "358661YBt5nPikZU3BEEG9b2XnQYP1kPEjAuaSSZUkn5uMJq" + ] + }, + "starcoin": { + "owners": [ + "0x5aeae9cbf49070dc93aed2f16b99012a", + "0xd126d715c5df145eee58f4f4f6217898", + "0xc2cb026e3e9b55a6613c10cc90904a40" + ] + }, + "stellar": { + "owners": [ + "GBC6NRTTQLRCABQHIR5J4R4YDJWFWRAO4ZRQIM2SVI5GSIZ2HZ42RINW", + "GBJ746LVE2LFZ5OA2QEQUE35QHHI3OXZ75RH4USXY2GBFAKCBKQG3HKU", + "GCLP5OZ4SFU4X2MD4BGZKC7FFJY3NGM3Y6TVULOWLUNNWHEFNUJGAW5Y", + "GCE2HXJTGSI66KBPEVQYFU7N4KWAGRIG4TJPZTPWRGVSH2MZCC4EAY63", + "GBOL3FQURYYBAPWMAGMY5IS3ZFQRYOLBANZTVGGFL5MAN545QB5NAEUT" + ] + }, + "sui": { + "owners": [ + "0x62f36b79d7ea8ae189491854edd9318b29c75346792177b230a95f333ffa53ad", + "0x7ce04f66dca33c786c7375f73c4f7459e16b8a80cbbdd055e3782b3e176fa3d3", + "0x019b848f4511b354c314a4e5c1a40dbc247fe5d29c6bcb3495badb01751d549a" + ] + }, + "syscoin": { + "owners": [ + "ScM7oHdCXXZistSxPr7YjxyZ8tUf3HG8c2", + "Sb3kJNCGMpnm8A6hsEdB68XdLWHhkXietE", + "SSKc2QEBRfs7baYW7CVk4ZRsNz7n28P2j3", + "SbdKu3VPbXNddemLCe9CxuGa7BL538hBCx" + ] + }, + "tara": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "telos": { + "owners": [ + "gateioiotlos" + ] + }, + "tenet": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "terra": { + "owners": [ + "terra155svs6sgxe55rnvs6ghprtqu0mh69keh9h4dzr", + "terra1f62zqvvm6y2vlp6rhn94k9spsuqmh727twq8e4", + "terra1jm068whkhkxk48gx80ppm2m0nwy677prs6artt", + "terra1xunyznpjmj9jv5e2zwngp2qrzmulr2gg7um7tk", + "terra1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn98ctc4d" + ] + }, + "tezos": { + "owners": [ + "tz1hjem5Rpf4KAVbwMLJet75TDb8HjAKnTYk", + "KT18yTsDxUbVrenxZsbFSx6Ai72hRHod9pHV", + "tz1RRVLD5LEu8iaoTMGc5L1NiyiEGuSUtAwX", + "KT1PuUGWvCypTrNu7yweWCzpX6zyuy6nq6Wu", + "tz1fw6VKhBZ8N7HAvCwvXSkTvQ7YcUk3w9AK" + ] + }, + "theta": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0x246a2ecd9626f9eda55fffbff5216ed417a904f5", + "0x840760aed6bbd878c46c5850d3af0a61afcd09c8", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "thorchain": { + "owners": [ + "thor155svs6sgxe55rnvs6ghprtqu0mh69keh95kk4u", + "thor1jm068whkhkxk48gx80ppm2m0nwy677prse7cu5", + "thor1xunyznpjmj9jv5e2zwngp2qrzmulr2gg7lc9uf", + "thor1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn98mgrzj" + ] + }, + "thundercore": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "tomochain": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0x246a2ecd9626f9eda55fffbff5216ed417a904f5", + "0x840760aed6bbd878c46c5850d3af0a61afcd09c8", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "ton": { + "owners": [ + "0:3addd84bf73267312a477049fd9b8db761bf39c585c150f8e6f9451347af2b6c", + "0:09c592c5b17a555c1ace781f38303e5a115978f57cf22773b280d14028e7dd92", + "0:16ea6a34f0d704b6fac9b7592e003f6f28ae5d1a8a6ba9d1650e4dd30ab8eada" + ] + }, + "umee": { + "owners": [ + "umee155svs6sgxe55rnvs6ghprtqu0mh69keh39jjy3", + "umee1jm068whkhkxk48gx80ppm2m0nwy677pryg6ude", + "umee1xunyznpjmj9jv5e2zwngp2qrzmulr2gg2wupdy", + "umee1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn9n2v8nl" + ] + }, + "vana": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "vechain": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0x246a2ecd9626f9eda55fffbff5216ed417a904f5", + "0x840760aed6bbd878c46c5850d3af0a61afcd09c8", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "velas": { + "owners": [ + "u6PJ8DtQuPFnfmwHbGFULQ4u4EgjDiyYKjVEsynXq2w", + "HiRpdAZifEsZGdzQ5Xo5wcnaH3D2Jj9SoNsUzcYNK78J", + "E2tbmDk29G6jHdrgwHC6kXGFfDsyrXUyWjD3e3ZB4oNp" + ] + }, + "venom": { + "owners": [ + "0:9f4fb4d07e97542c2200672b2819c1c3987c48a353c655858ba525c7e51bbfc7", + "0:595972816072851da891322300897c5e71255d2f2dbd1ca721568b6ac1e761db", + "0:c6c2f45369f7a281ed9771fcb2dc62863a2625e963074159af527169e470de29" + ] + }, + "vinu": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "vite": { + "owners": [ + "vite_f262f48ec1097880c83aa079dfb0baef5e68c4ff6c0b807b0a" + ] + }, + "waves": { + "owners": [ + "3P7LZSuVDv5pQS7NSCE1LyGCbQihzk1fQ2r", + "3PJL6FBmbQrYpvtWjRJEETAF7ngZ1cB4Hcj", + "3PMb9uuJm5VB9VUzNLhZGScEK8m7zGwDED3" + ] + }, + "wax": { + "owners": [ + "gateioiowaxp" + ] + }, + "wemix": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "xdc": { + "owners": [ + "0x0D0707963952f2fBA59dD06f2b425ace40b492Fe", + "0x1C4b70a3968436B9A0a9cf5205c787eb81Bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "xlayer": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "xpla": { + "owners": [ + "xpla155svs6sgxe55rnvs6ghprtqu0mh69keha5h3ts", + "xpla1jm068whkhkxk48gx80ppm2m0nwy677prgellzc", + "xpla1xunyznpjmj9jv5e2zwngp2qrzmulr2ggxlezz9", + "xpla1n5ukn9q2r5vrgt6su0e6cvm5lyxe2cn9lmfyu7" + ] + }, + "zeta": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421", + "0xcf6f5ec73942314c3ec864202b40dcbb1f9477a0" + ] + }, + "zilliqa": { + "owners": [ + "zil1e9k0rdjgh0khx06veut6ghwkggue6snmrlyg4w", + "zil1melkmjzv6v784dlk30rhx2ck4zccqpprsdd3jt", + "zil12zn46cppzsg0thgn7e66ugjd3c25hcl0acjaud", + "zil1jcmadzrm6w49gegqw94esdkyhfq75y4fxl9wrv", + "zil12acrew80f00m4v3cs4hw9yawx7m74fwdwtmdj5" + ] + }, + "zircuit": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "zkfair": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x6596da8b65995d5feacff8c2936f0b7a2051b0d0", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xc882b111a75c0c657fc507c04fbfcd2cc984f071", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] + }, + "zklink": { + "owners": [ + "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "0x85faa6c1f2450b9caea300838981c2e6e120c35c", + "0x1c4b70a3968436b9a0a9cf5205c787eb81bb558c", + "0xffeb0f61871acdb4838dfc6d5082f063e738e421" + ] }, }; +const unsupportedChains = ['aeternity', 'beam', 'binance', 'bitchain', 'bitcoincash', 'bittensor', 'bone', 'callisto', 'chainx', 'clv', 'concordium', 'conflux', 'cmp', 'dash', 'cube', 'defichain', 'edg', 'elastos', 'elys', 'equilibrium', 'evmos', 'filecoin', 'findora', 'flow', 'fusion', 'heiko', 'hydra', 'hyperliquid', 'icon', 'icp', 'interlay', 'kadena', 'karura', 'kava', 'kintsugi', 'kusuma', 'manta_atlantic', 'lisk', 'neo', 'neo3', 'near', 'nibiru', 'nuls', 'ontology', 'oasis', 'parallel', 'pokt', 'polkadex', 'proton', 'reef', 'rvn', 'shiden', 'sora', 'stafi', 'starcoin', 'syscoin', 'stellar', 'telos', 'thorchain', 'velas', 'venom', 'vite', 'waves', 'wax', 'zilliqa', ] + +unsupportedChains.forEach(chain => delete config[chain]); + module.exports = cexExports(config); diff --git a/projects/goldstation-dex-v3/index.js b/projects/goldstation-dex-v3/index.js new file mode 100644 index 000000000000..849813e57b48 --- /dev/null +++ b/projects/goldstation-dex-v3/index.js @@ -0,0 +1,6 @@ +const { uniV3Export } = require("../helper/uniswapV3"); + + +module.exports = uniV3Export({ + avax: { factory: "0xF72f4652785a5186EDF7b93a9cfd246FeFc0ef5c", fromBlock: 52760680, }, +}) diff --git a/projects/goldstation-dex/index.js b/projects/goldstation-dex/index.js index 4540d2a5aabb..5b00a45bf49c 100644 --- a/projects/goldstation-dex/index.js +++ b/projects/goldstation-dex/index.js @@ -1,23 +1,11 @@ -const { getUniTVL } = require('../helper/unknownTokens'); +const { getUniTVL } = require('../helper/unknownTokens') const { sumTokensExport } = require('../helper/unwrapLPs'); -const { uniV3Export } = require("../helper/uniswapV3"); module.exports = { - misrepresentedTokens: true, klaytn: { - tvl: getUniTVL({ factory: '0x347E5ce6764DF9DF85487BEA523D3e242762aE88', useDefaultCoreAssets: true }), + tvl: getUniTVL({ factory: '0x347E5ce6764DF9DF85487BEA523D3e242762aE88', useDefaultCoreAssets: false }), staking: sumTokensExport({ tokensAndOwners: [ ['0x4836cc1f355bb2a61c210eaa0cd3f729160cd95e', '0x4d55B04AC52b2CA41ad04337FF13CbAefbdC8954'], ]}) }, - avax: { - tvl: uniV3Export({ - avax: { - factory: "0xF72f4652785a5186EDF7b93a9cfd246FeFc0ef5c", - fromBlock: 52760680, - isAlgebra: false, - }, - }), - }, } - diff --git a/projects/goldstation-rwa/index.js b/projects/goldstation-rwa/index.js index 9bdf133e7470..c909ffcc895f 100644 --- a/projects/goldstation-rwa/index.js +++ b/projects/goldstation-rwa/index.js @@ -1,25 +1,22 @@ -const { sumUnknownTokens } = require('../helper/unknownTokens'); +const KAIA_GPC = '0x27397bfbefd58a437f2636f80a8e70cfc363d4ff'; +const AVALANCHE_GPC = '0x1b27D7A06DeEa4d5CB4fd60c164153C90f64281D'; -const GPC = '0x27397bfbefd58a437f2636f80a8e70cfc363d4ff'; - -async function tvl(api) { - const supply = await api.call({ abi: 'erc20:totalSupply', target: GPC }) - api.add(GPC, supply) +async function kaiaGpcTotalSupply(api) { + const supply = await api.call({ abi: 'erc20:totalSupply', target: KAIA_GPC }) + api.add(KAIA_GPC, supply) +} - const lps = [ - '0xCd13CD31fb61345Abe7B7376A4664784622817EE', - '0xF1294AA9CF51fB138CB30324D2A7CE5c53DD6876', - '0xD8219DeE0BEf8f8CE618572A572f87ea27Ac8285', - '0xB5E70F160077163A2D90F4828Ef2EfF7e5F57915', - '0xf2426f8b8cb0352fd03319300b6d4d6837915d45' - ] - return sumUnknownTokens({ api, lps, useDefaultCoreAssets: true }) +async function avalancheTotalSupply(api) { + const supply = await api.call({ abi: 'erc20:totalSupply', target: AVALANCHE_GPC }) + api.add(AVALANCHE_GPC, supply) } module.exports = { - misrepresentedTokens: true, klaytn: { - tvl, + tvl:kaiaGpcTotalSupply, + }, + avax: { + tvl: avalancheTotalSupply, } } diff --git a/projects/graphene/index.js b/projects/graphene/index.js index a48c01035dcc..80359a8a1d71 100644 --- a/projects/graphene/index.js +++ b/projects/graphene/index.js @@ -1,7 +1,6 @@ -const { getLogs } = require("../helper/cache/getLogs"); const { sumTokens2 } = require("../helper/unwrapLPs"); -const config = { +const CONFIG = { base: { fromBlock: 5314581, controller: "0xfbF069Dbbf453C1ab23042083CFa980B3a672BbA", @@ -20,22 +19,16 @@ const config = { }, }; -Object.keys(config).forEach((chain) => { - const { controller, fromBlock } = config[chain]; - module.exports[chain] = { - tvl: async (api) => { - const logs = await getLogs({ - api, - target: controller, - topic: "PairCreated(uint128,address,address)", - eventAbi: - "event PairCreated(uint128 indexed pairId, address indexed token0, address indexed token1)", - onlyArgs: true, - fromBlock, - }); - const tokens = logs.map((i) => [i.token0, i.token1]).flat(); +const abi = { + pairs: "function pairs() view returns (address[2][])" +} - return sumTokens2({ api, owner: controller, tokens }); - }, - }; -}); +const tvl = async (api) => { + const { controller } = CONFIG[api.chain] + const tokens = (await api.call({ target: controller, abi: abi.pairs })).flat() + return sumTokens2({ api, owner: controller, tokens }) +} + +Object.keys(CONFIG).forEach((chain) => { + module.exports[chain] = { tvl } +}) \ No newline at end of file diff --git a/projects/grvt-io/index.js b/projects/grvt-io/index.js new file mode 100644 index 000000000000..8f0e6562d9a8 --- /dev/null +++ b/projects/grvt-io/index.js @@ -0,0 +1,7 @@ +const getTvl = require("../txBridge/util") + +module.exports = { + ethereum: { + tvl: async (api) => getTvl(api, { chainId: 325, }), + }, +} diff --git a/projects/haedal-amm/index.js b/projects/haedal-amm/index.js new file mode 100644 index 000000000000..570a986902f2 --- /dev/null +++ b/projects/haedal-amm/index.js @@ -0,0 +1,19 @@ +const sui = require('../helper/chain/sui') + +async function suiTVL(api) { + const poolObjectID = '0x3b822ea230e2f63860b05d4166ddce7133c0d04838d8f93ce02a88098fe0c609' + const {fields:{pools:{fields: {contents:listPool}}}} = await sui.getObject(poolObjectID) + for( const pool of listPool){ + const {fields:{value: pool_id}} = pool + const {type,fields:{coins:{fields:{base_coin, quote_coin}}}} = await sui.getObject(pool_id) + const [coinA, coinB] = type.replace('>', '').split('<')[1].split(', ') + api.add(coinA, base_coin) + api.add(coinB, quote_coin) + } +} + +module.exports = { + sui: { + tvl: suiTVL, + } +} \ No newline at end of file diff --git a/projects/helper/bitcoin-book/fetchers.js b/projects/helper/bitcoin-book/fetchers.js index 6a613cf7eeba..4d798dcc63b6 100644 --- a/projects/helper/bitcoin-book/fetchers.js +++ b/projects/helper/bitcoin-book/fetchers.js @@ -10,8 +10,13 @@ module.exports = { btcfi_cdp: async () => { const target = "0x0000000000000000000000000000000000000100"; const api = new sdk.ChainApi({ chain: 'bfc' }) - const round = await api.call({ abi: 'uint32:current_round', target }) - return api.call({ abi: 'function vault_addresses(uint32 pool_round) view returns (string[])', target, params: round }) + const round = await api.call({ abi: 'uint32:current_round', target}) + + const utxoVault = await api.call({ abi: 'function registration_info(address target, uint32 pool_round) view returns (address, string, string, address[], bytes[])', target, params: [target, round] }) + const vault = await api.call({ abi: 'function vault_addresses(uint32 pool_round) view returns (string[])', target, params: round }); + vault.push(utxoVault[2]) + + return vault }, bedrock: async () => { const API_URL = 'https://raw.githubusercontent.com/Bedrock-Technology/uniBTC/refs/heads/main/data/tvl/reserve_address.json' diff --git a/projects/helper/bitcoin-book/gate-io.js b/projects/helper/bitcoin-book/gate-io.js index 059c5c5a78e8..dbb53dc722d3 100644 --- a/projects/helper/bitcoin-book/gate-io.js +++ b/projects/helper/bitcoin-book/gate-io.js @@ -5,5 +5,7 @@ module.exports = [ '1G47mSr3oANXMafVrR8UC4pzV7FEAzo3r9', '1HpED69tpKSaEaWpY3Udt1DtcVcuCUoh2Y', '3HroDXv8hmzKRtaSfBffRgedKpru8fgy6M', - '1ECeVF6wfbiihCRrrpRnkbwrWsZfYmixMG' + '1ECeVF6wfbiihCRrrpRnkbwrWsZfYmixMG', + '1FhncfokiSDagazXbuVqKQ6ew4oyDmAzhG', + '1FLKsCiEsABS7LysfDA8R181TQ6eLjoxPv' ] \ No newline at end of file diff --git a/projects/helper/cache/sumUnknownTokens.js b/projects/helper/cache/sumUnknownTokens.js index e494f6871c4d..eb7b1e90a083 100644 --- a/projects/helper/cache/sumUnknownTokens.js +++ b/projects/helper/cache/sumUnknownTokens.js @@ -365,7 +365,7 @@ async function getTokenPrices({ async function sumUnknownTokens({ api, tokensAndOwners = [], balances, coreAssets = [], owner, tokens, chain = 'ethereum', block, restrictTokenRatio, blacklist = [], skipConversion = false, onlyLPs, minLPRatio, log_coreAssetPrices = [], log_minTokenValue = 1e6, owners = [], lps = [], useDefaultCoreAssets = false, cache = {}, resolveLP = false, abis, - ownerTokens = [], + ownerTokens = [], allLps = false, }) { if (api) { chain = api.chain ?? chain @@ -386,7 +386,7 @@ async function sumUnknownTokens({ api, tokensAndOwners = [], balances, ownerTokens.forEach(([tokens, owner]) => tokens.forEach(i => tokensAndOwners.push([i, owner]))) tokensAndOwners = tokensAndOwners.filter(t => !blacklist.includes(t[0])) await sumTokens2({ api, balances, chain, block, tokensAndOwners, skipFixBalances: true, resolveLP, abis }) - const { updateBalances, } = await getTokenPrices({ cache, coreAssets, lps: [...tokensAndOwners.map(t => t[0]), ...lps,], chain, block, restrictTokenRatio, blacklist, log_coreAssetPrices, log_minTokenValue, minLPRatio, abis, }) + const { updateBalances, } = await getTokenPrices({ cache, coreAssets, lps: [...tokensAndOwners.map(t => t[0]), ...lps,], chain, block, restrictTokenRatio, blacklist, log_coreAssetPrices, log_minTokenValue, minLPRatio, abis, allLps, }) await updateBalances(balances, { skipConversion, onlyLPs }) const fixBalances = await getFixBalances(chain) fixBalances(balances) diff --git a/projects/helper/chain/acala.js b/projects/helper/chain/acala.js new file mode 100644 index 000000000000..f63d8d148e33 --- /dev/null +++ b/projects/helper/chain/acala.js @@ -0,0 +1,30 @@ +const sdk = require('@defillama/sdk') +const { post } = require('../http') +const { sleep } = require('../utils') + +const endpoint = 'https://acala.api.subscan.io/api/v2/scan/search' + +async function getBalance(key) { + const data = await post(endpoint, { key }, { + headers: { + 'Content-Type': 'application/json', + 'X-API-Key': 'f89d810db5ef4c4fbc83b987dc2ffcda' + } + }) + return +(data?.data?.account?.balance ?? 0) +} + +async function sumTokens({ balances = {}, owners = [] }) { + let total = 0 + for (const owner of owners) { + const balance = await getBalance(owner) + total += balance + await sleep(3000) + } + sdk.util.sumSingleBalance(balances, 'acala', total) + return balances +} + +module.exports = { + sumTokens +} \ No newline at end of file diff --git a/projects/helper/chain/aelf.js b/projects/helper/chain/aelf.js new file mode 100644 index 000000000000..a7c44bfe19c6 --- /dev/null +++ b/projects/helper/chain/aelf.js @@ -0,0 +1,22 @@ +const sdk = require('@defillama/sdk') +const { get } = require('../http') + + +async function getBalance(key) { + const data = await get(`https://explorer.aelf.io/api/viewer/balances?address=${key}`) + return +(data?.data?.[0]?.balance ?? 0) +} + +async function sumTokens({ balances = {}, owners = [] }) { + let total = 0 + for (const owner of owners) { + const balance = await getBalance(owner) + total += balance + } + sdk.util.sumSingleBalance(balances, 'aelf', total) + return balances +} + +module.exports = { + sumTokens +} \ No newline at end of file diff --git a/projects/helper/chain/aeternity.js b/projects/helper/chain/aeternity.js new file mode 100644 index 000000000000..1ca93d824b1b --- /dev/null +++ b/projects/helper/chain/aeternity.js @@ -0,0 +1,29 @@ +const axios = require('axios'); +const sdk = require('@defillama/sdk') + +const endpoint = 'https://mainnet.aeternity.io/v2/accounts'; // Replace with the appropriate endpoint + +async function getBalance(address) { + try { + const response = await axios.get(`${endpoint}/${address}`); + const balance = response.data.balance; + return balance; + } catch (error) { + console.error('Error fetching token balance:', error); + return 0; + } +} + +async function sumTokens({ balances = {}, owners = [] }) { + let total = 0; + for (const owner of owners) { + const balance = await getBalance(owner); + total += balance; + } + sdk.util.sumSingleBalance(balances, 'aeternity', total); + return balances; +} + +module.exports = { + sumTokens +}; \ No newline at end of file diff --git a/projects/helper/chain/alephium.js b/projects/helper/chain/alephium.js index d1ff69bdb911..b7320e9fb91e 100644 --- a/projects/helper/chain/alephium.js +++ b/projects/helper/chain/alephium.js @@ -70,7 +70,19 @@ function addressFromContractId(contractId) { return bs58.encode(bytes); } +async function sumTokens({ owners = [], owner }) { + if (owner) owners = [owner]; + let total = 0 + for (const owner of owners) + total += (await getAlphBalance(owner)).balance / 1e18 + + return { + alephium: total + } +} + module.exports = { + sumTokens, getAlphBalance, getTokensBalance, getTokenInfo, diff --git a/projects/helper/chain/astar.js b/projects/helper/chain/astar.js new file mode 100644 index 000000000000..8598f8e2e88f --- /dev/null +++ b/projects/helper/chain/astar.js @@ -0,0 +1,30 @@ +const sdk = require('@defillama/sdk') +const { post } = require('../http') +const { sleep } = require('../utils') + +const endpoint = 'https://astar.api.subscan.io/api/v2/scan/search' + +async function getBalance(key) { + const data = await post(endpoint, { key }, { + headers: { + 'Content-Type': 'application/json', + 'X-API-Key': 'f89d810db5ef4c4fbc83b987dc2ffcda' + } + }) + return +(data?.data?.account?.balance ?? 0) +} + +async function sumTokens({ balances = {}, owners = [] }) { + let total = 0 + for (const owner of owners) { + const balance = await getBalance(owner) + total += balance + await sleep(3000) + } + sdk.util.sumSingleBalance(balances, 'astar', total) + return balances +} + +module.exports = { + sumTokens +} \ No newline at end of file diff --git a/projects/helper/chain/bifrost.js b/projects/helper/chain/bifrost.js new file mode 100644 index 000000000000..2977c8e20045 --- /dev/null +++ b/projects/helper/chain/bifrost.js @@ -0,0 +1,30 @@ +const sdk = require('@defillama/sdk') +const { post } = require('../http') +const { sleep } = require('../utils') + +const endpoint = 'https://bifrost.api.subscan.io/api/v2/scan/search' + +async function getBalance(key) { + const data = await post(endpoint, { key }, { + headers: { + 'Content-Type': 'application/json', + 'X-API-Key': 'f89d810db5ef4c4fbc83b987dc2ffcda' + } + }) + return +(data?.data?.account?.balance ?? 0) +} + +async function sumTokens({ balances = {}, owners = [] }) { + let total = 0 + for (const owner of owners) { + const balance = await getBalance(owner) + total += balance + await sleep(3000) + } + sdk.util.sumSingleBalance(balances, 'bifrost', total) + return balances +} + +module.exports = { + sumTokens +} \ No newline at end of file diff --git a/projects/helper/chain/bittensor.js b/projects/helper/chain/bittensor.js new file mode 100644 index 000000000000..2278ee65473c --- /dev/null +++ b/projects/helper/chain/bittensor.js @@ -0,0 +1,38 @@ +const sdk = require('@defillama/sdk') +const { post } = require('../http') + +const TAO_STATS_SUBQUERY = "https://api.subquery.network/sq/TaoStats/bittensor-indexer"; + +async function getBalance(key) { + const query = `{ + query{ + account(id: "${key}"){ + id + nodeId + balanceTotal + balanceStaked + balanceFree + address + } + } + }`; + + + const { data: { query: { account: { balanceTotal } } } } = await post(TAO_STATS_SUBQUERY, { query, variables: {}, }); + return balanceTotal/1e9 +} + + +async function sumTokens({ balances = {}, owners = [] }) { + let total = 0 + for (const owner of owners) { + const balance = await getBalance(owner) + total += balance + } + sdk.util.sumSingleBalance(balances, 'bittensor', total) + return balances +} + +module.exports = { + sumTokens +} \ No newline at end of file diff --git a/projects/helper/chain/cosmos.js b/projects/helper/chain/cosmos.js index aea053b9712f..9fa4cb73c28a 100644 --- a/projects/helper/chain/cosmos.js +++ b/projects/helper/chain/cosmos.js @@ -9,6 +9,8 @@ const ADDRESSES = require('../coreAssets.json') // https://proxy.atomscan.com/chains.json // https://cosmos-chain.directory/chains/cosmoshub // https://cosmos-chain.directory/chains +// https://celestia.publicnode.com/ +// https://api.axelarscan.io/api/getTVL const endPoints = { crescent: "https://mainnet.crescent.network:1317", osmosis: "https://lcd.osmosis.zone", @@ -47,7 +49,13 @@ const endPoints = { noble: "https://noble-api.polkachu.com", mantra: "https://api.mantrachain.io", elys: "https://api.elys.network", // https://api.elys.network/#/Query/ElysAmmPoolAll - pryzm: "https://api.pryzm.zone" + pryzm: "https://api.pryzm.zone", + agoric: 'https://as-proxy.gateway.atomscan.com/agoric-lcd', + band: 'https://laozi1.bandchain.org/api', + celestia: 'https://celestia-rest.publicnode.com', + dydx: 'https://dydx-rest.publicnode.com', + carbon: 'https://rest.lavenderfive.com/carbon/', + evmos: 'https://evmos-api.polkachu.com', }; const chainSubpaths = { diff --git a/projects/helper/chains.json b/projects/helper/chains.json index 4c340460868b..e850239e9685 100644 --- a/projects/helper/chains.json +++ b/projects/helper/chains.json @@ -351,6 +351,7 @@ "vechain", "velas", "venom", + "verus", "vinu", "vision", "vite", diff --git a/projects/helper/sumTokens.js b/projects/helper/sumTokens.js index c376231260eb..f1cc24816778 100644 --- a/projects/helper/sumTokens.js +++ b/projects/helper/sumTokens.js @@ -20,11 +20,26 @@ const helpers = { "bitcoin": require("./chain/bitcoin"), "litecoin": require("./chain/litecoin"), "polkadot": require("./chain/polkadot"), + "acala": require("./chain/acala"), + "bifrost": require("./chain/bifrost"), + "aelf": require("./chain/aelf"), + "aeternity": require("./chain/aeternity"), + "alephium": require("./chain/alephium"), "hedera": require("./chain/hbar"), "stacks": require("./chain/stacks"), "starknet": require("./chain/starknet"), "brc20": require("./chain/brc20"), "doge": require("./chain/doge"), + "bittensor": require("./chain/bittensor"), + "fuel": require("./chain/fuel"), + "radixdlt": require("./chain/radixdlt"), +} + + +// some chains support both evm & non-evm, this is to handle if address provided is not evm +const altEVMHelper = { + "astar": require("./chain/astar"), + "evmos": helpers.cosmos, } const geckoMapping = { @@ -60,11 +75,21 @@ async function sumTokens(options) { if (token) tokens = [token] if (owner) owners = [owner] + const evmAddressExceptions = new Set(['tron', 'xdc']) + const nonEvmOwnerFound = !evmAddressExceptions.has(chain) && owners.some(o => !o.startsWith('0x')) + const isAltEvm = altEVMHelper[chain] && nonEvmOwnerFound - if (!ibcChains.includes(chain) && !helpers[chain] && !specialChains.includes(chain)) + if (!ibcChains.includes(chain) && !helpers[chain] && !specialChains.includes(chain) && !isAltEvm) { + if (nonEvmOwnerFound) throw new Error('chain handler missing: ' + chain) return sumTokensEVM(options) + } + + + if (!isAltEvm) + owners = getUniqueAddresses(owners, chain) + else + owners = [...new Set(owners)] // retain case sensitivity - owners = getUniqueAddresses(owners, chain) blacklistedTokens = getUniqueAddresses(blacklistedTokens, chain) if (!['eos'].includes(chain)) tokens = getUniqueAddresses(tokens, chain).filter(t => !blacklistedTokens.includes(t)) @@ -80,7 +105,7 @@ async function sumTokens(options) { options.owners = owners options.tokens = tokens options.blacklistedTokens = blacklistedTokens - let helper = helpers[chain] + let helper = helpers[chain] || altEVMHelper[chain] if (ibcChains.includes(chain)) helper = helpers.cosmos @@ -118,6 +143,7 @@ async function sumTokens(options) { async function getRippleBalance(account) { const body = { "method": "account_info", "params": [{ account }] } const res = await post('https://s1.ripple.com:51234', body) + if (res.result.error === 'actNotFound') return 0 return res.result.account_data.Balance / 1e6 } diff --git a/projects/helper/tokenMapping.js b/projects/helper/tokenMapping.js index a3c555ca8fc2..88f1164ad111 100644 --- a/projects/helper/tokenMapping.js +++ b/projects/helper/tokenMapping.js @@ -1,4 +1,3 @@ -const { decimals } = require('@defillama/sdk/build/erc20') let coreAssets = require('./coreAssets.json') const ADDRESSES = coreAssets const nullAddress = ADDRESSES.null @@ -19,11 +18,12 @@ coreAssets = JSON.parse(JSON.stringify(coreAssets)) const ibcChains = ['ibc', 'terra', 'terra2', 'crescent', 'osmosis', 'kujira', 'stargaze', 'juno', 'injective', 'cosmos', 'comdex', 'umee', 'orai', 'persistence', 'fxcore', 'neutron', 'quasar', 'chihuahua', 'sei', 'archway', 'migaloo', 'secret', 'aura', 'xpla', 'bostrom', 'joltify', 'nibiru', - 'kopi', 'elys', "pryzm", "mantra", + 'kopi', 'elys', "pryzm", "mantra", 'agoric', 'band', + 'celestia', 'dydx', 'carbon' ] const caseSensitiveChains = [...ibcChains, 'solana', 'tezos', 'ton', 'algorand', 'aptos', 'near', 'bitcoin', 'waves', 'tron', 'litecoin', 'polkadot', 'ripple', 'elrond', 'cardano', 'stacks', 'sui', 'ergo', 'mvc', 'renec', 'doge', 'stellar', 'massa', - 'eclipse', + 'eclipse', 'acala', 'aelf', 'aeternity', 'alephium', 'bifrost', 'bittensor', 'verus', ] const transformTokens = { @@ -53,6 +53,18 @@ const fixBalancesTokens = { water: { '0xC807C5FfFf748eF435Ddb99b181846Edd1e70041': { coingeckoId: "water-3", decimals: 18 }, }, + bittorrent: { + [ADDRESSES.null]: { coingeckoId: "bittorrent", decimals: 18 }, + }, + dymension: { + [ADDRESSES.null]: { coingeckoId: "dymension", decimals: 18 }, + }, + energyweb: { + [ADDRESSES.null]: { coingeckoId: "energy-web-token", decimals: 18 }, + }, + etn: { + [ADDRESSES.null]: { coingeckoId: "electroneum", decimals: 18 }, + }, kopi: { 'uasusdc': { coingeckoId: 'usd-coin', decimals: 6 }, 'ucusdc': { coingeckoId: 'usd-coin', decimals: 6 }, @@ -95,7 +107,21 @@ const fixBalancesTokens = { }, mantra: { uom: { coingeckoId: 'mantra-dao', decimals: 6 }, - } + }, + verus: { + 'i5w5MuNik5NtLcYmNzcvaoixooEebB6MGV': { coingeckoId: 'verus-coin', decimals: 0 }, + 'iGBs4DWztRNvNEJBt4mqHszLxfKTNHTkhM': { coingeckoId: 'dai', decimals: 0 }, + 'iCkKJuJScy4Z6NSDK7Mt42ZAB2NEnAE1o4': { coingeckoId: 'maker', decimals: 0 }, + 'i9nwxtKuVYX4MSbeULLiK2ttVi6rUEhh4X': { coingeckoId: 'ethereum', decimals: 0 }, + 'iS8TfRPfVpKo5FVfSUzfHBQxo9KuzpnqLU': { coingeckoId: 'tbtc', decimals: 0 }, + 'i9oCSqKALwJtcv49xUKS2U2i79h1kX6NEY': { coingeckoId: 'tether', decimals: 0 }, + }, + unit0: { + '0xEb19000D90f17FFbd3AD9CDB8915D928F4980fD1': { coingeckoId: 'usd-coin', decimals: 6 }, + '0xb303d80db8415FD1d3C9FED68A52EEAc9a052671': { coingeckoId: 'tether', decimals: 6 }, + '0x1B100DE3F13E3f8Bb2f66FE58c1949c32E71248B': { coingeckoId: 'ethereum', decimals: 18 }, + '0x9CE808657ba90C65a2700b1cA5D943eC72834B52': { coingeckoId: 'wrapped-bitcoin', decimals: 8 }, + }, } ibcChains.forEach(chain => fixBalancesTokens[chain] = { ...ibcMappings, ...(fixBalancesTokens[chain] || {}) }) diff --git a/projects/ichifarm/index.js b/projects/ichifarm/index.js index 93e6d65a027f..4317e4b75afd 100644 --- a/projects/ichifarm/index.js +++ b/projects/ichifarm/index.js @@ -49,6 +49,8 @@ const config = { base: { vaultConfigs: [ { factory: '0xfBf38920cCbCFF7268Ad714ae5F9Fad6dF607065', fromBlock: 10607512, isAlgebra: false, }, // Equalizer + { factory: '0x24430E837efB64EF87bb32be03437fc6005EEF74', fromBlock: 22095330, isAlgebra: false, }, // PancakeSwap + { factory: '0xaBe5B5AC472Ead17B4B4CaC7fAF42430748ab3b3', fromBlock: 12978552, isAlgebra: false, }, // Uniswap ] }, blast: { @@ -67,6 +69,7 @@ const config = { celo: { vaultConfigs: [ { factory: '0x9FAb4bdD4E05f5C023CCC85D2071b49791D7418F', fromBlock: 24256269, isAlgebra: false, }, // Uniswap v3 + { factory: '0x8D05f6870106707BaeCFCf5C0570DB7a583eb92A', fromBlock: 27821113, isAlgebra: false, }, // Ubeswap ] }, eon: { diff --git a/projects/idle/index.js b/projects/idle/index.js index 1b0c925d00f4..b7cd2d799ad8 100644 --- a/projects/idle/index.js +++ b/projects/idle/index.js @@ -57,7 +57,9 @@ const contracts = { ] }, optimism: { - + cdos: [ + "0xD2c0D848aA5AD1a4C12bE89e713E70B73211989B" // FalconX + ] }, arbitrum: { cdos: [ diff --git a/projects/inkyswap/index.js b/projects/inkyswap/index.js new file mode 100644 index 000000000000..6f52f46f15b5 --- /dev/null +++ b/projects/inkyswap/index.js @@ -0,0 +1,4 @@ +const { uniTvlExports } = require('../helper/unknownTokens') +module.exports = uniTvlExports({ + ink: '0x458C5d5B75ccBA22651D2C5b61cB1EA1e0b0f95D' +}) \ No newline at end of file diff --git a/projects/kimberlite/config.js b/projects/kimberlite/config.js index 4da89a31c946..aa21ddd727b2 100644 --- a/projects/kimberlite/config.js +++ b/projects/kimberlite/config.js @@ -49,6 +49,11 @@ const config = { locker: "0xE4E56E5e234783BCb77A80e19C8B3B5b42588AAb", startBlock: 4533304 }, + kimberliteSafeApe: { + chain: "apechain", + locker: "0xE4E56E5e234783BCb77A80e19C8B3B5b42588AAb", + startBlock: 7797536 + }, } module.exports = { diff --git a/projects/latch/index.js b/projects/latch/index.js index 8ec0d728c6ab..2aab05309fe4 100644 --- a/projects/latch/index.js +++ b/projects/latch/index.js @@ -8,6 +8,7 @@ const tvl = async (api) => { const proxies = [ '0xa116b4680b52973426B6D2a92DcC972b8DbcB46F', + '0x97cA296139f114BF3040Cf05D05c240B770c627E' ] const tokens = await api.multiCall({ abi: 'address:ASSET_TOKEN', calls: depositPools }) diff --git a/projects/lineabank/index.js b/projects/lineabank/index.js index 3b8100dcc0c5..1cd38ee3866c 100644 --- a/projects/lineabank/index.js +++ b/projects/lineabank/index.js @@ -9,7 +9,8 @@ const config = { bsquared: '0x72f7a8eb9F83dE366AE166DC50F16074076C3Ea6', bob: '0x77cabFd057Bd7C81c011059F1bf74eC1fBeDa971', btr: '0xf1E25704e75dA0496B46Bf4E3856c5480A3c247F', - mint: '0x0f225d10dd29D4703D42C5E93440F828bf04D150' + mint: '0x0f225d10dd29D4703D42C5E93440F828bf04D150', + taiko: '0x803a61d82BaD2743bE35Be5dC6DEA0CccE82C056' } const abis = { diff --git a/projects/llamalend-curve/index.js b/projects/llamalend-curve/index.js index f9790d294b95..00d34d51fdd0 100644 --- a/projects/llamalend-curve/index.js +++ b/projects/llamalend-curve/index.js @@ -1,7 +1,9 @@ const chainContracts = { ethereum: "0xeA6876DDE9e3467564acBeE1Ed5bac88783205E0", - arbitrum: "0xcaec110c784c9df37240a8ce096d352a75922dea" + arbitrum: "0xcaec110c784c9df37240a8ce096d352a75922dea", + fraxtal: "0xf3c9bdAB17B7016fBE3B77D17b1602A7db93ac66", + optimism: "0x5ea8f3d674c70b020586933a0a5b250734798bef" } const uniq = (arr) => Array.from(new Set(arr)) diff --git a/projects/logx-v2/index.js b/projects/logx-v2/index.js index adc4a2f6c0a7..cbf99a443df1 100644 --- a/projects/logx-v2/index.js +++ b/projects/logx-v2/index.js @@ -15,7 +15,10 @@ const config = { kroma: ['0xaca5146bc74230e77DAB543d3a14F26c8c63939e','0x1e7c3B771b27A29116E4Df5a2DCC54FDaAC902db'], taiko: ['0x650e8941E4d90b70576fDF1b05dbDc962DA2cab8','0x1d9B044393804CCFa2da3127470C9F65D4E0E5E6'], optimism: ['0x650e8941E4d90b70576fDF1b05dbDc962DA2cab8','0x4417613C0fe034f7D333BF8a6247EaAAF1d51965'], - linea: ['0xaca5146bc74230e77DAB543d3a14F26c8c63939e','0x1e7c3B771b27A29116E4Df5a2DCC54FDaAC902db'] + linea: ['0xaca5146bc74230e77DAB543d3a14F26c8c63939e','0x1e7c3B771b27A29116E4Df5a2DCC54FDaAC902db'], + rari: ['0x1C70cc9F8236C4Ae2ce3d34d4Da4696Aea611f90',], + mint: ['0xaca5146bc74230e77DAB543d3a14F26c8c63939e', '0xdB29A58A53Ac438a5E325f1d7a41346aA63b7ece',], + polygon: ['0x1e7c3B771b27A29116E4Df5a2DCC54FDaAC902db', '0xaca5146bc74230e77DAB543d3a14F26c8c63939e',], } Object.keys(config).forEach(chain => { diff --git a/projects/margined-protocol/index.js b/projects/margined-protocol/index.js index 712030b7204a..ef90f0643218 100644 --- a/projects/margined-protocol/index.js +++ b/projects/margined-protocol/index.js @@ -12,6 +12,8 @@ const osmosisVaults = { OSMORedemption: "osmo15fqmdl8lfl9h0qflljd63ufw9j2m7xmsk3hu5vsn8xpta4hk5chqt7mddc", TIARedemption: "osmo1reyz7pwu7y9e7lmzqg6j4h7jcv32du7n7jhnk2lz93a9lxr56ess2qtgzl", ATOMRedemption: "osmo1hvl5kj4xzdj4udxjv2dzk2zfqhzkd9afqygwq3t84tn53e0250zqrltj48", + DYDXRedemption: "osmo1grs74ux62lukjdlfs9ll4myyulcyjcd4uzwpw3cgnzdygtsspp2se2ense", + BTCUSDC: "osmo193kjx80ag4tck2enuxcprxnrcusemmh5mun5k87c96d7swz6y2dqf39rxe", } const neutronVaults = { @@ -22,6 +24,7 @@ const neutronVaults = { NTRNUSDC: "neutron1t0fl9k43g86sv60ghx9vtwed9rpgtf49rxzm05ff477j23h52c6s0urdc7", TIAUSDC: "neutron1wv8pl7tsatzx6n9yaqfksvu5y0x7j50g6mhy636udwfn3vyqp0hsu7g8yk", ATOMUSDC: "neutron1krqwpk0kmphl93kykavp2fnr88g5rnrpk40c34a55yrl00tmfz0s99ewc6", + TIAFund: "neutron14q3umuuvyv6mndd5acuc3n8u5mlvrrq3kkzrputu3rkhz8nd2uzqmfl4v6", } const config = { diff --git a/projects/marlinprotocol/index.js b/projects/marlinprotocol/index.js new file mode 100644 index 000000000000..50ca1cc02351 --- /dev/null +++ b/projects/marlinprotocol/index.js @@ -0,0 +1,11 @@ +const { staking } = require('../helper/staking'); + +module.exports = { + arbitrum: { + tvl: () => ({}), + staking: staking( + "0xf90490186F370f324DEF2871F077668455f65253", + "0xdA0a57B710768ae17941a9Fa33f8B720c8bD9ddD" + ) + }, +}; \ No newline at end of file diff --git a/projects/memebox-fi/index.js b/projects/memebox-fi/index.js new file mode 100644 index 000000000000..f4d3a66990ca --- /dev/null +++ b/projects/memebox-fi/index.js @@ -0,0 +1,4 @@ +const { uniTvlExports } = require('../helper/unknownTokens') +module.exports = uniTvlExports({ + 'sonic': '0x079463f811e6EB2E226908E79144CDDB59a7fB71' +}) \ No newline at end of file diff --git a/projects/mobiusdex-xyz/index.js b/projects/mobiusdex-xyz/index.js new file mode 100644 index 000000000000..9a590b32940e --- /dev/null +++ b/projects/mobiusdex-xyz/index.js @@ -0,0 +1,4 @@ +const { uniTvlExports } = require('../helper/unknownTokens') +module.exports = uniTvlExports({ + 'sonic': '0x475f2dDfA1A5da19F4a3F282F1305f285E742C45' +}) \ No newline at end of file diff --git a/projects/moby/index.js b/projects/moby/index.js index fb8b241eba18..a1862e92b31d 100644 --- a/projects/moby/index.js +++ b/projects/moby/index.js @@ -2,6 +2,9 @@ const { sumTokensExport } = require('../helper/unwrapLPs') const ADDRESSES = require('../helper/coreAssets.json') module.exports = { + hallmarks: [ + [1736294400,"Private-key Leak Exploit"] + ], arbitrum: { tvl: sumTokensExport({ owners: [ diff --git a/projects/monstro-fun/index.js b/projects/monstro-fun/index.js new file mode 100644 index 000000000000..3a3a2b77a527 --- /dev/null +++ b/projects/monstro-fun/index.js @@ -0,0 +1,26 @@ +const ADDRESSES = require('../helper/coreAssets.json') + +const BASE_CONTRACT = '0x813303b6F253C74D997020518227f87Ff721F53F'; +// 0xdbe214c863d6b2ecf5d79012e5d03aab09c57e28 +const ABI_GOLEMZ = "function golemzLatestStats() view returns (uint256 totalInvested, uint256 currentTVL, uint256 insurance, uint256 totalPaidOut)"; // 0x07f2a4b640d0c780d52d476ac2b674d8a22bc1b1 +const ABI_POOLZ = "function poolzLatestStats() view returns (uint256 totalInvested, uint256 currentTVL, uint256 insurance, uint256 totalPaidOut)"; // 0x4d0eb0e7e851787065f694b2e12e75bfa97be08e + +async function getInvestedValue(api, contractAddress, abi) { + const response = await api.call({ target: contractAddress, abi, }); + + return api.add(ADDRESSES.base.USDC, response.totalInvested) +} + +async function tvl(api) { + await getInvestedValue(api, BASE_CONTRACT, ABI_GOLEMZ); + await getInvestedValue(api, BASE_CONTRACT, ABI_POOLZ); +} + +module.exports = { + methodology: 'Sums the total invested value from farmz, golemz, and poolz contracts based on their respective latestStats functions.', + hallmarks: [[1734804000, "BSC->Base ecosystem migration"]], + misrepresentedTokens: true, + base: { + tvl, + }, +}; \ No newline at end of file diff --git a/projects/navigator/index.js b/projects/navigator/index.js new file mode 100644 index 000000000000..a01dbabaea44 --- /dev/null +++ b/projects/navigator/index.js @@ -0,0 +1,25 @@ +const { staking } = require("../helper/staking"); +const { gmxExports } = require("../helper/gmx"); +const { sumTokens2 } = require("../helper/unwrapLPs"); + +// sonic +const sonicVault = "0xe9263682E837eFabb145f8C632B9d2c518D90652"; +const sonicStaking = "0xEF8770E9506a8D1aAE3D599327a39Cf14B6B3dc4"; +const sonicNAVI = "0x6881B80ea7C858E4aEEf63893e18a8A36f3682f3"; + +// sonicV2 +const sonicV2Vault = "0x41cD8CaFc24A771031B9eB9C57cFC94D86045eB6"; +const sonicV2Assets = ["0x29219dd400f2bf60e5a23d13be72b486d4038894"] + +const tvl = async (api) => { + await Promise.all([ + gmxExports({ vault: sonicVault })(api), + sumTokens2({ api, tokens: sonicV2Assets, owner: sonicV2Vault })]) +}; + +module.exports = { + sonic: { + tvl, + staking: staking(sonicStaking, sonicNAVI) + } +} diff --git a/projects/neptune/index.js b/projects/neptune/index.js new file mode 100644 index 000000000000..f9e391148685 --- /dev/null +++ b/projects/neptune/index.js @@ -0,0 +1,20 @@ +const { getUniTVL } = require('../helper/unknownTokens.js') +const config = { + swellchain: { + factory: '0xD78a40cA54090f4178c9c9212c78e9E0C2722231', + }, +} + +Object.keys(config).forEach(chain => { + const { factory, } = config[chain] + module.exports[chain] = { + tvl: getUniTVL({ + factory, useDefaultCoreAssets: true, fetchBalances: true, abis: { + allPairsLength: 'uint256:allPoolsLength', + allPairs: "function allPools(uint) view returns (address)", + } + }) + } +}) + +module.exports.misrepresentedTokens = true \ No newline at end of file diff --git a/projects/noble/index.js b/projects/noble/index.js index 1eaac5923554..2b8e8580ed8b 100644 --- a/projects/noble/index.js +++ b/projects/noble/index.js @@ -8,7 +8,6 @@ async function tvl(api) { do { const { supply, pagination } = await queryV1Beta1({ api, url: `${NOBLE_SUPPLY_URL}?pagination.key=${key || ''}` }) key = pagination.next_key - console.log(key) supply.forEach(i => api.add(i.denom, i.amount)) } while (key); IGNORE_DENOMS.forEach(denom => api.removeTokenBalance(denom)) diff --git a/projects/nodo/index.js b/projects/nodo/index.js new file mode 100644 index 000000000000..ecfcc41879f8 --- /dev/null +++ b/projects/nodo/index.js @@ -0,0 +1,41 @@ +const { sumTokensExport } = require('../helper/unwrapLPs') + +const config = { + avax: { + chaingeAddress: "0xB4623b02A0D9bCf0282600C08E4383c04A0E0AfC", + tokens: [ + "0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7" + ] + }, + polygon: { + chaingeAddress: "0x1e579a1AE5DA042C925902F3Efec1035C9329283", + tokens: [ + "0xc2132D05D31c914a87C6611C10748AEb04B58e8F" + ] + }, + base: { + chaingeAddress: "0xEcc253aeAeC63bcB2b8eC6A739A0972A817219A3", + tokens: [ + "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" + ] + }, + bsc: { + chaingeAddress: "0x916A6314e9d8E51BEB18b355ad52b4506262620f", + tokens: [ + "0x55d398326f99059fF775485246999027B3197955" + ] + }, + celo: { + chaingeAddress: "0x65583D94d848E398dE3ef8382e5827000eb99961", + tokens: [ + "0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e" + ] + } +} + +Object.keys(config).forEach(chain => { + const { chaingeAddress, tokens } = config[chain] + module.exports[chain] = { + tvl: sumTokensExport({ owner: chaingeAddress, tokens }) + } +}) diff --git a/projects/pixel-swap/index.js b/projects/pixel-swap/index.js index a8cb5deee960..291dfbf3e756 100644 --- a/projects/pixel-swap/index.js +++ b/projects/pixel-swap/index.js @@ -1,15 +1,14 @@ const { get } = require('../helper/http') -async function tvl(api) { +async function tvl (api) { const res = await get("https://api.pixelswap.io/apis/tokens"); - const tokens = res.data.tokens.map(i => i.address); - const balances = res.data.tokens.map(i => i.tokenBalance); - - api.addTokens(tokens, balances); + + res.data.tokens.forEach(({ address, tokenBalance }) => { + if (!tokenBalance) return; + api.addTokens(address, tokenBalance) + }) } module.exports = { - ton: { - tvl, - } + ton: { tvl } }; diff --git a/projects/popcorn/index.js b/projects/popcorn/index.js index 8bc74146b8dc..29eefa6808e1 100644 --- a/projects/popcorn/index.js +++ b/projects/popcorn/index.js @@ -29,6 +29,9 @@ async function tvl(api) { await addFraxVaultToTVL(balances, api); } + if (api.chain === 'ethereum') + vaultAddresses = vaultAddresses.filter(i => !['0xcF9273BA04b875F94E4A9D8914bbD6b3C1f08EDb'].includes(i)) + const assets = await api.multiCall({ abi: getAssetAbi, calls: vaultAddresses, }); const totalAssets = await api.multiCall({ abi: getTotalAssets, calls: vaultAddresses, }); diff --git a/projects/primestaking-xyz/index.js b/projects/primestaking-xyz/index.js new file mode 100644 index 000000000000..5511d341e544 --- /dev/null +++ b/projects/primestaking-xyz/index.js @@ -0,0 +1,10 @@ +const xdcStakeRewardTokenAddress = '0x7f115F68A789F819047b94EFA0114AA9829b83d8' + +const tvl = async (api) => { + const totalSupply = await api.call({ abi: 'erc20:totalSupply', target: xdcStakeRewardTokenAddress, }) + api.addGasToken(totalSupply) +} + +module.exports = { + xdc: { tvl } +} \ No newline at end of file diff --git a/projects/rabbitx/index.js b/projects/rabbitx/index.js index 80f40d495ce1..3d667aa5c349 100644 --- a/projects/rabbitx/index.js +++ b/projects/rabbitx/index.js @@ -4,11 +4,11 @@ const { staking } = require('../helper/staking') module.exports = { ethereum: { - tvl: sumTokensExport({ owners: ['0xFc7f884DE22a59c0009C91733196b012Aecb8F41', '0x3b8F6D6970a24A58b52374C539297ae02A3c4Ae4', '0x7fAb440A0251dA67B316d2c0431E3Ccf4520Cd42',], tokens: [ADDRESSES.ethereum.USDT]}), + tvl: sumTokensExport({ owners: ['0xFc7f884DE22a59c0009C91733196b012Aecb8F41', '0x3b8F6D6970a24A58b52374C539297ae02A3c4Ae4', '0x7fAb440A0251dA67B316d2c0431E3Ccf4520Cd42','0x1171651A1917C7DE22cF2047D1D7Cb9d97039811',], tokens: [ADDRESSES.ethereum.USDT]}), staking: staking('0x0c378FB17E87B180256a87e3f671cd83Bf3236DB', '0x3Ba925fdeAe6B46d0BB4d424D829982Cb2F7309e'), }, blast: { - tvl: sumTokensExport({ owner: '0x3Ba925fdeAe6B46d0BB4d424D829982Cb2F7309e', tokens: [ADDRESSES.blast.USDB, ADDRESSES.blast.WETH]}), + tvl: sumTokensExport({ owners: ['0x3Ba925fdeAe6B46d0BB4d424D829982Cb2F7309e', '0x212f3a03b0e67f2d0afc7bca138707cf9fd6a0e6'], tokens: [ADDRESSES.blast.USDB, ADDRESSES.blast.WETH]}), staking: staking('0x67dBA61709D78806395acDBa3EF9Df686aF5dc24', '0x236bb48fcF61ce996B2C8C196a9258c176100c7d'), }, } diff --git a/projects/sablier-lockup/index.js b/projects/sablier-lockup/index.js index 590012a459f4..557bcd413a23 100644 --- a/projects/sablier-lockup/index.js +++ b/projects/sablier-lockup/index.js @@ -15,6 +15,7 @@ const config = { polygon: { endpoints: ['CsDNYv9XPUMP8vufuwDVKQrVhsxhzzRHezjLFFKZZbrx'], }, scroll: { endpoints: ['HVcngokCByfveLwguuafrBC34xB65Ne6tpGrXHmqDSrh'], }, xdai: { endpoints: ['EXhNLbhCbsewJPx4jx5tutNXpxwdgng2kmX1J7w1bFyu'], }, + chz: { endpoints: ['HKvzAuGjrEiza11W48waJy5csbhKpkMLF688arwHhT5f'], }, } diff --git a/projects/size-credit/index.js b/projects/size-credit/index.js index 90d31b0c9511..e2f29e7fc5eb 100644 --- a/projects/size-credit/index.js +++ b/projects/size-credit/index.js @@ -1,4 +1,7 @@ -const SIZE_FACTORY = '0x330Dc31dB45672c1F565cf3EC91F9a01f8f3DF0b' +const config = { + base: '0x330Dc31dB45672c1F565cf3EC91F9a01f8f3DF0b', + ethereum: '0x3A9C05c3Da48E6E26f39928653258D7D4Eb594C1' +} const abis = { SizeFactory: { @@ -13,7 +16,7 @@ const abis = { } async function tvl(api) { - const markets = await api.call({ abi: abis.SizeFactory.getMarkets, target: SIZE_FACTORY }) + const markets = await api.call({ abi: abis.SizeFactory.getMarkets, target: config[api.chain] }) const datas = await api.multiCall({ abi: abis.Size.data, calls: markets }) const borrowATokens = datas.map(data => data.borrowAToken) @@ -32,7 +35,7 @@ async function tvl(api) { } async function borrowed(api) { - const markets = await api.call({ abi: abis.SizeFactory.getMarkets, target: SIZE_FACTORY }) + const markets = await api.call({ abi: abis.SizeFactory.getMarkets, target: config[api.chain] }) const datas = await api.multiCall({ abi: abis.Size.data, calls: markets }) const debtTokens = datas.map(data => data.debtToken) @@ -43,9 +46,8 @@ async function borrowed(api) { return api.add(underlyingBorrowTokens, totalDebts) } -module.exports = { - base: { - tvl, - borrowed +Object.keys(config).forEach(chain => { + module.exports[chain] = { + tvl, borrowed, } -} +}) diff --git a/projects/solfarm.js b/projects/solfarm.js index 687f1e8d1c23..50bf77972e51 100644 --- a/projects/solfarm.js +++ b/projects/solfarm.js @@ -1,9 +1,7 @@ -const { get } = require('./helper/http') +const { sumTokens2 } = require('./helper/solana') -async function fetch() { - var response = await get('https://api.tulip.garden/tvl') - - return response.total; +async function tvl() { + return sumTokens2({ owner: '8gEGZbUfVE1poBq71VHKX9LU7ca4x8wTUyZgcbyQe51s'}) } module.exports = { @@ -11,5 +9,5 @@ module.exports = { [1667865600, "FTX collapse"] ], timetravel: false, - fetch + solana: { tvl } } diff --git a/projects/sophon/index.js b/projects/sophon/index.js new file mode 100644 index 000000000000..7c557c4be885 --- /dev/null +++ b/projects/sophon/index.js @@ -0,0 +1,7 @@ +const getTvl = require("../txBridge/util") + +module.exports = { + ethereum: { + tvl: async (api) => getTvl(api, { chainId: 50104, }), + }, +} diff --git a/projects/stakestone-berastone/index.js b/projects/stakestone-berastone/index.js index 5b9d05f38a5d..d23640a24e38 100644 --- a/projects/stakestone-berastone/index.js +++ b/projects/stakestone-berastone/index.js @@ -5,19 +5,22 @@ const vaultABI = { "assetsBorrowed": "function assetsBorrowed() external view returns (uint256)" } -const Vault = '0x8f88aE3798E8fF3D0e0DE7465A0863C9bbB577f0'; +const ETHVault = '0x8f88aE3798E8fF3D0e0DE7465A0863C9bbB577f0'; +const BTCVault = '0xf401Cc9f467c7046796D9A8b44b0c1348b4DEec7'; -const Tvl = async (api) => { - const usedTVL = await api.call({ abi: vaultABI.assetsBorrowed, target: Vault }) - api.add(ADDRESSES.ethereum.WETH, usedTVL); +const tvl = async (api) => { + // to include assets moved to boyco vault + const usedTVL = await api.call({ abi: vaultABI.assetsBorrowed, target: ETHVault }) + api.add(ADDRESSES.ethereum.STONE, usedTVL); - const underlyings = await api.call({ abi: vaultABI.getUnderlyings, target: Vault }) - return api.sumTokens({ owner: Vault, tokens: underlyings }) + const vaults = [ETHVault, BTCVault]; + const tokens = await api.multiCall({ abi: vaultABI.getUnderlyings, calls: vaults}) + return api.sumTokens({ ownerTokens: tokens.map((t, i) => [t, vaults[i]]) }) } module.exports = { doublecounted: true, ethereum: { - tvl: Tvl, + tvl, } -} +} \ No newline at end of file diff --git a/projects/swapsicle-v2/index.js b/projects/swapsicle-v2/index.js index 0d1d0bac445b..04d7290f0532 100644 --- a/projects/swapsicle-v2/index.js +++ b/projects/swapsicle-v2/index.js @@ -45,11 +45,11 @@ const contracts = { const config = { mantle: { endpoint: - "https://subgraph-api.mantle.xyz/subgraphs/name/cryptoalgebra/analytics", + "https://subgraph-api.mantle.xyz/api/public/f077c8d4-0d6c-42d4-9bbd-050948dc5c86/subgraphs/swapsicle/analytics/prod/gn", }, telos: { endpoint: - "https://test.telos.subgraph.swapsicle.io/subgraphs/name/cryptoalgebra/analytics", + "https://api.telos.0xgraph.xyz/api/public/f59149ee-c99a-41d0-afe4-1c86170a98b0/subgraphs/swapsicle/analytics/prod/gn", }, taiko: { endpoint: @@ -120,4 +120,4 @@ Object.keys(config).forEach((chain) => { (api) => (chain !== 'taiko' ? ZombieVanStake(api) : 0), (api) => (chain !== 'taiko' ? ICZStake(api) : 0), ]); -}); +}); \ No newline at end of file diff --git a/projects/treasury/monstro-fun.js b/projects/treasury/monstro-fun.js new file mode 100644 index 000000000000..2f36a918f972 --- /dev/null +++ b/projects/treasury/monstro-fun.js @@ -0,0 +1,21 @@ +const BASE_CONTRACT = '0x813303b6F253C74D997020518227f87Ff721F53F'; +const ABI_FARMZ = "function farmzLatestStats() view returns (uint256 totalInvested, uint256 currentTVL, uint256 insurance, uint256 totalPaidOut)" +// 0xdbe214c863d6b2ecf5d79012e5d03aab09c57e28 +const ADDRESSES = require('../helper/coreAssets.json') + +async function getInvestedValue(api, contractAddress, abi) { + const response = await api.call({ target: contractAddress, abi, }); + + return api.add(ADDRESSES.base.USDC, response.totalInvested) +} + +async function tvl(api) { + await getInvestedValue(api, BASE_CONTRACT, ABI_FARMZ); +} + +module.exports = { + misrepresentedTokens: true, + base: { + tvl, + }, +}; \ No newline at end of file diff --git a/projects/txBridge/index.js b/projects/txBridge/index.js index bdb3b6df1dae..a58abcc44ad2 100644 --- a/projects/txBridge/index.js +++ b/projects/txBridge/index.js @@ -1,31 +1,7 @@ -const { sumTokens2 } = require("../helper/unwrapLPs"); - -const target = "0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB" -const gasQuery = '0x0000000000000000000000000000000000000001' -const gasAddress = '0x0000000000000000000000000000000000000000' -const chainId = 324 +const getTvl = require("./util") module.exports = { ethereum: { - tvl: async (api) => { - const totalBalances = await sumTokens2({ - api, - owner: target, - fetchCoValentTokens: true, - }) - const balances = await api.multiCall({ - calls: [gasQuery, ...Object.keys(totalBalances)].map(token => ({ - target, params: [chainId, token.substring(token.indexOf(':') + 1)] - })), - abi: { "inputs": [{ "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "l1Token", "type": "address" }], "name": "chainBalance", "outputs": [{ "internalType": "uint256", "name": "balance", "type": "uint256" }], "stateMutability": "view", "type": "function" }, - permitFailure: true, - withMetadata: true - }) - api._balances._balances = {} - balances.map(call => { - const token = call.input.params[1] - api.add(token == gasQuery ? gasAddress : token, call.output) - }) - } + tvl: async (api) => getTvl(api, { chainId: 324, }), }, -}; +} diff --git a/projects/txBridge/util.js b/projects/txBridge/util.js new file mode 100644 index 000000000000..bbff27fda1d7 --- /dev/null +++ b/projects/txBridge/util.js @@ -0,0 +1,20 @@ +const { sumTokens2 } = require("../helper/unwrapLPs"); + +const _target = "0xD7f9f54194C633F36CCD5F3da84ad4a1c38cB2cB" +const gasQuery = '0x0000000000000000000000000000000000000001' +const gasAddress = '0x0000000000000000000000000000000000000000' + +module.exports = async (api, { chainId, target = _target } = {}) => { + const totalBalances = await sumTokens2({ api, owner: target, fetchCoValentTokens: true, balances: {} }) + const tokens = Object.keys(totalBalances).map(token => token.split(':')[1]).filter(token => token !== gasAddress) + tokens.unshift(gasQuery) + const balances = (await api.multiCall({ + target, + calls: tokens.map(token => ({ params: [chainId, token] })), + abi: "function chainBalance(uint256 chainId, address l1Token) view returns (uint256 balance)", + permitFailure: true, + })).map(i => i ?? 0) + tokens[0] = gasAddress + api.add(tokens, balances) + return api.getBalances() +} diff --git a/projects/umoja-ybtc/index.js b/projects/umoja-ybtc/index.js new file mode 100644 index 000000000000..63c4d30eb978 --- /dev/null +++ b/projects/umoja-ybtc/index.js @@ -0,0 +1,11 @@ +const yBTC = "0xba3e932310cd1dbf5bd13079bd3d6bae4570886f" + +//BASIS TRADING, BTC COLLECTOR WALLET IS bc1qmus43e5gascs00t7jsf02k7gllhc5antew6n5y +module.exports = { + arbitrum: { + tvl: async (api) => { + const supply = await api.call({ abi: 'erc20:totalSupply', target: yBTC }) + api.add(yBTC, supply) + }, + } +} \ No newline at end of file diff --git a/projects/union-finance/index.js b/projects/union-finance/index.js index 86474d309a83..ce9c466c5bb0 100644 --- a/projects/union-finance/index.js +++ b/projects/union-finance/index.js @@ -33,7 +33,6 @@ const abi = { async function tvl(api) { const { userManager, underlying, uToken } = config[api.chain] - console.log({ userManager, underlying, uToken }) const bals = await api.batchCall([ { target: userManager, abi: abi.totalStaked }, { target: uToken, abi: abi.totalRedeemable }, diff --git a/projects/upshift/index.js b/projects/upshift/index.js index 982cb10fab32..8bec8eecc567 100644 --- a/projects/upshift/index.js +++ b/projects/upshift/index.js @@ -1,6 +1,6 @@ const { sumERC4626VaultsExport } = require('../helper/erc4626') const config = { - ethereum: ["0xB7858b66dFA38b9Cb74d00421316116A7851c273", "0x80E1048eDE66ec4c364b4F22C8768fc657FF6A42", "0x18a5a3D575F34e5eBa92ac99B0976dBe26f9F869", "0xEBac5e50003d4B17Be422ff9775043cD61002f7f", "0xd684AF965b1c17D628ee0d77cae94259c41260F4"], + ethereum: ["0xB7858b66dFA38b9Cb74d00421316116A7851c273", "0x80E1048eDE66ec4c364b4F22C8768fc657FF6A42", "0x18a5a3D575F34e5eBa92ac99B0976dBe26f9F869", "0xEBac5e50003d4B17Be422ff9775043cD61002f7f", "0xd684AF965b1c17D628ee0d77cae94259c41260F4", "0x5Fde59415625401278c4d41C6beFCe3790eb357f"], avax: ["0x3408b22d8895753C9A3e14e4222E981d4E9A599E"], base: ["0x4e2D90f0307A93b54ACA31dc606F93FE6b9132d2"] } diff --git a/projects/velo/index.js b/projects/velo/index.js index 30ae9353b302..38414a3ec48e 100644 --- a/projects/velo/index.js +++ b/projects/velo/index.js @@ -13,7 +13,9 @@ const AprFixLockedAddresses = [ "0xEfA6EAbcb5fa35827DDB236046B3DDB6d257022B", "0xc12A93bf62CfD50620BCfDDD903913903DF647B4", "0xc322a2110958c1365e88D88aef65Ebdf335b6E67", - "0x7dd617eacd7Fd35f69275f943Ff82218213796b7" + "0x7dd617eacd7Fd35f69275f943Ff82218213796b7", + "0xba5640094E940B32159daf38Ab8B86fE4D788a3C", + "0x4191754eCB1C460B82818beAA5fb6Ce7728bEbE8" ]; const AprFixLockWithChangeableRatioTvl = [ diff --git a/projects/verus-market/index.js b/projects/verus-market/index.js new file mode 100644 index 000000000000..6b08dad2ff9c --- /dev/null +++ b/projects/verus-market/index.js @@ -0,0 +1,41 @@ +const { get } = require('../helper/http') +const { transformDexBalances } = require('../helper/portedTokens') + + +// verus bridge address? https://etherscan.io/address/0x71518580f36feceffe0721f06ba4703218cd7f63 +async function tvl(api) { + const { data: { results } } = await get("https://marketapi.verus.services/getdefichaininfo") + + const blacklist = new Set(results.map(i => i.lp_address)) + const processed = new Set() + const data = [] + results.forEach(({ tokens, lp_address, }) => { + if (processed.has(lp_address)) return; + processed.add(lp_address) + + if (tokens.length < 2) return; + + const isXYPair = tokens.length === 2 + const noBlacklistedTokens = !tokens.some(i => blacklist.has(i.i_address)) + tokens = tokens.filter(i => !blacklist.has(i.i_address)) + + if (isXYPair & noBlacklistedTokens) { + data.push({ + token0: tokens[0].i_address, + token1: tokens[1].i_address, + token0Bal: tokens[0].reserves, + token1Bal: tokens[1].reserves, + }) + } else { + tokens.forEach(i => api.add(i.i_address, i.reserves)) + } + }) + + return transformDexBalances({ data, api, }) +} + +module.exports = { + verus: { tvl }, + timetravel: false, + misrepresentedTokens: true, +} \ No newline at end of file diff --git a/projects/visor/config.js b/projects/visor/config.js index cd8f232c71fe..3c67b92f00c2 100644 --- a/projects/visor/config.js +++ b/projects/visor/config.js @@ -160,6 +160,13 @@ const HYPE_REGISTRY = { apechain: [ ["0xC27DDd78FC49875Fe6F844B72bbf31DFBB099881", 476343], // Camelot ], + sonic: [ + ["0x683292172E2175bd08e3927a5e72FC301b161300", 1825082], // Equalizer + ["0x2705176750a81d6b1C64c5081d55aA1B54681917", 2760689], // Shadow + ], + bob: [ + ["0xC27DDd78FC49875Fe6F844B72bbf31DFBB099881", 11706713], // Uniswap + ], }; Object.keys(HYPE_REGISTRY).forEach(chain => { diff --git a/projects/wavesbridge/index.js b/projects/wavesbridge/index.js new file mode 100644 index 000000000000..38353161f68a --- /dev/null +++ b/projects/wavesbridge/index.js @@ -0,0 +1,46 @@ +const solana = require('../helper/solana'); +const waves = require("../helper/chain/waves"); +const { sumTokens2, } = require('../helper/unwrapLPs'); + +const data = { + bsc: { + contractAddress: "0x3AC7A6635d99F376c3c05442f7Eef62d349C3A55", + tokens: ["0xbA2aE424d960c26247Dd6c32edC70B295c744C43", "0x873CD8702d18Eb584CCdFFc10a5B88d62606cEEF",] + }, + ethereum: { + contractAddress: "0x3AC7A6635d99F376c3c05442f7Eef62d349C3A55", + tokens: ["0x1a920b0eaE5B49c51eBf042a61c3Fa58Dae04882", "0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE", "0x6982508145454Ce325dDbE47a25d4ec3d2311933", "0x4d224452801ACEd8B2F0aebE155379bb5D594381", "0x812Ba41e071C7b7fA4EBcFB62dF5F45f6fA853Ee",] + }, + unit0: { + contractAddress: "0x3AC7A6635d99F376c3c05442f7Eef62d349C3A55", + tokens: ["0xEb19000D90f17FFbd3AD9CDB8915D928F4980fD1", "0xb303d80db8415FD1d3C9FED68A52EEAc9a052671", "0x1B100DE3F13E3f8Bb2f66FE58c1949c32E71248B", "0x9CE808657ba90C65a2700b1cA5D943eC72834B52",] + }, +} + +async function tvl(api) { + const { contractAddress: owner, tokens } = data[api.chain]; + return sumTokens2({ api, owner, tokens }) +} + +async function solanaTvl() { + return solana.sumTokens2({ owner: '8eQ7p6cBh57pESr6oHT6PS9GtdLQdJVYebeCytf9mufe' }) +} + +async function wavesTvl(api) { + return waves.sumTokens({ owners: ['3P6Rk2XBo6MJm9seLfxvJ1VSGz54yWiYb9U'], api }) +} + +module.exports = { + methodology: "All tokens locked in WavesBridge smart contracts.", + timetravel: false, + waves: { + tvl: wavesTvl, + }, + solana: { + tvl: solanaTvl, + }, +} + +Object.keys(data).forEach(chain => { + module.exports[chain] = { tvl } +}) diff --git a/projects/yel/index.js b/projects/yel/index.js index 0087bc801a10..9b499ba97881 100644 --- a/projects/yel/index.js +++ b/projects/yel/index.js @@ -1,4 +1,4 @@ -const { sumUnknownTokens, getTokenPrices } = require('../helper/unknownTokens') +const { sumUnknownTokens } = require('../helper/unknownTokens') const { sumTokens2 } = require('../helper/unwrapLPs') const { normalizeAddress, @@ -41,6 +41,22 @@ const config = { [ADDRESSES.base.USDC, '0xE7349C94BDE0D13599Ed496342857bb231FeF02B', '0xabb4D7866e1059bD21581FC5FC6D49388D30a323'], ['0x1509706a6c66CA549ff0cB464de88231DDBe213B', '0x8a27CE3A836C8A9D962D86C099f229f3baF3EB4a', '0xFfeC8bAAa8cf32Bc7F85ea6a7C44Ad541309FD1F'] ], + }, + sonic: { + ownTokensAndOwners: [ + // Token Potion(lToken) slToken + ['0x949185D3BE66775Ea648F4a306740EA9eFF9C567', '0x6E074300A7Bf53af6e20f1f07dDDfeedAE5598A8', '0x64E869D31aE8A567059872f597A8529CBd88DC98'] + ], + tokensAndOwners: [ + // Token Potion(lToken) slToken + [ADDRESSES.sonic.wS, '0x7Ba0abb5f6bDCbf6409BB2803CdF801215424490', '0x24419689ac4A2D3Dafa07623129545f9b2156405'], + [ADDRESSES.sonic['USDC.e'], '0x995171196618b7FE0F0C6D606D79583DD1c8ff60', '0x5573aDB63D3eb7473C68Fdb2033CCbAc51a0Be0a'], + + ['0x79bbF4508B1391af3A0F4B30bb5FC4aa9ab0E07C', '0x92Dd17b19F74E696502Ee9eD478901F24c5d9a9A', '0x153ea9DF2B7977A8670a6EdF10b814d229D8d9Ef'], + ['0x0e0Ce4D450c705F8a0B6Dd9d5123e3df2787D16B', '0xecf1b589F47511D23b026eF53D16FEbB89Aa5f3A', '0x590159e00c05E4C91f562Fe862cc90d75af5d28b'], + ['0x9fDbC3f8Abc05Fa8f3Ad3C17D2F806c1230c4564', '0xdE31054Fb0ee7c6C39641db2e677011E276644aC', '0x017bdAd7eb46fC2721a5A148D43C0c25A11E740c'] + + ], } } @@ -65,7 +81,7 @@ async function tvl( api, coveredAssets){ ] }) - let potionSupply = Number( + let potionSupply = Number( await api.call({ abi : 'erc20:totalSupply', target : potion, @@ -81,7 +97,7 @@ async function tvl( api, coveredAssets){ api.add(originalToken, totalTokenBalance) } -} +} Object.keys(config).forEach(chain => { const { farms = [], lps = [], ownTokens = [], ownTokensAndOwners, tokensAndOwners, } = config[chain] @@ -119,4 +135,4 @@ Object.keys(config).forEach(chain => { } }, } -}) \ No newline at end of file +}) diff --git a/projects/yield-fi/index.js b/projects/yield-fi/index.js new file mode 100644 index 000000000000..c43a7ce74300 --- /dev/null +++ b/projects/yield-fi/index.js @@ -0,0 +1,14 @@ +const config = { + ethereum: "0x1CE7D9942ff78c328A4181b9F3826fEE6D845A97", + optimism: '0x895e15020C3f52ddD4D8e9514eB83C39F53B1579', + bob: '0x895e15020C3f52ddD4D8e9514eB83C39F53B1579' +} + +Object.keys(config).forEach(chain => { + module.exports[chain] = { + tvl: async (api) => { + const supply = await api.call({ abi: 'erc20:totalSupply', target: config[chain] }) + api.add(config[chain], supply) + } + } +}) \ No newline at end of file diff --git a/projects/yieldflow/index.js b/projects/yieldflow/index.js index 4f6f7dc694a3..ec358d77c248 100644 --- a/projects/yieldflow/index.js +++ b/projects/yieldflow/index.js @@ -86,6 +86,10 @@ const managers = [ '0x3Bd5B4422685F9321F0e5a8333067A4A049fC664', '0x1AC1d8911BBb2Fed8fD736e3649FC363001C8e07', '0x5ABf77610fabaD2DeF07A43eF6f66C1D2438dE7e', + + '0xc9aDB46B1Ea65EE8A7A7BD1aE0dfB82d7421751d', + '0x5309161C131f75F15c28BD1a5d3614001c8d9c10', + '0x2fd2c02534383ca0c973F92237Af2639021DaC23', ] async function tvl(api) { @@ -119,7 +123,8 @@ const config = { '0xFB04d48e4CE9C042188Ef933ff4cf58921Ab59B8', '0x36232356758c746A50AD5078815F09e39E34628d', '0xA0FDf5DC858ea552d51B4fa304e72cEB34e736fb', - '0xaC36A41da8f069C4874Dda60e073B5DcF889B56E' + '0xaC36A41da8f069C4874Dda60e073B5DcF889B56E', + '0x9D0731968AE480936c25ae841573842eEF6D65a4' ] } }