@merkl/api 0.10.169 → 0.10.171

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 (61) 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 +147 -45
  9. package/dist/src/index.d.ts +49 -15
  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/TempestVaultProcessor.d.ts +3 -1
  16. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/TempestVaultProcessor.js +36 -7
  17. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/processorMapping.js +3 -0
  18. package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1RefactoFinal.js +1 -1
  19. package/dist/src/modules/v4/campaign/campaign.controller.d.ts +5 -1
  20. package/dist/src/modules/v4/campaign/campaign.model.d.ts +1 -0
  21. package/dist/src/modules/v4/campaign/campaign.model.js +1 -0
  22. package/dist/src/modules/v4/campaign/campaign.repository.d.ts +2 -0
  23. package/dist/src/modules/v4/campaign/campaign.repository.js +3 -1
  24. package/dist/src/modules/v4/campaign/campaign.service.d.ts +6 -2
  25. package/dist/src/modules/v4/campaign/campaign.service.js +2 -1
  26. package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +27 -10
  27. package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +2 -1
  28. package/dist/src/modules/v4/opportunity/opportunity.model.js +1 -0
  29. package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +26 -4
  30. package/dist/src/modules/v4/opportunity/opportunity.repository.js +2 -0
  31. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +50 -24
  32. package/dist/src/modules/v4/opportunity/opportunity.service.js +2 -1
  33. package/dist/src/modules/v4/price/price.controller.js +1 -1
  34. package/dist/src/modules/v4/price/price.service.d.ts +1 -1
  35. package/dist/src/modules/v4/price/price.service.js +3 -3
  36. package/dist/src/modules/v4/reward/reward.repository.d.ts +4 -0
  37. package/dist/src/modules/v4/reward/reward.service.d.ts +22 -0
  38. package/dist/src/modules/v4/router.d.ts +49 -15
  39. package/dist/src/modules/v4/token/token.controller.d.ts +9 -4
  40. package/dist/src/modules/v4/token/token.model.d.ts +2 -1
  41. package/dist/src/modules/v4/token/token.model.js +1 -0
  42. package/dist/src/modules/v4/token/token.repository.d.ts +13 -1
  43. package/dist/src/modules/v4/token/token.repository.js +2 -0
  44. package/dist/src/modules/v4/token/token.service.d.ts +12 -4
  45. package/dist/src/modules/v4/token/token.service.js +11 -2
  46. package/dist/src/modules/v4/user/user.controller.d.ts +8 -0
  47. package/dist/src/routes/v3/blacklist.d.ts +49 -15
  48. package/dist/src/routes/v3/campaigns.d.ts +49 -15
  49. package/dist/src/routes/v3/campaignsInfo.d.ts +49 -15
  50. package/dist/src/routes/v3/multiChainPositions.d.ts +49 -15
  51. package/dist/src/routes/v3/opportunity.d.ts +49 -15
  52. package/dist/src/routes/v3/positions.d.ts +49 -15
  53. package/dist/src/routes/v3/rewards.d.ts +49 -15
  54. package/dist/src/routes/v3/updates.d.ts +49 -15
  55. package/dist/src/routes/v3/userRewards.d.ts +49 -15
  56. package/dist/src/utils/decodeCalls.js +4 -1
  57. package/dist/src/utils/encodeCalls.js +4 -1
  58. package/dist/src/utils/generateCardName.js +2 -0
  59. package/dist/src/utils/prices/services/erc4626Service.js +7 -1
  60. package/dist/tsconfig.package.tsbuildinfo +1 -1
  61. package/package.json +1 -1
@@ -128,14 +128,16 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
128
128
  address: string;
129
129
  icon: string;
130
130
  decimals: number;
131
+ displaySymbol: string;
131
132
  verified: boolean;
133
+ isTest: boolean;
132
134
  price: number | null;
133
135
  };
134
136
  amount: bigint;
135
137
  }[];
136
138
  };
137
139
  id: string;
138
- tokens: {
140
+ tokens: ({
139
141
  symbol: string;
140
142
  name: string | null;
141
143
  id: string;
@@ -144,8 +146,10 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
144
146
  icon: string;
145
147
  decimals: number;
146
148
  verified: boolean;
147
- price: number | null;
148
- }[];
149
+ isTest: boolean;
150
+ } & {
151
+ price?: number | null | undefined;
152
+ })[];
149
153
  chain: {
150
154
  name: string;
151
155
  id: number;
@@ -227,14 +231,16 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
227
231
  address: string;
228
232
  icon: string;
229
233
  decimals: number;
234
+ displaySymbol: string;
230
235
  verified: boolean;
236
+ isTest: boolean;
231
237
  price: number | null;
232
238
  };
