Skip to content

Commit

Permalink
double2win (DefiLlama#11344)
Browse files Browse the repository at this point in the history
  • Loading branch information
g1nt0ki authored Aug 21, 2024
1 parent f9bf678 commit 2c1dbe4
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 0 deletions.
24 changes: 24 additions & 0 deletions projects/double2win/config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
module.exports = {
arbitrum: {
uniswapV2Vault: {
doubleContract: '0xBf212dEE0aea6531dEb0B02be6E70b527dDF8246',
type: 'v2-vault'
},
uniswapV2Migration: {
doubleContract: '0x1c6E7CE03ae7a9A252BcE0C9F871654dBB0C7ca5',
type: 'v2-vault'
},
uniswapV3Vault: {
doubleContract: '0x07116C5ED5cBb49464f64926Ba152B8985fe3AFf',
type: 'v3-vault'
},
uniswapV3Migration: {
doubleContract: '0x99F980fa0b1939A0A1033092EF2a668df8D8b70D',
type: 'v3-vault'
},
assetVault: {
doubleContract: '0x7C09A9c30736F17043Fe6D0C0A3D03a7Cf6e78FD',
type: 'asset-vault'
},
}
};
63 changes: 63 additions & 0 deletions projects/double2win/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
const config = require("./config")
const { sumTokens2 } = require('../helper/unwrapLPs')
const { cachedGraphQuery } = require('../helper/cache')

const subgraphs = {
"arbitrum": "https://api.studio.thegraph.com/query/16975/double-arbitrum/version/latest",
}

async function getTokens(chain) {
const graphQuery = `
{
assetTokens(where: {amount_gt: "0"}) {
tokenAddress
}
migrations(where: {pair_starts_with: "0x", lpAmount_gt: "0"}) {
pair
ammType
}
liquidities(where: {pair_starts_with: "0x", lpAmount_gt: "0"}) {
pair
ammType
}
}
`

const { assetTokens, migrations, liquidities } = await cachedGraphQuery(`double2win/${chain}`, subgraphs[chain], graphQuery)

return { assets: assetTokens.map(i => i.tokenAddress), v2Tokens: migrations.concat(liquidities).filter(i => i.ammType === 'UniswapV2').map(i => i.pair) }
}

module.exports = {
doublecounted: true,
}

Object.keys(config).forEach((chain) => {
const configs = Object.values(config[chain])

module.exports[chain] = {
tvl: async (api) => {
const v2Vaults = []
const v3Vaults = []
const assetVaults = []
configs.forEach((config) => {
switch (config.type) {
case 'v2-vault':
v2Vaults.push(config.doubleContract)
break
case 'v3-vault':
v3Vaults.push(config.doubleContract)
break
case 'asset-vault':
assetVaults.push(config.doubleContract)
break
}
})
const { assets, v2Tokens } = await getTokens(chain)
await sumTokens2({ resolveUniV3: true, api, owners: v3Vaults })
await sumTokens2({ owners: assetVaults, tokens: assets, api })
return sumTokens2({ owners: v2Vaults, tokens: v2Tokens, resolveLP: true, api })
}
}

})

0 comments on commit 2c1dbe4

Please sign in to comment.