@merkl/api 0.10.168 → 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.
- package/dist/database/api/.generated/edge.js +6 -3
- package/dist/database/api/.generated/index-browser.js +3 -0
- package/dist/database/api/.generated/index.d.ts +113 -0
- package/dist/database/api/.generated/index.js +6 -3
- package/dist/database/api/.generated/package.json +1 -1
- package/dist/database/api/.generated/schema.prisma +17 -15
- package/dist/database/api/.generated/wasm.js +3 -0
- package/dist/src/cache/declaration.d.ts +0 -30
- package/dist/src/cache/declaration.js +0 -30
- package/dist/src/eden/index.d.ts +167 -15
- package/dist/src/index.d.ts +59 -5
- package/dist/src/libs/campaigns/campaignTypes/CLAMMDynamicData.js +2 -2
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/factoryFinder.js +2 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.d.ts +3 -1
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/helpers/tokenType.js +8 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/PendleYTProcessor.d.ts +29 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/PendleYTProcessor.js +31 -0
- package/dist/src/libs/campaigns/campaignTypes/ERC20SubTypes/processor/processorMapping.js +3 -0
- package/dist/src/libs/positions/clamm/index.d.ts +1 -2
- package/dist/src/libs/positions/clamm/index.js +322 -330
- package/dist/src/libs/positions/clamm/thegraph/fetchAlmPositions.d.ts +1 -1
- package/dist/src/libs/positions/clamm/thegraph/fetchAlmPositions.js +1 -1
- package/dist/src/libs/positions/clamm/thegraph/fetchAmmPositions.d.ts +1 -1
- package/dist/src/libs/positions/clamm/thegraph/fetchAmmPositions.js +2 -2
- package/dist/src/libs/positions/clamm/thegraph/fetchFarmedPositions.d.ts +1 -2
- package/dist/src/libs/positions/clamm/thegraph/fetchFarmedPositions.js +1 -4
- package/dist/src/libs/positions/euler/index.js +2 -3
- package/dist/src/libs/positions/index.js +1 -1
- package/dist/src/modules/v4/campaign/campaign.controller.d.ts +6 -2
- package/dist/src/modules/v4/campaign/campaign.model.d.ts +1 -0
- package/dist/src/modules/v4/campaign/campaign.model.js +1 -0
- package/dist/src/modules/v4/campaign/campaign.repository.d.ts +2 -0
- package/dist/src/modules/v4/campaign/campaign.repository.js +2 -1
- package/dist/src/modules/v4/campaign/campaign.service.d.ts +10 -5
- package/dist/src/modules/v4/campaign/campaign.service.js +10 -2
- package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +20 -3
- package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +2 -1
- package/dist/src/modules/v4/opportunity/opportunity.model.js +1 -0
- package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +83 -5
- package/dist/src/modules/v4/opportunity/opportunity.repository.js +31 -0
- package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +162 -8
- package/dist/src/modules/v4/opportunity/opportunity.service.js +11 -0
- package/dist/src/modules/v4/position/implementations/AjnaPositionFetcher.d.ts +6 -0
- package/dist/src/modules/v4/position/implementations/AjnaPositionFetcher.js +90 -0
- package/dist/src/modules/v4/position/implementations/BadgerPositionFetcher.d.ts +6 -0
- package/dist/src/modules/v4/position/implementations/BadgerPositionFetcher.js +69 -0
- package/dist/src/modules/v4/position/implementations/ClammPositionFetcher.d.ts +6 -0
- package/dist/src/modules/v4/position/implementations/ClammPositionFetcher.js +71 -0
- package/dist/src/modules/v4/position/implementations/DolomitePositionFetcher.d.ts +6 -0
- package/dist/src/modules/v4/position/implementations/DolomitePositionFetcher.js +45 -0
- package/dist/src/modules/v4/position/implementations/ERC20PositionFetcher.d.ts +6 -0
- package/dist/src/modules/v4/position/implementations/ERC20PositionFetcher.js +47 -0
- package/dist/src/modules/v4/position/implementations/EulerPositionFetcher.d.ts +6 -0
- package/dist/src/modules/v4/position/implementations/EulerPositionFetcher.js +40 -0
- package/dist/src/modules/v4/position/index.d.ts +2 -0
- package/dist/src/modules/v4/position/index.js +2 -0
- package/dist/src/modules/v4/position/position.controller.d.ts +39 -0
- package/dist/src/modules/v4/position/position.controller.js +16 -0
- package/dist/src/modules/v4/position/position.model.d.ts +25 -0
- package/dist/src/modules/v4/position/position.model.js +5 -0
- package/dist/src/modules/v4/position/position.repository.d.ts +14 -0
- package/dist/src/modules/v4/position/position.repository.js +6 -0
- package/dist/src/modules/v4/position/position.service.d.ts +5 -0
- package/dist/src/modules/v4/position/position.service.js +34 -0
- package/dist/src/modules/v4/price/price.controller.js +1 -1
- package/dist/src/modules/v4/price/price.service.d.ts +1 -1
- package/dist/src/modules/v4/price/price.service.js +3 -3
- package/dist/src/modules/v4/reward/reward.repository.d.ts +4 -0
- package/dist/src/modules/v4/reward/reward.service.d.ts +27 -0
- package/dist/src/modules/v4/reward/reward.service.js +5 -2
- package/dist/src/modules/v4/router.d.ts +59 -5
- package/dist/src/modules/v4/router.js +3 -1
- package/dist/src/modules/v4/token/token.controller.d.ts +6 -0
- package/dist/src/modules/v4/token/token.service.d.ts +12 -0
- package/dist/src/modules/v4/user/user.controller.d.ts +8 -0
- package/dist/src/routes/v1/prices.js +2 -4
- package/dist/src/routes/v3/blacklist.d.ts +59 -5
- package/dist/src/routes/v3/campaigns.d.ts +60 -6
- package/dist/src/routes/v3/campaignsInfo.d.ts +59 -5
- package/dist/src/routes/v3/multiChainPositions.d.ts +59 -5
- package/dist/src/routes/v3/opportunity.d.ts +59 -5
- package/dist/src/routes/v3/positions.d.ts +59 -5
- package/dist/src/routes/v3/recipients.d.ts +6 -2
- package/dist/src/routes/v3/recipients.js +14 -8
- package/dist/src/routes/v3/rewards.d.ts +59 -5
- package/dist/src/routes/v3/updates.d.ts +59 -5
- package/dist/src/routes/v3/userRewards.d.ts +59 -5
- package/dist/src/utils/decodeCalls.js +4 -1
- package/dist/src/utils/encodeCalls.js +4 -1
- package/dist/src/utils/generateCardName.js +2 -0
- package/dist/src/utils/prices/services/erc4626Service.js +10 -4
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/src/libs/reports/campaignReport.d.ts +0 -9
- package/dist/src/libs/reports/campaignReport.js +0 -37
- package/dist/src/libs/reports/mainParameterRewards.d.ts +0 -3
- package/dist/src/libs/reports/mainParameterRewards.js +0 -48
|
@@ -128,7 +128,9 @@ 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;
|
|
@@ -143,7 +145,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
143
145
|
address: string;
|
|
144
146
|
icon: string;
|
|
145
147
|
decimals: number;
|
|
148
|
+
displaySymbol: string;
|
|
146
149
|
verified: boolean;
|
|
150
|
+
isTest: boolean;
|
|
147
151
|
price: number | null;
|
|
148
152
|
}[];
|
|
149
153
|
chain: {
|
|
@@ -227,7 +231,9 @@ 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;
|
|
@@ -242,7 +248,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
242
248
|
address: string;
|
|
243
249
|
icon: string;
|
|
244
250
|
decimals: number;
|
|
251
|
+
displaySymbol: string;
|
|
245
252
|
verified: boolean;
|
|
253
|
+
isTest: boolean;
|
|
246
254
|
price: number | null;
|
|
247
255
|
}[];
|
|
248
256
|
chain: {
|
|
@@ -268,7 +276,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
268
276
|
tvl: number;
|
|
269
277
|
apr: number;
|
|
270
278
|
dailyRewards: number;
|
|
271
|
-
campaigns:
|
|
279
|
+
campaigns: {
|
|
272
280
|
params: any;
|
|
273
281
|
chain: {
|
|
274
282
|
name: string;
|
|
@@ -283,7 +291,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
283
291
|
address: string;
|
|
284
292
|
icon: string;
|
|
285
293
|
decimals: number;
|
|
294
|
+
displaySymbol: string;
|
|
286
295
|
verified: boolean;
|
|
296
|
+
isTest: boolean;
|
|
287
297
|
price: number | null;
|
|
288
298
|
};
|
|
289
299
|
distributionChain: {
|
|
@@ -311,7 +321,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
311
321
|
amount: string;
|
|
312
322
|
opportunityId: string;
|
|
313
323
|
creatorAddress: string;
|
|
314
|
-
}
|
|
324
|
+
}[];
|
|
315
325
|
} | null | undefined;
|
|
316
326
|
};
|
|
317
327
|
};
|
|
@@ -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,7 +392,9 @@ 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;
|
|
@@ -396,7 +409,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
396
409
|
address: string;
|
|
397
410
|
icon: string;
|
|
398
411
|
decimals: number;
|
|
412
|
+
displaySymbol: string;
|
|
399
413
|
verified: boolean;
|
|
414
|
+
isTest: boolean;
|
|
400
415
|
price: number | null;
|
|
401
416
|
}[];
|
|
402
417
|
chain: {
|
|
@@ -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,12 +491,13 @@ 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;
|
|
481
498
|
response: {
|
|
482
499
|
200: {
|
|
483
|
-
sum:
|
|
500
|
+
sum: number | null;
|
|
484
501
|
};
|
|
485
502
|
};
|
|
486
503
|
};
|
|
@@ -550,10 +567,11 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
550
567
|
campaignId?: string | undefined;
|
|
551
568
|
opportunityId?: string | undefined;
|
|
552
569
|
tokenSymbol?: string | undefined;
|
|
570
|
+
test?: boolean | undefined;
|
|
553
571
|
};
|
|
554
572
|
headers: unknown;
|
|
555
573
|
response: {
|
|
556
|
-
200:
|
|
574
|
+
200: {
|
|
557
575
|
params: any;
|
|
558
576
|
chain: {
|
|
559
577
|
name: string;
|
|
@@ -568,7 +586,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
568
586
|
address: string;
|
|
569
587
|
icon: string;
|
|
570
588
|
decimals: number;
|
|
589
|
+
displaySymbol: string;
|
|
571
590
|
verified: boolean;
|
|
591
|
+
isTest: boolean;
|
|
572
592
|
price: number | null;
|
|
573
593
|
};
|
|
574
594
|
distributionChain: {
|
|
@@ -596,7 +616,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
596
616
|
amount: string;
|
|
597
617
|
opportunityId: string;
|
|
598
618
|
creatorAddress: string;
|
|
599
|
-
}
|
|
619
|
+
}[];
|
|
600
620
|
};
|
|
601
621
|
};
|
|
602
622
|
};
|
|
@@ -618,6 +638,7 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
618
638
|
campaignId?: string | undefined;
|
|
619
639
|
opportunityId?: string | undefined;
|
|
620
640
|
tokenSymbol?: string | undefined;
|
|
641
|
+
test?: boolean | undefined;
|
|
621
642
|
};
|
|
622
643
|
headers: unknown;
|
|
623
644
|
response: {
|
|
@@ -771,7 +792,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
771
792
|
address: string;
|
|
772
793
|
icon: string;
|
|
773
794
|
decimals: number;
|
|
795
|
+
displaySymbol: string;
|
|
774
796
|
verified: boolean;
|
|
797
|
+
isTest: boolean;
|
|
775
798
|
price?: number | null | undefined;
|
|
776
799
|
} | undefined;
|
|
777
800
|
};
|
|
@@ -800,7 +823,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
800
823
|
address: string;
|
|
801
824
|
icon: string;
|
|
802
825
|
decimals: number;
|
|
826
|
+
displaySymbol: string;
|
|
803
827
|
verified: boolean;
|
|
828
|
+
isTest: boolean;
|
|
804
829
|
} & {
|
|
805
830
|
price?: number | null | undefined;
|
|
806
831
|
} & {
|
|
@@ -833,7 +858,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
833
858
|
address: string;
|
|
834
859
|
icon: string;
|
|
835
860
|
decimals: number;
|
|
861
|
+
displaySymbol: string;
|
|
836
862
|
verified: boolean;
|
|
863
|
+
isTest: boolean;
|
|
837
864
|
} & {
|
|
838
865
|
price?: number | null | undefined;
|
|
839
866
|
})[];
|
|
@@ -1496,7 +1523,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
1496
1523
|
address: string;
|
|
1497
1524
|
icon: string;
|
|
1498
1525
|
decimals: number;
|
|
1526
|
+
displaySymbol: string;
|
|
1499
1527
|
verified: boolean;
|
|
1528
|
+
isTest: boolean;
|
|
1500
1529
|
price: number | null;
|
|
1501
1530
|
};
|
|
1502
1531
|
breakdowns: {
|
|
@@ -1515,7 +1544,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
1515
1544
|
address: string;
|
|
1516
1545
|
icon: string;
|
|
1517
1546
|
decimals: number;
|
|
1547
|
+
displaySymbol: string;
|
|
1518
1548
|
verified: boolean;
|
|
1549
|
+
isTest: boolean;
|
|
1519
1550
|
price: number | null;
|
|
1520
1551
|
}[];
|
|
1521
1552
|
Protocols: {
|
|
@@ -1606,7 +1637,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
1606
1637
|
address: string;
|
|
1607
1638
|
icon: string;
|
|
1608
1639
|
decimals: number;
|
|
1640
|
+
displaySymbol: string;
|
|
1609
1641
|
verified: boolean;
|
|
1642
|
+
isTest: boolean;
|
|
1610
1643
|
price: number | null;
|
|
1611
1644
|
};
|
|
1612
1645
|
breakdowns: {
|
|
@@ -1625,7 +1658,9 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
1625
1658
|
address: string;
|
|
1626
1659
|
icon: string;
|
|
1627
1660
|
decimals: number;
|
|
1661
|
+
displaySymbol: string;
|
|
1628
1662
|
verified: boolean;
|
|
1663
|
+
isTest: boolean;
|
|
1629
1664
|
price: number | null;
|
|
1630
1665
|
}[];
|
|
1631
1666
|
Protocols: {
|
|
@@ -2221,6 +2256,25 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
|
|
|
2221
2256
|
};
|
|
2222
2257
|
};
|
|
2223
2258
|
};
|
|
2259
|
+
} & {
|
|
2260
|
+
v4: {
|
|
2261
|
+
positions: {
|
|
2262
|
+
index: {
|
|
2263
|
+
get: {
|
|
2264
|
+
body: unknown;
|
|
2265
|
+
params: {};
|
|
2266
|
+
query: {
|
|
2267
|
+
chainId: number;
|
|
2268
|
+
address: string;
|
|
2269
|
+
};
|
|
2270
|
+
headers: unknown;
|
|
2271
|
+
response: {
|
|
2272
|
+
200: any[];
|
|
2273
|
+
};
|
|
2274
|
+
};
|
|
2275
|
+
};
|
|
2276
|
+
};
|
|
2277
|
+
};
|
|
2224
2278
|
} & {
|
|
2225
2279
|
index: {
|
|
2226
2280
|
get: {
|
|
@@ -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:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { PriceService } from "../../../modules/v4/price";
|
|
1
2
|
import { PriceSourceMethod } from "../../../../database/api/.generated";
|
|
2
3
|
import { log } from "../../logger";
|
|
3
|
-
import PriceService from "../priceService";
|
|
4
4
|
import { getERC4626Price } from "./getERC4626";
|
|
5
5
|
export default class ERC4626Service {
|
|
6
6
|
static instance = new ERC4626Service();
|
|
@@ -14,7 +14,7 @@ export default class ERC4626Service {
|
|
|
14
14
|
return log.warn(`❌ ERC4626Service ticker not found for ${token.symbol}`);
|
|
15
15
|
const rate = await getERC4626Price(args.chainId, args.address, args.decimals, args.vaultDecimals);
|
|
16
16
|
// 2 returned tokens as stUSD and STUSD (business requirement)
|
|
17
|
-
const price = this.priceCalculation(rate, args.vaultToken);
|
|
17
|
+
const price = await this.priceCalculation(rate, args.vaultToken);
|
|
18
18
|
const res = [
|
|
19
19
|
{ token: token.symbol, rate: price },
|
|
20
20
|
{ token: token.symbol.toUpperCase(), rate: price },
|
|
@@ -24,7 +24,13 @@ export default class ERC4626Service {
|
|
|
24
24
|
const resolvedPrices = await Promise.all(pricePromises);
|
|
25
25
|
return resolvedPrices.flat().filter(price => price !== undefined);
|
|
26
26
|
}
|
|
27
|
-
priceCalculation(rate, vaultToken) {
|
|
28
|
-
|
|
27
|
+
async priceCalculation(rate, 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
|
}
|