233
239
  amount: bigint;
234
240
  }[];
235
241
  };
236
242
  id: string;
237
- tokens: {
243
+ tokens: ({
238
244
  symbol: string;
239
245
  name: string | null;
240
246
  id: string;
@@ -243,8 +249,10 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
243
249
  icon: string;
244
250
  decimals: number;
245
251
  verified: boolean;
246
- price: number | null;
247
- }[];
252
+ isTest: boolean;
253
+ } & {
254
+ price?: number | null | undefined;
255
+ })[];
248
256
  chain: {
249
257
  name: string;
250
258
  id: number;
@@ -284,7 +292,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
284
292
  icon: string;
285
293
  decimals: number;
286
294
  verified: boolean;
287
- price: number | null;
295
+ isTest: boolean;
296
+ } & {
297
+ price?: number | null | undefined;
288
298
  };
289
299
  distributionChain: {
290
300
  name: string;
@@ -336,6 +346,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
336
346
  action?: string | undefined;
337
347
  mainProtocolId?: string | undefined;
338
348
  order?: undefined;
349
+ test?: boolean | undefined;
339
350
  minimumTvl?: number | undefined;
340
351
  };
341
352
  headers: unknown;
@@ -381,14 +392,16 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
381
392
  address: string;
382
393
  icon: string;
383
394
  decimals: number;
395
+ displaySymbol: string;
384
396
  verified: boolean;
397
+ isTest: boolean;
385
398
  price: number | null;
386
399
  };
387
400
  amount: bigint;
388
401
  }[];
389
402
  };
390
403
  id: string;
391
- tokens: {
404
+ tokens: ({
392
405
  symbol: string;
393
406
  name: string | null;
394
407
  id: string;
@@ -397,8 +410,10 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
397
410
  icon: string;
398
411
  decimals: number;
399
412
  verified: boolean;
400
- price: number | null;
401
- }[];
413
+ isTest: boolean;
414
+ } & {
415
+ price?: number | null | undefined;
416
+ })[];
402
417
  chain: {
403
418
  name: string;
404
419
  id: number;
@@ -445,6 +460,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
445
460
  action?: string | undefined;
446
461
  mainProtocolId?: string | undefined;
447
462
  order?: undefined;
463
+ test?: boolean | undefined;
448
464
  minimumTvl?: number | undefined;
449
465
  };
450
466
  headers: unknown;
@@ -475,6 +491,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
475
491
  action?: string | undefined;
476
492
  mainProtocolId?: string | undefined;
477
493
  order?: undefined;
494
+ test?: boolean | undefined;
478
495
  minimumTvl?: number | undefined;
479
496
  };
480
497
  headers: unknown;
@@ -549,6 +566,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
549
566
  mainParameter?: string | undefined;
550
567
  campaignId?: string | undefined;
551
568
  opportunityId?: string | undefined;
569
+ test?: boolean | undefined;
552
570
  tokenSymbol?: string | undefined;
553
571
  };
554
572
  headers: unknown;
@@ -569,7 +587,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
569
587
  icon: string;
570
588
  decimals: number;
571
589
  verified: boolean;
572
- price: number | null;
590
+ isTest: boolean;
591
+ } & {
592
+ price?: number | null | undefined;
573
593
  };
574
594
  distributionChain: {
575
595
  name: string;
@@ -617,6 +637,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
617
637
  mainParameter?: string | undefined;
618
638
  campaignId?: string | undefined;
619
639
  opportunityId?: string | undefined;
640
+ test?: boolean | undefined;
620
641
  tokenSymbol?: string | undefined;
621
642
  };
622
643
  headers: unknown;
@@ -772,6 +793,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
772
793
  icon: string;
773
794
  decimals: number;
774
795
  verified: boolean;
796
+ isTest: boolean;
775
797
  price?: number | null | undefined;
776
798
  } | undefined;
777
799
  };
@@ -801,6 +823,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
801
823
  icon: string;
802
824
  decimals: number;
803
825
  verified: boolean;
826
+ isTest: boolean;
804
827
  } & {
805
828
  price?: number | null | undefined;
806
829
  } & {
@@ -822,10 +845,11 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
822
845
  chainId?: any;
823
846
  address?: string | undefined;
824
847
  verified?: boolean | undefined;
848
+ test?: boolean | undefined;
825
849
  };
