Skip to content

Commit befb8cd

Browse files
committed
update project slug and aprs, add reward aprs
1 parent 116b51b commit befb8cd

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

src/adaptors/mystic-finance/index.js

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const sdk = require('@defillama/sdk');
2-
const { formatChain, getERC4626Info, getPrices } = require('../utils');
2+
const { formatChain, getERC4626Info, getPrices, getData } = require('../utils');
33

4-
const PROJECT_NAME = 'mystic-finance';
4+
const PROJECT_NAME = 'mystic-finance-lending';
55
const CHAIN = 'flare';
66

77
const VAULTS = [
@@ -38,14 +38,27 @@ const apy = async (timestamp) => {
3838
);
3939
const { pricesByAddress } = await getPrices(priceKeys, CHAIN);
4040

41+
// Fetch campaignApr
42+
let vaultsApiData = [];
43+
try {
44+
const apiData = await getData('https://api.mysticfinance.xyz/morphoCache/lite?chainId=14');
45+
if (apiData && apiData.vaults) {
46+
vaultsApiData = apiData.vaults;
47+
}
48+
} catch{}
49+
4150
return VAULTS.map((vault, i) => {
4251
const { tvl, apyBase } = vaultInfos[i];
4352
const tokenAmount = tvl / 10 ** vault.decimals;
4453
const price =
4554
pricesByAddress[vault.underlyingToken.toLowerCase()] || 0;
4655
const tvlUsd = tokenAmount * price;
4756

48-
return {
57+
const apiVault = vaultsApiData.find(v => v.vaultAddress.toLowerCase() === vault.address.toLowerCase());
58+
const apyReward = apiVault && apiVault.campaignApr ? apiVault.campaignApr : null;
59+
const vaultApr = apiVault && apiVault.vaultApr ? apiVault.vaultApr : null;
60+
61+
const poolData = {
4962
pool: `${vault.address}-${CHAIN}`,
5063
chain: formatChain(CHAIN),
5164
project: PROJECT_NAME,
@@ -55,6 +68,16 @@ const apy = async (timestamp) => {
5568
underlyingTokens: [vault.underlyingToken],
5669
url: `https://app.mysticfinance.xyz/vault?vaultAddress=${vault.address}&chainId=14`,
5770
};
71+
72+
if (apyReward !== null) {
73+
poolData.apyReward = apyReward;
74+
}
75+
76+
if (vaultApr !== null) {
77+
poolData.apyBase = vaultApr;
78+
}
79+
80+
return poolData;
5881
});
5982
};
6083

0 commit comments

Comments
 (0)