@merkl/api 0.20.90 → 0.20.91
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/database/api/.generated/edge.js +2 -2
- package/dist/database/api/.generated/index.js +2 -2
- package/dist/database/api/.generated/package.json +1 -1
- package/dist/database/api/.generated/schema.prisma +1 -1
- package/dist/src/eden/index.d.ts +12 -12
- package/dist/src/engine/campaignTVL/factory.d.ts +1 -1
- package/dist/src/engine/campaignTVL/factory.js +5 -1
- package/dist/src/engine/campaignTVL/implementations/Ajna.d.ts +7 -0
- package/dist/src/engine/campaignTVL/implementations/Ajna.js +91 -0
- package/dist/src/index.d.ts +4 -4
- package/dist/src/modules/v4/campaign/campaign.controller.d.ts +1 -1
- package/dist/src/modules/v4/campaign/campaign.test.controller.d.ts +3 -3
- package/dist/src/modules/v4/dynamicData/dynamicData.service.d.ts +1 -1
- package/dist/src/modules/v4/dynamicData/dynamicData.service.js +79 -73
- package/dist/src/modules/v4/router.d.ts +4 -4
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +1 -1
@@ -86,33 +86,38 @@ export class DynamicDataService {
|
|
86
86
|
}
|
87
87
|
const campaignDailyValue = await TokenService.getValueByTokenId(TokenService.hashId({ address: rewardToken, chainId }), dailyAmount);
|
88
88
|
dailyRewards.total += campaignDailyValue;
|
89
|
-
|
90
|
-
|
91
|
-
campaignId:
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
89
|
+
if (campaignDailyValue > 0) {
|
90
|
+
dailyRewards.breakdowns.push({
|
91
|
+
campaignId: CampaignService.hashId({
|
92
|
+
campaignId: record.campaign.campaignId,
|
93
|
+
distributionChain: record.campaign.chainId,
|
94
|
+
}),
|
95
|
+
value: campaignDailyValue,
|
96
|
+
amount: dailyAmount,
|
97
|
+
token,
|
98
|
+
});
|
99
|
+
}
|
98
100
|
// 2.b.3 APR is obtained from daily rewards and tvl following the distribution type
|
99
101
|
// TODO: switch on distribution type - dailyRewards can be in token amount
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
102
|
+
let aprCampaignValue;
|
103
|
+
if (token.isPoint) {
|
104
|
+
aprCampaignValue = campaignDailyValue / record.tvl;
|
105
|
+
}
|
106
|
+
else {
|
107
|
+
aprCampaignValue = (campaignDailyValue * 365 * 100) / record.tvl;
|
108
|
+
}
|
109
|
+
if (aprCampaignValue > 0) {
|
110
|
+
apr.cumulated += aprCampaignValue;
|
111
|
+
apr.breakdowns.push({
|
112
|
+
identifier: record.campaign.campaignId,
|
113
|
+
type: AprType.CAMPAIGN,
|
114
|
+
value: aprCampaignValue,
|
115
|
+
});
|
116
|
+
}
|
106
117
|
}
|
107
118
|
catch (_err) {
|
108
119
|
log.warn(`token ${rewardToken} not found`);
|
109
120
|
}
|
110
|
-
updates.push({
|
111
|
-
opportunityId,
|
112
|
-
tvl,
|
113
|
-
apr,
|
114
|
-
dailyRewards,
|
115
|
-
});
|
116
121
|
}
|
117
122
|
updates.push({
|
118
123
|
opportunityId,
|
@@ -122,66 +127,67 @@ export class DynamicDataService {
|
|
122
127
|
});
|
123
128
|
}
|
124
129
|
// 2.c - Update the records
|
125
|
-
|
126
|
-
|
127
|
-
|
130
|
+
if (!dryRun) {
|
131
|
+
for (const update of updates) {
|
132
|
+
try {
|
128
133
|
await OpportunityRepository.updateDynamicData(update.opportunityId, update.apr, update.tvl, update.dailyRewards);
|
134
|
+
}
|
135
|
+
catch (err) {
|
136
|
+
throw new HttpError("Failed to update dynamic data", 500, {
|
137
|
+
err,
|
138
|
+
chainId,
|
139
|
+
type,
|
140
|
+
});
|
141
|
+
}
|
129
142
|
}
|
130
|
-
|
131
|
-
throw new HttpError("Failed to update dynamic data", 500, {
|
132
|
-
err,
|
133
|
-
chainId,
|
134
|
-
type,
|
135
|
-
});
|
136
|
-
}
|
143
|
+
log.info(`[${NETWORK_LABELS[chainId]}][${CampaignEnum[type]}] updated ${updates.length}/${campaigns.length} campaigns using campaignTVLBuilder`);
|
137
144
|
}
|
145
|
+
return updates;
|
138
146
|
}
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
oppMap[`${data.campaignType}_${data.mainParameter}`][data.campaignId] = data;
|
151
|
-
}
|
147
|
+
const dynamicDataArray = [];
|
148
|
+
const dynamicData = await DynamicDataService.fetchWithRecursiveErrorHandling(dynamicDataBuilderFactory(type).build, campaigns, chainId);
|
149
|
+
const oppMap = {};
|
150
|
+
for (const data of dynamicData) {
|
151
|
+
if (!!data) {
|
152
|
+
// Main Parameter OVERRIDING
|
153
|
+
if (data.campaignType === CampaignEnum.SILO && data.campaignParameters.whitelist?.length === 1)
|
154
|
+
data.mainParameter = `${data.mainParameter}-${data.campaignParameters.whitelist[0]}`;
|
155
|
+
if (!oppMap[`${data.campaignType}_${data.mainParameter}`])
|
156
|
+
oppMap[`${data.campaignType}_${data.mainParameter}`] = {};
|
157
|
+
oppMap[`${data.campaignType}_${data.mainParameter}`][data.campaignId] = data;
|
152
158
|
}
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
159
|
+
}
|
160
|
+
for (const entry of Object.entries(oppMap)) {
|
161
|
+
const [type, mainParameter] = entry[0].split("_");
|
162
|
+
const apr = AprService.extractFromDynamicData(+type, Object.values(entry[1]));
|
163
|
+
const tvl = TvlService.extractFromDynamicData(+type, Object.values(entry[1]));
|
164
|
+
const dailyRewards = await RewardService.extractDailyRewardsRecordFromDynamicData(+type, Object.values(entry[1]));
|
165
|
+
const opportunityId = OpportunityService.hashId({
|
166
|
+
chainId,
|
167
|
+
identifier: mainParameter,
|
168
|
+
type: CampaignEnum[+type],
|
169
|
+
});
|
170
|
+
try {
|
171
|
+
if (!dryRun)
|
172
|
+
await OpportunityRepository.updateDynamicData(opportunityId, apr, tvl, dailyRewards);
|
173
|
+
}
|
174
|
+
catch (err) {
|
175
|
+
throw new HttpError("Failed to update dynamic data", 500, {
|
176
|
+
err,
|
177
|
+
opportunityId,
|
178
|
+
campaigns: Object.values(entry[1]),
|
179
|
+
dynamicData: bigintToString({
|
180
|
+
campaignId: Object.values(entry[1])[0].campaignId,
|
181
|
+
apr,
|
182
|
+
tvl,
|
183
|
+
dailyRewards,
|
184
|
+
}),
|
162
185
|
});
|
163
|
-
try {
|
164
|
-
if (!dryRun)
|
165
|
-
await OpportunityRepository.updateDynamicData(opportunityId, apr, tvl, dailyRewards);
|
166
|
-
}
|
167
|
-
catch (err) {
|
168
|
-
throw new HttpError("Failed to update dynamic data", 500, {
|
169
|
-
err,
|
170
|
-
opportunityId,
|
171
|
-
campaigns: Object.values(entry[1]),
|
172
|
-
dynamicData: bigintToString({
|
173
|
-
campaignId: Object.values(entry[1])[0].campaignId,
|
174
|
-
apr,
|
175
|
-
tvl,
|
176
|
-
dailyRewards,
|
177
|
-
}),
|
178
|
-
});
|
179
|
-
}
|
180
|
-
dynamicDataArray.push(bigintToString({ campaignId: Object.values(entry[1])[0].campaignId, apr, tvl, dailyRewards }));
|
181
186
|
}
|
182
|
-
|
183
|
-
return dynamicDataArray;
|
187
|
+
dynamicDataArray.push(bigintToString({ campaignId: Object.values(entry[1])[0].campaignId, apr, tvl, dailyRewards }));
|
184
188
|
}
|
189
|
+
log.info(`[${NETWORK_LABELS[chainId]}][${CampaignEnum[type]}] updated ${dynamicData.length}/${campaigns.length} campaigns`);
|
190
|
+
return dynamicDataArray;
|
185
191
|
}
|
186
192
|
/**
|
187
193
|
* @dev Test function used to create mock ERC20 static campaigns and check tvl and metadata
|
@@ -1197,7 +1197,7 @@ export declare const v4: Elysia<"/v4", false, {
|
|
1197
1197
|
authorization: string;
|
1198
1198
|
};
|
1199
1199
|
response: {
|
1200
|
-
200: unknown[]
|
1200
|
+
200: unknown[];
|
1201
1201
|
};
|
1202
1202
|
};
|
1203
1203
|
};
|
@@ -1764,7 +1764,7 @@ export declare const v4: Elysia<"/v4", false, {
|
|
1764
1764
|
authorization: string;
|
1765
1765
|
};
|
1766
1766
|
response: {
|
1767
|
-
200: unknown[]
|
1767
|
+
200: unknown[];
|
1768
1768
|
};
|
1769
1769
|
};
|
1770
1770
|
};
|
@@ -1782,7 +1782,7 @@ export declare const v4: Elysia<"/v4", false, {
|
|
1782
1782
|
authorization: string;
|
1783
1783
|
};
|
1784
1784
|
response: {
|
1785
|
-
200: unknown[]
|
1785
|
+
200: unknown[];
|
1786
1786
|
};
|
1787
1787
|
};
|
1788
1788
|
};
|
@@ -1812,7 +1812,7 @@ export declare const v4: Elysia<"/v4", false, {
|
|
1812
1812
|
authorization: string;
|
1813
1813
|
};
|
1814
1814
|
response: {
|
1815
|
-
200: unknown[]
|
1815
|
+
200: unknown[];
|
1816
1816
|
};
|
1817
1817
|
};
|
1818
1818
|
};
|