@merkl/api 0.10.169 → 0.10.170

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.
Files changed (51) hide show
  1. package/dist/database/api/.generated/edge.js +6 -3
  2. package/dist/database/api/.generated/index-browser.js +3 -0
  3. package/dist/database/api/.generated/index.d.ts +113 -0
  4. package/dist/database/api/.generated/index.js +6 -3
  5. package/dist/database/api/.generated/package.json +1 -1
  6. package/dist/database/api/.generated/schema.prisma +17 -15
  7. package/dist/database/api/.generated/wasm.js +3 -0
  8. package/dist/src/eden/index.d.ts +108 -3
  9. package/dist/src/index.d.ts +36 -1
  10. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/factoryFinder.js +2 -0
  11. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.d.ts +3 -1
  12. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.js +8 -0
  13. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/PendleYTProcessor.d.ts +29 -0
  14. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/PendleYTProcessor.js +31 -0
  15. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/processorMapping.js +3 -0
  16. package/dist/src/modules/v4/campaign/campaign.controller.d.ts +4 -0
  17. package/dist/src/modules/v4/campaign/campaign.model.d.ts +1 -0
  18. package/dist/src/modules/v4/campaign/campaign.model.js +1 -0
  19. package/dist/src/modules/v4/campaign/campaign.repository.d.ts +2 -0
  20. package/dist/src/modules/v4/campaign/campaign.repository.js +2 -1
  21. package/dist/src/modules/v4/campaign/campaign.service.d.ts +4 -0
  22. package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +18 -1
  23. package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +2 -1
  24. package/dist/src/modules/v4/opportunity/opportunity.model.js +1 -0
  25. package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +24 -105
  26. package/dist/src/modules/v4/opportunity/opportunity.repository.js +2 -0
  27. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +31 -5
  28. package/dist/src/modules/v4/price/price.controller.js +1 -1
  29. package/dist/src/modules/v4/price/price.service.d.ts +1 -1
  30. package/dist/src/modules/v4/price/price.service.js +3 -3
  31. package/dist/src/modules/v4/reward/reward.repository.d.ts +4 -0
  32. package/dist/src/modules/v4/reward/reward.service.d.ts +22 -0
  33. package/dist/src/modules/v4/router.d.ts +36 -1
  34. package/dist/src/modules/v4/token/token.controller.d.ts +6 -0
  35. package/dist/src/modules/v4/token/token.service.d.ts +12 -0
  36. package/dist/src/modules/v4/user/user.controller.d.ts +8 -0
  37. package/dist/src/routes/v3/blacklist.d.ts +36 -1
  38. package/dist/src/routes/v3/campaigns.d.ts +36 -1
  39. package/dist/src/routes/v3/campaignsInfo.d.ts +36 -1
  40. package/dist/src/routes/v3/multiChainPositions.d.ts +36 -1
  41. package/dist/src/routes/v3/opportunity.d.ts +36 -1
  42. package/dist/src/routes/v3/positions.d.ts +36 -1
  43. package/dist/src/routes/v3/rewards.d.ts +36 -1
  44. package/dist/src/routes/v3/updates.d.ts +36 -1
  45. package/dist/src/routes/v3/userRewards.d.ts +36 -1
  46. package/dist/src/utils/decodeCalls.js +4 -1
  47. package/dist/src/utils/encodeCalls.js +4 -1
  48. package/dist/src/utils/generateCardName.js +2 -0
  49. package/dist/src/utils/prices/services/erc4626Service.js +7 -1
  50. package/dist/tsconfig.package.tsbuildinfo +1 -1
  51. package/package.json +1 -1
@@ -119,7 +119,9 @@ declare const app: Elysia<"", false, {
119
119
  address: string;
120
120
  icon: string;
121
121
  decimals: number;
122
+ displaySymbol: string;
122
123
  verified: boolean;
124
+ isTest: boolean;
123
125
  price: number | null;
124
126
  };
125
127
  amount: bigint;
@@ -134,7 +136,9 @@ declare const app: Elysia<"", false, {
134
136
  address: string;
135
137
  icon: string;
136
138
  decimals: number;
139
+ displaySymbol: string;
137
140
  verified: boolean;
141
+ isTest: boolean;
138
142
  price: number | null;
139
143
  }[];
