@stake-dao/reader 0.5.10 → 0.5.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/strategies/curated/ipor/fetch.js +20 -2
- package/dist/esm/strategies/curated/ipor/fetch.js.map +1 -1
- package/dist/esm/strategies/curated/morpho/fetch.js +95 -0
- package/dist/esm/strategies/curated/morpho/fetch.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/strategies/curated/ipor/fetch.d.ts +17 -1
- package/dist/types/strategies/curated/ipor/fetch.d.ts.map +1 -1
- package/dist/types/strategies/curated/morpho/fetch.d.ts +20 -0
- package/dist/types/strategies/curated/morpho/fetch.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/index.ts +3 -0
- package/src/strategies/curated/ipor/fetch.ts +21 -2
- package/src/strategies/curated/morpho/fetch.ts +108 -0
package/dist/esm/index.js
CHANGED
|
@@ -62,6 +62,8 @@ export { fetchStakeDao } from './strategies/stakeDao/fetch.js';
|
|
|
62
62
|
export { fetchIporVaults, VAULTS as IPOR_VAULTS, getIporApy } from './strategies/curated/ipor/fetch.js';
|
|
63
63
|
// LAGOON
|
|
64
64
|
export { fetchLagoonVaults, VAULTS as LAGOON_VAULTS } from './strategies/curated/lagoon/fetch.js';
|
|
65
|
+
// MORPHO
|
|
66
|
+
export { fetchMorphoVaults, VAULTS as MORPHO_VAULTS } from './strategies/curated/morpho/fetch.js';
|
|
65
67
|
/// --- END CURATED STATEGIES
|
|
66
68
|
///////////////////////////////////////////////////////////////
|
|
67
69
|
////////////////////////////////////////////////////////////////
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,30 @@ import { formatUnits, parseEther } from 'viem';
|
|
|
3
3
|
import { lc, multicall } from '../../../utils.js';
|
|
4
4
|
import { abi } from './abi.js';
|
|
5
5
|
export const VAULTS = {
|
|
6
|
+
1: [
|
|
7
|
+
{
|
|
8
|
+
key: '1-0xbfa9d6ec0e04b6691fcae5f8b48838c3918ec117',
|
|
9
|
+
name: 'crvUSD',
|
|
10
|
+
description: 'The LlamaRisk crvUSD Optimizer vault allocates crvUSD deposits into selected Stake DAO Ethereum vaults, which optimizes returns for Llamalend markets and auto-compound rewards to boost yields. It also allocates directly to Llamalend markets and scrvUSD. LlamaRisk curates the strategy and optimizes allocations to ensure users have a safe and high-yield entry point into Ethereum Mainnet’s crvUSD ecosystem.',
|
|
11
|
+
infra: 'ipor',
|
|
12
|
+
curator: 'llamarisk',
|
|
13
|
+
chainId: 1,
|
|
14
|
+
vault: {
|
|
15
|
+
address: '0xbfA9d6EC0E04B6691fCAE5F8b48838C3918eC117',
|
|
16
|
+
accessManager: '0x0Bcf0187003f2154840d055144654eD18033a3c6',
|
|
17
|
+
withdrawManager: '0xcE6502004DE605dd1bb48aa61c593a19aA99f328',
|
|
18
|
+
decimals: 20,
|
|
19
|
+
},
|
|
20
|
+
lpToken: tokenWithId('crvusd', 1),
|
|
21
|
+
coins: [tokenWithId('crvusd', 1)],
|
|
22
|
+
underlyingCoins: [tokenWithId('crvusd', 1)],
|
|
23
|
+
},
|
|
24
|
+
],
|
|
6
25
|
42161: [
|
|
7
26
|
{
|
|
8
27
|
key: '42161-0x4c4f752fa54dafb6d51b4a39018271c90ba1156f',
|
|
9
|
-
name: '
|
|
28
|
+
name: 'crvUSD',
|
|
10
29
|
description: 'The LlamaRisk crvUSD Optimizer vault allocates crvUSD deposits into selected Stake DAO Arbitrum vaults, which optimizes returns for Llamalend markets and auto-compound rewards to boost yields. LlamaRisk will curate the strategy and optimize allocations to ensure users have a safe and high-yield entry point into Arbitrum’s crvUSD ecosystem.',
|
|
11
|
-
color1: '#0049cf',
|
|
12
30
|
infra: 'ipor',
|
|
13
31
|
curator: 'llamarisk',
|
|
14
32
|
chainId: 42161,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../../src/strategies/curated/ipor/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAC9C,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAO9B,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../../src/strategies/curated/ipor/fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { tokenWithId } from '@stake-dao/constants';
|
|
2
|
+
import { formatUnits } from 'viem';
|
|
3
|
+
import { equalTlc, graphql } from '../../../utils.js';
|
|
4
|
+
const MORPHO_REWARD_TOKEN = { 1: '0x58D97B57BB95320F9a05dC918Aef65434969c2B2' };
|
|
5
|
+
export const VAULTS = {
|
|
6
|
+
1: [
|
|
7
|
+
{
|
|
8
|
+
key: '1-0x8edcc305e633d29bfb383872e79401c506ce9e6f',
|
|
9
|
+
name: 'USDC',
|
|
10
|
+
description: 'The Stake DAO USDC vault aims to optimize yields by lending USDC against selected Stake DAO LP token collaterals with a cautious risk approach or other blue chip collaterals depending on market conditions.',
|
|
11
|
+
infra: 'morpho',
|
|
12
|
+
curator: 'stakedao',
|
|
13
|
+
chainId: 1,
|
|
14
|
+
vault: {
|
|
15
|
+
address: '0x8EDCC305E633d29BFB383872e79401c506cE9E6f',
|
|
16
|
+
decimals: 18,
|
|
17
|
+
curator: '0x13AA4f80AD5F06cE4f1A3a3cA58C37059F0EE4c5',
|
|
18
|
+
},
|
|
19
|
+
lpToken: tokenWithId('usdc'),
|
|
20
|
+
coins: [tokenWithId('usdc')],
|
|
21
|
+
underlyingCoins: [tokenWithId('usdc')],
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
};
|
|
25
|
+
export const fetchMorphoVaults = async () => {
|
|
26
|
+
const vaults = Object.keys(VAULTS).flatMap((chainId) => VAULTS[chainId]);
|
|
27
|
+
const apiData = await graphql('https://api.morpho.org/graphql', `{
|
|
28
|
+
vaultV2s(first: ${vaults.length}, where: { address_in: [${vaults.map((v) => `"${v.vault.address}"`).join(', ')}] }) {
|
|
29
|
+
items {
|
|
30
|
+
address
|
|
31
|
+
symbol
|
|
32
|
+
name
|
|
33
|
+
asset {
|
|
34
|
+
address
|
|
35
|
+
decimals
|
|
36
|
+
}
|
|
37
|
+
avgApy
|
|
38
|
+
avgNetApy
|
|
39
|
+
totalAssets
|
|
40
|
+
totalAssetsUsd
|
|
41
|
+
totalSupply
|
|
42
|
+
liquidityUsd
|
|
43
|
+
idleAssetsUsd
|
|
44
|
+
performanceFee
|
|
45
|
+
managementFee
|
|
46
|
+
maxRate
|
|
47
|
+
rewards {
|
|
48
|
+
asset {
|
|
49
|
+
address
|
|
50
|
+
chain {
|
|
51
|
+
id
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
supplyApr
|
|
55
|
+
yearlySupplyTokens
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}`).then((res) => res.vaultV2s.items);
|
|
60
|
+
const parsedData = apiData.map((v, index) => {
|
|
61
|
+
const vault = vaults[index];
|
|
62
|
+
const tvl = v.totalAssetsUsd;
|
|
63
|
+
const lpPriceInUsd = v.totalAssetsUsd / Number(formatUnits(BigInt(v.totalAssets), vault.lpToken.decimals));
|
|
64
|
+
const conversionRate = (BigInt(v.totalAssets) * BigInt(10 ** vault.vault.decimals)) / BigInt(v.totalSupply);
|
|
65
|
+
const morphoReward = v.rewards.find((r) => equalTlc(r.asset.address, MORPHO_REWARD_TOKEN[vault.chainId]));
|
|
66
|
+
const totalApy = v.avgNetApy * 100;
|
|
67
|
+
const interestApy = v.avgApy * 100;
|
|
68
|
+
const morphoApy = morphoReward.supplyApr * 100;
|
|
69
|
+
return {
|
|
70
|
+
...vault,
|
|
71
|
+
tokensFilter: ['usd'],
|
|
72
|
+
lpPriceInUsd,
|
|
73
|
+
tvl,
|
|
74
|
+
conversionRate: formatUnits(conversionRate, 0),
|
|
75
|
+
tradingApy: interestApy,
|
|
76
|
+
apr: {
|
|
77
|
+
boost: 0,
|
|
78
|
+
current: {
|
|
79
|
+
total: totalApy,
|
|
80
|
+
details: [
|
|
81
|
+
{ label: 'Interest', value: [interestApy] },
|
|
82
|
+
{ label: 'MORPHO', value: [morphoApy] },
|
|
83
|
+
],
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
feeDenominator: '10000',
|
|
87
|
+
feesBreakdown: [
|
|
88
|
+
{ key: 'managementFee', value: `${v.managementFee}` },
|
|
89
|
+
{ key: 'perfFee', value: `${v.performanceFee}` },
|
|
90
|
+
],
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
return parsedData;
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../../src/strategies/curated/morpho/fetch.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -38,6 +38,7 @@ export { default as getPendleApiData } from './strategies/pendle/getPendleApiDat
|
|
|
38
38
|
export { fetchStakeDao } from './strategies/stakeDao/fetch.js';
|
|
39
39
|
export { fetchIporVaults, VAULTS as IPOR_VAULTS, getIporApy } from './strategies/curated/ipor/fetch.js';
|
|
40
40
|
export { fetchLagoonVaults, VAULTS as LAGOON_VAULTS } from './strategies/curated/lagoon/fetch.js';
|
|
41
|
+
export { fetchMorphoVaults, VAULTS as MORPHO_VAULTS } from './strategies/curated/morpho/fetch.js';
|
|
41
42
|
export { processRawCampaigns } from './votemarket/fetchCampaigns/processRawCampaigns.js';
|
|
42
43
|
export { fetchPendingRemoteCampaigns } from './votemarket/fetchCampaigns/pendingRemote.js';
|
|
43
44
|
export { fetchCampaigns } from './votemarket/fetchCampaigns/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,27 @@ interface TFetchIporVaults {
|
|
|
3
3
|
chainId: number;
|
|
4
4
|
}
|
|
5
5
|
export declare const VAULTS: {
|
|
6
|
+
1: {
|
|
7
|
+
key: string;
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
infra: string;
|
|
11
|
+
curator: string;
|
|
12
|
+
chainId: number;
|
|
13
|
+
vault: {
|
|
14
|
+
address: string;
|
|
15
|
+
accessManager: string;
|
|
16
|
+
withdrawManager: string;
|
|
17
|
+
decimals: number;
|
|
18
|
+
};
|
|
19
|
+
lpToken: import("@stake-dao/constants").Token | undefined;
|
|
20
|
+
coins: (import("@stake-dao/constants").Token | undefined)[];
|
|
21
|
+
underlyingCoins: (import("@stake-dao/constants").Token | undefined)[];
|
|
22
|
+
}[];
|
|
6
23
|
42161: {
|
|
7
24
|
key: string;
|
|
8
25
|
name: string;
|
|
9
26
|
description: string;
|
|
10
|
-
color1: string;
|
|
11
27
|
infra: string;
|
|
12
28
|
curator: string;
|
|
13
29
|
chainId: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/curated/ipor/fetch.ts"],"names":[],"mappings":"AAKA,UAAU,gBAAgB;IACxB,QAAQ,EAAE,GAAG,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/curated/ipor/fetch.ts"],"names":[],"mappings":"AAKA,UAAU,gBAAgB;IACxB,QAAQ,EAAE,GAAG,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyClB,CAAA;AAYD,eAAO,MAAM,UAAU,UAAW,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,WASrF,CAAA;AAED,eAAO,MAAM,eAAe,0BAAiC,gBAAgB,iBA+D5E,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const VAULTS: {
|
|
2
|
+
1: {
|
|
3
|
+
key: string;
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
infra: string;
|
|
7
|
+
curator: string;
|
|
8
|
+
chainId: number;
|
|
9
|
+
vault: {
|
|
10
|
+
address: string;
|
|
11
|
+
decimals: number;
|
|
12
|
+
curator: string;
|
|
13
|
+
};
|
|
14
|
+
lpToken: import("@stake-dao/constants").Token | undefined;
|
|
15
|
+
coins: (import("@stake-dao/constants").Token | undefined)[];
|
|
16
|
+
underlyingCoins: (import("@stake-dao/constants").Token | undefined)[];
|
|
17
|
+
}[];
|
|
18
|
+
};
|
|
19
|
+
export declare const fetchMorphoVaults: () => Promise<any>;
|
|
20
|
+
//# sourceMappingURL=fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../../src/strategies/curated/morpho/fetch.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;CAoBlB,CAAA;AAED,eAAO,MAAM,iBAAiB,oBA+E7B,CAAA"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -80,6 +80,9 @@ export { fetchIporVaults, VAULTS as IPOR_VAULTS, getIporApy } from './strategies
|
|
|
80
80
|
// LAGOON
|
|
81
81
|
export { fetchLagoonVaults, VAULTS as LAGOON_VAULTS } from './strategies/curated/lagoon/fetch.js'
|
|
82
82
|
|
|
83
|
+
// MORPHO
|
|
84
|
+
export { fetchMorphoVaults, VAULTS as MORPHO_VAULTS } from './strategies/curated/morpho/fetch.js'
|
|
85
|
+
|
|
83
86
|
/// --- END CURATED STATEGIES
|
|
84
87
|
///////////////////////////////////////////////////////////////
|
|
85
88
|
|
|
@@ -9,13 +9,32 @@ interface TFetchIporVaults {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export const VAULTS = {
|
|
12
|
+
1: [
|
|
13
|
+
{
|
|
14
|
+
key: '1-0xbfa9d6ec0e04b6691fcae5f8b48838c3918ec117',
|
|
15
|
+
name: 'crvUSD',
|
|
16
|
+
description:
|
|
17
|
+
'The LlamaRisk crvUSD Optimizer vault allocates crvUSD deposits into selected Stake DAO Ethereum vaults, which optimizes returns for Llamalend markets and auto-compound rewards to boost yields. It also allocates directly to Llamalend markets and scrvUSD. LlamaRisk curates the strategy and optimizes allocations to ensure users have a safe and high-yield entry point into Ethereum Mainnet’s crvUSD ecosystem.',
|
|
18
|
+
infra: 'ipor',
|
|
19
|
+
curator: 'llamarisk',
|
|
20
|
+
chainId: 1,
|
|
21
|
+
vault: {
|
|
22
|
+
address: '0xbfA9d6EC0E04B6691fCAE5F8b48838C3918eC117',
|
|
23
|
+
accessManager: '0x0Bcf0187003f2154840d055144654eD18033a3c6',
|
|
24
|
+
withdrawManager: '0xcE6502004DE605dd1bb48aa61c593a19aA99f328',
|
|
25
|
+
decimals: 20,
|
|
26
|
+
},
|
|
27
|
+
lpToken: tokenWithId('crvusd', 1),
|
|
28
|
+
coins: [tokenWithId('crvusd', 1)],
|
|
29
|
+
underlyingCoins: [tokenWithId('crvusd', 1)],
|
|
30
|
+
},
|
|
31
|
+
],
|
|
12
32
|
42161: [
|
|
13
33
|
{
|
|
14
34
|
key: '42161-0x4c4f752fa54dafb6d51b4a39018271c90ba1156f',
|
|
15
|
-
name: '
|
|
35
|
+
name: 'crvUSD',
|
|
16
36
|
description:
|
|
17
37
|
'The LlamaRisk crvUSD Optimizer vault allocates crvUSD deposits into selected Stake DAO Arbitrum vaults, which optimizes returns for Llamalend markets and auto-compound rewards to boost yields. LlamaRisk will curate the strategy and optimize allocations to ensure users have a safe and high-yield entry point into Arbitrum’s crvUSD ecosystem.',
|
|
18
|
-
color1: '#0049cf',
|
|
19
38
|
infra: 'ipor',
|
|
20
39
|
curator: 'llamarisk',
|
|
21
40
|
chainId: 42161,
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { tokenWithId } from '@stake-dao/constants'
|
|
2
|
+
import { formatUnits } from 'viem'
|
|
3
|
+
import { equalTlc, graphql } from '../../../utils.js'
|
|
4
|
+
|
|
5
|
+
const MORPHO_REWARD_TOKEN = { 1: '0x58D97B57BB95320F9a05dC918Aef65434969c2B2' }
|
|
6
|
+
|
|
7
|
+
export const VAULTS = {
|
|
8
|
+
1: [
|
|
9
|
+
{
|
|
10
|
+
key: '1-0x8edcc305e633d29bfb383872e79401c506ce9e6f',
|
|
11
|
+
name: 'USDC',
|
|
12
|
+
description:
|
|
13
|
+
'The Stake DAO USDC vault aims to optimize yields by lending USDC against selected Stake DAO LP token collaterals with a cautious risk approach or other blue chip collaterals depending on market conditions.',
|
|
14
|
+
infra: 'morpho',
|
|
15
|
+
curator: 'stakedao',
|
|
16
|
+
chainId: 1,
|
|
17
|
+
vault: {
|
|
18
|
+
address: '0x8EDCC305E633d29BFB383872e79401c506cE9E6f',
|
|
19
|
+
decimals: 18,
|
|
20
|
+
curator: '0x13AA4f80AD5F06cE4f1A3a3cA58C37059F0EE4c5',
|
|
21
|
+
},
|
|
22
|
+
lpToken: tokenWithId('usdc'),
|
|
23
|
+
coins: [tokenWithId('usdc')],
|
|
24
|
+
underlyingCoins: [tokenWithId('usdc')],
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export const fetchMorphoVaults = async () => {
|
|
30
|
+
const vaults = Object.keys(VAULTS).flatMap((chainId) => VAULTS[chainId])
|
|
31
|
+
|
|
32
|
+
const apiData = await graphql(
|
|
33
|
+
'https://api.morpho.org/graphql',
|
|
34
|
+
`{
|
|
35
|
+
vaultV2s(first: ${vaults.length}, where: { address_in: [${vaults.map((v) => `"${v.vault.address}"`).join(', ')}] }) {
|
|
36
|
+
items {
|
|
37
|
+
address
|
|
38
|
+
symbol
|
|
39
|
+
name
|
|
40
|
+
asset {
|
|
41
|
+
address
|
|
42
|
+
decimals
|
|
43
|
+
}
|
|
44
|
+
avgApy
|
|
45
|
+
avgNetApy
|
|
46
|
+
totalAssets
|
|
47
|
+
totalAssetsUsd
|
|
48
|
+
totalSupply
|
|
49
|
+
liquidityUsd
|
|
50
|
+
idleAssetsUsd
|
|
51
|
+
performanceFee
|
|
52
|
+
managementFee
|
|
53
|
+
maxRate
|
|
54
|
+
rewards {
|
|
55
|
+
asset {
|
|
56
|
+
address
|
|
57
|
+
chain {
|
|
58
|
+
id
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
supplyApr
|
|
62
|
+
yearlySupplyTokens
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}`,
|
|
67
|
+
).then((res) => res.vaultV2s.items)
|
|
68
|
+
|
|
69
|
+
const parsedData = apiData.map((v, index) => {
|
|
70
|
+
const vault = vaults[index]
|
|
71
|
+
|
|
72
|
+
const tvl = v.totalAssetsUsd
|
|
73
|
+
const lpPriceInUsd = v.totalAssetsUsd / Number(formatUnits(BigInt(v.totalAssets), vault.lpToken.decimals))
|
|
74
|
+
const conversionRate = (BigInt(v.totalAssets) * BigInt(10 ** vault.vault.decimals)) / BigInt(v.totalSupply)
|
|
75
|
+
|
|
76
|
+
const morphoReward = v.rewards.find((r) => equalTlc(r.asset.address, MORPHO_REWARD_TOKEN[vault.chainId]))
|
|
77
|
+
|
|
78
|
+
const totalApy = v.avgNetApy * 100
|
|
79
|
+
const interestApy = v.avgApy * 100
|
|
80
|
+
const morphoApy = morphoReward.supplyApr * 100
|
|
81
|
+
|
|
82
|
+
return {
|
|
83
|
+
...vault,
|
|
84
|
+
tokensFilter: ['usd'],
|
|
85
|
+
lpPriceInUsd,
|
|
86
|
+
tvl,
|
|
87
|
+
conversionRate: formatUnits(conversionRate, 0),
|
|
88
|
+
tradingApy: interestApy,
|
|
89
|
+
apr: {
|
|
90
|
+
boost: 0,
|
|
91
|
+
current: {
|
|
92
|
+
total: totalApy,
|
|
93
|
+
details: [
|
|
94
|
+
{ label: 'Interest', value: [interestApy] },
|
|
95
|
+
{ label: 'MORPHO', value: [morphoApy] },
|
|
96
|
+
],
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
feeDenominator: '10000',
|
|
100
|
+
feesBreakdown: [
|
|
101
|
+
{ key: 'managementFee', value: `${v.managementFee}` },
|
|
102
|
+
{ key: 'perfFee', value: `${v.performanceFee}` },
|
|
103
|
+
],
|
|
104
|
+
}
|
|
105
|
+
})
|
|
106
|
+
|
|
107
|
+
return parsedData
|
|
108
|
+
}
|