@merkl/api 0.10.319 → 0.10.321

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.
@@ -708,6 +708,22 @@ declare const eden: {
708
708
  } | undefined;
709
709
  }>>;
710
710
  };
711
+ opportunity: {
712
+ patch: (body: {
713
+ tags?: string[] | undefined;
714
+ opportunityIdentifier?: string | undefined;
715
+ campaignId: string;
716
+ distributionChain: number;
717
+ }, options: {
718
+ headers: {
719
+ authorization: string;
720
+ };
721
+ query?: Record<string, unknown> | undefined;
722
+ fetch?: RequestInit | undefined;
723
+ }) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
724
+ 200: string;
725
+ }>>;
726
+ };
711
727
  index: {
712
728
  get: (options: {
713
729
  headers?: Record<string, unknown> | undefined;
@@ -2448,7 +2464,7 @@ declare const eden: {
2448
2464
  strategy?: string | undefined;
2449
2465
  poolId?: string | undefined;
2450
2466
  contract?: string | undefined;
2451
- forwarders?: {}[] | undefined;
2467
+ forwarders?: (string | {})[] | undefined;
2452
2468
  targetToken?: string | undefined;
2453
2469
  isOutOfRangeIncentivized?: boolean | undefined;
2454
2470
  weightFees?: number | undefined;
@@ -3924,6 +3940,25 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
3924
3940
  };
3925
3941
  };
3926
3942
  };
3943
+ } & {
3944
+ opportunity: {
3945
+ patch: {
3946
+ body: {
3947
+ tags?: string[] | undefined;
3948
+ opportunityIdentifier?: string | undefined;
3949
+ campaignId: string;
3950
+ distributionChain: number;
3951
+ };
3952
+ params: {};
3953
+ query: unknown;
3954
+ headers: {
3955
+ authorization: string;
3956
+ };
3957
+ response: {
3958
+ 200: string;
3959
+ };
3960
+ };
3961
+ };
3927
3962
  } & {
3928
3963
  index: {
3929
3964
  get: {
@@ -6134,7 +6169,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
6134
6169
  strategy?: string | undefined;
6135
6170
  poolId?: string | undefined;
6136
6171
  contract?: string | undefined;
6137
- forwarders?: {}[] | undefined;
6172
+ forwarders?: (string | {})[] | undefined;
6138
6173
  targetToken?: string | undefined;
6139
6174
  isOutOfRangeIncentivized?: boolean | undefined;
6140
6175
  weightFees?: number | undefined;
@@ -7667,6 +7702,22 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
7667
7702
  } | undefined;
7668
7703
  }>>;
7669
7704
  };
