mirror of
https://github.com/alexgo-io/DefiLlama-Adapters.git
synced 2026-01-12 16:53:02 +08:00
40 lines
1.3 KiB
JavaScript
40 lines
1.3 KiB
JavaScript
const sdk = require("@defillama/sdk");
|
|
const { cachedGraphQuery } = require('../helper/cache')
|
|
|
|
const graphs = {
|
|
ethereum: sdk.graph.modifyEndpoint('2ZoJCp4S7YP7gbYN2ndsYNjPeZBV1PMti7BBoPRRscNq'),
|
|
optimism: sdk.graph.modifyEndpoint('3QfEXbPfP23o3AUzcmjTfRtUUd4bfrFj3cJ4jET57CTX'),
|
|
polygon: sdk.graph.modifyEndpoint('7camBLZckE5TLKha372tqawpDs8Lkez6yYiri7PykRak'),
|
|
}
|
|
|
|
function tvlPaged(chain) {
|
|
return async (api) => {
|
|
const size = 1000
|
|
let graphQueryPaged = `
|
|
query brokerbotQuery($lastId: String, $block: Int) {
|
|
brokerbots(block: { number: $block } first:${size} where: {id_gt: $lastId totalValueLockedUSD_gt: 100}) {
|
|
id
|
|
token { id }
|
|
base { id }
|
|
}
|
|
}
|
|
`
|
|
const data = await cachedGraphQuery('aktionariat-brokerbot/' + chain, graphs[chain], graphQueryPaged, { useBlock: true, api, fetchById: true, })
|
|
const ownerTokens = data.map(i => [[i.token.id, i.base.id], i.id])
|
|
return api.sumTokens({ ownerTokens })
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
methodology: `Counts the tokens locked on brokerbots, pulling the brokerbot addresses from the 'aktionariat/brokerbot' subgraph`,
|
|
timetravel: false,
|
|
hallmarks: []
|
|
}
|
|
const chains = ['ethereum', 'optimism', 'polygon']
|
|
|
|
chains.forEach(chain => {
|
|
module.exports[chain] = {
|
|
tvl: tvlPaged(chain)
|
|
}
|
|
})
|