@merkl/api 0.10.169 → 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/eden/index.d.ts +108 -3
- package/dist/src/index.d.ts +36 -1
- 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/modules/v4/campaign/campaign.controller.d.ts +4 -0
- 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 +4 -0
- package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +18 -1
- 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 +24 -105
- package/dist/src/modules/v4/opportunity/opportunity.repository.js +2 -0
- package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +31 -5
- 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 +22 -0
- package/dist/src/modules/v4/router.d.ts +36 -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/v3/blacklist.d.ts +36 -1
- package/dist/src/routes/v3/campaigns.d.ts +36 -1
- package/dist/src/routes/v3/campaignsInfo.d.ts +36 -1
- package/dist/src/routes/v3/multiChainPositions.d.ts +36 -1
- package/dist/src/routes/v3/opportunity.d.ts +36 -1
- package/dist/src/routes/v3/positions.d.ts +36 -1
- package/dist/src/routes/v3/rewards.d.ts +36 -1
- package/dist/src/routes/v3/updates.d.ts +36 -1
- package/dist/src/routes/v3/userRewards.d.ts +36 -1
- 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 +7 -1
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +1 -1
@@ -3,7 +3,7 @@ import type { MerklChainId } from "@sdk";
|
|
3
3
|
import { type AprRecord } from "../apr";
|
4
4
|
import { type DailyRewardsRecord } from "../reward";
|
5
5
|
import { type TvlRecord } from "../tvl";
|
6
|
-
import type { CreateOpportunityModel,
|
6
|
+
import type { CreateOpportunityModel, GetOpportunitiesQueryModel } from "./opportunity.model";
|
7
7
|
export declare abstract class OpportunityRepository {
|
8
8
|
#private;
|
9
9
|
static create(newOpp: CreateOpportunityModel): Promise<void>;
|
@@ -21,7 +21,9 @@ export declare abstract class OpportunityRepository {
|
|
21
21
|
address: string;
|
22
22
|
icon: string;
|
23
23
|
decimals: number;
|
24
|
+
displaySymbol: string;
|
24
25
|
verified: boolean;
|
26
|
+
isTest: boolean;
|
25
27
|
price: number | null;
|
26
28
|
}[];
|
27
29
|
Protocols: {
|
@@ -82,7 +84,9 @@ export declare abstract class OpportunityRepository {
|
|
82
84
|
address: string;
|
83
85
|
icon: string;
|
84
86
|
decimals: number;
|
87
|
+
displaySymbol: string;
|
85
88
|
verified: boolean;
|
89
|
+
isTest: boolean;
|
86
90
|
price: number | null;
|
87
91
|
};
|
88
92
|
CampaignStatus: {
|
@@ -145,7 +149,9 @@ export declare abstract class OpportunityRepository {
|
|
145
149
|
address: string;
|
146
150
|
icon: string;
|
147
151
|
decimals: number;
|
152
|
+
displaySymbol: string;
|
148
153
|
verified: boolean;
|
154
|
+
isTest: boolean;
|
149
155
|
price: number | null;
|
150
156
|
};
|
151
157
|
CampaignStatus: {
|
@@ -179,7 +185,9 @@ export declare abstract class OpportunityRepository {
|
|
179
185
|
address: string;
|
180
186
|
icon: string;
|
181
187
|
decimals: number;
|
188
|
+
displaySymbol: string;
|
182
189
|
verified: boolean;
|
190
|
+
isTest: boolean;
|
183
191
|
price: number | null;
|
184
192
|
}[];
|
185
193
|
Protocols: {
|
@@ -240,7 +248,9 @@ export declare abstract class OpportunityRepository {
|
|
240
248
|
address: string;
|
241
249
|
icon: string;
|
242
250
|
decimals: number;
|
251
|
+
displaySymbol: string;
|
243
252
|
verified: boolean;
|
253
|
+
isTest: boolean;
|
244
254
|
price: number | null;
|
245
255
|
};
|
246
256
|
CampaignStatus: {
|
@@ -288,7 +298,9 @@ export declare abstract class OpportunityRepository {
|
|
288
298
|
address: string;
|
289
299
|
icon: string;
|
290
300
|
decimals: number;
|
301
|
+
displaySymbol: string;
|
291
302
|
verified: boolean;
|
303
|
+
isTest: boolean;
|
292
304
|
price: number | null;
|
293
305
|
};
|
294
306
|
} & {
|
@@ -320,106 +332,7 @@ export declare abstract class OpportunityRepository {
|
|
320
332
|
apr: number;
|
321
333
|
dailyRewards: number;
|
322
334
|
})[]>;
|
323
|
-
static findMany(query:
|
324
|
-
Chain: {
|
325
|
-
name: string;
|
326
|
-
id: number;
|
327
|
-
icon: string;
|
328
|
-
};
|
329
|
-
Tokens: {
|
330
|
-
symbol: string;
|
331
|
-
name: string | null;
|
332
|
-
id: string;
|
333
|
-
chainId: number;
|
334
|
-
address: string;
|
335
|
-
icon: string;
|
336
|
-
decimals: number;
|
337
|
-
verified: boolean;
|
338
|
-
price: number | null;
|
339
|
-
}[];
|
340
|
-
Protocols: {
|
341
|
-
name: string;
|
342
|
-
url: string;
|
343
|
-
description: string;
|
344
|
-
id: string;
|
345
|
-
tags: import("../../../../database/api/.generated").$Enums.ProtocolTag[];
|
346
|
-
icon: string;
|
347
|
-
}[];
|
348
|
-
MainProtocol: {
|
349
|
-
name: string;
|
350
|
-
url: string;
|
351
|
-
description: string;
|
352
|
-
id: string;
|
353
|
-
tags: import("../../../../database/api/.generated").$Enums.ProtocolTag[];
|
354
|
-
icon: string;
|
355
|
-
} | null;
|
356
|
-
TvlRecords: ({
|
357
|
-
TvlBreakdown: {
|
358
|
-
type: import("../../../../database/api/.generated").$Enums.TvlType;
|
359
|
-
id: number;
|
360
|
-
identifier: string;
|
361
|
-
value: number;
|
362
|
-
tvlRecordId: string;
|
363
|
-
}[];
|
364
|
-
} & {
|
365
|
-
total: number;
|
366
|
-
id: string;
|
367
|
-
timestamp: bigint;
|
368
|
-
opportunityId: string;
|
369
|
-
})[];
|
370
|
-
AprRecords: ({
|
371
|
-
AprBreakdown: {
|
372
|
-
type: import("../../../../database/api/.generated").$Enums.AprType;
|
373
|
-
id: number;
|
374
|
-
identifier: string;
|
375
|
-
value: number;
|
376
|
-
aprRecordId: string;
|
377
|
-
}[];
|
378
|
-
} & {
|
379
|
-
id: string;
|
380
|
-
timestamp: bigint;
|
381
|
-
opportunityId: string;
|
382
|
-
cumulated: number;
|
383
|
-
})[];
|
384
|
-
DailyRewardsRecords: ({
|
385
|
-
DailyRewardsBreakdown: ({
|
386
|
-
Campaign: {
|
387
|
-
startTimestamp: bigint;
|
388
|
-
endTimestamp: bigint;
|
389
|
-
amount: string;
|
390
|
-
RewardToken: {
|
391
|
-
symbol: string;
|
392
|
-
name: string | null;
|
393
|
-
id: string;
|
394
|
-
chainId: number;
|
395
|
-
address: string;
|
396
|
-
icon: string;
|
397
|
-
decimals: number;
|
398
|
-
verified: boolean;
|
399
|
-
price: number | null;
|
400
|
-
};
|
401
|
-
CampaignStatus: {
|
402
|
-
error: string;
|
403
|
-
details: Prisma.JsonValue;
|
404
|
-
status: import("../../../../database/api/.generated").$Enums.RunStatus;
|
405
|
-
campaignId: string;
|
406
|
-
computedUntil: bigint;
|
407
|
-
processingStarted: bigint;
|
408
|
-
}[];
|
409
|
-
};
|
410
|
-
} & {
|
411
|
-
id: number;
|
412
|
-
value: number;
|
413
|
-
campaignId: string;
|
414
|
-
dailyRewardsRecordId: string;
|
415
|
-
})[];
|
416
|
-
} & {
|
417
|
-
total: number;
|
418
|
-
id: string;
|
419
|
-
timestamp: bigint;
|
420
|
-
opportunityId: string;
|
421
|
-
})[];
|
422
|
-
} & {
|
335
|
+
static findMany(query: GetOpportunitiesQueryModel): Promise<{
|
423
336
|
name: string;
|
424
337
|
type: import("../../../../database/api/.generated").$Enums.CampaignType;
|
425
338
|
id: string;
|
@@ -432,7 +345,7 @@ export declare abstract class OpportunityRepository {
|
|
432
345
|
tvl: number;
|
433
346
|
apr: number;
|
434
347
|
dailyRewards: number;
|
435
|
-
}
|
348
|
+
}[]>;
|
436
349
|
static findLiveWithFirstCampaign(chainId: MerklChainId): Promise<({
|
437
350
|
Chain: {
|
438
351
|
name: string;
|
@@ -458,7 +371,9 @@ export declare abstract class OpportunityRepository {
|
|
458
371
|
address: string;
|
459
372
|
icon: string;
|
460
373
|
decimals: number;
|
374
|
+
displaySymbol: string;
|
461
375
|
verified: boolean;
|
376
|
+
isTest: boolean;
|
462
377
|
price: number | null;
|
463
378
|
};
|
464
379
|
CampaignStatus: {
|
@@ -492,7 +407,9 @@ export declare abstract class OpportunityRepository {
|
|
492
407
|
address: string;
|
493
408
|
icon: string;
|
494
409
|
decimals: number;
|
410
|
+
displaySymbol: string;
|
495
411
|
verified: boolean;
|
412
|
+
isTest: boolean;
|
496
413
|
price: number | null;
|
497
414
|
}[];
|
498
415
|
Protocols: {
|
@@ -553,7 +470,9 @@ export declare abstract class OpportunityRepository {
|
|
553
470
|
address: string;
|
554
471
|
icon: string;
|
555
472
|
decimals: number;
|
473
|
+
displaySymbol: string;
|
556
474
|
verified: boolean;
|
475
|
+
isTest: boolean;
|
557
476
|
price: number | null;
|
558
477
|
};
|
559
478
|
CampaignStatus: {
|
@@ -591,7 +510,7 @@ export declare abstract class OpportunityRepository {
|
|
591
510
|
apr: number;
|
592
511
|
dailyRewards: number;
|
593
512
|
})[]>;
|
594
|
-
static countMany(query:
|
513
|
+
static countMany(query: GetOpportunitiesQueryModel): Promise<number>;
|
595
514
|
static getAllIdsForDynamicOpp(): Promise<{
|
596
515
|
id: string;
|
597
516
|
}[]>;
|
@@ -679,7 +598,7 @@ export declare abstract class OpportunityRepository {
|
|
679
598
|
apr: number;
|
680
599
|
dailyRewards: number;
|
681
600
|
}>;
|
682
|
-
static aggregateSum(field: keyof Prisma.OpportunitySumAggregateInputType, query:
|
683
|
-
sum:
|
601
|
+
static aggregateSum(field: keyof Prisma.OpportunitySumAggregateInputType, query: GetOpportunitiesQueryModel): Promise<{
|
602
|
+
sum: number | null;
|
684
603
|
}>;
|
685
604
|
}
|
@@ -129,6 +129,7 @@ export class OpportunityRepository {
|
|
129
129
|
const protocols = query.mainProtocolId?.split(",");
|
130
130
|
const sort = (query.sort === "rewards" ? "dailyRewards" : query.sort) ?? "dailyRewards";
|
131
131
|
const order = query.order ?? "desc";
|
132
|
+
const test = query.test ?? false;
|
132
133
|
const noFilters = Object.values(filters).every(v => v === undefined);
|
133
134
|
const tokensFilters = tokens?.map(symbol => ({
|
134
135
|
Tokens: { some: { symbol: { equals: symbol, mode: "insensitive" } } },
|
@@ -154,6 +155,7 @@ export class OpportunityRepository {
|
|
154
155
|
status: !status ? undefined : { in: status },
|
155
156
|
},
|
156
157
|
{ mainProtocolId: !protocols ? undefined : { in: protocols } },
|
158
|
+
test ? undefined : { Campaigns: { some: { RewardToken: { isTest: false } } } },
|
157
159
|
],
|
158
160
|
},
|
159
161
|
};
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { type CreateCampaignModel } from "../campaign";
|
2
2
|
import { Prisma } from "../../../../database/api/.generated";
|
3
3
|
import { type ChainId, type MerklChainId } from "@sdk";
|
4
|
-
import type { CreateOpportunityModel,
|
4
|
+
import type { CreateOpportunityModel, GetOpportunitiesQueryModel, LightOpportunityFromDB, OpportunityMetadata, OpportunityUnique } from "./opportunity.model";
|
5
5
|
import { OpportunityRepository } from "./opportunity.repository";
|
6
6
|
export declare abstract class OpportunityService {
|
7
7
|
static hashId(opportunity: OpportunityUnique): string;
|
@@ -60,7 +60,9 @@ export declare abstract class OpportunityService {
|
|
60
60
|
address: string;
|
61
61
|
icon: string;
|
62
62
|
decimals: number;
|
63
|
+
displaySymbol: string;
|
63
64
|
verified: boolean;
|
65
|
+
isTest: boolean;
|
64
66
|
price: number | null;
|
65
67
|
};
|
66
68
|
amount: bigint;
|
@@ -75,7 +77,9 @@ export declare abstract class OpportunityService {
|
|
75
77
|
address: string;
|
76
78
|
icon: string;
|
77
79
|
decimals: number;
|
80
|
+
displaySymbol: string;
|
78
81
|
verified: boolean;
|
82
|
+
isTest: boolean;
|
79
83
|
price: number | null;
|
80
84
|
}[];
|
81
85
|
chain: {
|
@@ -117,7 +121,9 @@ export declare abstract class OpportunityService {
|
|
117
121
|
address: string;
|
118
122
|
icon: string;
|
119
123
|
decimals: number;
|
124
|
+
displaySymbol: string;
|
120
125
|
verified: boolean;
|
126
|
+
isTest: boolean;
|
121
127
|
price: number | null;
|
122
128
|
};
|
123
129
|
distributionChain: {
|
@@ -188,7 +194,9 @@ export declare abstract class OpportunityService {
|
|
188
194
|
address: string;
|
189
195
|
icon: string;
|
190
196
|
decimals: number;
|
197
|
+
displaySymbol: string;
|
191
198
|
verified: boolean;
|
199
|
+
isTest: boolean;
|
192
200
|
price: number | null;
|
193
201
|
};
|
194
202
|
amount: bigint;
|
@@ -203,7 +211,9 @@ export declare abstract class OpportunityService {
|
|
203
211
|
address: string;
|
204
212
|
icon: string;
|
205
213
|
decimals: number;
|
214
|
+
displaySymbol: string;
|
206
215
|
verified: boolean;
|
216
|
+
isTest: boolean;
|
207
217
|
price: number | null;
|
208
218
|
}[];
|
209
219
|
chain: {
|
@@ -235,7 +245,7 @@ export declare abstract class OpportunityService {
|
|
235
245
|
* @param query
|
236
246
|
* @returns A list of opportunities
|
237
247
|
*/
|
238
|
-
static getMany(query:
|
248
|
+
static getMany(query: GetOpportunitiesQueryModel): Promise<({
|
239
249
|
aprRecord: {
|
240
250
|
cumulated: number;
|
241
251
|
timestamp: bigint;
|
@@ -276,7 +286,9 @@ export declare abstract class OpportunityService {
|
|
276
286
|
address: string;
|
277
287
|
icon: string;
|
278
288
|
decimals: number;
|
289
|
+
displaySymbol: string;
|
279
290
|
verified: boolean;
|
291
|
+
isTest: boolean;
|
280
292
|
price: number | null;
|
281
293
|
};
|
282
294
|
amount: bigint;
|
@@ -291,7 +303,9 @@ export declare abstract class OpportunityService {
|
|
291
303
|
address: string;
|
292
304
|
icon: string;
|
293
305
|
decimals: number;
|
306
|
+
displaySymbol: string;
|
294
307
|
verified: boolean;
|
308
|
+
isTest: boolean;
|
295
309
|
price: number | null;
|
296
310
|
}[];
|
297
311
|
chain: {
|
@@ -359,7 +373,9 @@ export declare abstract class OpportunityService {
|
|
359
373
|
address: string;
|
360
374
|
icon: string;
|
361
375
|
decimals: number;
|
376
|
+
displaySymbol: string;
|
362
377
|
verified: boolean;
|
378
|
+
isTest: boolean;
|
363
379
|
price: number | null;
|
364
380
|
};
|
365
381
|
amount: bigint;
|
@@ -374,7 +390,9 @@ export declare abstract class OpportunityService {
|
|
374
390
|
address: string;
|
375
391
|
icon: string;
|
376
392
|
decimals: number;
|
393
|
+
displaySymbol: string;
|
377
394
|
verified: boolean;
|
395
|
+
isTest: boolean;
|
378
396
|
price: number | null;
|
379
397
|
}[];
|
380
398
|
chain: {
|
@@ -416,7 +434,9 @@ export declare abstract class OpportunityService {
|
|
416
434
|
address: string;
|
417
435
|
icon: string;
|
418
436
|
decimals: number;
|
437
|
+
displaySymbol: string;
|
419
438
|
verified: boolean;
|
439
|
+
isTest: boolean;
|
420
440
|
price: number | null;
|
421
441
|
};
|
422
442
|
distributionChain: {
|
@@ -455,7 +475,7 @@ export declare abstract class OpportunityService {
|
|
455
475
|
* @param query
|
456
476
|
* @returns the number of opportunities
|
457
477
|
*/
|
458
|
-
static countMany(query:
|
478
|
+
static countMany(query: GetOpportunitiesQueryModel): Promise<number>;
|
459
479
|
static formatResponse(opportunity: Awaited<ReturnType<typeof OpportunityRepository.findUniqueOrThrow>>): {
|
460
480
|
aprRecord: {
|
461
481
|
cumulated: number;
|
@@ -497,7 +517,9 @@ export declare abstract class OpportunityService {
|
|
497
517
|
address: string;
|
498
518
|
icon: string;
|
499
519
|
decimals: number;
|
520
|
+
displaySymbol: string;
|
500
521
|
verified: boolean;
|
522
|
+
isTest: boolean;
|
501
523
|
price: number | null;
|
502
524
|
};
|
503
525
|
amount: bigint;
|
@@ -512,7 +534,9 @@ export declare abstract class OpportunityService {
|
|
512
534
|
address: string;
|
513
535
|
icon: string;
|
514
536
|
decimals: number;
|
537
|
+
displaySymbol: string;
|
515
538
|
verified: boolean;
|
539
|
+
isTest: boolean;
|
516
540
|
price: number | null;
|
517
541
|
}[];
|
518
542
|
chain: {
|
@@ -549,7 +573,9 @@ export declare abstract class OpportunityService {
|
|
549
573
|
address: string;
|
550
574
|
icon: string;
|
551
575
|
decimals: number;
|
576
|
+
displaySymbol: string;
|
552
577
|
verified: boolean;
|
578
|
+
isTest: boolean;
|
553
579
|
price: number | null;
|
554
580
|
}[];
|
555
581
|
chain: {
|
@@ -576,7 +602,7 @@ export declare abstract class OpportunityService {
|
|
576
602
|
apr: number;
|
577
603
|
dailyRewards: number;
|
578
604
|
};
|
579
|
-
static aggregate(query:
|
580
|
-
sum:
|
605
|
+
static aggregate(query: GetOpportunitiesQueryModel, field: keyof Prisma.OpportunitySumAggregateInputType): Promise<{
|
606
|
+
sum: number | null;
|
581
607
|
}>;
|
582
608
|
}
|
@@ -9,7 +9,7 @@ export const PriceController = new Elysia({ prefix: "/prices", detail: { tags: [
|
|
9
9
|
.get("/", async () => await PriceService.findMany())
|
10
10
|
.get("/array", async () => await PriceService.findManyArray())
|
11
11
|
// ─── Get Price By Token Symbol ───────────────────────────────────────
|
12
|
-
.get("/symbol/:symbol", async ({ params }) => await PriceService.
|
12
|
+
.get("/symbol/:symbol", async ({ params }) => await PriceService.fetchPriceBySymbol(params.symbol), {
|
13
13
|
params: PriceSourceIdentifier,
|
14
14
|
})
|
15
15
|
// ─── Price Sources Group ─────────────────────────────────────────────
|
@@ -8,7 +8,7 @@ export declare class PriceService {
|
|
8
8
|
token: string;
|
9
9
|
}[]>;
|
10
10
|
/** Fetches a single price */
|
11
|
-
static
|
11
|
+
static fetchPriceBySymbol(symbol: string): Promise<number>;
|
12
12
|
static getPriceSourceBySymbol(symbol: string): Promise<{
|
13
13
|
symbol: string;
|
14
14
|
method: import("../../../../database/api/.generated").$Enums.PriceSourceMethod;
|
@@ -11,7 +11,7 @@ export class PriceService {
|
|
11
11
|
return (await Pricer.load()).getArray();
|
12
12
|
}
|
13
13
|
/** Fetches a single price */
|
14
|
-
static async
|
14
|
+
static async fetchPriceBySymbol(symbol) {
|
15
15
|
const priceSource = await PriceRepository.findBySymbolOrThrow(symbol);
|
16
16
|
if (!priceSource) {
|
17
17
|
throw new Error(`Price source with symbol ${symbol} not found`);
|
@@ -20,7 +20,7 @@ export class PriceService {
|
|
20
20
|
return priceSource.args.value;
|
21
21
|
}
|
22
22
|
if (priceSource.method === PriceSourceMethod.EQUAL_TO) {
|
23
|
-
return PriceService.
|
23
|
+
return PriceService.fetchPriceBySymbol(priceSource.args.token);
|
24
24
|
}
|
25
25
|
return (await PriceFetcherFactory.instance.get(priceSource.method).getPrice([priceSource]))?.[0]?.rate;
|
26
26
|
}
|
@@ -33,7 +33,7 @@ export class PriceService {
|
|
33
33
|
}
|
34
34
|
static async createPriceSource(priceSource) {
|
35
35
|
const created = await PriceRepository.create(priceSource);
|
36
|
-
return await PriceService.
|
36
|
+
return await PriceService.fetchPriceBySymbol(created.symbol);
|
37
37
|
}
|
38
38
|
static async updatePriceSource(symbol, newPriceSource) {
|
39
39
|
return await PriceRepository.updateBySymbol(symbol, newPriceSource);
|
@@ -12,7 +12,9 @@ export declare abstract class RewardRepository {
|
|
12
12
|
address: string;
|
13
13
|
icon: string;
|
14
14
|
decimals: number;
|
15
|
+
displaySymbol: string;
|
15
16
|
verified: boolean;
|
17
|
+
isTest: boolean;
|
16
18
|
price: number | null;
|
17
19
|
};
|
18
20
|
Breakdown: ({
|
@@ -32,7 +34,9 @@ export declare abstract class RewardRepository {
|
|
32
34
|
address: string;
|
33
35
|
icon: string;
|
34
36
|
decimals: number;
|
37
|
+
displaySymbol: string;
|
35
38
|
verified: boolean;
|
39
|
+
isTest: boolean;
|
36
40
|
price: number | null;
|
37
41
|
}[];
|
38
42
|
Protocols: {
|
@@ -29,7 +29,9 @@ export declare abstract class RewardService {
|
|
29
29
|
address: string;
|
30
30
|
icon: string;
|
31
31
|
decimals: number;
|
32
|
+
displaySymbol: string;
|
32
33
|
verified: boolean;
|
34
|
+
isTest: boolean;
|
33
35
|
price: number | null;
|
34
36
|
}[];
|
35
37
|
Protocols: {
|
@@ -83,7 +85,9 @@ export declare abstract class RewardService {
|
|
83
85
|
address: string;
|
84
86
|
icon: string;
|
85
87
|
decimals: number;
|
88
|
+
displaySymbol: string;
|
86
89
|
verified: boolean;
|
90
|
+
isTest: boolean;
|
87
91
|
price: number | null;
|
88
92
|
};
|
89
93
|
breakdowns: {
|
@@ -102,7 +106,9 @@ export declare abstract class RewardService {
|
|
102
106
|
address: string;
|
103
107
|
icon: string;
|
104
108
|
decimals: number;
|
109
|
+
displaySymbol: string;
|
105
110
|
verified: boolean;
|
111
|
+
isTest: boolean;
|
106
112
|
price: number | null;
|
107
113
|
}[];
|
108
114
|
Protocols: {
|
@@ -159,7 +165,9 @@ export declare abstract class RewardService {
|
|
159
165
|
address: string;
|
160
166
|
icon: string;
|
161
167
|
decimals: number;
|
168
|
+
displaySymbol: string;
|
162
169
|
verified: boolean;
|
170
|
+
isTest: boolean;
|
163
171
|
price: number | null;
|
164
172
|
};
|
165
173
|
Breakdown: ({
|
@@ -179,7 +187,9 @@ export declare abstract class RewardService {
|
|
179
187
|
address: string;
|
180
188
|
icon: string;
|
181
189
|
decimals: number;
|
190
|
+
displaySymbol: string;
|
182
191
|
verified: boolean;
|
192
|
+
isTest: boolean;
|
183
193
|
price: number | null;
|
184
194
|
}[];
|
185
195
|
Protocols: {
|
@@ -265,7 +275,9 @@ export declare abstract class RewardService {
|
|
265
275
|
address: string;
|
266
276
|
icon: string;
|
267
277
|
decimals: number;
|
278
|
+
displaySymbol: string;
|
268
279
|
verified: boolean;
|
280
|
+
isTest: boolean;
|
269
281
|
price: number | null;
|
270
282
|
};
|
271
283
|
breakdowns: {
|
@@ -284,7 +296,9 @@ export declare abstract class RewardService {
|
|
284
296
|
address: string;
|
285
297
|
icon: string;
|
286
298
|
decimals: number;
|
299
|
+
displaySymbol: string;
|
287
300
|
verified: boolean;
|
301
|
+
isTest: boolean;
|
288
302
|
price: number | null;
|
289
303
|
}[];
|
290
304
|
Protocols: {
|
@@ -355,7 +369,9 @@ export declare abstract class RewardService {
|
|
355
369
|
address: string;
|
356
370
|
icon: string;
|
357
371
|
decimals: number;
|
372
|
+
displaySymbol: string;
|
358
373
|
verified: boolean;
|
374
|
+
isTest: boolean;
|
359
375
|
price: number | null;
|
360
376
|
};
|
361
377
|
breakdowns: {
|
@@ -374,7 +390,9 @@ export declare abstract class RewardService {
|
|
374
390
|
address: string;
|
375
391
|
icon: string;
|
376
392
|
decimals: number;
|
393
|
+
displaySymbol: string;
|
377
394
|
verified: boolean;
|
395
|
+
isTest: boolean;
|
378
396
|
price: number | null;
|
379
397
|
}[];
|
380
398
|
Protocols: {
|
@@ -442,7 +460,9 @@ export declare abstract class RewardService {
|
|
442
460
|
address: string;
|
443
461
|
icon: string;
|
444
462
|
decimals: number;
|
463
|
+
displaySymbol: string;
|
445
464
|
verified: boolean;
|
465
|
+
isTest: boolean;
|
446
466
|
price: number | null;
|
447
467
|
};
|
448
468
|
Breakdown: ({
|
@@ -462,7 +482,9 @@ export declare abstract class RewardService {
|
|
462
482
|
address: string;
|
463
483
|
icon: string;
|
464
484
|
decimals: number;
|
485
|
+
displaySymbol: string;
|
465
486
|
verified: boolean;
|
487
|
+
isTest: boolean;
|
466
488
|
price: number | null;
|
467
489
|
}[];
|
468
490
|
Protocols: {
|