diff --git a/fees/abcdefx.ts b/fees/abcdefx.ts index 940c5f4b14..cd03462039 100644 --- a/fees/abcdefx.ts +++ b/fees/abcdefx.ts @@ -3,6 +3,7 @@ import { CHAIN } from "../helpers/chains"; import * as sdk from "@defillama/sdk"; import { getBlock } from "../helpers/getBlock"; import { getPrices } from "../utils/prices"; +import { Chain } from "@defillama/sdk/build/general"; interface ILog { data: string; @@ -14,6 +15,7 @@ interface IAmount { } const topic0 = '0x112c256902bf554b6ed882d2936687aaeb4225e8cd5b51303c90ca6cf43a8602'; +//const chains = ['fantom', 'kcc', 'echelon', 'multivac', 'kava'] const FACTORY_ADDRESS = '0x01f43d2a7f4554468f77e06757e707150e39130c'; type TABI = { @@ -73,14 +75,14 @@ const PAIR_TOKEN_ABI = (token: string): object => { }; -const fetch = async (timestamp: number): Promise => { +const fetch = async (timestamp: number, chain: Chain): Promise => { const fromTimestamp = timestamp - 60 * 60 * 24 const toTimestamp = timestamp try { const poolLength = (await sdk.api.abi.call({ target: FACTORY_ADDRESS, - chain: 'kava', + chain: chain, abi: ABIs.allPairsLength, })).output; @@ -90,7 +92,7 @@ const fetch = async (timestamp: number): Promise => { target: FACTORY_ADDRESS, params: i, })), - chain: 'kava' + chain: chain }); const lpTokens = poolsRes.output @@ -103,33 +105,33 @@ const fetch = async (timestamp: number): Promise => { calls: lpTokens.map((address: string) => ({ target: address, })), - chain: 'kava' + chain: chain }) ) ); const tokens0 = underlyingToken0.output.map((res: any) => res.output); const tokens1 = underlyingToken1.output.map((res: any) => res.output); - const fromBlock = (await getBlock(fromTimestamp, 'kava', {})); - const toBlock = (await getBlock(toTimestamp, 'kava', {})); + const fromBlock = (await getBlock(fromTimestamp, chain, {})); + const toBlock = (await getBlock(toTimestamp, chain, {})); const logs: ILog[][] = (await Promise.all(lpTokens.map((address: string) => sdk.api.util.getLogs({ target: address, topic: '', toBlock: toBlock, fromBlock: fromBlock, keys: [], - chain: 'kava', + chain: chain, topics: [topic0] })))) .map((p: any) => p) .map((a: any) => a.output); - const rawCoins = [...tokens0, ...tokens1].map((e: string) => `kava:${e}`); + const rawCoins = [...tokens0, ...tokens1].map((e: string) => chain+`:${e}`); const coins = [...new Set(rawCoins)] const prices = await getPrices(coins, timestamp); const fees: number[] = lpTokens.map((_: string, index: number) => { - const token0Decimals = (prices[`kava:${tokens0[index]}`]?.decimals || 0) - const token1Decimals = (prices[`kava:${tokens1[index]}`]?.decimals || 0) + const token0Decimals = (prices[chain+`:${tokens0[index]}`]?.decimals || 0) + const token1Decimals = (prices[chain+`:${tokens1[index]}`]?.decimals || 0) const log: IAmount[] = logs[index] .map((e: ILog) => { return { ...e, data: e.data.replace('0x', '') } }) .map((p: ILog) => { @@ -140,8 +142,8 @@ const fetch = async (timestamp: number): Promise => { amount1 } as IAmount }) as IAmount[]; - const token0Price = (prices[`kava:${tokens0[index]}`]?.price || 0); - const token1Price = (prices[`kava:${tokens1[index]}`]?.price || 0); + const token0Price = (prices[chain+`:${tokens0[index]}`]?.price || 0); + const token1Price = (prices[chain+`:${tokens1[index]}`]?.price || 0); const feesAmount0 = log .reduce((a: number, b: IAmount) => Number(b.amount0) + a, 0) * token0Price; @@ -167,10 +169,14 @@ const fetch = async (timestamp: number): Promise => { const adapter: SimpleAdapter = { adapter: { - [CHAIN.KAVA]: { - fetch, - start: async () => 1675000000, + [CHAIN.FANTOM]: { + fetch: fetch(CHAIN.FANTOM), + start: async () => 1677000000, }, + [CHAIN.KAVA]: { + fetch: fetch(CHAIN.ARBITRUM), + start: async () => 1677000000, + } } };