@merkl/api 0.10.168 → 0.10.170
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
}
|