826
850
  headers: unknown;
827
851
  response: {
828
- 200: ({
852
+ 200: {
829
853
  symbol: string;
830
854
  name: string | null;
831
855
  id: string;
@@ -833,10 +857,11 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
833
857
  address: string;
834
858
  icon: string;
835
859
  decimals: number;
860
+ displaySymbol: string;
836
861
  verified: boolean;
837
- } & {
838
- price?: number | null | undefined;
839
- })[];
862
+ isTest: boolean;
863
+ price: number | null;
864
+ }[];
840
865
  };
841
866
  };
842
867
  };
@@ -853,6 +878,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
853
878
  chainId?: any;
854
879
  address?: string | undefined;
855
880
  verified?: boolean | undefined;
881
+ test?: boolean | undefined;
856
882
  };
857
883
  headers: unknown;
858
884
  response: {
@@ -1496,7 +1522,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
1496
1522
  address: string;
1497
1523
  icon: string;
1498
1524
  decimals: number;
1525
+ displaySymbol: string;
1499
1526
  verified: boolean;
1527
+ isTest: boolean;
1500
1528
  price: number | null;
1501
1529
  };
1502
1530
  breakdowns: {
@@ -1515,7 +1543,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
1515
1543
  address: string;
1516
1544
  icon: string;
1517
1545
  decimals: number;
1546
+ displaySymbol: string;
1518
1547
  verified: boolean;
1548
+ isTest: boolean;
1519
1549
  price: number | null;
1520
1550
  }[];
1521
1551
  Protocols: {
@@ -1606,7 +1636,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
1606
1636
  address: string;
1607
1637
  icon: string;
1608
1638
  decimals: number;
1639
+ displaySymbol: string;
1609
1640
  verified: boolean;
1641
+ isTest: boolean;
1610
1642
  price: number | null;
1611
1643
  };
1612
1644
  breakdowns: {
@@ -1625,7 +1657,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
1625
1657
  address: string;
1626
1658
  icon: string;
1627
1659
  decimals: number;
1660
+ displaySymbol: string;
1628
1661
  verified: boolean;
1662
+ isTest: boolean;
1629
1663
  price: number | null;
1630
1664
  }[];
