@merkl/api 0.10.137 → 0.10.139
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.
- package/dist/src/eden/index.d.ts +291 -520
- package/dist/src/index.d.ts +99 -186
- package/dist/src/index.js +1 -1
- package/dist/src/libs/campaigns/campaignTypes/CompoundDynamicData.js +21 -7
- package/dist/src/libs/deprecated-merklv3/index.js +1 -1
- package/dist/src/libs/positions/compound/index.d.ts +0 -2
- package/dist/src/libs/positions/compound/index.js +3 -6
- package/dist/src/modules/v4/blacklist/blacklist.controller.d.ts +0 -21
- package/dist/src/modules/v4/blacklist/blacklist.controller.js +2 -2
- package/dist/src/modules/v4/blacklist/blacklist.repository.d.ts +0 -8
- package/dist/src/modules/v4/blacklist/blacklist.repository.js +1 -4
- package/dist/src/modules/v4/blacklist/blacklist.service.d.ts +1 -9
- package/dist/src/modules/v4/blacklist/blacklist.service.js +1 -4
- package/dist/src/modules/v4/campaign/campaign.controller.d.ts +3 -3
- package/dist/src/modules/v4/campaign/campaign.controller.js +8 -6
- package/dist/src/modules/v4/campaign/campaign.service.js +1 -2
- package/dist/src/modules/v4/chain/chain.controller.js +2 -1
- package/dist/src/modules/v4/dynamicData/dynamicData.controller.d.ts +20 -26
- package/dist/src/modules/v4/dynamicData/dynamicData.controller.js +5 -5
- package/dist/src/modules/v4/enso/enso.service.d.ts +1 -1
- package/dist/src/modules/v4/{participate/participate.controller.d.ts → interaction/interaction.controller.d.ts} +6 -6
- package/dist/src/modules/v4/{participate/participate.controller.js → interaction/interaction.controller.js} +12 -13
- package/dist/src/modules/v4/{participate/participate.model.d.ts → interaction/interaction.model.d.ts} +12 -12
- package/dist/src/modules/v4/{participate/participate.model.js → interaction/interaction.model.js} +3 -3
- package/dist/src/modules/v4/{participate/participate.service.d.ts → interaction/interaction.service.d.ts} +5 -5
- package/dist/src/modules/v4/{participate/participate.service.js → interaction/interaction.service.js} +3 -3
- package/dist/src/modules/v4/merklRoot/merklRoot.controller.d.ts +2 -2
- package/dist/src/modules/v4/merklRoot/merklRoot.controller.js +2 -2
- package/dist/src/modules/v4/opportunity/opportunity.controller.js +5 -1
- package/dist/src/modules/v4/price/price.controller.js +3 -0
- package/dist/src/modules/v4/reward/reward.controller.d.ts +31 -29
- package/dist/src/modules/v4/reward/reward.controller.js +3 -3
- package/dist/src/modules/v4/reward/{rewardConvertor.service.d.ts → subservices/converter.d.ts} +2 -2
- package/dist/src/modules/v4/reward/{rewardConvertor.service.js → subservices/converter.js} +1 -1
- package/dist/src/modules/v4/router.d.ts +99 -186
- package/dist/src/modules/v4/router.js +2 -2
- package/dist/src/modules/v4/status/status.controller.d.ts +40 -102
- package/dist/src/modules/v4/status/status.controller.js +16 -22
- package/dist/src/modules/v4/status/status.model.d.ts +33 -26
- package/dist/src/modules/v4/status/status.model.js +9 -20
- package/dist/src/modules/v4/status/status.repository.d.ts +12 -42
- package/dist/src/modules/v4/status/status.repository.js +10 -22
- package/dist/src/modules/v4/status/status.service.d.ts +4 -36
- package/dist/src/modules/v4/status/status.service.js +9 -18
- package/dist/src/modules/v4/uniswapV4/uniswapV4.controller.d.ts +1 -1
- package/dist/src/modules/v4/uniswapV4/uniswapV4.controller.js +1 -1
- package/dist/src/modules/v4/user/user.controller.js +3 -2
- package/dist/src/routes/v3/ERC20Campaigns.d.ts +99 -186
- package/dist/src/routes/v3/blacklist.d.ts +99 -186
- package/dist/src/routes/v3/campaigns.d.ts +99 -186
- package/dist/src/routes/v3/campaignsInfo.d.ts +99 -186
- package/dist/src/routes/v3/multiChainPositions.d.ts +99 -186
- package/dist/src/routes/v3/opportunity.d.ts +99 -186
- package/dist/src/routes/v3/positions.d.ts +99 -186
- package/dist/src/routes/v3/rewards.d.ts +99 -186
- package/dist/src/routes/v3/rewards.js +1 -1
- package/dist/src/routes/v3/updates.d.ts +99 -186
- package/dist/src/routes/v3/userRewards.d.ts +99 -186
- package/dist/src/routes/v3/userRewards.js +1 -1
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +4 -5
- package/dist/src/modules/v4/apr/apr.repository.d.ts +0 -0
- package/dist/src/modules/v4/apr/apr.repository.js +0 -1
- package/dist/src/modules/v4/tvl/tvl.repository.d.ts +0 -0
- package/dist/src/modules/v4/tvl/tvl.repository.js +0 -1
@@ -1,36 +1,30 @@
|
|
1
1
|
import { AuthorizationHeadersDto, EngineGuard } from "../../../guards/Engine.guard";
|
2
|
-
import { throwOnUnsupportedChainId } from "../../../utils/throw";
|
3
2
|
import Elysia from "elysia";
|
4
3
|
import { CampaignUniqueDto } from "../campaign";
|
5
|
-
import {
|
4
|
+
import { QueryCampaignStatusDto, UpdateCampaignStatusDto } from "./status.model";
|
6
5
|
import { StatusService } from "./status.service";
|
7
|
-
export const StatusController = new Elysia({ prefix: "/
|
6
|
+
export const StatusController = new Elysia({ prefix: "/campaign-status", detail: { tags: ["Status"] } })
|
8
7
|
// ─── Update a Campaign Status ──────────────────────────────────────
|
9
|
-
.
|
8
|
+
.put("/engine/:campaignId", async ({ params, body }) => {
|
9
|
+
const [distributionChain, campaignId] = params.campaignId.split("-");
|
10
|
+
return await StatusService.update({ distributionChain: +distributionChain, campaignId }, body);
|
11
|
+
}, {
|
10
12
|
beforeHandle: EngineGuard,
|
11
13
|
headers: AuthorizationHeadersDto,
|
12
|
-
body:
|
13
|
-
})
|
14
|
-
// ─── Get All Status ────────────────────────────────────────────────
|
15
|
-
.get("/", async () => await StatusService.findMany())
|
16
|
-
.get("/status", async ({ query }) => await StatusService.findManyByRunStatus(query), { query: RunStatusListDto })
|
17
|
-
// ─── Get A Status By Id ────────────────────────────────────────────
|
18
|
-
.get("/unique", async ({ query }) => await StatusService.findUniqueOrThrow(query), {
|
19
|
-
query: CampaignUniqueDto,
|
20
|
-
beforeHandle: ({ query }) => {
|
21
|
-
throwOnUnsupportedChainId(query.distributionChain);
|
22
|
-
},
|
23
|
-
})
|
24
|
-
// ─── Get All Status on a chain ─────────────────────────────────────
|
25
|
-
.get("/computeChain/:chainId", async ({ params }) => await StatusService.findManyPerChain(params.chainId), {
|
26
|
-
params: ChainDto,
|
27
|
-
beforeHandle: ({ params }) => {
|
28
|
-
throwOnUnsupportedChainId(params.chainId);
|
29
|
-
},
|
14
|
+
body: UpdateCampaignStatusDto,
|
30
15
|
})
|
31
16
|
// ─── Is Safe For Overlaps ──────────────────────────────────────────
|
32
17
|
.get("/engine/overlaps", async ({ query }) => await StatusService.isSafeForOverlaps(query), {
|
33
18
|
beforeHandle: EngineGuard,
|
34
19
|
headers: AuthorizationHeadersDto,
|
35
20
|
query: CampaignUniqueDto,
|
21
|
+
})
|
22
|
+
// ─── Find Many Status ────────────────────────────────────────────────
|
23
|
+
.get("/", async ({ query }) => await StatusService.findMany(query), { query: QueryCampaignStatusDto })
|
24
|
+
// ─── Get A Status By Id ────────────────────────────────────────────
|
25
|
+
.get("/:campaignId", async ({ params }) => {
|
26
|
+
if (!params.campaignId.includes("-"))
|
27
|
+
return await StatusService.findUniqueOrThrow(params.campaignId);
|
28
|
+
const [distributionChain, campaignId] = params.campaignId.split("-");
|
29
|
+
return await StatusService.findUniqueOrThrow({ distributionChain: +distributionChain, campaignId });
|
36
30
|
});
|
@@ -1,28 +1,35 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
import type { Campaign } from "../campaign";
|
2
|
+
import type { Resource } from "../prisma";
|
3
|
+
export type Status = Resource<"CampaignStatus", "campaignId", {
|
4
|
+
campaign: Campaign["model"];
|
3
5
|
}>;
|
4
|
-
export declare const
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
6
|
+
export declare const UpdateCampaignStatusDto: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
|
7
|
+
value: import("@sinclair/typebox").TLiteral<"SUCCESS">;
|
8
|
+
computedUntil: import("@sinclair/typebox").TNumber;
|
9
|
+
}>, import("@sinclair/typebox").TObject<{
|
10
|
+
value: import("@sinclair/typebox").TLiteral<"PROCESSING">;
|
11
|
+
}>, import("@sinclair/typebox").TObject<{
|
12
|
+
value: import("@sinclair/typebox").TLiteral<"SKIPPED">;
|
13
|
+
error: import("@sinclair/typebox").TString;
|
14
|
+
details: import("@sinclair/typebox").TString;
|
15
|
+
}>, import("@sinclair/typebox").TObject<{
|
16
|
+
value: import("@sinclair/typebox").TLiteral<"FAILED">;
|
17
|
+
error: import("@sinclair/typebox").TString;
|
18
|
+
details: import("@sinclair/typebox").TString;
|
19
|
+
}>]>;
|
20
|
+
export declare const QueryCampaignStatusDto: import("@sinclair/typebox").TObject<{
|
21
|
+
computeChainId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
22
|
+
status: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TEnum<{
|
23
|
+
PROCESSING: "PROCESSING";
|
24
|
+
SUCCESS: "SUCCESS";
|
25
|
+
FAILED: "FAILED";
|
26
|
+
SKIPPED: "SKIPPED";
|
27
|
+
}>>, import("@sinclair/typebox").TEnum<{
|
28
|
+
PROCESSING: "PROCESSING";
|
29
|
+
SUCCESS: "SUCCESS";
|
30
|
+
FAILED: "FAILED";
|
31
|
+
SKIPPED: "SKIPPED";
|
32
|
+
}>]>>;
|
21
33
|
}>;
|
22
|
-
export
|
23
|
-
export
|
24
|
-
status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"SUCCESS">, import("@sinclair/typebox").TLiteral<"FAILED">, import("@sinclair/typebox").TLiteral<"PROCESSING">, import("@sinclair/typebox").TLiteral<"SKIPPED">]>>, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"SUCCESS">, import("@sinclair/typebox").TLiteral<"FAILED">, import("@sinclair/typebox").TLiteral<"PROCESSING">, import("@sinclair/typebox").TLiteral<"SKIPPED">]>]>;
|
25
|
-
}>;
|
26
|
-
export type ChainModel = typeof ChainDto.static;
|
27
|
-
export type RunStatusListModel = typeof RunStatusListDto.static;
|
28
|
-
export type UpdateStatusModel = typeof UpdateStatusDto.static;
|
34
|
+
export type UpdateStatusModel = typeof UpdateCampaignStatusDto.static;
|
35
|
+
export type QueryCampaignStatus = typeof QueryCampaignStatusDto.static;
|
@@ -1,24 +1,13 @@
|
|
1
1
|
import { RunStatus } from "../../../../database/api/.generated";
|
2
2
|
import { t } from "elysia";
|
3
|
-
|
4
|
-
|
5
|
-
})
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
status: t.Union([
|
10
|
-
t.Object({ value: t.Literal(RunStatus.SUCCESS), computedUntil: t.Numeric() }),
|
11
|
-
t.Object({ value: t.Literal(RunStatus.PROCESSING) }),
|
12
|
-
t.Object({ value: t.Literal(RunStatus.SKIPPED), error: t.String(), details: t.String() }),
|
13
|
-
t.Object({ value: t.Literal(RunStatus.FAILED), error: t.String(), details: t.String() }),
|
14
|
-
]),
|
15
|
-
});
|
16
|
-
export const RunStatusDto = t.Union([
|
17
|
-
t.Literal(RunStatus.SUCCESS),
|
18
|
-
t.Literal(RunStatus.FAILED),
|
19
|
-
t.Literal(RunStatus.PROCESSING),
|
20
|
-
t.Literal(RunStatus.SKIPPED),
|
3
|
+
// ─── DTOs ────────────────────────────────────────────────────────────────────
|
4
|
+
export const UpdateCampaignStatusDto = t.Union([
|
5
|
+
t.Object({ value: t.Literal(RunStatus.SUCCESS), computedUntil: t.Numeric() }),
|
6
|
+
t.Object({ value: t.Literal(RunStatus.PROCESSING) }),
|
7
|
+
t.Object({ value: t.Literal(RunStatus.SKIPPED), error: t.String(), details: t.String() }),
|
8
|
+
t.Object({ value: t.Literal(RunStatus.FAILED), error: t.String(), details: t.String() }),
|
21
9
|
]);
|
22
|
-
export const
|
23
|
-
|
10
|
+
export const QueryCampaignStatusDto = t.Object({
|
11
|
+
computeChainId: t.Optional(t.Numeric()),
|
12
|
+
status: t.Optional(t.Union([t.Array(t.Enum(RunStatus)), t.Enum(RunStatus)])),
|
24
13
|
});
|
@@ -1,49 +1,19 @@
|
|
1
|
-
import type { RunStatus } from "../../../../database/api/.generated";
|
1
|
+
import type { Prisma, RunStatus } from "../../../../database/api/.generated";
|
2
2
|
import { type CampaignUnique } from "../campaign";
|
3
|
+
import type { QueryCampaignStatus } from "./status.model";
|
3
4
|
export declare class StatusRepository {
|
4
|
-
|
5
|
+
#private;
|
6
|
+
static findMany(query: QueryCampaignStatus): Promise<{
|
5
7
|
error: string;
|
6
|
-
details:
|
8
|
+
details: Prisma.JsonValue;
|
7
9
|
status: import("../../../../database/api/.generated").$Enums.RunStatus;
|
8
10
|
campaignId: string;
|
9
11
|
computedUntil: bigint;
|
10
12
|
processingStarted: bigint;
|
11
13
|
}[]>;
|
12
|
-
static
|
13
|
-
Campaign: {
|
14
|
-
type: import("../../../../database/api/.generated").$Enums.CampaignType;
|
15
|
-
id: string;
|
16
|
-
params: import("database/api/.generated/runtime/library").JsonValue;
|
17
|
-
subType: number | null;
|
18
|
-
startTimestamp: bigint;
|
19
|
-
endTimestamp: bigint;
|
20
|
-
computeChainId: number;
|
21
|
-
distributionChainId: number;
|
22
|
-
campaignId: string;
|
23
|
-
rewardTokenId: string;
|
24
|
-
amount: string;
|
25
|
-
opportunityId: string;
|
26
|
-
creatorAddress: string;
|
27
|
-
};
|
28
|
-
} & {
|
14
|
+
static findUniqueOrThrow(campaignId: string): Promise<{
|
29
15
|
error: string;
|
30
|
-
details:
|
31
|
-
status: import("../../../../database/api/.generated").$Enums.RunStatus;
|
32
|
-
campaignId: string;
|
33
|
-
computedUntil: bigint;
|
34
|
-
processingStarted: bigint;
|
35
|
-
})[]>;
|
36
|
-
static findManyPerChain(chainId: number): Promise<{
|
37
|
-
error: string;
|
38
|
-
details: import("database/api/.generated/runtime/library").JsonValue;
|
39
|
-
status: import("../../../../database/api/.generated").$Enums.RunStatus;
|
40
|
-
campaignId: string;
|
41
|
-
computedUntil: bigint;
|
42
|
-
processingStarted: bigint;
|
43
|
-
}[]>;
|
44
|
-
static findUniqueOrThrow(campaignUnique: CampaignUnique): Promise<{
|
45
|
-
error: string;
|
46
|
-
details: import("database/api/.generated/runtime/library").JsonValue;
|
16
|
+
details: Prisma.JsonValue;
|
47
17
|
status: import("../../../../database/api/.generated").$Enums.RunStatus;
|
48
18
|
campaignId: string;
|
49
19
|
computedUntil: bigint;
|
@@ -51,7 +21,7 @@ export declare class StatusRepository {
|
|
51
21
|
}>;
|
52
22
|
static findUnique(campaignUnique: CampaignUnique): Promise<{
|
53
23
|
error: string;
|
54
|
-
details:
|
24
|
+
details: Prisma.JsonValue;
|
55
25
|
status: import("../../../../database/api/.generated").$Enums.RunStatus;
|
56
26
|
campaignId: string;
|
57
27
|
computedUntil: bigint;
|
@@ -59,7 +29,7 @@ export declare class StatusRepository {
|
|
59
29
|
} | null>;
|
60
30
|
static create(campaign: CampaignUnique, startTimestamp: bigint): Promise<{
|
61
31
|
error: string;
|
62
|
-
details:
|
32
|
+
details: Prisma.JsonValue;
|
63
33
|
status: import("../../../../database/api/.generated").$Enums.RunStatus;
|
64
34
|
campaignId: string;
|
65
35
|
computedUntil: bigint;
|
@@ -67,7 +37,7 @@ export declare class StatusRepository {
|
|
67
37
|
}>;
|
68
38
|
static updateSuccess(campaignUnique: CampaignUnique, computedUntil: number): Promise<{
|
69
39
|
error: string;
|
70
|
-
details:
|
40
|
+
details: Prisma.JsonValue;
|
71
41
|
status: import("../../../../database/api/.generated").$Enums.RunStatus;
|
72
42
|
campaignId: string;
|
73
43
|
computedUntil: bigint;
|
@@ -75,7 +45,7 @@ export declare class StatusRepository {
|
|
75
45
|
}>;
|
76
46
|
static updateWithError(campaignUnique: CampaignUnique, status: Exclude<RunStatus, "SUCCESS" | "PROCESSING">, error: string, details: string): Promise<{
|
77
47
|
error: string;
|
78
|
-
details:
|
48
|
+
details: Prisma.JsonValue;
|
79
49
|
status: import("../../../../database/api/.generated").$Enums.RunStatus;
|
80
50
|
campaignId: string;
|
81
51
|
computedUntil: bigint;
|
@@ -83,7 +53,7 @@ export declare class StatusRepository {
|
|
83
53
|
}>;
|
84
54
|
static updateProcessing(campaignUnique: CampaignUnique): Promise<{
|
85
55
|
error: string;
|
86
|
-
details:
|
56
|
+
details: Prisma.JsonValue;
|
87
57
|
status: import("../../../../database/api/.generated").$Enums.RunStatus;
|
88
58
|
campaignId: string;
|
89
59
|
computedUntil: bigint;
|
@@ -2,34 +2,22 @@ import { apiDbClient } from "../../../utils/prisma";
|
|
2
2
|
import moment from "moment";
|
3
3
|
import { CampaignService } from "../campaign";
|
4
4
|
export class StatusRepository {
|
5
|
-
static
|
6
|
-
return
|
7
|
-
}
|
8
|
-
static async findManyByRunStatus(statuses) {
|
9
|
-
return await apiDbClient.campaignStatus.findMany({
|
5
|
+
static #formatQuery(query) {
|
6
|
+
return {
|
10
7
|
where: {
|
11
|
-
status: {
|
12
|
-
|
13
|
-
},
|
8
|
+
status: Array.isArray(query.status) ? { in: query.status } : query.status,
|
9
|
+
Campaign: query.computeChainId ? { computeChainId: query.computeChainId } : undefined,
|
14
10
|
},
|
15
|
-
include: {
|
16
|
-
|
17
|
-
},
|
18
|
-
});
|
11
|
+
include: { Campaign: Boolean(query.status) },
|
12
|
+
};
|
19
13
|
}
|
20
|
-
static async
|
21
|
-
return await apiDbClient.campaignStatus.findMany(
|
22
|
-
where: {
|
23
|
-
Campaign: {
|
24
|
-
computeChainId: chainId,
|
25
|
-
},
|
26
|
-
},
|
27
|
-
});
|
14
|
+
static async findMany(query) {
|
15
|
+
return await apiDbClient.campaignStatus.findMany(StatusRepository.#formatQuery(query));
|
28
16
|
}
|
29
|
-
static async findUniqueOrThrow(
|
17
|
+
static async findUniqueOrThrow(campaignId) {
|
30
18
|
return await apiDbClient.campaignStatus.findUniqueOrThrow({
|
31
19
|
where: {
|
32
|
-
campaignId
|
20
|
+
campaignId,
|
33
21
|
},
|
34
22
|
});
|
35
23
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { type CampaignUnique } from "../campaign";
|
2
|
-
import type {
|
2
|
+
import type { QueryCampaignStatus, UpdateStatusModel } from "./status.model";
|
3
3
|
export declare class StatusService {
|
4
|
-
static findMany(): Promise<{
|
4
|
+
static findMany(query: QueryCampaignStatus): Promise<{
|
5
5
|
error: string;
|
6
6
|
details: import("database/api/.generated/runtime/library").JsonValue;
|
7
7
|
status: import("../../../../database/api/.generated").$Enums.RunStatus;
|
@@ -9,39 +9,7 @@ export declare class StatusService {
|
|
9
9
|
computedUntil: bigint;
|
10
10
|
processingStarted: bigint;
|
11
11
|
}[]>;
|
12
|
-
static
|
13
|
-
Campaign: {
|
14
|
-
type: import("../../../../database/api/.generated").$Enums.CampaignType;
|
15
|
-
id: string;
|
16
|
-
params: import("database/api/.generated/runtime/library").JsonValue;
|
17
|
-
subType: number | null;
|
18
|
-
startTimestamp: bigint;
|
19
|
-
endTimestamp: bigint;
|
20
|
-
computeChainId: number;
|
21
|
-
distributionChainId: number;
|
22
|
-
campaignId: string;
|
23
|
-
rewardTokenId: string;
|
24
|
-
amount: string;
|
25
|
-
opportunityId: string;
|
26
|
-
creatorAddress: string;
|
27
|
-
};
|
28
|
-
} & {
|
29
|
-
error: string;
|
30
|
-
details: import("database/api/.generated/runtime/library").JsonValue;
|
31
|
-
status: import("../../../../database/api/.generated").$Enums.RunStatus;
|
32
|
-
campaignId: string;
|
33
|
-
computedUntil: bigint;
|
34
|
-
processingStarted: bigint;
|
35
|
-
})[]>;
|
36
|
-
static findManyPerChain(chainId: number): Promise<{
|
37
|
-
error: string;
|
38
|
-
details: import("database/api/.generated/runtime/library").JsonValue;
|
39
|
-
status: import("../../../../database/api/.generated").$Enums.RunStatus;
|
40
|
-
campaignId: string;
|
41
|
-
computedUntil: bigint;
|
42
|
-
processingStarted: bigint;
|
43
|
-
}[]>;
|
44
|
-
static findUniqueOrThrow(campaignUnique: CampaignUnique): Promise<{
|
12
|
+
static findUniqueOrThrow(campaignUnique: CampaignUnique | string): Promise<{
|
45
13
|
error: string;
|
46
14
|
details: import("database/api/.generated/runtime/library").JsonValue;
|
47
15
|
status: import("../../../../database/api/.generated").$Enums.RunStatus;
|
@@ -57,6 +25,6 @@ export declare class StatusService {
|
|
57
25
|
computedUntil: bigint;
|
58
26
|
processingStarted: bigint;
|
59
27
|
} | null>;
|
60
|
-
static update(
|
28
|
+
static update(campaignUnique: CampaignUnique, status: UpdateStatusModel): Promise<void>;
|
61
29
|
static isSafeForOverlaps(campaignUnique: CampaignUnique): Promise<boolean>;
|
62
30
|
}
|
@@ -4,27 +4,18 @@ import moment from "moment";
|
|
4
4
|
import { CampaignService } from "../campaign";
|
5
5
|
import { StatusRepository } from "./status.repository";
|
6
6
|
export class StatusService {
|
7
|
-
static async findMany() {
|
8
|
-
return await StatusRepository.findMany();
|
9
|
-
}
|
10
|
-
static async findManyByRunStatus(x) {
|
11
|
-
return await StatusRepository.findManyByRunStatus(typeof x.status === "string" ? [x.status] : x.status);
|
12
|
-
}
|
13
|
-
static async findManyPerChain(chainId) {
|
14
|
-
return await StatusRepository.findManyPerChain(chainId);
|
7
|
+
static async findMany(query) {
|
8
|
+
return await StatusRepository.findMany(query);
|
15
9
|
}
|
16
10
|
static async findUniqueOrThrow(campaignUnique) {
|
17
|
-
|
11
|
+
const campaignId = typeof campaignUnique === "string" ? campaignUnique : CampaignService.hashId(campaignUnique);
|
12
|
+
return await StatusRepository.findUniqueOrThrow(campaignId);
|
18
13
|
}
|
19
14
|
static async findUnique(campaignUnique) {
|
20
15
|
return await StatusRepository.findUnique(campaignUnique);
|
21
16
|
}
|
22
|
-
static async update(
|
17
|
+
static async update(campaignUnique, status) {
|
23
18
|
// Check if the status exists already, otherwise create it
|
24
|
-
const campaignUnique = {
|
25
|
-
distributionChain: x.distributionChain,
|
26
|
-
campaignId: x.campaignId,
|
27
|
-
};
|
28
19
|
const campaignExists = await StatusRepository.findUnique(campaignUnique);
|
29
20
|
if (!campaignExists) {
|
30
21
|
let campaign = await CampaignService.findUnique(campaignUnique);
|
@@ -35,18 +26,18 @@ export class StatusService {
|
|
35
26
|
await StatusRepository.create(campaignUnique, campaign.startTimestamp);
|
36
27
|
}
|
37
28
|
// Update the run status
|
38
|
-
switch (
|
29
|
+
switch (status.value) {
|
39
30
|
case RunStatus.SUCCESS:
|
40
|
-
await StatusRepository.updateSuccess(campaignUnique,
|
31
|
+
await StatusRepository.updateSuccess(campaignUnique, status.computedUntil);
|
41
32
|
return;
|
42
33
|
case RunStatus.PROCESSING:
|
43
34
|
await StatusRepository.updateProcessing(campaignUnique);
|
44
35
|
return;
|
45
36
|
case RunStatus.SKIPPED:
|
46
|
-
await StatusRepository.updateWithError(campaignUnique,
|
37
|
+
await StatusRepository.updateWithError(campaignUnique, status.value, status.error, status.details);
|
47
38
|
return;
|
48
39
|
case RunStatus.FAILED:
|
49
|
-
await StatusRepository.updateWithError(campaignUnique,
|
40
|
+
await StatusRepository.updateWithError(campaignUnique, status.value, status.error, status.details);
|
50
41
|
return;
|
51
42
|
}
|
52
43
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import Elysia, { t } from "elysia";
|
2
2
|
import { UniswapV4Service } from "./uniswapV4.service";
|
3
|
-
export const uniswapV4Controller = new Elysia().group("
|
3
|
+
export const uniswapV4Controller = new Elysia().group("uniswap-v4", app => {
|
4
4
|
return app.get("/pools", async ({ query }) => {
|
5
5
|
return await UniswapV4Service.getPoolsByChain(query.chainId);
|
6
6
|
}, {
|
@@ -53,11 +53,11 @@ export const UserController = new Elysia({ prefix: "/users", detail: { tags: ["U
|
|
53
53
|
// ─── Create A User ───────────────────────────────────────────────────
|
54
54
|
.post("/", async ({ body }) => {
|
55
55
|
return await UserService.create(body);
|
56
|
-
}, { headers: AuthorizationHeadersDto, body: UserDto, beforeHandle: BackOfficeGuard })
|
56
|
+
}, { headers: AuthorizationHeadersDto, body: UserDto, beforeHandle: BackOfficeGuard, detail: { hide: true } })
|
57
57
|
// ─── Sync Creator Tags with Engine DB ─────────────────────────────────
|
58
58
|
.post("/sync", async () => {
|
59
59
|
return await UserService.syncTags();
|
60
|
-
}, { headers: AuthorizationHeadersDto, beforeHandle: BackOfficeGuard })
|
60
|
+
}, { headers: AuthorizationHeadersDto, beforeHandle: BackOfficeGuard, detail: { hide: true } })
|
61
61
|
// ─── Update User's Tags ──────────────────────────────────────────────
|
62
62
|
.patch("/:address/tags", async ({ params, body }) => {
|
63
63
|
return await UserService.updateTags(params.address, body.tags);
|
@@ -66,4 +66,5 @@ export const UserController = new Elysia({ prefix: "/users", detail: { tags: ["U
|
|
66
66
|
params: UserUniqueDto,
|
67
67
|
body: UpdateUserTagsDto,
|
68
68
|
beforeHandle: BackOfficeGuard,
|
69
|
+
detail: { hide: true },
|
69
70
|
});
|