@merkl/api 0.10.139 → 0.10.141

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. package/dist/src/eden/index.d.ts +21 -0
  2. package/dist/src/index.d.ts +7 -0
  3. package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +28 -2
  4. package/dist/src/modules/v4/opportunity/opportunity.repository.js +16 -1
  5. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +2 -1
  6. package/dist/src/modules/v4/opportunity/opportunity.service.js +30 -0
  7. package/dist/src/modules/v4/opportunity/subservices/getClammMetadata.service.js +1 -1
  8. package/dist/src/modules/v4/opportunity/subservices/getDolomiteMetadata.service.js +1 -1
  9. package/dist/src/modules/v4/opportunity/subservices/getErc20SnapshotMetadata.service.js +1 -1
  10. package/dist/src/modules/v4/opportunity/subservices/getJsonAirDropMetadata.service.js +3 -3
  11. package/dist/src/modules/v4/opportunity/subservices/getMorphoMetadata.service.js +2 -2
  12. package/dist/src/modules/v4/opportunity/subservices/getRadiantMetadata.service.js +1 -1
  13. package/dist/src/modules/v4/opportunity/subservices/getSiloMetadata.service.js +1 -1
  14. package/dist/src/modules/v4/router.d.ts +7 -0
  15. package/dist/src/modules/v4/status/status.controller.d.ts +7 -0
  16. package/dist/src/modules/v4/status/status.controller.js +3 -0
  17. package/dist/src/modules/v4/status/status.repository.d.ts +8 -0
  18. package/dist/src/modules/v4/status/status.repository.js +9 -0
  19. package/dist/src/modules/v4/status/status.service.d.ts +8 -0
  20. package/dist/src/modules/v4/status/status.service.js +3 -0
  21. package/dist/src/routes/v3/ERC20Campaigns.d.ts +7 -0
  22. package/dist/src/routes/v3/blacklist.d.ts +7 -0
  23. package/dist/src/routes/v3/campaigns.d.ts +7 -0
  24. package/dist/src/routes/v3/campaignsInfo.d.ts +7 -0
  25. package/dist/src/routes/v3/multiChainPositions.d.ts +7 -0
  26. package/dist/src/routes/v3/opportunity.d.ts +7 -0
  27. package/dist/src/routes/v3/positions.d.ts +7 -0
  28. package/dist/src/routes/v3/rewards.d.ts +7 -0
  29. package/dist/src/routes/v3/updates.d.ts +7 -0
  30. package/dist/src/routes/v3/userRewards.d.ts +7 -0
  31. package/dist/tsconfig.package.tsbuildinfo +1 -1
  32. package/package.json +1 -1
@@ -1659,6 +1659,13 @@ declare const eden: {
1659
1659
  campaignId: string;
1660
1660
  computedUntil: bigint;
1661
1661
  processingStarted: bigint;
1662
+ }[] | {
1663
+ error: string;
1664
+ details: import("database/api/.generated/runtime/library").JsonValue;
1665
+ status: import("../../database/api/.generated").$Enums.RunStatus;
1666
+ campaignId: string;
1667
+ computedUntil: bigint;
1668
+ processingStarted: bigint;
1662
1669
  };
1663
1670
  }>>;
1664
1671
  }) & {
@@ -3886,6 +3893,13 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
3886
3893
  campaignId: string;
3887
3894
  computedUntil: bigint;
3888
3895
  processingStarted: bigint;
3896
+ }[] | {
3897
+ error: string;
3898
+ details: import("database/api/.generated/runtime/library").JsonValue;
3899
+ status: import("../../database/api/.generated").$Enums.RunStatus;
3900
+ campaignId: string;
3901
+ computedUntil: bigint;
3902
+ processingStarted: bigint;
3889
3903
  };
3890
3904
  };
3891
3905
  };
@@ -5559,6 +5573,13 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
5559
5573
  campaignId: string;
5560
5574
  computedUntil: bigint;
5561
5575
  processingStarted: bigint;
