@maci-protocol/coordinator 0.0.0-ci.4d3abe4 → 0.0.0-ci.4edbce2
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/build/scripts/generateKeypair.js +2 -2
- package/build/scripts/generateKeypair.js.map +1 -1
- package/build/tests/e2e.deploy.test.js +20 -17
- package/build/tests/e2e.deploy.test.js.map +1 -1
- package/build/tests/e2e.redis.test.d.ts +2 -0
- package/build/tests/e2e.redis.test.d.ts.map +1 -0
- package/build/tests/e2e.redis.test.js +114 -0
- package/build/tests/e2e.redis.test.js.map +1 -0
- package/build/tests/utils.d.ts.map +1 -1
- package/build/tests/utils.js.map +1 -1
- package/build/ts/app.module.d.ts.map +1 -1
- package/build/ts/app.module.js +2 -0
- package/build/ts/app.module.js.map +1 -1
- package/build/ts/common/__tests__/common.test.js +1 -11
- package/build/ts/common/__tests__/common.test.js.map +1 -1
- package/build/ts/common/chain.d.ts.map +1 -1
- package/build/ts/common/chain.js +3 -1
- package/build/ts/common/chain.js.map +1 -1
- package/build/ts/deployer/__tests__/deployer.controller.test.js +7 -7
- package/build/ts/deployer/__tests__/deployer.controller.test.js.map +1 -1
- package/build/ts/deployer/__tests__/deployer.service.test.js +54 -8
- package/build/ts/deployer/__tests__/deployer.service.test.js.map +1 -1
- package/build/ts/deployer/__tests__/utils.d.ts +0 -1
- package/build/ts/deployer/__tests__/utils.d.ts.map +1 -1
- package/build/ts/deployer/__tests__/utils.js +2 -3
- package/build/ts/deployer/__tests__/utils.js.map +1 -1
- package/build/ts/deployer/deployer.service.d.ts +5 -6
- package/build/ts/deployer/deployer.service.d.ts.map +1 -1
- package/build/ts/deployer/deployer.service.js +175 -51
- package/build/ts/deployer/deployer.service.js.map +1 -1
- package/build/ts/deployer/types.d.ts +16 -10
- package/build/ts/deployer/types.d.ts.map +1 -1
- package/build/ts/health/__tests__/health.controller.test.js +8 -2
- package/build/ts/health/__tests__/health.controller.test.js.map +1 -1
- package/build/ts/health/__tests__/health.service.test.js +12 -1
- package/build/ts/health/__tests__/health.service.test.js.map +1 -1
- package/build/ts/health/health.module.d.ts.map +1 -1
- package/build/ts/health/health.module.js +2 -1
- package/build/ts/health/health.module.js.map +1 -1
- package/build/ts/health/health.service.d.ts +8 -1
- package/build/ts/health/health.service.d.ts.map +1 -1
- package/build/ts/health/health.service.js +15 -2
- package/build/ts/health/health.service.js.map +1 -1
- package/build/ts/health/types.d.ts +4 -0
- package/build/ts/health/types.d.ts.map +1 -1
- package/build/ts/proof/__tests__/proof.service.test.js +28 -54
- package/build/ts/proof/__tests__/proof.service.test.js.map +1 -1
- package/build/ts/redis/__tests__/redis.service.test.d.ts +2 -0
- package/build/ts/redis/__tests__/redis.service.test.d.ts.map +1 -0
- package/build/ts/redis/__tests__/redis.service.test.js +128 -0
- package/build/ts/redis/__tests__/redis.service.test.js.map +1 -0
- package/build/ts/redis/redis.module.d.ts +3 -0
- package/build/ts/redis/redis.module.d.ts.map +1 -0
- package/build/ts/redis/redis.module.js +18 -0
- package/build/ts/redis/redis.module.js.map +1 -0
- package/build/ts/redis/redis.service.d.ts +52 -0
- package/build/ts/redis/redis.service.d.ts.map +1 -0
- package/build/ts/redis/redis.service.js +97 -0
- package/build/ts/redis/redis.service.js.map +1 -0
- package/build/ts/redis/types.d.ts +57 -0
- package/build/ts/redis/types.d.ts.map +1 -0
- package/build/ts/redis/types.js +2 -0
- package/build/ts/redis/types.js.map +1 -0
- package/build/ts/redis/utils.d.ts +20 -0
- package/build/ts/redis/utils.d.ts.map +1 -0
- package/build/ts/redis/utils.js +24 -0
- package/build/ts/redis/utils.js.map +1 -0
- package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js +2 -2
- package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js.map +1 -1
- package/build/ts/subgraph/__tests__/subgraph.service.test.js +2 -3
- package/build/ts/subgraph/__tests__/subgraph.service.test.js.map +1 -1
- package/build/ts/subgraph/subgraph.service.d.ts +4 -0
- package/build/ts/subgraph/subgraph.service.d.ts.map +1 -1
- package/build/ts/subgraph/subgraph.service.js +16 -5
- package/build/ts/subgraph/subgraph.service.js.map +1 -1
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +18 -17
- package/build/tests/e2e.aa.test.d.ts +0 -2
- package/build/tests/e2e.aa.test.d.ts.map +0 -1
- package/build/tests/e2e.aa.test.js +0 -96
- package/build/tests/e2e.aa.test.js.map +0 -1
|
@@ -2,11 +2,16 @@ import { EMode } from "@maci-protocol/contracts";
|
|
|
2
2
|
import dotenv from "dotenv";
|
|
3
3
|
import { zeroAddress } from "viem";
|
|
4
4
|
import { FileService } from "../../file/file.service";
|
|
5
|
+
import { RedisService } from "../../redis/redis.service";
|
|
5
6
|
import { HealthService } from "../health.service";
|
|
6
7
|
dotenv.config();
|
|
7
8
|
describe("HealthService", () => {
|
|
8
9
|
const fileService = new FileService();
|
|
9
|
-
const
|
|
10
|
+
const redisService = new RedisService();
|
|
11
|
+
const healthService = new HealthService(fileService, redisService);
|
|
12
|
+
beforeAll(async () => {
|
|
13
|
+
await redisService.onModuleInit();
|
|
14
|
+
});
|
|
10
15
|
describe("checkRapidsnark", () => {
|
|
11
16
|
it("should return rapidsnark path and executability status", async () => {
|
|
12
17
|
const response = await healthService.checkRapidsnark();
|
|
@@ -73,5 +78,11 @@ describe("HealthService", () => {
|
|
|
73
78
|
expect(address).toBe(zeroAddress);
|
|
74
79
|
});
|
|
75
80
|
});
|
|
81
|
+
describe("checkRedisConnection", () => {
|
|
82
|
+
it("should return true if Redis connection is open", () => {
|
|
83
|
+
const isRedisOpen = healthService.checkRedisConnection();
|
|
84
|
+
expect(isRedisOpen).toBe(true);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
76
87
|
});
|
|
77
88
|
//# sourceMappingURL=health.service.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.service.test.js","sourceRoot":"","sources":["../../../../ts/health/__tests__/health.service.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"health.service.test.js","sourceRoot":"","sources":["../../../../ts/health/__tests__/health.service.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.module.d.ts","sourceRoot":"","sources":["../../../ts/health/health.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"health.module.d.ts","sourceRoot":"","sources":["../../../ts/health/health.module.ts"],"names":[],"mappings":"AAQA,qBAKa,YAAY;CAAG"}
|
|
@@ -6,13 +6,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { Module } from "@nestjs/common";
|
|
8
8
|
import { FileModule } from "../file/file.module";
|
|
9
|
+
import { RedisModule } from "../redis/redis.module";
|
|
9
10
|
import { HealthController } from "./health.controller";
|
|
10
11
|
import { HealthService } from "./health.service";
|
|
11
12
|
let HealthModule = class HealthModule {
|
|
12
13
|
};
|
|
13
14
|
HealthModule = __decorate([
|
|
14
15
|
Module({
|
|
15
|
-
imports: [FileModule],
|
|
16
|
+
imports: [FileModule, RedisModule],
|
|
16
17
|
controllers: [HealthController],
|
|
17
18
|
providers: [HealthService],
|
|
18
19
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.module.js","sourceRoot":"","sources":["../../../ts/health/health.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"health.module.js","sourceRoot":"","sources":["../../../ts/health/health.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAO1C,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,YAAY;IALxB,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;QAClC,WAAW,EAAE,CAAC,gBAAgB,CAAC;QAC/B,SAAS,EAAE,CAAC,aAAa,CAAC;KAC3B,CAAC;GACW,YAAY,CAAG"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import type { ICheckRapidsnark, ICheckWalletFunds, ICheckZkeysDirectory, IHealthCheckResponse } from "./types";
|
|
2
2
|
import { FileService } from "../file/file.service";
|
|
3
|
+
import { RedisService } from "../redis/redis.service";
|
|
3
4
|
/**
|
|
4
5
|
* Health service functions to check the status of the coordinator service.
|
|
5
6
|
*/
|
|
6
7
|
export declare class HealthService {
|
|
7
8
|
private readonly fileService;
|
|
9
|
+
private readonly redisService;
|
|
8
10
|
/**
|
|
9
11
|
* Create a new instance of the HealthService.
|
|
10
12
|
*
|
|
11
13
|
* @param fileService - file service
|
|
12
14
|
*/
|
|
13
|
-
constructor(fileService: FileService);
|
|
15
|
+
constructor(fileService: FileService, redisService: RedisService);
|
|
14
16
|
/**
|
|
15
17
|
* Check if rapidsnark is available and executable.
|
|
16
18
|
* @returns the rapidsnark executable path and its executability status
|
|
@@ -26,6 +28,11 @@ export declare class HealthService {
|
|
|
26
28
|
* @returns the address and its funds in all networks
|
|
27
29
|
*/
|
|
28
30
|
checkWalletFunds(): Promise<ICheckWalletFunds>;
|
|
31
|
+
/**
|
|
32
|
+
* Check redis client is connected and open
|
|
33
|
+
* @return true if the redis client is connected and open, false otherwise
|
|
34
|
+
*/
|
|
35
|
+
checkRedisConnection(): boolean;
|
|
29
36
|
/**
|
|
30
37
|
* Check coordinator service health
|
|
31
38
|
* @returns an object containing the results of all the health checks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.service.d.ts","sourceRoot":"","sources":["../../../ts/health/health.service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAG/G,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"health.service.d.ts","sourceRoot":"","sources":["../../../ts/health/health.service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAG/G,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;GAEG;AACH,qBACa,aAAa;IAOtB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAP/B;;;;OAIG;gBAEgB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY;IAG7C;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAuBlD;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,oBAAoB,CAAC;IA0D1D;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAuCpD;;;OAGG;IACH,oBAAoB,IAAI,OAAO;IAI/B;;;OAGG;IACG,sBAAsB,IAAI,OAAO,CAAC,oBAAoB,CAAC;CAe9D"}
|
|
@@ -15,18 +15,21 @@ import fs from "fs";
|
|
|
15
15
|
import path from "path";
|
|
16
16
|
import { ESupportedNetworks, getSigner } from "../common";
|
|
17
17
|
import { FileService } from "../file/file.service";
|
|
18
|
+
import { RedisService } from "../redis/redis.service";
|
|
18
19
|
/**
|
|
19
20
|
* Health service functions to check the status of the coordinator service.
|
|
20
21
|
*/
|
|
21
22
|
let HealthService = class HealthService {
|
|
22
23
|
fileService;
|
|
24
|
+
redisService;
|
|
23
25
|
/**
|
|
24
26
|
* Create a new instance of the HealthService.
|
|
25
27
|
*
|
|
26
28
|
* @param fileService - file service
|
|
27
29
|
*/
|
|
28
|
-
constructor(fileService) {
|
|
30
|
+
constructor(fileService, redisService) {
|
|
29
31
|
this.fileService = fileService;
|
|
32
|
+
this.redisService = redisService;
|
|
30
33
|
}
|
|
31
34
|
/**
|
|
32
35
|
* Check if rapidsnark is available and executable.
|
|
@@ -144,6 +147,13 @@ let HealthService = class HealthService {
|
|
|
144
147
|
fundsInNetworks,
|
|
145
148
|
};
|
|
146
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Check redis client is connected and open
|
|
152
|
+
* @return true if the redis client is connected and open, false otherwise
|
|
153
|
+
*/
|
|
154
|
+
checkRedisConnection() {
|
|
155
|
+
return this.redisService.isOpen();
|
|
156
|
+
}
|
|
147
157
|
/**
|
|
148
158
|
* Check coordinator service health
|
|
149
159
|
* @returns an object containing the results of all the health checks
|
|
@@ -154,16 +164,19 @@ let HealthService = class HealthService {
|
|
|
154
164
|
this.checkZkeysDirectory(),
|
|
155
165
|
this.checkWalletFunds(),
|
|
156
166
|
]);
|
|
167
|
+
const isRedisOpen = this.checkRedisConnection();
|
|
157
168
|
return {
|
|
158
169
|
rapidsnark,
|
|
159
170
|
zkeysDirectory,
|
|
160
171
|
coordinatorWalletFunds,
|
|
172
|
+
isRedisOpen,
|
|
161
173
|
};
|
|
162
174
|
}
|
|
163
175
|
};
|
|
164
176
|
HealthService = __decorate([
|
|
165
177
|
Injectable(),
|
|
166
|
-
__metadata("design:paramtypes", [FileService
|
|
178
|
+
__metadata("design:paramtypes", [FileService,
|
|
179
|
+
RedisService])
|
|
167
180
|
], HealthService);
|
|
168
181
|
export { HealthService };
|
|
169
182
|
//# sourceMappingURL=health.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.service.js","sourceRoot":"","sources":["../../../ts/health/health.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"health.service.js","sourceRoot":"","sources":["../../../ts/health/health.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/health/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,wBAAwB,EAAE,MAAM,CAAC;IAEjC;;OAEG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,SAAS,CAAC,CAAC;CACnE;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,eAAe,EAAE,CAAC,YAAY,GAAG,SAAS,CAAC,EAAE,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,UAAU,EAAE,gBAAgB,CAAC;IAE7B;;OAEG;IACH,cAAc,EAAE,oBAAoB,CAAC;IAErC;;OAEG;IACH,sBAAsB,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/health/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,wBAAwB,EAAE,MAAM,CAAC;IAEjC;;OAEG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,SAAS,CAAC,CAAC;CACnE;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,eAAe,EAAE,CAAC,YAAY,GAAG,SAAS,CAAC,EAAE,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,UAAU,EAAE,gBAAgB,CAAC;IAE7B;;OAEG;IACH,cAAc,EAAE,oBAAoB,CAAC;IAErC;;OAEG;IACH,sBAAsB,EAAE,iBAAiB,CAAC;IAE1C;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB"}
|
|
@@ -1,36 +1,30 @@
|
|
|
1
1
|
import { Keypair, PrivateKey } from "@maci-protocol/domainobjs";
|
|
2
|
-
import { Deployment, EMode
|
|
2
|
+
import { Deployment, EMode } from "@maci-protocol/sdk";
|
|
3
3
|
import dotenv from "dotenv";
|
|
4
4
|
import { zeroAddress } from "viem";
|
|
5
5
|
import { ErrorCodes, ESupportedNetworks } from "../../common";
|
|
6
|
+
import { getCoordinatorKeypair } from "../../common/coordinatorKeypair";
|
|
6
7
|
import { FileService } from "../../file/file.service";
|
|
8
|
+
import { generateApproval } from "../../sessionKeys/__tests__/utils";
|
|
7
9
|
import { SessionKeysService } from "../../sessionKeys/sessionKeys.service";
|
|
8
10
|
import { ProofGeneratorService } from "../proof.service";
|
|
9
11
|
dotenv.config();
|
|
10
|
-
jest.mock("
|
|
11
|
-
|
|
12
|
-
name: "localhost",
|
|
13
|
-
config: {
|
|
14
|
-
chain: { id: 0x1 },
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
}));
|
|
18
|
-
jest.mock("@maci-protocol/contracts", () => ({
|
|
19
|
-
...jest.requireActual("@maci-protocol/contracts"),
|
|
12
|
+
jest.mock("@maci-protocol/sdk", () => ({
|
|
13
|
+
...jest.requireActual("@maci-protocol/sdk"),
|
|
20
14
|
Deployment: {
|
|
21
15
|
getInstance: jest.fn(),
|
|
22
16
|
},
|
|
23
|
-
|
|
17
|
+
getPoll: jest.fn().mockResolvedValue({
|
|
18
|
+
address: "0x123",
|
|
19
|
+
}),
|
|
20
|
+
generateProofs: jest.fn().mockResolvedValue({
|
|
21
|
+
processProofs: [1],
|
|
22
|
+
tallyProofs: [1],
|
|
23
|
+
tallyData: {},
|
|
24
|
+
}),
|
|
24
25
|
}));
|
|
25
26
|
describe("ProofGeneratorService", () => {
|
|
26
|
-
|
|
27
|
-
poll: 1,
|
|
28
|
-
maciContractAddress: zeroAddress,
|
|
29
|
-
mode: EMode.NON_QV,
|
|
30
|
-
sessionKeyAddress: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
|
|
31
|
-
approval: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
|
|
32
|
-
chain: ESupportedNetworks.LOCALHOST,
|
|
33
|
-
};
|
|
27
|
+
let defaultProofArgs;
|
|
34
28
|
let mockContract = {
|
|
35
29
|
polls: jest.fn(),
|
|
36
30
|
getMainRoot: jest.fn(),
|
|
@@ -39,18 +33,26 @@ describe("ProofGeneratorService", () => {
|
|
|
39
33
|
stateMerged: jest.fn(),
|
|
40
34
|
coordinatorPublicKey: jest.fn(),
|
|
41
35
|
};
|
|
42
|
-
let defaultProofGenerator = {
|
|
43
|
-
generateMpProofs: jest.fn(),
|
|
44
|
-
generateTallyProofs: jest.fn(),
|
|
45
|
-
merge: jest.fn(),
|
|
46
|
-
};
|
|
47
36
|
const defaultDeploymentService = {
|
|
48
37
|
setHre: jest.fn(),
|
|
49
38
|
getDeployer: jest.fn(() => Promise.resolve({})),
|
|
50
39
|
getContract: jest.fn(() => Promise.resolve(mockContract)),
|
|
51
40
|
};
|
|
41
|
+
const coordinatorPublicKey = getCoordinatorKeypair().publicKey.asContractParam();
|
|
52
42
|
const fileService = new FileService();
|
|
53
43
|
const sessionKeysService = new SessionKeysService(fileService);
|
|
44
|
+
beforeAll(async () => {
|
|
45
|
+
const { sessionKeyAddress } = await sessionKeysService.generateSessionKey();
|
|
46
|
+
const approval = await generateApproval(sessionKeyAddress);
|
|
47
|
+
defaultProofArgs = {
|
|
48
|
+
poll: 1,
|
|
49
|
+
maciContractAddress: zeroAddress,
|
|
50
|
+
mode: EMode.NON_QV,
|
|
51
|
+
sessionKeyAddress,
|
|
52
|
+
approval,
|
|
53
|
+
chain: ESupportedNetworks.OPTIMISM_SEPOLIA,
|
|
54
|
+
};
|
|
55
|
+
});
|
|
54
56
|
beforeEach(() => {
|
|
55
57
|
mockContract = {
|
|
56
58
|
polls: jest.fn(() => Promise.resolve({ poll: zeroAddress.replace("0x0", "0x1"), messageProcessor: zeroAddress, tally: zeroAddress })),
|
|
@@ -58,47 +60,19 @@ describe("ProofGeneratorService", () => {
|
|
|
58
60
|
treeDepths: jest.fn(() => Promise.resolve([1, 2, 3])),
|
|
59
61
|
extContracts: jest.fn(() => Promise.resolve({ messageAq: zeroAddress })),
|
|
60
62
|
stateMerged: jest.fn(() => Promise.resolve(true)),
|
|
61
|
-
coordinatorPublicKey: jest.fn(() => Promise.resolve(
|
|
62
|
-
x: 21424602586933317770306541383681754745261216801634012235464162098738462892814n,
|
|
63
|
-
y: 11917647526382221762393892566678210317414189429046519403585863973939713533473n,
|
|
64
|
-
})),
|
|
65
|
-
};
|
|
66
|
-
defaultProofGenerator = {
|
|
67
|
-
generateMpProofs: jest.fn(() => Promise.resolve([1])),
|
|
68
|
-
generateTallyProofs: jest.fn(() => Promise.resolve({ proofs: [1], tallyData: {} })),
|
|
69
|
-
merge: jest.fn(() => Promise.resolve(true)),
|
|
63
|
+
coordinatorPublicKey: jest.fn(() => Promise.resolve(coordinatorPublicKey)),
|
|
70
64
|
};
|
|
71
65
|
Deployment.getInstance.mockReturnValue(defaultDeploymentService);
|
|
72
|
-
ProofGenerator.mockReturnValue(defaultProofGenerator);
|
|
73
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
74
|
-
// @ts-expect-error
|
|
75
|
-
ProofGenerator.prepareState = jest.fn(() => Promise.resolve({
|
|
76
|
-
polls: new Map([[1n, {}]]),
|
|
77
|
-
}));
|
|
78
66
|
});
|
|
79
67
|
afterEach(() => {
|
|
80
68
|
jest.clearAllMocks();
|
|
81
69
|
});
|
|
82
|
-
test("should throw error if state is not merged yet", async () => {
|
|
83
|
-
mockContract.stateMerged.mockResolvedValue(false);
|
|
84
|
-
const service = new ProofGeneratorService(fileService, sessionKeysService);
|
|
85
|
-
await expect(service.generate(defaultProofArgs)).rejects.toThrow(ErrorCodes.NOT_MERGED_STATE_TREE.toString());
|
|
86
|
-
});
|
|
87
70
|
test("should throw error if private key is wrong", async () => {
|
|
88
71
|
const keypair = new Keypair(new PrivateKey(0n));
|
|
89
72
|
mockContract.coordinatorPublicKey.mockResolvedValue(keypair.publicKey.asContractParam());
|
|
90
73
|
const service = new ProofGeneratorService(fileService, sessionKeysService);
|
|
91
74
|
await expect(service.generate(defaultProofArgs)).rejects.toThrow(ErrorCodes.PRIVATE_KEY_MISMATCH.toString());
|
|
92
75
|
});
|
|
93
|
-
test("should throw error if poll is not found", async () => {
|
|
94
|
-
const service = new ProofGeneratorService(fileService, sessionKeysService);
|
|
95
|
-
await expect(service.generate({ ...defaultProofArgs, poll: 2 })).rejects.toThrow(ErrorCodes.POLL_NOT_FOUND.toString());
|
|
96
|
-
});
|
|
97
|
-
test("should throw error if poll is not found in maci contract", async () => {
|
|
98
|
-
mockContract.polls.mockResolvedValue({ poll: zeroAddress });
|
|
99
|
-
const service = new ProofGeneratorService(fileService, sessionKeysService);
|
|
100
|
-
await expect(service.generate({ ...defaultProofArgs, poll: 2 })).rejects.toThrow(ErrorCodes.POLL_NOT_FOUND.toString());
|
|
101
|
-
});
|
|
102
76
|
test("should generate proofs properly for NonQv", async () => {
|
|
103
77
|
const service = new ProofGeneratorService(fileService, sessionKeysService);
|
|
104
78
|
const data = await service.generate(defaultProofArgs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proof.service.test.js","sourceRoot":"","sources":["../../../../ts/proof/__tests__/proof.service.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"proof.service.test.js","sourceRoot":"","sources":["../../../../ts/proof/__tests__/proof.service.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.service.test.d.ts","sourceRoot":"","sources":["../../../../ts/redis/__tests__/redis.service.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { createClient } from "@redis/client";
|
|
2
|
+
import { ESupportedNetworks } from "../../common";
|
|
3
|
+
import { RedisService } from "../redis.service";
|
|
4
|
+
import { getPollKeyFromObject } from "../utils";
|
|
5
|
+
const REDIS__GET_ALL_PREFIX = "*-test";
|
|
6
|
+
const scheduledPoll = {
|
|
7
|
+
maciAddress: "0xb83074Ac11fc569AC12F1b7D0C0a6809c3dc355b",
|
|
8
|
+
pollId: "5",
|
|
9
|
+
mode: 1,
|
|
10
|
+
chain: ESupportedNetworks.OPTIMISM_SEPOLIA,
|
|
11
|
+
endDate: 1752534000,
|
|
12
|
+
merged: false,
|
|
13
|
+
proofsGenerated: false,
|
|
14
|
+
};
|
|
15
|
+
jest.mock("@redis/client", () => {
|
|
16
|
+
const mockRedisClient = {
|
|
17
|
+
connect: jest.fn().mockResolvedValue(undefined),
|
|
18
|
+
set: jest.fn().mockResolvedValue("OK"),
|
|
19
|
+
get: jest.fn().mockResolvedValue(null),
|
|
20
|
+
scan: jest.fn().mockResolvedValue({ cursor: "0", keys: ["1", "2", "3"] }),
|
|
21
|
+
del: jest.fn().mockResolvedValue(1),
|
|
22
|
+
quit: jest.fn().mockResolvedValue("OK"),
|
|
23
|
+
isOpen: true,
|
|
24
|
+
};
|
|
25
|
+
return {
|
|
26
|
+
createClient: jest.fn(() => mockRedisClient),
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
describe("RedisService", () => {
|
|
30
|
+
let service;
|
|
31
|
+
let mockRedisClient;
|
|
32
|
+
beforeAll(async () => {
|
|
33
|
+
service = new RedisService();
|
|
34
|
+
await service.onModuleInit();
|
|
35
|
+
mockRedisClient = createClient();
|
|
36
|
+
});
|
|
37
|
+
afterAll(() => {
|
|
38
|
+
jest.clearAllMocks();
|
|
39
|
+
});
|
|
40
|
+
it("should connect to Redis without issues", () => {
|
|
41
|
+
expect(service.isOpen()).toBe(true);
|
|
42
|
+
});
|
|
43
|
+
it("should set and get a value, and parse it as IScheduledPoll", async () => {
|
|
44
|
+
const key = getPollKeyFromObject(scheduledPoll, true);
|
|
45
|
+
const value = JSON.stringify(scheduledPoll);
|
|
46
|
+
await service.set(key, value);
|
|
47
|
+
mockRedisClient.get.mockResolvedValueOnce(value);
|
|
48
|
+
const stored = await service.get(key);
|
|
49
|
+
expect(stored).not.toBeNull();
|
|
50
|
+
const parsed = JSON.parse(stored);
|
|
51
|
+
expect(parsed).toEqual(scheduledPoll);
|
|
52
|
+
});
|
|
53
|
+
it("should return null when non-existent key is requested", async () => {
|
|
54
|
+
const nonExistentKey = "non-existent-key";
|
|
55
|
+
const result = await service.get(nonExistentKey);
|
|
56
|
+
expect(result).toBeNull();
|
|
57
|
+
});
|
|
58
|
+
it("should set and get multiple values", async () => {
|
|
59
|
+
const pollOne = { ...scheduledPoll };
|
|
60
|
+
pollOne.pollId = "1";
|
|
61
|
+
const pollKeyOne = getPollKeyFromObject(pollOne, true);
|
|
62
|
+
await service.set(pollKeyOne, JSON.stringify(pollOne));
|
|
63
|
+
mockRedisClient.get.mockResolvedValueOnce(JSON.stringify(pollOne));
|
|
64
|
+
const pollTwo = { ...scheduledPoll };
|
|
65
|
+
pollTwo.pollId = "2";
|
|
66
|
+
const pollKeyTwo = getPollKeyFromObject(pollTwo, true);
|
|
67
|
+
await service.set(pollKeyTwo, JSON.stringify(pollTwo));
|
|
68
|
+
mockRedisClient.get.mockResolvedValueOnce(JSON.stringify(pollTwo));
|
|
69
|
+
const pollThree = { ...scheduledPoll };
|
|
70
|
+
pollThree.pollId = "3";
|
|
71
|
+
const pollKeyThree = getPollKeyFromObject(pollThree, true);
|
|
72
|
+
await service.set(pollKeyThree, JSON.stringify(pollThree));
|
|
73
|
+
mockRedisClient.get.mockResolvedValueOnce(JSON.stringify(pollThree));
|
|
74
|
+
const [storedPollOne, storedPollTwo, storedPollThree] = await Promise.all([
|
|
75
|
+
service.get(pollKeyOne),
|
|
76
|
+
service.get(pollKeyTwo),
|
|
77
|
+
service.get(pollKeyThree),
|
|
78
|
+
]);
|
|
79
|
+
expect(pollOne).toEqual(JSON.parse(storedPollOne || "{}"));
|
|
80
|
+
expect(pollTwo).toEqual(JSON.parse(storedPollTwo || "{}"));
|
|
81
|
+
expect(pollThree).toEqual(JSON.parse(storedPollThree || "{}"));
|
|
82
|
+
});
|
|
83
|
+
it("should retrieve all values using getAll", async () => {
|
|
84
|
+
const pollOne = { ...scheduledPoll };
|
|
85
|
+
pollOne.pollId = "1";
|
|
86
|
+
const pollKeyOne = getPollKeyFromObject(pollOne, true);
|
|
87
|
+
await service.set(pollKeyOne, JSON.stringify(pollOne));
|
|
88
|
+
const pollTwo = { ...scheduledPoll };
|
|
89
|
+
pollTwo.pollId = "2";
|
|
90
|
+
const pollKeyTwo = getPollKeyFromObject(pollTwo, true);
|
|
91
|
+
await service.set(pollKeyTwo, JSON.stringify(pollTwo));
|
|
92
|
+
const pollThree = { ...scheduledPoll };
|
|
93
|
+
pollThree.pollId = "3";
|
|
94
|
+
const pollKeyThree = getPollKeyFromObject(pollThree, true);
|
|
95
|
+
await service.set(pollKeyThree, JSON.stringify(pollThree));
|
|
96
|
+
mockRedisClient.get.mockImplementation(async (key) => {
|
|
97
|
+
if (["1", "2", "3"].includes(String(key))) {
|
|
98
|
+
return Promise.resolve("{}");
|
|
99
|
+
}
|
|
100
|
+
return Promise.resolve(null);
|
|
101
|
+
});
|
|
102
|
+
const all = await service.getAll(REDIS__GET_ALL_PREFIX);
|
|
103
|
+
expect(all.length).toBe(3);
|
|
104
|
+
});
|
|
105
|
+
it("should delete a value and return one as confirmation", async () => {
|
|
106
|
+
const key = "delete-me";
|
|
107
|
+
await service.set(key, '{"bye":"now"}');
|
|
108
|
+
const deleted = await service.delete(key);
|
|
109
|
+
const value = await service.get(key);
|
|
110
|
+
expect(deleted).toBe(1);
|
|
111
|
+
expect(value).toBeNull();
|
|
112
|
+
});
|
|
113
|
+
it("should not throw and return zero when deleting non-existent value", async () => {
|
|
114
|
+
mockRedisClient.del.mockResolvedValueOnce(0);
|
|
115
|
+
const key = "non-existent-key";
|
|
116
|
+
const deleted = await service.delete(key);
|
|
117
|
+
expect(deleted).toBe(0);
|
|
118
|
+
});
|
|
119
|
+
it("should return production key name when test is not specified", () => {
|
|
120
|
+
const key = getPollKeyFromObject(scheduledPoll, false);
|
|
121
|
+
expect(key).toBe(`${scheduledPoll.chain}-${scheduledPoll.maciAddress}-poll-${scheduledPoll.pollId}`);
|
|
122
|
+
});
|
|
123
|
+
it("should return test key name when test is specified", () => {
|
|
124
|
+
const key = getPollKeyFromObject(scheduledPoll, true);
|
|
125
|
+
expect(key).toBe(`${scheduledPoll.chain}-${scheduledPoll.maciAddress}-poll-${scheduledPoll.pollId}-test`);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
//# sourceMappingURL=redis.service.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.service.test.js","sourceRoot":"","sources":["../../../../ts/redis/__tests__/redis.service.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.module.d.ts","sourceRoot":"","sources":["../../../ts/redis/redis.module.ts"],"names":[],"mappings":"AAIA,qBAIa,WAAW;CAAG"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Module } from "@nestjs/common";
|
|
8
|
+
import { RedisService } from "./redis.service";
|
|
9
|
+
let RedisModule = class RedisModule {
|
|
10
|
+
};
|
|
11
|
+
RedisModule = __decorate([
|
|
12
|
+
Module({
|
|
13
|
+
exports: [RedisService],
|
|
14
|
+
providers: [RedisService],
|
|
15
|
+
})
|
|
16
|
+
], RedisModule);
|
|
17
|
+
export { RedisModule };
|
|
18
|
+
//# sourceMappingURL=redis.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.module.js","sourceRoot":"","sources":["../../../ts/redis/redis.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAMxC,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,WAAW;IAJvB,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,CAAC;QACvB,SAAS,EAAE,CAAC,YAAY,CAAC;KAC1B,CAAC;GACW,WAAW,CAAG"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { OnModuleInit } from "@nestjs/common";
|
|
2
|
+
/**
|
|
3
|
+
* Redis service to interact with the Redis database.
|
|
4
|
+
*/
|
|
5
|
+
export declare class RedisService implements OnModuleInit {
|
|
6
|
+
/**
|
|
7
|
+
* Client instance used to interact with the Redis database.
|
|
8
|
+
*/
|
|
9
|
+
private client;
|
|
10
|
+
/**
|
|
11
|
+
* Create a new instance of the RedisService.
|
|
12
|
+
* The Redis configuration is set up here
|
|
13
|
+
*/
|
|
14
|
+
constructor();
|
|
15
|
+
/**
|
|
16
|
+
* Initializes the Redis client connection when the module has been uploaded.
|
|
17
|
+
* @dev it is a lifecycle hook provided by NestJS that is called after all dependencies
|
|
18
|
+
* are injected and the module is fully initialized.
|
|
19
|
+
* This ensures your service is ready and all dependencies are available.
|
|
20
|
+
*/
|
|
21
|
+
onModuleInit(): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Saves a new key-value pair in Redis.
|
|
24
|
+
* @param key key for the Redis entry
|
|
25
|
+
* @param value value to be stored in Redis
|
|
26
|
+
*/
|
|
27
|
+
set(key: string, value: string): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Retrieves a value from Redis by its key.
|
|
30
|
+
* @param key key for the Redis entry
|
|
31
|
+
* @returns the value stored as string in Redis or null if the key does not exist
|
|
32
|
+
*/
|
|
33
|
+
get(key: string): Promise<string | null>;
|
|
34
|
+
/**
|
|
35
|
+
* Retrieves all keys from Redis that match a specific pattern.
|
|
36
|
+
* @param match optional pattern to match keys in Redis
|
|
37
|
+
* @dev if no match is provided, it will return all keys
|
|
38
|
+
* @returns the array of string values stored in Redis that match the pattern
|
|
39
|
+
*/
|
|
40
|
+
getAll(match?: string): Promise<string[]>;
|
|
41
|
+
/**
|
|
42
|
+
* Deletes a key from Redis.
|
|
43
|
+
* @param key key to be deleted from Redis
|
|
44
|
+
*/
|
|
45
|
+
delete(key: string): Promise<number>;
|
|
46
|
+
/**
|
|
47
|
+
* Check if the connection to Redis is open
|
|
48
|
+
* @return true if the connection is open, false otherwise
|
|
49
|
+
*/
|
|
50
|
+
isOpen(): boolean;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=redis.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.service.d.ts","sourceRoot":"","sources":["../../../ts/redis/redis.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG1D;;GAEG;AACH,qBACa,YAAa,YAAW,YAAY;IAC/C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAkB;IAEhC;;;OAGG;;IAQH;;;;;OAKG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;;;OAIG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpD;;;;OAIG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI9C;;;;;OAKG;IACG,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmB/C;;;OAGG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1C;;;OAGG;IACH,MAAM,IAAI,OAAO;CAGlB"}
|