7705
+ opportunity: {
7706
+ patch: (body: {
7707
+ tags?: string[] | undefined;
7708
+ opportunityIdentifier?: string | undefined;
7709
+ campaignId: string;
7710
+ distributionChain: number;
7711
+ }, options: {
7712
+ headers: {
7713
+ authorization: string;
7714
+ };
7715
+ query?: Record<string, unknown> | undefined;
7716
+ fetch?: RequestInit | undefined;
7717
+ }) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
7718
+ 200: string;
7719
+ }>>;
7720
+ };
7670
7721
  index: {
7671
7722
  get: (options: {
7672
7723
  headers?: Record<string, unknown> | undefined;
@@ -9407,7 +9458,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
9407
9458
  strategy?: string | undefined;
9408
9459
  poolId?: string | undefined;
9409
9460
  contract?: string | undefined;
9410
- forwarders?: {}[] | undefined;
9461
+ forwarders?: (string | {})[] | undefined;
9411
9462
  targetToken?: string | undefined;
9412
9463
  isOutOfRangeIncentivized?: boolean | undefined;
9413
9464
  weightFees?: number | undefined;
@@ -833,6 +833,25 @@ declare const app: Elysia<"", false, {
833
833
  };
834
834
  };
835
835
  };
836
+ } & {
837
+ opportunity: {
838
+ patch: {
839
+ body: {
840
+ tags?: string[] | undefined;
841
+ opportunityIdentifier?: string | undefined;
842
+ campaignId: string;
843
+ distributionChain: number;
844
+ };
845
+ params: {};
846
+ query: unknown;
847
+ headers: {
848
+ authorization: string;
849
+ };
850
+ response: {
851
+ 200: string;
852
+ };
853
+ };
854
+ };
836
855
  } & {
837
856
  index: {
838
857
  get: {
@@ -3043,7 +3062,7 @@ declare const app: Elysia<"", false, {
3043
3062
  strategy?: string | undefined;
3044
3063
  poolId?: string | undefined;
3045
3064
  contract?: string | undefined;
3046
- forwarders?: {}[] | undefined;
3065
+ forwarders?: (string | {})[] | undefined;
3047
3066
  targetToken?: string | undefined;
3048
3067
  isOutOfRangeIncentivized?: boolean | undefined;
3049
3068
  weightFees?: number | undefined;
@@ -55,6 +55,25 @@ export declare const CampaignController: Elysia<"/campaigns", false, {
55
55
  };
56
56
  };
57
57
  };
58
+ } & {
59
+ opportunity: {
60
+ patch: {
61
+ body: {
62
+ tags?: string[] | undefined;
63
+ opportunityIdentifier?: string | undefined;
64
+ campaignId: string;
65
+ distributionChain: number;
66
+ };
67
+ params: {};
68
+ query: unknown;
69
+ headers: {
70
+ authorization: string;
71
+ };
72
+ response: {
73
+ 200: string;
74
+ };
75
+ };
76
+ };
58
77
  } & {
59
78
  index: {
60
79
  get: {
@@ -1,8 +1,9 @@
1
+ import { BackOfficeGuard } from "../../../guards/BackOffice.guard";
1
2
  import { AuthorizationHeadersDto, EngineGuard } from "../../../guards/Engine.guard";
2
3
  import Elysia, { t } from "elysia";
3
4
  import { throwOnUnsupportedChainId } from "src/utils/throw";
4
5
  import { ChainUniqueDto } from "../chain";
5
- import { CampaignResourceDto, CreateCampaignDto, GetCampaignQueryDto } from "./campaign.model";
6
+ import { CampaignResourceDto, CreateCampaignDto, GetCampaignQueryDto, UpdateCampaignDto } from "./campaign.model";
6
7
  import { CampaignService } from "./campaign.service";
7
8
  // ─── Campaigns Controller ────────────────────────────────────────────────────
8
9
  export const CampaignController = new Elysia({ prefix: "/campaigns", detail: { tags: ["Campaigns"] } })
@@ -12,6 +13,12 @@ export const CampaignController = new Elysia({ prefix: "/campaigns", detail: { t
12
13
  headers: AuthorizationHeadersDto,
13
14
  body: CreateCampaignDto,
14
15
  detail: { hide: true },
16
+ })
17
+ .patch("/opportunity", async ({ body }) => await CampaignService.moveToOpportunity(body), {
18
+ beforeHandle: BackOfficeGuard,
19
+ headers: AuthorizationHeadersDto,
20
+ body: UpdateCampaignDto,
21
+ detail: { hide: true },
15
22
  })
16
23
  // ─── Get Many Campaigns ──────────────────────────────────────────────
17
24
  .get("/", async ({ query }) => await CampaignService.findMany(query), {
@@ -106,6 +106,12 @@ export declare const CreateCampaignDto: import("@sinclair/typebox").TObject<{
106
106
  params: import("@sinclair/typebox").TString;
107
107
  tags: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
108
108
  }>;
109
+ export declare const UpdateCampaignDto: import("@sinclair/typebox").TObject<{
110
+ distributionChain: import("@sinclair/typebox").TNumber;
111
+ campaignId: import("@sinclair/typebox").TString;
112
+ opportunityIdentifier: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
113
+ tags: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
114
+ }>;
109
115
  export declare const GetCampaignQueryDto: import("@sinclair/typebox").TObject<{
110
116
  creatorTag: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
111
117
  chainId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
@@ -147,4 +153,10 @@ export type CampaignUnique = typeof CampaignUniqueDto.static;
147
153
  export type CreateCampaignModel = typeof CreateCampaignDto.static & {
148
154
  id: string;
149
155
  };
156
+ export type UpdateCampaignModel = typeof UpdateCampaignDto.static & {
157
+ id: string;
158
+ };
159
+ export type extendedUpdateCampaignModel = UpdateCampaignModel & {
160
+ opportunityId: string;
161
+ };
150
162
  export type GetCampaignQueryModel = typeof GetCampaignQueryDto.static;
@@ -67,6 +67,12 @@ export const CreateCampaignDto = t.Object({
67
67
  params: t.String(),
68
68
  tags: t.Optional(t.Array(t.String())),
69
69
  });
70
+ export const UpdateCampaignDto = t.Object({
71
+ distributionChain: t.Numeric(),
72
+ campaignId: t.String(),
73
+ opportunityIdentifier: t.Optional(t.String()),
74
+ tags: t.Optional(t.Array(t.String())),
75
+ });
70
76
  export const GetCampaignQueryDto = t.Object({
71
77
  creatorTag: t.Optional(t.String({ description: "Filter campaigns created by a user who has a specific tag" })),
72
78
  chainId: t.Optional(t.Numeric({
@@ -1,4 +1,4 @@
1
- import type { CampaignUnique, CreateCampaignModel, GetCampaignQueryModel } from "./";
1
+ import type { CampaignUnique, CreateCampaignModel, GetCampaignQueryModel, extendedUpdateCampaignModel } from "./";
2
2
  import { Prisma } from "../../../../database/api/.generated";
3
3
  import { type ChainId } from "@sdk";
4
4
  export declare abstract class CampaignRepository {
@@ -134,4 +134,19 @@ export declare abstract class CampaignRepository {
134
134
  campaignId: string;
135
135
  }[]>;
136
136
  static findChains(): Promise<Record<string, ChainId>>;
137
+ static update(id: string, data: extendedUpdateCampaignModel): Promise<{
138
+ type: import("../../../../database/api/.generated").$Enums.CampaignType;
139
+ id: string;
140
+ params: Prisma.JsonValue;
141
+ subType: number | null;
142
+ startTimestamp: bigint;
143
+ endTimestamp: bigint;
144
+ computeChainId: number;
145
+ distributionChainId: number;
146
+ campaignId: string;
147
+ rewardTokenId: string;
148
+ amount: string;
149
+ opportunityId: string;
150
+ creatorAddress: string;
151
+ }>;
137
152
  }
@@ -303,4 +303,12 @@ export class CampaignRepository {
303
303
  return acc;
304
304
  }, {});
305
305
  }
306
+ static async update(id, data) {
307
+ const updateData = {
308
+ Opportunity: {
309
+ connect: { id: data.opportunityId },
310
+ },
311
+ };
312
+ return await apiDbClient.campaign.update({ where: { id }, data: updateData });
313
+ }
306
314
  }
@@ -1,4 +1,4 @@
1
- import { type CampaignUnique, type CampaignWithParams, type ConvertedCampaignType, type CreateCampaignModel, type GetCampaignQueryModel } from "./";
1
+ import { type CampaignUnique, type CampaignWithParams, type ConvertedCampaignType, type CreateCampaignModel, type GetCampaignQueryModel, type UpdateCampaignModel } from "./";
2
2
  import { CampaignRepository } from "./campaign.repository";
3
3
  import type { CampaignType } from "../../../../database/api/.generated";
4
4
  import { type CampaignParameters, type Campaign as CampaignTypeV3, type ChainId } from "@sdk";
@@ -19,6 +19,7 @@ export declare abstract class CampaignService {
19
19
  opportunityId: string;
20
20
  creatorAddress: string;
21
21
  } | undefined>;
22
+ static moveToOpportunity(campaign: Omit<UpdateCampaignModel, "id">, upsert?: boolean): Promise<string>;
22
23
  static createMany(campaigns: Omit<CreateCampaignModel, "id">[]): Promise<{
23
24
  success: number;
24
25
  fail: number;
@@ -5,10 +5,12 @@ import { CampaignRepository } from "./campaign.repository";
5
5
  import { OpportunityService } from "../opportunity";
6
6
  import { executeSimple } from "../../../utils/execute";
7
7
  import { log } from "../../../utils/logger";
8
- import { NETWORK_LABELS } from "@sdk";
8
+ import { NETWORK_LABELS, } from "@sdk";
9
+ import { utils } from "ethers";
9
10
  import moment from "moment";
10
11
  import { StatusService } from "../status";
11
12
  import { TokenService } from "../token";
13
+ import { TokenRepository } from "../token/token.repository";
12
14
  export class CampaignService {
13
15
  static hashId(campaign) {
14
16
  return Bun.hash(`${campaign.distributionChain}${campaign.campaignId}`).toString();
@@ -18,6 +20,55 @@ export class CampaignService {
18
20
  await OpportunityService.createFromCampaign(campaign);
19
21
  return await CampaignRepository.upsert({ id, ...campaign });
20
22
  }
23
+ static async moveToOpportunity(campaign, upsert = false) {
24
+ const id = CampaignService.hashId({
25
+ distributionChain: campaign.distributionChain,
26
+ campaignId: campaign.campaignId,
27
+ });
28
+ const existingCampaign = await CampaignService.findUniqueOrThrow(campaign);
29
+ const token = await TokenRepository.findUniqueOrThrow(existingCampaign.rewardTokenId);
30
+ if (existingCampaign.type === "ERC20" && campaign.opportunityIdentifier === undefined) {
31
+ const campaignParams = existingCampaign.params;
32
+ campaign.opportunityIdentifier = utils
33
+ .keccak256(campaignParams.targetToken &&
34
+ utils.keccak256(utils.defaultAbiCoder.encode(["address[]"], [campaignParams.whitelist.sort()])))
35
+ .slice(0, 42);
36
+ }
37
+ if (campaign.opportunityIdentifier === undefined) {
38
+ throw new HttpError("Bad Request: opportunityIdentifier is required for this campaign type", 400);
39
+ }
40
+ const updatedCampaign = {
41
+ ...existingCampaign,
42
+ opportunityIdentifier: campaign.opportunityIdentifier,
43
+ chainId: campaign.distributionChain,
44
+ creator: existingCampaign.creatorAddress,
45
+ rewardTokenAddress: token.address,
46
+ params: JSON.stringify(existingCampaign.params),
47
+ type: campaignTypeToEnumMap[existingCampaign.type],
48
+ subType: existingCampaign.subType ?? undefined,
49
+ startTimestamp: existingCampaign.startTimestamp.toString(),
50
+ endTimestamp: existingCampaign.endTimestamp.toString(),
51
+ };
52
+ const opportunityId = OpportunityService.hashId({
53
+ chainId: existingCampaign.computeChainId,
54
+ identifier: campaign.opportunityIdentifier,
55
+ type: existingCampaign.type,
56
+ });
57
+ const updatedCampaignData = {
58
+ ...campaign,
59
+ opportunityId,
60
+ };
61
+ // Create new opportunity
62
+ await OpportunityService.createFromCampaign(updatedCampaign, upsert);
63
+ // Move campaign to new opportunity
64
+ await CampaignRepository.update(id, { id, ...updatedCampaignData });
65
+ // Update new opportunity with campaign
66
+ await OpportunityService.recreate(opportunityId);
67
+ // Remov (update) campaign from old opportunity
68
+ await OpportunityService.recreate(existingCampaign.opportunityId);
69
+ // Return new opportunityId
70
+ return (await CampaignService.findUniqueOrThrow(campaign)).opportunityId;
71
+ }
21
72
  static async createMany(campaigns) {
22
73
  const failedToFetchMetadata = [];
23
74
  const campaignsToInsert = [];
@@ -191,7 +191,7 @@ export declare const ProgramPayloadController: Elysia<"/program-payload", false,
191
191
  strategy?: string | undefined;
192
192
  poolId?: string | undefined;
193
193
  contract?: string | undefined;
194
- forwarders?: {}[] | undefined;
194
+ forwarders?: (string | {})[] | undefined;
195
195
  targetToken?: string | undefined;
196
196
  isOutOfRangeIncentivized?: boolean | undefined;
197
197
  weightFees?: number | undefined;
@@ -23,7 +23,7 @@ export declare const SinglePayloadInputDto: import("@sinclair/typebox").TObject<
23
23
  endTimestamp: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
24
24
  targetToken: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
25
25
  url: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
26
- forwarders: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{}>>>;
26
+ forwarders: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TString]>>>;
27
27
  poolAddress: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
28
28
  isOutOfRangeIncentivized: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
29
29
  weightFees: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
@@ -24,7 +24,7 @@ export const SinglePayloadInputDto = t.Object({
24
24
  endTimestamp: t.Optional(t.Numeric({ description: "End timestamp for the campaign" })),
25
25
  targetToken: t.Optional(t.String({ description: "Address of the target token that is incentivized" })),
26
26
  url: t.Optional(t.String({ description: "URL for more information" })),
27
- forwarders: t.Optional(t.Array(t.Object({}))),
27
+ forwarders: t.Optional(t.Array(t.Union([t.Object({}), t.String()]))),
28
28
  poolAddress: t.Optional(t.String({ description: "Address of the pool that is incentivized" })),
29
29
  isOutOfRangeIncentivized: t.Optional(t.Boolean({ description: "Whether out-of-range is incentivized" })),
30
30
  weightFees: t.Optional(t.Number({ description: "Weight of the fees" })),
@@ -30,13 +30,16 @@ export declare enum pufferCampaigns {
30
30
  aerodrome_cl50_xpufETH = "0xCDf927C0F7b81b146C0C9e9323eb5A28D1BFA183",
31
31
  uniswapv3_eth_pufETH = "0xBDB04e915B94FbFD6e8552ff7860E59Db7d4499a",
32
32
  uniswapv3_weth_PUFFER = "0xc5c9a9AB6403CDBa9722463000146C18b504F0bA",
33
- uniswapv3_vt_weth = "0xa56600e670724b42F38d3A6e4B25e8D786B4F5f9"
33
+ uniswapv3_vt_weth = "0xa56600e670724b42F38d3A6e4B25e8D786B4F5f9",
34
+ venus_pufeth = "0xE0ee5dDeBFe0abe0a4Af50299D68b74Cec31668e"
34
35
  }
35
36
  export declare enum zkSyncCampaigns {
36
37
  Izumi_Finance_Zk_Weth = "Izumi Finance ZK/WETH 0xd62bc9f19bd94fde9c41df4b6eb6419ea6b8e25c",
37
38
  Izumi_Finance_WBTC_BTC = "Izumi Finance WBTC/BTC 0x6e357cd3a4b38bbca4c34777379cf6989e3da501",
38
39
  Izumi_Finance_WETH_USDC = "Izumi Finance WBTC/BTC 0x43ff8a10b6678462265b00286796e88f03c8839a",
39
40
  Venus_USDCe = "Venus USDCe 0x1af23bd57c62a99c59ad48236553d0dd11e49d2d",
41
+ Venus_USDC = "Venus USDC 0x84064c058f2efea4ab648bb6bd7e40f83ffde39a",
42
+ Venus_WBTC = "Venus WBTC 0xaf8fd83cfcbe963211faaf1847f0f217f80b4719",
40
43
  Venus_ZK = "Venus ZK 0x697a70779c1a03ba2bd28b7627a902bff831b616",
41
44
  Venus_WETH = "Venus WETH 0x1fa916c27c7c2c4602124a14c77dbb40a5ff1be8",
42
45
  Aave_USDC = "Aave USDC 0xe977f9b2a5ccf0457870a67231f23be4daecfbdb",
@@ -45,11 +48,13 @@ export declare enum zkSyncCampaigns {
45
48
  Aave_WstETH = "Aave WstETH 0xd4e607633f3d984633e946aea4eb71f92564c1c9",
46
49
  Zerolend_WETH = "Zerolend WETH 0x9002ecb8a06060e3b56669c6b8f18e1c3b119914",
47
50
  Zerolend_USDCe = "Zerolend USDCe 0x016341e6da8da66b33fd32189328c102f32da7cc",
51
+ Zerolend_USDC = "Zerolend USDC 0x9e20e83d636870a887ce7c85cecfb8b3e95c9db2",
48
52
  Zerolend_M_BTC = "Zerolend M_BTC 0xafe91971600af83d23ab691b0a1a566d5f8e42c0",
49
53
  Zerolend_ZK = "Zerolend ZK 0x072416442a0e40135e75c0eefb4be708b74b6c8a",
50
54
  ReactorFusion_USDCe = "ReactorFusion USDCe 0x04e9db37d8ea0760072e1ace3f2a219988fdac29",
51
55
  ReactorFusion_WETH = "ReactorFusion WETH 0xc5db68f30d21cbe0c9eac7be5ea83468d69297e6",
52
56
  ReactorFusion_ZK = "ReactorFusion ZK 0x0e392b6b05c112677096920ad938a0752d1451f3",
57
+ ReactorFusion_USDC = "ReactorFusion USDC 0x930da5e58f7f0d6dc417ab07e07558c78cff1445",
53
58
  HoldSation_USDC = "HoldSation USDC 0xaf08a9d918f16332f22cf8dc9abe9d9e14ddcbc2",
54
59
  RFX_ZK_USD = "RFX ZK USD 0x9d4d54c8661a17604a46b849ded78cf20127fb92",
55
60
  RFX_ETH_USD = "RFX ETH USD 0x8efa54951bf70d9775dfe8f9364df83ad1e1a8cf",
@@ -59,6 +64,10 @@ export declare enum zkSyncCampaigns {
59
64
  Koi_Finance_USDCe_USDT = "Koi Finance USDC.e/USDT CL 0.01pct 0x57cc53def9f5ca7ef4da51082dd874867e56ba14",
60
65
  Koi_Finance_wETH_wstETH = "Koi Finance wETH/wstETH CL 0.01pct 0x66e050b921ba87259bb6627acedd2d1faef85cf5",
61
66
  Koi_Finance_wETH_wrsETH = "Koi Finance wETH/wrsETH CL 0.01pct 0xc0f4a1e34ec35b225939bc75336fdb787e432e3b",
67
+ Koi_Finance_USDC_USDM_01 = "Koi Finance USDC/USDM CL 0.01pct 0x9be3c0ca9e36117c717e12fee7ea6673985b929b",
68
+ Koi_Finance_USDC_USDT_01 = "Koi Finance USDC/USDM CL 0.01pct 0x64972fddf1ddda49c6d5979dcd43cec19f47ddf6",
69
+ Koi_Finance_USDCe_WETH_50 = "Koi Finance USDCe/WETH CL 0.5pct 0x9c40de601340650bac1813f925f7cff9178c4c2c",
70
+ Koi_Finance_ZK_WETH_50 = "Koi Finance ZK/WETH CL 0.5pct 0x95138f634fa2309ede488fe382ad3a9e5d8aa131",
62
71
  Koi_Finance_USDCe_wETH = "Koi Finance USDC.e/wETH Normal 0.5pct 0xdfaab828f5f515e104baaba4d8d554da9096f0e4",
63
72
  PancakeSwap_USDC_USDT = "PancakeSwap USDC/USDT v3 0.01pct 0xd05eef3792276e92bb051029dadfc2bf81121692",
64
73
  PancakeSwap_USDCe_wETH = "PancakeSwap USDC.e/wETH v3 0.05pct 0x291d9f9764c72c9ba6ff47b451a9f7885ebf9977",
@@ -73,6 +82,7 @@ export declare enum zkSyncCampaigns {
73
82
  Maverick_USDC_USDCe_Boosted = "Maverick USDC/USDC.e Boosted Position 0.001pct Fee 0.01pct Width Both 0x7b069aa2b92d356db4e6b9552d541f5aab4415fc",
74
83
  Maverick_ETH_wstETH_Boosted = "Maverick ETH/wstETH Boosted Position 0.002pct Fee 0.10pct Width Both 0x5f2f2d05618b5a2e3d0e32604ac02efc3fca888c",
75
84
  Maverick_ZK_ETH_Boosted = "Maverick ZK-ETH Boosted Position 0.02% Fee 25.00% Width Mode Static Width Both 0x940350023026b52ae8b1997f15166b2060e04940",
85
+ Maverick_ETH_zkETH_Boosted = "Maverick ETH-zkETH ETH-zkETH Boosted Position 0.03% Fee 0.10% Width Mode Static 0xf7cCdB990b31D2902D99F508bbBdd3ACb7937bcf",
76
86
  SyncSwap_wBTC_MBTC = "SyncSwap WBTC/M-BTC Stable Pool v2.1 0x57b11c2c0cdc81517662698a48473938e81d5834",
77
87
  SyncSwap_USDC_USDT = "SyncSwap USDC/USDT Stable Pool 0x0259d9dfb638775858b1d072222237e2ce7111c0",
78
88
  SyncSwap_USDC_USDCe = "SyncSwap USDC/USDC.e Stable Pool 0xa93472c1b88243793e145b237b7172f1ee547836",
@@ -80,13 +90,23 @@ export declare enum zkSyncCampaigns {
80
90
  SyncSwap_ETH_wrsETH = "SyncSwap ETH/wrsETH Aqua Pool 0x58ba6ddb7af82a106219dc412395ad56284bc5b3",
81
91
  SyncSwap_ZK_ETH = "SyncSwap WBTC-M-BTC Stable Pool v2.1 0x45856bd6bb9f076f4c558a4d5932c6c8d832b0d0",
82
92
  SyncSwap_USDCe_ETH = "SyncSwap WBTC-M-BTC Stable Pool v2.1 0x80115c708e12edd42e504c1cd52aea96c547c05c",
93
+ SyncSwap_USDC_USDM_Range = "SyncSwap USDC/USDM Range Pool 0xc9d2f9f56904dd71de34f2d696f5afc508f93ac3",
94
+ SyncSwap_ETH_wrsETH_Range = "SyncSwap USDC/USDM Range Pool 0xfe1fc5128b5f5e7c0742bf4bfcbb5466fdf96e12",
95
+ SyncSwap_ZK_ETH_Range = "SyncSwap ZK/ETH Range Pool 0x01e00f0064fa11bb35d1251df35376d60af7d435",
96
+ SyncSwap_USDCe_ETH_Range = "SyncSwap USDCe/ETH Range Pool 0xbeac8553817d719c83f876681917ab2d7e5c4500",
97
+ SyncSwap_ETH_wstETH_Range = "SyncSwap ETH/wstETH Range Pool 0xb249b76c7bda837b8a507a0e12caeda90d25d32f",
98
+ SyncSwap_USDC_ETH_Range = "SyncSwap USDC/ETH Range Pool 0xe955c98e8411ee4c7332ebe48df7f0ca12711dc2",
83
99
  Woofi_ETH = "Woofi ETH 0x1d686250bbffa9fe120b591f5992dd7fc0fd99a4",
84
- Woofi_USDC = "Woofi USDC 0xDCA324bdD4eBB6b8a1802959324Ce125b5D57921",
100
+ Woofi_USDC = "Woofi USDC 0xa8bbab0ac88382a0f507b9e93cdbe65ffa1f50d1",
85
101
  ZKSwap_wrsETH_ETH = "ZKSwap Finance wrsETH/ETH v2 0.1pct 0xeb9fd198b20dc73e63668b89a735b7dc84e13ea0",
86
102
  ZKSwap_ETH_USDCe = "ZKSwap Finance ETH/USDC.e v2 0.1pct 0x7642e38867860d4512fcce1116e2fb539c5cdd21",
87
103
  ZKSwap_USDC_USDCe_USDT = "ZKSwap Finance USDC/USDC.e/USDT Stable 0.01pct 0x15309aaf4fedf346e5204331027b4ef7b75b1dd7",
88
104
  ZKSwap_wstETH_ETH = "ZKSwap Finance wstETH/ETH v2 0.1pct 0x4848204d1ee4422d91d91b1c89f6d2f9ace09e2c",
89
- ZKSwap_ZK_ETH = "ZKSwap Finance ZK/ETH v2 0.1pct 0x9ee3178701d91cc7b01d5b2d2cae65ccb29b3de4"
105
+ ZKSwap_ZK_ETH = "ZKSwap Finance ZK/ETH v2 0.1pct 0x9ee3178701d91cc7b01d5b2d2cae65ccb29b3de4",
106
+ ZKSwap_ZK_ETH_20 = "ZKSwap Finance ZK/ETH v3 0.2pct 0x1556d5a73963d53c11c779893df6fd8c865ac459",
107
+ ZKSwap_ETH_USDCe_20 = "ZKSwap Finance ETH/USDC v3 0.2pct 0x6480665e22d82b3b9079b44e421a62c185b9bd77",
108
+ ZKSwap_wstETH_ETH_20 = "ZKSwap Finance wstETH/ETH v3 0.01pct 0xd587b615ac1acb6c1f95242a1bcac512d2cd8122",
109
+ ZKSwap_wrsETH_ETH_20 = "ZKSwap Finance wrsETH/ETH v3 0.01pct 0xcd6d8b89f24b017dbbdc0c13a99d29edc13e2189"
90
110
  }
91
111
  export declare const zkSyncCampaignAmounts: {
92
112
  [key in zkSyncCampaigns]: string;