@moonwell-fi/moonwell-sdk 0.9.21 → 0.9.23
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/CHANGELOG.md +14 -0
- package/_cjs/actions/governance/common.js +33 -4
- package/_cjs/actions/governance/common.js.map +1 -1
- package/_cjs/actions/morpho/vaults/common.js +61 -2
- package/_cjs/actions/morpho/vaults/common.js.map +1 -1
- package/_cjs/environments/definitions/base/morpho-markets.js +0 -5
- package/_cjs/environments/definitions/base/morpho-markets.js.map +1 -1
- package/_cjs/environments/definitions/base/morpho-vaults.js +3 -3
- package/_cjs/environments/definitions/base/morpho-vaults.js.map +1 -1
- package/_cjs/environments/definitions/base/tokens.js +5 -5
- package/_cjs/errors/version.js +1 -1
- package/_esm/actions/governance/common.js +35 -4
- package/_esm/actions/governance/common.js.map +1 -1
- package/_esm/actions/morpho/vaults/common.js +85 -6
- package/_esm/actions/morpho/vaults/common.js.map +1 -1
- package/_esm/environments/definitions/base/morpho-markets.js +0 -5
- package/_esm/environments/definitions/base/morpho-markets.js.map +1 -1
- package/_esm/environments/definitions/base/morpho-vaults.js +3 -3
- package/_esm/environments/definitions/base/morpho-vaults.js.map +1 -1
- package/_esm/environments/definitions/base/tokens.js +5 -5
- package/_esm/errors/version.js +1 -1
- package/_types/actions/governance/common.d.ts.map +1 -1
- package/_types/actions/morpho/vaults/common.d.ts.map +1 -1
- package/_types/client/createMoonwellClient.d.ts +32 -32
- package/_types/environments/definitions/base/morpho-markets.d.ts +0 -5
- package/_types/environments/definitions/base/morpho-markets.d.ts.map +1 -1
- package/_types/environments/definitions/base/morpho-vaults.d.ts +3 -3
- package/_types/environments/definitions/base/tokens.d.ts +5 -5
- package/_types/environments/index.d.ts +8 -8
- package/_types/errors/version.d.ts +1 -1
- package/actions/governance/common.ts +51 -4
- package/actions/morpho/vaults/common.ts +208 -7
- package/environments/definitions/base/morpho-markets.ts +0 -5
- package/environments/definitions/base/morpho-vaults.ts +3 -3
- package/environments/definitions/base/tokens.ts +5 -5
- package/errors/version.ts +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @moonwell-fi/moonwell-sdk
|
|
2
2
|
|
|
3
|
+
## 0.9.23
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#212](https://github.com/moonwell-fi/moonwell-sdk/pull/212) [`c7d45deb94d892b883e45cd6ffa4806cda544676`](https://github.com/moonwell-fi/moonwell-sdk/commit/c7d45deb94d892b883e45cd6ffa4806cda544676) Thanks [@bprofiro](https://github.com/bprofiro)! - Fix rewards breakdown
|
|
8
|
+
|
|
9
|
+
## 0.9.22
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#207](https://github.com/moonwell-fi/moonwell-sdk/pull/207) [`d703dea0a142f35b0b0ae6ab10a425cfc8b0427d`](https://github.com/moonwell-fi/moonwell-sdk/commit/d703dea0a142f35b0b0ae6ab10a425cfc8b0427d) Thanks [@bprofiro](https://github.com/bprofiro)! - fix v2 vaults allocation
|
|
14
|
+
|
|
15
|
+
- [#207](https://github.com/moonwell-fi/moonwell-sdk/pull/207) [`2c9b2abad07aef1f8a55cd3c1fce905bdc574be8`](https://github.com/moonwell-fi/moonwell-sdk/commit/2c9b2abad07aef1f8a55cd3c1fce905bdc574be8) Thanks [@bprofiro](https://github.com/bprofiro)! - remove unused market
|
|
16
|
+
|
|
3
17
|
## 0.9.21
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
|
@@ -3,16 +3,45 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getMerklRewardsData = getMerklRewardsData;
|
|
4
4
|
exports.getMerklStakingApr = getMerklStakingApr;
|
|
5
5
|
const fetch_headers_js_1 = require("../../common/fetch-headers.js");
|
|
6
|
+
const MAX_BREAKDOWN_PAGES = 10;
|
|
6
7
|
async function getMerklRewardsData(campaignId, chainId, account) {
|
|
7
8
|
try {
|
|
8
|
-
const
|
|
9
|
+
const page0Response = await fetch(`https://api.merkl.xyz/v4/users/${account}/rewards?chainId=${chainId}&test=false&breakdownPage=0&reloadChainId=${chainId}`, {
|
|
9
10
|
headers: fetch_headers_js_1.MOONWELL_FETCH_JSON_HEADERS,
|
|
10
11
|
});
|
|
11
|
-
if (!
|
|
12
|
-
console.warn(`Merkl API request failed: ${
|
|
12
|
+
if (!page0Response.ok) {
|
|
13
|
+
console.warn(`Merkl API request failed: ${page0Response.status} ${page0Response.statusText}`);
|
|
13
14
|
return [];
|
|
14
15
|
}
|
|
15
|
-
const data = (await
|
|
16
|
+
const data = (await page0Response.json());
|
|
17
|
+
if (data.length === 0) {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
for (let page = 1; page < MAX_BREAKDOWN_PAGES; page++) {
|
|
21
|
+
const pageResponse = await fetch(`https://api.merkl.xyz/v4/users/${account}/rewards?chainId=${chainId}&test=false&breakdownPage=${page}&reloadChainId=${chainId}`, {
|
|
22
|
+
headers: fetch_headers_js_1.MOONWELL_FETCH_JSON_HEADERS,
|
|
23
|
+
});
|
|
24
|
+
if (!pageResponse.ok) {
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
const pageData = (await pageResponse.json());
|
|
28
|
+
const allBreakdownsEmpty = pageData.every((reward) => reward.rewards.every((r) => r.breakdowns.length === 0));
|
|
29
|
+
if (allBreakdownsEmpty) {
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
for (const pageReward of pageData) {
|
|
33
|
+
const baseReward = data.find((d) => d.chain.id === pageReward.chain.id);
|
|
34
|
+
if (!baseReward)
|
|
35
|
+
continue;
|
|
36
|
+
for (const pageRewardEntry of pageReward.rewards) {
|
|
37
|
+
const baseRewardEntry = baseReward.rewards.find((r) => r.token.address.toLowerCase() ===
|
|
38
|
+
pageRewardEntry.token.address.toLowerCase());
|
|
39
|
+
if (baseRewardEntry) {
|
|
40
|
+
baseRewardEntry.breakdowns.push(...pageRewardEntry.breakdowns);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
16
45
|
return data
|
|
17
46
|
.filter((reward) => reward.rewards.some((r) => r.breakdowns.some((b) => campaignId.includes(b.campaignId))))
|
|
18
47
|
.flatMap((reward) => reward.rewards
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../actions/governance/common.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../actions/governance/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,12 @@ const index_js_1 = require("../../../environments/index.js");
|
|
|
14
14
|
const index_js_2 = require("../../../environments/utils/index.js");
|
|
15
15
|
const graphql_js_1 = require("../utils/graphql.js");
|
|
16
16
|
const math_js_1 = require("../utils/math.js");
|
|
17
|
+
function scaleV1MarketPositionByV2Ownership(v1VaultSupplied, v2RealAssets, v1VaultTotalAssets) {
|
|
18
|
+
if (v1VaultTotalAssets === 0n) {
|
|
19
|
+
return 0n;
|
|
20
|
+
}
|
|
21
|
+
return (0, math_js_1.mulDivDown)(v1VaultSupplied, v2RealAssets, v1VaultTotalAssets);
|
|
22
|
+
}
|
|
17
23
|
async function getMorphoVaultsData(params) {
|
|
18
24
|
const { environments } = params;
|
|
19
25
|
const environmentsWithVaults = environments.filter((environment) => Object.keys(environment.vaults).length > 0 &&
|
|
@@ -57,6 +63,22 @@ async function getMorphoVaultsData(params) {
|
|
|
57
63
|
const vaultInfoV2 = await environment.contracts.morphoViewsV2?.read.getVaultsInfo([
|
|
58
64
|
v2VaultsAddresses,
|
|
59
65
|
]);
|
|
66
|
+
const underlyingVaultAddresses = vaultInfoV2
|
|
67
|
+
?.flatMap((v2Vault) => v2Vault.adapters?.map((adapter) => adapter.underlyingVault))
|
|
68
|
+
.filter((addr) => addr && addr !== viem_1.zeroAddress) || [];
|
|
69
|
+
const uniqueUnderlyingAddresses = [
|
|
70
|
+
...new Set(underlyingVaultAddresses),
|
|
71
|
+
];
|
|
72
|
+
const underlyingVaultsData = new Map();
|
|
73
|
+
if (uniqueUnderlyingAddresses.length > 0 &&
|
|
74
|
+
environment.contracts.morphoViews) {
|
|
75
|
+
const underlyingInfo = await environment.contracts.morphoViews.read.getVaultsInfo([
|
|
76
|
+
uniqueUnderlyingAddresses,
|
|
77
|
+
]);
|
|
78
|
+
underlyingInfo?.forEach((vaultData, index) => {
|
|
79
|
+
underlyingVaultsData.set(uniqueUnderlyingAddresses[index].toLowerCase(), vaultData);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
60
82
|
const transformedVaults = vaultInfoV2?.map((v2Vault) => {
|
|
61
83
|
const adapter = v2Vault.adapters?.[0];
|
|
62
84
|
if (!adapter) {
|
|
@@ -70,7 +92,36 @@ async function getMorphoVaultsData(params) {
|
|
|
70
92
|
markets: [],
|
|
71
93
|
};
|
|
72
94
|
}
|
|
73
|
-
const
|
|
95
|
+
const underlyingVaultData = underlyingVaultsData.get(adapter.underlyingVault.toLowerCase());
|
|
96
|
+
let markets = [];
|
|
97
|
+
if (underlyingVaultData?.markets) {
|
|
98
|
+
markets = underlyingVaultData.markets.map((v1Market) => {
|
|
99
|
+
const scaledVaultSupplied = scaleV1MarketPositionByV2Ownership(v1Market.vaultSupplied, adapter.realAssets, adapter.underlyingVaultTotalAssets);
|
|
100
|
+
return {
|
|
101
|
+
marketId: v1Market.marketId,
|
|
102
|
+
marketCollateral: v1Market.marketCollateral,
|
|
103
|
+
marketCollateralName: v1Market.marketCollateralName,
|
|
104
|
+
marketCollateralSymbol: v1Market.marketCollateralSymbol,
|
|
105
|
+
marketLltv: v1Market.marketLltv,
|
|
106
|
+
marketApy: v1Market.marketApy,
|
|
107
|
+
marketLiquidity: v1Market.marketLiquidity,
|
|
108
|
+
vaultSupplied: scaledVaultSupplied,
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
markets =
|
|
114
|
+
(adapter.underlyingMarkets || []).map((underlyingMarket) => ({
|
|
115
|
+
marketId: underlyingMarket.marketId,
|
|
116
|
+
marketCollateral: underlyingMarket.collateralToken,
|
|
117
|
+
marketCollateralName: underlyingMarket.collateralName,
|
|
118
|
+
marketCollateralSymbol: underlyingMarket.collateralSymbol,
|
|
119
|
+
marketLltv: underlyingMarket.marketLltv,
|
|
120
|
+
marketApy: underlyingMarket.marketSupplyApy,
|
|
121
|
+
marketLiquidity: underlyingMarket.marketLiquidity,
|
|
122
|
+
vaultSupplied: 0n,
|
|
123
|
+
})) || [];
|
|
124
|
+
}
|
|
74
125
|
return {
|
|
75
126
|
vault: v2Vault.vault,
|
|
76
127
|
totalSupply: v2Vault.totalSupply,
|
|
@@ -92,7 +143,15 @@ async function getMorphoVaultsData(params) {
|
|
|
92
143
|
const results = queryResults
|
|
93
144
|
.filter((r) => r !== undefined)
|
|
94
145
|
.flat();
|
|
95
|
-
|
|
146
|
+
const vaultKeys = Object.keys(environment.config.vaults);
|
|
147
|
+
const sortedResults = results.sort((a, b) => {
|
|
148
|
+
const aIndex = vaultKeys.findIndex((key) => environment.vaults[key]?.address.toLowerCase() ===
|
|
149
|
+
a.vault.toLowerCase());
|
|
150
|
+
const bIndex = vaultKeys.findIndex((key) => environment.vaults[key]?.address.toLowerCase() ===
|
|
151
|
+
b.vault.toLowerCase());
|
|
152
|
+
return aIndex - bIndex;
|
|
153
|
+
});
|
|
154
|
+
return sortedResults;
|
|
96
155
|
}));
|
|
97
156
|
const environmentsVaultsInfo = environmentsVaultsInfoSettlements.map((s) => {
|
|
98
157
|
if (s.status === "fulfilled") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../actions/morpho/vaults/common.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../actions/morpho/vaults/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,11 +47,6 @@ exports.morphoMarkets = (0, config_js_1.createMorphoMarketConfig)({
|
|
|
47
47
|
id: "0xa066f3893b780833699043f824e5bb88b8df039886f524f62b9a1ac83cb7f1f0",
|
|
48
48
|
deprecated: true,
|
|
49
49
|
},
|
|
50
|
-
"rETH-USDC": {
|
|
51
|
-
collateralToken: "rETH",
|
|
52
|
-
loanToken: "USDC",
|
|
53
|
-
id: "0xdb0bc9f10a174f29a345c5f30a719933f71ccea7a2a75a632a281929bba1b535",
|
|
54
|
-
},
|
|
55
50
|
"cbBTC-USDC": {
|
|
56
51
|
collateralToken: "cbBTC",
|
|
57
52
|
loanToken: "USDC",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"morpho-markets.js","sourceRoot":"","sources":["../../../../environments/definitions/base/morpho-markets.ts"],"names":[],"mappings":";;;AAAA,qDAAiE;AACjE,2CAAqC;AAExB,QAAA,aAAa,GAAG,IAAA,oCAAwB,EAAC;IACpD,MAAM,EAAN,kBAAM;IACN,OAAO,EAAE;QACP,YAAY,EAAE;YACZ,eAAe,EAAE,QAAQ;YACzB,SAAS,EAAE,KAAK;YAChB,EAAE,EAAE,oEAAoE;SACzE;QACD,UAAU,EAAE;YACV,eAAe,EAAE,MAAM;YACvB,SAAS,EAAE,KAAK;YAChB,EAAE,EAAE,oEAAoE;SACzE;QACD,WAAW,EAAE;YACX,eAAe,EAAE,OAAO;YACxB,SAAS,EAAE,KAAK;YAChB,EAAE,EAAE,oEAAoE;SACzE;QACD,UAAU,EAAE;YACV,eAAe,EAAE,MAAM;YACvB,SAAS,EAAE,KAAK;YAChB,EAAE,EAAE,oEAAoE;SACzE;QACD,YAAY,EAAE;YACZ,eAAe,EAAE,OAAO;YACxB,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,oEAAoE;SACzE;QACD,UAAU,EAAE;YACV,eAAe,EAAE,KAAK;YACtB,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,oEAAoE;SACzE;QACD,aAAa,EAAE;YACb,eAAe,EAAE,QAAQ;YACzB,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,oEAAoE;SACzE;QACD,wBAAwB,EAAE;YACxB,eAAe,EAAE,QAAQ;YACzB,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,oEAAoE;YACxE,UAAU,EAAE,IAAI;SACjB;QACD,
|
|
1
|
+
{"version":3,"file":"morpho-markets.js","sourceRoot":"","sources":["../../../../environments/definitions/base/morpho-markets.ts"],"names":[],"mappings":";;;AAAA,qDAAiE;AACjE,2CAAqC;AAExB,QAAA,aAAa,GAAG,IAAA,oCAAwB,EAAC;IACpD,MAAM,EAAN,kBAAM;IACN,OAAO,EAAE;QACP,YAAY,EAAE;YACZ,eAAe,EAAE,QAAQ;YACzB,SAAS,EAAE,KAAK;YAChB,EAAE,EAAE,oEAAoE;SACzE;QACD,UAAU,EAAE;YACV,eAAe,EAAE,MAAM;YACvB,SAAS,EAAE,KAAK;YAChB,EAAE,EAAE,oEAAoE;SACzE;QACD,WAAW,EAAE;YACX,eAAe,EAAE,OAAO;YACxB,SAAS,EAAE,KAAK;YAChB,EAAE,EAAE,oEAAoE;SACzE;QACD,UAAU,EAAE;YACV,eAAe,EAAE,MAAM;YACvB,SAAS,EAAE,KAAK;YAChB,EAAE,EAAE,oEAAoE;SACzE;QACD,YAAY,EAAE;YACZ,eAAe,EAAE,OAAO;YACxB,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,oEAAoE;SACzE;QACD,UAAU,EAAE;YACV,eAAe,EAAE,KAAK;YACtB,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,oEAAoE;SACzE;QACD,aAAa,EAAE;YACb,eAAe,EAAE,QAAQ;YACzB,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,oEAAoE;SACzE;QACD,wBAAwB,EAAE;YACxB,eAAe,EAAE,QAAQ;YACzB,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,oEAAoE;YACxE,UAAU,EAAE,IAAI;SACjB;QACD,YAAY,EAAE;YACZ,eAAe,EAAE,OAAO;YACxB,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,oEAAoE;SACzE;QACD,WAAW,EAAE;YACX,eAAe,EAAE,OAAO;YACxB,SAAS,EAAE,KAAK;YAChB,EAAE,EAAE,oEAAoE;SACzE;QACD,YAAY,EAAE;YACZ,eAAe,EAAE,OAAO;YACxB,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,oEAAoE;SACzE;QACD,yBAAyB,EAAE;YACzB,eAAe,EAAE,mBAAmB;YACpC,SAAS,EAAE,OAAO;YAClB,EAAE,EAAE,oEAAoE;YACxE,UAAU,EAAE,IAAI;SACjB;QACD,YAAY,EAAE;YACZ,eAAe,EAAE,MAAM;YACvB,SAAS,EAAE,OAAO;YAClB,EAAE,EAAE,oEAAoE;SACzE;QACD,WAAW,EAAE;YACX,eAAe,EAAE,MAAM;YACvB,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,oEAAoE;SACzE;QACD,WAAW,EAAE;YACX,eAAe,EAAE,MAAM;YACvB,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,oEAAoE;SACzE;QACD,cAAc,EAAE;YACd,eAAe,EAAE,SAAS;YAC1B,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,oEAAoE;SACzE;KACF;CACF,CAAC,CAAC"}
|
|
@@ -30,12 +30,12 @@ exports.vaults = (0, config_js_1.createVaultConfig)({
|
|
|
30
30
|
underlyingToken: "USDC",
|
|
31
31
|
vaultToken: "meUSDC",
|
|
32
32
|
campaignId: "0x6738320fdf80785ff7a1d45ed93a6ffa07068ce9ec4170c1887d09f32fba7b57",
|
|
33
|
+
version: 2,
|
|
33
34
|
},
|
|
34
|
-
|
|
35
|
+
meUSDCv1: {
|
|
35
36
|
underlyingToken: "USDC",
|
|
36
|
-
vaultToken: "
|
|
37
|
+
vaultToken: "meUSDCv1",
|
|
37
38
|
campaignId: "0x6738320fdf80785ff7a1d45ed93a6ffa07068ce9ec4170c1887d09f32fba7b57",
|
|
38
|
-
version: 2,
|
|
39
39
|
},
|
|
40
40
|
},
|
|
41
41
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"morpho-vaults.js","sourceRoot":"","sources":["../../../../environments/definitions/base/morpho-vaults.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAC1D,2CAAqC;AAExB,QAAA,MAAM,GAAG,IAAA,6BAAiB,EAAC;IACtC,MAAM,EAAN,kBAAM;IACN,MAAM,EAAE;QACN,KAAK,EAAE;YACL,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,OAAO;YACnB,UAAU,EACR,oEAAoE;SACvE;QACD,MAAM,EAAE;YACN,eAAe,EAAE,MAAM;YACvB,UAAU,EAAE,QAAQ;YACpB,UAAU,EACR,oEAAoE;SACvE;QACD,MAAM,EAAE;YACN,eAAe,EAAE,MAAM;YACvB,UAAU,EAAE,QAAQ;YACpB,UAAU,EACR,oEAAoE;SACvE;QACD,OAAO,EAAE;YACP,eAAe,EAAE,OAAO;YACxB,UAAU,EAAE,SAAS;YACrB,UAAU,EACR,oEAAoE;SACvE;QACD,MAAM,EAAE;YACN,eAAe,EAAE,MAAM;YACvB,UAAU,EAAE,QAAQ;YACpB,UAAU,EACR,oEAAoE;
|
|
1
|
+
{"version":3,"file":"morpho-vaults.js","sourceRoot":"","sources":["../../../../environments/definitions/base/morpho-vaults.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAC1D,2CAAqC;AAExB,QAAA,MAAM,GAAG,IAAA,6BAAiB,EAAC;IACtC,MAAM,EAAN,kBAAM;IACN,MAAM,EAAE;QACN,KAAK,EAAE;YACL,eAAe,EAAE,KAAK;YACtB,UAAU,EAAE,OAAO;YACnB,UAAU,EACR,oEAAoE;SACvE;QACD,MAAM,EAAE;YACN,eAAe,EAAE,MAAM;YACvB,UAAU,EAAE,QAAQ;YACpB,UAAU,EACR,oEAAoE;SACvE;QACD,MAAM,EAAE;YACN,eAAe,EAAE,MAAM;YACvB,UAAU,EAAE,QAAQ;YACpB,UAAU,EACR,oEAAoE;SACvE;QACD,OAAO,EAAE;YACP,eAAe,EAAE,OAAO;YACxB,UAAU,EAAE,SAAS;YACrB,UAAU,EACR,oEAAoE;SACvE;QACD,MAAM,EAAE;YACN,eAAe,EAAE,MAAM;YACvB,UAAU,EAAE,QAAQ;YACpB,UAAU,EACR,oEAAoE;YACtE,OAAO,EAAE,CAAC;SACX;QACD,QAAQ,EAAE;YACR,eAAe,EAAE,MAAM;YACvB,UAAU,EAAE,UAAU;YACtB,UAAU,EACR,oEAAoE;SACvE;KACF;CACF,CAAC,CAAC"}
|
|
@@ -281,16 +281,16 @@ exports.tokens = (0, config_js_1.createTokenConfig)({
|
|
|
281
281
|
symbol: "mcbXRP",
|
|
282
282
|
},
|
|
283
283
|
meUSDC: {
|
|
284
|
-
address: "
|
|
284
|
+
address: "0xbB2F06CeAE42CBcF5559Ed0713538c8892D977c9",
|
|
285
285
|
decimals: 18,
|
|
286
286
|
name: "Moonwell Ecosystem USDC Vault",
|
|
287
287
|
symbol: "meUSDC",
|
|
288
288
|
},
|
|
289
|
-
|
|
290
|
-
address: "
|
|
289
|
+
meUSDCv1: {
|
|
290
|
+
address: "0xe1ba476304255353aef290e6474a417d06e7b773",
|
|
291
291
|
decimals: 18,
|
|
292
|
-
name: "Moonwell Ecosystem USDC Vault
|
|
293
|
-
symbol: "
|
|
292
|
+
name: "Moonwell Ecosystem USDC Vault V1",
|
|
293
|
+
symbol: "meUSDCv1",
|
|
294
294
|
},
|
|
295
295
|
MAMO: {
|
|
296
296
|
address: "0x7300B37DfdfAb110d83290A29DfB31B1740219fE",
|
package/_cjs/errors/version.js
CHANGED
|
@@ -1,14 +1,45 @@
|
|
|
1
1
|
import { MOONWELL_FETCH_JSON_HEADERS } from "../../common/fetch-headers.js";
|
|
2
|
+
const MAX_BREAKDOWN_PAGES = 10;
|
|
2
3
|
export async function getMerklRewardsData(campaignId, chainId, account) {
|
|
3
4
|
try {
|
|
4
|
-
const
|
|
5
|
+
const page0Response = await fetch(`https://api.merkl.xyz/v4/users/${account}/rewards?chainId=${chainId}&test=false&breakdownPage=0&reloadChainId=${chainId}`, {
|
|
5
6
|
headers: MOONWELL_FETCH_JSON_HEADERS,
|
|
6
7
|
});
|
|
7
|
-
if (!
|
|
8
|
-
console.warn(`Merkl API request failed: ${
|
|
8
|
+
if (!page0Response.ok) {
|
|
9
|
+
console.warn(`Merkl API request failed: ${page0Response.status} ${page0Response.statusText}`);
|
|
9
10
|
return [];
|
|
10
11
|
}
|
|
11
|
-
const data = (await
|
|
12
|
+
const data = (await page0Response.json());
|
|
13
|
+
if (data.length === 0) {
|
|
14
|
+
return [];
|
|
15
|
+
}
|
|
16
|
+
// Paginate through remaining breakdown pages to collect all breakdowns
|
|
17
|
+
for (let page = 1; page < MAX_BREAKDOWN_PAGES; page++) {
|
|
18
|
+
const pageResponse = await fetch(`https://api.merkl.xyz/v4/users/${account}/rewards?chainId=${chainId}&test=false&breakdownPage=${page}&reloadChainId=${chainId}`, {
|
|
19
|
+
headers: MOONWELL_FETCH_JSON_HEADERS,
|
|
20
|
+
});
|
|
21
|
+
if (!pageResponse.ok) {
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
const pageData = (await pageResponse.json());
|
|
25
|
+
const allBreakdownsEmpty = pageData.every((reward) => reward.rewards.every((r) => r.breakdowns.length === 0));
|
|
26
|
+
if (allBreakdownsEmpty) {
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
// Merge breakdowns from this page into the page-0 data
|
|
30
|
+
for (const pageReward of pageData) {
|
|
31
|
+
const baseReward = data.find((d) => d.chain.id === pageReward.chain.id);
|
|
32
|
+
if (!baseReward)
|
|
33
|
+
continue;
|
|
34
|
+
for (const pageRewardEntry of pageReward.rewards) {
|
|
35
|
+
const baseRewardEntry = baseReward.rewards.find((r) => r.token.address.toLowerCase() ===
|
|
36
|
+
pageRewardEntry.token.address.toLowerCase());
|
|
37
|
+
if (baseRewardEntry) {
|
|
38
|
+
baseRewardEntry.breakdowns.push(...pageRewardEntry.breakdowns);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
12
43
|
return data
|
|
13
44
|
.filter((reward) => reward.rewards.some((r) => r.breakdowns.some((b) => campaignId.includes(b.campaignId))))
|
|
14
45
|
.flatMap((reward) => reward.rewards
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../actions/governance/common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAuD5E,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,UAAoB,EACpB,OAAe,EACf,OAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../actions/governance/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,24 @@ import { publicEnvironments, } from "../../../environments/index.js";
|
|
|
7
7
|
import { findMarketByAddress, findTokenByAddress, } from "../../../environments/utils/index.js";
|
|
8
8
|
import { getGraphQL, getVaultV2Apy } from "../utils/graphql.js";
|
|
9
9
|
import { SECONDS_PER_YEAR, WAD, mulDivDown, toAssetsDown, wMulDown, } from "../utils/math.js";
|
|
10
|
+
/**
|
|
11
|
+
* Scales a V1 vault's market position by V2's ownership percentage.
|
|
12
|
+
*
|
|
13
|
+
* V2 vaults wrap V1 vaults - this calculates the V2 vault's effective
|
|
14
|
+
* position in a V1 vault's market by scaling based on ownership:
|
|
15
|
+
* V2 ownership = realAssets / underlyingVaultTotalAssets
|
|
16
|
+
*
|
|
17
|
+
* @param v1VaultSupplied - The V1 vault's supplied amount in the market
|
|
18
|
+
* @param v2RealAssets - The V2 vault's real assets in the V1 vault
|
|
19
|
+
* @param v1VaultTotalAssets - Total assets in the underlying V1 vault
|
|
20
|
+
* @returns Scaled vault supplied amount, or 0n if V1 vault has no assets
|
|
21
|
+
*/
|
|
22
|
+
function scaleV1MarketPositionByV2Ownership(v1VaultSupplied, v2RealAssets, v1VaultTotalAssets) {
|
|
23
|
+
if (v1VaultTotalAssets === 0n) {
|
|
24
|
+
return 0n;
|
|
25
|
+
}
|
|
26
|
+
return mulDivDown(v1VaultSupplied, v2RealAssets, v1VaultTotalAssets);
|
|
27
|
+
}
|
|
10
28
|
export async function getMorphoVaultsData(params) {
|
|
11
29
|
const { environments } = params;
|
|
12
30
|
const environmentsWithVaults = environments.filter((environment) => Object.keys(environment.vaults).length > 0 &&
|
|
@@ -49,13 +67,35 @@ export async function getMorphoVaultsData(params) {
|
|
|
49
67
|
})());
|
|
50
68
|
}
|
|
51
69
|
// Query v2 vaults with morphoViewsV2
|
|
70
|
+
// Note: V2 vaults (e.g., meUSDC) wrap V1 vaults (e.g., meUSDCv1).
|
|
71
|
+
// The V2 vault allocates its assets to underlying V1 vaults via adapters.
|
|
52
72
|
if (v2VaultsAddresses.length > 0 && environment.contracts.morphoViewsV2) {
|
|
53
73
|
queryPromises.push((async () => {
|
|
54
74
|
try {
|
|
55
75
|
const vaultInfoV2 = await environment.contracts.morphoViewsV2?.read.getVaultsInfo([
|
|
56
76
|
v2VaultsAddresses,
|
|
57
77
|
]);
|
|
78
|
+
// Extract unique underlying vault addresses from V2 adapters
|
|
79
|
+
const underlyingVaultAddresses = vaultInfoV2
|
|
80
|
+
?.flatMap((v2Vault) => v2Vault.adapters?.map((adapter) => adapter.underlyingVault))
|
|
81
|
+
.filter((addr) => addr && addr !== zeroAddress) || [];
|
|
82
|
+
const uniqueUnderlyingAddresses = [
|
|
83
|
+
...new Set(underlyingVaultAddresses),
|
|
84
|
+
];
|
|
85
|
+
// Query underlying V1 vaults to get their market positions
|
|
86
|
+
const underlyingVaultsData = new Map();
|
|
87
|
+
if (uniqueUnderlyingAddresses.length > 0 &&
|
|
88
|
+
environment.contracts.morphoViews) {
|
|
89
|
+
const underlyingInfo = await environment.contracts.morphoViews.read.getVaultsInfo([
|
|
90
|
+
uniqueUnderlyingAddresses,
|
|
91
|
+
]);
|
|
92
|
+
// Map by vault address for quick lookup
|
|
93
|
+
underlyingInfo?.forEach((vaultData, index) => {
|
|
94
|
+
underlyingVaultsData.set(uniqueUnderlyingAddresses[index].toLowerCase(), vaultData);
|
|
95
|
+
});
|
|
96
|
+
}
|
|
58
97
|
// Transform v2 structure to v1 structure
|
|
98
|
+
// V2 vaults wrap V1 vaults - we fetch the V1 data and scale allocations
|
|
59
99
|
const transformedVaults = vaultInfoV2?.map((v2Vault) => {
|
|
60
100
|
// Get the first adapter (assuming single adapter for now)
|
|
61
101
|
const adapter = v2Vault.adapters?.[0];
|
|
@@ -70,11 +110,41 @@ export async function getMorphoVaultsData(params) {
|
|
|
70
110
|
markets: [],
|
|
71
111
|
};
|
|
72
112
|
}
|
|
73
|
-
//
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
113
|
+
// Get underlying vault data for accurate market allocations
|
|
114
|
+
const underlyingVaultData = underlyingVaultsData.get(adapter.underlyingVault.toLowerCase());
|
|
115
|
+
let markets = [];
|
|
116
|
+
if (underlyingVaultData?.markets) {
|
|
117
|
+
// Map V1 vault's markets with scaled allocations
|
|
118
|
+
markets = underlyingVaultData.markets.map((v1Market) => {
|
|
119
|
+
// Scale the V1 vault's position by V2's ownership
|
|
120
|
+
// V2 ownership = realAssets / underlyingVaultTotalAssets
|
|
121
|
+
const scaledVaultSupplied = scaleV1MarketPositionByV2Ownership(v1Market.vaultSupplied, adapter.realAssets, adapter.underlyingVaultTotalAssets);
|
|
122
|
+
return {
|
|
123
|
+
marketId: v1Market.marketId,
|
|
124
|
+
marketCollateral: v1Market.marketCollateral,
|
|
125
|
+
marketCollateralName: v1Market.marketCollateralName,
|
|
126
|
+
marketCollateralSymbol: v1Market.marketCollateralSymbol,
|
|
127
|
+
marketLltv: v1Market.marketLltv,
|
|
128
|
+
marketApy: v1Market.marketApy,
|
|
129
|
+
marketLiquidity: v1Market.marketLiquidity,
|
|
130
|
+
vaultSupplied: scaledVaultSupplied,
|
|
131
|
+
};
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
// Fallback: if we can't get V1 data, use underlyingMarkets with 0 allocations
|
|
136
|
+
markets =
|
|
137
|
+
(adapter.underlyingMarkets || []).map((underlyingMarket) => ({
|
|
138
|
+
marketId: underlyingMarket.marketId,
|
|
139
|
+
marketCollateral: underlyingMarket.collateralToken,
|
|
140
|
+
marketCollateralName: underlyingMarket.collateralName,
|
|
141
|
+
marketCollateralSymbol: underlyingMarket.collateralSymbol,
|
|
142
|
+
marketLltv: underlyingMarket.marketLltv,
|
|
143
|
+
marketApy: underlyingMarket.marketSupplyApy,
|
|
144
|
+
marketLiquidity: underlyingMarket.marketLiquidity,
|
|
145
|
+
vaultSupplied: 0n,
|
|
146
|
+
})) || [];
|
|
147
|
+
}
|
|
78
148
|
return {
|
|
79
149
|
vault: v2Vault.vault,
|
|
80
150
|
totalSupply: v2Vault.totalSupply,
|
|
@@ -96,7 +166,16 @@ export async function getMorphoVaultsData(params) {
|
|
|
96
166
|
const results = queryResults
|
|
97
167
|
.filter((r) => r !== undefined)
|
|
98
168
|
.flat();
|
|
99
|
-
|
|
169
|
+
// Sort results to match the order in environment.config.vaults
|
|
170
|
+
const vaultKeys = Object.keys(environment.config.vaults);
|
|
171
|
+
const sortedResults = results.sort((a, b) => {
|
|
172
|
+
const aIndex = vaultKeys.findIndex((key) => environment.vaults[key]?.address.toLowerCase() ===
|
|
173
|
+
a.vault.toLowerCase());
|
|
174
|
+
const bIndex = vaultKeys.findIndex((key) => environment.vaults[key]?.address.toLowerCase() ===
|
|
175
|
+
b.vault.toLowerCase());
|
|
176
|
+
return aIndex - bIndex;
|
|
177
|
+
});
|
|
178
|
+
return sortedResults;
|
|
100
179
|
}));
|
|
101
180
|
const environmentsVaultsInfo = environmentsVaultsInfoSettlements.map((s) => {
|
|
102
181
|
if (s.status === "fulfilled") {
|