@maci-protocol/coordinator 0.0.0-ci.35811cf → 0.0.0-ci.35e2fb7

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 (158) hide show
  1. package/README.md +18 -0
  2. package/build/scripts/generateKeypair.js +2 -2
  3. package/build/scripts/generateKeypair.js.map +1 -1
  4. package/build/tests/e2e.deploy.test.js +56 -48
  5. package/build/tests/e2e.deploy.test.js.map +1 -1
  6. package/build/tests/e2e.redis.test.d.ts +2 -0
  7. package/build/tests/e2e.redis.test.d.ts.map +1 -0
  8. package/build/tests/e2e.redis.test.js +119 -0
  9. package/build/tests/e2e.redis.test.js.map +1 -0
  10. package/build/tests/utils.d.ts.map +1 -1
  11. package/build/tests/utils.js.map +1 -1
  12. package/build/ts/app.module.d.ts.map +1 -1
  13. package/build/ts/app.module.js +6 -0
  14. package/build/ts/app.module.js.map +1 -1
  15. package/build/ts/common/__tests__/common.test.js +6 -16
  16. package/build/ts/common/__tests__/common.test.js.map +1 -1
  17. package/build/ts/common/accountAbstraction.js +2 -2
  18. package/build/ts/common/accountAbstraction.js.map +1 -1
  19. package/build/ts/common/chain.d.ts +3 -3
  20. package/build/ts/common/chain.d.ts.map +1 -1
  21. package/build/ts/common/chain.js +13 -15
  22. package/build/ts/common/chain.js.map +1 -1
  23. package/build/ts/common/coordinatorKeypair.d.ts +7 -0
  24. package/build/ts/common/coordinatorKeypair.d.ts.map +1 -0
  25. package/build/ts/common/coordinatorKeypair.js +14 -0
  26. package/build/ts/common/coordinatorKeypair.js.map +1 -0
  27. package/build/ts/common/errors.d.ts +16 -12
  28. package/build/ts/common/errors.d.ts.map +1 -1
  29. package/build/ts/common/errors.js +16 -12
  30. package/build/ts/common/errors.js.map +1 -1
  31. package/build/ts/deployer/__tests__/deployer.controller.test.js +7 -7
  32. package/build/ts/deployer/__tests__/deployer.controller.test.js.map +1 -1
  33. package/build/ts/deployer/__tests__/deployer.service.test.js +71 -11
  34. package/build/ts/deployer/__tests__/deployer.service.test.js.map +1 -1
  35. package/build/ts/deployer/__tests__/utils.d.ts +2 -6
  36. package/build/ts/deployer/__tests__/utils.d.ts.map +1 -1
  37. package/build/ts/deployer/__tests__/utils.js +8 -12
  38. package/build/ts/deployer/__tests__/utils.js.map +1 -1
  39. package/build/ts/deployer/deployer.service.d.ts +17 -7
  40. package/build/ts/deployer/deployer.service.d.ts.map +1 -1
  41. package/build/ts/deployer/deployer.service.js +217 -60
  42. package/build/ts/deployer/deployer.service.js.map +1 -1
  43. package/build/ts/deployer/types.d.ts +22 -18
  44. package/build/ts/deployer/types.d.ts.map +1 -1
  45. package/build/ts/file/__tests__/file.service.test.js +12 -11
  46. package/build/ts/file/__tests__/file.service.test.js.map +1 -1
  47. package/build/ts/file/file.service.d.ts +4 -3
  48. package/build/ts/file/file.service.d.ts.map +1 -1
  49. package/build/ts/file/file.service.js +16 -10
  50. package/build/ts/file/file.service.js.map +1 -1
  51. package/build/ts/file/types.d.ts +2 -2
  52. package/build/ts/file/types.d.ts.map +1 -1
  53. package/build/ts/health/__tests__/health.controller.test.d.ts +2 -0
  54. package/build/ts/health/__tests__/health.controller.test.d.ts.map +1 -0
  55. package/build/ts/health/__tests__/health.controller.test.js +28 -0
  56. package/build/ts/health/__tests__/health.controller.test.js.map +1 -0
  57. package/build/ts/health/__tests__/health.service.test.d.ts +2 -0
  58. package/build/ts/health/__tests__/health.service.test.d.ts.map +1 -0
  59. package/build/ts/health/__tests__/health.service.test.js +88 -0
  60. package/build/ts/health/__tests__/health.service.test.js.map +1 -0
  61. package/build/ts/health/health.controller.d.ts +16 -0
  62. package/build/ts/health/health.controller.d.ts.map +1 -0
  63. package/build/ts/health/health.controller.js +43 -0
  64. package/build/ts/health/health.controller.js.map +1 -0
  65. package/build/ts/health/health.module.d.ts +3 -0
  66. package/build/ts/health/health.module.d.ts.map +1 -0
  67. package/build/ts/health/health.module.js +22 -0
  68. package/build/ts/health/health.module.js.map +1 -0
  69. package/build/ts/health/health.service.d.ts +42 -0
  70. package/build/ts/health/health.service.d.ts.map +1 -0
  71. package/build/ts/health/health.service.js +182 -0
  72. package/build/ts/health/health.service.js.map +1 -0
  73. package/build/ts/health/types.d.ts +83 -0
  74. package/build/ts/health/types.d.ts.map +1 -0
  75. package/build/ts/health/types.js +2 -0
  76. package/build/ts/health/types.js.map +1 -0
  77. package/build/ts/proof/__tests__/proof.controller.test.js +2 -2
  78. package/build/ts/proof/__tests__/proof.controller.test.js.map +1 -1
  79. package/build/ts/proof/__tests__/proof.gateway.test.js +2 -2
  80. package/build/ts/proof/__tests__/proof.gateway.test.js.map +1 -1
  81. package/build/ts/proof/__tests__/proof.service.test.js +32 -73
  82. package/build/ts/proof/__tests__/proof.service.test.js.map +1 -1
  83. package/build/ts/proof/dto.d.ts +3 -6
  84. package/build/ts/proof/dto.d.ts.map +1 -1
  85. package/build/ts/proof/dto.js +9 -23
  86. package/build/ts/proof/dto.js.map +1 -1
  87. package/build/ts/proof/proof.controller.d.ts.map +1 -1
  88. package/build/ts/proof/proof.controller.js +1 -4
  89. package/build/ts/proof/proof.controller.js.map +1 -1
  90. package/build/ts/proof/proof.service.d.ts +2 -4
  91. package/build/ts/proof/proof.service.d.ts.map +1 -1
  92. package/build/ts/proof/proof.service.js +26 -27
  93. package/build/ts/proof/proof.service.js.map +1 -1
  94. package/build/ts/proof/types.d.ts +3 -6
  95. package/build/ts/proof/types.d.ts.map +1 -1
  96. package/build/ts/redis/__tests__/redis.service.test.d.ts +2 -0
  97. package/build/ts/redis/__tests__/redis.service.test.d.ts.map +1 -0
  98. package/build/ts/redis/__tests__/redis.service.test.js +149 -0
  99. package/build/ts/redis/__tests__/redis.service.test.js.map +1 -0
  100. package/build/ts/redis/redis.module.d.ts +3 -0
  101. package/build/ts/redis/redis.module.d.ts.map +1 -0
  102. package/build/ts/redis/redis.module.js +18 -0
  103. package/build/ts/redis/redis.module.js.map +1 -0
  104. package/build/ts/redis/redis.service.d.ts +52 -0
  105. package/build/ts/redis/redis.service.d.ts.map +1 -0
  106. package/build/ts/redis/redis.service.js +97 -0
  107. package/build/ts/redis/redis.service.js.map +1 -0
  108. package/build/ts/redis/types.d.ts +54 -0
  109. package/build/ts/redis/types.d.ts.map +1 -0
  110. package/build/ts/redis/types.js +2 -0
  111. package/build/ts/redis/types.js.map +1 -0
  112. package/build/ts/redis/utils.d.ts +20 -0
  113. package/build/ts/redis/utils.d.ts.map +1 -0
  114. package/build/ts/redis/utils.js +27 -0
  115. package/build/ts/redis/utils.js.map +1 -0
  116. package/build/ts/scheduler/__tests__/scheduler.controller.test.d.ts +2 -0
  117. package/build/ts/scheduler/__tests__/scheduler.controller.test.d.ts.map +1 -0
  118. package/build/ts/scheduler/__tests__/scheduler.controller.test.js +63 -0
  119. package/build/ts/scheduler/__tests__/scheduler.controller.test.js.map +1 -0
  120. package/build/ts/scheduler/__tests__/scheduler.service.test.d.ts +2 -0
  121. package/build/ts/scheduler/__tests__/scheduler.service.test.d.ts.map +1 -0
  122. package/build/ts/scheduler/__tests__/scheduler.service.test.js +264 -0
  123. package/build/ts/scheduler/__tests__/scheduler.service.test.js.map +1 -0
  124. package/build/ts/scheduler/dto.d.ts +42 -0
  125. package/build/ts/scheduler/dto.d.ts.map +1 -0
  126. package/build/ts/scheduler/dto.js +116 -0
  127. package/build/ts/scheduler/dto.js.map +1 -0
  128. package/build/ts/scheduler/scheduler.controller.d.ts +32 -0
  129. package/build/ts/scheduler/scheduler.controller.d.ts.map +1 -0
  130. package/build/ts/scheduler/scheduler.controller.js +111 -0
  131. package/build/ts/scheduler/scheduler.controller.js.map +1 -0
  132. package/build/ts/scheduler/scheduler.module.d.ts +3 -0
  133. package/build/ts/scheduler/scheduler.module.d.ts.map +1 -0
  134. package/build/ts/scheduler/scheduler.module.js +23 -0
  135. package/build/ts/scheduler/scheduler.module.js.map +1 -0
  136. package/build/ts/scheduler/scheduler.service.d.ts +63 -0
  137. package/build/ts/scheduler/scheduler.service.d.ts.map +1 -0
  138. package/build/ts/scheduler/scheduler.service.js +239 -0
  139. package/build/ts/scheduler/scheduler.service.js.map +1 -0
  140. package/build/ts/scheduler/types.d.ts +61 -0
  141. package/build/ts/scheduler/types.d.ts.map +1 -0
  142. package/build/ts/scheduler/types.js +2 -0
  143. package/build/ts/scheduler/types.js.map +1 -0
  144. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js +2 -2
  145. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js.map +1 -1
  146. package/build/ts/sessionKeys/sessionKeys.service.js.map +1 -1
  147. package/build/ts/subgraph/__tests__/subgraph.service.test.js +2 -3
  148. package/build/ts/subgraph/__tests__/subgraph.service.test.js.map +1 -1
  149. package/build/ts/subgraph/subgraph.service.d.ts +4 -0
  150. package/build/ts/subgraph/subgraph.service.d.ts.map +1 -1
  151. package/build/ts/subgraph/subgraph.service.js +16 -5
  152. package/build/ts/subgraph/subgraph.service.js.map +1 -1
  153. package/build/tsconfig.build.tsbuildinfo +1 -1
  154. package/package.json +37 -36
  155. package/build/tests/e2e.aa.test.d.ts +0 -2
  156. package/build/tests/e2e.aa.test.d.ts.map +0 -1
  157. package/build/tests/e2e.aa.test.js +0 -106
  158. package/build/tests/e2e.aa.test.js.map +0 -1
