mirror of
https://github.com/alexgo-io/DefiLlama-Adapters.git
synced 2026-01-12 16:53:02 +08:00
51 lines
1.6 KiB
JavaScript
51 lines
1.6 KiB
JavaScript
const { getLogs } = require("../helper/cache/getLogs");
|
|
const { sumTokens2 } = require("../helper/unwrapLPs");
|
|
const config = require("./config");
|
|
|
|
module.exports = {
|
|
methodology:
|
|
"Counts the number of base and quote tokens in every marginly pool",
|
|
};
|
|
|
|
Object.keys(config).forEach((chain) => {
|
|
const { factories } = config[chain];
|
|
module.exports[chain] = {
|
|
tvl: async (api) => {
|
|
const ownerTokens = [];
|
|
for (const { factory, fromBlock, version } of factories) {
|
|
let logs;
|
|
if (version === "v1") {
|
|
// v1.0 contract
|
|
logs = await getLogs({
|
|
api,
|
|
target: factory,
|
|
topic: "PoolCreated(address,address)",
|
|
eventAbi:
|
|
"event PoolCreated(address indexed quoteToken, address indexed baseToken, address uniswapPool, bool quoteTokenIsToken0, address pool)",
|
|
onlyArgs: true,
|
|
fromBlock,
|
|
});
|
|
} else {
|
|
// v1.5 contract
|
|
logs = await getLogs({
|
|
api,
|
|
target: factory,
|
|
topic: "PoolCreated(address,address,address)",
|
|
eventAbi:
|
|
"event PoolCreated(address indexed quoteToken, address indexed baseToken, address indexed priceOracle, uint32 defaultSwapCallData, address pool)",
|
|
onlyArgs: true,
|
|
fromBlock,
|
|
});
|
|
}
|
|
|
|
logs.forEach((i) =>
|
|
ownerTokens.push([[i.quoteToken, i.baseToken], i.pool])
|
|
);
|
|
}
|
|
return sumTokens2({ api, ownerTokens });
|
|
},
|
|
};
|
|
|
|
module.exports[chain].tvl = () => ({})
|
|
});
|