From 498e83a1a6d812a700aabce9ccfa9554955c42a9 Mon Sep 17 00:00:00 2001 From: Dre Cronye Date: Fri, 18 Jul 2025 12:43:11 +0300 Subject: [PATCH 1/2] Refactor APY calculations to APR and add conversion function Updated the calculation functions to use APR instead of APY for better accuracy. Introduced a new function to convert APR to APY. This change enhances the clarity and precision of the financial metrics in the rezerve-money adaptor. --- src/adaptors/rezerve-money/index.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/adaptors/rezerve-money/index.js b/src/adaptors/rezerve-money/index.js index e84780eb7f..2c2155d875 100644 --- a/src/adaptors/rezerve-money/index.js +++ b/src/adaptors/rezerve-money/index.js @@ -86,10 +86,13 @@ async function calcErc4626PoolApy(vault, prices) { const sharePriceNow = await calcSharePrice(vault, prices); const sharePriceYesterday = await calcSharePrice(vault, prices, 1); - const apyBase = calcApy(sharePriceNow, sharePriceYesterday, 1); + const aprBase = calcApr(sharePriceNow, sharePriceYesterday, 1); const sharePriceWeekBefore = await calcSharePrice(vault, prices, 7); - const apyBase7d = calcApy(sharePriceNow, sharePriceWeekBefore, 7); + const aprBase7d = calcApr(sharePriceNow, sharePriceWeekBefore, 7); + + const apyBase = convertAprToApy(aprBase); + const apyBase7d = convertAprToApy(aprBase7d); return { pool: `${vault}-${chain}`, @@ -137,7 +140,7 @@ const totalAssets = async (vault, block = 'latest') => { return new BigNumber(await callAbi(vault, abi.totalAssets, null, block)); }; -function calcApy(sharePriceNow, sharePriceBefore, daysBetween) { +function calcApr(sharePriceNow, sharePriceBefore, daysBetween) { return sharePriceBefore.isZero() ? 0 : sharePriceNow @@ -148,6 +151,12 @@ function calcApy(sharePriceNow, sharePriceBefore, daysBetween) { .toNumber(); } +function convertAprToApy(apr) { + const aprNormalized = apr / 100; + const n = 365 * 3; + return (Math.pow(1 + aprNormalized / n, n) - 1) * 100; +} + async function getShares(vault, block = 'latest') { return new BigNumber(await totalSupply(vault, block)); } From bc1314eacfeb1c247d32f3a8d4da8ebcedf855dc Mon Sep 17 00:00:00 2001 From: Dre Cronye Date: Fri, 25 Jul 2025 04:00:39 +0300 Subject: [PATCH 2/2] Update URL for rezerve-money liquid staking to include UTM parameters --- src/adaptors/rezerve-money/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/adaptors/rezerve-money/index.js b/src/adaptors/rezerve-money/index.js index 2c2155d875..28d5fd02b6 100644 --- a/src/adaptors/rezerve-money/index.js +++ b/src/adaptors/rezerve-money/index.js @@ -106,7 +106,7 @@ async function calcErc4626PoolApy(vault, prices) { apyBase7d, apyReward: 0, poolMeta: vaultMeta[vault].name, - url: 'https://rezerve.money/stake?tab=vaults', + url: 'https://rezerve.money/liquid-staking?utm_source=defillama', }; }