@merkl/api 0.16.34 → 0.16.35

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 (75) hide show
  1. package/dist/src/backgroundJobs/index.js +0 -4
  2. package/dist/src/backgroundJobs/jobs/opportunityUpdater.js +3 -0
  3. package/dist/src/eden/index.d.ts +657 -444
  4. package/dist/src/entities/opportunity.d.ts +3 -1
  5. package/dist/src/index.d.ts +136 -117
  6. package/dist/src/jobs/etl/prices.js +9 -2
  7. package/dist/src/libs/deprecated-merklv3/index.js +1 -1
  8. package/dist/src/modules/v4/boost/boost.controller.js +1 -1
  9. package/dist/src/modules/v4/cache/cache.repository.d.ts +1 -0
  10. package/dist/src/modules/v4/cache/cache.repository.js +19 -0
  11. package/dist/src/modules/v4/campaign/campaign.service.d.ts +0 -5
  12. package/dist/src/modules/v4/campaign/campaign.service.js +0 -5
  13. package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +120 -57
  14. package/dist/src/modules/v4/opportunity/opportunity.controller.js +1 -1
  15. package/dist/src/modules/v4/opportunity/opportunity.converter.d.ts +9 -0
  16. package/dist/src/modules/v4/opportunity/opportunity.converter.js +153 -0
  17. package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +3 -1
  18. package/dist/src/modules/v4/opportunity/opportunity.model.js +2 -0
  19. package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +18 -210
  20. package/dist/src/modules/v4/opportunity/opportunity.repository.js +76 -113
  21. package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +219 -64
  22. package/dist/src/modules/v4/opportunity/opportunity.service.js +19 -21
  23. package/dist/src/modules/v4/reward/{subservices/converter.d.ts → reward.converter.d.ts} +3 -3
  24. package/dist/src/modules/v4/reward/{subservices/converter.js → reward.converter.js} +1 -1
  25. package/dist/src/modules/v4/router.d.ts +120 -57
  26. package/dist/src/routes/v3/app.js +1 -0
  27. package/dist/src/routes/v3/blacklist.js +1 -0
  28. package/dist/src/routes/v3/campaign/delay.js +1 -0
  29. package/dist/src/routes/v3/campaignClaims.d.ts +3 -1
  30. package/dist/src/routes/v3/campaignClaims.js +4 -13
  31. package/dist/src/routes/v3/campaignUnclaimed.js +1 -0
  32. package/dist/src/routes/v3/campaignsForMainParameter.d.ts +9 -1
  33. package/dist/src/routes/v3/campaignsForMainParameter.js +17 -7
  34. package/dist/src/routes/v3/campaignsRewardsReport.js +1 -0
  35. package/dist/src/routes/v3/claims.d.ts +3 -1
  36. package/dist/src/routes/v3/claims.js +4 -33
  37. package/dist/src/routes/v3/opportunity.d.ts +7 -7
  38. package/dist/src/routes/v3/opportunity.js +12 -13
  39. package/dist/src/routes/v3/recipients.js +1 -0
  40. package/dist/src/routes/v3/rewards.js +2 -1
  41. package/dist/src/routes/v3/rewardsReport.js +1 -0
  42. package/dist/src/routes/v3/router.d.ts +16 -60
  43. package/dist/src/routes/v3/router.js +0 -6
  44. package/dist/src/routes/v3/userRewards.js +2 -1
  45. package/dist/src/types/returnTypes.d.ts +0 -8
  46. package/dist/src/utils/camelToKebabCase.d.ts +2 -0
  47. package/dist/src/utils/camelToKebabCase.js +9 -0
  48. package/dist/tsconfig.package.tsbuildinfo +1 -1
  49. package/package.json +1 -1
  50. package/dist/src/backgroundJobs/jobs/priceUpdater.d.ts +0 -37
  51. package/dist/src/backgroundJobs/jobs/priceUpdater.js +0 -21
  52. package/dist/src/backgroundJobs/jobs/sync.d.ts +0 -40
  53. package/dist/src/backgroundJobs/jobs/sync.js +0 -33
  54. package/dist/src/routes/v3/campaignReport.d.ts +0 -43
  55. package/dist/src/routes/v3/campaignReport.js +0 -22
  56. package/dist/src/routes/v3/campaignsInfo.d.ts +0 -41
  57. package/dist/src/routes/v3/campaignsInfo.js +0 -54
  58. package/dist/src/routes/v3/exports/campaigns.d.ts +0 -43
  59. package/dist/src/routes/v3/exports/campaigns.js +0 -28
  60. package/dist/src/routes/v3/tokenUnclaimed.d.ts +0 -44
  61. package/dist/src/routes/v3/tokenUnclaimed.js +0 -24
  62. package/dist/src/utils/queries/campaignsForMainParameter.d.ts +0 -2
  63. package/dist/src/utils/queries/campaignsForMainParameter.js +0 -23
  64. package/dist/src/utils/queries/claimsOverTime.d.ts +0 -8
  65. package/dist/src/utils/queries/claimsOverTime.js +0 -111
  66. package/dist/src/utils/queries/endingCampaigns.d.ts +0 -10
  67. package/dist/src/utils/queries/endingCampaigns.js +0 -21
  68. package/dist/src/utils/queries/futureCampaigns.d.ts +0 -3
  69. package/dist/src/utils/queries/futureCampaigns.js +0 -19
  70. package/dist/src/utils/queries/mainParameterCampaigns.d.ts +0 -5
  71. package/dist/src/utils/queries/mainParameterCampaigns.js +0 -11
  72. package/dist/src/utils/queries/rewardsAmount.d.ts +0 -10
  73. package/dist/src/utils/queries/rewardsAmount.js +0 -106
  74. package/dist/src/utils/queries/unclaimed.d.ts +0 -11
  75. package/dist/src/utils/queries/unclaimed.js +0 -81
