diff --git a/dexs/velodrome-v2/index.ts b/dexs/velodrome-v2/index.ts new file mode 100644 index 0000000000..313645844a --- /dev/null +++ b/dexs/velodrome-v2/index.ts @@ -0,0 +1,27 @@ +import { SimpleAdapter } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { Chain } from "@defillama/sdk/build/general"; +import { fetchV2 } from "./v2"; + + +const fetch = (_: Chain) => { + return async (timestamp: number) => { + const [v2] = await Promise.all([fetchV2(timestamp)]) + const dailyVolume = Number(v2.dailyVolume); + return { + dailyVolume: `${dailyVolume}`, + timestamp + } + } +} + +const adapter: SimpleAdapter = { + adapter: { + [CHAIN.OPTIMISM]: { + fetch: fetch(CHAIN.OPTIMISM), + start: async () => 1677110400 + }, + }, +}; + +export default adapter; diff --git a/dexs/velodrome/v2.ts b/dexs/velodrome-v2/v2.ts similarity index 100% rename from dexs/velodrome/v2.ts rename to dexs/velodrome-v2/v2.ts diff --git a/dexs/velodrome/index.ts b/dexs/velodrome/index.ts index eff4b2aea5..f761dc1e71 100644 --- a/dexs/velodrome/index.ts +++ b/dexs/velodrome/index.ts @@ -1,9 +1,7 @@ import { SimpleAdapter } from "../../adapters/types"; -import { getStartTimestamp } from "../../helpers/getStartTimestamp"; import { DEFAULT_DAILY_VOLUME_FIELD, DEFAULT_TOTAL_VOLUME_FIELD, getChainVolume } from "../../helpers/getUniSubgraphVolume"; import { CHAIN } from "../../helpers/chains"; import { Chain } from "@defillama/sdk/build/general"; -import { fetchV2 } from "./v2"; const endpoints = { [CHAIN.OPTIMISM]: "https://api.thegraph.com/subgraphs/name/dmihal/velodrome", @@ -23,8 +21,8 @@ const graphs = getChainVolume({ const fetch = (chain: Chain) => { return async (timestamp: number) => { - const [v1, v2] = await Promise.all([graphs(chain)(timestamp, {}), fetchV2(timestamp)]) - const dailyVolume = Number(v1.dailyVolume) + Number(v2.dailyVolume); + const [v1] = await Promise.all([graphs(chain)(timestamp, {})]) + const dailyVolume = Number(v1.dailyVolume); return { dailyVolume: `${dailyVolume}`, timestamp diff --git a/fees/velodrome/bribes.ts b/fees/velodrome-v2/bribes.ts similarity index 100% rename from fees/velodrome/bribes.ts rename to fees/velodrome-v2/bribes.ts diff --git a/fees/velodrome-v2/index.ts b/fees/velodrome-v2/index.ts new file mode 100644 index 0000000000..719b845843 --- /dev/null +++ b/fees/velodrome-v2/index.ts @@ -0,0 +1,34 @@ +import { Adapter, Fetch, FetchResultFees } from '../../adapters/types'; +import { CHAIN, OPTIMISM } from '../../helpers/chains'; +import { fetchV2 } from './velodrome-v2'; +import { fees_bribes } from './bribes'; +import { getBlock } from '../../helpers/getBlock'; + + +const getFees = async (timestamp: number): Promise => { + const fromTimestamp = timestamp - 60 * 60 * 24 + const toTimestamp = timestamp + const fromBlock = (await getBlock(fromTimestamp, CHAIN.OPTIMISM, {})); + const toBlock = (await getBlock(toTimestamp, CHAIN.OPTIMISM, {})); + const [feeV2, bribes] = await Promise.all([fetchV2(fromBlock, toBlock,timestamp), fees_bribes(fromBlock, toBlock, timestamp)]); + const dailyFees = Number(feeV2.dailyFees); + const dailyRevenue = Number(feeV2.dailyRevenue) + bribes; + const dailyHoldersRevenue = Number(feeV2.dailyHoldersRevenue) + bribes; + return { + dailyFees: `${dailyFees}`, + dailyRevenue: `${dailyRevenue}`, + dailyHoldersRevenue: `${dailyHoldersRevenue}`, + dailyBribesRevenue: `${bribes}`, + timestamp + } +} + +const adapter: Adapter = { + adapter: { + [OPTIMISM]: { + fetch: getFees, + start: async () => 1677110400, // TODO: Add accurate timestamp + }, + }, +}; +export default adapter; diff --git a/fees/velodrome/velodrome-v2.ts b/fees/velodrome-v2/velodrome-v2.ts similarity index 100% rename from fees/velodrome/velodrome-v2.ts rename to fees/velodrome-v2/velodrome-v2.ts diff --git a/fees/velodrome/index.ts b/fees/velodrome/index.ts index 7dd7ccde6a..9c9ad0efb4 100644 --- a/fees/velodrome/index.ts +++ b/fees/velodrome/index.ts @@ -1,25 +1,17 @@ -import { Adapter, Fetch, FetchResultFees } from '../../adapters/types'; -import { CHAIN, OPTIMISM } from '../../helpers/chains'; +import { Adapter, FetchResultFees } from '../../adapters/types'; +import { OPTIMISM } from '../../helpers/chains'; import { fetchV1 } from './velodrome'; -import { fetchV2 } from './velodrome-v2'; -import { fees_bribes } from './bribes'; -import { getBlock } from '../../helpers/getBlock'; const getFees = async (timestamp: number): Promise => { - const fromTimestamp = timestamp - 60 * 60 * 24 - const toTimestamp = timestamp - const fromBlock = (await getBlock(fromTimestamp, CHAIN.OPTIMISM, {})); - const toBlock = (await getBlock(toTimestamp, CHAIN.OPTIMISM, {})); - const [feeV1, feeV2, bribes] = await Promise.all([fetchV1()(timestamp), fetchV2(fromBlock, toBlock,timestamp), fees_bribes(fromBlock, toBlock, timestamp)]); - const dailyFees = Number(feeV1.dailyFees) + Number(feeV2.dailyFees); - const dailyRevenue = Number(feeV1.dailyRevenue) + Number(feeV2.dailyRevenue) + bribes; - const dailyHoldersRevenue = Number(feeV1.dailyHoldersRevenue) + Number(feeV2.dailyHoldersRevenue) + bribes; + const [feeV1] = await Promise.all([fetchV1()(timestamp)]); + const dailyFees = Number(feeV1.dailyFees); + const dailyRevenue = Number(feeV1.dailyRevenue); + const dailyHoldersRevenue = Number(feeV1.dailyHoldersRevenue); return { dailyFees: `${dailyFees}`, dailyRevenue: `${dailyRevenue}`, dailyHoldersRevenue: `${dailyHoldersRevenue}`, - dailyBribesRevenue: `${bribes}`, timestamp } }