5576
+ }[] | {
5577
+ error: string;
5578
+ details: import("database/api/.generated/runtime/library").JsonValue;
5579
+ status: import("../../database/api/.generated").$Enums.RunStatus;
5580
+ campaignId: string;
5581
+ computedUntil: bigint;
5582
+ processingStarted: bigint;
5562
5583
  };
5563
5584
  }>>;
5564
5585
  }) & {
@@ -2152,6 +2152,13 @@ declare const app: Elysia<"", false, {
2152
2152
  campaignId: string;
2153
2153
  computedUntil: bigint;
2154
2154
  processingStarted: bigint;
2155
+ }[] | {
2156
+ error: string;
2157
+ details: import("database/api/.generated/runtime/library").JsonValue;
2158
+ status: import("../database/api/.generated").$Enums.RunStatus;
2159
+ campaignId: string;
2160
+ computedUntil: bigint;
2161
+ processingStarted: bigint;
2155
2162
  };
2156
2163
  };
2157
2164
  };
@@ -254,7 +254,19 @@ export declare abstract class OpportunityRepository {
254
254
  dailyRewards: number;
255
255
  }>;
256
256
  static findManyWithCampaigns(filters: Prisma.OpportunityFindManyArgs): Promise<({
257
- Campaigns: {
257
+ Campaigns: ({
258
+ RewardToken: {
259
+ symbol: string;
260
+ name: string | null;
261
+ id: string;
262
+ chainId: number;
263
+ address: string;
264
+ icon: string;
265
+ decimals: number;
266
+ verified: boolean;
267
+ price: number | null;
268
+ };
269
+ } & {
258
270
  type: import("../../../../database/api/.generated").$Enums.CampaignType;
259
271
  id: string;
260
272
  params: Prisma.JsonValue;
@@ -268,7 +280,7 @@ export declare abstract class OpportunityRepository {
268
280
  amount: string;
269
281
  opportunityId: string;
270
282
  creatorAddress: string;
271
- }[];
283
+ })[];
272
284
  } & {
273
285
  name: string;
274
286
  type: import("../../../../database/api/.generated").$Enums.CampaignType;
@@ -462,6 +474,20 @@ export declare abstract class OpportunityRepository {
462
474
  apr: number;
463
475
  dailyRewards: number;
464
476
  }>;
477
+ static updateName(id: string, name: string): Promise<{
478
+ name: string;
479
+ type: import("../../../../database/api/.generated").$Enums.CampaignType;
480
+ id: string;
481
+ status: import("../../../../database/api/.generated").$Enums.Status;
482
+ tags: string[];
483
+ identifier: string;
484
+ chainId: number;
485
+ action: import("../../../../database/api/.generated").$Enums.OpportunityAction;
486
+ mainProtocolId: string | null;
487
+ tvl: number;
488
+ apr: number;
489
+ dailyRewards: number;
490
+ }>;
465
491
  static aggregateSum(field: keyof Prisma.OpportunitySumAggregateInputType, query: GetOpportunitiesQueryEntity): Promise<{
466
492
  sum: never;
467
493
  }>;
@@ -93,7 +93,19 @@ export class OpportunityRepository {
93
93
  });
94
94
  }
95
95
  static async findManyWithCampaigns(filters) {
96
- return await apiDbClient.opportunity.findMany({ ...filters, include: { Campaigns: true } });
96
+ return await apiDbClient.opportunity.findMany({
97
+ ...filters,
98
+ include: {
99
+ Campaigns: {
100
+ include: {
101
+ RewardToken: true,
102
+ },
103
+ orderBy: {
104
+ endTimestamp: "desc",
105
+ },
106
+ },
107
+ },
108
+ });
97
109
  }
98
110
  static #transformQueryToPrismaFilters(query) {
99
111
  const { page: _page, items: _items, ...filters } = query;
@@ -215,6 +227,9 @@ export class OpportunityRepository {
215
227
  return await apiDbClient.opportunity.update({ where: { id }, data: { status, apr: 0, dailyRewards: 0 } });
216
228
  return await apiDbClient.opportunity.update({ where: { id }, data: { status } });
217
229
  }
230
+ static async updateName(id, name) {
231
+ return await apiDbClient.opportunity.update({ where: { id }, data: { name } });
232
+ }
218
233
  static async aggregateSum(field, query) {
219
234
  const args = OpportunityRepository.#transformQueryToPrismaFilters(query);
220
235
  const result = await apiDbClient.opportunity.aggregate({
@@ -1,6 +1,6 @@
1
1
  import { type CreateCampaignModel } from "../campaign";
2
2
  import { Prisma } from "../../../../database/api/.generated";
3
- import type { ChainId } from "@sdk";
3
+ import { type ChainId } from "@sdk";
4
4
  import type { CreateOpportunityModel, GetOpportunitiesQueryEntity, LightOpportunityFromDB, OpportunityMetadata, OpportunityUnique } from "./opportunity.model";
5
5
  import { OpportunityRepository } from "./opportunity.repository";
6
6
  export declare abstract class OpportunityService {
@@ -17,6 +17,7 @@ export declare abstract class OpportunityService {
17
17
  * @returns {OpportunityMetadata}
18
18
  */
19
19
  static getMetadata(campaign: CreateCampaignModel): Promise<OpportunityMetadata>;
20
+ static updateNames(): Promise<void>;
20
21
  static updateMetadata(chain: ChainId): Promise<void>;
21
22
  static getUniqueWithCampaignsOrThrow(opportunityId: string | OpportunityUnique): Promise<({
22
23
  aprRecord: {
@@ -3,6 +3,7 @@ import { CampaignService } from "../campaign";
3
3
  import { log } from "../../../utils/logger";
4
4
  import { OpportunityAction, Prisma } from "../../../../database/api/.generated";
5
5
  import { record } from "@elysiajs/opentelemetry";
6
+ import { Campaign } from "@sdk";
6
7
  import { CacheService } from "../cache";
7
8
  import { TTLPresets } from "../cache/cache.model";
8
9
  import { OpportunityRepository } from "./opportunity.repository";
@@ -75,6 +76,35 @@ export class OpportunityService {
75
76
  throw "UNKNOWN CAMPAIGN TYPE";
76
77
  }
77
78
  }
79
+ static async updateNames() {
80
+ const opportunities = await OpportunityRepository.findManyWithCampaigns({});
81
+ log.info(`updating ${opportunities.length} opportunities names`);
82
+ for (const [i, opp] of opportunities.entries()) {
83
+ try {
84
+ const campaignData = opp.Campaigns[0];
85
+ const campaign = {
86
+ ...campaignData,
87
+ creator: campaignData.creatorAddress,
88
+ chainId: campaignData.distributionChainId,
89
+ rewardTokenAddress: campaignData.RewardToken.address,
90
+ opportunityIdentifier: opp.identifier,
91
+ subType: campaignData.subType ?? undefined,
92
+ type: Campaign[campaignData.type],
93
+ params: JSON.stringify(campaignData.params),
94
+ startTimestamp: campaignData.startTimestamp.toString(),
95
+ endTimestamp: campaignData.endTimestamp.toString(),
96
+ };
97
+ const metadata = await OpportunityService.getMetadata(campaign);
98
+ if (opp.name !== metadata.name) {
99
+ log.info(`updating opportunity ${opp.id} name from ${opp.name} to ${metadata.name}`);
100
+ await OpportunityRepository.updateName(opp.id, metadata.name);
101
+ }
102
+ }
103
+ catch (err) {
104
+ log.error(`failed to update opportunity ${opp.id} name`, err);
105
+ }
106
+ }
107
+ }
78
108
  static async updateMetadata(chain) {
79
109
  try {
80
110
  const opportunities = await OpportunityRepository.findManyWithCampaigns({
@@ -22,7 +22,7 @@ export const getClammMetadata = (chainId, params) => {
22
22
  platform = "iZUMi";
23
23
  }
24
24
  return {
25
- name: [platform, `${params.symbolToken0}/${params.symbolToken1}`, params.poolFee && `${params.poolFee}%`].join(" "),
25
+ name: `Provide liquidity to ${params.symbolToken0}-${params.symbolToken1}${params.poolFee ? ` ${params.poolFee}%` : ""}`,
26
26
  action: OpportunityAction.POOL,
27
27
  tokens: [
28
28
  { chainId, address: params.token0 },
@@ -1,7 +1,7 @@
1
1
  import { OpportunityAction } from "../../../../../database/api/.generated";
2
2
  export const getDolomiteMetadata = (chainId, campaignSubType, params) => {
3
3
  const subtypes = [
4
- { name: "Delta", action: OpportunityAction.LEND },
4
+ { name: "Supply (delta)", action: OpportunityAction.LEND },
5
5
  { name: "Supply", action: OpportunityAction.LEND },
6
6
  { name: "Borrow", action: OpportunityAction.BORROW },
7
7
  ];
@@ -1,7 +1,7 @@
1
1
  import { OpportunityAction } from "../../../../../database/api/.generated";
2
2
  export const getErc20SnapshotMetadata = (chainId, params) => {
3
3
  return {
4
- name: ["Airdrop", params.symbolTargetToken, "holders"].join(" "),
4
+ name: ["Get", params.symbolTargetToken, "airdrop"].join(" "),
5
5
  action: OpportunityAction.DROP,
6
6
  tokens: [{ chainId, address: params.targetToken }],
7
7
  };
@@ -3,9 +3,9 @@ import { OpportunityAction } from "../../../../../database/api/.generated";
3
3
  export const getJsonAirdropMetadata = async (chainId, creator, params) => {
4
4
  const ACI = "0xdeadD8aB03075b7FBA81864202a2f59EE25B312b".toLowerCase();
5
5
  const aaveDAO = "0x5300A1a15135EA4dc7aD5a167152C01EFc9b192A".toLowerCase();
6
- const aciPrefix = creator.toLowerCase() === ACI && "Aave Merit Rewards -";
7
- const aavePrefix = creator.toLowerCase() === aaveDAO && "Aave - aAMPL distribution -";
8
- const prefix = aavePrefix ? aavePrefix : aciPrefix ? aciPrefix : "Airdrop in";
6
+ const aciPrefix = creator.toLowerCase() === ACI && "Get Merit rewards -";
7
+ const aavePrefix = creator.toLowerCase() === aaveDAO && "Get aAMPL distribution -";
8
+ const prefix = aavePrefix ? aavePrefix : aciPrefix ? aciPrefix : "Get airdrop in";
9
9
  let tokenAddress;
10
10
  try {
11
11
  const res = await fetch(params.jsonUrl);
@@ -4,10 +4,10 @@ export const getMorphoMetadata = (chainId, campaignSubType, params) => {
4
4
  const morphoParams = params;
5
5
  const market = `${morphoParams.symbolLoanToken}/${morphoParams.symbolBorrowToken} ${morphoParams?.LLTV && BN2Number(morphoParams?.LLTV, 16)}%`;
6
6
  const subtypes = [
7
- { name: `Metamorpho ${morphoParams.nameTargetToken}`, action: OpportunityAction.LEND },
7
+ { name: `Deposit in ${morphoParams.nameTargetToken} - Metamorpho`, action: OpportunityAction.LEND },
8
8
  { name: `Supply ${morphoParams.symbolLoanToken} on ${market}`, action: OpportunityAction.LEND },
9
9
  { name: `Borrow ${morphoParams.symbolLoanToken} on ${market}`, action: OpportunityAction.BORROW },
10
- { name: `Collateral ${morphoParams.symbolBorrowToken} on ${market}`, action: OpportunityAction.LEND },
10
+ { name: `Lend ${morphoParams.symbolBorrowToken} on ${market}`, action: OpportunityAction.LEND },
11
11
  ];
12
12
  const subtype = subtypes[campaignSubType];
13
13
  return {
@@ -2,7 +2,7 @@ import { OpportunityAction } from "../../../../../database/api/.generated";
2
2
  export const getRadiantMetadata = (chainId, campaignSubType, params) => {
3
3
  return {
4
4
  action: campaignSubType <= 1 ? OpportunityAction.LEND : OpportunityAction.BORROW,
5
- name: ["Radiant", params.symbolTargetToken].join(" "),
5
+ name: [campaignSubType <= 1 ? "Lend" : "Borrow", params.symbolTargetToken].join(" "),
6
6
  tokens: [{ chainId, address: params.targetToken }],
7
7
  mainProtocol: "radiant",
8
8
  };
@@ -6,7 +6,7 @@ export const getSiloMetadata = (chainId, campaignSubType, params) => {
6
6
  suffix += ` (${assetSymbol} Market)`;
7
7
  return {
8
8
  action: campaignSubType <= 1 ? OpportunityAction.LEND : OpportunityAction.BORROW,
9
- name: ["Silo", params.symbolTargetToken, suffix].join(" "),
9
+ name: [campaignSubType <= 1 ? "Lend" : "Borrow", params.symbolTargetToken, suffix].join(" "),
10
10
  tokens: [{ chainId, address: params.targetToken }],
11
11
  mainProtocol: "silo",
12
12
  };
@@ -2134,6 +2134,13 @@ export declare const v4: Elysia<"/v4", false, {
2134
2134
  campaignId: string;
2135
2135
  computedUntil: bigint;
2136
2136
  processingStarted: bigint;
2137
+ }[] | {
2138
+ error: string;
2139
+ details: import("database/api/.generated/runtime/library").JsonValue;
2140
+ status: import("../../../database/api/.generated").$Enums.RunStatus;
2141
+ campaignId: string;
2142
+ computedUntil: bigint;
2143
+ processingStarted: bigint;
2137
2144
  };
2138
2145
  };
2139
2146
  };
@@ -107,6 +107,13 @@ export declare const StatusController: Elysia<"/campaign-status", false, {
107
107
  campaignId: string;
108
108
  computedUntil: bigint;
109
109
  processingStarted: bigint;
110
+ }[] | {
111
+ error: string;
112
+ details: import("database/api/.generated/runtime/library").JsonValue;
113
+ status: import("../../../../database/api/.generated").$Enums.RunStatus;
114
+ campaignId: string;
115
+ computedUntil: bigint;
116
+ processingStarted: bigint;
110
117
  };
111
118
  };
112
119
  };
@@ -22,7 +22,10 @@ export const StatusController = new Elysia({ prefix: "/campaign-status", detail:
22
22
  // ─── Find Many Status ────────────────────────────────────────────────
23
23
  .get("/", async ({ query }) => await StatusService.findMany(query), { query: QueryCampaignStatusDto })
24
24
  // ─── Get A Status By Id ────────────────────────────────────────────
25
+ // campaignId will be either a rough campaignId in the engine sense, a campaignId in the api db way, or a distributionChain_campaignId
25
26
  .get("/:campaignId", async ({ params }) => {
27
+ if (!params.campaignId.includes("-") && params.campaignId.startsWith("0x"))
28
+ return await StatusService.findManyByCampaignId(params.campaignId);
26
29
  if (!params.campaignId.includes("-"))
27
30
  return await StatusService.findUniqueOrThrow(params.campaignId);
28
31
  const [distributionChain, campaignId] = params.campaignId.split("-");
@@ -11,6 +11,14 @@ export declare class StatusRepository {
11
11
  computedUntil: bigint;
12
12
  processingStarted: bigint;
13
13
  }[]>;
14
+ static findManyByCampaignId(campaignId: string): Promise<{
15
+ error: string;
16
+ details: Prisma.JsonValue;
17
+ status: import("../../../../database/api/.generated").$Enums.RunStatus;
18
+ campaignId: string;
19
+ computedUntil: bigint;
20
+ processingStarted: bigint;
21
+ }[]>;
14
22
  static findUniqueOrThrow(campaignId: string): Promise<{
15
23
  error: string;
16
24
  details: Prisma.JsonValue;
@@ -14,6 +14,15 @@ export class StatusRepository {
14
14
  static async findMany(query) {
15
15
  return await apiDbClient.campaignStatus.findMany(StatusRepository.#formatQuery(query));
16
16
  }
17
+ static async findManyByCampaignId(campaignId) {
18
+ return await apiDbClient.campaignStatus.findMany({
19
+ where: {
20
+ Campaign: {
21
+ campaignId: campaignId,
22
+ },
23
+ },
24
+ });
25
+ }
17
26
  static async findUniqueOrThrow(campaignId) {
18
27
  return await apiDbClient.campaignStatus.findUniqueOrThrow({
19
28
  where: {
@@ -9,6 +9,14 @@ export declare class StatusService {
9
9
  computedUntil: bigint;
10
10
  processingStarted: bigint;
11
11
  }[]>;
12
+ static findManyByCampaignId(campaignId: string): Promise<{
13
+ error: string;
14
+ details: import("database/api/.generated/runtime/library").JsonValue;
15
+ status: import("../../../../database/api/.generated").$Enums.RunStatus;
16
+ campaignId: string;
17
+ computedUntil: bigint;
18
+ processingStarted: bigint;
19
+ }[]>;
12
20
  static findUniqueOrThrow(campaignUnique: CampaignUnique | string): Promise<{
13
21
  error: string;
14
22
  details: import("database/api/.generated/runtime/library").JsonValue;
@@ -7,6 +7,9 @@ export class StatusService {
7
7
  static async findMany(query) {
8
8
  return await StatusRepository.findMany(query);
9
9
  }
10
+ static async findManyByCampaignId(campaignId) {
11
+ return await StatusRepository.findManyByCampaignId(campaignId);
12
+ }
10
13
  static async findUniqueOrThrow(campaignUnique) {
11
14
  const campaignId = typeof campaignUnique === "string" ? campaignUnique : CampaignService.hashId(campaignUnique);
12
15
  return await StatusRepository.findUniqueOrThrow(campaignId);
@@ -2160,6 +2160,13 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
2160
2160
  campaignId: string;
2161
2161
  computedUntil: bigint;
2162
2162
  processingStarted: bigint;
2163
+ }[] | {
2164
+ error: string;
2165
+ details: import("database/api/.generated/runtime/library").JsonValue;
2166
+ status: import("../../../database/api/.generated").$Enums.RunStatus;
2167
+ campaignId: string;
2168
+ computedUntil: bigint;
2169
+ processingStarted: bigint;
2163
2170
  };
2164
2171
  };
2165
2172
  };
@@ -2158,6 +2158,13 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
2158
2158
  campaignId: string;
2159
2159
  computedUntil: bigint;
2160
2160
  processingStarted: bigint;
2161
+ }[] | {
2162
+ error: string;
2163
+ details: import("database/api/.generated/runtime/library").JsonValue;
2164
+ status: import("../../../database/api/.generated").$Enums.RunStatus;
2165
+ campaignId: string;
2166
+ computedUntil: bigint;
2167
+ processingStarted: bigint;
2161
2168
  };
2162
2169
  };
2163
2170
  };
@@ -2161,6 +2161,13 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
2161
2161
  campaignId: string;
2162
2162
  computedUntil: bigint;
2163
2163
  processingStarted: bigint;
2164
+ }[] | {
2165
+ error: string;
2166
+ details: import("database/api/.generated/runtime/library").JsonValue;
2167
+ status: import("../../../database/api/.generated").$Enums.RunStatus;
2168
+ campaignId: string;
2169
+ computedUntil: bigint;
2170
+ processingStarted: bigint;
2164
2171
  };
2165
2172
  };
2166
2173
  };
@@ -2152,6 +2152,13 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
2152
2152
  campaignId: string;
2153
2153
  computedUntil: bigint;
2154
2154
  processingStarted: bigint;
2155
+ }[] | {
2156
+ error: string;
2157
+ details: import("database/api/.generated/runtime/library").JsonValue;
2158
+ status: import("../../../database/api/.generated").$Enums.RunStatus;
2159
+ campaignId: string;
2160
+ computedUntil: bigint;
2161
+ processingStarted: bigint;
2155
2162
  };
2156
2163
  };
2157
2164
  };
@@ -2157,6 +2157,13 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
2157
2157
  campaignId: string;
2158
2158
  computedUntil: bigint;
2159
2159
  processingStarted: bigint;
2160
+ }[] | {
2161
+ error: string;
2162
+ details: import("database/api/.generated/runtime/library").JsonValue;
2163
+ status: import("../../../database/api/.generated").$Enums.RunStatus;
2164
+ campaignId: string;
2165
+ computedUntil: bigint;
2166
+ processingStarted: bigint;
2160
2167
  };
2161
2168
  };
2162
2169
  };
@@ -2175,6 +2175,13 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
2175
2175
  campaignId: string;
2176
2176
  computedUntil: bigint;
2177
2177
  processingStarted: bigint;
2178
+ }[] | {
2179
+ error: string;
2180
+ details: import("database/api/.generated/runtime/library").JsonValue;
2181
+ status: import("../../../database/api/.generated").$Enums.RunStatus;
2182
+ campaignId: string;
2183
+ computedUntil: bigint;
2184
+ processingStarted: bigint;
2178
2185
  };
2179
2186
  };
2180
2187
  };
@@ -2176,6 +2176,13 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
2176
2176
  campaignId: string;
2177
2177
  computedUntil: bigint;
2178
2178
  processingStarted: bigint;
2179
+ }[] | {
2180
+ error: string;
2181
+ details: import("database/api/.generated/runtime/library").JsonValue;
2182
+ status: import("../../../database/api/.generated").$Enums.RunStatus;
2183
+ campaignId: string;
2184
+ computedUntil: bigint;
2185
+ processingStarted: bigint;
2179
2186
  };
2180
2187
  };
2181
2188
  };
@@ -2158,6 +2158,13 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
2158
2158
  campaignId: string;
2159
2159
  computedUntil: bigint;
2160
2160
  processingStarted: bigint;
2161
+ }[] | {
2162
+ error: string;
2163
+ details: import("database/api/.generated/runtime/library").JsonValue;
2164
+ status: import("../../../database/api/.generated").$Enums.RunStatus;
2165
+ campaignId: string;
2166
+ computedUntil: bigint;
2167
+ processingStarted: bigint;
2161
2168
  };
2162
2169
  };
2163
2170
  };
@@ -2159,6 +2159,13 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
2159
2159
  campaignId: string;
2160
2160
  computedUntil: bigint;
2161
2161
  processingStarted: bigint;
2162
+ }[] | {
2163
+ error: string;
2164
+ details: import("database/api/.generated/runtime/library").JsonValue;
2165
+ status: import("../../../database/api/.generated").$Enums.RunStatus;
2166
+ campaignId: string;
2167
+ computedUntil: bigint;
2168
+ processingStarted: bigint;
2162
2169
  };
2163
2170
  };
2164
2171
  };
@@ -2161,6 +2161,13 @@ declare const _default: (app: App) => import("elysia").default<"", false, {
2161
2161
  campaignId: string;
2162
2162
  computedUntil: bigint;
2163
2163
  processingStarted: bigint;
2164
+ }[] | {
2165
+ error: string;
2166
+ details: import("database/api/.generated/runtime/library").JsonValue;
2167
+ status: import("../../../database/api/.generated").$Enums.RunStatus;
2168
+ campaignId: string;
2169
+ computedUntil: bigint;
2170
+ processingStarted: bigint;
2164
2171
  };
2165
2172
  };
2166
2173
  };