@maci-protocol/coordinator 0.0.0-ci.7f7ef53 → 0.0.0-ci.7fb2610

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 (140) hide show
  1. package/LICENSE +1 -2
  2. package/README.md +31 -6
  3. package/build/hardhat.config.cjs +3 -0
  4. package/build/hardhat.config.cjs.map +1 -1
  5. package/build/hardhat.config.d.cts +3 -0
  6. package/build/scripts/generateMaciKeyPair.js +2 -2
  7. package/build/scripts/generateMaciKeyPair.js.map +1 -1
  8. package/build/tests/constants.d.ts +0 -1
  9. package/build/tests/constants.d.ts.map +1 -1
  10. package/build/tests/constants.js +0 -1
  11. package/build/tests/constants.js.map +1 -1
  12. package/build/tests/e2e.deploy.test.js +145 -89
  13. package/build/tests/e2e.deploy.test.js.map +1 -1
  14. package/build/tests/utils.d.ts +6 -0
  15. package/build/tests/utils.d.ts.map +1 -1
  16. package/build/tests/utils.js +12 -3
  17. package/build/tests/utils.js.map +1 -1
  18. package/build/ts/app.module.d.ts.map +1 -1
  19. package/build/ts/app.module.js +2 -0
  20. package/build/ts/app.module.js.map +1 -1
  21. package/build/ts/common/__tests__/common.test.js +7 -21
  22. package/build/ts/common/__tests__/common.test.js.map +1 -1
  23. package/build/ts/common/accountAbstraction.d.ts +2 -19
  24. package/build/ts/common/accountAbstraction.d.ts.map +1 -1
  25. package/build/ts/common/accountAbstraction.js +15 -44
  26. package/build/ts/common/accountAbstraction.js.map +1 -1
  27. package/build/ts/common/chain.d.ts +16 -0
  28. package/build/ts/common/chain.d.ts.map +1 -0
  29. package/build/ts/common/chain.js +31 -0
  30. package/build/ts/common/chain.js.map +1 -0
  31. package/build/ts/common/coordinatorKeypair.d.ts +7 -0
  32. package/build/ts/common/coordinatorKeypair.d.ts.map +1 -0
  33. package/build/ts/common/coordinatorKeypair.js +14 -0
  34. package/build/ts/common/coordinatorKeypair.js.map +1 -0
  35. package/build/ts/common/errors.d.ts +17 -18
  36. package/build/ts/common/errors.d.ts.map +1 -1
  37. package/build/ts/common/errors.js +17 -18
  38. package/build/ts/common/errors.js.map +1 -1
  39. package/build/ts/common/index.d.ts +2 -0
  40. package/build/ts/common/index.d.ts.map +1 -1
  41. package/build/ts/common/index.js +2 -0
  42. package/build/ts/common/index.js.map +1 -1
  43. package/build/ts/common/types.d.ts +2 -3
  44. package/build/ts/common/types.d.ts.map +1 -1
  45. package/build/ts/deployer/__tests__/deployer.controller.test.js +7 -7
  46. package/build/ts/deployer/__tests__/deployer.controller.test.js.map +1 -1
  47. package/build/ts/deployer/__tests__/deployer.service.test.js +73 -286
  48. package/build/ts/deployer/__tests__/deployer.service.test.js.map +1 -1
  49. package/build/ts/deployer/__tests__/utils.d.ts +26 -1
  50. package/build/ts/deployer/__tests__/utils.d.ts.map +1 -1
  51. package/build/ts/deployer/__tests__/utils.js +39 -11
  52. package/build/ts/deployer/__tests__/utils.js.map +1 -1
  53. package/build/ts/deployer/deployer.service.d.ts +18 -55
  54. package/build/ts/deployer/deployer.service.d.ts.map +1 -1
  55. package/build/ts/deployer/deployer.service.js +302 -471
  56. package/build/ts/deployer/deployer.service.js.map +1 -1
  57. package/build/ts/deployer/dto.d.ts +4 -4
  58. package/build/ts/deployer/dto.d.ts.map +1 -1
  59. package/build/ts/deployer/dto.js +9 -1
  60. package/build/ts/deployer/dto.js.map +1 -1
  61. package/build/ts/deployer/types.d.ts +68 -35
  62. package/build/ts/deployer/types.d.ts.map +1 -1
  63. package/build/ts/file/__tests__/file.service.test.js +12 -11
  64. package/build/ts/file/__tests__/file.service.test.js.map +1 -1
  65. package/build/ts/file/file.service.d.ts +4 -3
  66. package/build/ts/file/file.service.d.ts.map +1 -1
  67. package/build/ts/file/file.service.js +14 -9
  68. package/build/ts/file/file.service.js.map +1 -1
  69. package/build/ts/file/types.d.ts +2 -2
  70. package/build/ts/file/types.d.ts.map +1 -1
  71. package/build/ts/health/__tests__/health.controller.test.d.ts +2 -0
  72. package/build/ts/health/__tests__/health.controller.test.d.ts.map +1 -0
  73. package/build/ts/health/__tests__/health.controller.test.js +22 -0
  74. package/build/ts/health/__tests__/health.controller.test.js.map +1 -0
  75. package/build/ts/health/__tests__/health.service.test.d.ts +2 -0
  76. package/build/ts/health/__tests__/health.service.test.d.ts.map +1 -0
  77. package/build/ts/health/__tests__/health.service.test.js +77 -0
  78. package/build/ts/health/__tests__/health.service.test.js.map +1 -0
  79. package/build/ts/health/health.controller.d.ts +16 -0
  80. package/build/ts/health/health.controller.d.ts.map +1 -0
  81. package/build/ts/health/health.controller.js +43 -0
  82. package/build/ts/health/health.controller.js.map +1 -0
  83. package/build/ts/health/health.module.d.ts +3 -0
  84. package/build/ts/health/health.module.d.ts.map +1 -0
  85. package/build/ts/health/health.module.js +21 -0
  86. package/build/ts/health/health.module.js.map +1 -0
  87. package/build/ts/health/health.service.d.ts +35 -0
  88. package/build/ts/health/health.service.d.ts.map +1 -0
  89. package/build/ts/health/health.service.js +169 -0
  90. package/build/ts/health/health.service.js.map +1 -0
  91. package/build/ts/health/types.d.ts +79 -0
  92. package/build/ts/health/types.d.ts.map +1 -0
  93. package/build/ts/health/types.js +2 -0
  94. package/build/ts/health/types.js.map +1 -0
  95. package/build/ts/proof/__tests__/proof.controller.test.js +5 -3
  96. package/build/ts/proof/__tests__/proof.controller.test.js.map +1 -1
  97. package/build/ts/proof/__tests__/proof.gateway.test.js +6 -3
  98. package/build/ts/proof/__tests__/proof.gateway.test.js.map +1 -1
  99. package/build/ts/proof/__tests__/proof.service.test.js +37 -76
  100. package/build/ts/proof/__tests__/proof.service.test.js.map +1 -1
  101. package/build/ts/proof/dto.d.ts +13 -15
  102. package/build/ts/proof/dto.d.ts.map +1 -1
  103. package/build/ts/proof/dto.js +51 -44
  104. package/build/ts/proof/dto.js.map +1 -1
  105. package/build/ts/proof/proof.controller.d.ts +3 -2
  106. package/build/ts/proof/proof.controller.d.ts.map +1 -1
  107. package/build/ts/proof/proof.controller.js +1 -4
  108. package/build/ts/proof/proof.controller.js.map +1 -1
  109. package/build/ts/proof/proof.service.d.ts +4 -6
  110. package/build/ts/proof/proof.service.d.ts.map +1 -1
  111. package/build/ts/proof/proof.service.js +48 -130
  112. package/build/ts/proof/proof.service.js.map +1 -1
  113. package/build/ts/proof/types.d.ts +19 -14
  114. package/build/ts/proof/types.d.ts.map +1 -1
  115. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js +2 -2
  116. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js.map +1 -1
  117. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.d.ts +53 -0
  118. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.d.ts.map +1 -0
  119. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.js +105 -0
  120. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.js.map +1 -0
  121. package/build/ts/sessionKeys/sessionKeys.service.d.ts +13 -2
  122. package/build/ts/sessionKeys/sessionKeys.service.d.ts.map +1 -1
  123. package/build/ts/sessionKeys/sessionKeys.service.js +22 -4
  124. package/build/ts/sessionKeys/sessionKeys.service.js.map +1 -1
  125. package/build/ts/subgraph/__tests__/subgraph.service.test.js +2 -3
  126. package/build/ts/subgraph/__tests__/subgraph.service.test.js.map +1 -1
  127. package/build/ts/subgraph/subgraph.service.d.ts +4 -0
  128. package/build/ts/subgraph/subgraph.service.d.ts.map +1 -1
  129. package/build/ts/subgraph/subgraph.service.js +16 -5
  130. package/build/ts/subgraph/subgraph.service.js.map +1 -1
  131. package/build/tsconfig.build.tsbuildinfo +1 -1
  132. package/package.json +36 -36
  133. package/build/tests/e2e.aa.test.d.ts +0 -2
  134. package/build/tests/e2e.aa.test.d.ts.map +0 -1
  135. package/build/tests/e2e.aa.test.js +0 -103
  136. package/build/tests/e2e.aa.test.js.map +0 -1
  137. package/build/ts/deployer/utils.d.ts +0 -8
  138. package/build/ts/deployer/utils.d.ts.map +0 -1
  139. package/build/ts/deployer/utils.js +0 -9
  140. package/build/ts/deployer/utils.js.map +0 -1
