@moonwell-fi/moonwell-sdk 0.9.22 → 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 +6 -0
- package/_cjs/actions/governance/common.js +33 -4
- package/_cjs/actions/governance/common.js.map +1 -1
- 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/errors/version.js +1 -1
- package/_types/actions/governance/common.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/actions/governance/common.ts +51 -4
- package/errors/version.ts +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
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
|
+
|
|
3
9
|
## 0.9.22
|
|
4
10
|
|
|
5
11
|
### 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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"}
|
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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"}
|
package/_esm/errors/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '0.9.
|
|
1
|
+
export const version = '0.9.23';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../actions/governance/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AA0CpC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../actions/governance/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AA0CpC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAIF,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,EAAE,CAAC,CA0FxB;AAED,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuB5E"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "0.9.
|
|
1
|
+
export declare const version = "0.9.23";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -54,27 +54,74 @@ type MerklReward = {
|
|
|
54
54
|
pending: string;
|
|
55
55
|
};
|
|
56
56
|
|
|
57
|
+
const MAX_BREAKDOWN_PAGES = 10;
|
|
58
|
+
|
|
57
59
|
export async function getMerklRewardsData(
|
|
58
60
|
campaignId: string[],
|
|
59
61
|
chainId: number,
|
|
60
62
|
account: Address,
|
|
61
63
|
): Promise<MerklReward[]> {
|
|
62
64
|
try {
|
|
63
|
-
const
|
|
65
|
+
const page0Response = await fetch(
|
|
64
66
|
`https://api.merkl.xyz/v4/users/${account}/rewards?chainId=${chainId}&test=false&breakdownPage=0&reloadChainId=${chainId}`,
|
|
65
67
|
{
|
|
66
68
|
headers: MOONWELL_FETCH_JSON_HEADERS,
|
|
67
69
|
},
|
|
68
70
|
);
|
|
69
71
|
|
|
70
|
-
if (!
|
|
72
|
+
if (!page0Response.ok) {
|
|
71
73
|
console.warn(
|
|
72
|
-
`Merkl API request failed: ${
|
|
74
|
+
`Merkl API request failed: ${page0Response.status} ${page0Response.statusText}`,
|
|
73
75
|
);
|
|
74
76
|
return [];
|
|
75
77
|
}
|
|
76
78
|
|
|
77
|
-
const data = (await
|
|
79
|
+
const data = (await page0Response.json()) as MerklRewardsResponse[];
|
|
80
|
+
|
|
81
|
+
if (data.length === 0) {
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Paginate through remaining breakdown pages to collect all breakdowns
|
|
86
|
+
for (let page = 1; page < MAX_BREAKDOWN_PAGES; page++) {
|
|
87
|
+
const pageResponse = await fetch(
|
|
88
|
+
`https://api.merkl.xyz/v4/users/${account}/rewards?chainId=${chainId}&test=false&breakdownPage=${page}&reloadChainId=${chainId}`,
|
|
89
|
+
{
|
|
90
|
+
headers: MOONWELL_FETCH_JSON_HEADERS,
|
|
91
|
+
},
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
if (!pageResponse.ok) {
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const pageData = (await pageResponse.json()) as MerklRewardsResponse[];
|
|
99
|
+
|
|
100
|
+
const allBreakdownsEmpty = pageData.every((reward) =>
|
|
101
|
+
reward.rewards.every((r) => r.breakdowns.length === 0),
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
if (allBreakdownsEmpty) {
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// Merge breakdowns from this page into the page-0 data
|
|
109
|
+
for (const pageReward of pageData) {
|
|
110
|
+
const baseReward = data.find((d) => d.chain.id === pageReward.chain.id);
|
|
111
|
+
if (!baseReward) continue;
|
|
112
|
+
|
|
113
|
+
for (const pageRewardEntry of pageReward.rewards) {
|
|
114
|
+
const baseRewardEntry = baseReward.rewards.find(
|
|
115
|
+
(r) =>
|
|
116
|
+
r.token.address.toLowerCase() ===
|
|
117
|
+
pageRewardEntry.token.address.toLowerCase(),
|
|
118
|
+
);
|
|
119
|
+
if (baseRewardEntry) {
|
|
120
|
+
baseRewardEntry.breakdowns.push(...pageRewardEntry.breakdowns);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
78
125
|
|
|
79
126
|
return data
|
|
80
127
|
.filter((reward) =>
|
package/errors/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '0.9.
|
|
1
|
+
export const version = '0.9.23'
|