@merkl/api 0.15.23 → 0.15.25
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/src/backgroundJobs/jobs/campaignsCacheUpdater.js +14 -9
- package/dist/src/eden/index.d.ts +5 -15
- package/dist/src/index.d.ts +1 -3
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.d.ts +1 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.js +2 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/processorMapping.js +1 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1.js +2 -0
- package/dist/src/libs/campaigns/campaignTypes/HyperdriveDynamicData.js +51 -38
- package/dist/src/modules/v4/dynamicData/dynamicData.service.js +10 -3
- package/dist/src/modules/v4/opportunity/opportunity.service.js +1 -1
- package/dist/src/modules/v4/programPayload/programPayload.controller.d.ts +1 -3
- package/dist/src/modules/v4/programPayload/programPayload.model.d.ts +1 -3
- package/dist/src/modules/v4/programPayload/programPayload.model.js +1 -3
- package/dist/src/modules/v4/programPayload/programPayload.repository.d.ts +3 -1
- package/dist/src/modules/v4/programPayload/programPayload.repository.js +28 -0
- package/dist/src/modules/v4/programPayload/programPayload.service.js +6 -11
- package/dist/src/modules/v4/reward/subservices/converter.js +0 -5
- package/dist/src/modules/v4/router.d.ts +1 -3
- package/dist/src/utils/decodeCalls.js +1 -0
- package/dist/src/utils/encodeCalls.js +1 -0
- package/dist/src/utils/generateCardName.js +2 -0
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +1 -1
@@ -113,15 +113,20 @@ export const campaignsCacheUpdater = new Elysia().get("/v3/update", async ({ que
|
|
113
113
|
distributionChain: chainId,
|
114
114
|
})));
|
115
115
|
const [type, mainParameter] = entry[0].split("_");
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
116
|
+
try {
|
117
|
+
const apr = AprService.extractFromDynamicData(+type, Object.values(entry[1]));
|
118
|
+
const tvl = TvlService.extractFromDynamicData(+type, Object.values(entry[1]));
|
119
|
+
const dailyRewards = await RewardService.extractDailyRewardsRecordFromDynamicData(+type, Object.values(entry[1]));
|
120
|
+
const opportunityId = OpportunityService.hashId({
|
121
|
+
chainId,
|
122
|
+
identifier: mainParameter,
|
123
|
+
type: CampaignService.getTypeFromV3(+type),
|
124
|
+
});
|
125
|
+
await OpportunityRepository.updateRecords(opportunityId, apr, tvl, dailyRewards);
|
126
|
+
}
|
127
|
+
catch (error) {
|
128
|
+
// console.log(mainParameter);
|
129
|
+
}
|
125
130
|
}
|
126
131
|
await OpportunityService.updateMetadata(chainId);
|
127
132
|
// ─── Refresh Cache For GET /opportunities ────
|
package/dist/src/eden/index.d.ts
CHANGED
@@ -2948,14 +2948,12 @@ declare const eden: {
|
|
2948
2948
|
post: (body: {
|
2949
2949
|
chainId: number;
|
2950
2950
|
startTimestamp: number;
|
2951
|
-
endTimestamp: number;
|
2952
2951
|
computeChainId: number;
|
2953
2952
|
amount: string;
|
2954
2953
|
rewardToken: string;
|
2955
2954
|
campaignType: number;
|
2955
|
+
duration: number;
|
2956
2956
|
campaignData: string;
|
2957
|
-
symbolRewardToken: string;
|
2958
|
-
decimalsRewardToken: number;
|
2959
2957
|
}, options: {
|
2960
2958
|
headers: {
|
2961
2959
|
authorization: string;
|
@@ -5995,14 +5993,12 @@ declare const eden: {
|
|
5995
5993
|
post: (body: {
|
5996
5994
|
chainId: number;
|
5997
5995
|
startTimestamp: number;
|
5998
|
-
endTimestamp: number;
|
5999
5996
|
computeChainId: number;
|
6000
5997
|
amount: string;
|
6001
5998
|
rewardToken: string;
|
6002
5999
|
campaignType: number;
|
6000
|
+
duration: number;
|
6003
6001
|
campaignData: string;
|
6004
|
-
symbolRewardToken: string;
|
6005
|
-
decimalsRewardToken: number;
|
6006
6002
|
}, options: {
|
6007
6003
|
headers: {
|
6008
6004
|
authorization: string;
|
@@ -10427,14 +10423,12 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
10427
10423
|
body: {
|
10428
10424
|
chainId: number;
|
10429
10425
|
startTimestamp: number;
|
10430
|
-
endTimestamp: number;
|
10431
10426
|
computeChainId: number;
|
10432
10427
|
amount: string;
|
10433
10428
|
rewardToken: string;
|
10434
10429
|
campaignType: number;
|
10430
|
+
duration: number;
|
10435
10431
|
campaignData: string;
|
10436
|
-
symbolRewardToken: string;
|
10437
|
-
decimalsRewardToken: number;
|
10438
10432
|
};
|
10439
10433
|
params: {};
|
10440
10434
|
query: unknown;
|
@@ -14424,14 +14418,12 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
14424
14418
|
post: (body: {
|
14425
14419
|
chainId: number;
|
14426
14420
|
startTimestamp: number;
|
14427
|
-
endTimestamp: number;
|
14428
14421
|
computeChainId: number;
|
14429
14422
|
amount: string;
|
14430
14423
|
rewardToken: string;
|
14431
14424
|
campaignType: number;
|
14425
|
+
duration: number;
|
14432
14426
|
campaignData: string;
|
14433
|
-
symbolRewardToken: string;
|
14434
|
-
decimalsRewardToken: number;
|
14435
14427
|
}, options: {
|
14436
14428
|
headers: {
|
14437
14429
|
authorization: string;
|
@@ -17471,14 +17463,12 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
17471
17463
|
post: (body: {
|
17472
17464
|
chainId: number;
|
17473
17465
|
startTimestamp: number;
|
17474
|
-
endTimestamp: number;
|
17475
17466
|
computeChainId: number;
|
17476
17467
|
amount: string;
|
17477
17468
|
rewardToken: string;
|
17478
17469
|
campaignType: number;
|
17470
|
+
duration: number;
|
17479
17471
|
campaignData: string;
|
17480
|
-
symbolRewardToken: string;
|
17481
|
-
decimalsRewardToken: number;
|
17482
17472
|
}, options: {
|
17483
17473
|
headers: {
|
17484
17474
|
authorization: string;
|
package/dist/src/index.d.ts
CHANGED
@@ -3635,14 +3635,12 @@ declare const app: Elysia<"", false, {
|
|
3635
3635
|
body: {
|
3636
3636
|
chainId: number;
|
3637
3637
|
startTimestamp: number;
|
3638
|
-
endTimestamp: number;
|
3639
3638
|
computeChainId: number;
|
3640
3639
|
amount: string;
|
3641
3640
|
rewardToken: string;
|
3642
3641
|
campaignType: number;
|
3642
|
+
duration: number;
|
3643
3643
|
campaignData: string;
|
3644
|
-
symbolRewardToken: string;
|
3645
|
-
decimalsRewardToken: number;
|
3646
3644
|
};
|
3647
3645
|
params: {};
|
3648
3646
|
query: unknown;
|
@@ -50,6 +50,7 @@ export var tokenType;
|
|
50
50
|
tokenType["baseswap"] = "baseswap";
|
51
51
|
tokenType["zkswap"] = "zkswap";
|
52
52
|
tokenType["ironcladStaking"] = "ironcladStaking";
|
53
|
+
tokenType["rfx_slv"] = "rfx_slv";
|
53
54
|
tokenType["rfx"] = "rfx";
|
54
55
|
tokenType["woofi"] = "woofi";
|
55
56
|
tokenType["pendle"] = "pendle";
|
@@ -174,4 +175,5 @@ export const tokenTypeToProtocol = {
|
|
174
175
|
[tokenType.vicuna_borrowing]: { protocol: "Vicuna", action: OpportunityAction.BORROW },
|
175
176
|
[tokenType.spectra_lpt]: { protocol: "Spectra", action: OpportunityAction.POOL },
|
176
177
|
[tokenType.spectra_yt]: { protocol: "Spectra", action: OpportunityAction.POOL },
|
178
|
+
[tokenType.rfx_slv]: { protocol: "RFX", action: OpportunityAction.POOL },
|
177
179
|
};
|
@@ -46,6 +46,8 @@ function satisfiesNameConditions(name, type) {
|
|
46
46
|
return lowerCaseName.startsWith("reactorfusion");
|
47
47
|
case tokenType.rfx:
|
48
48
|
return lowerCaseName.includes("rfx");
|
49
|
+
case tokenType.rfx_slv:
|
50
|
+
return lowerCaseName.includes("rfx") && lowerCaseName.includes("shared liquidity vault");
|
49
51
|
case tokenType.layerbank:
|
50
52
|
return lowerCaseName.includes("layerbank");
|
51
53
|
case tokenType.moonwell:
|
@@ -23,46 +23,59 @@ export async function HyperdriveDynamicData(chainId, campaigns) {
|
|
23
23
|
let i = 0;
|
24
24
|
const dynamicData = [];
|
25
25
|
for (const campaign of campaigns) {
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
symbol: campaign.campaignParameters.symbolRewardToken,
|
32
|
-
})) ?? 0;
|
33
|
-
const lpSupply = BN2Number(poolInfo.lpTotalSupply, 18);
|
34
|
-
const longSupply = BN2Number(poolInfo.longsOutstanding, 18);
|
35
|
-
const shortSupply = BN2Number(poolInfo.shortsOutstanding, 18);
|
36
|
-
const marketSupply = lpSupply * BN2Number(poolInfo.lpSharePrice, 18);
|
37
|
-
const priceBaseToken = (poolConfig.baseToken === ETH_ADDRESS
|
38
|
-
? await pricer.get({
|
26
|
+
try {
|
27
|
+
const poolInfo = HyperdriveTargetInterface.decodeFunctionResult("getPoolInfo", result[i])[0];
|
28
|
+
const poolConfig = HyperdriveTargetInterface.decodeFunctionResult("getPoolConfig", result[i + 1])[0];
|
29
|
+
const priceRewardToken = (await pricer.get({
|
30
|
+
address: campaign.rewardToken,
|
39
31
|
chainId,
|
40
|
-
symbol:
|
41
|
-
})
|
42
|
-
: await pricer.get({
|
43
|
-
address: campaign.campaignParameters.baseToken,
|
44
|
-
chainId,
|
45
|
-
symbol: campaign.campaignParameters.baseTokenSymbol,
|
32
|
+
symbol: campaign.campaignParameters.symbolRewardToken,
|
46
33
|
})) ?? 0;
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
:
|
64
|
-
|
65
|
-
|
34
|
+
const lpSupply = BN2Number(poolInfo.lpTotalSupply, 18);
|
35
|
+
const longSupply = BN2Number(poolInfo.longsOutstanding, 18);
|
36
|
+
const shortSupply = BN2Number(poolInfo.shortsOutstanding, 18);
|
37
|
+
const marketSupply = lpSupply * BN2Number(poolInfo.lpSharePrice, 18);
|
38
|
+
const priceBaseToken = (poolConfig.baseToken === ETH_ADDRESS
|
39
|
+
? await pricer.get({
|
40
|
+
chainId,
|
41
|
+
symbol: "ETH",
|
42
|
+
})
|
43
|
+
: await pricer.get({
|
44
|
+
address: campaign.campaignParameters.baseToken,
|
45
|
+
chainId,
|
46
|
+
symbol: campaign.campaignParameters.baseTokenSymbol,
|
47
|
+
})) ?? 0;
|
48
|
+
const tvl = campaign.campaignSubType === HyperDriveSubCampaignType.LP
|
49
|
+
? priceBaseToken * marketSupply
|
50
|
+
: campaign.campaignSubType === HyperDriveSubCampaignType.LONG
|
51
|
+
? priceBaseToken * longSupply
|
52
|
+
: priceBaseToken * shortSupply;
|
53
|
+
dynamicData.push({
|
54
|
+
...campaign,
|
55
|
+
totalSupplyTargetToken: marketSupply,
|
56
|
+
tvl: tvl,
|
57
|
+
apr: priceRewardToken !== 0
|
58
|
+
? (priceRewardToken *
|
59
|
+
BN2Number(campaign.amount, campaign.campaignParameters.decimalsRewardToken) *
|
60
|
+
YEAR *
|
61
|
+
100) /
|
62
|
+
campaign.campaignParameters.duration /
|
63
|
+
tvl
|
64
|
+
: 0,
|
65
|
+
priceRewardToken: priceRewardToken,
|
66
|
+
});
|
67
|
+
}
|
68
|
+
catch (e) {
|
69
|
+
dynamicData.push({
|
70
|
+
...campaign,
|
71
|
+
totalSupplyTargetToken: 0,
|
72
|
+
tvl: 0,
|
73
|
+
apr: 0,
|
74
|
+
priceRewardToken: 0,
|
75
|
+
});
|
76
|
+
console.error(e);
|
77
|
+
}
|
78
|
+
i += 2;
|
66
79
|
}
|
67
80
|
return dynamicData;
|
68
81
|
},
|
@@ -88,13 +88,20 @@ export class DynamicDataService {
|
|
88
88
|
parsedParams = campaign.params;
|
89
89
|
targetToken = parsedParams.poolId;
|
90
90
|
}
|
91
|
+
else if (campaign.type === Campaign[Campaign.UNISWAP_V4]) {
|
92
|
+
parsedParams = campaign.params;
|
93
|
+
targetToken = `0x${parsedParams.poolId.slice(-40)}`;
|
94
|
+
}
|
91
95
|
else {
|
92
96
|
parsedParams = campaign.params;
|
93
97
|
targetToken = parsedParams.targetToken;
|
94
98
|
}
|
95
|
-
|
96
|
-
|
97
|
-
|
99
|
+
if (parsedParams.whitelist.length > 0) {
|
100
|
+
return utils
|
101
|
+
.keccak256(utils.defaultAbiCoder.encode(["string", "address[]"], [targetToken, parsedParams.whitelist.sort()]))
|
102
|
+
.slice(0, 42);
|
103
|
+
}
|
104
|
+
return targetToken;
|
98
105
|
}
|
99
106
|
static async queryDynamicData(campaign) {
|
100
107
|
const campaignParameters = DynamicDataService.generateDummyData(campaign);
|
@@ -90,7 +90,7 @@ export class OpportunityService {
|
|
90
90
|
return getEulerMetadata(chainId, campaign.campaignId, campaign.subType, campaign.rewardTokenAddress, campaign.amount, campaignParams);
|
91
91
|
case "HYPERDRIVELOGPROCESSOR":
|
92
92
|
case "HYPERDRIVELOGFIXPROCESSOR":
|
93
|
-
return getHyperdriveMetadata(chainId,
|
93
|
+
return getHyperdriveMetadata(chainId, campaign.subType, campaignParams);
|
94
94
|
case "AMBIENTPROCESSOR":
|
95
95
|
return getAmbientMetadata(chainId, campaignParams);
|
96
96
|
case "UNISWAP_V4":
|
@@ -250,14 +250,12 @@ export declare const ProgramPayloadController: Elysia<"/program-payload", false,
|
|
250
250
|
body: {
|
251
251
|
chainId: number;
|
252
252
|
startTimestamp: number;
|
253
|
-
endTimestamp: number;
|
254
253
|
computeChainId: number;
|
255
254
|
amount: string;
|
256
255
|
rewardToken: string;
|
257
256
|
campaignType: number;
|
257
|
+
duration: number;
|
258
258
|
campaignData: string;
|
259
|
-
symbolRewardToken: string;
|
260
|
-
decimalsRewardToken: number;
|
261
259
|
};
|
262
260
|
params: {};
|
263
261
|
query: unknown;
|
@@ -15,11 +15,9 @@ export declare const CampaignDataDto: import("@sinclair/typebox").TObject<{
|
|
15
15
|
amount: import("@sinclair/typebox").TString;
|
16
16
|
chainId: import("@sinclair/typebox").TNumber;
|
17
17
|
computeChainId: import("@sinclair/typebox").TNumber;
|
18
|
-
|
18
|
+
duration: import("@sinclair/typebox").TNumber;
|
19
19
|
rewardToken: import("@sinclair/typebox").TString;
|
20
20
|
startTimestamp: import("@sinclair/typebox").TNumber;
|
21
|
-
symbolRewardToken: import("@sinclair/typebox").TString;
|
22
|
-
decimalsRewardToken: import("@sinclair/typebox").TNumber;
|
23
21
|
}>;
|
24
22
|
export declare const SinglePayloadInputDto: import("@sinclair/typebox").TObject<{
|
25
23
|
distributionChainId: import("@sinclair/typebox").TNumber;
|
@@ -16,11 +16,9 @@ export const CampaignDataDto = t.Object({
|
|
16
16
|
amount: t.String({ description: "Amount of the reward token to be distributed" }),
|
17
17
|
chainId: t.Numeric({ description: "Chain ID where the reward tokens will be distributed" }),
|
18
18
|
computeChainId: t.Numeric({ description: "Chain ID used for computation" }),
|
19
|
-
|
19
|
+
duration: t.Numeric({ description: "Duration for the campaign" }),
|
20
20
|
rewardToken: t.String({ description: "Address of the reward token to be distributed" }),
|
21
21
|
startTimestamp: t.Numeric({ description: "Start timestamp for the campaign" }),
|
22
|
-
symbolRewardToken: t.String({ description: "Symbol of the reward token" }),
|
23
|
-
decimalsRewardToken: t.Numeric({ description: "Decimals of the reward token" }),
|
24
22
|
});
|
25
23
|
export const SinglePayloadInputDto = t.Object({
|
26
24
|
distributionChainId: t.Numeric({ description: "Chain ID where the reward tokens will be distributed" }),
|
@@ -90,7 +90,9 @@ export declare enum pufferCampaigns {
|
|
90
90
|
venus_pufeth = "0xE0ee5dDeBFe0abe0a4Af50299D68b74Cec31668e",
|
91
91
|
unifiBTC = "0x170D847A8320F3B6A77eE15B0CAE430e3eC933a0",
|
92
92
|
unifiUSD = "0x82c40e07277eBb92935f79cE92268F80dDc7caB4",
|
93
|
-
CARROT_USDC = "0xf00032d0F95e8f43E750C51d0188DCa33cC5a8eA"
|
93
|
+
CARROT_USDC = "0xf00032d0F95e8f43E750C51d0188DCa33cC5a8eA",
|
94
|
+
sonex_pufETH_USDCe_1 = "0x4A0e0E8d5DF4AEC0a08359e599720628b179F7eD",
|
95
|
+
sonex_pufETH_USDCe_5 = "0x2646FAD13ef9BD063790d2719De1da290865D58f"
|
94
96
|
}
|
95
97
|
export declare enum zkSyncCampaigns {
|
96
98
|
Izumi_Finance_Zk_Weth = "Izumi Finance ZK/WETH 0xd62bc9f19bd94fde9c41df4b6eb6419ea6b8e25c",
|
@@ -95,6 +95,8 @@ export var pufferCampaigns;
|
|
95
95
|
pufferCampaigns["unifiBTC"] = "0x170D847A8320F3B6A77eE15B0CAE430e3eC933a0";
|
96
96
|
pufferCampaigns["unifiUSD"] = "0x82c40e07277eBb92935f79cE92268F80dDc7caB4";
|
97
97
|
pufferCampaigns["CARROT_USDC"] = "0xf00032d0F95e8f43E750C51d0188DCa33cC5a8eA";
|
98
|
+
pufferCampaigns["sonex_pufETH_USDCe_1"] = "0x4A0e0E8d5DF4AEC0a08359e599720628b179F7eD";
|
99
|
+
pufferCampaigns["sonex_pufETH_USDCe_5"] = "0x2646FAD13ef9BD063790d2719De1da290865D58f";
|
98
100
|
})(pufferCampaigns || (pufferCampaigns = {}));
|
99
101
|
export var zkSyncCampaigns;
|
100
102
|
(function (zkSyncCampaigns) {
|
@@ -3337,6 +3339,32 @@ const PufferInterfaceCampaigns = {
|
|
3337
3339
|
weightToken0: 5000,
|
3338
3340
|
weightToken1: 5000,
|
3339
3341
|
},
|
3342
|
+
[pufferCampaigns.sonex_pufETH_USDCe_1]: {
|
3343
|
+
campaignType: Campaign.CLAMM,
|
3344
|
+
computeChainId: ChainId.SONEIUM,
|
3345
|
+
poolAddress: "0x4A0e0E8d5DF4AEC0a08359e599720628b179F7eD",
|
3346
|
+
hooks: [],
|
3347
|
+
whitelist: [],
|
3348
|
+
blacklist: [],
|
3349
|
+
url: "https://app.sonex.so/explore/pools/0x4A0e0E8d5DF4AEC0a08359e599720628b179F7eD",
|
3350
|
+
isOutOfRangeIncentivized: false,
|
3351
|
+
weightFees: 0,
|
3352
|
+
weightToken0: 5000,
|
3353
|
+
weightToken1: 5000,
|
3354
|
+
},
|
3355
|
+
[pufferCampaigns.sonex_pufETH_USDCe_5]: {
|
3356
|
+
campaignType: Campaign.CLAMM,
|
3357
|
+
computeChainId: ChainId.SONEIUM,
|
3358
|
+
poolAddress: "0x2646FAD13ef9BD063790d2719De1da290865D58f",
|
3359
|
+
hooks: [],
|
3360
|
+
whitelist: [],
|
3361
|
+
blacklist: [],
|
3362
|
+
url: "https://app.sonex.so/explore/pools/0x2646FAD13ef9BD063790d2719De1da290865D58f",
|
3363
|
+
isOutOfRangeIncentivized: false,
|
3364
|
+
weightFees: 0,
|
3365
|
+
weightToken0: 5000,
|
3366
|
+
weightToken1: 5000,
|
3367
|
+
},
|
3340
3368
|
[pufferCampaigns.uniswapv3_weth_PUFFER]: {
|
3341
3369
|
campaignType: Campaign.CLAMM,
|
3342
3370
|
computeChainId: ChainId.MAINNET,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { CampaignTypeConfigResourceMapping, ChainId, NULL_ADDRESS, NULL_ROOT,
|
1
|
+
import { CampaignTypeConfigResourceMapping, ChainId, NULL_ADDRESS, NULL_ROOT, buildCampaignPayload, encodeForwarderData, parseCampaign, registry, } from "@sdk";
|
2
2
|
import _ from "lodash";
|
3
3
|
import { safeTemplate, } from "./programPayload.model";
|
4
4
|
import { MerklInterfaceCampaigns } from "./programPayload.repository";
|
@@ -176,24 +176,19 @@ export class ProgramPayloadService {
|
|
176
176
|
return campaignPayloads;
|
177
177
|
}
|
178
178
|
static async buildConfigFromCampaignData(body) {
|
179
|
-
const parser = ParserService(body.campaignType);
|
180
179
|
const base = {
|
181
|
-
amount: body.amount,
|
182
180
|
campaignId: "0xdefaultId",
|
183
|
-
campaignSubType: 0,
|
184
|
-
campaignType: body.campaignType,
|
185
|
-
chainId: body.chainId,
|
186
|
-
computeChainId: body.computeChainId,
|
187
181
|
creator: "Oxcreator",
|
188
|
-
endTimestamp: body.endTimestamp,
|
189
|
-
index: 0,
|
190
|
-
mainParameter: " ".repeat(42),
|
191
182
|
rewardToken: body.rewardToken,
|
183
|
+
amount: body.amount,
|
184
|
+
campaignType: body.campaignType,
|
192
185
|
startTimestamp: body.startTimestamp,
|
186
|
+
duration: body.duration,
|
187
|
+
campaignData: body.campaignData,
|
193
188
|
};
|
194
189
|
try {
|
195
190
|
console.log("Parsing campaign data");
|
196
|
-
const res = await
|
191
|
+
const res = await parseCampaign(body.chainId, base, 0);
|
197
192
|
if (res.success) {
|
198
193
|
return res;
|
199
194
|
}
|
@@ -34,11 +34,6 @@ export class RewardConvertorService {
|
|
34
34
|
BigInt(claimed)).toString();
|
35
35
|
res[rewardToken].reasons[reason].pending = (BigInt(res[rewardToken].reasons[reason].pending ?? "0") + BigInt(pending)).toString();
|
36
36
|
}
|
37
|
-
res[rewardToken].accumulated = (BigInt(res[rewardToken].accumulated) + BigInt(amount)).toString();
|
38
|
-
res[rewardToken].unclaimed = (BigInt(res[rewardToken].unclaimed) +
|
39
|
-
BigInt(amount) -
|
40
|
-
BigInt(claimed)).toString();
|
41
|
-
res[rewardToken].pending = (BigInt(res[rewardToken].pending ?? "0") + BigInt(pending)).toString();
|
42
37
|
}
|
43
38
|
}
|
44
39
|
}
|
@@ -3505,14 +3505,12 @@ export declare const v4: Elysia<"/v4", false, {
|
|
3505
3505
|
body: {
|
3506
3506
|
chainId: number;
|
3507
3507
|
startTimestamp: number;
|
3508
|
-
endTimestamp: number;
|
3509
3508
|
computeChainId: number;
|
3510
3509
|
amount: string;
|
3511
3510
|
rewardToken: string;
|
3512
3511
|
campaignType: number;
|
3512
|
+
duration: number;
|
3513
3513
|
campaignData: string;
|
3514
|
-
symbolRewardToken: string;
|
3515
|
-
decimalsRewardToken: number;
|
3516
3514
|
};
|
3517
3515
|
params: {};
|
3518
3516
|
query: unknown;
|
@@ -191,6 +191,7 @@ export function decodeReturnValue(returnData, key, type) {
|
|
191
191
|
switch (type) {
|
192
192
|
case tokenType.anglesLiquid:
|
193
193
|
case tokenType.cian:
|
194
|
+
case tokenType.rfx_slv:
|
194
195
|
return ERC4626Interface.decodeFunctionResult("totalAssets", returnData)[0];
|
195
196
|
case tokenType.concrete:
|
196
197
|
return ERC4626Interface.decodeFunctionResult("totalAssets", returnData)[0];
|
@@ -247,6 +247,7 @@ export function createCall(target, key, type, metaData) {
|
|
247
247
|
switch (type) {
|
248
248
|
case tokenType.anglesLiquid:
|
249
249
|
case tokenType.cian:
|
250
|
+
case tokenType.rfx_slv:
|
250
251
|
return {
|
251
252
|
allowFailure: true,
|
252
253
|
callData: ERC4626Interface.encodeFunctionData("totalAssets"),
|
@@ -134,6 +134,8 @@ export function generateCardName(type, typeInfo, campaign, symbols = [""], displ
|
|
134
134
|
case tokenType.concrete:
|
135
135
|
case tokenType.cian:
|
136
136
|
return `Deposit ${typeInfo.symbolAsset} into ${typeInfo.name.replace("Ether.Fi", "Veda")}`;
|
137
|
+
case tokenType.rfx_slv:
|
138
|
+
return `Deposit ${typeInfo.symbolAsset} into ${typeInfo.name}`;
|
137
139
|
case tokenType.equalizer_gauge:
|
138
140
|
return `${displayName}`;
|
139
141
|
case tokenType.anglesLiquid:
|