@merkl/api 0.20.178 → 0.21.0

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.
@@ -5,7 +5,7 @@ import { TvlService } from "@/modules/v4/tvl/tvl.service";
5
5
  import { log } from "@/utils/logger";
6
6
  import { apiDbClient } from "@db";
7
7
  import { Status } from "@db/api";
8
- import { bigIntToNumber } from "@sdk";
8
+ import { DAY, bigIntToNumber } from "@sdk";
9
9
  import moment from "moment";
10
10
  export class OpportunityRepository {
11
11
  // ─── Utils ───────────────────────────────────────────────────────────
@@ -407,8 +407,8 @@ export class OpportunityRepository {
407
407
  * @returns
408
408
  */
409
409
  static async updateDynamicData(opportunityId, apr, tvl, dailyRewards) {
410
- const aprRecord = apr.cumulated >= 0 &&
411
- (await apiDbClient.aprRecord.create({
410
+ const [aprRecord, tvlRecord, dailyRewardsRecord, opportunity] = await apiDbClient.$transaction([
411
+ apiDbClient.aprRecord.create({
412
412
  data: {
413
413
  id: AprService.hashId(opportunityId, apr.timestamp),
414
414
  timestamp: apr.timestamp,
@@ -416,38 +416,57 @@ export class OpportunityRepository {
416
416
  Opportunity: { connect: { id: opportunityId } },
417
417
  AprBreakdown: { createMany: { data: apr.breakdowns } },
418
418
  },
419
- }));
420
- const tvlRecord = await apiDbClient.tVLRecord.create({
421
- data: {
422
- id: TvlService.hashId(opportunityId, tvl.timestamp),
423
- timestamp: tvl.timestamp,
424
- Opportunity: { connect: { id: opportunityId } },
425
- total: tvl.total,
426
- TvlBreakdown: { createMany: { data: tvl.breakdowns } },
427
- },
428
- include: { TvlBreakdown: true },
429
- });
430
- const dailyRewardsRecord = await apiDbClient.dailyRewardsRecord.create({
431
- data: {
432
- id: RewardService.hashDailyRewardsRecordId(opportunityId, dailyRewards.timestamp),
433
- timestamp: dailyRewards.timestamp,
434
- Opportunity: { connect: { id: opportunityId } },
435
- total: dailyRewards.total,
436
- DailyRewardsBreakdown: {
437
- createMany: {
438
- data: dailyRewards.breakdowns.map(breakdown => ({
439
- campaignId: breakdown.campaignId,
440
- value: bigIntToNumber(breakdown.amount, breakdown.token.decimals),
441
- })),
419
+ }),
420
+ apiDbClient.tVLRecord.create({
421
+ data: {
422
+ id: TvlService.hashId(opportunityId, tvl.timestamp),
423
+ timestamp: tvl.timestamp,
424
+ Opportunity: { connect: { id: opportunityId } },
425
+ total: tvl.total,
426
+ TvlBreakdown: { createMany: { data: tvl.breakdowns } },
427
+ },
428
+ include: { TvlBreakdown: true },
429
+ }),
430
+ apiDbClient.dailyRewardsRecord.create({
431
+ data: {
432
+ id: RewardService.hashDailyRewardsRecordId(opportunityId, dailyRewards.timestamp),
433
+ timestamp: dailyRewards.timestamp,
434
+ Opportunity: { connect: { id: opportunityId } },
435
+ total: dailyRewards.total,
436
+ DailyRewardsBreakdown: {
437
+ createMany: {
438
+ data: dailyRewards.breakdowns.map(breakdown => ({
439
+ campaignId: breakdown.campaignId,
440
+ value: bigIntToNumber(breakdown.amount, breakdown.token.decimals),
441
+ })),
442
+ },
442
443
  },
443
444
  },
444
- },
445
- include: { DailyRewardsBreakdown: true },
446
- });
447
- const opportunity = await apiDbClient.opportunity.update({
448
- where: { id: opportunityId },
449
- data: { apr: apr.cumulated, tvl: tvl.total, dailyRewards: dailyRewards.total },
450
- });
445
+ include: { DailyRewardsBreakdown: true },
446
+ }),
447
+ apiDbClient.opportunity.update({
448
+ where: { id: opportunityId },
449
+ data: { apr: apr.cumulated, tvl: tvl.total, dailyRewards: dailyRewards.total },
450
+ }),
451
+ apiDbClient.tVLRecord.deleteMany({
452
+ where: {
453
+ Opportunity: { id: opportunityId },
454
+ timestamp: { lt: tvl.timestamp, gt: Math.floor(moment().unix() / DAY) },
455
+ },
456
+ }),
457
+ apiDbClient.aprRecord.deleteMany({
458
+ where: {
459
+ Opportunity: { id: opportunityId },
460
+ timestamp: { lt: apr.timestamp, gt: Math.floor(moment().unix() / DAY) },
461
+ },
462
+ }),
463
+ apiDbClient.dailyRewardsRecord.deleteMany({
464
+ where: {
465
+ Opportunity: { id: opportunityId },
466
+ timestamp: { lt: dailyRewards.timestamp, gt: Math.floor(moment().unix() / DAY) },
467
+ },
468
+ }),
469
+ ]);
451
470
  return {
452
471
  aprRecord,
453
472
  tvlRecord,
@@ -6132,7 +6132,7 @@ const PufferInterfaceCampaigns = {
6132
6132
  // TODO : Correctly change this campaign
6133
6133
  hooks: [],
6134
6134
  targetToken: "0x5db7A477dEdE7d12feA665312282E052e0207FC1",
6135
- whitelist: ["0xBebB5CEe893110cF477901AF7FA94E4840606421"],
6135
+ whitelist: [],
6136
6136
  blacklist: [],
6137
6137
  forwarders: [],
6138
6138
  },