140
144
  chain: {
@@ -218,7 +222,9 @@ declare const app: Elysia<"", false, {
218
222
  address: string;
219
223
  icon: string;
220
224
  decimals: number;
225
+ displaySymbol: string;
221
226
  verified: boolean;
227
+ isTest: boolean;
222
228
  price: number | null;
223
229
  };
224
230
  amount: bigint;
@@ -233,7 +239,9 @@ declare const app: Elysia<"", false, {
233
239
  address: string;
234
240
  icon: string;
235
241
  decimals: number;
242
+ displaySymbol: string;
236
243
  verified: boolean;
244
+ isTest: boolean;
237
245
  price: number | null;
238
246
  }[];
239
247
  chain: {
@@ -274,7 +282,9 @@ declare const app: Elysia<"", false, {
274
282
  address: string;
275
283
  icon: string;
276
284
  decimals: number;
285
+ displaySymbol: string;
277
286
  verified: boolean;
287
+ isTest: boolean;
278
288
  price: number | null;
279
289
  };
280
290
  distributionChain: {
@@ -327,6 +337,7 @@ declare const app: Elysia<"", false, {
327
337
  action?: string | undefined;
328
338
  mainProtocolId?: string | undefined;
329
339
  order?: undefined;
340
+ test?: boolean | undefined;
330
341
  minimumTvl?: number | undefined;
331
342
  };
332
343
  headers: unknown;
@@ -372,7 +383,9 @@ declare const app: Elysia<"", false, {
372
383
  address: string;
373
384
  icon: string;
374
385
  decimals: number;
386
+ displaySymbol: string;
375
387
  verified: boolean;
388
+ isTest: boolean;
376
389
  price: number | null;
377
390
  };
378
391
  amount: bigint;
@@ -387,7 +400,9 @@ declare const app: Elysia<"", false, {
387
400
  address: string;
388
401
  icon: string;
389
402
  decimals: number;
403
+ displaySymbol: string;
390
404
  verified: boolean;
405
+ isTest: boolean;
391
406
  price: number | null;
392
407
  }[];
393
408
  chain: {
@@ -436,6 +451,7 @@ declare const app: Elysia<"", false, {
436
451
  action?: string | undefined;
437
452
  mainProtocolId?: string | undefined;
438
453
  order?: undefined;
454
+ test?: boolean | undefined;
439
455
  minimumTvl?: number | undefined;
440
456
  };
441
457
  headers: unknown;
@@ -466,12 +482,13 @@ declare const app: Elysia<"", false, {
466
482
  action?: string | undefined;
467
483
  mainProtocolId?: string | undefined;
468
484
  order?: undefined;
485
+ test?: boolean | undefined;
469
486
  minimumTvl?: number | undefined;
470
487
  };
471
488
  headers: unknown;
472
489
  response: {
473
490
  200: {
474
- sum: File;
491
+ sum: number | null;
475
492
  };
476
493
  };
477
494
  };
@@ -541,6 +558,7 @@ declare const app: Elysia<"", false, {
541
558
  campaignId?: string | undefined;
542
559
  opportunityId?: string | undefined;
543
560
  tokenSymbol?: string | undefined;
561
+ test?: boolean | undefined;
544
562
  };
545
563
  headers: unknown;
546
564
  response: {
@@ -559,7 +577,9 @@ declare const app: Elysia<"", false, {
559
577
  address: string;
560
578
  icon: string;
561
579
  decimals: number;
580
+ displaySymbol: string;
562
581
  verified: boolean;
582
+ isTest: boolean;
563
583
  price: number | null;
564
584
  };
565
585
  distributionChain: {
@@ -609,6 +629,7 @@ declare const app: Elysia<"", false, {
609
629
  campaignId?: string | undefined;
610
630
  opportunityId?: string | undefined;
611
631
  tokenSymbol?: string | undefined;
632
+ test?: boolean | undefined;
612
633
  };
613
634
  headers: unknown;
614
635
  response: {
@@ -762,7 +783,9 @@ declare const app: Elysia<"", false, {
762
783
  address: string;
763
784
  icon: string;
764
785
  decimals: number;
786
+ displaySymbol: string;
765
787
  verified: boolean;
788
+ isTest: boolean;
766
789
  price?: number | null | undefined;
767
790
  } | undefined;
768
791
  };
@@ -791,7 +814,9 @@ declare const app: Elysia<"", false, {
791
814
  address: string;
792
815
  icon: string;
793
816
  decimals: number;
817
+ displaySymbol: string;
794
818
  verified: boolean;
819
+ isTest: boolean;
795
820
  } & {
796
821
  price?: number | null | undefined;
797
822
  } & {
@@ -824,7 +849,9 @@ declare const app: Elysia<"", false, {
824
849
  address: string;
825
850
  icon: string;
826
851
  decimals: number;
852
+ displaySymbol: string;
827
853
  verified: boolean;
854
+ isTest: boolean;
828
855
  } & {
829
856
  price?: number | null | undefined;
830
857
  })[];
@@ -1487,7 +1514,9 @@ declare const app: Elysia<"", false, {
1487
1514
  address: string;
1488
1515
  icon: string;
1489
1516
  decimals: number;
1517
+ displaySymbol: string;
1490
1518
  verified: boolean;
1519
+ isTest: boolean;
1491
1520
  price: number | null;
1492
1521
  };
1493
1522
  breakdowns: {
@@ -1506,7 +1535,9 @@ declare const app: Elysia<"", false, {
1506
1535
  address: string;
1507
1536
  icon: string;
1508
1537
  decimals: number;
1538
+ displaySymbol: string;
1509
1539
  verified: boolean;
1540
+ isTest: boolean;
1510
1541
  price: number | null;
1511
1542
  }[];
1512
1543
  Protocols: {
@@ -1597,7 +1628,9 @@ declare const app: Elysia<"", false, {
1597
1628
  address: string;
1598
1629
  icon: string;
1599
1630
  decimals: number;
1631
+ displaySymbol: string;
1600
1632
  verified: boolean;
1633
+ isTest: boolean;
1601
1634
  price: number | null;
1602
1635
  };
1603
1636
  breakdowns: {
@@ -1616,7 +1649,9 @@ declare const app: Elysia<"", false, {
1616
1649
  address: string;
1617
1650
  icon: string;
1618
1651
  decimals: number;
1652
+ displaySymbol: string;
1619
1653
  verified: boolean;
1654
+ isTest: boolean;
1620
1655
  price: number | null;
1621
1656
  }[];
1622
1657
  Protocols: {
@@ -15,6 +15,8 @@ const factoryAddresses = {
15
15
  "0xa19C51D91891D3DF7C13Ed22a2f89d328A82950f": tokenType.fenix, // Fenix Factory
16
16
  "0x3a76e377ED58c8731F9DF3A36155942438744Ce3": tokenType.zkswap, // ZKSwap Factory
17
17
  "0x6fcf753f2C67b83f7B09746Bbc4FA0047b35D050": tokenType.pendle, // Pendle Factory
18
+ "0x35A338522a435D46f77Be32C70E215B813D0e3aC": tokenType.pendleYT, // Pendle YT Factory
19
+ "0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73": tokenType.pancakeswap, // PancakeSwap Factory BNB
18
20
  };
19
21
  export function getTypeFromFactoryAddress(address) {
20
22
  if (factoryAddresses[address]) {
@@ -53,7 +53,9 @@ export declare enum tokenType {
53
53
  maverickBoostedPosition = "maverickBoostedPosition",
54
54
  zkSwapThreePool = "zkSwapThreePool",
55
55
  maha = "maha",
56
- tempest = "tempest"
56
+ tempest = "tempest",
57
+ pendleYT = "pendleYT",
58
+ pancakeswap = "pancakeswap"
57
59
  }
58
60
  export declare const tokenTypeToProtocol: {
59
61
  [key in tokenType]: {
@@ -55,6 +55,8 @@ export var tokenType;
55
55
  tokenType["zkSwapThreePool"] = "zkSwapThreePool";
56
56
  tokenType["maha"] = "maha";
57
57
  tokenType["tempest"] = "tempest";
58
+ tokenType["pendleYT"] = "pendleYT";
59
+ tokenType["pancakeswap"] = "pancakeswap";
58
60
  })(tokenType || (tokenType = {}));
59
61
  export const tokenTypeToProtocol = {
60
62
  [tokenType.aave_borrowing]: { protocol: "Aave" },
@@ -123,4 +125,10 @@ export const tokenTypeToProtocol = {
123
125
  [tokenType.tempest]: {
124
126
  protocol: "Tempest",
125
127
  },
128
+ [tokenType.pendleYT]: {
129
+ protocol: "Pendle",
130
+ },
131
+ [tokenType.pancakeswap]: {
132
+ protocol: "PancakeSwap V2",
133
+ },
126
134
  };
@@ -0,0 +1,29 @@
1
+ import type { Pricer } from "../../../../../utils/pricer";
2
+ import { type Campaign, type CampaignParameters } from "@sdk";
3
+ import type { tokenType } from "../helpers/tokenType";
4
+ import { GenericProcessor, type dataType, type mandatoryCallKeys } from "./GenericProcessor";
5
+ type callType = {
6
+ key: keyof dataRawPendleYT;
7
+ call: string;
8
+ target: keyof callKeysPendleYT;
9
+ metaData?: keyof callKeysPendleYT;
10
+ };
11
+ type callKeysPendleYT = mandatoryCallKeys & {
12
+ SYToken: string;
13
+ underlying: string;
14
+ symbolUnderlyingToken: string;
15
+ };
16
+ type dataRawPendleYT = callKeysPendleYT & {
17
+ readTokensRaw: string[];
18
+ };
19
+ type dataTypePendleYT = dataType & {};
20
+ export declare class PendleYTProcessor extends GenericProcessor<callKeysPendleYT, dataRawPendleYT, dataTypePendleYT> {
21
+ rounds: {
22
+ round1: callType[];
23
+ round2: callType[];
24
+ round3: callType[];
25
+ round4: callType[];
26
+ };
27
+ processingRound5(_index: number, type: tokenType, typeInfo: dataRawPendleYT, _calls: string[], campaign: CampaignParameters<Campaign.ERC20> | CampaignParameters<Campaign.EULER>, pricer: Pricer): Promise<dataTypePendleYT>;
28
+ }
29
+ export {};
@@ -0,0 +1,31 @@
1
+ import { generateCardName } from "../../../../../utils/generateCardName";
2
+ import { ChainId } from "@sdk";
3
+ import { GenericProcessor } from "./GenericProcessor";
4
+ export class PendleYTProcessor extends GenericProcessor {
5
+ rounds = {
6
+ round1: [
7
+ { key: "SYToken", call: "SY", target: "tokenAddress" },
8
+ { key: "totalSupply", call: "totalSupply", target: "tokenAddress" },
9
+ ],
10
+ round2: [{ key: "underlying", call: "underlying", target: "SYToken" }],
11
+ round3: [{ key: "symbolUnderlyingToken", call: "symbol", target: "underlying" }],
12
+ round4: [],
13
+ };
14
+ async processingRound5(_index, type, typeInfo, _calls, campaign, pricer) {
15
+ const { whitelistedSupplyTargetToken, totalSupply, blacklistedSupply } = this.handleWhiteListBlacklistRound5(typeInfo, campaign);
16
+ const priceTargetToken = (await pricer.get({
17
+ address: typeInfo.tokenAddress,
18
+ chainId: ChainId.MAINNET,
19
+ })) ?? 0;
20
+ const tvl = priceTargetToken * totalSupply;
21
+ return {
22
+ ...typeInfo,
23
+ totalSupply,
24
+ tvl,
25
+ whitelistedSupplyTargetToken,
26
+ priceTargetToken: priceTargetToken,
27
+ cardName: generateCardName(type, typeInfo, campaign),
28
+ blacklistedSupply,
29
+ };
30
+ }
31
+ }
@@ -16,6 +16,7 @@ import { GenericProcessor } from "./GenericProcessor";
16
16
  import { MaverickBPProcessor } from "./MaverickBPProcessor";
17
17
  import { MetamorphoProcessor } from "./MetamorphoProcessor";
18
18
  import { PendleProcessor } from "./PendleProcessor";
19
+ import { PendleYTProcessor } from "./PendleYTProcessor";
19
20
  import { RadiantProcessor } from "./RadiantProcessor";
20
21
  import { RfxProcessor } from "./RfxProcessor";
21
22
  import { SpliceProcessor } from "./SpliceProcessor";
@@ -82,4 +83,6 @@ export const processorMapping = {
82
83
  [tokenType.zkSwapThreePool]: ZkSwapThreePoolProcessor,
83
84
  [tokenType.maha]: StakedCurveProcessor,
84
85
  [tokenType.tempest]: TempestVaultProcessor,
86
+ [tokenType.pendleYT]: PendleYTProcessor,
87
+ [tokenType.pancakeswap]: UniswapProcessor,
85
88
  };
@@ -72,6 +72,7 @@ export declare const CampaignController: Elysia<"/campaigns", false, {
72
72
  campaignId?: string | undefined;
73
73
  opportunityId?: string | undefined;
74
74
  tokenSymbol?: string | undefined;
75
+ test?: boolean | undefined;
75
76
  };
76
77
  headers: unknown;
77
78
  response: {
@@ -90,7 +91,9 @@ export declare const CampaignController: Elysia<"/campaigns", false, {
90
91
  address: string;
91
92
  icon: string;
92
93
  decimals: number;
94
+ displaySymbol: string;
93
95
  verified: boolean;
96
+ isTest: boolean;
94
97
  price: number | null;
95
98
  };
96
99
  distributionChain: {
@@ -140,6 +143,7 @@ export declare const CampaignController: Elysia<"/campaigns", false, {
140
143
  campaignId?: string | undefined;
141
144
  opportunityId?: string | undefined;
142
145
  tokenSymbol?: string | undefined;
146
+ test?: boolean | undefined;
143
147
  };
144
148
  headers: unknown;
145
149
  response: {
@@ -77,6 +77,7 @@ export declare const GetCampaignQueryDto: import("@sinclair/typebox").TObject<{
77
77
  mainParameter: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
78
78
  tokenSymbol: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
79
79
  tokenAddress: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
80
+ test: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
80
81
  opportunityId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
81
82
  startTimestamp: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
82
83
  endTimestamp: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
@@ -48,6 +48,7 @@ export const GetCampaignQueryDto = t.Object({
48
48
  mainParameter: t.Optional(t.String()),
49
49
  tokenSymbol: t.Optional(t.String()),
50
50
  tokenAddress: t.Optional(t.String()),
51
+ test: t.Optional(t.Boolean()),
51
52
  opportunityId: t.Optional(t.String()),
52
53
  startTimestamp: t.Optional(t.String({ pattern: "[0-9].*" })),
53
54
  endTimestamp: t.Optional(t.String({ pattern: "[0-9].*" })),
@@ -102,7 +102,9 @@ export declare abstract class CampaignRepository {
102
102
  address: string;
103
103
  icon: string;
104
104
  decimals: number;
105
+ displaySymbol: string;
105
106
  verified: boolean;
107
+ isTest: boolean;
106
108
  price: number | null;
107
109
  };
108
110
  CampaignStatus: {
@@ -10,7 +10,7 @@ import { TokenService } from "../token";
10
10
  export class CampaignRepository {
11
11
  // ─── Private Methods ─────────────────────────────────────────────────
12
12
  static #transformQueryToPrismaFilters(query) {
13
- const { chainId, endTimestamp, opportunityId, mainParameter, campaignId, startTimestamp, subType, type, tokenAddress, tokenSymbol, } = query;
13
+ const { chainId, endTimestamp, opportunityId, mainParameter, campaignId, startTimestamp, subType, type, tokenAddress, tokenSymbol, test, } = query;
14
14
  return {
15
15
  where: {
16
16
  computeChainId: chainId,
@@ -26,6 +26,7 @@ export class CampaignRepository {
26
26
  RewardToken: {
27
27
  address: tokenAddress ? tokenAddress : undefined,
28
28
  symbol: tokenSymbol ? tokenSymbol : undefined,
29
+ isTest: !test ? false : undefined,
29
30
  },
30
31
  },
31
32
  };
@@ -43,7 +43,9 @@ export declare abstract class CampaignService {
43
43
  address: string;
44
44
  icon: string;
45
45
  decimals: number;
46
+ displaySymbol: string;
46
47
  verified: boolean;
48
+ isTest: boolean;
47
49
  price: number | null;
48
50
  };
49
51
  distributionChain: {
@@ -175,7 +177,9 @@ export declare abstract class CampaignService {
175
177
  address: string;
176
178
  icon: string;
177
179
  decimals: number;
180
+ displaySymbol: string;
178
181
  verified: boolean;
182
+ isTest: boolean;
179
183
  price: number | null;
180
184
  };
181
185
  distributionChain: {
@@ -92,7 +92,9 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
92
92
  address: string;
93
93
  icon: string;
94
94
  decimals: number;
95
+ displaySymbol: string;
95
96
  verified: boolean;
97
+ isTest: boolean;
96
98
  price: number | null;
97
99
  };
98
100
  amount: bigint;
@@ -107,7 +109,9 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
107
109
  address: string;
108
110
  icon: string;
109
111
  decimals: number;
112
+ displaySymbol: string;
110
113
  verified: boolean;
114
+ isTest: boolean;
111
115
  price: number | null;
112
116
  }[];
113
117
  chain: {
@@ -191,7 +195,9 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
191
195
  address: string;
192
196
  icon: string;
193
197
  decimals: number;
198
+ displaySymbol: string;
194
199
  verified: boolean;
200
+ isTest: boolean;
195
201
  price: number | null;
196
202
  };
197
203
  amount: bigint;
@@ -206,7 +212,9 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
206
212
  address: string;
207
213
  icon: string;
208
214
  decimals: number;
215
+ displaySymbol: string;
209
216
  verified: boolean;
217
+ isTest: boolean;
210
218
  price: number | null;
211
219
  }[];
212
220
  chain: {
@@ -247,7 +255,9 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
247
255
  address: string;
248
256
  icon: string;
249
257
  decimals: number;
258
+ displaySymbol: string;
250
259
  verified: boolean;
260
+ isTest: boolean;
251
261
  price: number | null;
252
262
  };
253
263
  distributionChain: {
@@ -300,6 +310,7 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
300
310
  action?: string | undefined;
301
311
  mainProtocolId?: string | undefined;
302
312
  order?: undefined;
313
+ test?: boolean | undefined;
303
314
  minimumTvl?: number | undefined;
304
315
  };
305
316
  headers: unknown;
@@ -345,7 +356,9 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
345
356
  address: string;
346
357
  icon: string;
347
358
  decimals: number;
359
+ displaySymbol: string;
348
360
  verified: boolean;
361
+ isTest: boolean;
349
362
  price: number | null;
350
363
  };
351
364
  amount: bigint;
@@ -360,7 +373,9 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
360
373
  address: string;
361
374
  icon: string;
362
375
  decimals: number;
376
+ displaySymbol: string;
363
377
  verified: boolean;
378
+ isTest: boolean;
364
379
  price: number | null;
365
380
  }[];
366
381
  chain: {
@@ -409,6 +424,7 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
409
424
  action?: string | undefined;
410
425
  mainProtocolId?: string | undefined;
411
426
  order?: undefined;
427
+ test?: boolean | undefined;
412
428
  minimumTvl?: number | undefined;
413
429
  };
414
430
  headers: unknown;
@@ -439,12 +455,13 @@ export declare const OpportunityController: Elysia<"/opportunities", false, {
439
455
  action?: string | undefined;
440
456
  mainProtocolId?: string | undefined;
441
457
  order?: undefined;
458
+ test?: boolean | undefined;
442
459
  minimumTvl?: number | undefined;
443
460
  };
444
461
  headers: unknown;
445
462
  response: {
446
463
  200: {
447
- sum: File;
464
+ sum: number | null;
448
465
  };
449
466
  };
450
467
  };
@@ -53,6 +53,7 @@ export declare const GetOpportunitiesQueryDto: import("@sinclair/typebox").TObje
53
53
  INVALID: "INVALID";
54
54
  }>, import("@sinclair/typebox").TRegExp]>>;
55
55
  tags: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
56
+ test: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
56
57
  minimumTvl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
57
58
  tokens: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
58
59
  status: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TEnum<{
@@ -111,7 +112,7 @@ export declare const CreateOpportunityDto: import("@sinclair/typebox").TObject<{
111
112
  export declare const OpportunityAggregateFieldDto: import("@sinclair/typebox").TObject<{
112
113
  field: import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TLiteral<"dailyRewards">[]>;
113
114
  }>;
114
- export type GetOpportunitiesQueryEntity = typeof GetOpportunitiesQueryDto.static;
115
+ export type GetOpportunitiesQueryModel = typeof GetOpportunitiesQueryDto.static;
115
116
  export type CreateOpportunityModel = typeof CreateOpportunityDto.static & {
116
117
  id: string;
117
118
  };
@@ -15,6 +15,7 @@ export const GetOpportunitiesQueryDto = t.Object({
15
15
  //TODO: find a systemic way of handling query param arrays
16
16
  action: t.Optional(t.Union([t.Enum(OpportunityAction), t.RegExp(/^(POOL|HOLD|DROP|LEND|BORROW)+(,(POOL|HOLD|DROP|LEND|BORROW)+)*$/)])),
17
17
  tags: t.Optional(t.String()),
18
+ test: t.Optional(t.Boolean()),
18
19
  minimumTvl: t.Optional(t.Number()),
19
20
  tokens: t.Optional(t.String({ title: "Symbol" })),
20
21
  status: t.Optional(t.Union([t.Enum(Status), t.RegExp(/^(LIVE|PAST|SOON)+(,(LIVE|PAST|SOON)+)*$/)])),