From 881d77f6eb8a84a8b491142d3d55b106e77f4295 Mon Sep 17 00:00:00 2001 From: Mad Wiki Date: Tue, 5 Nov 2024 15:05:12 +0800 Subject: [PATCH 1/2] add bulbaswap volume add fees --- aggregators/bulbaswap/index.ts | 112 +++++++++++++++++++++++++++++++++ helpers/chains.ts | 3 +- 2 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 aggregators/bulbaswap/index.ts diff --git a/aggregators/bulbaswap/index.ts b/aggregators/bulbaswap/index.ts new file mode 100644 index 0000000000..09a216f67e --- /dev/null +++ b/aggregators/bulbaswap/index.ts @@ -0,0 +1,112 @@ +import { ChainBlocks, FetchOptions, SimpleAdapter } from "../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { httpPost } from "../../utils/fetchURL"; + +const v2Fees = 0.0035; + +// V2 endpoints +const v2Endpoints = "https://api.bulbaswap.io/v1/subgraph-apis/v2"; + +// V3 endpoints +const v3Endpoints = "https://api.bulbaswap.io/v1/subgraph-apis/v3"; + +// GraphQL queries +const factoryQuery = `{ + uniswapFactory(id: "0x8D2A8b8F7d200d75Bf5F9E84e01F9272f90EFB8b") { + totalLiquidityUSD + totalVolumeUSD + txCount + } + uniswapDayDatas(first: 1, orderBy:date, orderDirection:desc) { + dailyVolumeUSD + date + } +}`; + +const v3FactoryQuery = `{ + factory(id: "0xFf8578C2949148A6F19b7958aE86CAAb2779CDDD") { + totalValueLockedUSD + totalVolumeUSD + totalFeesUSD + txCount + } + uniswapDayDatas(first: 1, orderBy: date, orderDirection: desc) { + volumeUSD + feesUSD + } +}`; + +// V2 fetch function +const fetchV2Data = async () => { + const response = await httpPost(v2Endpoints, { + query: factoryQuery, + }); + + const totalVolume = response.data.uniswapFactory?.totalVolumeUSD || "0"; + const dailyVolume = response.data.uniswapDayDatas[0]?.dailyVolumeUSD || "0"; + const timestamp = + response.data.uniswapDayDatas[0]?.date || Math.floor(Date.now() / 1000); + + const result = { + totalVolume, + dailyVolume, + dailyFees: (Number(dailyVolume) * v2Fees).toString(), + totalFees: (Number(totalVolume) * v2Fees).toString(), + timestamp, + }; + + return result; +}; + +// V3 fetch function +const fetchV3Data = async () => { + const response = await httpPost(v3Endpoints, { + query: v3FactoryQuery, + }); + + const factory = response.data.factory || {}; + const dayData = response.data.uniswapDayDatas[0] || {}; + + return { + dailyVolume: dayData.volumeUSD || "0", + totalVolume: factory.totalVolumeUSD || "0", + dailyFees: dayData.feesUSD || "0", + totalFees: factory.totalFeesUSD || "0", + }; +}; + +const fetch = async () => { + // Get V2 data + const v2Data = await fetchV2Data(); + + // Get V3 data + const v3Data = await fetchV3Data(); + + // Merge data + return { + timestamp: v2Data.timestamp, + totalVolume: ( + Number(v2Data.totalVolume || 0) + Number(v3Data.totalVolume || 0) + ).toString(), + dailyVolume: ( + Number(v2Data.dailyVolume || 0) + Number(v3Data.dailyVolume || 0) + ).toString(), + dailyFees: ( + Number(v2Data.dailyFees || 0) + Number(v3Data.dailyFees || 0) + ).toString(), + totalFees: ( + Number(v2Data.totalFees || 0) + Number(v3Data.totalFees || 0) + ).toString(), + }; +}; + +const adapter: SimpleAdapter = { + adapter: { + [CHAIN.MORPH]: { + fetch, + start: 1690848000, + }, + }, +}; + +export default adapter; diff --git a/helpers/chains.ts b/helpers/chains.ts index bd903fba57..9213cab236 100644 --- a/helpers/chains.ts +++ b/helpers/chains.ts @@ -144,7 +144,7 @@ export enum CHAIN { JBC = "jbc", ZKFAIR = "zkfair", ZETA = "zeta", - ASTAR = 'astar', + ASTAR = "astar", ASTAR_ZKEVM = "astrzk", FILECOIN = "filecoin", FRAXTAL = "fraxtal", @@ -178,6 +178,7 @@ export enum CHAIN { FUEL = "fuel", REAL = "real", CELESTIA = "celestia", + MORPH = "morph", } // DonĀ“t use From 1e755919788fd18ce7c79ed33d67d31a4efffcac Mon Sep 17 00:00:00 2001 From: Mad Wiki Date: Tue, 5 Nov 2024 15:27:01 +0800 Subject: [PATCH 2/2] update adapter.start --- aggregators/bulbaswap/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aggregators/bulbaswap/index.ts b/aggregators/bulbaswap/index.ts index 09a216f67e..cf16abc815 100644 --- a/aggregators/bulbaswap/index.ts +++ b/aggregators/bulbaswap/index.ts @@ -104,7 +104,7 @@ const adapter: SimpleAdapter = { adapter: { [CHAIN.MORPH]: { fetch, - start: 1690848000, + start: 1729591543, }, }, };