@@ -0,0 +1,182 @@
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
+ import { RedisService } from "../redis/redis.service";
19
+ /**
20
+ * Health service functions to check the status of the coordinator service.
21
+ */
22
+ let HealthService = class HealthService {
23
+ fileService;
24
+ redisService;
25
+ /**
26
+ * Create a new instance of the HealthService.
27
+ *
28
+ * @param fileService - file service
29
+ */
30
+ constructor(fileService, redisService) {
31
+ this.fileService = fileService;
32
+ this.redisService = redisService;
33
+ }
34
+ /**
35
+ * Check if rapidsnark is available and executable.
36
+ * @returns the rapidsnark executable path and its executability status
37
+ */
38
+ async checkRapidsnark() {
39
+ const rapidsnarkExecutablePath = process.env.COORDINATOR_RAPIDSNARK_EXE || "";
40
+ const [rapidsnarkIsAccessible, rapidsnarkIsExecutable] = await Promise.all([
41
+ fs.promises
42
+ // eslint-disable-next-line no-bitwise
43
+ .access(rapidsnarkExecutablePath, fs.constants.F_OK | fs.constants.X_OK)
44
+ .then(() => true)
45
+ .catch(() => false),
46
+ fs.promises
47
+ // eslint-disable-next-line no-bitwise
48
+ .stat(rapidsnarkExecutablePath)
49
+ .then((stats) => stats.isFile())
50
+ .catch(() => false),
51
+ ]);
52
+ return {
53
+ rapidsnarkExecutablePath,
54
+ rapidsnarkIsAccessible,
55
+ rapidsnarkIsExecutable,
56
+ };
57
+ }
58
+ /**
59
+ * Check if zkeys directory exists
60
+ * @returns the existence of the zkeys directory and the required zkeys
61
+ */
62
+ async checkZkeysDirectory() {
63
+ const zkeysDirectoryPath = path.resolve(process.env.COORDINATOR_ZKEY_PATH);
64
+ const requiredZkeyNames = [
65
+ {
66
+ name: process.env.COORDINATOR_TALLY_ZKEY_NAME,
67
+ modes: [EMode.QV, EMode.NON_QV],
68
+ },
69
+ {
70
+ name: process.env.COORDINATOR_MESSAGE_PROCESS_ZKEY_NAME,
71
+ modes: [EMode.QV, EMode.NON_QV, EMode.FULL],
72
+ },
73
+ {
74
+ name: process.env.COORDINATOR_POLL_JOINING_ZKEY_NAME,
75
+ },
76
+ {
77
+ name: process.env.COORDINATOR_POLL_JOINED_ZKEY_NAME,
78
+ },
79
+ ];
80
+ const zkeysDirectoryExists = await fs.promises
81
+ .stat(zkeysDirectoryPath)
82
+ .then((stats) => stats.isDirectory())
83
+ .catch(() => false);
84
+ const availableZkeys = requiredZkeyNames.reduce((acc, { name, modes }) => {
85
+ if (!modes) {
86
+ try {
87
+ acc[name] = this.fileService.getZkeyFilePaths(name);
88
+ }
89
+ catch (error) {
90
+ acc[name] = undefined;
91
+ }
92
+ return acc;
93
+ }
94
+ const modeEntries = modes.reduce((modeAcc, mode) => {
95
+ const pathname = `${name}_Mode_${String(mode)}`;
96
+ try {
97
+ // eslint-disable-next-line no-param-reassign
98
+ modeAcc[pathname] = this.fileService.getZkeyFilePaths(name, mode);
99
+ }
100
+ catch (error) {
101
+ // eslint-disable-next-line no-param-reassign
102
+ modeAcc[pathname] = undefined;
103
+ }
104
+ return modeAcc;
105
+ }, {});
106
+ return { ...acc, ...modeEntries };
107
+ }, {});
108
+ return {
109
+ zkeysDirectoryExists,
110
+ availableZkeys,
111
+ };
112
+ }
113
+ /**
114
+ * Check if coordinator wallet has funds
115
+ * @returns the address and its funds in all networks
116
+ */
117
+ async checkWalletFunds() {
118
+ let address;
119
+ const networks = Object.values(ESupportedNetworks);
120
+ try {
121
+ const signer = getSigner(networks[0]);
122
+ address = await signer.getAddress();
123
+ }
124
+ catch (error) {
125
+ return {
126
+ address: zeroAddress,
127
+ fundsInNetworks: [],
128
+ };
129
+ }
130
+ const fundsInNetworks = await Promise.all(networks.map(async (network) => {
131
+ const signer = getSigner(network);
132
+ return signer.provider
133
+ ?.getBalance(address)
134
+ .then((balance) => ({
135
+ network,
136
+ balance: formatEther(balance),
137
+ status: true,
138
+ }))
139
+ .catch(() => ({
140
+ network,
141
+ balance: formatEther(0n),
142
+ status: false,
143
+ }));
144
+ }));
145
+ return {
146
+ address,
147
+ fundsInNetworks,
148
+ };
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
+ }
157
+ /**
158
+ * Check coordinator service health
159
+ * @returns an object containing the results of all the health checks
160
+ */
161
+ async checkCoordinatorHealth() {
162
+ const [rapidsnark, zkeysDirectory, coordinatorWalletFunds] = await Promise.all([
163
+ this.checkRapidsnark(),
164
+ this.checkZkeysDirectory(),
165
+ this.checkWalletFunds(),
166
+ ]);
167
+ const isRedisOpen = this.checkRedisConnection();
168
+ return {
169
+ rapidsnark,
170
+ zkeysDirectory,
171
+ coordinatorWalletFunds,
172
+ isRedisOpen,
173
+ };
174
+ }
175
+ };
176
+ HealthService = __decorate([
177
+ Injectable(),
178
+ __metadata("design:paramtypes", [FileService,
179
+ RedisService])
180
+ ], HealthService);
181
+ export { HealthService };
182
+ //# 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,83 @@
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
+ * Redis connection is open
80
+ */
81
+ isRedisOpen: boolean;
82
+ }
83
+ //# 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;IAE1C;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB"}
@@ -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,8 +10,7 @@ describe("ProofController", () => {
9
10
  const defaultProofGeneratorArgs = {
10
11
  poll: 0,
11
12
  maciContractAddress: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
12
- useQuadraticVoting: false,
13
- 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
14
  sessionKeyAddress: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
15
15
  approval: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
16
16
  chain: ESupportedNetworks.LOCALHOST,
@@ -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":"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"}
@@ -1,3 +1,4 @@
1
+ import { EMode } from "@maci-protocol/sdk";
1
2
  import { Test } from "@nestjs/testing";
2
3
  import { ESupportedNetworks } from "../../common";
3
4
  import { ProofGateway } from "../proof.gateway";
@@ -8,8 +9,7 @@ describe("ProofGateway", () => {
8
9
  const defaultProofGeneratorArgs = {
9
10
  poll: 0,
10
11
  maciContractAddress: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
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
13
  sessionKeyAddress: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
14
14
  approval: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
15
15
  chain: ESupportedNetworks.LOCALHOST,
@@ -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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"}
@@ -1,42 +1,30 @@
1
1
  import { Keypair, PrivateKey } from "@maci-protocol/domainobjs";
2
- import { Deployment, ProofGenerator } from "@maci-protocol/sdk";
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("hardhat", () => ({
11
- network: {
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
- ProofGenerator: jest.fn(),
24
- }));
25
- jest.mock("../../crypto/crypto.service", () => ({
26
- CryptoService: {
27
- getInstance: jest.fn(),
28
- },
17
+ getPoll: jest.fn().mockResolvedValue({
18
+ address: "0x123",
19
+ }),
20
+ generateProofs: jest.fn().mockResolvedValue({
21
+ processProofs: [1],
22
+ tallyProofs: [1],
23
+ tallyData: {},
24
+ }),
29
25
  }));
30
26
  describe("ProofGeneratorService", () => {
31
- const defaultProofArgs = {
32
- poll: 1,
33
- maciContractAddress: zeroAddress,
34
- useQuadraticVoting: false,
35
- encryptedCoordinatorPrivateKey: "siO9W/g7jNVXs9tOUv/pffrcqYdMlgdXw7nSSlqM1q1UvHGSSbhtLJpeT+nJKW7/+xrBTgI0wB866DSkg8Rgr8zD+POUMiKPrGqAO/XhrcmRDL+COURFNDRh9WGeAua6hdiNoufQYvXPl1iWyIYidSDbfmC2wR6F9vVkhg/6KDZyw8Wlr6LUh0RYT+hUHEwwGbz7MeqZJcJQSTpECPF5pnk8NTHL2W/XThaewB4n4HYqjDUbYLmBDLYWsDDMgoPo709a309rTq3uEe0YBgVF8g9aGxucTDhz+/LYYzqaeSxclUwen9Z4BGZjiDSPBZfooOEQEEwIJlViQ2kl1VeOKAmkiWEUVfItivmNbC/PNZchklmfFsGpiu4DT9UU9YVBN2OTcFYHHsslcaqrR7SuesqjluaGjG46oYEmfQlkZ4gXhavdWXw2ant+Tv6HRo4trqjoD1e3jUkN6gJMWomxOeRBTg0czBZlz/IwUtTpBHcKhi3EqGQo8OuQtWww+Ts7ySmeoONuovYUsIAppNuOubfUxvFJoTr2vKbWNAiYetw09kddkjmBe+S8A5PUiFOi262mfc7g5wJwPPP7wpTBY0Fya+2BCPzXqRLMOtNI+1tW3/UQLZYvEY8J0TxmhoAGZaRn8FKaosatRxDZTQS6QUNmKxpmUspkRKzTXN5lznM=",
36
- sessionKeyAddress: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
37
- approval: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
38
- chain: ESupportedNetworks.LOCALHOST,
39
- };
27
+ let defaultProofArgs;
40
28
  let mockContract = {
41
29
  polls: jest.fn(),
42
30
  getMainRoot: jest.fn(),
@@ -45,21 +33,26 @@ describe("ProofGeneratorService", () => {
45
33
  stateMerged: jest.fn(),
46
34
  coordinatorPublicKey: jest.fn(),
47
35
  };
48
- let defaultProofGenerator = {
49
- generateMpProofs: jest.fn(),
50
- generateTallyProofs: jest.fn(),
51
- merge: jest.fn(),
52
- };
53
- const defaultCryptoService = {
54
- decrypt: jest.fn(),
55
- };
56
36
  const defaultDeploymentService = {
57
37
  setHre: jest.fn(),
58
38
  getDeployer: jest.fn(() => Promise.resolve({})),
59
39
  getContract: jest.fn(() => Promise.resolve(mockContract)),
60
40
  };
41
+ const coordinatorPublicKey = getCoordinatorKeypair().publicKey.asContractParam();
61
42
  const fileService = new FileService();
62
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
+ });
63
56
  beforeEach(() => {
64
57
  mockContract = {
65
58
  polls: jest.fn(() => Promise.resolve({ poll: zeroAddress.replace("0x0", "0x1"), messageProcessor: zeroAddress, tally: zeroAddress })),
@@ -67,62 +60,28 @@ describe("ProofGeneratorService", () => {
67
60
  treeDepths: jest.fn(() => Promise.resolve([1, 2, 3])),
68
61
  extContracts: jest.fn(() => Promise.resolve({ messageAq: zeroAddress })),
69
62
  stateMerged: jest.fn(() => Promise.resolve(true)),
70
- coordinatorPublicKey: jest.fn(() => Promise.resolve({
71
- x: 21424602586933317770306541383681754745261216801634012235464162098738462892814n,
72
- y: 11917647526382221762393892566678210317414189429046519403585863973939713533473n,
73
- })),
63
+ coordinatorPublicKey: jest.fn(() => Promise.resolve(coordinatorPublicKey)),
74
64
  };
75
- defaultProofGenerator = {
76
- generateMpProofs: jest.fn(() => Promise.resolve([1])),
77
- generateTallyProofs: jest.fn(() => Promise.resolve({ proofs: [1], tallyData: {} })),
78
- merge: jest.fn(() => Promise.resolve(true)),
79
- };
80
- defaultCryptoService.decrypt = jest.fn(() => "macisk.6d5efa8ebc6f7a6ee3e9bf573346af2df29b007b29ef420c030aa4a7f3410182");
81
65
  Deployment.getInstance.mockReturnValue(defaultDeploymentService);
82
- ProofGenerator.mockReturnValue(defaultProofGenerator);
83
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
84
- // @ts-expect-error
85
- ProofGenerator.prepareState = jest.fn(() => Promise.resolve({
86
- polls: new Map([[1n, {}]]),
87
- }));
88
66
  });
89
67
  afterEach(() => {
90
68
  jest.clearAllMocks();
91
69
  });
92
- test("should throw error if state is not merged yet", async () => {
93
- mockContract.stateMerged.mockResolvedValue(false);
94
- const service = new ProofGeneratorService(defaultCryptoService, fileService, sessionKeysService);
95
- await expect(service.generate(defaultProofArgs)).rejects.toThrow(ErrorCodes.NOT_MERGED_STATE_TREE.toString());
96
- });
97
70
  test("should throw error if private key is wrong", async () => {
98
71
  const keypair = new Keypair(new PrivateKey(0n));
99
72
  mockContract.coordinatorPublicKey.mockResolvedValue(keypair.publicKey.asContractParam());
100
- const service = new ProofGeneratorService(defaultCryptoService, fileService, sessionKeysService);
73
+ const service = new ProofGeneratorService(fileService, sessionKeysService);
101
74
  await expect(service.generate(defaultProofArgs)).rejects.toThrow(ErrorCodes.PRIVATE_KEY_MISMATCH.toString());
102
75
  });
103
- test("should throw error if poll is not found", async () => {
104
- const service = new ProofGeneratorService(defaultCryptoService, fileService, sessionKeysService);
105
- await expect(service.generate({ ...defaultProofArgs, poll: 2 })).rejects.toThrow(ErrorCodes.POLL_NOT_FOUND.toString());
106
- });
107
- test("should throw error if poll is not found in maci contract", async () => {
108
- mockContract.polls.mockResolvedValue({ poll: zeroAddress });
109
- const service = new ProofGeneratorService(defaultCryptoService, fileService, sessionKeysService);
110
- await expect(service.generate({ ...defaultProofArgs, poll: 2 })).rejects.toThrow(ErrorCodes.POLL_NOT_FOUND.toString());
111
- });
112
- test("should throw error if coordinator key cannot be decrypted", async () => {
113
- defaultCryptoService.decrypt.mockReturnValue("unknown");
114
- const service = new ProofGeneratorService(defaultCryptoService, fileService, sessionKeysService);
115
- await expect(service.generate({ ...defaultProofArgs, encryptedCoordinatorPrivateKey: "unknown" })).rejects.toThrow("Cannot convert 0x to a BigInt");
116
- });
117
76
  test("should generate proofs properly for NonQv", async () => {
118
- const service = new ProofGeneratorService(defaultCryptoService, fileService, sessionKeysService);
77
+ const service = new ProofGeneratorService(fileService, sessionKeysService);
119
78
  const data = await service.generate(defaultProofArgs);
120
79
  expect(data.processProofs).toHaveLength(1);
121
80
  expect(data.tallyProofs).toHaveLength(1);
122
81
  });
123
82
  test("should generate proofs properly for Qv", async () => {
124
- const service = new ProofGeneratorService(defaultCryptoService, fileService, sessionKeysService);
125
- const data = await service.generate({ ...defaultProofArgs, useQuadraticVoting: true });
83
+ const service = new ProofGeneratorService(fileService, sessionKeysService);
84
+ const data = await service.generate({ ...defaultProofArgs, mode: EMode.QV });
126
85
  expect(data.processProofs).toHaveLength(1);
127
86
  expect(data.tallyProofs).toHaveLength(1);
128
87
  });
@@ -1 +1 @@
1
- {"version":3,"file":"proof.service.test.js","sourceRoot":"","sources":["../../../../ts/proof/__tests__/proof.service.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proof.service.test.js","sourceRoot":"","sources":["../../../../ts/proof/__tests__/proof.service.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { EMode } from "@maci-protocol/sdk";
1
2
  import type { Hex } from "viem";
2
3
  import { ESupportedNetworks } from "../common";
3
4
  /**
@@ -13,13 +14,9 @@ export declare class GenerateProofDto {
13
14
  */
14
15
  maciContractAddress: string;
15
16
  /**
16
- * Whether to use Qv or NonQv
17
+ * Voting mode
17
18
  */
18
- useQuadraticVoting: boolean;
19
- /**
20
- * Encrypted coordinator private key with RSA public key (see .env.example)
21
- */
22
- encryptedCoordinatorPrivateKey: string;
19
+ mode: EMode;
23
20
  /**
24
21
  * Start block for event processing
25
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../../ts/proof/dto.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,qBAAa,gBAAgB;IAC3B;;OAEG;IAQH,IAAI,EAAG,MAAM,CAAC;IAEd;;OAEG;IAMH,mBAAmB,EAAG,MAAM,CAAC;IAE7B;;OAEG;IAMH,kBAAkB,EAAG,OAAO,CAAC;IAE7B;;OAEG;IASH,8BAA8B,EAAG,MAAM,CAAC;IAExC;;OAEG;IASH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IASH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IAWH,cAAc,CAAC,EAAE,MAAM,CAAC;IASxB,iBAAiB,CAAC,EAAE,GAAG,CAAC;IASxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IAMH,KAAK,EAAG,kBAAkB,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB;;OAEG;IAQH,IAAI,EAAG,MAAM,CAAC;IAOd,mBAAmB,EAAG,MAAM,CAAC;IAS7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAS3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IAMH,KAAK,EAAG,kBAAkB,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B;;OAEG;IAQH,MAAM,EAAG,MAAM,CAAC;IAOhB,mBAAmB,EAAG,GAAG,CAAC;IAS1B,iBAAiB,CAAC,EAAE,GAAG,CAAC;IASxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IAMH,KAAK,EAAG,kBAAkB,CAAC;CAC5B"}
1
+ {"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../../ts/proof/dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAI3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,qBAAa,gBAAgB;IAC3B;;OAEG;IAQH,IAAI,EAAG,MAAM,CAAC;IAEd;;OAEG;IAMH,mBAAmB,EAAG,MAAM,CAAC;IAE7B;;OAEG;IAMH,IAAI,EAAG,KAAK,CAAC;IAEb;;OAEG;IASH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IASH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IAWH,cAAc,CAAC,EAAE,MAAM,CAAC;IASxB,iBAAiB,CAAC,EAAE,GAAG,CAAC;IASxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IAMH,KAAK,EAAG,kBAAkB,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB;;OAEG;IAQH,IAAI,EAAG,MAAM,CAAC;IAOd,mBAAmB,EAAG,MAAM,CAAC;IAS7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAS3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IAMH,KAAK,EAAG,kBAAkB,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B;;OAEG;IAQH,MAAM,EAAG,MAAM,CAAC;IAOhB,mBAAmB,EAAG,GAAG,CAAC;IAS1B,iBAAiB,CAAC,EAAE,GAAG,CAAC;IASxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IAMH,KAAK,EAAG,kBAAkB,CAAC;CAC5B"}
@@ -7,8 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
+ import { EMode } from "@maci-protocol/sdk";
10
11
  import { ApiProperty } from "@nestjs/swagger";
11
- import { IsBoolean, IsEnum, IsEthereumAddress, IsInt, IsOptional, IsString, Length, Max, Min } from "class-validator";
12
+ import { IsEnum, IsEthereumAddress, IsInt, IsOptional, IsString, Max, Min } from "class-validator";
12
13
  import { ESupportedNetworks } from "../common";
13
14
  /**
14
15
  * Data transfer object for generate proof
@@ -23,13 +24,9 @@ export class GenerateProofDto {
23
24
  */
24
25
  maciContractAddress;
25
26
  /**
26
- * Whether to use Qv or NonQv
27
+ * Voting mode
27
28
  */
28
- useQuadraticVoting;
29
- /**
30
- * Encrypted coordinator private key with RSA public key (see .env.example)
31
- */
32
- encryptedCoordinatorPrivateKey;
29
+ mode;
33
30
  /**
34
31
  * Start block for event processing
35
32
  */
@@ -69,23 +66,12 @@ __decorate([
69
66
  ], GenerateProofDto.prototype, "maciContractAddress", void 0);
70
67
  __decorate([
71
68
  ApiProperty({
72
- description: "Whether to use quadratic voting or not",
73
- type: Boolean,
74
- }),
75
- IsBoolean(),
76
- __metadata("design:type", Boolean)
77
- ], GenerateProofDto.prototype, "useQuadraticVoting", void 0);
78
- __decorate([
79
- ApiProperty({
80
- description: "Encrypted coordinator private key with RSA public key (see README.md)",
81
- minimum: 1,
82
- maximum: 1024,
83
- type: String,
69
+ description: "Voting mode (qv: 0, non-qv: 1, full: 2)",
70
+ type: Number,
84
71
  }),
85
- IsString(),
86
- Length(1, 1024),
87
- __metadata("design:type", String)
88
- ], GenerateProofDto.prototype, "encryptedCoordinatorPrivateKey", void 0);
72
+ IsEnum(EMode),
73
+ __metadata("design:type", Number)
74
+ ], GenerateProofDto.prototype, "mode", void 0);
89
75
  __decorate([
90
76
  ApiProperty({
91
77
  description: "Start block for event parsing",