From 76de5f43783a9a0d34832ec2c65675159da64978 Mon Sep 17 00:00:00 2001 From: hinus <64959125+cxheng315@users.noreply.github.com> Date: Thu, 30 Oct 2025 19:50:48 +0800 Subject: [PATCH] Refactor YieldNest fee adapter and update chains Simplifies the fee calculation logic by aggregating all tokens received by the fee collector and updates the supported chains to include Ethereum, Base, and BSC. Also updates the adapter to version 2 and revises the methodology for fee and revenue reporting. --- fees/yieldnest.ts | 65 +++++++++++++++-------------------------------- 1 file changed, 20 insertions(+), 45 deletions(-) diff --git a/fees/yieldnest.ts b/fees/yieldnest.ts index 77f48dfa2b..aa799745db 100644 --- a/fees/yieldnest.ts +++ b/fees/yieldnest.ts @@ -1,55 +1,30 @@ -import { CHAIN } from "../helpers/chains"; -import type { - FetchOptions, - FetchResult, - SimpleAdapter, -} from "../adapters/types"; +import { CHAIN } from '../helpers/chains'; +import type { FetchOptions, FetchResult, SimpleAdapter } from '../adapters/types'; +import { addTokensReceived, getETHReceived } from '../helpers/token'; -const contracts: { [chain: string]: string } = { - [CHAIN.ETHEREUM]: "0x40d5ff3e218f54f4982661a0464a298cf6652351", -}; -const fetch = async ( - timestamp: number, - _1: any, - options: FetchOptions -): Promise => { +const feeCollectors = '0xC92Dd1837EBcb0365eB0a8795f9c8E474f8B6183'; + +const fetch = async (options: FetchOptions): Promise => { const dailyFees = options.createBalances(); - const dailyRevenue = options.createBalances(); - const dailySupplySideRevenue = options.createBalances(); - const logs = await options.getLogs({ - target: contracts[options.chain], - eventAbi: - "event RewardsProcessed(uint256 totalRewards,uint256 elRewards,uint256 clRewards,uint256 netRewards,uint256 fees)", - }); - logs.forEach((log) => { - dailyFees.addGasToken(log.fees + log.netRewards); - dailyRevenue.addGasToken(log.fees); - dailySupplySideRevenue.addGasToken(log.netRewards); - }); + await addTokensReceived({ options, target: feeCollectors, balances: dailyFees }); + await getETHReceived({ options, target: feeCollectors, balances: dailyFees }); + + return { dailyFees, dailyRevenue: dailyFees, dailyProtocolRevenue: dailyFees }; +}; - return { - timestamp, - dailyFees, - dailyRevenue, - dailySupplySideRevenue, - dailyProtocolRevenue: dailyRevenue, - }; +const methodology = { + Fees: 'Amount of fees collected by YieldNest.', + Revenue: 'Amount of fees collected by YieldNest.', + ProtocolRevenue: 'Amount of fees collected by YieldNest.', }; const adapter: SimpleAdapter = { - adapter: { - [CHAIN.ETHEREUM]: { - fetch: fetch, - start: "2020-12-19", - }, - }, - methodology: { - Fees: 'All yield generated from staking assets.', - Revenue: 'Amount of fees collected by YieldNest.', - ProtocolRevenue: 'Amount of fees collected by YieldNest.', - SupplySideRevenue: 'Amount of fees distributed to asset stakers.', - } + version: 2, + fetch, + chains: [CHAIN.ETHEREUM, CHAIN.BASE, CHAIN.BSC], + start: '2025-05-02', + methodology, }; export default adapter;