@merkl/api 0.13.8 → 0.13.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/eden/index.d.ts +100 -5
- package/dist/src/index.d.ts +24 -1
- package/dist/src/modules/v4/blacklist/blacklist.repository.js +3 -0
- package/dist/src/modules/v4/campaign/campaign.service.js +12 -0
- package/dist/src/modules/v4/merklRoot/merklRoot.controller.d.ts +1 -0
- package/dist/src/modules/v4/merklRoot/merklRoot.repository.d.ts +1 -0
- package/dist/src/modules/v4/merklRoot/merklRoot.repository.js +2 -3
- package/dist/src/modules/v4/merklRoot/merklRoot.service.d.ts +7 -2
- package/dist/src/modules/v4/reward/reward.controller.d.ts +1 -1
- package/dist/src/modules/v4/reward/reward.service.d.ts +1 -1
- package/dist/src/modules/v4/router.d.ts +24 -1
- package/dist/src/modules/v4/status/status.controller.d.ts +23 -0
- package/dist/src/modules/v4/status/status.controller.js +5 -1
- package/dist/src/modules/v4/status/status.service.d.ts +7 -0
- package/dist/src/modules/v4/status/status.service.js +16 -1
- package/dist/tsconfig.package.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/src/eden/index.d.ts
CHANGED
@@ -1448,7 +1448,7 @@ declare const eden: {
|
|
1448
1448
|
fetch?: RequestInit | undefined;
|
1449
1449
|
}) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
1450
1450
|
200: {
|
1451
|
-
[x:
|
1451
|
+
[x: number]: {
|
1452
1452
|
rewardCount: number;
|
1453
1453
|
breakdownCount: number;
|
1454
1454
|
};
|
@@ -2265,6 +2265,7 @@ declare const eden: {
|
|
2265
2265
|
live: string;
|
2266
2266
|
tree: string;
|
2267
2267
|
lastTree: string;
|
2268
|
+
endOfDisputePeriod: number;
|
2268
2269
|
};
|
2269
2270
|
};
|
2270
2271
|
}>>;
|
@@ -2696,6 +2697,23 @@ declare const eden: {
|
|
2696
2697
|
}[];
|
2697
2698
|
}>>;
|
2698
2699
|
};
|
2700
|
+
status: {
|
2701
|
+
get: (options?: {
|
2702
|
+
headers?: Record<string, unknown> | undefined;
|
2703
|
+
query?: Record<string, unknown> | undefined;
|
2704
|
+
fetch?: RequestInit | undefined;
|
2705
|
+
} | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
2706
|
+
200: {
|
2707
|
+
[x: number]: {
|
2708
|
+
live: string;
|
2709
|
+
tree: string;
|
2710
|
+
lastTree: string;
|
2711
|
+
endOfDisputePeriod: number;
|
2712
|
+
delayed: Awaited<ReturnType<typeof import("../modules/v4/status").StatusService.findManyDelay>>;
|
2713
|
+
};
|
2714
|
+
};
|
2715
|
+
}>>;
|
2716
|
+
};
|
2699
2717
|
};
|
2700
2718
|
};
|
2701
2719
|
liquidity: {
|
@@ -4472,7 +4490,7 @@ declare const eden: {
|
|
4472
4490
|
fetch?: RequestInit | undefined;
|
4473
4491
|
}) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
4474
4492
|
200: {
|
4475
|
-
[x:
|
4493
|
+
[x: number]: {
|
4476
4494
|
rewardCount: number;
|
4477
4495
|
breakdownCount: number;
|
4478
4496
|
};
|
@@ -5289,6 +5307,7 @@ declare const eden: {
|
|
5289
5307
|
live: string;
|
5290
5308
|
tree: string;
|
5291
5309
|
lastTree: string;
|
5310
|
+
endOfDisputePeriod: number;
|
5292
5311
|
};
|
5293
5312
|
};
|
5294
5313
|
}>>;
|
@@ -5720,6 +5739,23 @@ declare const eden: {
|
|
5720
5739
|
}[];
|
5721
5740
|
}>>;
|
5722
5741
|
};
|
5742
|
+
status: {
|
5743
|
+
get: (options?: {
|
5744
|
+
headers?: Record<string, unknown> | undefined;
|
5745
|
+
query?: Record<string, unknown> | undefined;
|
5746
|
+
fetch?: RequestInit | undefined;
|
5747
|
+
} | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
5748
|
+
200: {
|
5749
|
+
[x: number]: {
|
5750
|
+
live: string;
|
5751
|
+
tree: string;
|
5752
|
+
lastTree: string;
|
5753
|
+
endOfDisputePeriod: number;
|
5754
|
+
delayed: Awaited<ReturnType<typeof import("../modules/v4/status").StatusService.findManyDelay>>;
|
5755
|
+
};
|
5756
|
+
};
|
5757
|
+
}>>;
|
5758
|
+
};
|
5723
5759
|
};
|
5724
5760
|
};
|
5725
5761
|
liquidity: {
|
@@ -8707,7 +8743,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
8707
8743
|
};
|
8708
8744
|
response: {
|
8709
8745
|
200: {
|
8710
|
-
[x:
|
8746
|
+
[x: number]: {
|
8711
8747
|
rewardCount: number;
|
8712
8748
|
breakdownCount: number;
|
8713
8749
|
};
|
@@ -9516,6 +9552,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
9516
9552
|
live: string;
|
9517
9553
|
tree: string;
|
9518
9554
|
lastTree: string;
|
9555
|
+
endOfDisputePeriod: number;
|
9519
9556
|
};
|
9520
9557
|
};
|
9521
9558
|
};
|
@@ -10061,6 +10098,28 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
10061
10098
|
};
|
10062
10099
|
};
|
10063
10100
|
};
|
10101
|
+
} & {
|
10102
|
+
delay: {
|
10103
|
+
status: {
|
10104
|
+
get: {
|
10105
|
+
body: unknown;
|
10106
|
+
params: {};
|
10107
|
+
query: unknown;
|
10108
|
+
headers: unknown;
|
10109
|
+
response: {
|
10110
|
+
200: {
|
10111
|
+
[x: number]: {
|
10112
|
+
live: string;
|
10113
|
+
tree: string;
|
10114
|
+
lastTree: string;
|
10115
|
+
endOfDisputePeriod: number;
|
10116
|
+
delayed: Awaited<ReturnType<typeof import("../modules/v4/status").StatusService.findManyDelay>>;
|
10117
|
+
};
|
10118
|
+
};
|
10119
|
+
};
|
10120
|
+
};
|
10121
|
+
};
|
10122
|
+
};
|
10064
10123
|
};
|
10065
10124
|
};
|
10066
10125
|
} & {
|
@@ -12829,7 +12888,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
12829
12888
|
fetch?: RequestInit | undefined;
|
12830
12889
|
}) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
12831
12890
|
200: {
|
12832
|
-
[x:
|
12891
|
+
[x: number]: {
|
12833
12892
|
rewardCount: number;
|
12834
12893
|
breakdownCount: number;
|
12835
12894
|
};
|
@@ -13646,6 +13705,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
13646
13705
|
live: string;
|
13647
13706
|
tree: string;
|
13648
13707
|
lastTree: string;
|
13708
|
+
endOfDisputePeriod: number;
|
13649
13709
|
};
|
13650
13710
|
};
|
13651
13711
|
}>>;
|
@@ -14077,6 +14137,23 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
14077
14137
|
}[];
|
14078
14138
|
}>>;
|
14079
14139
|
};
|
14140
|
+
status: {
|
14141
|
+
get: (options?: {
|
14142
|
+
headers?: Record<string, unknown> | undefined;
|
14143
|
+
query?: Record<string, unknown> | undefined;
|
14144
|
+
fetch?: RequestInit | undefined;
|
14145
|
+
} | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
14146
|
+
200: {
|
14147
|
+
[x: number]: {
|
14148
|
+
live: string;
|
14149
|
+
tree: string;
|
14150
|
+
lastTree: string;
|
14151
|
+
endOfDisputePeriod: number;
|
14152
|
+
delayed: Awaited<ReturnType<typeof import("../modules/v4/status").StatusService.findManyDelay>>;
|
14153
|
+
};
|
14154
|
+
};
|
14155
|
+
}>>;
|
14156
|
+
};
|
14080
14157
|
};
|
14081
14158
|
};
|
14082
14159
|
liquidity: {
|
@@ -15853,7 +15930,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
15853
15930
|
fetch?: RequestInit | undefined;
|
15854
15931
|
}) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
15855
15932
|
200: {
|
15856
|
-
[x:
|
15933
|
+
[x: number]: {
|
15857
15934
|
rewardCount: number;
|
15858
15935
|
breakdownCount: number;
|
15859
15936
|
};
|
@@ -16670,6 +16747,7 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
16670
16747
|
live: string;
|
16671
16748
|
tree: string;
|
16672
16749
|
lastTree: string;
|
16750
|
+
endOfDisputePeriod: number;
|
16673
16751
|
};
|
16674
16752
|
};
|
16675
16753
|
}>>;
|
@@ -17101,6 +17179,23 @@ export declare const MerklApi: (domain: string | import("elysia").default<"", fa
|
|
17101
17179
|
}[];
|
17102
17180
|
}>>;
|
17103
17181
|
};
|
17182
|
+
status: {
|
17183
|
+
get: (options?: {
|
17184
|
+
headers?: Record<string, unknown> | undefined;
|
17185
|
+
query?: Record<string, unknown> | undefined;
|
17186
|
+
fetch?: RequestInit | undefined;
|
17187
|
+
} | undefined) => Promise<import("@elysiajs/eden").Treaty.TreatyResponse<{
|
17188
|
+
200: {
|
17189
|
+
[x: number]: {
|
17190
|
+
live: string;
|
17191
|
+
tree: string;
|
17192
|
+
lastTree: string;
|
17193
|
+
endOfDisputePeriod: number;
|
17194
|
+
delayed: Awaited<ReturnType<typeof import("../modules/v4/status").StatusService.findManyDelay>>;
|
17195
|
+
};
|
17196
|
+
};
|
17197
|
+
}>>;
|
17198
|
+
};
|
17104
17199
|
};
|
17105
17200
|
};
|
17106
17201
|
liquidity: {
|
package/dist/src/index.d.ts
CHANGED
@@ -1970,7 +1970,7 @@ declare const app: Elysia<"", false, {
|
|
1970
1970
|
};
|
1971
1971
|
response: {
|
1972
1972
|
200: {
|
1973
|
-
[x:
|
1973
|
+
[x: number]: {
|
1974
1974
|
rewardCount: number;
|
1975
1975
|
breakdownCount: number;
|
1976
1976
|
};
|
@@ -2779,6 +2779,7 @@ declare const app: Elysia<"", false, {
|
|
2779
2779
|
live: string;
|
2780
2780
|
tree: string;
|
2781
2781
|
lastTree: string;
|
2782
|
+
endOfDisputePeriod: number;
|
2782
2783
|
};
|
2783
2784
|
};
|
2784
2785
|
};
|
@@ -3324,6 +3325,28 @@ declare const app: Elysia<"", false, {
|
|
3324
3325
|
};
|
3325
3326
|
};
|
3326
3327
|
};
|
3328
|
+
} & {
|
3329
|
+
delay: {
|
3330
|
+
status: {
|
3331
|
+
get: {
|
3332
|
+
body: unknown;
|
3333
|
+
params: {};
|
3334
|
+
query: unknown;
|
3335
|
+
headers: unknown;
|
3336
|
+
response: {
|
3337
|
+
200: {
|
3338
|
+
[x: number]: {
|
3339
|
+
live: string;
|
3340
|
+
tree: string;
|
3341
|
+
lastTree: string;
|
3342
|
+
endOfDisputePeriod: number;
|
3343
|
+
delayed: Awaited<ReturnType<typeof import("./modules/v4/status").StatusService.findManyDelay>>;
|
3344
|
+
};
|
3345
|
+
};
|
3346
|
+
};
|
3347
|
+
};
|
3348
|
+
};
|
3349
|
+
};
|
3327
3350
|
};
|
3328
3351
|
};
|
3329
3352
|
} & {
|
@@ -33,6 +33,9 @@ export class BlacklistRepository {
|
|
33
33
|
return true;
|
34
34
|
}
|
35
35
|
static async add(x) {
|
36
|
+
if (!!(await apiDbClient.blacklist.findUnique({ where: { id: x.id } }))) {
|
37
|
+
await apiDbClient.blacklist.delete({ where: { id: x.id } });
|
38
|
+
}
|
36
39
|
return await apiDbClient.blacklist.create({
|
37
40
|
data: {
|
38
41
|
id: x.id,
|
@@ -6,6 +6,7 @@ import { OpportunityService } from "../opportunity";
|
|
6
6
|
import { InvalidParameter } from "../../../utils/error";
|
7
7
|
import { executeSimple } from "../../../utils/execute";
|
8
8
|
import { log } from "../../../utils/logger";
|
9
|
+
import { apiDbClient } from "../../../utils/prisma";
|
9
10
|
import { NETWORK_LABELS, } from "@sdk";
|
10
11
|
import { utils } from "ethers";
|
11
12
|
import moment from "moment";
|
@@ -151,6 +152,17 @@ export class CampaignService {
|
|
151
152
|
return await CampaignRepository.findUniqueOrThrow(id);
|
152
153
|
}
|
153
154
|
static async findCampaignsToProcess(distributionChainId) {
|
155
|
+
await apiDbClient.campaignStatus.updateMany({
|
156
|
+
data: {
|
157
|
+
status: "SUCCESS",
|
158
|
+
},
|
159
|
+
where: {
|
160
|
+
Campaign: {
|
161
|
+
distributionChainId: 1,
|
162
|
+
},
|
163
|
+
status: "PROCESSING",
|
164
|
+
},
|
165
|
+
});
|
154
166
|
return (await CampaignRepository.findCampaignsToProcess(distributionChainId)).filter(campaign => campaign.endTimestamp > campaign?.CampaignStatus?.[0]?.computedUntil);
|
155
167
|
}
|
156
168
|
static async findNextCampaignToProcess(chainId) {
|
@@ -24,9 +24,8 @@ export class MerklRootRepository {
|
|
24
24
|
return [res[0], res[1]];
|
25
25
|
}
|
26
26
|
static async fetch(chainId) {
|
27
|
-
const live = await DistributorService(chainId).
|
28
|
-
|
29
|
-
return { live, tree, lastTree };
|
27
|
+
const { live, tree, lastTree, endOfDisputePeriod } = await DistributorService(chainId).fetchUpdateData();
|
28
|
+
return { live, tree, lastTree, endOfDisputePeriod };
|
30
29
|
}
|
31
30
|
static async create(x) {
|
32
31
|
return await apiDbClient.merklRoot.create({
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import type { CacheKeys } from "../../../cache/keys";
|
2
1
|
import type { ChainId } from "@sdk";
|
3
2
|
import type { CreateRootModel, RootByTimestampModel } from "./merklRoot.model";
|
4
3
|
export declare class MerklRootService {
|
@@ -19,7 +18,12 @@ export declare class MerklRootService {
|
|
19
18
|
* @param chainId to fetch roots for
|
20
19
|
* @returns object with live and last tree roots
|
21
20
|
*/
|
22
|
-
static fetch(chainId: ChainId): Promise<
|
21
|
+
static fetch(chainId: ChainId): Promise<{
|
22
|
+
live: any;
|
23
|
+
tree: any;
|
24
|
+
lastTree: any;
|
25
|
+
endOfDisputePeriod: any;
|
26
|
+
}>;
|
23
27
|
/**
|
24
28
|
* Fetch all roots for the provided chains
|
25
29
|
* @param chainIds to fetch roots for
|
@@ -29,6 +33,7 @@ export declare class MerklRootService {
|
|
29
33
|
live: string;
|
30
34
|
tree: string;
|
31
35
|
lastTree: string;
|
36
|
+
endOfDisputePeriod: number;
|
32
37
|
}>>;
|
33
38
|
static create(x: CreateRootModel): Promise<{
|
34
39
|
timestamp: bigint;
|
@@ -537,7 +537,7 @@ export declare abstract class RewardService {
|
|
537
537
|
}[]>;
|
538
538
|
static registerClaims(claims: RegisterClaimsModel): Promise<void>;
|
539
539
|
static countOnChain(chainId: number): Promise<{
|
540
|
-
[x:
|
540
|
+
[x: number]: {
|
541
541
|
rewardCount: number;
|
542
542
|
breakdownCount: number;
|
543
543
|
};
|
@@ -1840,7 +1840,7 @@ export declare const v4: Elysia<"/v4", false, {
|
|
1840
1840
|
};
|
1841
1841
|
response: {
|
1842
1842
|
200: {
|
1843
|
-
[x:
|
1843
|
+
[x: number]: {
|
1844
1844
|
rewardCount: number;
|
1845
1845
|
breakdownCount: number;
|
1846
1846
|
};
|
@@ -2649,6 +2649,7 @@ export declare const v4: Elysia<"/v4", false, {
|
|
2649
2649
|
live: string;
|
2650
2650
|
tree: string;
|
2651
2651
|
lastTree: string;
|
2652
|
+
endOfDisputePeriod: number;
|
2652
2653
|
};
|
2653
2654
|
};
|
2654
2655
|
};
|
@@ -3194,6 +3195,28 @@ export declare const v4: Elysia<"/v4", false, {
|
|
3194
3195
|
};
|
3195
3196
|
};
|
3196
3197
|
};
|
3198
|
+
} & {
|
3199
|
+
delay: {
|
3200
|
+
status: {
|
3201
|
+
get: {
|
3202
|
+
body: unknown;
|
3203
|
+
params: {};
|
3204
|
+
query: unknown;
|
3205
|
+
headers: unknown;
|
3206
|
+
response: {
|
3207
|
+
200: {
|
3208
|
+
[x: number]: {
|
3209
|
+
live: string;
|
3210
|
+
tree: string;
|
3211
|
+
lastTree: string;
|
3212
|
+
endOfDisputePeriod: number;
|
3213
|
+
delayed: Awaited<ReturnType<typeof import("./status").StatusService.findManyDelay>>;
|
3214
|
+
};
|
3215
|
+
};
|
3216
|
+
};
|
3217
|
+
};
|
3218
|
+
};
|
3219
|
+
};
|
3197
3220
|
};
|
3198
3221
|
};
|
3199
3222
|
} & {
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import Elysia from "elysia";
|
2
|
+
import { StatusService } from "./status.service";
|
2
3
|
export declare const StatusController: Elysia<"/campaign-status", false, {
|
3
4
|
decorator: {};
|
4
5
|
store: {};
|
@@ -149,6 +150,28 @@ export declare const StatusController: Elysia<"/campaign-status", false, {
|
|
149
150
|
};
|
150
151
|
};
|
151
152
|
};
|
153
|
+
} & {
|
154
|
+
delay: {
|
155
|
+
status: {
|
156
|
+
get: {
|
157
|
+
body: unknown;
|
158
|
+
params: {};
|
159
|
+
query: unknown;
|
160
|
+
headers: unknown;
|
161
|
+
response: {
|
162
|
+
200: {
|
163
|
+
[x: number]: {
|
164
|
+
live: string;
|
165
|
+
tree: string;
|
166
|
+
lastTree: string;
|
167
|
+
endOfDisputePeriod: number;
|
168
|
+
delayed: Awaited<ReturnType<typeof StatusService.findManyDelay>>;
|
169
|
+
};
|
170
|
+
};
|
171
|
+
};
|
172
|
+
};
|
173
|
+
};
|
174
|
+
};
|
152
175
|
};
|
153
176
|
}, {
|
154
177
|
derive: {};
|
@@ -33,7 +33,8 @@ export const StatusController = new Elysia({ prefix: "/campaign-status", detail:
|
|
33
33
|
})
|
34
34
|
// ─── Fetch information about delays ────────────────────────────────────
|
35
35
|
.group("/delay", app => {
|
36
|
-
return app
|
36
|
+
return app
|
37
|
+
.get("/", async ({ query }) => StatusService.findManyDelay(query), {
|
37
38
|
query: DelayDto,
|
38
39
|
beforeHandle: ({ query }) => {
|
39
40
|
if (!!query.chainId) {
|
@@ -41,5 +42,8 @@ export const StatusController = new Elysia({ prefix: "/campaign-status", detail:
|
|
41
42
|
}
|
42
43
|
},
|
43
44
|
detail: { hide: true },
|
45
|
+
})
|
46
|
+
.get("/status", async () => StatusService.findUpdatesAndDelays(), {
|
47
|
+
detail: { hide: true },
|
44
48
|
});
|
45
49
|
});
|
@@ -35,6 +35,13 @@ export declare class StatusService {
|
|
35
35
|
} | null>;
|
36
36
|
static update(campaignUnique: CampaignUnique, status: UpdateStatusModel): Promise<void>;
|
37
37
|
static isSafeForOverlaps(campaignUnique: CampaignUnique): Promise<boolean>;
|
38
|
+
static findUpdatesAndDelays(): Promise<Record<number, {
|
39
|
+
live: string;
|
40
|
+
tree: string;
|
41
|
+
lastTree: string;
|
42
|
+
endOfDisputePeriod: number;
|
43
|
+
delayed: Awaited<ReturnType<typeof StatusService.findManyDelay>>;
|
44
|
+
}>>;
|
38
45
|
static findManyDelay(query: DelayModel): Promise<{
|
39
46
|
delay: number;
|
40
47
|
delayFormatted: string;
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import { RunStatus } from "../../../../database/api/.generated";
|
2
|
-
import { MAX_COMPUTE_JOB_TIME } from "@sdk";
|
2
|
+
import { HOUR, MAX_COMPUTE_JOB_TIME } from "@sdk";
|
3
3
|
import moment from "moment";
|
4
4
|
import { CampaignService } from "../campaign";
|
5
|
+
import { MerklRootService } from "../merklRoot";
|
5
6
|
import { StatusRepository } from "./status.repository";
|
6
7
|
export class StatusService {
|
7
8
|
static async findMany(query) {
|
@@ -54,6 +55,20 @@ export class StatusService {
|
|
54
55
|
}
|
55
56
|
return true;
|
56
57
|
}
|
58
|
+
static async findUpdatesAndDelays() {
|
59
|
+
const merklRoots = await MerklRootService.fetchAll();
|
60
|
+
const delayedCampaignPromises = await Promise.allSettled(Object.keys(merklRoots).map(chainId => StatusService.findManyDelay({ chainId: Number.parseInt(chainId), delayLowerBound: 4 * HOUR })));
|
61
|
+
const res = {};
|
62
|
+
for (const [index, chainId] of Object.keys(merklRoots).entries()) {
|
63
|
+
if (delayedCampaignPromises[index].status === "rejected")
|
64
|
+
continue;
|
65
|
+
res[Number.parseInt(chainId)] = {
|
66
|
+
...merklRoots[Number.parseInt(chainId)],
|
67
|
+
delayed: delayedCampaignPromises[index].value,
|
68
|
+
};
|
69
|
+
}
|
70
|
+
return res;
|
71
|
+
}
|
57
72
|
static async findManyDelay(query) {
|
58
73
|
const now = moment().unix();
|
59
74
|
return (await StatusRepository.findManyDelay(query))
|