package/package.json CHANGED
@@ -102,5 +102,5 @@
102
102
  "access": "public",
103
103
  "registry": "https://registry.npmjs.org/"
104
104
  },
105
- "version": "v0.16.34"
105
+ "version": "v0.16.35"
106
106
  }
@@ -1,37 +0,0 @@
1
- import type Elysia from "elysia";
2
- export declare const updatePrices: () => Promise<void>;
3
- export declare const priceUpdater: (app: Elysia) => Elysia<"", false, {
4
- decorator: {};
5
- store: {};
6
- derive: {};
7
- resolve: {};
8
- }, {
9
- type: {};
10
- error: {};
11
- }, {
12
- schema: {};
13
- macro: {};
14
- macroFn: {};
15
- }, {
16
- v3: {
17
- updatePrices: {
18
- get: {
19
- body: unknown;
20
- params: {};
21
- query: unknown;
22
- headers: unknown;
23
- response: {
24
- 200: Response;
25
- };
26
- };
27
- };
28
- };
29
- }, {
30
- derive: {};
31
- resolve: {};
32
- schema: {};
33
- }, {
34
- derive: {};
35
- resolve: {};
36
- schema: {};
37
- }>;
@@ -1,21 +0,0 @@
1
- import { TokenService } from "../../modules/v4/token/token.service";
2
- import { log } from "../../utils/logger";
3
- import { Pricer } from "../../utils/pricer";
4
- export const updatePrices = async () => {
5
- const pricer = await Pricer.load();
6
- const prices = await pricer.update();
7
- log.info(`✅ ${Object.keys(prices).length} prices cache updated successfully`);
8
- log.info("⏳ Updating API database...");
9
- await TokenService.updatePrices(pricer);
10
- log.info("✅ API database updated successfully!");
11
- };
12
- export const priceUpdater = (app) => {
13
- return app.get("/v3/updatePrices", async () => {
14
- await updatePrices();
15
- return new Response(JSON.stringify({
16
- status: "success",
17
- }), {
18
- status: 200,
19
- });
20
- });
21
- };
@@ -1,40 +0,0 @@
1
- import Elysia from "elysia";
2
- export declare const sync: Elysia<"/jobs", false, {
3
- decorator: {};
4
- store: {};
5
- derive: {};
6
- resolve: {};
7
- }, {
8
- type: {};
9
- error: {};
10
- }, {
11
- schema: {};
12
- macro: {};
13
- macroFn: {};
14
- }, {
15
- jobs: {
16
- api: {
17
- "sync-with-engine": {
18
- get: {
19
- body: unknown;
20
- params: {};
21
- query: unknown;
22
- headers: {
23
- authorization: string;
24
- };
25
- response: {
26
- 200: void;
27
- };
28
- };
29
- };
30
- };
31
- };
32
- }, {
33
- derive: {};
34
- resolve: {};
35
- schema: {};
36
- }, {
37
- derive: {};
38
- resolve: {};
39
- schema: {};
40
- }>;
@@ -1,33 +0,0 @@
1
- import { AuthorizationHeadersDto, EngineGuard } from "../../guards/Engine.guard";
2
- import { CampaignService } from "../../modules/v4/campaign";
3
- import { ChainService } from "../../modules/v4/chain";
4
- import { log } from "../../utils/logger";
5
- import Elysia from "elysia";
6
- export const sync = new Elysia({ prefix: "/jobs" }).get("/api/sync-with-engine", async () => {
7
- const chains = await ChainService.findMany({});
8
- for (const chain of chains) {
9
- log.info(`fetching campaigns on ${chain.name} (chainId: ${chain.id})`);
10
- const campaignsV3 = await CampaignService.getFromEngineDb(chain.id, 0);
11
- const campaigns = campaignsV3.map(campaignV3 => {
12
- return {
13
- amount: campaignV3.amount,
14
- campaignId: campaignV3.campaignId,
15
- chainId: campaignV3.chainId,
16
- computeChainId: campaignV3.computeChainId,
17
- creator: campaignV3.creator,
18
- endTimestamp: campaignV3.endTimestamp.toString(),
19
- opportunityIdentifier: campaignV3.mainParameter,
20
- params: JSON.stringify(campaignV3.campaignParameters),
21
- rewardTokenAddress: campaignV3.rewardToken,
22
- startTimestamp: campaignV3.startTimestamp.toString(),
23
- type: campaignV3.campaignType,
24
- subType: campaignV3.campaignSubType,
25
- };
26
- });
27
- log.info(`syncing ${campaigns.length} campaigns to sync on ${chain.name}...`);
28
- const { success, fail } = await CampaignService.createMany(campaigns);
29
- log.info(`${success} campaigns synced successfully on ${chain.name}`);
30
- log.info(`${fail} campaigns failed to sync on ${chain.name}`);
31
- }
32
- return;
33
- }, { headers: AuthorizationHeadersDto, beforeHandle: EngineGuard });
@@ -1,43 +0,0 @@
1
- import { type Elysia } from "elysia";
2
- import { type RewardsAmountQueryOutput } from "../../utils/queries/rewardsAmount";
3
- export declare const query: import("@sinclair/typebox").TObject<{
4
- campaignId: import("@sinclair/typebox").TString;
5
- chainId: import("@sinclair/typebox").TNumber;
6
- }>;
7
- declare const _default: (app: Elysia) => Elysia<"", false, {
8
- decorator: {};
9
- store: {};
10
- derive: {};
11
- resolve: {};
12
- }, {
13
- type: {};
14
- error: {};
15
- }, {
16
- schema: {};
17
- macro: {};
18
- macroFn: {};
19
- }, {
20
- campaignReport: {
21
- get: {
22
- body: unknown;
23
- params: {};
24
- query: {
25
- chainId: number;
26
- campaignId: string;
27
- };
28
- headers: unknown;
29
- response: {
30
- 200: RewardsAmountQueryOutput;
31
- };
32
- };
33
- };
34
- }, {
35
- derive: {};
36
- resolve: {};
37
- schema: {};
38
- }, {
39
- derive: {};
40
- resolve: {};
41
- schema: {};
42
- }>;
43
- export default _default;
@@ -1,22 +0,0 @@
1
- import { engineDbClient } from "../../utils/prisma";
2
- import { t } from "elysia";
3
- import checkQueryChainIdValidity from "../../hooks/checkQueryChainIdValidity";
4
- import { merklChainDataWithCache } from "../../libs/merklChainData";
5
- import { LATEST_CAMPAIGNS_REWARDS } from "../../utils/queries/rewardsAmount";
6
- export const query = t.Object({
7
- campaignId: t.String(),
8
- chainId: t.Numeric(),
9
- });
10
- export default (app) => app.use(checkQueryChainIdValidity()).get("/campaignReport", async ({ query }) => {
11
- const campaignId = query.campaignId;
12
- const chainId = query.chainId;
13
- const currentRoot = (await merklChainDataWithCache(chainId)).merkleRoot;
14
- if (!currentRoot) {
15
- return [];
16
- }
17
- const rewardsData = await engineDbClient.$queryRaw(LATEST_CAMPAIGNS_REWARDS(chainId, currentRoot, [campaignId]));
18
- return rewardsData;
19
- }, {
20
- query,
21
- tags: ["Campaigns"],
22
- });
@@ -1,41 +0,0 @@
1
- import type Elysia from "elysia";
2
- declare const _default: (app: Elysia) => Elysia<"", false, {
3
- decorator: {};
4
- store: {};
5
- derive: {};
6
- resolve: {};
7
- }, {
8
- type: {};
9
- error: {};
10
- }, {
11
- schema: {};
12
- macro: {};
13
- macroFn: {};
14
- }, {
15
- campaignInfo: {
16
- post: {
17
- body: {
18
- [x: string]: string[];
19
- };
20
- params: {};
21
- query: unknown;
22
- headers: unknown;
23
- response: {
24
- 200: {
25
- [x: string]: Record<string, any>;
26
- } | {
27
- error: string;
28
- };
29
- };
30
- };
31
- };
32
- }, {
33
- derive: {};
34
- resolve: {};
35
- schema: {};
36
- }, {
37
- derive: {};
38
- resolve: {};
39
- schema: {};
40
- }>;
41
- export default _default;
@@ -1,54 +0,0 @@
1
- import { Redis } from "../../cache";
2
- import { engineDbClient } from "../../utils/prisma";
3
- import { t } from "elysia";
4
- export default (app) => app.post("/campaignInfo", async ({ body }) => {
5
- if (!body)
6
- return { error: "Invalid body" };
7
- const chainIds = Object.keys(body);
8
- const campaigns = await engineDbClient.campaigns.findMany({
9
- where: {
10
- OR: chainIds.map(chainId => {
11
- return {
12
- chainId: Number.parseInt(chainId),
13
- campaignId: {
14
- in: body[Number.parseInt(chainId)],
15
- },
16
- };
17
- }),
18
- },
19
- });
20
- const reducedCampaigns = campaigns.reduce((acc, campaign) => {
21
- acc[campaign.chainId] = acc[campaign.chainId] || {};
22
- acc[campaign.chainId][campaign.campaignId] = campaign;
23
- return acc;
24
- }, {});
25
- const chainIdsWithCampaigns = Object.keys(reducedCampaigns).map(chainId => Number.parseInt(chainId));
26
- const dynamicData = (await Redis.getManyWithArgs("Campaigns", chainIdsWithCampaigns)).reduce((prev, allData, index) => {
27
- if (!!allData) {
28
- prev[chainIdsWithCampaigns[index]] = Object.keys(allData).reduce((acc, curr) => {
29
- if (curr.split("_")[0] === "1") {
30
- acc[curr] = allData[curr];
31
- }
32
- return acc;
33
- }, {});
34
- }
35
- return prev;
36
- }, {});
37
- for (const [chainId, data] of Object.entries(dynamicData)) {
38
- for (const [, campaignsDynamicData] of Object.entries(data)) {
39
- for (const [campaignId, campaignData] of Object.entries(campaignsDynamicData)) {
40
- if (!!reducedCampaigns[chainId][campaignId]) {
41
- reducedCampaigns[chainId][campaignId] = {
42
- ...reducedCampaigns[chainId][campaignId],
43
- type: campaignData.type,
44
- typeInfo: campaignData.typeInfo,
45
- };
46
- }
47
- }
48
- }
49
- }
50
- return reducedCampaigns;
51
- }, {
52
- body: t.Record(t.String(), t.Array(t.String())),
53
- tags: ["Campaigns"],
54
- });
@@ -1,43 +0,0 @@
1
- import { type Elysia } from "elysia";
2
- export declare const query: import("@sinclair/typebox").TObject<{
3
- chainId: import("@sinclair/typebox").TNumber;
4
- minIndex: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
5
- }>;
6
- declare const _default: (app: Elysia) => Elysia<"", false, {
7
- decorator: {};
8
- store: {};
9
- derive: {};
10
- resolve: {};
11
- }, {
12
- type: {};
13
- error: {};
14
- }, {
15
- schema: {};
16
- macro: {};
17
- macroFn: {};
18
- }, {
19
- index: {
20
- get: {
21
- body: unknown;
22
- params: {};
23
- query: {
24
- minIndex?: number | undefined;
25
- chainId: number;
26
- };
27
- headers: unknown;
28
- response: {
29
- [x: string]: any;
30
- 200: any;
31
- };
32
- };
33
- };
34
- }, {
35
- derive: {};
36
- resolve: {};
37
- schema: {};
38
- }, {
39
- derive: {};
40
- resolve: {};
41
- schema: {};
42
- }>;
43
- export default _default;
@@ -1,28 +0,0 @@
1
- import checkQueryChainIdValidity from "../../../hooks/checkQueryChainIdValidity";
2
- import { staticCampaignWithCache } from "../../../libs/staticCampaigns";
3
- import { engineDbClient } from "../../../utils/prisma";
4
- import { t } from "elysia";
5
- export const query = t.Object({
6
- chainId: t.Numeric(),
7
- minIndex: t.Optional(t.Numeric()),
8
- });
9
- export default (app) => app.use(checkQueryChainIdValidity()).get("", async ({ query }) => {
10
- const chainId = query.chainId;
11
- const minIndex = query.minIndex;
12
- if (!!minIndex || minIndex === 0) {
13
- // Query from minIndex
14
- return await engineDbClient.campaigns.findMany({
15
- where: {
16
- chainId: chainId,
17
- index: {
18
- gte: minIndex,
19
- },
20
- },
21
- });
22
- }
23
- // Query all campaigns
24
- return await staticCampaignWithCache(chainId);
25
- }, {
26
- query,
27
- tags: ["Campaigns"],
28
- });
@@ -1,44 +0,0 @@
1
- import { type Elysia } from "elysia";
2
- export declare const query: import("@sinclair/typebox").TObject<{
3
- token: import("@sinclair/typebox").TString;
4
- chainId: import("@sinclair/typebox").TNumber;
5
- }>;
6
- declare const _default: (app: Elysia) => Elysia<"", false, {
7
- decorator: {};
8
- store: {};
9
- derive: {};
10
- resolve: {};
11
- }, {
12
- type: {};
13
- error: {};
14
- }, {
15
- schema: {};
16
- macro: {};
17
- macroFn: {};
18
- }, {
19
- tokenUnclaimed: {
20
- get: {
21
- body: unknown;
22
- params: {};
23
- query: {
24
- token: string;
25
- chainId: number;
26
- };
27
- headers: unknown;
28
- response: {
29
- 200: {
30
- message: string;
31
- };
32
- };
33
- };
34
- };
35
- }, {
36
- derive: {};
37
- resolve: {};
38
- schema: {};
39
- }, {
40
- derive: {};
41
- resolve: {};
42
- schema: {};
43
- }>;
44
- export default _default;
@@ -1,24 +0,0 @@
1
- // import type { MerklChainId } from "@sdk";
2
- import { t } from "elysia";
3
- import checkQueryChainIdValidity from "../../hooks/checkQueryChainIdValidity";
4
- // import { merklChainDataWithCache } from "../../libs/merklChainData";
5
- // import { MerkleRootNotFound } from "../../utils/error";
6
- // import { prisma } from "../../utils/prisma";
7
- // import { UNCLAIMED_BY_TOKEN } from "../../utils/queries/unclaimed";
8
- export const query = t.Object({
9
- token: t.String(),
10
- chainId: t.Numeric(),
11
- });
12
- export default (app) => app.use(checkQueryChainIdValidity()).get("/tokenUnclaimed", async ({ query }) => {
13
- // const token = query.token;
14
- // const chainId = query.chainId as MerklChainId;
15
- // const currentRoot = (await merklChainDataWithCache(chainId)).merkleRoot;
16
- // if (!currentRoot) throw new MerkleRootNotFound(chainId);
17
- // return await prisma.$queryRaw(UNCLAIMED_BY_TOKEN(currentRoot, chainId, token));
18
- return {
19
- message: "Route removed for performance improvement, please reach out to the team for more information.",
20
- };
21
- }, {
22
- query,
23
- tags: ["Rewards"],
24
- });
@@ -1,2 +0,0 @@
1
- import { Prisma } from "../../../database/engine/.generated";
2
- export declare const CAMPAIGNS_BY_MAIN_PARAMETER: (chainId: number, mainParameter: string) => Prisma.Sql;
@@ -1,23 +0,0 @@
1
- import { Prisma } from "../../../database/engine/.generated";
2
- export const CAMPAIGNS_BY_MAIN_PARAMETER = (chainId, mainParameter) => Prisma.sql `
3
- SELECT
4
- campaigns."campaignId",
5
- campaigns."campaignType",
6
- campaigns."rewardToken",
7
- tokens."symbol" as "rewardTokenSymbol",
8
- CAST(campaigns."amount" as numeric) / (10^campaigns."decimalsRewardToken") as "amountDecimal",
9
- campaigns."startTimestamp",
10
- campaigns."endTimestamp"
11
- FROM (
12
- SELECT
13
- "chainId", "campaignId", "campaignType", "rewardToken", "amount", "startTimestamp", "endTimestamp", CAST("campaignParameters"->>'decimalsRewardToken' as numeric) as "decimalsRewardToken"
14
- FROM "Campaigns"
15
- WHERE
16
- "chainId" = ${chainId} AND
17
- "campaignType" != 0 AND
18
- LOWER("mainParameter") = LOWER(${mainParameter})
19
- ORDER BY "endTimestamp" DESC
20
- ) as campaigns
21
- INNER JOIN "Tokens" as tokens
22
- ON tokens."address"=campaigns."rewardToken" AND tokens."chainId"=campaigns."chainId"
23
- `;
@@ -1,8 +0,0 @@
1
- import { Prisma } from "../../../database/engine/.generated";
2
- export declare const CLAIMS_OVER_TIME: (chainId: number, campaignId: string) => Prisma.Sql;
3
- export declare const CLAIMS_OVER_TIME_GROUPED: (chainId: number, campaignId: string) => Prisma.Sql;
4
- export declare const CLAIMS_OVER_TIME_V2: (chainId: number, campaignId: string) => Prisma.Sql;
5
- export declare const CLAIMS_FOR_CREATOR_TAG: (chainIds: number[], user: string, creatorTag: string) => Prisma.Sql;
6
- export declare const CLAIMS_FOR_CREATOR_TAG_GROUPED: (chainIds: number[], user: string, creatorTag: string) => Prisma.Sql;
7
- export declare const CLAIMS_FOR_USER: (chainIds: number[], user: string) => Prisma.Sql;
8
- export declare const CLAIMS_FOR_USER_GROUPED: (chainIds: number[], user: string) => Prisma.Sql;
@@ -1,111 +0,0 @@
1
- import { Prisma } from "../../../database/engine/.generated";
2
- export const CLAIMS_OVER_TIME = (chainId, campaignId) => Prisma.sql `
3
- SELECT timestamp, recipient, reason, claimed
4
- FROM "ClaimsOverTime"
5
- WHERE
6
- "chainId"=${chainId} AND
7
- "campaignId"=${campaignId}
8
- ORDER BY timestamp ASC
9
- `;
10
- export const CLAIMS_OVER_TIME_GROUPED = (chainId, campaignId) => Prisma.sql `
11
- SELECT timestamp, recipient, SUM(CAST(claimed as numeric)) as claimed
12
- FROM "ClaimsOverTime"
13
- WHERE
14
- "chainId"=${chainId} AND
15
- "campaignId"=${campaignId}
16
- GROUP BY timestamp, recipient
17
- ORDER BY timestamp ASC
18
- `;
19
- export const CLAIMS_OVER_TIME_V2 = (chainId, campaignId) => Prisma.sql `
20
-
21
- SELECT cot.timestamp, cot.recipient, cot.reason, cot.claimed, COALESCE(cc.label, 'unknown') FROM (
22
- SELECT *
23
- FROM "ClaimsOverTime"
24
- WHERE
25
- "chainId"=${chainId} AND
26
- "campaignId"=${campaignId}
27
- ) as cot
28
- LEFT JOIN (
29
- SELECT "campaignId", "creator", "mainParameter"
30
- FROM "Campaigns"
31
- WHERE
32
- "chainId"=${chainId} AND
33
- "campaignId"=${campaignId}
34
- ) as campaigns
35
- ON cot."campaignId"=campaigns."campaignId"
36
- LEFT JOIN
37
- "CampaignCreators" as cc
38
- ON campaigns.creator=cc.address
39
- `;
40
- export const CLAIMS_FOR_CREATOR_TAG = (chainIds, user, creatorTag) => Prisma.sql `
41
- SELECT cc."chainId", cc.timestamp, cc.recipient, cc.reason, cc."rewardToken" as token, cc."campaignId", t.symbol, t.decimals, cc.claimed FROM (
42
- SELECT "chainId", timestamp, recipient, reason, "campaignId", "rewardToken", CAST(claimed AS text) as claimed
43
- FROM "ClaimsOverTime"
44
- WHERE
45
- "chainId" IN (${Prisma.join(chainIds)}) AND
46
- "recipient"=${user} AND
47
- "campaignId" IN (
48
- SELECT
49
- "campaignId"
50
- FROM "Campaigns"
51
- WHERE
52
- "campaignType" != 0 AND
53
- "chainId" IN (${Prisma.join(chainIds)}) AND
54
- creator IN (
55
- SELECT address from "CampaignCreators" WHERE tags LIKE ${`%${creatorTag}%`}
56
- )
57
- )
58
- ) as cc
59
- LEFT JOIN "Tokens" as t
60
- ON cc."chainId"=t."chainId" AND cc."rewardToken"=t.address
61
- ORDER BY cc.timestamp ASC
62
- `;
63
- export const CLAIMS_FOR_CREATOR_TAG_GROUPED = (chainIds, user, creatorTag) => Prisma.sql `
64
- SELECT cc."chainId", cc.timestamp, cc.recipient, cc."campaignId", cc."rewardToken" as token, t.symbol, t.decimals, cc.claimed FROM (
65
- SELECT "chainId", timestamp, recipient, "rewardToken", "campaignId", CAST(SUM(CAST(claimed AS numeric)) AS text) as claimed
66
- FROM "ClaimsOverTime"
67
- WHERE
68
- "chainId" IN (${Prisma.join(chainIds)}) AND
69
- "recipient"=${user} AND
70
- "campaignId" IN (
71
- SELECT
72
- "campaignId"
73
- FROM "Campaigns"
74
- WHERE
75
- "campaignType" != 0 AND
76
- "chainId" IN (${Prisma.join(chainIds)}) AND
77
- creator IN (
78
- SELECT address from "CampaignCreators" WHERE tags LIKE ${`%${creatorTag}%`}
79
- )
80
- )
81
- GROUP BY timestamp, recipient, "chainId", "rewardToken", "campaignId"
82
- ) as cc
83
- LEFT JOIN "Tokens" as t
84
- ON cc."chainId"=t."chainId" AND cc."rewardToken"=t.address
85
- ORDER BY cc.timestamp ASC
86
- `;
87
- export const CLAIMS_FOR_USER = (chainIds, user) => Prisma.sql `
88
- SELECT cc."chainId", cc.timestamp, cc.recipient, cc.reason, cc."campaignId", cc."rewardToken" as token, t.symbol, t.decimals, cc.claimed FROM (
89
- SELECT "chainId", timestamp, recipient, reason, "campaignId", "rewardToken", CAST(claimed AS text) as claimed
90
- FROM "ClaimsOverTime"
91
- WHERE
92
- "chainId" IN (${Prisma.join(chainIds)}) AND
93
- "recipient"=${user}
94
- ) as cc
95
- LEFT JOIN "Tokens" as t
96
- ON cc."chainId"=t."chainId" AND cc."rewardToken"=t.address
97
- ORDER BY cc.timestamp ASC
98
- `;
99
- export const CLAIMS_FOR_USER_GROUPED = (chainIds, user) => Prisma.sql `
100
- SELECT cc."chainId", cc.timestamp, cc.recipient, cc."campaignId", cc."rewardToken" as token, t.symbol, t.decimals, cc.claimed FROM (
101
- SELECT "chainId", timestamp, recipient, "campaignId", "rewardToken", CAST(SUM(CAST(claimed as numeric)) as text) as claimed
102
- FROM "ClaimsOverTime"
103
- WHERE
104
- "chainId" IN (${Prisma.join(chainIds)}) AND
105
- "recipient"=${user}
106
- GROUP BY timestamp, recipient, "chainId", "rewardToken", "campaignId"
107
- ) as cc
108
- LEFT JOIN "Tokens" as t
109
- ON cc."chainId"=t."chainId" AND cc."rewardToken"=t.address
110
- ORDER BY cc.timestamp ASC
111
- `;
@@ -1,10 +0,0 @@
1
- import { Prisma } from "../../../database/engine/.generated";
2
- export type EndingCampaigns = {
3
- chainId: number;
4
- creator: string;
5
- symbol: string;
6
- amount: number;
7
- endTimestamp: number;
8
- };
9
- export declare const ENDING_CAMPAIGNS: (maxEndDate: number, minStartDate: number, minEndDate: number) => Prisma.Sql;
10
- export declare const NON_RENEWED_CAMPAIGNS: (maxEndDate: number, minStartDate: number, minEndDate: number) => Prisma.Sql;
@@ -1,21 +0,0 @@
1
- import { Prisma } from "../../../database/engine/.generated";
2
- export const ENDING_CAMPAIGNS = (maxEndDate, minStartDate, minEndDate) => Prisma.sql `
3
- SELECT c."chainId", c.creator, t.symbol, CAST(c.amount as numeric) / 10^t.decimals as amount, c."endTimestamp" FROM (
4
- SELECT * FROM "Campaigns" WHERE "endTimestamp"<=${maxEndDate}
5
- AND "startTimestamp">=${minStartDate} AND "endTimestamp">=${minEndDate}
6
- ) as c
7
- INNER JOIN "Tokens" as t
8
- ON c."chainId"=t."chainId" AND c."rewardToken"=t.address
9
- `;
10
- export const NON_RENEWED_CAMPAIGNS = (maxEndDate, minStartDate, minEndDate) => Prisma.sql `
11
- SELECT c."chainId", c.creator, t.symbol, CAST(c.amount as numeric) / 10^t.decimals as amount, c."endTimestamp", c."mainParameter", cf."campaignId" FROM (
12
- SELECT * FROM "Campaigns" WHERE "endTimestamp"<=${maxEndDate}
13
- AND "startTimestamp">=${minStartDate} AND "endTimestamp">=${minEndDate}
14
- ) as c
15
- LEFT JOIN (
16
- SELECT DISTINCT ON (c."chainId", c."mainParameter", c."rewardToken") * FROM "Campaigns" as c WHERE c."endTimestamp">${maxEndDate}
17
- ) as cf
18
- ON c."chainId"=cf."chainId" AND c."mainParameter"=cf."mainParameter" AND c."rewardToken"=cf."rewardToken"
19
- INNER JOIN "Tokens" as t
20
- ON c."chainId"=t."chainId" AND c."rewardToken"=t.address
21
- `;
@@ -1,3 +0,0 @@
1
- import { Prisma } from "../../../database/engine/.generated";
2
- export declare const FUTURE_CAMPAIGNS_FOR_CHAIN: (chainId: number, now: number) => Prisma.Sql;
3
- export declare const FUTURE_CAMPAIGNS: (now: number) => Prisma.Sql;
@@ -1,19 +0,0 @@
1
- import { Prisma } from "../../../database/engine/.generated";
2
- export const FUTURE_CAMPAIGNS_FOR_CHAIN = (chainId, now) => Prisma.sql `
3
- SELECT
4
- *
5
- FROM "Campaigns"
6
- WHERE
7
- "chainId" = ${chainId} AND
8
- "startTimestamp" >= ${now} AND
9
- "campaignType" != 0
10
-
11
- `;
12
- export const FUTURE_CAMPAIGNS = (now) => Prisma.sql `
13
- SELECT
14
- *
15
- FROM "Campaigns"
16
- WHERE
17
- "startTimestamp" >= ${now} AND
18
- "campaignType" != 0
19
- `;
@@ -1,5 +0,0 @@
1
- import { Prisma } from "../../../database/engine/.generated";
2
- export type CampaignsForMainParameterQueryOutput = {
3
- campaignId: string;
4
- }[];
5
- export declare const CAMPAIGNS_FOR_MAIN_PARAMETER: (chainId: number, mainParameter: string) => Prisma.Sql;