1631
1665
  Protocols: {
@@ -1,8 +1,10 @@
1
- import { AaveInterface, AuraInterface, AuraOperatorInterface, BalancerGaugeInterface, BalancerPoolInterface, BalancerVaultInterface, BeefyInterface, CompoundInterface, CurveInterface, ERC20Interface, EnzymeInterface, EulerInterface, FactoryInterface, FluidInterface, FraxlendInterface, GearboxVaultInterface, IonicInterface, LayerBankInterface, MaverickBPLensInterface, MetamorphoInterface, MoonwellInterface, OneInchStakingInterface, PendleInterface, RadiantInterface, RfxInterface, SturdyInterface, SymetricAmbientStrategyInterface, TorosInterface, UniswapV2PoolInterface, ZFStableLPINterface, ZFStableSwapThreePoolInterface, } from "@sdk";
1
+ import { AaveInterface, AuraInterface, AuraOperatorInterface, BalancerGaugeInterface, BalancerPoolInterface, BalancerVaultInterface, BeefyInterface, CompoundInterface, CurveInterface, ERC20Interface, EnzymeInterface, EulerInterface, FactoryInterface, FluidInterface, FraxlendInterface, GearboxVaultInterface, IonicInterface, LayerBankInterface, MaverickBPLensInterface, MetamorphoInterface, MoonwellInterface, OneInchStakingInterface, PendleInterface, PendleYTInterface, RadiantInterface, RfxInterface, SturdyInterface, SymetricAmbientStrategyInterface, TorosInterface, UniswapV2PoolInterface, ZFStableLPINterface, ZFStableSwapThreePoolInterface, } from "@sdk";
2
2
  import { tokenType } from "../libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType";
3
3
  export function decodeCall(calls, index, key, type) {
4
4
  const returnData = calls[index];
5
5
  switch (key) {
6
+ case "SY":
7
+ return PendleYTInterface.decodeFunctionResult("SY", returnData)[0];
6
8
  case "symbol":
7
9
  return ERC20Interface.decodeFunctionResult("symbol", returnData)[0];
8
10
  case "decimals":
@@ -44,6 +46,7 @@ export function decodeCall(calls, index, key, type) {
44
46
  case "underlying":
45
47
  switch (type) {
46
48
  case tokenType.pendle:
49
+ case tokenType.pendleYT:
47
50
  return PendleInterface.decodeFunctionResult("yieldToken", returnData)[0];
48
51
  case tokenType.gearbox:
49
52
  return GearboxVaultInterface.decodeFunctionResult("underlyingToken", returnData)[0];
@@ -1,8 +1,10 @@
1
1
  import { tokenType } from "../libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType";
2
- import { AaveInterface, AuraInterface, AuraOperatorInterface, BalancerGaugeInterface, BalancerPoolInterface, BalancerVaultInterface, BeefyInterface, CompoundInterface, CurveInterface, ERC20Interface, EnzymeInterface, EulerInterface, FactoryInterface, FluidInterface, FraxlendInterface, GearboxVaultInterface, IonicInterface, LayerBankInterface, MaverickBPLensInterface, MetamorphoInterface, MoonwellInterface, OneInchStakingInterface, PendleInterface, RadiantInterface, RfxDatastoreInterface, SturdyInterface, SymetricAmbientStrategyInterface, TorosInterface, UniswapV2PoolInterface, ZFStableLPINterface, ZFStableSwapThreePoolInterface, } from "@sdk";
2
+ import { AaveInterface, AuraInterface, AuraOperatorInterface, BalancerGaugeInterface, BalancerPoolInterface, BalancerVaultInterface, BeefyInterface, CompoundInterface, CurveInterface, ERC20Interface, EnzymeInterface, EulerInterface, FactoryInterface, FluidInterface, FraxlendInterface, GearboxVaultInterface, IonicInterface, LayerBankInterface, MaverickBPLensInterface, MetamorphoInterface, MoonwellInterface, OneInchStakingInterface, PendleInterface, PendleYTInterface, RadiantInterface, RfxDatastoreInterface, SturdyInterface, SymetricAmbientStrategyInterface, TorosInterface, UniswapV2PoolInterface, ZFStableLPINterface, ZFStableSwapThreePoolInterface, } from "@sdk";
3
3
  import { fluidInterface } from "src/libs/campaigns/campaignTypes/ERC20SubTypes/subtypesRound1";
4
4
  export function createCall(target, key, type, metaData) {
5
5
  switch (key) {
6
+ case "SY":
7
+ return { allowFailure: true, callData: PendleYTInterface.encodeFunctionData("SY"), target };
6
8
  case "collateralContract":
7
9
  return { allowFailure: true, callData: SturdyInterface.encodeFunctionData("collateralContract"), target };
8
10
  case "pricePerShare":
@@ -63,6 +65,7 @@ export function createCall(target, key, type, metaData) {
63
65
  case "underlying":
64
66
  switch (type) {
65
67
  case tokenType.pendle:
68
+ case tokenType.pendleYT:
66
69
  return { allowFailure: true, callData: PendleInterface.encodeFunctionData("yieldToken"), target };
67
70
  case tokenType.metamorpho:
68
71
  return { allowFailure: true, callData: MetamorphoInterface.encodeFunctionData("asset"), target };
@@ -14,6 +14,8 @@ export function generateCardName(type, typeInfo, campaign, symbols = [""]) {
14
14
  case tokenType.ra:
15
15
  case tokenType.syncswap:
16
16
  return `${typeInfo.protocol} ${typeInfo.symbolToken0}/${typeInfo.symbolToken1}`;
17
+ case tokenType.pendleYT:
18
+ return `Hold YT of ${typeInfo.symbolUnderlyingToken} on ${typeInfo.protocol}`;
17
19
  case tokenType.pendle:
18
20
  return `Provide ${typeInfo.symbolUnderlyingToken} on ${typeInfo.protocol}`;
19
21
  case tokenType.balancerGauge:
@@ -25,6 +25,12 @@ export default class ERC4626Service {
25
25
  return resolvedPrices.flat().filter(price => price !== undefined);
26
26
  }
27
27
  async priceCalculation(rate, vaultToken) {
28
- return rate * (await PriceService.fetchPriceSourceBySymbol(vaultToken));
28
+ try {
29
+ const vaultTokenPrice = await PriceService.fetchPriceBySymbol(vaultToken);
30
+ return rate * vaultTokenPrice;
31
+ }
32
+ catch {
33
+ return Number.NaN;
34
+ }
29
35
  }
30
36
  }