Skip to content

Commit

Permalink
Merge pull request #1646 from bryansniyve/master
Browse files Browse the repository at this point in the history
feat: fees for multi chain and add bsc v1 totalVolume
  • Loading branch information
dtmkeng committed Jul 4, 2024
2 parents 58491df + 6da0c41 commit a41163f
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 24 deletions.
48 changes: 33 additions & 15 deletions dexs/apollox/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,27 @@ type V1TickerItem = {
count: number;
};

type TotalVolumeV1AndV2ForBscItem = {
"openInterestTotal": string
"totalUser": string
"v1TotalVolume": string
"v2TotalVolume": string
}


type TotalVolumeItem = {
"alpFeeVOFor24Hour": {
"fee": number
"revenue": number
"alpFeeVOFor24Hour": {
"fee": number
"revenue": number
},
"allAlpFeeVO": {
"fee": number
"revenue": number
},
"cumVol": number
}

},
"cumVol": number
}

const TotalVolumeV1AndV2ForBscAPI = "https://fapi.apollox.finance/fapi/v1/openInterestAndTrader"
const TotalVolumeAPI = "https://www.apollox.finance/bapi/futures/v1/public/future/apx/fee/all"

const v2VolumeAPI =
Expand All @@ -70,26 +79,35 @@ const fetchV1Volume = async () => {
return dailyVolume
};

const fetchTotalVolume = async (chain: Chain) => {
const fetchTotalVolumeV1AndV2ForBSC = async () => {
const data = (
await httpGet(TotalVolumeV1AndV2ForBscAPI)
) as TotalVolumeV1AndV2ForBscItem
return { v1: Number(data.v1TotalVolume), v2: Number(data.v2TotalVolume) }
};

const fetchTotalV2Volume = async (chain: Chain) => {
const { data } = (
await httpGet(TotalVolumeAPI, { params: { chain, } })
) as { data: TotalVolumeItem }

return data.cumVol
return Number(data.cumVol)
};

const adapter: SimpleAdapter = {
adapter: {
[CHAIN.BSC]: {
runAtCurrTime: true,
fetch: async (timestamp) => {
const [v1, v2, totalVolume] = await Promise.all([
const [v1, v2, totalV2Volume, { v1 : totalV1Volume }] = await Promise.all([
fetchV2Volume(CHAIN.BSC),
fetchV1Volume(),
fetchTotalVolume(CHAIN.BSC),
fetchTotalV2Volume(CHAIN.BSC),
fetchTotalVolumeV1AndV2ForBSC()
]);
return {
dailyVolume: v1 + v2,
totalVolume,
totalVolume: totalV1Volume + totalV2Volume,
timestamp,
};
},
Expand All @@ -100,7 +118,7 @@ const adapter: SimpleAdapter = {
fetch: async (timestamp) => {
const [v2, totalVolume] = await Promise.all([
fetchV2Volume(CHAIN.ARBITRUM),
fetchTotalVolume(CHAIN.ARBITRUM),
fetchTotalV2Volume(CHAIN.ARBITRUM),
]);
return {
timestamp,
Expand All @@ -115,7 +133,7 @@ const adapter: SimpleAdapter = {
fetch: async (timestamp) => {
const [v2, totalVolume] = await Promise.all([
fetchV2Volume('opbnb'),
fetchTotalVolume('opbnb'),
fetchTotalV2Volume('opbnb'),
]);
return {
timestamp,
Expand All @@ -130,7 +148,7 @@ const adapter: SimpleAdapter = {
fetch: async (timestamp) => {
const [v2, totalVolume] = await Promise.all([
fetchV2Volume(CHAIN.BASE),
fetchTotalVolume(CHAIN.BASE),
fetchTotalV2Volume(CHAIN.BASE),
]);
return {
timestamp,
Expand Down
31 changes: 22 additions & 9 deletions fees/apollox/index.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
import { Adapter, ChainEndpoints, FetchOptions } from "../../adapters/types";
import { Adapter } from "../../adapters/types";
import { CHAIN } from "../../helpers/chains";
import { Chain } from "@defillama/sdk/build/general";
import { httpGet } from "../../utils/fetchURL";

const endpoints = {
[CHAIN.BSC]: "https://www.apollox.finance/bapi/futures/v1/public/future/apx/fee/all",
}
const FeesAndRevenueURL = "https://www.apollox.finance/bapi/futures/v1/public/future/apx/fee/all"

const request = (urls: ChainEndpoints) => {
const request = () => {
return (chain: Chain) => {
return async () => {
const { data } = await httpGet(urls[chain]);
const { data } = await httpGet(FeesAndRevenueURL, { params: { chain } })
const { alpFeeVOFor24Hour, allAlpFeeVO } = data
return {
dailyFees: alpFeeVOFor24Hour.fee || 0,
Expand All @@ -26,10 +24,25 @@ const adapter: Adapter = {
adapter: {
[CHAIN.BSC]: {
runAtCurrTime: true,
fetch: request(endpoints)(CHAIN.BSC),
fetch: request()(CHAIN.BSC),
start: 1689609600,
},
[CHAIN.ARBITRUM]: {
runAtCurrTime: true,
fetch: request()(CHAIN.ARBITRUM),
start: 1689609600,
},
[CHAIN.OP_BNB]: {
runAtCurrTime: true,
fetch: request()('opbnb'),
start: 1689609600,
},
[CHAIN.BASE]: {
runAtCurrTime: true,
fetch: request()(CHAIN.BASE),
start: 1689609600,
},
},
}
}
}

export default adapter;

0 comments on commit a41163f

Please sign in to comment.