@merkl/api 0.20.117 → 0.20.118

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.
@@ -61,6 +61,6 @@ const map = {
61
61
  [Campaign.ERC1155FIXAPR]: new ERCMultiTokenDynamicData(),
62
62
  [Campaign.ERC721]: new ERC721DynamicData(),
63
63
  [Campaign.ERC721FIXAPR]: new ERC721DynamicData(),
64
- [Campaign.MULTILOG]: new DefaultDynamicData(), // TODO
64
+ [Campaign.MULTILOG]: new DefaultDynamicData(),
65
65
  };
66
66
  export const dynamicDataBuilderFactory = (campaignType) => map[campaignType];
@@ -0,0 +1,8 @@
1
+ import { type Campaign as CampaignType } from "@sdk";
2
+ import type { MetadataBuilder } from "@/engine/metadata/interface";
3
+ import type { CampaignWithParams } from "@/modules/v4/campaign";
4
+ type campaignType = CampaignType.MULTILOG;
5
+ export declare class MultiLogMetaData implements MetadataBuilder<campaignType> {
6
+ build(campaign: Omit<CampaignWithParams<campaignType>, "manualOverrides">): Promise<import("@/engine/metadata/interface").Metadata>;
7
+ }
8
+ export {};
@@ -0,0 +1,36 @@
1
+ import { ComposedType } from "@sdk";
2
+ import { metadataBuilderFactory } from "@/engine/metadata/factory";
3
+ export class MultiLogMetaData {
4
+ async build(campaign) {
5
+ const mainComposed = campaign.params.composedCampaigns.find(composedCampaign => composedCampaign.composedType === ComposedType.main);
6
+ if (!mainComposed) {
7
+ throw new Error("Main composed campaign not found");
8
+ }
9
+ const mainComposedComplete = {
10
+ ...mainComposed,
11
+ id: campaign.id,
12
+ campaignType: mainComposed.campaignType,
13
+ campaignSubType: mainComposed.campaignSubType,
14
+ distributionChainId: campaign.distributionChainId,
15
+ type: "",
16
+ distributionType: campaign.distributionType,
17
+ subType: null,
18
+ params: mainComposed.campaignParameters,
19
+ computeChainId: mainComposed.computeChainId,
20
+ creator: {
21
+ address: "",
22
+ tags: [],
23
+ creatorId: null,
24
+ },
25
+ creatorAddress: campaign.creatorAddress,
26
+ createdAt: campaign.createdAt,
27
+ chain: {
28
+ id: 0,
29
+ name: "",
30
+ icon: "",
31
+ },
32
+ rewardToken: campaign.rewardToken,
33
+ };
34
+ return await metadataBuilderFactory(mainComposed.campaignType).build(mainComposedComplete, "");
35
+ }
36
+ }
@@ -0,0 +1,7 @@
1
+ import type { TVLBuilder, TVLData } from "@/engine/tvl/interface";
2
+ import { type CampaignParameters, type Campaign as CampaignType, type MerklChainId } from "@sdk";
3
+ type campaignType = CampaignType.MULTILOG;
4
+ export declare class MultiLogTVLBuilder implements TVLBuilder<campaignType> {
5
+ build(computeChainId: MerklChainId, campaigns: CampaignParameters<campaignType>[]): Promise<TVLData<CampaignType.MULTILOG>>;
6
+ }
7
+ export {};
@@ -0,0 +1,19 @@
1
+ import { DynamicDataService } from "@/modules/v4/dynamicData/dynamicData.service";
2
+ import { ComposedType } from "@sdk";
3
+ export class MultiLogTVLBuilder {
4
+ async build(computeChainId, campaigns) {
5
+ const tvls = [];
6
+ for (const campaign of campaigns) {
7
+ const mainComposed = campaign.campaignParameters.composedCampaigns.find(composedCampaign => composedCampaign.composedType === ComposedType.main);
8
+ if (mainComposed) {
9
+ const mainCampaignTVL = (await DynamicDataService.update(mainComposed.computeChainId, mainComposed.campaignType, [mainComposed], true))[0];
10
+ tvls.push({
11
+ campaign: campaign,
12
+ tvl: typeof mainCampaignTVL.tvl === "string" ? Number(mainCampaignTVL.tvl) : mainCampaignTVL.tvl.total,
13
+ tvlBreakdown: [],
14
+ });
15
+ }
16
+ }
17
+ return tvls;
18
+ }
19
+ }
@@ -19,6 +19,7 @@ import { InvalidMetadata } from "../implementations/Invalid/metadata";
19
19
  import { IonMetadata } from "../implementations/Ion/metadata";
20
20
  import { JsonAirdropMetadata } from "../implementations/JsonAirdrop/metadata";
21
21
  import { MorphoMetadata } from "../implementations/Morpho/metadata";
22
+ import { MultiLogMetaData } from "../implementations/MultiLog/metadata";
22
23
  import { RadiantMetadata } from "../implementations/Radiant/metadata";
23
24
  import { SiloMetadata } from "../implementations/Silo/metadata";
24
25
  import { UniswapV4Metadata } from "../implementations/UniswapV4/metadata";
@@ -67,6 +68,6 @@ const map = {
67
68
  [Campaign.ERC1155FIXAPR]: new ErcMultiTokenMetadata(),
68
69
  [Campaign.ERC721]: new Erc721Metadata(),
69
70
  [Campaign.ERC721FIXAPR]: new Erc721Metadata(),
70
- [Campaign.MULTILOG]: new DefaultMetadata(), // TODO
71
+ [Campaign.MULTILOG]: new MultiLogMetaData(),
71
72
  };
72
73
  export const metadataBuilderFactory = (campaignType) => map[campaignType];
@@ -4,6 +4,7 @@ import { AjnaTVLBuilder } from "../implementations/Ajna/tvl";
4
4
  import { AmbiantTVLBuilder } from "../implementations/Ambient/tvl";
5
5
  import { EigenLayerTVLBuilder } from "../implementations/EigenLayer/tvl";
6
6
  import { Erc20TVLBuilder } from "../implementations/Erc20/tvl";
7
+ import { MultiLogTVLBuilder } from "../implementations/MultiLog/tvl";
7
8
  /**
8
9
  * @dev TYPE SAFETY DISABLED FOR NOW AS WE DON'T HAVE ALL THE CAMPAIGNS IMPLEMENTED
9
10
  *
@@ -20,6 +21,7 @@ const map = {
20
21
  [Campaign.ERC20REBASEFIXAPR]: new Erc20TVLBuilder(),
21
22
  [Campaign.ERC20_FIX_APR]: new Erc20TVLBuilder(),
22
23
  [Campaign.EULER]: new Erc20TVLBuilder(),
24
+ [Campaign.MULTILOG]: new MultiLogTVLBuilder(),
23
25
  };
24
26
  export const campaignTVLBuilderFactory = (campaignType) => {
25
27
  if (!map[campaignType]) {
@@ -30,8 +30,8 @@ const main = async () => {
30
30
  else if (status !== "LIVE" && campaign.startTimestamp > now)
31
31
  status = "SOON";
32
32
  }
33
- if (status === "PAST" && (opportunity.apr !== 0 || opportunity.dailyRewards !== 0))
34
- await OpportunityService.update(opportunity.id, { status, apr: 0, dailyRewards: 0 });
33
+ if (status !== "LIVE" && (opportunity.apr !== 0 || opportunity.dailyRewards !== 0))
34
+ await OpportunityService.update(opportunity.id, { apr: 0, dailyRewards: 0 });
35
35
  if (opportunity.status !== status) {
36
36
  await OpportunityService.update(opportunity.id, { status });
37
37
  }