@merkl/api 0.10.130 → 0.10.132
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/src/modules/v4/blacklist/blacklist.controller.js +2 -6
- package/dist/src/modules/v4/campaign/campaign.controller.js +6 -18
- package/dist/src/modules/v4/chain/chain.controller.js +3 -6
- package/dist/src/modules/v4/dynamicData/dynamicData.controller.js +1 -4
- package/dist/src/modules/v4/merklRoot/merklRoot.controller.js +2 -6
- package/dist/src/modules/v4/opportunity/opportunity.controller.js +3 -9
- package/dist/src/modules/v4/participate/participate.controller.js +5 -3
- package/dist/src/modules/v4/price/price.controller.js +11 -21
- package/dist/src/modules/v4/status/status.controller.js +6 -18
- package/dist/src/modules/v4/token/token.controller.js +3 -6
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/dist/node_modules/@elysiajs/eden/eden/LICENSE +0 -7
- package/dist/node_modules/@elysiajs/eden/eden/README.md +0 -46
- package/dist/node_modules/@elysiajs/eden/eden/bunfig.toml +0 -2
- package/dist/node_modules/@elysiajs/eden/eden/dist/chunk-2IHGLN7W.mjs +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/chunk-7WO4HTSU.mjs +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/chunk-XYW4OUFN.mjs +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/chunk-YAG46HFR.mjs +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/errors.d.ts +0 -5
- package/dist/node_modules/@elysiajs/eden/eden/dist/fetch/index.d.ts +0 -4
- package/dist/node_modules/@elysiajs/eden/eden/dist/fetch/types.d.ts +0 -44
- package/dist/node_modules/@elysiajs/eden/eden/dist/fetch.d.mts +0 -48
- package/dist/node_modules/@elysiajs/eden/eden/dist/fetch.d.ts +0 -48
- package/dist/node_modules/@elysiajs/eden/eden/dist/fetch.global.js +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/fetch.js +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/fetch.mjs +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/index.d.mts +0 -5
- package/dist/node_modules/@elysiajs/eden/eden/dist/index.d.ts +0 -5
- package/dist/node_modules/@elysiajs/eden/eden/dist/index.global.js +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/index.js +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/index.mjs +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/treaty/index.d.ts +0 -17
- package/dist/node_modules/@elysiajs/eden/eden/dist/treaty/types.d.ts +0 -99
- package/dist/node_modules/@elysiajs/eden/eden/dist/treaty/utils.d.ts +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/treaty.d.mts +0 -114
- package/dist/node_modules/@elysiajs/eden/eden/dist/treaty.d.ts +0 -114
- package/dist/node_modules/@elysiajs/eden/eden/dist/treaty.global.js +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/treaty.js +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/treaty.mjs +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/treaty2/index.d.ts +0 -5
- package/dist/node_modules/@elysiajs/eden/eden/dist/treaty2/types.d.ts +0 -86
- package/dist/node_modules/@elysiajs/eden/eden/dist/treaty2/ws.d.ts +0 -14
- package/dist/node_modules/@elysiajs/eden/eden/dist/treaty2.d.mts +0 -103
- package/dist/node_modules/@elysiajs/eden/eden/dist/treaty2.d.ts +0 -103
- package/dist/node_modules/@elysiajs/eden/eden/dist/treaty2.global.js +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/treaty2.js +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/treaty2.mjs +0 -1
- package/dist/node_modules/@elysiajs/eden/eden/dist/types-C41kuZ-K.d.mts +0 -44
- package/dist/node_modules/@elysiajs/eden/eden/dist/types-C41kuZ-K.d.ts +0 -44
- package/dist/node_modules/@elysiajs/eden/eden/dist/types.d.ts +0 -39
- package/dist/node_modules/@elysiajs/eden/eden/dist/utils/parsingUtils.d.ts +0 -6
- package/dist/node_modules/@elysiajs/eden/eden/package.json +0 -85
- package/dist/package.json +0 -91
- package/dist/src/modules/v4/apr/apr.controller.d.ts +0 -0
- package/dist/src/modules/v4/apr/apr.controller.js +0 -1
- package/dist/src/modules/v4/tvl/tvl.controller.d.ts +0 -0
- package/dist/src/modules/v4/tvl/tvl.controller.js +0 -1
@@ -6,13 +6,9 @@ import { AddBlacklistDto, CheckBlacklistDto, RemoveBlacklistDto } from "./blackl
|
|
6
6
|
import { BlacklistService } from "./blacklist.service";
|
7
7
|
export const BlacklistController = new Elysia({ prefix: "/blacklists", detail: { tags: ["Blacklists"] } })
|
8
8
|
// ─── Get Entire Blacklist ────────────────────────────────────────────
|
9
|
-
.get("/", async () =>
|
10
|
-
return await BlacklistService.findMany();
|
11
|
-
})
|
9
|
+
.get("/", async () => await BlacklistService.findMany())
|
12
10
|
// ─── Get Blacklist From Cache ────────────────────────────────────────
|
13
|
-
.get("/all", async () =>
|
14
|
-
return await BlacklistService.getMany();
|
15
|
-
})
|
11
|
+
.get("/all", async () => await BlacklistService.getMany())
|
16
12
|
// ─── Check If An Address Is Blacklisted ──────────────────────────────
|
17
13
|
.get("/check/:address", async ({ params }) => await BlacklistService.isBlacklisted(params.address), {
|
18
14
|
params: CheckBlacklistDto,
|
@@ -7,45 +7,33 @@ import { CampaignService } from "./campaign.service";
|
|
7
7
|
// ─── Campaigns Controller ────────────────────────────────────────────────────
|
8
8
|
export const CampaignController = new Elysia({ prefix: "/campaigns", detail: { tags: ["Campaigns"] } })
|
9
9
|
// ─── Create A Campaign ───────────────────────────────────────────────
|
10
|
-
.post("/", async ({ body }) => {
|
11
|
-
return await CampaignService.create(body);
|
12
|
-
}, {
|
10
|
+
.post("/", async ({ body }) => await CampaignService.create(body), {
|
13
11
|
beforeHandle: EngineGuard,
|
14
12
|
headers: AuthorizationHeadersDto,
|
15
13
|
body: CreateCampaignDto,
|
16
14
|
})
|
17
15
|
// ─── Get Many Campaigns ──────────────────────────────────────────────
|
18
|
-
.get("/", async ({ query }) => {
|
19
|
-
return await CampaignService.findMany(query);
|
20
|
-
}, { query: GetCampaignQueryDto })
|
16
|
+
.get("/", async ({ query }) => await CampaignService.findMany(query), { query: GetCampaignQueryDto })
|
21
17
|
// ─── Get Total Campaigns Count ───────────────────────────────────────
|
22
|
-
.get("/count", async ({ query }) => {
|
23
|
-
return await CampaignService.countMany(query);
|
24
|
-
}, { query: GetCampaignQueryDto })
|
18
|
+
.get("/count", async ({ query }) => await CampaignService.countMany(query), { query: GetCampaignQueryDto })
|
25
19
|
.group("/campaignsToProcess", app => {
|
26
20
|
return (app
|
27
21
|
// ─── Get the List of CampaignsToProcess ─────────────────────────────-
|
28
|
-
.get("/", async ({ query }) => {
|
29
|
-
return await CampaignService.findCampaignsToProcess(query.chainId);
|
30
|
-
}, {
|
22
|
+
.get("/", async ({ query }) => await CampaignService.findCampaignsToProcess(query.chainId), {
|
31
23
|
query: ChainDto,
|
32
24
|
beforeHandle: ({ query }) => {
|
33
25
|
throwOnUnsupportedChainId(query.chainId);
|
34
26
|
},
|
35
27
|
})
|
36
28
|
// ─── Get Count of CampaignsToProcess ─────────────────────────────────
|
37
|
-
.get("/count", async ({ query }) => {
|
38
|
-
return (await CampaignService.findCampaignsToProcess(query.chainId)).length;
|
39
|
-
}, {
|
29
|
+
.get("/count", async ({ query }) => (await CampaignService.findCampaignsToProcess(query.chainId)).length, {
|
40
30
|
query: ChainDto,
|
41
31
|
beforeHandle: ({ query }) => {
|
42
32
|
throwOnUnsupportedChainId(query.chainId);
|
43
33
|
},
|
44
34
|
})
|
45
35
|
// ─── Returns a CampaignId to Process and flags it as PROCESSING ──────-
|
46
|
-
.post("/", async ({ query }) => {
|
47
|
-
return await CampaignService.pickCampaignToProcess(query.chainId);
|
48
|
-
}, {
|
36
|
+
.post("/", async ({ query }) => await CampaignService.pickCampaignToProcess(query.chainId), {
|
49
37
|
query: ChainDto,
|
50
38
|
beforeHandle: async ({ query, headers }) => {
|
51
39
|
await EngineGuard({ headers });
|
@@ -23,16 +23,13 @@ export const ChainController = new Elysia({ prefix: "/chains", detail: { tags: [
|
|
23
23
|
}, {
|
24
24
|
query: GetChainQueryDto,
|
25
25
|
})
|
26
|
-
|
27
|
-
|
28
|
-
}, {
|
26
|
+
// ─── Count Chains ────────────────────────────────────────
|
27
|
+
.get("/count", async ({ query }) => await ChainService.countMany(query), {
|
29
28
|
query: GetChainQueryDto,
|
30
29
|
})
|
31
30
|
// ─── Get All Supported Chains ────────────────────────────────────────
|
32
31
|
.group("/explorers", app => {
|
33
|
-
return app.post("", async ({ body: { chainId, type, url } }) => {
|
34
|
-
return await ExplorerService.create(chainId, type, url);
|
35
|
-
}, {
|
32
|
+
return app.post("", async ({ body: { chainId, type, url } }) => await ExplorerService.create(chainId, type, url), {
|
36
33
|
beforeHandle: TokenAuthGuard,
|
37
34
|
headers: AuthorizationHeadersDto,
|
38
35
|
body: CreateChainExplorerDto,
|
@@ -5,11 +5,8 @@ import { DynamicDataSourceIdentifier } from "./dynamicData.model";
|
|
5
5
|
import { DynamicDataService } from "./dynamicData.service";
|
6
6
|
// ─── DynamicDatas Controller ───────────────────────────────────────────────────────
|
7
7
|
export const DynamicDataController = new Elysia({ prefix: "/dynamicData", detail: { tags: ["DynamicData"] } })
|
8
|
-
// ─── Get All DynamicDatas ──────────────────────────────────────────────────
|
9
8
|
// ─── Get type Info By Token Address ───────────────────────────────────────
|
10
|
-
.get("/chainId/:chainId/token/:tokenAddress", async ({ params }) => {
|
11
|
-
return await DynamicDataService.queryERC20DynamicData(params.chainId, params.tokenAddress);
|
12
|
-
}, {
|
9
|
+
.get("/chainId/:chainId/token/:tokenAddress", async ({ params }) => await DynamicDataService.queryERC20DynamicData(params.chainId, params.tokenAddress), {
|
13
10
|
params: DynamicDataSourceIdentifier,
|
14
11
|
headers: AuthorizationHeadersDto,
|
15
12
|
beforeHandle: ({ params, headers }) => {
|
@@ -5,15 +5,11 @@ import { MerklRootService } from "./merklRoot.service";
|
|
5
5
|
// ─── Merkl Roots Controller ──────────────────────────────────────────────────
|
6
6
|
export const MerklRootController = new Elysia({ prefix: "/roots", detail: { tags: ["Roots"] } })
|
7
7
|
// ─── Get Merkl Root By Timestamp ─────────────────────────────────────
|
8
|
-
.get("/timestamps", async ({ query }) => {
|
9
|
-
return await MerklRootService.rootForTimestamp(query);
|
10
|
-
}, {
|
8
|
+
.get("/timestamps", async ({ query }) => await MerklRootService.rootForTimestamp(query), {
|
11
9
|
query: RootByTimestampsDto,
|
12
10
|
beforeHandle: async ({ query }) => {
|
13
11
|
throwOnUnsupportedChainId(query.chainId);
|
14
12
|
},
|
15
13
|
})
|
16
14
|
// ─── Get all live Merkl Roots ─────────────────────────────────────────
|
17
|
-
.get("/", async () =>
|
18
|
-
return await MerklRootService.fetchAll();
|
19
|
-
});
|
15
|
+
.get("/", async () => await MerklRootService.fetchAll());
|
@@ -8,9 +8,7 @@ import { validateId } from "./validate-id.pipe";
|
|
8
8
|
// ─── Opportunities Controller ────────────────────────────────────────────────
|
9
9
|
export const OpportunityController = new Elysia({ prefix: "/opportunities", detail: { tags: ["Opportunities"] } })
|
10
10
|
// ─── Create An Opportunity ───────────────────────────────────────────
|
11
|
-
.post("/", async ({ body }) => {
|
12
|
-
return await OpportunityService.create(body);
|
13
|
-
}, {
|
11
|
+
.post("/", async ({ body }) => await OpportunityService.create(body), {
|
14
12
|
beforeHandle: TokenAuthGuard,
|
15
13
|
headers: AuthorizationHeadersDto,
|
16
14
|
body: CreateOpportunityDto,
|
@@ -58,12 +56,8 @@ export const OpportunityController = new Elysia({ prefix: "/opportunities", deta
|
|
58
56
|
beforeHandle: validateId,
|
59
57
|
})
|
60
58
|
// ─── Get All Opportunities ───────────────────────────────────────────
|
61
|
-
.get("/", async ({ query }) => {
|
62
|
-
return await OpportunityService.getMany(query);
|
63
|
-
}, {
|
59
|
+
.get("/", async ({ query }) => await OpportunityService.getMany(query), {
|
64
60
|
query: GetOpportunitiesQueryDto,
|
65
61
|
})
|
66
62
|
// ─── Get Opportunities Count ─────────────────────────────────────────
|
67
|
-
.get("/count", async ({ query }) => {
|
68
|
-
return await OpportunityService.countMany(query);
|
69
|
-
}, { query: GetOpportunitiesQueryDto });
|
63
|
+
.get("/count", async ({ query }) => await OpportunityService.countMany(query), { query: GetOpportunitiesQueryDto });
|
@@ -4,6 +4,7 @@ import { GetParticipateProtocolsQueryDto, GetParticipateQuoteQueryDto, GetPartic
|
|
4
4
|
import { ParticipateService } from "./participate.service";
|
5
5
|
// ─── Participate Controller ──────────────────────────────────────────────────
|
6
6
|
export const ParticipateController = new Elysia({ prefix: "/participate", detail: { tags: ["Participate"] } })
|
7
|
+
// ─── Get All Targets ───────────────────────────────────────────────
|
7
8
|
.get("/targets", async ({ query: { protocolId, chainId, identifier } }) => {
|
8
9
|
if (identifier)
|
9
10
|
return await ParticipateService.getTarget(chainId, protocolId, identifier);
|
@@ -15,15 +16,15 @@ export const ParticipateController = new Elysia({ prefix: "/participate", detail
|
|
15
16
|
description: "Retrieves all the pool/token/contract",
|
16
17
|
},
|
17
18
|
})
|
18
|
-
|
19
|
-
|
20
|
-
}, {
|
19
|
+
// ─── Get All Compatible Protocols ───────────────────────────────────────
|
20
|
+
.get("/protocols", async ({ query }) => await EnsoService.getCompatibleProtocols(query), {
|
21
21
|
query: GetParticipateProtocolsQueryDto,
|
22
22
|
detail: {
|
23
23
|
summary: "Interactable protocols",
|
24
24
|
description: "Retrieves protocols integrated by merkl which supports being interacted with",
|
25
25
|
},
|
26
26
|
})
|
27
|
+
// ─── Get Quote ───────────────────────────────────────────────────────
|
27
28
|
.get("/quote", async ({ query: { protocolId, chainId, identifier, userAddress, fromAmount, fromTokenAddress } }) => {
|
28
29
|
const [target] = (await ParticipateService.getTarget(chainId, protocolId, identifier)) ?? [];
|
29
30
|
//TODO: throw error
|
@@ -44,6 +45,7 @@ export const ParticipateController = new Elysia({ prefix: "/participate", detail
|
|
44
45
|
description: "",
|
45
46
|
},
|
46
47
|
})
|
48
|
+
// ─── Get Transaction ─────────────────────────────────────────────────
|
47
49
|
.get("/transaction", async ({ query: { protocolId, chainId, identifier, userAddress, fromAmount, fromTokenAddress } }) => {
|
48
50
|
const [target] = (await ParticipateService.getTarget(chainId, protocolId, identifier)) ?? [];
|
49
51
|
//TODO: throw error
|
@@ -6,27 +6,21 @@ import { PriceService } from "./price.service";
|
|
6
6
|
// ─── Prices Controller ───────────────────────────────────────────────────────
|
7
7
|
export const PriceController = new Elysia({ prefix: "/prices", detail: { tags: ["Prices"] } })
|
8
8
|
// ─── Get All Prices ──────────────────────────────────────────────────
|
9
|
-
.get("/", async () =>
|
10
|
-
|
11
|
-
})
|
12
|
-
.get("/array", async () => {
|
13
|
-
return await PriceService.findManyArray();
|
14
|
-
})
|
9
|
+
.get("/", async () => await PriceService.findMany())
|
10
|
+
.get("/array", async () => await PriceService.findManyArray())
|
15
11
|
// ─── Get Price By Token Symbol ───────────────────────────────────────
|
16
|
-
.get("/symbol/:symbol", async ({ params }) => {
|
17
|
-
|
18
|
-
}
|
12
|
+
.get("/symbol/:symbol", async ({ params }) => await PriceService.fetchPriceSourceBySymbol(params.symbol), {
|
13
|
+
params: PriceSourceIdentifier,
|
14
|
+
})
|
19
15
|
// ─── Price Sources Group ─────────────────────────────────────────────
|
20
16
|
.group("/sources", app => {
|
21
17
|
return (app
|
22
18
|
// ─── Get All Price Sources ───────────────────
|
23
|
-
.get("/", async () =>
|
24
|
-
return await PriceService.getManyPriceSources();
|
25
|
-
})
|
19
|
+
.get("/", async () => await PriceService.getManyPriceSources())
|
26
20
|
// ─── Get Price Source By Token Symbol ────────
|
27
|
-
.get("/symbol/:symbol", async ({ params }) => {
|
28
|
-
|
29
|
-
}
|
21
|
+
.get("/symbol/:symbol", async ({ params }) => await PriceService.getPriceSourceBySymbol(params.symbol), {
|
22
|
+
params: PriceSourceIdentifier,
|
23
|
+
})
|
30
24
|
// ─── Create A Price Source ───────────────────
|
31
25
|
.post("/", async ({ body }) => {
|
32
26
|
try {
|
@@ -43,18 +37,14 @@ export const PriceController = new Elysia({ prefix: "/prices", detail: { tags: [
|
|
43
37
|
beforeHandle: BackOfficeGuard,
|
44
38
|
})
|
45
39
|
// ─── Update A Price Source ───────────────────
|
46
|
-
.patch("/symbol/:symbol", async ({ params, body }) => {
|
47
|
-
return await PriceService.updatePriceSource(params.symbol, body);
|
48
|
-
}, {
|
40
|
+
.patch("/symbol/:symbol", async ({ params, body }) => await PriceService.updatePriceSource(params.symbol, body), {
|
49
41
|
headers: AuthorizationHeadersDto,
|
50
42
|
params: PriceSourceIdentifier,
|
51
43
|
body: UpdatePriceSourceDto,
|
52
44
|
beforeHandle: BackOfficeGuard,
|
53
45
|
})
|
54
46
|
// ─── Delete A Price Source ───────────────────
|
55
|
-
.delete("/symbol/:symbol", async ({ params }) => {
|
56
|
-
return await PriceService.deletePriceSource(params.symbol);
|
57
|
-
}, {
|
47
|
+
.delete("/symbol/:symbol", async ({ params }) => await PriceService.deletePriceSource(params.symbol), {
|
58
48
|
headers: AuthorizationHeadersDto,
|
59
49
|
params: PriceSourceIdentifier,
|
60
50
|
beforeHandle: BackOfficeGuard,
|
@@ -6,42 +6,30 @@ import { ChainDto, RunStatusListDto, UpdateStatusDto } from "./status.model";
|
|
6
6
|
import { StatusService } from "./status.service";
|
7
7
|
export const StatusController = new Elysia({ prefix: "/campaignStatus", detail: { tags: ["Status"] } })
|
8
8
|
// ─── Update a Campaign Status ──────────────────────────────────────
|
9
|
-
.post("/engine", async ({ body }) => {
|
10
|
-
return await StatusService.update(body);
|
11
|
-
}, {
|
9
|
+
.post("/engine", async ({ body }) => await StatusService.update(body), {
|
12
10
|
beforeHandle: EngineGuard,
|
13
11
|
headers: AuthorizationHeadersDto,
|
14
12
|
body: UpdateStatusDto,
|
15
13
|
})
|
16
14
|
// ─── Get All Status ────────────────────────────────────────────────
|
17
|
-
.get("/", async () =>
|
18
|
-
|
19
|
-
})
|
20
|
-
.get("/status", async ({ query }) => {
|
21
|
-
return await StatusService.findManyByRunStatus(query);
|
22
|
-
}, { query: RunStatusListDto })
|
15
|
+
.get("/", async () => await StatusService.findMany())
|
16
|
+
.get("/status", async ({ query }) => await StatusService.findManyByRunStatus(query), { query: RunStatusListDto })
|
23
17
|
// ─── Get A Status By Id ────────────────────────────────────────────
|
24
|
-
.get("/unique", async ({ query }) => {
|
25
|
-
return await StatusService.findUniqueOrThrow(query);
|
26
|
-
}, {
|
18
|
+
.get("/unique", async ({ query }) => await StatusService.findUniqueOrThrow(query), {
|
27
19
|
query: CampaignUniqueDto,
|
28
20
|
beforeHandle: ({ query }) => {
|
29
21
|
throwOnUnsupportedChainId(query.distributionChain);
|
30
22
|
},
|
31
23
|
})
|
32
24
|
// ─── Get All Status on a chain ─────────────────────────────────────
|
33
|
-
.get("/computeChain/:chainId", async ({ params }) => {
|
34
|
-
return await StatusService.findManyPerChain(params.chainId);
|
35
|
-
}, {
|
25
|
+
.get("/computeChain/:chainId", async ({ params }) => await StatusService.findManyPerChain(params.chainId), {
|
36
26
|
params: ChainDto,
|
37
27
|
beforeHandle: ({ params }) => {
|
38
28
|
throwOnUnsupportedChainId(params.chainId);
|
39
29
|
},
|
40
30
|
})
|
41
31
|
// ─── Is Safe For Overlaps ──────────────────────────────────────────
|
42
|
-
.get("/engine/overlaps", async ({ query }) => {
|
43
|
-
return await StatusService.isSafeForOverlaps(query);
|
44
|
-
}, {
|
32
|
+
.get("/engine/overlaps", async ({ query }) => await StatusService.isSafeForOverlaps(query), {
|
45
33
|
beforeHandle: EngineGuard,
|
46
34
|
headers: AuthorizationHeadersDto,
|
47
35
|
query: CampaignUniqueDto,
|
@@ -24,9 +24,6 @@ export const TokenController = new Elysia({ prefix: "/tokens", detail: { tags: [
|
|
24
24
|
query: GetTokenBalanceDto,
|
25
25
|
})
|
26
26
|
// ─── Get Many Tokens ─────────────────────────────────────────────────
|
27
|
-
.get("/", async ({ query }) => {
|
28
|
-
|
29
|
-
}, { query: GetTokenQueryDto })
|
30
|
-
.get("/count", async ({ query }) => {
|
31
|
-
return await TokenService.countMany(query);
|
32
|
-
}, { query: GetTokenQueryDto });
|
27
|
+
.get("/", async ({ query }) => await TokenService.findMany(query), { query: GetTokenQueryDto })
|
28
|
+
// ─── Count Tokens ─────────────────────────────────────────────────
|
29
|
+
.get("/count", async ({ query }) => await TokenService.countMany(query), { query: GetTokenQueryDto });
|