@merkl/api 0.20.118 → 0.20.119

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 (134) hide show
  1. package/dist/src/eden/index.d.ts +18 -18
  2. package/dist/src/engine/deprecated/dynamicData/implementations/Radiant.js +1 -1
  3. package/dist/src/engine/implementations/Ajna/metadata.d.ts +1 -1
  4. package/dist/src/engine/implementations/Ambient/metadata.d.ts +1 -1
  5. package/dist/src/engine/implementations/Badger/metadata.d.ts +1 -1
  6. package/dist/src/engine/implementations/Clamm/metadata.d.ts +1 -1
  7. package/dist/src/engine/implementations/Compound/metadata.d.ts +1 -1
  8. package/dist/src/engine/implementations/CompoundV3/metadata.d.ts +1 -1
  9. package/dist/src/engine/implementations/Default/metadata.d.ts +1 -1
  10. package/dist/src/engine/implementations/Dolomite/metadata.d.ts +1 -1
  11. package/dist/src/engine/implementations/EigenLayer/metadata.d.ts +1 -1
  12. package/dist/src/engine/implementations/Encompassing/metadata.d.ts +1 -1
  13. package/dist/src/engine/implementations/Erc20/metadata.d.ts +1 -1
  14. package/dist/src/engine/implementations/Erc20/subTypes/implementations/gearbox/metadata.d.ts +1 -1
  15. package/dist/src/engine/implementations/Erc20/subTypes/implementations/superlend/metadata.d.ts +1 -1
  16. package/dist/src/engine/implementations/Erc20Snapshot/metadata.d.ts +1 -1
  17. package/dist/src/engine/implementations/Erc721/metadata.d.ts +1 -1
  18. package/dist/src/engine/implementations/ErcMultiToken/metadata.d.ts +1 -1
  19. package/dist/src/engine/implementations/Euler/metadata.d.ts +1 -1
  20. package/dist/src/engine/implementations/EventBased/metadata.d.ts +1 -1
  21. package/dist/src/engine/implementations/Hyperdrive/metadata.d.ts +1 -1
  22. package/dist/src/engine/implementations/Ion/metadata.d.ts +1 -1
  23. package/dist/src/engine/implementations/JsonAirdrop/metadata.d.ts +1 -1
  24. package/dist/src/engine/implementations/Morpho/metadata.d.ts +1 -1
  25. package/dist/src/engine/implementations/MultiLog/metadata.d.ts +1 -1
  26. package/dist/src/engine/implementations/MultiLog/tvl.d.ts +1 -1
  27. package/dist/src/engine/implementations/MultiLog/tvl.js +1 -1
  28. package/dist/src/engine/implementations/Radiant/metadata.d.ts +1 -1
  29. package/dist/src/engine/implementations/Silo/metadata.d.ts +1 -1
  30. package/dist/src/engine/implementations/UniswapV4/metadata.d.ts +1 -1
  31. package/dist/src/engine/implementations/Vest/metadata.d.ts +1 -1
  32. package/dist/src/index.d.ts +6 -6
  33. package/dist/src/jobs/pendings.js +1 -1
  34. package/dist/src/jobs/update-analytics.js +3 -3
  35. package/dist/src/jobs/update-dynamic-data.js +2 -2
  36. package/dist/src/jobs/update-euler-vaults.js +1 -1
  37. package/dist/src/jobs/update-rpc-calls-cache.js +2 -2
  38. package/dist/src/jobs/update-uniswap-v4-pools.js +1 -1
  39. package/dist/src/libs/positions/clamm/index.js +2 -2
  40. package/dist/src/modules/v4/accounting/accounting.controller.js +2 -1
  41. package/dist/src/modules/v4/accounting/accounting.repository.d.ts +1 -1
  42. package/dist/src/modules/v4/accounting/accounting.service.d.ts +1 -1
  43. package/dist/src/modules/v4/blacklist/blacklist.service.d.ts +1 -1
  44. package/dist/src/modules/v4/blacklist/blacklist.service.js +2 -2
  45. package/dist/src/modules/v4/campaign/campaign.controller.js +1 -1
  46. package/dist/src/modules/v4/campaign/campaign.repository.d.ts +1 -1
  47. package/dist/src/modules/v4/campaign/campaign.repository.js +1 -1
  48. package/dist/src/modules/v4/campaign/campaign.service.d.ts +1 -1
  49. package/dist/src/modules/v4/campaign/campaign.service.js +1 -1
  50. package/dist/src/modules/v4/campaign/campaign.test.controller.js +3 -3
  51. package/dist/src/modules/v4/chain/chain.service.js +1 -1
  52. package/dist/src/modules/v4/claims/claims.service.d.ts +2 -2
  53. package/dist/src/modules/v4/claims/claims.service.js +2 -2
  54. package/dist/src/modules/v4/coingecko/coingecko.service.js +1 -1
  55. package/dist/src/modules/v4/computedValue/computedValue.controller.js +1 -1
  56. package/dist/src/modules/v4/dynamicData/dynamicData.service.js +4 -4
  57. package/dist/src/modules/v4/liquidity/implementations/AjnaPositionFetcher.d.ts +1 -1
  58. package/dist/src/modules/v4/liquidity/implementations/AjnaPositionFetcher.js +1 -1
  59. package/dist/src/modules/v4/liquidity/implementations/BadgerPositionFetcher.d.ts +1 -1
  60. package/dist/src/modules/v4/liquidity/implementations/BadgerPositionFetcher.js +1 -1
  61. package/dist/src/modules/v4/liquidity/implementations/ClammPositionFetcher.d.ts +1 -1
  62. package/dist/src/modules/v4/liquidity/implementations/ClammPositionFetcher.js +1 -1
  63. package/dist/src/modules/v4/liquidity/implementations/DolomitePositionFetcher.d.ts +1 -1
  64. package/dist/src/modules/v4/liquidity/implementations/DolomitePositionFetcher.js +1 -1
  65. package/dist/src/modules/v4/liquidity/implementations/ERC20PositionFetcher.d.ts +2 -2
  66. package/dist/src/modules/v4/liquidity/implementations/ERC20PositionFetcher.js +1 -1
  67. package/dist/src/modules/v4/liquidity/implementations/EulerPositionFetcher.d.ts +1 -1
  68. package/dist/src/modules/v4/liquidity/liquidity.model.d.ts +1 -1
  69. package/dist/src/modules/v4/liquidity/liquidity.service.js +1 -1
  70. package/dist/src/modules/v4/merklRoot/merklRoot.service.js +1 -1
  71. package/dist/src/modules/v4/opportunity/opportunity.controller.js +1 -1
  72. package/dist/src/modules/v4/opportunity/opportunity.converter.d.ts +2 -2
  73. package/dist/src/modules/v4/opportunity/opportunity.converter.js +3 -3
  74. package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +1 -1
  75. package/dist/src/modules/v4/opportunity/opportunity.repository.js +1 -1
  76. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +1 -1
  77. package/dist/src/modules/v4/opportunity/opportunity.service.js +1 -1
  78. package/dist/src/modules/v4/opportunity/transform-id.pipe.js +1 -1
  79. package/dist/src/modules/v4/protocol/protocol.service.js +1 -1
  80. package/dist/src/modules/v4/reward/reward.controller.js +1 -1
  81. package/dist/src/modules/v4/reward/reward.repository.js +1 -1
  82. package/dist/src/modules/v4/reward/reward.service.d.ts +1 -1
  83. package/dist/src/modules/v4/reward/reward.service.js +8 -8
  84. package/dist/src/modules/v4/router.d.ts +6 -6
  85. package/dist/src/modules/v4/router.js +1 -1
  86. package/dist/src/modules/v4/status/status.model.d.ts +2 -2
  87. package/dist/src/modules/v4/status/status.repository.d.ts +1 -1
  88. package/dist/src/modules/v4/status/status.repository.js +1 -1
  89. package/dist/src/modules/v4/status/status.service.d.ts +2 -1
  90. package/dist/src/modules/v4/status/status.service.js +2 -2
  91. package/dist/src/modules/v4/token/token.controller.js +4 -3
  92. package/dist/src/modules/v4/token/token.service.js +1 -1
  93. package/dist/src/modules/v4/uniswap/uniswap.controller.d.ts +2 -2
  94. package/dist/src/modules/v4/uniswap/uniswap.controller.js +1 -1
  95. package/dist/src/modules/v4/uniswap/uniswap.service.d.ts +2 -2
  96. package/dist/src/modules/v4/uniswap/uniswap.service.js +5 -5
  97. package/dist/src/modules/v4/user/user.controller.d.ts +2 -2
  98. package/dist/src/modules/v4/user/user.controller.js +2 -2
  99. package/dist/src/modules/v4/user/user.service.js +1 -1
  100. package/dist/src/routes/v3/app.js +1 -1
  101. package/dist/src/routes/v3/blacklist.js +1 -1
  102. package/dist/src/routes/v3/campaignUnclaimed.js +1 -1
  103. package/dist/src/routes/v3/campaigns.js +1 -1
  104. package/dist/src/routes/v3/campaignsForMainParameter.js +1 -1
  105. package/dist/src/routes/v3/campaignsRewardsReport.js +1 -1
  106. package/dist/src/routes/v3/euler.js +1 -1
  107. package/dist/src/routes/v3/recipients.js +1 -1
  108. package/dist/src/routes/v3/rewards.js +1 -1
  109. package/dist/src/routes/v3/rewardsReport.js +1 -1
  110. package/dist/src/routes/v3/uniswapv4.js +1 -1
  111. package/dist/src/routes/v3/userRewards.js +2 -1
  112. package/dist/src/scripts/reparse-opportunities.js +1 -1
  113. package/dist/tsconfig.package.tsbuildinfo +1 -1
  114. package/package.json +1 -1
  115. package/dist/src/modules/v4/accounting/index.d.ts +0 -3
  116. package/dist/src/modules/v4/accounting/index.js +0 -3
  117. package/dist/src/modules/v4/apr/index.d.ts +0 -2
  118. package/dist/src/modules/v4/apr/index.js +0 -2
  119. package/dist/src/modules/v4/blacklist/index.d.ts +0 -3
  120. package/dist/src/modules/v4/blacklist/index.js +0 -3
  121. package/dist/src/modules/v4/boost/index.d.ts +0 -2
  122. package/dist/src/modules/v4/boost/index.js +0 -2
  123. package/dist/src/modules/v4/cache/index.d.ts +0 -1
  124. package/dist/src/modules/v4/cache/index.js +0 -1
  125. package/dist/src/modules/v4/campaign/index.d.ts +0 -2
  126. package/dist/src/modules/v4/campaign/index.js +0 -2
  127. package/dist/src/modules/v4/creator/index.d.ts +0 -3
  128. package/dist/src/modules/v4/creator/index.js +0 -3
  129. package/dist/src/modules/v4/merklRoot/index.d.ts +0 -3
  130. package/dist/src/modules/v4/merklRoot/index.js +0 -3
  131. package/dist/src/modules/v4/opportunity/index.d.ts +0 -3
  132. package/dist/src/modules/v4/opportunity/index.js +0 -3
  133. package/dist/src/modules/v4/reward/index.d.ts +0 -2
  134. package/dist/src/modules/v4/reward/index.js +0 -2
