@merkl/api 0.10.130 → 0.10.132
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/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 });
|