@@ -0,0 +1,22 @@
1
+ import { zeroAddress } from "viem";
2
+ import { FileService } from "../../file/file.service";
3
+ import { HealthController } from "../health.controller";
4
+ import { HealthService } from "../health.service";
5
+ describe("HealthController", () => {
6
+ const healthController = new HealthController(new HealthService(new FileService()));
7
+ describe("v1/health/check", () => {
8
+ it("should return health check response", async () => {
9
+ const { rapidsnark, zkeysDirectory, coordinatorWalletFunds } = await healthController.check();
10
+ const { availableZkeys } = zkeysDirectory;
11
+ const allZkeysAreSet = Object.values(availableZkeys).reduce((acc, zkey) => acc && typeof zkey === "object", true);
12
+ expect(rapidsnark.rapidsnarkExecutablePath).toBe(process.env.COORDINATOR_RAPIDSNARK_EXE);
13
+ expect(rapidsnark.rapidsnarkIsAccessible).toBe(true);
14
+ expect(rapidsnark.rapidsnarkIsExecutable).toBe(true);
15
+ expect(zkeysDirectory.zkeysDirectoryExists).toBe(true);
16
+ expect(allZkeysAreSet).toBe(true);
17
+ expect(coordinatorWalletFunds.address).toBeDefined();
18
+ expect(coordinatorWalletFunds.address).not.toBe(zeroAddress);
19
+ });
20
+ });
21
+ });
22
+ //# sourceMappingURL=health.controller.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.controller.test.js","sourceRoot":"","sources":["../../../../ts/health/__tests__/health.controller.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,aAAa,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC;IAEpF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAE9F,MAAM,EAAE,cAAc,EAAE,GAAG,cAAc,CAAC;YAE1C,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,IAAI,CAAC,CAAC;YAElH,MAAM,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACzF,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAErD,MAAM,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAElC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YACrD,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=health.service.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.service.test.d.ts","sourceRoot":"","sources":["../../../../ts/health/__tests__/health.service.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,77 @@
1
+ import { EMode } from "@maci-protocol/contracts";
2
+ import dotenv from "dotenv";
3
+ import { zeroAddress } from "viem";
4
+ import { FileService } from "../../file/file.service";
5
+ import { HealthService } from "../health.service";
6
+ dotenv.config();
7
+ describe("HealthService", () => {
8
+ const fileService = new FileService();
9
+ const healthService = new HealthService(fileService);
10
+ describe("checkRapidsnark", () => {
11
+ it("should return rapidsnark path and executability status", async () => {
12
+ const response = await healthService.checkRapidsnark();
13
+ expect(response.rapidsnarkExecutablePath).toBe(process.env.COORDINATOR_RAPIDSNARK_EXE);
14
+ expect(response.rapidsnarkIsAccessible).toBe(true);
15
+ expect(response.rapidsnarkIsExecutable).toBe(true);
16
+ });
17
+ it("should return false when rapidsnark path is not set", async () => {
18
+ process.env.COORDINATOR_RAPIDSNARK_EXE = "/incorrect/path/to/rapidsnark";
19
+ const response = await healthService.checkRapidsnark();
20
+ expect(response.rapidsnarkIsAccessible).toBe(false);
21
+ expect(response.rapidsnarkIsExecutable).toBe(false);
22
+ });
23
+ });
24
+ describe("checkZkeysDirectory", () => {
25
+ it("should return if zkeys directory exists and the available zkeys paths", async () => {
26
+ const { zkeysDirectoryExists, availableZkeys } = await healthService.checkZkeysDirectory();
27
+ const numberofZkeys = Object.keys(availableZkeys).length;
28
+ const expectedNumberOfZkeys = 1 + // poll joining zkey
29
+ 1 + // poll joined zkey
30
+ 3 + // message process zkey for modes (QV, NON_QV, FULL)
31
+ 2; // vote tally zkey for modes (only QV and NON_QV)
32
+ expect(zkeysDirectoryExists).toBe(true);
33
+ expect(numberofZkeys).toBe(expectedNumberOfZkeys);
34
+ });
35
+ it("should return less available zkeys when COORDINATOR_POLL_JOINING_ZKEY_NAME is not set in the env file", async () => {
36
+ process.env.COORDINATOR_POLL_JOINING_ZKEY_NAME = "/incorrect/path/to/poll_joining";
37
+ const { availableZkeys } = await healthService.checkZkeysDirectory();
38
+ expect(availableZkeys[process.env.COORDINATOR_POLL_JOINING_ZKEY_NAME]).toBe(undefined);
39
+ });
40
+ it("should return less available zkeys when COORDINATOR_POLL_JOINED_ZKEY_NAME is not set in the env file", async () => {
41
+ process.env.COORDINATOR_POLL_JOINED_ZKEY_NAME = "/incorrect/path/to/poll_joined";
42
+ const { availableZkeys } = await healthService.checkZkeysDirectory();
43
+ expect(availableZkeys[process.env.COORDINATOR_POLL_JOINED_ZKEY_NAME]).toBe(undefined);
44
+ });
45
+ it("should return less available zkeys when COORDINATOR_TALLY_ZKEY_NAME is not set in the env file", async () => {
46
+ process.env.COORDINATOR_TALLY_ZKEY_NAME = "/incorrect/path/to/tally_zkey";
47
+ const { availableZkeys } = await healthService.checkZkeysDirectory();
48
+ expect(availableZkeys[`${process.env.COORDINATOR_TALLY_ZKEY_NAME}_Mode_${String(EMode.NON_QV)}`]).toBe(undefined);
49
+ expect(availableZkeys[`${process.env.COORDINATOR_TALLY_ZKEY_NAME}_Mode_${String(EMode.QV)}`]).toBe(undefined);
50
+ });
51
+ it("should return less available zkeys when COORDINATOR_MESSAGE_PROCESS_ZKEY_NAME is not set in the env file", async () => {
52
+ process.env.COORDINATOR_MESSAGE_PROCESS_ZKEY_NAME = "/incorrect/path/to/message_process_zkey";
53
+ const { availableZkeys } = await healthService.checkZkeysDirectory();
54
+ expect(availableZkeys[`${process.env.COORDINATOR_MESSAGE_PROCESS_ZKEY_NAME}_Mode_${String(EMode.NON_QV)}`]).toBe(undefined);
55
+ expect(availableZkeys[`${process.env.COORDINATOR_MESSAGE_PROCESS_ZKEY_NAME}_Mode_${String(EMode.QV)}`]).toBe(undefined);
56
+ expect(availableZkeys[`${process.env.COORDINATOR_MESSAGE_PROCESS_ZKEY_NAME}_Mode_${String(EMode.FULL)}`]).toBe(undefined);
57
+ });
58
+ it("should return false when zkeys directory is not set", async () => {
59
+ process.env.COORDINATOR_ZKEY_PATH = "/incorrect/path/to/zkeys";
60
+ const { zkeysDirectoryExists } = await healthService.checkZkeysDirectory();
61
+ expect(zkeysDirectoryExists).toBe(false);
62
+ });
63
+ });
64
+ describe("checkWalletFunds", () => {
65
+ it("should return the wallet address", async () => {
66
+ const { address } = await healthService.checkWalletFunds();
67
+ expect(address).toBeDefined();
68
+ expect(address).not.toBe(zeroAddress);
69
+ });
70
+ it("should return 0x if coordinator private key is not set", async () => {
71
+ process.env.PRIVATE_KEY = "";
72
+ const { address } = await healthService.checkWalletFunds();
73
+ expect(address).toBe(zeroAddress);
74
+ });
75
+ });
76
+ });
77
+ //# sourceMappingURL=health.service.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.service.test.js","sourceRoot":"","sources":["../../../../ts/health/__tests__/health.service.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { HealthService } from "./health.service";
2
+ import { IHealthCheckResponse } from "./types";
3
+ export declare class HealthController {
4
+ private readonly healthService;
5
+ /**
6
+ * Initialize HealthController
7
+ */
8
+ constructor(healthService: HealthService);
9
+ /**
10
+ * Health check api method.
11
+ *
12
+ * @returns true if the service is running
13
+ */
14
+ check(): Promise<IHealthCheckResponse>;
15
+ }
16
+ //# sourceMappingURL=health.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.controller.d.ts","sourceRoot":"","sources":["../../../ts/health/health.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,qBAEa,gBAAgB;IAIf,OAAO,CAAC,QAAQ,CAAC,aAAa;IAH1C;;OAEG;gBAC0B,aAAa,EAAE,aAAa;IAEzD;;;;OAIG;IAGH,KAAK,IAAI,OAAO,CAAC,oBAAoB,CAAC;CAGvC"}
@@ -0,0 +1,43 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Controller, Get, HttpStatus } from "@nestjs/common";
11
+ import { ApiResponse, ApiTags } from "@nestjs/swagger";
12
+ import { HealthService } from "./health.service";
13
+ let HealthController = class HealthController {
14
+ healthService;
15
+ /**
16
+ * Initialize HealthController
17
+ */
18
+ constructor(healthService) {
19
+ this.healthService = healthService;
20
+ }
21
+ /**
22
+ * Health check api method.
23
+ *
24
+ * @returns true if the service is running
25
+ */
26
+ check() {
27
+ return this.healthService.checkCoordinatorHealth();
28
+ }
29
+ };
30
+ __decorate([
31
+ ApiResponse({ status: HttpStatus.OK, description: "The service is running" }),
32
+ Get("check"),
33
+ __metadata("design:type", Function),
34
+ __metadata("design:paramtypes", []),
35
+ __metadata("design:returntype", Promise)
36
+ ], HealthController.prototype, "check", null);
37
+ HealthController = __decorate([
38
+ ApiTags("v1/health"),
39
+ Controller("v1/health"),
40
+ __metadata("design:paramtypes", [HealthService])
41
+ ], HealthController);
42
+ export { HealthController };
43
+ //# sourceMappingURL=health.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.controller.js","sourceRoot":"","sources":["../../../ts/health/health.controller.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAK1C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAIE;IAH7B;;OAEG;IACH,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAE7D;;;;OAIG;IAGH,KAAK;QACH,OAAO,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;IACrD,CAAC;CACF,CAAA;AAHC;IAFC,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;IAC7E,GAAG,CAAC,OAAO,CAAC;;;;6CAGZ;AAfU,gBAAgB;IAF5B,OAAO,CAAC,WAAW,CAAC;IACpB,UAAU,CAAC,WAAW,CAAC;qCAKsB,aAAa;GAJ9C,gBAAgB,CAgB5B"}
@@ -0,0 +1,3 @@
1
+ export declare class HealthModule {
2
+ }
3
+ //# sourceMappingURL=health.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.module.d.ts","sourceRoot":"","sources":["../../../ts/health/health.module.ts"],"names":[],"mappings":"AAOA,qBAKa,YAAY;CAAG"}
@@ -0,0 +1,21 @@
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 { FileModule } from "../file/file.module";
9
+ import { HealthController } from "./health.controller";
10
+ import { HealthService } from "./health.service";
11
+ let HealthModule = class HealthModule {
12
+ };
13
+ HealthModule = __decorate([
14
+ Module({
15
+ imports: [FileModule],
16
+ controllers: [HealthController],
17
+ providers: [HealthService],
18
+ })
19
+ ], HealthModule);
20
+ export { HealthModule };
21
+ //# sourceMappingURL=health.module.js.map
@@ -0,0 +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;AAEjD,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,CAAC;QACrB,WAAW,EAAE,CAAC,gBAAgB,CAAC;QAC/B,SAAS,EAAE,CAAC,aAAa,CAAC;KAC3B,CAAC;GACW,YAAY,CAAG"}
@@ -0,0 +1,35 @@
1
+ import type { ICheckRapidsnark, ICheckWalletFunds, ICheckZkeysDirectory, IHealthCheckResponse } from "./types";
2
+ import { FileService } from "../file/file.service";
3
+ /**
4
+ * Health service functions to check the status of the coordinator service.
5
+ */
6
+ export declare class HealthService {
7
+ private readonly fileService;
8
+ /**
9
+ * Create a new instance of the HealthService.
10
+ *
11
+ * @param fileService - file service
12
+ */
13
+ constructor(fileService: FileService);
14
+ /**
15
+ * Check if rapidsnark is available and executable.
16
+ * @returns the rapidsnark executable path and its executability status
17
+ */
18
+ checkRapidsnark(): Promise<ICheckRapidsnark>;
19
+ /**
20
+ * Check if zkeys directory exists
21
+ * @returns the existence of the zkeys directory and the required zkeys
22
+ */
23
+ checkZkeysDirectory(): Promise<ICheckZkeysDirectory>;
24
+ /**
25
+ * Check if coordinator wallet has funds
26
+ * @returns the address and its funds in all networks
27
+ */
28
+ checkWalletFunds(): Promise<ICheckWalletFunds>;
29
+ /**
30
+ * Check coordinator service health
31
+ * @returns an object containing the results of all the health checks
32
+ */
33
+ checkCoordinatorHealth(): Promise<IHealthCheckResponse>;
34
+ }
35
+ //# sourceMappingURL=health.service.d.ts.map
@@ -0,0 +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;AAEnD;;GAEG;AACH,qBACa,aAAa;IAMZ,OAAO,CAAC,QAAQ,CAAC,WAAW;IALxC;;;;OAIG;gBAC0B,WAAW,EAAE,WAAW;IAErD;;;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;IACG,sBAAsB,IAAI,OAAO,CAAC,oBAAoB,CAAC;CAa9D"}
@@ -0,0 +1,169 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { EMode } from "@maci-protocol/sdk";
11
+ import { Injectable } from "@nestjs/common";
12
+ import { formatEther } from "ethers";
13
+ import { zeroAddress } from "viem";
14
+ import fs from "fs";
15
+ import path from "path";
16
+ import { ESupportedNetworks, getSigner } from "../common";
17
+ import { FileService } from "../file/file.service";
18
+ /**
19
+ * Health service functions to check the status of the coordinator service.
20
+ */
21
+ let HealthService = class HealthService {
22
+ fileService;
23
+ /**
24
+ * Create a new instance of the HealthService.
25
+ *
26
+ * @param fileService - file service
27
+ */
28
+ constructor(fileService) {
29
+ this.fileService = fileService;
30
+ }
31
+ /**
32
+ * Check if rapidsnark is available and executable.
33
+ * @returns the rapidsnark executable path and its executability status
34
+ */
35
+ async checkRapidsnark() {
36
+ const rapidsnarkExecutablePath = process.env.COORDINATOR_RAPIDSNARK_EXE || "";
37
+ const [rapidsnarkIsAccessible, rapidsnarkIsExecutable] = await Promise.all([
38
+ fs.promises
39
+ // eslint-disable-next-line no-bitwise
40
+ .access(rapidsnarkExecutablePath, fs.constants.F_OK | fs.constants.X_OK)
41
+ .then(() => true)
42
+ .catch(() => false),
43
+ fs.promises
44
+ // eslint-disable-next-line no-bitwise
45
+ .stat(rapidsnarkExecutablePath)
46
+ .then((stats) => stats.isFile())
47
+ .catch(() => false),
48
+ ]);
49
+ return {
50
+ rapidsnarkExecutablePath,
51
+ rapidsnarkIsAccessible,
52
+ rapidsnarkIsExecutable,
53
+ };
54
+ }
55
+ /**
56
+ * Check if zkeys directory exists
57
+ * @returns the existence of the zkeys directory and the required zkeys
58
+ */
59
+ async checkZkeysDirectory() {
60
+ const zkeysDirectoryPath = path.resolve(process.env.COORDINATOR_ZKEY_PATH);
61
+ const requiredZkeyNames = [
62
+ {
63
+ name: process.env.COORDINATOR_TALLY_ZKEY_NAME,
64
+ modes: [EMode.QV, EMode.NON_QV],
65
+ },
66
+ {
67
+ name: process.env.COORDINATOR_MESSAGE_PROCESS_ZKEY_NAME,
68
+ modes: [EMode.QV, EMode.NON_QV, EMode.FULL],
69
+ },
70
+ {
71
+ name: process.env.COORDINATOR_POLL_JOINING_ZKEY_NAME,
72
+ },
73
+ {
74
+ name: process.env.COORDINATOR_POLL_JOINED_ZKEY_NAME,
75
+ },
76
+ ];
77
+ const zkeysDirectoryExists = await fs.promises
78
+ .stat(zkeysDirectoryPath)
79
+ .then((stats) => stats.isDirectory())
80
+ .catch(() => false);
81
+ const availableZkeys = requiredZkeyNames.reduce((acc, { name, modes }) => {
82
+ if (!modes) {
83
+ try {
84
+ acc[name] = this.fileService.getZkeyFilePaths(name);
85
+ }
86
+ catch (error) {
87
+ acc[name] = undefined;
88
+ }
89
+ return acc;
90
+ }
91
+ const modeEntries = modes.reduce((modeAcc, mode) => {
92
+ const pathname = `${name}_Mode_${String(mode)}`;
93
+ try {
94
+ // eslint-disable-next-line no-param-reassign
95
+ modeAcc[pathname] = this.fileService.getZkeyFilePaths(name, mode);
96
+ }
97
+ catch (error) {
98
+ // eslint-disable-next-line no-param-reassign
99
+ modeAcc[pathname] = undefined;
100
+ }
101
+ return modeAcc;
102
+ }, {});
103
+ return { ...acc, ...modeEntries };
104
+ }, {});
105
+ return {
106
+ zkeysDirectoryExists,
107
+ availableZkeys,
108
+ };
109
+ }
110
+ /**
111
+ * Check if coordinator wallet has funds
112
+ * @returns the address and its funds in all networks
113
+ */
114
+ async checkWalletFunds() {
115
+ let address;
116
+ const networks = Object.values(ESupportedNetworks);
117
+ try {
118
+ const signer = getSigner(networks[0]);
119
+ address = await signer.getAddress();
120
+ }
121
+ catch (error) {
122
+ return {
123
+ address: zeroAddress,
124
+ fundsInNetworks: [],
125
+ };
126
+ }
127
+ const fundsInNetworks = await Promise.all(networks.map(async (network) => {
128
+ const signer = getSigner(network);
129
+ return signer.provider
130
+ ?.getBalance(address)
131
+ .then((balance) => ({
132
+ network,
133
+ balance: formatEther(balance),
134
+ status: true,
135
+ }))
136
+ .catch(() => ({
137
+ network,
138
+ balance: formatEther(0n),
139
+ status: false,
140
+ }));
141
+ }));
142
+ return {
143
+ address,
144
+ fundsInNetworks,
145
+ };
146
+ }
147
+ /**
148
+ * Check coordinator service health
149
+ * @returns an object containing the results of all the health checks
150
+ */
151
+ async checkCoordinatorHealth() {
152
+ const [rapidsnark, zkeysDirectory, coordinatorWalletFunds] = await Promise.all([
153
+ this.checkRapidsnark(),
154
+ this.checkZkeysDirectory(),
155
+ this.checkWalletFunds(),
156
+ ]);
157
+ return {
158
+ rapidsnark,
159
+ zkeysDirectory,
160
+ coordinatorWalletFunds,
161
+ };
162
+ }
163
+ };
164
+ HealthService = __decorate([
165
+ Injectable(),
166
+ __metadata("design:paramtypes", [FileService])
167
+ ], HealthService);
168
+ export { HealthService };
169
+ //# sourceMappingURL=health.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.service.js","sourceRoot":"","sources":["../../../ts/health/health.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import type { IGetZkeyFilePathsData } from "../file/types";
2
+ /**
3
+ * Interface for checking the rapidsnark setup
4
+ */
5
+ export interface ICheckRapidsnark {
6
+ /**
7
+ * Rapidsnark executable path
8
+ */
9
+ rapidsnarkExecutablePath: string;
10
+ /**
11
+ * Is rapidsnark accessible
12
+ */
13
+ rapidsnarkIsAccessible: boolean;
14
+ /**
15
+ * Is rapidsnark executable
16
+ */
17
+ rapidsnarkIsExecutable: boolean;
18
+ }
19
+ /**
20
+ * Interface for checking the zkeys directory
21
+ */
22
+ export interface ICheckZkeysDirectory {
23
+ /**
24
+ * Does zkeys directory exist
25
+ */
26
+ zkeysDirectoryExists: boolean;
27
+ /**
28
+ * Available zkeys
29
+ */
30
+ availableZkeys: Record<string, IGetZkeyFilePathsData | undefined>;
31
+ }
32
+ /**
33
+ * Interface for network info (balance and status)
34
+ */
35
+ export interface INetworkInfo {
36
+ /**
37
+ * Network name
38
+ */
39
+ network: string;
40
+ /**
41
+ * Balance in the network
42
+ */
43
+ balance: string;
44
+ /**
45
+ * Is the network accessible
46
+ */
47
+ status: boolean;
48
+ }
49
+ /**
50
+ * Interface for checking the coordinator wallet funds
51
+ */
52
+ export interface ICheckWalletFunds {
53
+ /**
54
+ * Coordinator address
55
+ */
56
+ address: string;
57
+ /**
58
+ * Funds in all networks
59
+ */
60
+ fundsInNetworks: (INetworkInfo | undefined)[];
61
+ }
62
+ /**
63
+ * Interface for the health check response
64
+ */
65
+ export interface IHealthCheckResponse {
66
+ /**
67
+ * Rapidsnark check result
68
+ */
69
+ rapidsnark: ICheckRapidsnark;
70
+ /**
71
+ * Zkeys directory check result
72
+ */
73
+ zkeysDirectory: ICheckZkeysDirectory;
74
+ /**
75
+ * Coordinator wallet funds check result
76
+ */
77
+ coordinatorWalletFunds: ICheckWalletFunds;
78
+ }
79
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +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;CAC3C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../ts/health/types.ts"],"names":[],"mappings":""}
@@ -1,3 +1,4 @@
1
+ import { EMode } from "@maci-protocol/sdk";
1
2
  import { HttpException, HttpStatus } from "@nestjs/common";
