@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.
- package/dist/src/backgroundJobs/index.js +0 -4
- package/dist/src/backgroundJobs/jobs/opportunityUpdater.js +3 -0
- package/dist/src/eden/index.d.ts +657 -444
- package/dist/src/entities/opportunity.d.ts +3 -1
- package/dist/src/index.d.ts +136 -117
- package/dist/src/jobs/etl/prices.js +9 -2
- package/dist/src/libs/deprecated-merklv3/index.js +1 -1
- package/dist/src/modules/v4/boost/boost.controller.js +1 -1
- package/dist/src/modules/v4/cache/cache.repository.d.ts +1 -0
- package/dist/src/modules/v4/cache/cache.repository.js +19 -0
- package/dist/src/modules/v4/campaign/campaign.service.d.ts +0 -5
- package/dist/src/modules/v4/campaign/campaign.service.js +0 -5
- package/dist/src/modules/v4/opportunity/opportunity.controller.d.ts +120 -57
- package/dist/src/modules/v4/opportunity/opportunity.controller.js +1 -1
- package/dist/src/modules/v4/opportunity/opportunity.converter.d.ts +9 -0
- package/dist/src/modules/v4/opportunity/opportunity.converter.js +153 -0
- package/dist/src/modules/v4/opportunity/opportunity.model.d.ts +3 -1
- package/dist/src/modules/v4/opportunity/opportunity.model.js +2 -0
- package/dist/src/modules/v4/opportunity/opportunity.repository.d.ts +18 -210
- package/dist/src/modules/v4/opportunity/opportunity.repository.js +76 -113
- package/dist/src/modules/v4/opportunity/opportunity.service.d.ts +219 -64
- package/dist/src/modules/v4/opportunity/opportunity.service.js +19 -21
- package/dist/src/modules/v4/reward/{subservices/converter.d.ts → reward.converter.d.ts} +3 -3
- package/dist/src/modules/v4/reward/{subservices/converter.js → reward.converter.js} +1 -1
- package/dist/src/modules/v4/router.d.ts +120 -57
- package/dist/src/routes/v3/app.js +1 -0
- package/dist/src/routes/v3/blacklist.js +1 -0
- package/dist/src/routes/v3/campaign/delay.js +1 -0
- package/dist/src/routes/v3/campaignClaims.d.ts +3 -1
- package/dist/src/routes/v3/campaignClaims.js +4 -13
- package/dist/src/routes/v3/campaignUnclaimed.js +1 -0
- package/dist/src/routes/v3/campaignsForMainParameter.d.ts +9 -1
- package/dist/src/routes/v3/campaignsForMainParameter.js +17 -7
- package/dist/src/routes/v3/campaignsRewardsReport.js +1 -0
- package/dist/src/routes/v3/claims.d.ts +3 -1
- package/dist/src/routes/v3/claims.js +4 -33
- package/dist/src/routes/v3/opportunity.d.ts +7 -7
- package/dist/src/routes/v3/opportunity.js +12 -13
- package/dist/src/routes/v3/recipients.js +1 -0
- package/dist/src/routes/v3/rewards.js +2 -1
- package/dist/src/routes/v3/rewardsReport.js +1 -0
- package/dist/src/routes/v3/router.d.ts +16 -60
- package/dist/src/routes/v3/router.js +0 -6
- package/dist/src/routes/v3/userRewards.js +2 -1
- package/dist/src/types/returnTypes.d.ts +0 -8
- package/dist/src/utils/camelToKebabCase.d.ts +2 -0
- package/dist/src/utils/camelToKebabCase.js +9 -0
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/src/backgroundJobs/jobs/priceUpdater.d.ts +0 -37
- package/dist/src/backgroundJobs/jobs/priceUpdater.js +0 -21
- package/dist/src/backgroundJobs/jobs/sync.d.ts +0 -40
- package/dist/src/backgroundJobs/jobs/sync.js +0 -33
- package/dist/src/routes/v3/campaignReport.d.ts +0 -43
- package/dist/src/routes/v3/campaignReport.js +0 -22
- package/dist/src/routes/v3/campaignsInfo.d.ts +0 -41
- package/dist/src/routes/v3/campaignsInfo.js +0 -54
- package/dist/src/routes/v3/exports/campaigns.d.ts +0 -43
- package/dist/src/routes/v3/exports/campaigns.js +0 -28
- package/dist/src/routes/v3/tokenUnclaimed.d.ts +0 -44
- package/dist/src/routes/v3/tokenUnclaimed.js +0 -24
- package/dist/src/utils/queries/campaignsForMainParameter.d.ts +0 -2
- package/dist/src/utils/queries/campaignsForMainParameter.js +0 -23
- package/dist/src/utils/queries/claimsOverTime.d.ts +0 -8
- package/dist/src/utils/queries/claimsOverTime.js +0 -111
- package/dist/src/utils/queries/endingCampaigns.d.ts +0 -10
- package/dist/src/utils/queries/endingCampaigns.js +0 -21
- package/dist/src/utils/queries/futureCampaigns.d.ts +0 -3
- package/dist/src/utils/queries/futureCampaigns.js +0 -19
- package/dist/src/utils/queries/mainParameterCampaigns.d.ts +0 -5
- package/dist/src/utils/queries/mainParameterCampaigns.js +0 -11
- package/dist/src/utils/queries/rewardsAmount.d.ts +0 -10
- package/dist/src/utils/queries/rewardsAmount.js +0 -106
- package/dist/src/utils/queries/unclaimed.d.ts +0 -11
- package/dist/src/utils/queries/unclaimed.js +0 -81
package/package.json
CHANGED
@@ -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,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,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
|
-
`;
|