@merkl/api 0.20.139 → 0.20.141

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.
@@ -1167,7 +1167,6 @@ declare const eden: {
1167
1167
  };
1168
1168
  campaigns: ((params: {
1169
1169
  id: string | number;
1170
- campaignId: string | number;
1171
1170
  }) => {
1172
1171
  get: (options?: {
1173
1172
  headers?: Record<string, unknown> | undefined;
@@ -1249,18 +1248,6 @@ declare const eden: {
1249
1248
  opportunityId: string;
1250
1249
  };
1251
1250
  }>>;
1252
- } | {
1253
- "dynamic-data": {
1254
- put: (body: unknown, options: {
1255
- headers: {
1256
- authorization: string;
1257
- };
1258
- query?: Record<string, unknown> | undefined;
1259
- fetch?: RequestInit | undefined;
1260
- }) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
1261
- 200: unknown[];
1262
- }>>;
1263
- };
1264
1251
  }) & {
1265
1252
  engine: {
1266
1253
  post: (body: {
@@ -2016,6 +2003,17 @@ declare const eden: {
2016
2003
  };
2017
2004
  };
2018
2005
  };
2006
+ campaignstvls: ((params: {
2007
+ opportunityId: string | number;
2008
+ }) => {
2009
+ put: (body?: unknown, options?: {
2010
+ headers?: Record<string, unknown> | undefined;
2011
+ query?: Record<string, unknown> | undefined;
2012
+ fetch?: RequestInit | undefined;
2013
+ } | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
2014
+ 200: unknown[];
2015
+ }>>;
2016
+ }) & {};
2019
2017
  campaignscount: {
2020
2018
  "by-chains": {
2021
2019
  get: (options: {
@@ -4148,6 +4146,7 @@ declare const eden: {
4148
4146
  forwarders?: (string | {})[] | undefined;
4149
4147
  targetToken?: string | undefined;
4150
4148
  evkAddress?: string | undefined;
4149
+ subCampaignType?: number | undefined;
4151
4150
  whitelist?: string[] | undefined;
4152
4151
  isOutOfRangeIncentivized?: boolean | undefined;
4153
4152
  weightFees?: number | undefined;
@@ -4157,7 +4156,6 @@ declare const eden: {
4157
4156
  snapshotTimestamp?: number | undefined;
4158
4157
  snapshotBlockNumber?: number | undefined;
4159
4158
  jsonUrl?: string | undefined;
4160
- subCampaignType?: number | undefined;
4161
4159
  repository?: string | undefined;
4162
4160
  capInUSD?: string | undefined;
4163
4161
  compFork?: number | undefined;
@@ -6752,24 +6750,6 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
6752
6750
  };
6753
6751
  };
6754
6752
  };
6755
- } & {
6756
- ":campaignId": {
6757
- "dynamic-data": {
6758
- put: {
6759
- body: unknown;
6760
- params: {
6761
- campaignId: string;
6762
- };
6763
- query: unknown;
6764
- headers: {
6765
- authorization: string;
6766
- };
6767
- response: {
6768
- 200: unknown[];
6769
- };
6770
- };
6771
- };
6772
- };
6773
6753
  } & {
6774
6754
  index: {
6775
6755
  get: {
@@ -7044,6 +7024,21 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
7044
7024
  };
7045
7025
  };
7046
7026
  };
7027
+ campaignstvls: {
7028
+ ":opportunityId": {
7029
+ put: {
7030
+ body: unknown;
7031
+ params: {
7032
+ opportunityId: string;
7033
+ };
7034
+ query: unknown;
7035
+ headers: unknown;
7036
+ response: {
7037
+ 200: unknown[];
7038
+ };
7039
+ };
7040
+ };
7041
+ };
7047
7042
  } & {
7048
7043
  campaigns: {
7049
7044
  index: {
@@ -10288,6 +10283,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
10288
10283
  forwarders?: (string | {})[] | undefined;
10289
10284
  targetToken?: string | undefined;
10290
10285
  evkAddress?: string | undefined;
10286
+ subCampaignType?: number | undefined;
10291
10287
  whitelist?: string[] | undefined;
10292
10288
  isOutOfRangeIncentivized?: boolean | undefined;
10293
10289
  weightFees?: number | undefined;
@@ -10297,7 +10293,6 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
10297
10293
  snapshotTimestamp?: number | undefined;
10298
10294
  snapshotBlockNumber?: number | undefined;
10299
10295
  jsonUrl?: string | undefined;
10300
- subCampaignType?: number | undefined;
10301
10296
  repository?: string | undefined;
10302
10297
  capInUSD?: string | undefined;
10303
10298
  compFork?: number | undefined;
@@ -12868,7 +12863,6 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
12868
12863
  };
12869
12864
  campaigns: ((params: {
12870
12865
  id: string | number;
12871
- campaignId: string | number;
12872
12866
  }) => {
12873
12867
  get: (options?: {
12874
12868
  headers?: Record<string, unknown> | undefined;
@@ -12950,18 +12944,6 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
12950
12944
  opportunityId: string;
12951
12945
  };
12952
12946
  }>>;
12953
- } | {
12954
- "dynamic-data": {
12955
- put: (body: unknown, options: {
12956
- headers: {
12957
- authorization: string;
12958
- };
12959
- query?: Record<string, unknown> | undefined;
12960
- fetch?: RequestInit | undefined;
12961
- }) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
12962
- 200: unknown[];
12963
- }>>;
12964
- };
12965
12947
  }) & {
12966
12948
  engine: {
12967
12949
  post: (body: {
@@ -13717,6 +13699,17 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
13717
13699
  };
13718
13700
  };
13719
13701
  };
13702
+ campaignstvls: ((params: {
13703
+ opportunityId: string | number;
13704
+ }) => {
13705
+ put: (body?: unknown, options?: {
13706
+ headers?: Record<string, unknown> | undefined;
13707
+ query?: Record<string, unknown> | undefined;
13708
+ fetch?: RequestInit | undefined;
13709
+ } | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
13710
+ 200: unknown[];
13711
+ }>>;
13712
+ }) & {};
13720
13713
  campaignscount: {
13721
13714
  "by-chains": {
13722
13715
  get: (options: {
@@ -15849,6 +15842,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
15849
15842
  forwarders?: (string | {})[] | undefined;
15850
15843
  targetToken?: string | undefined;
15851
15844
  evkAddress?: string | undefined;
15845
+ subCampaignType?: number | undefined;
15852
15846
  whitelist?: string[] | undefined;
15853
15847
  isOutOfRangeIncentivized?: boolean | undefined;
15854
15848
  weightFees?: number | undefined;
@@ -15858,7 +15852,6 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
15858
15852
  snapshotTimestamp?: number | undefined;
15859
15853
  snapshotBlockNumber?: number | undefined;
15860
15854
  jsonUrl?: string | undefined;
15861
- subCampaignType?: number | undefined;
15862
15855
  repository?: string | undefined;
15863
15856
  capInUSD?: string | undefined;
15864
15857
  compFork?: number | undefined;
@@ -7,4 +7,8 @@ export type LogType = {
7
7
  blockHash: string;
8
8
  logIndex: string;
9
9
  };
10
+ export declare function fetchLogs(chainId: MerklChainId, topics: string[], addresses: string[], fromBlock: number, toBlock: number): Promise<{
11
+ logs: LogType[];
12
+ block: number;
13
+ }>;
10
14
  export declare function safeFetchLogs(chainId: MerklChainId, topics: string[], addresses: string[], fromBlock: number, toBlock: number): Promise<LogType[]>;
@@ -1,7 +1,7 @@
1
1
  import { log } from "@/utils/logger";
2
2
  import { ChainId, ChainInteractionService, getContractCreationBlock } from "@sdk";
3
3
  import axios from "axios";
4
- async function fetchLogs(chainId, topics, addresses, fromBlock, toBlock) {
4
+ export async function fetchLogs(chainId, topics, addresses, fromBlock, toBlock) {
5
5
  const url = ChainInteractionService(chainId).provider().connection.url;
6
6
  if (fromBlock === undefined || fromBlock === null || !toBlock || fromBlock > toBlock) {
7
7
  throw new Error(`fromBlock and toBlock are required and fromBlock must be less than toBlock - fromBlock: ${fromBlock} - toBlock:${toBlock}`);
@@ -1,5 +1,6 @@
1
1
  import { Erc20SubType } from ".";
2
2
  import { EulerMetadata } from "./implementations/euler/metadata";
3
+ import { EulerTVLBuilder } from "./implementations/euler/tvl";
3
4
  import { GearboxMetadata } from "./implementations/gearbox/metadata";
4
5
  import { GearboxTVLBuilder } from "./implementations/gearbox/tvl";
5
6
  import { SuperlendMetadata } from "./implementations/superlend/metadata";
@@ -14,6 +15,8 @@ const tvlMap = {
14
15
  [Erc20SubType.gearbox]: new GearboxTVLBuilder(),
15
16
  [Erc20SubType.superlend_borrowing]: new SuperlendTVLBuilder(),
16
17
  [Erc20SubType.superlend_lending]: new SuperlendTVLBuilder(),
18
+ [Erc20SubType.euler_borrow]: new EulerTVLBuilder(),
19
+ [Erc20SubType.euler_lend]: new EulerTVLBuilder(),
17
20
  };
18
21
  export const erc20SubTypeTVLBuilderFactory = (erc20Subtype) => {
19
22
  if (!tvlMap[erc20Subtype]) {
@@ -0,0 +1,5 @@
1
+ import type { TVLBuilder, TVLData } from "@/engine/tvl/interface";
2
+ import { type CampaignParameters, type Campaign as CampaignType, type MerklChainId } from "@sdk";
3
+ export declare class EulerTVLBuilder implements TVLBuilder<CampaignType.EULER> {
4
+ build(computeChainId: MerklChainId, campaigns: CampaignParameters<CampaignType.EULER>[]): Promise<TVLData<CampaignType.EULER>>;
5
+ }
@@ -0,0 +1,50 @@
1
+ import { TokenService } from "@/modules/v4/token/token.service";
2
+ import { TvlType } from "@db/api";
3
+ import { BN2Number, ChainInteractionService, EulerEVKInterface, EulerSubCampaignType, bigIntToNumber, } from "@sdk";
4
+ export class EulerTVLBuilder {
5
+ async build(computeChainId, campaigns) {
6
+ const tvls = [];
7
+ const calls = [];
8
+ for (const campaign of campaigns) {
9
+ const { evkAddress, subCampaignType } = campaign.campaignParameters;
10
+ if (subCampaignType === EulerSubCampaignType.LEND) {
11
+ calls.push({
12
+ callData: EulerEVKInterface.encodeFunctionData("totalAssets"),
13
+ target: evkAddress,
14
+ key: "totalUnderlying",
15
+ decoder: (data) => BigInt(EulerEVKInterface.decodeFunctionResult("totalAssets", data)[0].toString()),
16
+ });
17
+ }
18
+ else {
19
+ calls.push({
20
+ callData: EulerEVKInterface.encodeFunctionData("totalBorrows"),
21
+ target: evkAddress,
22
+ key: "totalUnderlying",
23
+ decoder: (data) => BigInt(EulerEVKInterface.decodeFunctionResult("totalBorrows", data)[0].toString()),
24
+ });
25
+ }
26
+ }
27
+ const result = await ChainInteractionService(computeChainId).fetchAndDecodeObject(calls);
28
+ for (const [_, campaign] of campaigns.entries()) {
29
+ const totalAssets = result.totalUnderlying;
30
+ const underlylingTokenAddress = campaign.campaignParameters.addressAsset;
31
+ const underlyingToken = await TokenService.findUniqueFillOrThrow({
32
+ chainId: computeChainId,
33
+ address: underlylingTokenAddress,
34
+ });
35
+ const tvl = (bigIntToNumber(totalAssets, underlyingToken.decimals) ?? 0) * (underlyingToken.price ?? 0);
36
+ tvls.push({
37
+ campaign,
38
+ tvl,
39
+ tvlBreakdown: [
40
+ {
41
+ identifier: underlyingToken.id,
42
+ type: TvlType.TOKEN,
43
+ value: BN2Number(totalAssets, underlyingToken.decimals),
44
+ },
45
+ ],
46
+ });
47
+ }
48
+ return tvls;
49
+ }
50
+ }
@@ -1517,24 +1517,6 @@ declare const app: Elysia<"", false, {
1517
1517
  };
1518
1518
  };
1519
1519
  };
1520
- } & {
1521
- ":campaignId": {
1522
- "dynamic-data": {
1523
- put: {
1524
- body: unknown;
1525
- params: {
1526
- campaignId: string;
1527
- };
1528
- query: unknown;
1529
- headers: {
1530
- authorization: string;
1531
- };
1532
- response: {
1533
- 200: unknown[];
1534
- };
1535
- };
1536
- };
1537
- };
1538
1520
  } & {
1539
1521
  index: {
1540
1522
  get: {
@@ -1809,6 +1791,21 @@ declare const app: Elysia<"", false, {
1809
1791
  };
1810
1792
  };
1811
1793
  };
1794
+ campaignstvls: {
1795
+ ":opportunityId": {
1796
+ put: {
1797
+ body: unknown;
1798
+ params: {
1799
+ opportunityId: string;
1800
+ };
1801
+ query: unknown;
1802
+ headers: unknown;
1803
+ response: {
1804
+ 200: unknown[];
1805
+ };
1806
+ };
1807
+ };
1808
+ };
1812
1809
  } & {
1813
1810
  campaigns: {
1814
1811
  index: {
@@ -5053,6 +5050,7 @@ declare const app: Elysia<"", false, {
5053
5050
  forwarders?: (string | {})[] | undefined;
5054
5051
  targetToken?: string | undefined;
5055
5052
  evkAddress?: string | undefined;
5053
+ subCampaignType?: number | undefined;
5056
5054
  whitelist?: string[] | undefined;
5057
5055
  isOutOfRangeIncentivized?: boolean | undefined;
5058
5056
  weightFees?: number | undefined;
@@ -5062,7 +5060,6 @@ declare const app: Elysia<"", false, {
5062
5060
  snapshotTimestamp?: number | undefined;
5063
5061
  snapshotBlockNumber?: number | undefined;
5064
5062
  jsonUrl?: string | undefined;
5065
- subCampaignType?: number | undefined;
5066
5063
  repository?: string | undefined;
5067
5064
  capInUSD?: string | undefined;
5068
5065
  compFork?: number | undefined;
@@ -216,24 +216,6 @@ export declare const CampaignController: Elysia<"/campaigns", false, {
216
216
  };
217
217
  };
218
218
  };
219
- } & {
220
- ":campaignId": {
221
- "dynamic-data": {
222
- put: {
223
- body: unknown;
224
- params: {
225
- campaignId: string;
226
- };
227
- query: unknown;
228
- headers: {
229
- authorization: string;
230
- };
231
- response: {
232
- 200: unknown[];
233
- };
234
- };
235
- };
236
- };
237
219
  } & {
238
220
  index: {
239
221
  get: {
@@ -508,6 +490,21 @@ export declare const CampaignController: Elysia<"/campaigns", false, {
508
490
  };
509
491
  };
510
492
  };
493
+ campaignstvls: {
494
+ ":opportunityId": {
495
+ put: {
496
+ body: unknown;
497
+ params: {
498
+ opportunityId: string;
499
+ };
500
+ query: unknown;
501
+ headers: unknown;
502
+ response: {
503
+ 200: unknown[];
504
+ };
505
+ };
506
+ };
507
+ };
511
508
  } & {
512
509
  campaigns: {
513
510
  index: {
@@ -47,14 +47,18 @@ export const CampaignController = new Elysia({ prefix: "/campaigns", detail: { t
47
47
  body: UpdateMetaDataCampaignDto,
48
48
  detail: { hide: true },
49
49
  })
50
- .put("/:campaignId/dynamic-data", async ({ params }) => {
51
- const id = (await CampaignService.findMany({ campaignId: params.campaignId, test: true }))[0].id;
52
- if (!id)
53
- throw new NotFoundError();
54
- const campaign = await CampaignService.findUniqueOrThrow(id, true);
55
- const campaignV3 = OpportunityConvertorService.convertV4CampaignToV3(Campaign[campaign.type], CampaignService.format(campaign), campaign.Opportunity.identifier);
56
- return await DynamicDataService.update(campaignV3.computeChainId, campaignV3.campaignType, [campaignV3]);
57
- }, { beforeHandle: BackOfficeGuard, headers: AuthorizationHeadersDto, detail: { hide: true } })
50
+ .put("tvls/:opportunityId", async ({ params }) => {
51
+ const campaigns = (await CampaignService.findMany({
52
+ opportunityId: params.opportunityId,
53
+ status: "LIVE",
54
+ test: true,
55
+ withOpportunity: true,
56
+ items: 10_000,
57
+ })).map(campaign => OpportunityConvertorService.convertV4CampaignToV3(Campaign[campaign.type], campaign, campaign.Opportunity.identifier));
58
+ if (!campaigns.length)
59
+ throw new NotFoundError("Opportunity not found");
60
+ return await DynamicDataService.update(campaigns[0]?.computeChainId, campaigns[0].campaignType, campaigns);
61
+ })
58
62
  // ─── Get Many Campaigns ──────────────────────────────────────────────
59
63
  .get("/", async ({ query }) => {
60
64
  if (query.items === 0)
@@ -1,4 +1,4 @@
1
- export declare class CoingeckoRepository {
1
+ export declare abstract class CoingeckoRepository {
2
2
  static findList(): Promise<{
3
3
  id: string;
4
4
  symbol: string;
@@ -59,7 +59,6 @@ export const GetOpportunitiesQueryDto = t.Object({
59
59
  chainId: t.Optional(t.RegExp(/^\d+(,\d+)*$/, {
60
60
  description: "A comma separated list of chain ids. Example: ?chainId=1,42161<br>You can get the list of all supported chains by calling [GET /v4/chains](#tag/chains/GET/v4/chains/)",
61
61
  })),
62
- //TODO: find a systemic way of handling query param arrays
63
62
  action: t.Optional(t.Enum(OpportunityAction, {
64
63
  description: `A comma seprated list actions. Legal values are: ${Object.values(OpportunityAction).join(", ")}`,
65
64
  })),
@@ -202,6 +202,7 @@ export declare const ProgramPayloadController: Elysia<"/program-payload", false,
202
202
  forwarders?: (string | {})[] | undefined;
203
203
  targetToken?: string | undefined;
204
204
  evkAddress?: string | undefined;
205
+ subCampaignType?: number | undefined;
205
206
  whitelist?: string[] | undefined;
206
207
  isOutOfRangeIncentivized?: boolean | undefined;
207
208
  weightFees?: number | undefined;
@@ -211,7 +212,6 @@ export declare const ProgramPayloadController: Elysia<"/program-payload", false,
211
212
  snapshotTimestamp?: number | undefined;
212
213
  snapshotBlockNumber?: number | undefined;
213
214
  jsonUrl?: string | undefined;
214
- subCampaignType?: number | undefined;
215
215
  repository?: string | undefined;
216
216
  capInUSD?: string | undefined;
217
217
  compFork?: number | undefined;
@@ -94,6 +94,8 @@ export declare enum swapxCampaigns {
94
94
  }
95
95
  export declare enum celoCampaigns {
96
96
  UniswapV3_cUSD_USDT_Celo = "UniswapV3 cUSD/USDT Celo 0x5dC631aD6C26BEA1a59fBF2C2680CF3df43d249f",
97
+ UniswapV3_USDT_WETH_Celo = "UniswapV3 USDT/WETH Celo 0xF55791AfBB35aD42984f18D6Fe3e1fF73D81900c",
98
+ UniswapV3_USDT_cGHS_Celo = "UniswapV3 USDT/cGHS Celo 0x6BAB3AfA6d0c42d539bcbc33Ffb68C0406913413",
97
99
  UniswapV3_USDC_USDT_Celo = "UniswapV3 USDC/USDT Celo 0x1a810e0B6c2dd5629AFa2f0c898b9512C6F78846",
98
100
  UniswapV3_cUSD_USDC_Celo = "UniswapV3 cUSD/USDC Celo 0x34757893070B0FC5de37AaF2844255fF90F7F1E0",
99
101
  UniswapV3_cEUR_USDT_Celo = "UniswapV3 cEUR/USDT Celo 0x628Cb3a5a206956423D158009612813B64B19dab",
@@ -106,7 +108,7 @@ export declare enum celoCampaigns {
106
108
  UniswapV3_PUSO_USDC_Celo = "UniswapV3 PUSO/USDC Celo 0xb466d5429D6AD9999Bf112C225d9D7b15e96c658",
107
109
  UniswapV3_PUSO_USDT_Celo = "UniswapV3 PUSO/USDT Celo 0x87deC9a2589d9e6511Df84C193561b3A16cF6238",
108
110
  UniswapV3_cEUR_CELO_Celo = "UniswapV3 cEUR/CELO Celo 0xf130F72F8190f662522774C3367E6e8814f5e219",
109
- UniswapV3_cCOP_USDT_Celo = "UniswapV3 cCOP/USDT Celo 0x40b3737B8984D14a2E8f96D8c680B2d475719fdF",
111
+ UniswapV3_cCOP_USDT_Celo = "UniswapV3 cCOP/USDT Celo 0x2ac5baa668a8a58fd0e302b9896717484fd217b0",
110
112
  UniswapV3_cREAL_cUSD_Celo = "UniswapV3 cREAL/cUSD Celo 0x72Dd8fe09B5b493012e5816068Dfc6Fb26a2A9e6",
111
113
  UniswapV3_cEUR_cREAL_Celo = "UniswapV3 cEUR/cREAL Celo 0xb6c8f9490314394CFc6EDacb8717bFDC1EB8dab5",
112
114
  UniswapV3_BRLA_USDT_Celo = "UniswapV3 BRLA/USDT Celo 0x14E577e42d45Fd2200A9B0e31D87Fe826467111a",
@@ -528,7 +530,11 @@ export declare enum tacCampaigns {
528
530
  TAC_Supply_ylxSolvBTC = "TAC Supply ylxSolvBTC 0x76f31800eFdE39A5f98189447c7a514d974f4364",
529
531
  TAC_Supply_ctTACUSDB = "TAC Supply ctTACUSDB 0x729fcddf4cbbc9dce721a8378c25a726fe7e43d3",
530
532
  TAC_Supply_ylFBTC = "TAC Supply ylFBTC 0x6945f516413cB2d7311297e8A39E7D004dEB5566",
531
- TAC_Supply_ylMBTC = "TAC Supply ylMBTC 0x2B11527e1fab84a5382D20efD198BF3d332f7E73"
533
+ TAC_Supply_ylMBTC = "TAC Supply ylMBTC 0x2B11527e1fab84a5382D20efD198BF3d332f7E73",
534
+ TAC_Supply_tacUSN = "TAC Supply tacUSN 0x7895A046b26CC07272B022a0C9BAFC046E6F6396",
535
+ TAC_Supply_TACyUSD = "TAC Supply TACyUSD 0x2799dE2E1e769fA58dd3787F70BcD839AF3a1F39",
536
+ TAC_Supply_tacETH9s = "TAC Supply tacETH9s 0xDe7CFf032D453Ce6B0a796043E75d380Df258812",
537
+ TAC_Supply_ylSolvBTCtac = "TAC Supply ylSolvBTC.tac 0x34d16e4fB8757A88D986f9EfE2484F0badBF22C1"
532
538
  }
533
539
  declare const AnglesInterfaceCampaigns: {
534
540
  "0x15E96CDecA34B9DE1B31586c1206206aDb92E69D": {
@@ -1445,6 +1451,66 @@ declare const TACInterfaceCampaigns: {
1445
1451
  targetTokenPricing: boolean;
1446
1452
  apr: string;
1447
1453
  };
1454
+ "TAC Supply tacUSN 0x7895A046b26CC07272B022a0C9BAFC046E6F6396": {
1455
+ campaignType: any;
1456
+ computeChainId: any;
1457
+ distributionChainId: any;
1458
+ targetToken: string;
1459
+ rewardToken: string;
1460
+ creator: string;
1461
+ hooks: never[];
1462
+ whitelist: never[];
1463
+ blacklist: never[];
1464
+ forwarders: never[];
1465
+ rewardTokenPricing: boolean;
1466
+ targetTokenPricing: boolean;
1467
+ apr: string;
1468
+ };
1469
+ "TAC Supply TACyUSD 0x2799dE2E1e769fA58dd3787F70BcD839AF3a1F39": {
1470
+ campaignType: any;
1471
+ computeChainId: any;
1472
+ distributionChainId: any;
1473
+ targetToken: string;
1474
+ rewardToken: string;
1475
+ creator: string;
1476
+ hooks: never[];
1477
+ whitelist: never[];
1478
+ blacklist: never[];
1479
+ forwarders: never[];
1480
+ rewardTokenPricing: boolean;
1481
+ targetTokenPricing: boolean;
1482
+ apr: string;
1483
+ };
1484
+ "TAC Supply tacETH9s 0xDe7CFf032D453Ce6B0a796043E75d380Df258812": {
1485
+ campaignType: any;
1486
+ computeChainId: any;
1487
+ distributionChainId: any;
1488
+ targetToken: string;
1489
+ rewardToken: string;
1490
+ creator: string;
1491
+ hooks: never[];
1492
+ whitelist: never[];
1493
+ blacklist: never[];
1494
+ forwarders: never[];
1495
+ rewardTokenPricing: boolean;
1496
+ targetTokenPricing: boolean;
1497
+ apr: string;
1498
+ };
1499
+ "TAC Supply ylSolvBTC.tac 0x34d16e4fB8757A88D986f9EfE2484F0badBF22C1": {
1500
+ campaignType: any;
1501
+ computeChainId: any;
1502
+ distributionChainId: any;
1503
+ targetToken: string;
1504
+ rewardToken: string;
1505
+ creator: string;
1506
+ hooks: never[];
1507
+ whitelist: never[];
1508
+ blacklist: never[];
1509
+ forwarders: never[];
1510
+ rewardTokenPricing: boolean;
1511
+ targetTokenPricing: boolean;
1512
+ apr: string;
1513
+ };
1448
1514
  };
1449
1515
  export declare const MerklInterfaceCampaigns: {
1450
1516
  [key in program]: typeof PufferInterfaceCampaigns | typeof ZkSyncInterfaceCampaigns | typeof ModeInterfaceCampaigns | typeof VicunaInterfaceCampaigns | typeof SonicmarketInterfaceCampaigns | typeof ReserveInterfaceCampaigns | typeof BeetsInterfaceCampaigns | typeof CeloInterfaceCampaigns | typeof EtherlinkInterfaceCampaigns | typeof SwapxInterfaceCampaigns | typeof AnglesInterfaceCampaigns | typeof RoninInterfaceCampaigns | typeof TACInterfaceCampaigns;