2
3
  import { Test } from "@nestjs/testing";
3
4
  import { ESupportedNetworks } from "../../common";
@@ -9,9 +10,10 @@ describe("ProofController", () => {
9
10
  const defaultProofGeneratorArgs = {
10
11
  poll: 0,
11
12
  maciContractAddress: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
12
- tallyContractAddress: "0x6F1216D1BFe15c98520CA1434FC1d9D57AC95321",
13
- useQuadraticVoting: false,
14
- encryptedCoordinatorPrivateKey: "siO9W/g7jNVXs9tOUv/pffrcqYdMlgdXw7nSSlqM1q1UvHGSSbhtLJpeT+nJKW7/+xrBTgI0wB866DSkg8Rgr8zD+POUMiKPrGqAO/XhrcmRDL+COURFNDRh9WGeAua6hdiNoufQYvXPl1iWyIYidSDbfmC2wR6F9vVkhg/6KDZyw8Wlr6LUh0RYT+hUHEwwGbz7MeqZJcJQSTpECPF5pnk8NTHL2W/XThaewB4n4HYqjDUbYLmBDLYWsDDMgoPo709a309rTq3uEe0YBgVF8g9aGxucTDhz+/LYYzqaeSxclUwen9Z4BGZjiDSPBZfooOEQEEwIJlViQ2kl1VeOKAmkiWEUVfItivmNbC/PNZchklmfFsGpiu4DT9UU9YVBN2OTcFYHHsslcaqrR7SuesqjluaGjG46oYEmfQlkZ4gXhavdWXw2ant+Tv6HRo4trqjoD1e3jUkN6gJMWomxOeRBTg0czBZlz/IwUtTpBHcKhi3EqGQo8OuQtWww+Ts7ySmeoONuovYUsIAppNuOubfUxvFJoTr2vKbWNAiYetw09kddkjmBe+S8A5PUiFOi262mfc7g5wJwPPP7wpTBY0Fya+2BCPzXqRLMOtNI+1tW3/UQLZYvEY8J0TxmhoAGZaRn8FKaosatRxDZTQS6QUNmKxpmUspkRKzTXN5lznM=",
13
+ mode: EMode.NON_QV,
14
+ sessionKeyAddress: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
15
+ approval: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
16
+ chain: ESupportedNetworks.LOCALHOST,
15
17
  };
16
18
  const defaultMergeArgs = {
17
19
  maciContractAddress: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
@@ -1 +1 @@
1
- {"version":3,"file":"proof.controller.test.js","sourceRoot":"","sources":["../../../../ts/proof/__tests__/proof.controller.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proof.controller.test.js","sourceRoot":"","sources":["../../../../ts/proof/__tests__/proof.controller.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAmB,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAKvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,eAAgC,CAAC;IAErC,MAAM,yBAAyB,GAAkB;QAC/C,IAAI,EAAE,CAAC;QACP,mBAAmB,EAAE,4CAA4C;QACjE,IAAI,EAAE,KAAK,CAAC,MAAM;QAClB,iBAAiB,EAAE,4CAA4C;QAC/D,QAAQ,EAAE,4CAA4C;QACtD,KAAK,EAAE,kBAAkB,CAAC,SAAS;KACpC,CAAC;IAEF,MAAM,gBAAgB,GAAe;QACnC,mBAAmB,EAAE,4CAA4C;QACjE,MAAM,EAAE,CAAC;QACT,iBAAiB,EAAE,4CAA4C;QAC/D,QAAQ,EAAE,4CAA4C;QACtD,KAAK,EAAE,kBAAkB,CAAC,SAAS;KACpC,CAAC;IAEF,MAAM,yBAAyB,GAAkB;QAC/C,WAAW,EAAE,EAAE;QACf,aAAa,EAAE,EAAE;QACjB,SAAS,EAAE,EAAgB;KAC5B,CAAC;IAEF,MAAM,oBAAoB,GAAsB;QAC9C,SAAS,EAAE,KAAK;KACjB,CAAC;IAEF,MAAM,oBAAoB,GAAG;QAC3B,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;QACnB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;KACjB,CAAC;IAEF,MAAM,eAAe,GAAG;QACtB,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;KACxB,CAAC;IAEF,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC;YACzC,WAAW,EAAE,CAAC,eAAe,CAAC;SAC/B,CAAC;aACC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,IAAI,KAAK,KAAK,qBAAqB,EAAE,CAAC;gBACpC,oBAAoB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;gBAC3E,oBAAoB,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAEnD,OAAO,oBAAoB,CAAC;YAC9B,CAAC;YAED,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC1B,eAAe,CAAC,YAAY,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;gBAErE,OAAO,eAAe,CAAC;YACzB,CAAC;YAED,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;QACnB,CAAC,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,eAAe,GAAG,GAAG,CAAC,GAAG,CAAkB,eAAe,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,IAAI,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;YACvE,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,oBAAoB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAEvD,MAAM,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC/E,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CACzD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,IAAI,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,YAAY,EAAE,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,eAAe,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAEtD,MAAM,MAAM,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAC1D,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CACzD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,4 +1,6 @@
1
+ import { EMode } from "@maci-protocol/sdk";
1
2
  import { Test } from "@nestjs/testing";
3
+ import { ESupportedNetworks } from "../../common";
2
4
  import { ProofGateway } from "../proof.gateway";
3
5
  import { ProofGeneratorService } from "../proof.service";
4
6
  import { EProofGenerationEvents } from "../types";
@@ -7,9 +9,10 @@ describe("ProofGateway", () => {
7
9
  const defaultProofGeneratorArgs = {
8
10
  poll: 0,
9
11
  maciContractAddress: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
10
- tallyContractAddress: "0x6F1216D1BFe15c98520CA1434FC1d9D57AC95321",
11
- useQuadraticVoting: false,
12
- encryptedCoordinatorPrivateKey: "siO9W/g7jNVXs9tOUv/pffrcqYdMlgdXw7nSSlqM1q1UvHGSSbhtLJpeT+nJKW7/+xrBTgI0wB866DSkg8Rgr8zD+POUMiKPrGqAO/XhrcmRDL+COURFNDRh9WGeAua6hdiNoufQYvXPl1iWyIYidSDbfmC2wR6F9vVkhg/6KDZyw8Wlr6LUh0RYT+hUHEwwGbz7MeqZJcJQSTpECPF5pnk8NTHL2W/XThaewB4n4HYqjDUbYLmBDLYWsDDMgoPo709a309rTq3uEe0YBgVF8g9aGxucTDhz+/LYYzqaeSxclUwen9Z4BGZjiDSPBZfooOEQEEwIJlViQ2kl1VeOKAmkiWEUVfItivmNbC/PNZchklmfFsGpiu4DT9UU9YVBN2OTcFYHHsslcaqrR7SuesqjluaGjG46oYEmfQlkZ4gXhavdWXw2ant+Tv6HRo4trqjoD1e3jUkN6gJMWomxOeRBTg0czBZlz/IwUtTpBHcKhi3EqGQo8OuQtWww+Ts7ySmeoONuovYUsIAppNuOubfUxvFJoTr2vKbWNAiYetw09kddkjmBe+S8A5PUiFOi262mfc7g5wJwPPP7wpTBY0Fya+2BCPzXqRLMOtNI+1tW3/UQLZYvEY8J0TxmhoAGZaRn8FKaosatRxDZTQS6QUNmKxpmUspkRKzTXN5lznM=",
12
+ mode: EMode.NON_QV,
13
+ sessionKeyAddress: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
14
+ approval: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
15
+ chain: ESupportedNetworks.LOCALHOST,
13
16
  };
14
17
  const defaultProofGeneratorData = {
15
18
  tallyProofs: [],
@@ -1 +1 @@
1
- {"version":3,"file":"proof.gateway.test.js","sourceRoot":"","sources":["../../../../ts/proof/__tests__/proof.gateway.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proof.gateway.test.js","sourceRoot":"","sources":["../../../../ts/proof/__tests__/proof.gateway.test.ts"],"names":[],"mappings":"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"}