@@ -1,4 +1,4 @@
1
- import type { CampaignUnique, CampaignWithParams, GetCampaignQueryModel } from "@/modules/v4/campaign";
1
+ import type { CampaignUnique, CampaignWithParams, GetCampaignQueryModel } from "@/modules/v4/campaign/campaign.model";
2
2
  import { type CampaignManualOverride, Prisma } from "@db/api";
3
3
  import { type ChainId } from "@sdk";
4
4
  export declare abstract class CampaignRepository {
@@ -1,10 +1,10 @@
1
+ import { OpportunityService } from "@/modules/v4/opportunity/opportunity.service";
1
2
  import { CannotUpdateOpportunityLastCreatedAt } from "@/utils/error";
2
3
  import { log } from "@/utils/logger";
3
4
  import { apiDbClient, engineDbClient } from "@db";
4
5
  import { Prisma, RunStatus } from "@db/api";
5
6
  import { MAX_COMPUTE_JOB_TIME } from "@sdk";
6
7
  import moment from "moment";
7
- import { OpportunityService } from "../opportunity";
8
8
  export class CampaignRepository {
9
9
  static transformQueryToPrismaFilters(query) {
10
10
  const { creatorTag, creatorId, creatorAddress, chainId, distributionChainIds, endTimestamp, opportunityId, mainParameter, campaignId, startTimestamp, status, subType, type, types, tokenAddress, tokenSymbol, test, createdAfter, point, } = query;
@@ -1,4 +1,4 @@
1
- import type { CampaignConfigMinimalModel, CampaignUnique, CampaignWithParams, CreateCampaignModel, GetCampaignQueryModel, UpdateCampaignCreatorModel, UpdateCampaignModel, UpdateMetaDataCampaignModel } from "@/modules/v4/campaign";
1
+ import type { CampaignConfigMinimalModel, CampaignUnique, CampaignWithParams, CreateCampaignModel, GetCampaignQueryModel, UpdateCampaignCreatorModel, UpdateCampaignModel, UpdateMetaDataCampaignModel } from "@/modules/v4/campaign/campaign.model";
2
2
  import type { CampaignManualOverride } from "@db/api";
3
3
  import { type CampaignParameters, Campaign as CampaignType, type ChainId } from "@sdk";
4
4
  import type { GetCampaignComputedValueModel } from "../computedValue/computedValue.model";
@@ -1,5 +1,5 @@
1
1
  import { HttpError } from "@/errors";
2
- import { OpportunityService } from "@/modules/v4/opportunity";
2
+ import { OpportunityService } from "@/modules/v4/opportunity/opportunity.service";
3
3
  import { StatusService } from "@/modules/v4/status/status.service";
4
4
  import { TokenService } from "@/modules/v4/token/token.service";
5
5
  import { CannotParseOpportunity, InvalidParameter } from "@/utils/error";
@@ -2,12 +2,12 @@ import { NotFoundError } from "@/errors";
2
2
  import { InvalidParameter } from "@/errors/InvalidParameter.error";
3
3
  import { BackOfficeGuard } from "@/guards/BackOffice.guard";
4
4
  import { AuthorizationHeadersDto } from "@/guards/Engine.guard";
5
+ import { DynamicDataSourceIdentifier } from "@/modules/v4/dynamicData/dynamicData.model";
6
+ import { DynamicDataService } from "@/modules/v4/dynamicData/dynamicData.service";
7
+ import { OpportunityConvertorService } from "@/modules/v4/opportunity/opportunity.converter";
5
8
  import { throwOnUnsupportedChainId } from "@/utils/throw";
6
9
  import { Campaign as CampaignType } from "@sdk";
7
10
  import Elysia, { t } from "elysia";
8
- import { DynamicDataSourceIdentifier } from "../dynamicData/dynamicData.model";
9
- import { DynamicDataService } from "../dynamicData/dynamicData.service";
10
- import { OpportunityConvertorService } from "../opportunity/opportunity.converter";
11
11
  import { CampaignConfigMinimal, CampaignsDto } from "./campaign.model";
12
12
  import { CampaignService } from "./campaign.service";
13
13
  // ─── Routes for dev and test only ──────────────────────────────────────────────
@@ -1,5 +1,5 @@
1
+ import { CacheService } from "@/modules/v4/cache/cache.service";
1
2
  import { DistributorService } from "@sdk";
2
- import { CacheService } from "../cache";
3
3
  import { TTLPresets } from "../cache/cache.model";
4
4
  import { ChainRepository } from "./chain.repository";
5
5
  export class ChainService {
@@ -1,6 +1,6 @@
1
+ import type { Token } from "@/modules/v4/token/token.model";
2
+ import type { UserUniqueModel } from "@/modules/v4/user/user.model";
1
3
  import type { ChainId } from "@sdk";
2
- import type { Token } from "../token/token.model";
3
- import type { UserUniqueModel } from "../user/user.model";
4
4
  import type { ClaimModel } from "./claims.model";
5
5
  export declare abstract class ClaimService {
6
6
  static getHistoricalClaims(params: UserUniqueModel, chainFilter?: ChainId[]): Promise<(ClaimModel & {
@@ -1,5 +1,5 @@
1
- import { MerklRootService } from "../merklRoot";
2
- import { RewardService } from "../reward";
1
+ import { MerklRootService } from "@/modules/v4/merklRoot/merklRoot.service";
2
+ import { RewardService } from "@/modules/v4/reward/reward.service";
3
3
  import { ClaimRepository } from "./claims.repository";
4
4
  export class ClaimService {
5
5
  // ─── Get Historical Claims ─────────────────────────────────────────────────
@@ -1,4 +1,4 @@
1
- import { CacheService } from "@/modules/v4/cache";
1
+ import { CacheService } from "@/modules/v4/cache/cache.service";
2
2
  import { PriceService } from "@/modules/v4/price/price.service";
3
3
  import { log } from "@/utils/logger";
4
4
  import { NETWORK_LABELS } from "@sdk";
@@ -1,7 +1,7 @@
1
1
  import { AuthorizationHeadersDto, EngineGuard } from "@/guards/Engine.guard";
2
+ import { CampaignService } from "@/modules/v4/campaign/campaign.service";
2
3
  import { throwOnInvalidRequiredAddress } from "@/utils/throw";
3
4
  import Elysia from "elysia";
4
- import { CampaignService } from "../campaign";
5
5
  import { GetCampaignComputedValue, GetUserComputedValues, UpsertCampaignComputedValue, UpsertUserComputedValues, } from "./computedValue.model";
6
6
  import { ComputedValueService } from "./computedValue.service";
7
7
  export const ComputedValueController = new Elysia({
@@ -2,6 +2,10 @@ import { dynamicDataBuilderFactory } from "@/engine/deprecated/dynamicData/facto
2
2
  import { campaignTVLBuilderFactory } from "@/engine/tvl/factory";
3
3
  import { HttpError } from "@/errors";
4
4
  import { InvalidParameter } from "@/errors/InvalidParameter.error";
5
+ import { ComputedValueService } from "@/modules/v4//computedValue/computedValue.service";
6
+ import { TokenService } from "@/modules/v4//token/token.service";
7
+ import { AprService } from "@/modules/v4/apr/apr.service";
8
+ import { CampaignService } from "@/modules/v4/campaign/campaign.service";
5
9
  import { OpportunityRepository } from "@/modules/v4/opportunity/opportunity.repository";
6
10
  import { OpportunityService } from "@/modules/v4/opportunity/opportunity.service";
7
11
  import { RewardService } from "@/modules/v4/reward/reward.service";
@@ -12,10 +16,6 @@ import { parseDistributionType } from "@/utils/parseDistributionType";
12
16
  import { AprType, DistributionType } from "@db/api";
13
17
  import { Campaign as CampaignType, DAY, NETWORK_LABELS, bigIntToNumber, } from "@sdk";
14
18
  import moment from "moment";
15
- import { AprService } from "../apr";
16
- import { CampaignService } from "../campaign";
17
- import { ComputedValueService } from "../computedValue/computedValue.service";
18
- import { TokenService } from "../token/token.service";
19
19
  export class DynamicDataService {
20
20
  /**
21
21
  * @notice Updates all records for opportunities associated to the given campaigns
@@ -1,5 +1,5 @@
1
+ import type { Opportunity } from "@/modules/v4/opportunity/opportunity.model";
1
2
  import { type MerklChainId } from "@sdk";
2
- import type { Opportunity } from "../../opportunity";
3
3
  import type { PositionFetcher } from "../liquidity.model";
4
4
  export declare class AjnaPositionFetcher implements PositionFetcher {
5
5
  fetchPositions: (chainId: MerklChainId, user: string, opportunities: Opportunity["model"][]) => Promise<import("../liquidity.model").PositionT[]>;
@@ -1,6 +1,6 @@
1
+ import { CampaignService } from "@/modules/v4/campaign/campaign.service";
1
2
  import { AjnaSubCampaignType, BN2Number, Campaign, ChainInteractionService, NETWORK_LABELS, POOL_INFO_UTILS, PoolInfoUtilsInterface, } from "@sdk";
2
3
  import axios from "axios";
3
- import { CampaignService } from "../../campaign";
4
4
  const campaignType = Campaign.AJNA;
5
5
  export class AjnaPositionFetcher {
6
6
  fetchPositions = async (chainId, user, opportunities) => {
@@ -1,5 +1,5 @@
1
+ import type { Opportunity } from "@/modules/v4/opportunity/opportunity.model";
1
2
  import { type MerklChainId } from "@sdk";
2
- import type { Opportunity } from "../../opportunity";
3
3
  import type { PositionFetcher, PositionT } from "../liquidity.model";
4
4
  export declare class BadgerPositionFetcher implements PositionFetcher {
5
5
  fetchPositions: (chainId: MerklChainId, user: string, opportunities: Opportunity["model"][]) => Promise<PositionT[]>;
@@ -1,6 +1,6 @@
1
1
  import { CDPMANAGER_ADDRESS, SORTEDCDPS_ADDRESS } from "@/constants";
2
+ import { CampaignService } from "@/modules/v4/campaign/campaign.service";
2
3
  import { BN2Number, Campaign, CdpManagerInterface, ChainInteractionService, ERC20Interface, SortedCdpsInterface, } from "@sdk";
3
- import { CampaignService } from "../../campaign";
4
4
  const campaignType = Campaign.BADGER;
5
5
  export class BadgerPositionFetcher {
6
6
  fetchPositions = async (chainId, user, opportunities) => {
@@ -1,5 +1,5 @@
1
+ import type { Opportunity } from "@/modules/v4/opportunity/opportunity.model";
1
2
  import { type MerklChainId } from "@sdk";
2
- import type { Opportunity } from "../../opportunity";
3
3
  import type { PositionFetcher, PositionT } from "../liquidity.model";
4
4
  export declare class ClammPositionFetcher implements PositionFetcher {
5
5
  fetchPositions: (chainId: MerklChainId, user: string, opportunities: Opportunity["model"][]) => Promise<PositionT[]>;
@@ -1,6 +1,6 @@
1
1
  import { getClammUserPositions } from "@/libs/positions/clamm";
2
+ import { CampaignService } from "@/modules/v4/campaign/campaign.service";
2
3
  import { Campaign } from "@sdk";
3
- import { CampaignService } from "../../campaign";
4
4
  const campaignType = Campaign.CLAMM;
5
5
  export class ClammPositionFetcher {
6
6
  fetchPositions = async (chainId, user, opportunities) => {
@@ -1,5 +1,5 @@
1
+ import type { Opportunity } from "@/modules/v4/opportunity/opportunity.model";
1
2
  import { type MerklChainId } from "@sdk";
2
- import type { Opportunity } from "../../opportunity";
3
3
  import type { PositionFetcher } from "../liquidity.model";
4
4
  export declare class DolomitePositionFetcher implements PositionFetcher {
5
5
  fetchPositions: (chainId: MerklChainId, user: string, opportunities: Opportunity["model"][]) => Promise<import("../liquidity.model").PositionT[]>;
@@ -1,6 +1,6 @@
1
+ import { CampaignService } from "@/modules/v4/campaign/campaign.service";
1
2
  import { Campaign } from "@sdk";
2
3
  import { utils } from "ethers";
3
- import { CampaignService } from "../../campaign";
4
4
  import { LiquidityRepository } from "../liquidity.repository";
5
5
  const campaignType = Campaign.DOLOMITE;
6
6
  export class DolomitePositionFetcher {
@@ -1,6 +1,6 @@
1
+ import type { PositionFetcher, PositionT } from "@/modules/v4/liquidity/liquidity.model";
2
+ import type { Opportunity } from "@/modules/v4/opportunity/opportunity.model";
1
3
  import { type MerklChainId } from "@sdk";
2
- import type { Opportunity } from "../../opportunity";
3
- import type { PositionFetcher, PositionT } from "../liquidity.model";
4
4
  export declare class ERC20PositionFetcher implements PositionFetcher {
5
5
  fetchPositions: (chainId: MerklChainId, user: string, opportunities: Opportunity["model"][]) => Promise<PositionT[]>;
6
6
  }
@@ -1,5 +1,5 @@
1
+ import { CampaignService } from "@/modules/v4/campaign/campaign.service";
1
2
  import { BN2Number, Campaign, ChainInteractionService, ERC20Interface } from "@sdk";
2
- import { CampaignService } from "../../campaign";
3
3
  const campaignType = Campaign.ERC20;
4
4
  export class ERC20PositionFetcher {
5
5
  fetchPositions = async (chainId, user, opportunities) => {
@@ -1,5 +1,5 @@
1
+ import type { Opportunity } from "@/modules/v4/opportunity/opportunity.model";
1
2
  import { type MerklChainId } from "@sdk";
2
- import type { Opportunity } from "../../opportunity";
3
3
  import type { PositionFetcher, PositionT } from "../liquidity.model";
4
4
  export declare class EulerPositionFetcher implements PositionFetcher {
5
5
  fetchPositions: (chainId: MerklChainId, user: string, opportunities: Opportunity["model"][]) => Promise<PositionT[]>;
@@ -1,5 +1,5 @@
1
+ import type { Opportunity } from "@/modules/v4/opportunity/opportunity.model";
1
2
  import type { MerklChainId } from "@sdk";
2
- import type { Opportunity } from "../opportunity";
3
3
  export type PositionT = {
4
4
  flags: {
5
5
  range?: string;
@@ -1,6 +1,6 @@
1
1
  import { MERKL_USER_POSITION_FETCHING_GLOBAL_TIMEOUT } from "@/constants";
2
+ import { OpportunityService } from "@/modules/v4/opportunity/opportunity.service";
2
3
  import { Campaign, withTimeout } from "@sdk";
3
- import { OpportunityService } from "../opportunity";
4
4
  import { AjnaPositionFetcher } from "./implementations/AjnaPositionFetcher";
5
5
  import { BadgerPositionFetcher } from "./implementations/BadgerPositionFetcher";
6
6
  import { ClammPositionFetcher } from "./implementations/ClammPositionFetcher";
@@ -1,6 +1,6 @@
1
+ import { CacheService } from "@/modules/v4/cache/cache.service";
1
2
  import { log } from "@/utils/logger";
2
3
  import { NETWORK_LABELS } from "@sdk";
3
- import { CacheService } from "../cache";
4
4
  import { TTLPresets } from "../cache/cache.model";
5
5
  import { ChainService } from "../chain/chain.service";
6
6
  import { MerklRootRepository } from "./merklRoot.repository";
@@ -1,10 +1,10 @@
1
1
  import { HttpErrorDto, NotFoundError, NotFoundErrorDto } from "@/errors";
2
2
  import { BackOfficeGuard } from "@/guards/BackOffice.guard";
3
3
  import { AuthorizationHeadersDto, TokenAuthGuard } from "@/guards/TokenAuth.guard";
4
+ import { GetCampaignQueryDto } from "@/modules/v4/campaign/campaign.model";
4
5
  import { log } from "@/utils/logger";
5
6
  import { ChainId } from "@sdk";
6
7
  import Elysia, { t } from "elysia";
7
- import { GetCampaignQueryDto } from "../campaign";
8
8
  import { CreateOpportunityDto, GetOpportunitiesQueryDto, GetOpportunityQueryDto, OpportunityAggregateFieldDto, OpportunityDeleteOverrideDto, OpportunityOverrideDto, OpportunityResourceDto, OpportunityUniqueDto, OpportunityUniqueUpdateDto, OpportunityWithCampaignsResourceDto, } from "./opportunity.model";
9
9
  import { OpportunityService } from "./opportunity.service";
10
10
  import { transformId } from "./transform-id.pipe";
@@ -1,6 +1,6 @@
1
+ import type { CampaignWithParams } from "@/modules/v4/campaign/campaign.model";
2
+ import { OpportunityService } from "@/modules/v4/opportunity/opportunity.service";
1
3
  import { type CampaignParameters, Campaign as CampaignType, type Opportunity as OpportunityV3 } from "@sdk";
2
- import type { CampaignWithParams } from "../campaign";
3
- import { OpportunityService } from "./opportunity.service";
4
4
  export declare abstract class OpportunityConvertorService {
5
5
  #private;
6
6
  static convertV4CampaignToV3<C extends CampaignType>(campaignType: C, campaign: Exclude<Awaited<ReturnType<(typeof OpportunityService)["findMany"]>>[number]["campaigns"], undefined>[number] | Omit<CampaignWithParams<C>, "manualOverrides">, opportunityIdentifier: string): CampaignParameters<C>;
@@ -1,10 +1,10 @@
1
+ import { TTLPresets } from "@/modules/v4/cache/cache.model";
2
+ import { CacheService } from "@/modules/v4/cache/cache.service";
3
+ import { OpportunityService } from "@/modules/v4/opportunity/opportunity.service";
1
4
  import { kebabToPascalCase } from "@/utils/caseChanges";
2
5
  import { log } from "@/utils/logger";
3
6
  import { Campaign as CampaignType, EAprBreakdownType, opportunityActions, } from "@sdk";
4
7
  import moment from "moment";
5
- import { CacheService } from "../cache";
6
- import { TTLPresets } from "../cache/cache.model";
7
- import { OpportunityService } from "./opportunity.service";
8
8
  export class OpportunityConvertorService {
9
9
  static convertV4CampaignToV3(campaignType, campaign, opportunityIdentifier) {
10
10
  return {
@@ -1,6 +1,6 @@
1
1
  import type { AprRecord } from "@/modules/v4/apr/apr.model";
2
2
  import type { Campaign } from "@/modules/v4/campaign/campaign.model";
3
- import { type DailyRewardsRecord } from "@/modules/v4/reward";
3
+ import type { DailyRewardsRecord } from "@/modules/v4/reward/reward.model";
4
4
  import type { TvlRecord } from "@/modules/v4/tvl/tvl.model";
5
5
  import { type Prisma, Status } from "@db/api";
6
6
  import type { MerklChainId } from "@sdk";
@@ -1,6 +1,6 @@
1
1
  import { AprService } from "@/modules/v4/apr/apr.service";
2
2
  import { ProtocolService } from "@/modules/v4/protocol/protocol.service";
3
- import { RewardService } from "@/modules/v4/reward";
3
+ import { RewardService } from "@/modules/v4/reward/reward.service";
4
4
  import { TvlService } from "@/modules/v4/tvl/tvl.service";
5
5
  import { log } from "@/utils/logger";
6
6
  import { apiDbClient } from "@db";
@@ -1,4 +1,4 @@
1
- import { type CampaignWithParams, type GetCampaignQueryModel } from "@/modules/v4/campaign";
1
+ import type { CampaignWithParams, GetCampaignQueryModel } from "@/modules/v4/campaign/campaign.model";
2
2
  import { type OpportunityManualOverride, type Prisma } from "@db/api";
3
3
  import { type MerklChainId } from "@sdk";
4
4
  import type { CreateOpportunityModel, GetOpportunitiesQueryModel, LightOpportunityFromDB, Opportunity, OpportunityOverrideModel, OpportunityResourceModel, OpportunityUnique } from "./opportunity.model";
@@ -1,8 +1,8 @@
1
1
  import { NotFoundError } from "@/errors";
2
2
  import { TTLPresets } from "@/modules/v4/cache/cache.model";
3
3
  import { CacheService } from "@/modules/v4/cache/cache.service";
4
- import { CampaignService } from "@/modules/v4/campaign";
5
4
  import { CampaignRepository } from "@/modules/v4/campaign/campaign.repository";
5
+ import { CampaignService } from "@/modules/v4/campaign/campaign.service";
6
6
  import { TokenService } from "@/modules/v4/token/token.service";
7
7
  import { UserService } from "@/modules/v4/user/user.service";
8
8
  import { log } from "@/utils/logger";
@@ -1,4 +1,4 @@
1
- import { CampaignService } from "../campaign";
1
+ import { CampaignService } from "@/modules/v4/campaign/campaign.service";
2
2
  export function transformId({ params }) {
3
3
  const [chainId, type, campaignId] = params.id.split("-");
4
4
  if (!Number.isNaN(+type))
@@ -1,8 +1,8 @@
1
+ import { CacheService } from "@/modules/v4/cache/cache.service";
1
2
  import { ChainService } from "@/modules/v4/chain/chain.service";
2
3
  import { TokenService } from "@/modules/v4/token/token.service";
3
4
  import { log } from "@/utils/logger";
4
5
  import { BucketService } from "../bucket/bucket.service";
5
- import { CacheService } from "../cache";
6
6
  import { TTLPresets } from "../cache/cache.model";
7
7
  import { IconService } from "../icon/icon.service";
8
8
  import { ProtocolRepository } from "./protocol.repository";
@@ -1,11 +1,11 @@
1
1
  import { BackOfficeGuard } from "@/guards/BackOffice.guard";
2
2
  import { AuthorizationHeadersDto, EngineGuard } from "@/guards/Engine.guard";
3
3
  import { ChainDto } from "@/modules/v4/accounting/accounting.model";
4
+ import { CacheService } from "@/modules/v4/cache/cache.service";
4
5
  import { CampaignService } from "@/modules/v4/campaign/campaign.service";
5
6
  import { TokenService } from "@/modules/v4/token/token.service";
6
7
  import { throwOnInvalidRequiredAddress, throwOnUnsupportedChainId } from "@/utils/throw";
7
8
  import Elysia, { t } from "elysia";
8
- import { CacheService } from "../cache";
9
9
  import { TTLPresets } from "../cache/cache.model";
10
10
  import { CampaignIdDto, CampaignIdWithoutPageDto, CampaignRewardsDto, CreateManyBreakdownDto, CreateManyRewardDto, RegisterClaimsDto, TokenIdDto, } from "./reward.model";
11
11
  import { RewardService } from "./reward.service";
@@ -1,10 +1,10 @@
1
1
  import { Campaign, Reward, RewardBreakdown } from "@db/api:drizzle";
2
+ import { CampaignService } from "@/modules/v4/campaign/campaign.service";
2
3
  import { TokenService } from "@/modules/v4/token/token.service";
3
4
  import { UserService } from "@/modules/v4/user/user.service";
4
5
  import { apiDbClient } from "@db";
5
6
  import { DAY } from "@sdk";
6
7
  import { and, eq, exists, inArray, sql } from "drizzle-orm";
7
- import { CampaignService } from "../campaign";
8
8
  import { RewardService } from "./reward.service";
9
9
  export class RewardRepository {
10
10
  static async createManyReward(rewards) {
@@ -1,7 +1,7 @@
1
1
  import type { CacheKeys } from "@/cache/keys";
2
+ import type { LightOpportunityFromDB, Opportunity } from "@/modules/v4/opportunity/opportunity.model";
2
3
  import type { Chain } from "@db/api";
3
4
  import { type CampaignDynamicData, Campaign as CampaignType, type ChainId, type MerklChainId } from "@sdk";
4
- import { type LightOpportunityFromDB, type Opportunity } from "../opportunity";
5
5
  import type { CampaignIdModel, CampaignIdWithoutPageModel, CreateManyBreakdownModel, CreateManyRewardModel, DailyRewardsRecord, RegisterClaimsModel, RewardBreakdown, TokenIdModel } from "./reward.model";
6
6
  import { RewardRepository } from "./reward.repository";
7
7
  export declare abstract class RewardService {
@@ -1,14 +1,14 @@
1
+ import { BlacklistService } from "@/modules/v4/blacklist/blacklist.service";
2
+ import { TTLPresets } from "@/modules/v4/cache/cache.model";
3
+ import { CacheService } from "@/modules/v4/cache/cache.service";
4
+ import { CampaignService } from "@/modules/v4/campaign/campaign.service";
5
+ import { ChainService } from "@/modules/v4/chain/chain.service";
6
+ import { MerklRootService } from "@/modules/v4/merklRoot/merklRoot.service";
7
+ import { OpportunityService } from "@/modules/v4/opportunity/opportunity.service";
8
+ import { TokenService } from "@/modules/v4/token/token.service";
1
9
  import { log } from "@/utils/logger";
2
10
  import { Campaign as CampaignType, DAY, DistributorService, NETWORK_LABELS, } from "@sdk";
3
11
  import moment from "moment";
4
- import { BlacklistService } from "../blacklist";
5
- import { CacheService } from "../cache";
6
- import { TTLPresets } from "../cache/cache.model";
7
- import { CampaignService } from "../campaign";
8
- import { ChainService } from "../chain/chain.service";
9
- import { MerklRootService } from "../merklRoot";
10
- import { OpportunityService } from "../opportunity";
11
- import { TokenService } from "../token/token.service";
12
12
  import { RewardRepository } from "./reward.repository";
13
13
  export class RewardService {
14
14
  static hashId(root, recipient, rewardTokenId) {
@@ -2824,7 +2824,7 @@ export declare const v4: Elysia<"/v4", false, {
2824
2824
  };
2825
2825
  headers: unknown;
2826
2826
  response: {
2827
- 200: import("./reward").BreakdownForCampaignsRaw[];
2827
+ 200: import("./reward/reward.model").BreakdownForCampaignsRaw[];
2828
2828
  };
2829
2829
  };
2830
2830
  };
@@ -3721,7 +3721,7 @@ export declare const v4: Elysia<"/v4", false, {
3721
3721
  response: {
3722
3722
  200: (Omit<{
3723
3723
  chain: import("@db/api").Chain;
3724
- rewards: Awaited<ReturnType<typeof import("./reward").RewardService["format"]>>;
3724
+ rewards: Awaited<ReturnType<typeof import("./reward/reward.service").RewardService["format"]>>;
3725
3725
  }, "rewards"> & {
3726
3726
  rewards: (Omit<{
3727
3727
  token: {
@@ -3811,7 +3811,7 @@ export declare const v4: Elysia<"/v4", false, {
3811
3811
  proofs: string[];
3812
3812
  }, "breakdowns"> & {
3813
3813
  breakdowns: {
3814
- opportunity: import("@/modules/v4/opportunity").Opportunity["model"];
3814
+ opportunity: import("./opportunity/opportunity.model").Opportunity["model"];
3815
3815
  claimed: bigint;
3816
3816
  amount: bigint;
3817
3817
  pending: bigint;
@@ -3844,7 +3844,7 @@ export declare const v4: Elysia<"/v4", false, {
3844
3844
  response: {
3845
3845
  200: (Omit<{
3846
3846
  chain: import("@db/api").Chain;
3847
- rewards: Awaited<ReturnType<typeof import("./reward").RewardService["format"]>>;
3847
+ rewards: Awaited<ReturnType<typeof import("./reward/reward.service").RewardService["format"]>>;
3848
3848
  }, "rewards"> & {
3849
3849
  rewards: (Omit<{
3850
3850
  token: {
@@ -5259,7 +5259,7 @@ export declare const v4: Elysia<"/v4", false, {
5259
5259
  pending: string;
5260
5260
  reason: string;
5261
5261
  rewardToken: import("./token/token.model").Token["model"];
5262
- opportunity: import("@/modules/v4/opportunity").Opportunity["model"];
5262
+ opportunity: import("./opportunity/opportunity.model").Opportunity["model"];
5263
5263
  }[]>>;
5264
5264
  };
5265
5265
  };
@@ -5288,7 +5288,7 @@ export declare const v4: Elysia<"/v4", false, {
5288
5288
  pending: string;
5289
5289
  reason: string;
5290
5290
  rewardToken: import("./token/token.model").Token["model"];
5291
- opportunity: import("@/modules/v4/opportunity").Opportunity["model"];
5291
+ opportunity: import("./opportunity/opportunity.model").Opportunity["model"];
5292
5292
  }[]>>;
5293
5293
  };
5294
5294
  };
@@ -11,7 +11,7 @@ import { ExplorerController } from "@/modules/v4/explorer/explorer.controller";
11
11
  import { InteractionController } from "@/modules/v4/interaction/interaction.controller";
12
12
  import { LiquidityController } from "@/modules/v4/liquidity/liquidity.controller";
13
13
  import { MerklRootController } from "@/modules/v4/merklRoot/merklRoot.controller";
14
- import { OpportunityController } from "@/modules/v4/opportunity";
14
+ import { OpportunityController } from "@/modules/v4/opportunity/opportunity.controller";
15
15
  import { PriceController } from "@/modules/v4/price/price.controller";
16
16
  import { ProgramPayloadController } from "@/modules/v4/programPayload/programPayload.controller";
17
17
  import { ProtocolController } from "@/modules/v4/protocol/protocol.controller";
@@ -1,5 +1,5 @@
1
- import type { Campaign } from "../campaign";
2
- import type { Resource } from "../prisma";
1
+ import type { Campaign } from "@/modules/v4/campaign/campaign.model";
2
+ import type { Resource } from "@/modules/v4/prisma";
3
3
  export type Status = Resource<"CampaignStatus", "campaignId", {
4
4
  computedUntil: number;
5
5
  processingStarted: number;
@@ -1,5 +1,5 @@
1
+ import type { CampaignUnique } from "@/modules/v4/campaign/campaign.model";
1
2
  import type { Prisma, RunStatus } from "@db/api";
2
- import { type CampaignUnique } from "../campaign";
3
3
  import type { DelayModel, QueryCampaignStatus } from "./status.model";
4
4
  export declare abstract class StatusRepository {
5
5
  #private;
@@ -1,6 +1,6 @@
1
+ import { CampaignService } from "@/modules/v4/campaign/campaign.service";
1
2
  import { apiDbClient } from "@db";
2
3
  import moment from "moment";
3
- import { CampaignService } from "../campaign";
4
4
  export class StatusRepository {
5
5
  static #formatQuery(query) {
6
6
  return {
@@ -1,4 +1,5 @@
1
- import { CampaignService, type CampaignUnique } from "../campaign";
1
+ import type { CampaignUnique } from "@/modules/v4/campaign/campaign.model";
2
+ import { CampaignService } from "@/modules/v4/campaign/campaign.service";
2
3
  import type { DelayModel, QueryCampaignStatus, UpdateStatusModel } from "./status.model";
3
4
  export declare abstract class StatusService {
4
5
  static format(status: Awaited<ReturnType<(typeof CampaignService)["findUniqueOrThrow"]>>["CampaignStatus"][number]): {
@@ -1,11 +1,11 @@
1
1
  import { NotFoundError } from "@/errors";
2
2
  import { VoidString } from "@/errors/VoidString.error";
3
+ import { CampaignService } from "@/modules/v4/campaign/campaign.service";
4
+ import { MerklRootService } from "@/modules/v4/merklRoot/merklRoot.service";
3
5
  import { log } from "@/utils/logger";
4
6
  import { RunStatus } from "@db/api";
5
7
  import { HOUR, MAX_COMPUTE_JOB_TIME, NETWORK_LABELS, getMultisigURL, registry } from "@sdk";
6
8
  import moment from "moment";
7
- import { CampaignService } from "../campaign";
8
- import { MerklRootService } from "../merklRoot";
9
9
  import { StatusRepository } from "./status.repository";
10
10
  export class StatusService {
11
11
  static format(status) {
@@ -2,8 +2,7 @@ import { NotFoundError } from "@/errors/NotFound.error";
2
2
  import { AuthorizationHeadersDto, BackOfficeGuard } from "@/guards/BackOffice.guard";
3
3
  import { getUserAllowance } from "@/libs/tokens/allowances";
4
4
  import { throwOnInvalidRequiredAddress, throwOnUnsupportedChainId } from "@/utils/throw";
5
- import Elysia from "elysia";
6
- import { ChainDto } from "../accounting";
5
+ import Elysia, { t } from "elysia";
7
6
  import { CreateTokenDto, FindUniqueTokenAllowanceDto, FindUniqueTokenDto, GetTokenBalanceDto, GetTokenQueryDto, NotionWebhookAddTokenDto, TokenIdDto, UpdateTokenDto, } from "./token.model";
8
7
  import { TokenService } from "./token.service";
9
8
  // ─── Tokens Controller ───────────────────────────────────────────────────────
@@ -43,7 +42,9 @@ export const TokenController = new Elysia({ prefix: "/tokens", detail: { tags: [
43
42
  })
44
43
  // ─── Get Valid Reward Token ───────────────────────────────────────────
45
44
  .get("/reward/:chainId", async ({ params }) => TokenService.getValidRewardTokens(params.chainId), {
46
- params: ChainDto,
45
+ params: t.Object({
46
+ chainId: t.Numeric(),
47
+ }),
47
48
  beforeHandle: ({ params }) => throwOnUnsupportedChainId(params.chainId),
48
49
  detail: {
49
50
  description: "Get the list of tokens that are accept as reward tokens on a given chain",
@@ -1,8 +1,8 @@
1
1
  import { HttpError } from "@/errors";
2
2
  import { getOnlyUserBalance } from "@/libs/tokens/balances";
3
3
  import { BucketService } from "@/modules/v4/bucket/bucket.service";
4
- import { CacheService } from "@/modules/v4/cache";
5
4
  import { TTLPresets } from "@/modules/v4/cache/cache.model";
5
+ import { CacheService } from "@/modules/v4/cache/cache.service";
6
6
  import { CoingeckoService } from "@/modules/v4/coingecko/coingecko.service";
7
7
  import { IconService } from "@/modules/v4/icon/icon.service";
8
8
  import { PriceService } from "@/modules/v4/price/price.service";
@@ -34,7 +34,7 @@ export declare const UniswapController: Elysia<"uniswap", false, {
34
34
  pending: string;
35
35
  reason: string;
36
36
  rewardToken: import("../token/token.model").Token["model"];
37
- opportunity: import("../opportunity").Opportunity["model"];
37
+ opportunity: import("../opportunity/opportunity.model").Opportunity["model"];
38
38
  }[]>>;
39
39
  };
40
40
  };
@@ -63,7 +63,7 @@ export declare const UniswapController: Elysia<"uniswap", false, {
63
63
  pending: string;
64
64
  reason: string;
65
65
  rewardToken: import("../token/token.model").Token["model"];
66
- opportunity: import("../opportunity").Opportunity["model"];
66
+ opportunity: import("../opportunity/opportunity.model").Opportunity["model"];
67
67
  }[]>>;
68
68
  };
69
69
  };
@@ -1,8 +1,8 @@
1
1
  import { AuthorizationHeadersDto, BackOfficeGuard } from "@/guards/BackOffice.guard";
2
+ import { CacheService } from "@/modules/v4/cache/cache.service";
2
3
  import { UnsupportedNetwork } from "@/utils/error";
3
4
  import { throwOnInvalidAddress, throwOnInvalidRequiredAddress, throwOnUnsupportedChainId } from "@/utils/throw";
4
5
  import Elysia, { t } from "elysia";
5
- import { CacheService } from "../cache";
6
6
  import { TTLPresets } from "../cache/cache.model";
7
7
  import { ChainUniqueDto } from "../chain/chain.model";
8
8
  import { Bytes32Dto, RewardsPerPositionDto, UniV4ChainIdArray, UniswapV4PoolDto, } from "./uniswap.model";
@@ -1,6 +1,6 @@
1
+ import type { Opportunity } from "@/modules/v4/opportunity/opportunity.model";
2
+ import type { Token } from "@/modules/v4/token/token.model";
1
3
  import { type MerklChainId } from "@sdk";
2
- import { type Opportunity } from "../opportunity";
3
- import type { Token } from "../token/token.model";
4
4
  import { type RewardsPerPositionModel, type UniV4ChainId, type UniswapV4PoolsReturnType } from "./uniswap.model";
5
5
  export declare abstract class UniswapService {
6
6
  static findRewardsPerPosition(version: "v3" | "v4", query: RewardsPerPositionModel): Promise<Record<number, Record<string, Record<string, {