@merkl/api 0.15.24 → 0.15.26
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 +152 -15
- package/dist/src/entities/opportunity.js +3 -1
- package/dist/src/index.d.ts +40 -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/boost/boost.controller.d.ts +39 -0
- package/dist/src/modules/v4/boost/boost.controller.js +6 -1
- package/dist/src/modules/v4/boost/boost.service.d.ts +4 -0
- package/dist/src/modules/v4/boost/boost.service.js +23 -0
- 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 +4 -1
- package/dist/src/modules/v4/programPayload/programPayload.repository.js +39 -0
- package/dist/src/modules/v4/programPayload/programPayload.service.js +6 -11
- package/dist/src/modules/v4/router.d.ts +40 -3
- package/dist/src/modules/v4/user/user.controller.js +5 -3
- package/dist/src/utils/decodeCalls.js +1 -0
- package/dist/src/utils/encodeCalls.js +1 -0
- package/dist/src/utils/generateCardName.js +4 -2
- 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;
|
@@ -2997,6 +2995,33 @@ declare const eden: {
|
|
2997
2995
|
}[];
|
2998
2996
|
}>>;
|
2999
2997
|
};
|
2998
|
+
openBlock: {
|
2999
|
+
post: (body: {
|
3000
|
+
address: string;
|
3001
|
+
score: string;
|
3002
|
+
}[] | {
|
3003
|
+
addresses: string[];
|
3004
|
+
}, options?: {
|
3005
|
+
headers?: Record<string, unknown> | undefined;
|
3006
|
+
query?: Record<string, unknown> | undefined;
|
3007
|
+
fetch?: RequestInit | undefined;
|
3008
|
+
} | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
3009
|
+
200: {
|
3010
|
+
address: string;
|
3011
|
+
boost: string;
|
3012
|
+
}[];
|
3013
|
+
}>>;
|
3014
|
+
get: (options?: {
|
3015
|
+
headers?: Record<string, unknown> | undefined;
|
3016
|
+
query?: Record<string, unknown> | undefined;
|
3017
|
+
fetch?: RequestInit | undefined;
|
3018
|
+
} | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
3019
|
+
200: {
|
3020
|
+
address: string;
|
3021
|
+
boost: string;
|
3022
|
+
}[];
|
3023
|
+
}>>;
|
3024
|
+
};
|
3000
3025
|
};
|
3001
3026
|
value: {
|
3002
3027
|
campaign: ((params: {
|
@@ -5995,14 +6020,12 @@ declare const eden: {
|
|
5995
6020
|
post: (body: {
|
5996
6021
|
chainId: number;
|
5997
6022
|
startTimestamp: number;
|
5998
|
-
endTimestamp: number;
|
5999
6023
|
computeChainId: number;
|
6000
6024
|
amount: string;
|
6001
6025
|
rewardToken: string;
|
6002
6026
|
campaignType: number;
|
6027
|
+
duration: number;
|
6003
6028
|
campaignData: string;
|
6004
|
-
symbolRewardToken: string;
|
6005
|
-
decimalsRewardToken: number;
|
6006
6029
|
}, options: {
|
6007
6030
|
headers: {
|
6008
6031
|
authorization: string;
|
@@ -6044,6 +6067,33 @@ declare const eden: {
|
|
6044
6067
|
}[];
|
6045
6068
|
}>>;
|
6046
6069
|
};
|
6070
|
+
openBlock: {
|
6071
|
+
post: (body: {
|
6072
|
+
address: string;
|
6073
|
+
score: string;
|
6074
|
+
}[] | {
|
6075
|
+
addresses: string[];
|
6076
|
+
}, options?: {
|
6077
|
+
headers?: Record<string, unknown> | undefined;
|
6078
|
+
query?: Record<string, unknown> | undefined;
|
6079
|
+
fetch?: RequestInit | undefined;
|
6080
|
+
} | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
6081
|
+
200: {
|
6082
|
+
address: string;
|
6083
|
+
boost: string;
|
6084
|
+
}[];
|
6085
|
+
}>>;
|
6086
|
+
get: (options?: {
|
6087
|
+
headers?: Record<string, unknown> | undefined;
|
6088
|
+
query?: Record<string, unknown> | undefined;
|
6089
|
+
fetch?: RequestInit | undefined;
|
6090
|
+
} | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
6091
|
+
200: {
|
6092
|
+
address: string;
|
6093
|
+
boost: string;
|
6094
|
+
}[];
|
6095
|
+
}>>;
|
6096
|
+
};
|
6047
6097
|
};
|
6048
6098
|
value: {
|
6049
6099
|
campaign: ((params: {
|
@@ -10427,14 +10477,12 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
10427
10477
|
body: {
|
10428
10478
|
chainId: number;
|
10429
10479
|
startTimestamp: number;
|
10430
|
-
endTimestamp: number;
|
10431
10480
|
computeChainId: number;
|
10432
10481
|
amount: string;
|
10433
10482
|
rewardToken: string;
|
10434
10483
|
campaignType: number;
|
10484
|
+
duration: number;
|
10435
10485
|
campaignData: string;
|
10436
|
-
symbolRewardToken: string;
|
10437
|
-
decimalsRewardToken: number;
|
10438
10486
|
};
|
10439
10487
|
params: {};
|
10440
10488
|
query: unknown;
|
@@ -10490,6 +10538,45 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
10490
10538
|
};
|
10491
10539
|
};
|
10492
10540
|
};
|
10541
|
+
} & {
|
10542
|
+
boosts: {
|
10543
|
+
openBlock: {
|
10544
|
+
post: {
|
10545
|
+
body: {
|
10546
|
+
addresses: string[];
|
10547
|
+
} | {
|
10548
|
+
address: string;
|
10549
|
+
score: string;
|
10550
|
+
}[];
|
10551
|
+
params: {};
|
10552
|
+
query: unknown;
|
10553
|
+
headers: unknown;
|
10554
|
+
response: {
|
10555
|
+
200: {
|
10556
|
+
address: string;
|
10557
|
+
boost: string;
|
10558
|
+
}[];
|
10559
|
+
};
|
10560
|
+
};
|
10561
|
+
};
|
10562
|
+
};
|
10563
|
+
} & {
|
10564
|
+
boosts: {
|
10565
|
+
openBlock: {
|
10566
|
+
get: {
|
10567
|
+
body: unknown;
|
10568
|
+
params: {};
|
10569
|
+
query: unknown;
|
10570
|
+
headers: unknown;
|
10571
|
+
response: {
|
10572
|
+
200: {
|
10573
|
+
address: string;
|
10574
|
+
boost: string;
|
10575
|
+
}[];
|
10576
|
+
};
|
10577
|
+
};
|
10578
|
+
};
|
10579
|
+
};
|
10493
10580
|
};
|
10494
10581
|
} & {
|
10495
10582
|
v4: {
|
@@ -14424,14 +14511,12 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
14424
14511
|
post: (body: {
|
14425
14512
|
chainId: number;
|
14426
14513
|
startTimestamp: number;
|
14427
|
-
endTimestamp: number;
|
14428
14514
|
computeChainId: number;
|
14429
14515
|
amount: string;
|
14430
14516
|
rewardToken: string;
|
14431
14517
|
campaignType: number;
|
14518
|
+
duration: number;
|
14432
14519
|
campaignData: string;
|
14433
|
-
symbolRewardToken: string;
|
14434
|
-
decimalsRewardToken: number;
|
14435
14520
|
}, options: {
|
14436
14521
|
headers: {
|
14437
14522
|
authorization: string;
|
@@ -14473,6 +14558,33 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
14473
14558
|
}[];
|
14474
14559
|
}>>;
|
14475
14560
|
};
|
14561
|
+
openBlock: {
|
14562
|
+
post: (body: {
|
14563
|
+
address: string;
|
14564
|
+
score: string;
|
14565
|
+
}[] | {
|
14566
|
+
addresses: string[];
|
14567
|
+
}, options?: {
|
14568
|
+
headers?: Record<string, unknown> | undefined;
|
14569
|
+
query?: Record<string, unknown> | undefined;
|
14570
|
+
fetch?: RequestInit | undefined;
|
14571
|
+
} | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
14572
|
+
200: {
|
14573
|
+
address: string;
|
14574
|
+
boost: string;
|
14575
|
+
}[];
|
14576
|
+
}>>;
|
14577
|
+
get: (options?: {
|
14578
|
+
headers?: Record<string, unknown> | undefined;
|
14579
|
+
query?: Record<string, unknown> | undefined;
|
14580
|
+
fetch?: RequestInit | undefined;
|
14581
|
+
} | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
14582
|
+
200: {
|
14583
|
+
address: string;
|
14584
|
+
boost: string;
|
14585
|
+
}[];
|
14586
|
+
}>>;
|
14587
|
+
};
|
14476
14588
|
};
|
14477
14589
|
value: {
|
14478
14590
|
campaign: ((params: {
|
@@ -17471,14 +17583,12 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
17471
17583
|
post: (body: {
|
17472
17584
|
chainId: number;
|
17473
17585
|
startTimestamp: number;
|
17474
|
-
endTimestamp: number;
|
17475
17586
|
computeChainId: number;
|
17476
17587
|
amount: string;
|
17477
17588
|
rewardToken: string;
|
17478
17589
|
campaignType: number;
|
17590
|
+
duration: number;
|
17479
17591
|
campaignData: string;
|
17480
|
-
symbolRewardToken: string;
|
17481
|
-
decimalsRewardToken: number;
|
17482
17592
|
}, options: {
|
17483
17593
|
headers: {
|
17484
17594
|
authorization: string;
|
@@ -17520,6 +17630,33 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
17520
17630
|
}[];
|
17521
17631
|
}>>;
|
17522
17632
|
};
|
17633
|
+
openBlock: {
|
17634
|
+
post: (body: {
|
17635
|
+
address: string;
|
17636
|
+
score: string;
|
17637
|
+
}[] | {
|
17638
|
+
addresses: string[];
|
17639
|
+
}, options?: {
|
17640
|
+
headers?: Record<string, unknown> | undefined;
|
17641
|
+
query?: Record<string, unknown> | undefined;
|
17642
|
+
fetch?: RequestInit | undefined;
|
17643
|
+
} | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
17644
|
+
200: {
|
17645
|
+
address: string;
|
17646
|
+
boost: string;
|
17647
|
+
}[];
|
17648
|
+
}>>;
|
17649
|
+
get: (options?: {
|
17650
|
+
headers?: Record<string, unknown> | undefined;
|
17651
|
+
query?: Record<string, unknown> | undefined;
|
17652
|
+
fetch?: RequestInit | undefined;
|
17653
|
+
} | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
17654
|
+
200: {
|
17655
|
+
address: string;
|
17656
|
+
boost: string;
|
17657
|
+
}[];
|
17658
|
+
}>>;
|
17659
|
+
};
|
17523
17660
|
};
|
17524
17661
|
value: {
|
17525
17662
|
campaign: ((params: {
|
@@ -73,7 +73,9 @@ export const extractOpportunities = {
|
|
73
73
|
const opportunity = {
|
74
74
|
id: `${Campaign.CLAMM}_${mainParameter}`,
|
75
75
|
platform: platform,
|
76
|
-
name: [platform, pair, params.poolFee && `${params.poolFee} %`, subCampaignTag]
|
76
|
+
name: [platform, pair, params.poolFee && `${params.poolFee} %`, subCampaignTag]
|
77
|
+
.join(" ")
|
78
|
+
.replace("AlgebraV1_2", ""),
|
77
79
|
chainId: !computeChainId ? chainId : computeChainId,
|
78
80
|
distributionChainId: chainId,
|
79
81
|
action: "pool",
|
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;
|
@@ -3698,6 +3696,45 @@ declare const app: Elysia<"", false, {
|
|
3698
3696
|
};
|
3699
3697
|
};
|
3700
3698
|
};
|
3699
|
+
} & {
|
3700
|
+
boosts: {
|
3701
|
+
openBlock: {
|
3702
|
+
post: {
|
3703
|
+
body: {
|
3704
|
+
addresses: string[];
|
3705
|
+
} | {
|
3706
|
+
address: string;
|
3707
|
+
score: string;
|
3708
|
+
}[];
|
3709
|
+
params: {};
|
3710
|
+
query: unknown;
|
3711
|
+
headers: unknown;
|
3712
|
+
response: {
|
3713
|
+
200: {
|
3714
|
+
address: string;
|
3715
|
+
boost: string;
|
3716
|
+
}[];
|
3717
|
+
};
|
3718
|
+
};
|
3719
|
+
};
|
3720
|
+
};
|
3721
|
+
} & {
|
3722
|
+
boosts: {
|
3723
|
+
openBlock: {
|
3724
|
+
get: {
|
3725
|
+
body: unknown;
|
3726
|
+
params: {};
|
3727
|
+
query: unknown;
|
3728
|
+
headers: unknown;
|
3729
|
+
response: {
|
3730
|
+
200: {
|
3731
|
+
address: string;
|
3732
|
+
boost: string;
|
3733
|
+
}[];
|
3734
|
+
};
|
3735
|
+
};
|
3736
|
+
};
|
3737
|
+
};
|
3701
3738
|
};
|
3702
3739
|
} & {
|
3703
3740
|
v4: {
|
@@ -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
|
},
|
@@ -50,6 +50,45 @@ export declare const BoostController: Elysia<"/boosts", false, {
|
|
50
50
|
};
|
51
51
|
};
|
52
52
|
};
|
53
|
+
} & {
|
54
|
+
boosts: {
|
55
|
+
openBlock: {
|
56
|
+
post: {
|
57
|
+
body: {
|
58
|
+
addresses: string[];
|
59
|
+
} | {
|
60
|
+
address: string;
|
61
|
+
score: string;
|
62
|
+
}[];
|
63
|
+
params: {};
|
64
|
+
query: unknown;
|
65
|
+
headers: unknown;
|
66
|
+
response: {
|
67
|
+
200: {
|
68
|
+
address: string;
|
69
|
+
boost: string;
|
70
|
+
}[];
|
71
|
+
};
|
72
|
+
};
|
73
|
+
};
|
74
|
+
};
|
75
|
+
} & {
|
76
|
+
boosts: {
|
77
|
+
openBlock: {
|
78
|
+
get: {
|
79
|
+
body: unknown;
|
80
|
+
params: {};
|
81
|
+
query: unknown;
|
82
|
+
headers: unknown;
|
83
|
+
response: {
|
84
|
+
200: {
|
85
|
+
address: string;
|
86
|
+
boost: string;
|
87
|
+
}[];
|
88
|
+
};
|
89
|
+
};
|
90
|
+
};
|
91
|
+
};
|
53
92
|
}, {
|
54
93
|
derive: {};
|
55
94
|
resolve: {};
|
@@ -7,4 +7,9 @@ export const BoostController = new Elysia({ prefix: "/boosts", detail: { tags: [
|
|
7
7
|
body: getEulerBoostBody,
|
8
8
|
detail: { hide: true },
|
9
9
|
})
|
10
|
-
.get("/euler", async () => BoostService.getEulerBoost())
|
10
|
+
.get("/euler", async () => BoostService.getEulerBoost())
|
11
|
+
.post("/openBlock", async ({ body }) => BoostService.getOpenBlockBoost(), {
|
12
|
+
body: getEulerBoostBody,
|
13
|
+
detail: { hide: true },
|
14
|
+
})
|
15
|
+
.get("/openBlock", async () => BoostService.getOpenBlockBoost());
|
@@ -3,4 +3,27 @@ export class BoostService {
|
|
3
3
|
static async getEulerBoost() {
|
4
4
|
return (await axios.get("https://points.euler.finance/integrations/merkl/usd0multipliers")).data.map(({ address, score }) => ({ address, boost: score }));
|
5
5
|
}
|
6
|
+
static async getOpenBlockBoost() {
|
7
|
+
return [
|
8
|
+
{ address: "0x684566c9ffcac7f6a04c3a9997000d2d58c00824", boost: "0" },
|
9
|
+
{ address: "0x29dfdd80d6acc0f9028d8a6fa7d7d448342e25c1", boost: "0" },
|
10
|
+
{ address: "0x5b9effdcbd65946f2b143725dc244563248aa4ee", boost: "0" },
|
11
|
+
{ address: "0xd2262a05e225ce0c61fb699fdcf14068132dd362", boost: "0" },
|
12
|
+
{ address: "0x7da8481e24303d55f29f0c06174f18b30b81c9ac", boost: "0" },
|
13
|
+
{ address: "0x1d098a8d7fa63a39e0884b720f86f9ba8cbbeef1", boost: "0" },
|
14
|
+
{ address: "0x7f3e3d663a5f29274d0809020c675f5cc3d1429a", boost: "0" },
|
15
|
+
{ address: "0x7f04f7fdad3272b806e3d57bec445e0ece82f2ad", boost: "0" },
|
16
|
+
{ address: "0xfe769b6f39a000ff508b5baf8fbe3a1f516f258c", boost: "0" },
|
17
|
+
{ address: "0xd635736f8ac2241cdfcc3ee02d3f3bac1f78431f", boost: "0" },
|
18
|
+
{ address: "0xb38c7e2b4ba3cdc4eaea863cbb01470353c5ea16", boost: "0" },
|
19
|
+
{ address: "0xe37885b5e1187f7f618407fb0c14a3383998348e", boost: "0" },
|
20
|
+
{ address: "0xe01f660b304be815627628c38c2dcdf37f68245e", boost: "0" },
|
21
|
+
{ address: "0xe746db07d2b4babf5f2051d40987b7278414192f", boost: "0" },
|
22
|
+
{ address: "0xa0265ed27561b25c0e7ad3ed1fed74c2ee5f8cdf", boost: "0" },
|
23
|
+
{ address: "0xdf5ad5a87fceaacb1ecef40e8e61c42c92339a10", boost: "0" },
|
24
|
+
{ address: "0xc91fc9dd7f1bb6ec429eddb577b9ace6236b2147", boost: "0" },
|
25
|
+
{ address: "0x8b81420441ac3933c58d1190c8499c2f89eb1263", boost: "0" },
|
26
|
+
{ address: "0x0000000000000000000000000000000000000000", boost: "1" },
|
27
|
+
];
|
28
|
+
}
|
6
29
|
}
|
@@ -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;
|