@maci-protocol/coordinator 0.0.0-ci.80cbc33 → 0.0.0-ci.82590d6

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 (29) hide show
  1. package/README.md +60 -24
  2. package/build/ts/common/http.d.ts +6 -0
  3. package/build/ts/common/http.d.ts.map +1 -0
  4. package/build/ts/common/http.js +49 -0
  5. package/build/ts/common/http.js.map +1 -0
  6. package/build/ts/common/index.d.ts +1 -0
  7. package/build/ts/common/index.d.ts.map +1 -1
  8. package/build/ts/common/index.js +1 -0
  9. package/build/ts/common/index.js.map +1 -1
  10. package/build/ts/deployer/deployer.controller.d.ts.map +1 -1
  11. package/build/ts/deployer/deployer.controller.js +19 -6
  12. package/build/ts/deployer/deployer.controller.js.map +1 -1
  13. package/build/ts/proof/__tests__/proof.controller.test.js +2 -2
  14. package/build/ts/proof/__tests__/proof.controller.test.js.map +1 -1
  15. package/build/ts/proof/proof.controller.d.ts.map +1 -1
  16. package/build/ts/proof/proof.controller.js +37 -11
  17. package/build/ts/proof/proof.controller.js.map +1 -1
  18. package/build/ts/scheduler/__tests__/scheduler.controller.test.js +3 -3
  19. package/build/ts/scheduler/__tests__/scheduler.controller.test.js.map +1 -1
  20. package/build/ts/scheduler/scheduler.controller.d.ts.map +1 -1
  21. package/build/ts/scheduler/scheduler.controller.js +13 -6
  22. package/build/ts/scheduler/scheduler.controller.js.map +1 -1
  23. package/build/ts/subgraph/__tests__/subgraph.controller.test.js +1 -1
  24. package/build/ts/subgraph/__tests__/subgraph.controller.test.js.map +1 -1
  25. package/build/ts/subgraph/subgraph.controller.d.ts.map +1 -1
  26. package/build/ts/subgraph/subgraph.controller.js +8 -3
  27. package/build/ts/subgraph/subgraph.controller.js.map +1 -1
  28. package/build/tsconfig.build.tsbuildinfo +1 -1
  29. package/package.json +9 -9
package/README.md CHANGED
@@ -7,45 +7,53 @@ Please refer to [Offchain relayer service documentation](https://maci.pse.dev/do
7
7
  1. [Node.js](https://nodejs.org/en) version 20.0.0.
8
8
  2. [pnpm](https://pnpm.io/installation) package manager.
9
9
  3. [rapidsnark](https://github.com/iden3/rapidsnark) program.
10
+ 4. (Optional) [Redis](https://redis.io/docs/latest/operate/oss_and_stack/install/archive/install-redis/) database if you want to use the scheduler module.
10
11
 
11
- ## Instructions
12
+ - Please note that the build process might fail in a Windows environment. If you are using Windows, it is recommended to use Windows Subsystem for Linux (WSL) or a virtual machine with a Linux distribution.
12
13
 
13
- 1. Add `.env` file (see `.env.example`).
14
- 2. Remember to set up the rapidsnark file variable.
15
- 3. Generate RSA key pair with `pnpm run generate-keypair`.
16
- 4. Download zkey files using `pnpm run download-zkeys:{type}` (only test type is available for now).
17
- 5. Make sure you copied RSA public key to your application. This will be needed for encrypting `Authorization` header and coordinator private key for proof generation. Also it can be accessed through API method `GET v1/proof/publicKey`.
18
- 6. Run `pnpm run start` to run the service.
19
- 7. All API calls must be called with `Authorization` header, where the value is encrypted with RSA public key you generated before. Header value contains message signature and message digest created by `COORDINATOR_ADDRESSES`. The format is `publicEncrypt({signature}:{digest})`.
20
- Make sure you set `COORDINATOR_ADDRESSES` env variable and sign any message with the addresses from your application (see [AccountSignatureGuard](./ts/auth/AccountSignatureGuard.service.ts)).
21
- 8. Proofs can be generated with `POST v1/proof/generate` API method or with Websockets (see [dto spec](./ts/proof/dto.ts), [controller](./ts/app.controller.ts) and [wsgateway](./ts/events/events.gateway.ts)).
14
+ ## Install and build it from source
22
15
 
23
- ## Subgraph deployment
16
+ 1. Install dependencies and build the project
24
17
 
25
- It is possible to deploy subgraph using coordinator service.
18
+ ```bash
19
+ pnpm install
20
+ pnpm run build
21
+ ```
26
22
 
27
- First, you need to setup subgraph and create a project. [Subgraph dashboard](https://thegraph.com/studio/).
23
+ 2. Install Redis database (if the scheduler module is going to be used) using [the official guide](https://redis.io/docs/latest/operate/oss_and_stack/install/archive/install-redis/)
28
24
 
29
- Then, set env variables:
25
+ 3. Download the zkeys
30
26
 
27
+ ```bash
28
+ pnpm run download-zkeys:test
29
+ # for production zkeys
30
+ # pnpm run download-zkeys:ceremony
31
31
  ```
32
- # Subgraph name
33
- SUBGRAPH_NAME="maci-subgraph"
34
32
 
35
- # Subgraph provider url
36
- SUBGRAPH_PROVIDER_URL=https://api.studio.thegraph.com/deploy/
33
+ 4. Move to the coordinator service directory
37
34
 
38
- # Subgraph deploy key
39
- SUBGRAPH_DEPLOY_KEY=*******
35
+ ```bash
36
+ cd apps/coordinator
37
+ ```
40
38
 
41
- # Subgraph project folder
42
- SUBGRAPH_FOLDER=../subgraph
39
+ 5. Generate the RSA key pair to encrypt values throughout the communication workflow
40
+
41
+ ```bash
42
+ pnpm run generate-keypair
43
43
  ```
44
44
 
45
- After deployment, subgraph url will be available in studio dashboard and you can use this type of url to get latest deployed version in your application:
45
+ 6. Setup .env file (see `.env.example` for reference)
46
46
 
47
+ ```bash
48
+ cp .env.example .env
47
49
  ```
48
- https://api.studio.thegraph.com/.../{SUBGRAPH_NAME}/version/latest
50
+
51
+ 7. Run the NestJS application
52
+
53
+ ```bash
54
+ pnpm run start
55
+ # or
56
+ pnpm run start:prod
49
57
  ```
50
58
 
51
59
  ## Docker
@@ -65,3 +73,31 @@ docker compose -f apps/coordinator/docker-compose.yml exec coordinator-service /
65
73
  # Stop container
66
74
  docker compose -f apps/coordinator/docker-compose.yml down
67
75
  ```
76
+
77
+ ## Subgraph deployment
78
+
79
+ It is possible to deploy subgraph using coordinator service.
80
+
81
+ First, you need to setup subgraph and create a project. [Subgraph dashboard](https://thegraph.com/studio/).
82
+
83
+ Then, set env variables:
84
+
85
+ ```
86
+ # Subgraph name
87
+ SUBGRAPH_NAME="maci-subgraph"
88
+
89
+ # Subgraph provider url
90
+ SUBGRAPH_PROVIDER_URL=https://api.studio.thegraph.com/deploy/
91
+
92
+ # Subgraph deploy key
93
+ SUBGRAPH_DEPLOY_KEY=*******
94
+
95
+ # Subgraph project folder
96
+ SUBGRAPH_FOLDER=../subgraph
97
+ ```
98
+
99
+ After deployment, subgraph url will be available in studio dashboard and you can use this type of url to get latest deployed version in your application:
100
+
101
+ ```
102
+ https://api.studio.thegraph.com/.../{SUBGRAPH_NAME}/version/latest
103
+ ```
@@ -0,0 +1,6 @@
1
+ import { HttpStatus } from "@nestjs/common";
2
+ /**
3
+ * Map a thrown error (usually containing ErrorCodes) to an appropriate HTTP status
4
+ */
5
+ export declare function mapErrorToHttpStatus(error: Error): HttpStatus;
6
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../ts/common/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAI5C;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,CAiD7D"}
@@ -0,0 +1,49 @@
1
+ import { HttpStatus } from "@nestjs/common";
2
+ import { ErrorCodes } from "./errors";
3
+ /**
4
+ * Map a thrown error (usually containing ErrorCodes) to an appropriate HTTP status
5
+ */
6
+ export function mapErrorToHttpStatus(error) {
7
+ const { message } = error;
8
+ switch (message) {
9
+ case ErrorCodes.UNSUPPORTED_NETWORK.toString():
10
+ case ErrorCodes.UNSUPPORTED_VOICE_CREDIT_PROXY_FACTORY.toString():
11
+ case ErrorCodes.UNSUPPORTED_VOICE_CREDIT_PROXY.toString():
12
+ case ErrorCodes.UNSUPPORTED_POLICY.toString():
13
+ return HttpStatus.BAD_REQUEST;
14
+ case ErrorCodes.INVALID_APPROVAL.toString():
15
+ return HttpStatus.FORBIDDEN;
16
+ case ErrorCodes.SESSION_KEY_NOT_FOUND.toString():
17
+ case ErrorCodes.POLL_NOT_FOUND.toString():
18
+ return HttpStatus.NOT_FOUND;
19
+ case ErrorCodes.POLL_ALREADY_SCHEDULED.toString():
20
+ case ErrorCodes.POLL_ALREADY_TALLIED.toString():
21
+ case ErrorCodes.NOT_MERGED_STATE_TREE.toString():
22
+ case ErrorCodes.NOT_MERGED_MESSAGE_TREE.toString():
23
+ return HttpStatus.CONFLICT;
24
+ case ErrorCodes.MACI_NOT_DEPLOYED.toString():
25
+ case ErrorCodes.VERIFIER_NOT_DEPLOYED.toString():
26
+ case ErrorCodes.VERIFYING_KEYS_REGISTRY_NOT_DEPLOYED.toString():
27
+ return HttpStatus.PRECONDITION_FAILED;
28
+ case ErrorCodes.FILE_NOT_FOUND.toString():
29
+ case ErrorCodes.SUBGRAPH_DEPLOY_KEY_NOT_FOUND.toString():
30
+ case ErrorCodes.SUBGRAPH_DEPLOY.toString():
31
+ case ErrorCodes.PRIVATE_KEY_MISMATCH.toString():
32
+ case ErrorCodes.DECRYPTION.toString():
33
+ case ErrorCodes.ENCRYPTION.toString():
34
+ case ErrorCodes.COORDINATOR_RPC_URL_NOT_SET.toString():
35
+ case ErrorCodes.FAILED_TO_MERGE_STATE_TREE.toString():
36
+ case ErrorCodes.FAILED_TO_MERGE_MESSAGE_SUBTREES.toString():
37
+ case ErrorCodes.FAILED_TO_MERGE_MESSAGE_TREE.toString():
38
+ case ErrorCodes.FAILED_TO_SET_VERIFYING_KEYS.toString():
39
+ case ErrorCodes.FAILED_TO_DEPLOY_CONTRACT.toString():
40
+ case ErrorCodes.FAILED_TO_SET_MACI_INSTANCE_ON_POLICY.toString():
41
+ case ErrorCodes.FAILED_TO_DEPLOY_MACI.toString():
42
+ case ErrorCodes.FAILED_TO_DEPLOY_POLL.toString():
43
+ case ErrorCodes.FAILED_TO_UPDATE_SCHEDULED_POLL.toString():
44
+ return HttpStatus.INTERNAL_SERVER_ERROR;
45
+ default:
46
+ return HttpStatus.INTERNAL_SERVER_ERROR;
47
+ }
48
+ }
49
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../ts/common/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAY;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE1B,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;QAC/C,KAAK,UAAU,CAAC,sCAAsC,CAAC,QAAQ,EAAE,CAAC;QAClE,KAAK,UAAU,CAAC,8BAA8B,CAAC,QAAQ,EAAE,CAAC;QAC1D,KAAK,UAAU,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YAC3C,OAAO,UAAU,CAAC,WAAW,CAAC;QAEhC,KAAK,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE;YACzC,OAAO,UAAU,CAAC,SAAS,CAAC;QAE9B,KAAK,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;QACjD,KAAK,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE;YACvC,OAAO,UAAU,CAAC,SAAS,CAAC;QAE9B,KAAK,UAAU,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC;QAClD,KAAK,UAAU,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC;QAChD,KAAK,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;QACjD,KAAK,UAAU,CAAC,uBAAuB,CAAC,QAAQ,EAAE;YAChD,OAAO,UAAU,CAAC,QAAQ,CAAC;QAE7B,KAAK,UAAU,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;QAC7C,KAAK,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;QACjD,KAAK,UAAU,CAAC,oCAAoC,CAAC,QAAQ,EAAE;YAC7D,OAAO,UAAU,CAAC,mBAAmB,CAAC;QAExC,KAAK,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC1C,KAAK,UAAU,CAAC,6BAA6B,CAAC,QAAQ,EAAE,CAAC;QACzD,KAAK,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;QAC3C,KAAK,UAAU,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC;QAChD,KAAK,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtC,KAAK,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACtC,KAAK,UAAU,CAAC,2BAA2B,CAAC,QAAQ,EAAE,CAAC;QACvD,KAAK,UAAU,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC;QACtD,KAAK,UAAU,CAAC,gCAAgC,CAAC,QAAQ,EAAE,CAAC;QAC5D,KAAK,UAAU,CAAC,4BAA4B,CAAC,QAAQ,EAAE,CAAC;QACxD,KAAK,UAAU,CAAC,4BAA4B,CAAC,QAAQ,EAAE,CAAC;QACxD,KAAK,UAAU,CAAC,yBAAyB,CAAC,QAAQ,EAAE,CAAC;QACrD,KAAK,UAAU,CAAC,qCAAqC,CAAC,QAAQ,EAAE,CAAC;QACjE,KAAK,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;QACjD,KAAK,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;QACjD,KAAK,UAAU,CAAC,+BAA+B,CAAC,QAAQ,EAAE;YACxD,OAAO,UAAU,CAAC,qBAAqB,CAAC;QAE1C;YACE,OAAO,UAAU,CAAC,qBAAqB,CAAC;IAC5C,CAAC;AACH,CAAC"}
@@ -2,4 +2,5 @@ export { ErrorCodes } from "./errors";
2
2
  export * from "./chain";
3
3
  export * from "./accountAbstraction";
4
4
  export * from "./types";
5
+ export * from "./http";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
@@ -2,4 +2,5 @@ export { ErrorCodes } from "./errors";
2
2
  export * from "./chain";
3
3
  export * from "./accountAbstraction";
4
4
  export * from "./types";
5
+ export * from "./http";
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deployer.controller.d.ts","sourceRoot":"","sources":["../../../ts/deployer/deployer.controller.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,MAAM,OAAO,CAAC;AAEnF,qBAIa,kBAAkB;IAWjB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAV5C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAE9D;;;;OAIG;gBAC0B,eAAe,EAAE,eAAe;IAE7D;;;;;OAKG;IAMG,mBAAmB,CAAS,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAOnG;;;;;OAKG;IAMG,UAAU,CAAS,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAM1F"}
1
+ {"version":3,"file":"deployer.controller.d.ts","sourceRoot":"","sources":["../../../ts/deployer/deployer.controller.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,MAAM,OAAO,CAAC;AAEnF,qBAIa,kBAAkB;IAWjB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAV5C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAE9D;;;;OAIG;gBAC0B,eAAe,EAAE,eAAe;IAE7D;;;;;OAKG;IAUG,mBAAmB,CAAS,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAOnG;;;;;OAKG;IAcG,UAAU,CAAS,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAM1F"}
@@ -15,6 +15,7 @@ var DeployerController_1;
15
15
  import { Body, Controller, HttpException, HttpStatus, Logger, Post, UseGuards } from "@nestjs/common";
16
16
  import { ApiBearerAuth, ApiBody, ApiResponse, ApiTags } from "@nestjs/swagger";
17
17
  import { AccountSignatureGuard } from "../auth/AccountSignatureGuard.service";
18
+ import { mapErrorToHttpStatus } from "../common/http";
18
19
  import { DeployerService } from "./deployer.service";
19
20
  import { DeployerServiceDeployMaciDto, DeployerServiceDeployPollDto } from "./dto";
20
21
  let DeployerController = DeployerController_1 = class DeployerController {
@@ -40,7 +41,7 @@ let DeployerController = DeployerController_1 = class DeployerController {
40
41
  async deployMACIContracts(args) {
41
42
  return this.deployerService.deployMaci(args).catch((error) => {
42
43
  this.logger.error(`Error:`, error);
43
- throw new HttpException(error.message, HttpStatus.BAD_REQUEST);
44
+ throw new HttpException(error.message, mapErrorToHttpStatus(error));
44
45
  });
45
46
  }
46
47
  /**
@@ -52,15 +53,19 @@ let DeployerController = DeployerController_1 = class DeployerController {
52
53
  async deployPoll(args) {
53
54
  return this.deployerService.deployPoll(args).catch((error) => {
54
55
  this.logger.error(`Error:`, error);
55
- throw new HttpException(error.message, HttpStatus.BAD_REQUEST);
56
+ throw new HttpException(error.message, mapErrorToHttpStatus(error));
56
57
  });
57
58
  }
58
59
  };
59
60
  __decorate([
60
61
  ApiBody({ type: DeployerServiceDeployMaciDto }),
61
62
  ApiResponse({ status: HttpStatus.CREATED, description: "The MACI contracts were successfully deployed" }),
62
- ApiResponse({ status: HttpStatus.FORBIDDEN, description: "Forbidden" }),
63
- ApiResponse({ status: HttpStatus.BAD_REQUEST, description: "BadRequest" }),
63
+ ApiResponse({ status: HttpStatus.FORBIDDEN, description: "Invalid approval signature" }),
64
+ ApiResponse({ status: HttpStatus.BAD_REQUEST, description: "Unsupported input (network/policy/voice credit proxy)" }),
65
+ ApiResponse({
66
+ status: HttpStatus.INTERNAL_SERVER_ERROR,
67
+ description: "Deployment failed or configuration error (e.g., RPC URL not set, contract deployment failed)",
68
+ }),
64
69
  Post("maci"),
65
70
  __param(0, Body()),
66
71
  __metadata("design:type", Function),
@@ -70,8 +75,16 @@ __decorate([
70
75
  __decorate([
71
76
  ApiBody({ type: DeployerServiceDeployPollDto }),
72
77
  ApiResponse({ status: HttpStatus.CREATED, description: "The Poll was successfully deployed" }),
73
- ApiResponse({ status: HttpStatus.FORBIDDEN, description: "Forbidden" }),
74
- ApiResponse({ status: HttpStatus.BAD_REQUEST, description: "BadRequest" }),
78
+ ApiResponse({ status: HttpStatus.FORBIDDEN, description: "Invalid approval signature" }),
79
+ ApiResponse({ status: HttpStatus.BAD_REQUEST, description: "Unsupported input (network/policy/voice credit proxy)" }),
80
+ ApiResponse({
81
+ status: HttpStatus.PRECONDITION_FAILED,
82
+ description: "Required contracts not deployed (MACI/Verifier/VerifyingKeysRegistry)",
83
+ }),
84
+ ApiResponse({
85
+ status: HttpStatus.INTERNAL_SERVER_ERROR,
86
+ description: "Poll deployment failed (failed to deploy poll/set verifying keys/set MACI instance on policy)",
87
+ }),
75
88
  Post("poll"),
76
89
  __param(0, Body()),
77
90
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"deployer.controller.js","sourceRoot":"","sources":["../../../ts/deployer/deployer.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,iDAAiD;AACjD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtG,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,MAAM,OAAO,CAAC;AAM5E,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAWA;IAV7B;;OAEG;IACc,MAAM,GAAG,IAAI,MAAM,CAAC,oBAAkB,CAAC,IAAI,CAAC,CAAC;IAE9D;;;;OAIG;IACH,YAA6B,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAEjE;;;;;OAKG;IAMG,AAAN,KAAK,CAAC,mBAAmB,CAAS,IAAkC;QAClE,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;YAClE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACnC,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IAMG,AAAN,KAAK,CAAC,UAAU,CAAS,IAAkC;QACzD,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;YAClE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACnC,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAxBO;IALL,OAAO,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;IACzG,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IACvE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;IAC1E,IAAI,CAAC,MAAM,CAAC;IACc,WAAA,IAAI,EAAE,CAAA;;qCAAO,4BAA4B;;6DAKnE;AAaK;IALL,OAAO,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC;IAC9F,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IACvE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;IAC1E,IAAI,CAAC,MAAM,CAAC;IACK,WAAA,IAAI,EAAE,CAAA;;qCAAO,4BAA4B;;oDAK1D;AA/CU,kBAAkB;IAJ9B,OAAO,CAAC,WAAW,CAAC;IACpB,aAAa,EAAE;IACf,UAAU,CAAC,WAAW,CAAC;IACvB,SAAS,CAAC,qBAAqB,CAAC;qCAYe,eAAe;GAXlD,kBAAkB,CAgD9B"}
1
+ {"version":3,"file":"deployer.controller.js","sourceRoot":"","sources":["../../../ts/deployer/deployer.controller.ts"],"names":[],"mappings":"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"}
@@ -66,7 +66,7 @@ describe("ProofController", () => {
66
66
  test("should throw an error if proof generation is failed", async () => {
67
67
  const error = new Error("error");
68
68
  mockGeneratorService.generate.mockRejectedValue(error);
69
- await expect(proofController.generate(defaultProofGeneratorArgs)).rejects.toThrow(new HttpException(error.message, HttpStatus.BAD_REQUEST));
69
+ await expect(proofController.generate(defaultProofGeneratorArgs)).rejects.toThrow(new HttpException(error.message, HttpStatus.INTERNAL_SERVER_ERROR));
70
70
  });
71
71
  });
72
72
  describe("v1/proof/merge", () => {
@@ -83,7 +83,7 @@ describe("ProofController", () => {
83
83
  test("should throw an error if file service throws an error", async () => {
84
84
  const error = new Error("error");
85
85
  mockFileService.getPublicKey.mockRejectedValue(error);
86
- await expect(proofController.getPublicKey()).rejects.toThrow(new HttpException(error.message, HttpStatus.BAD_REQUEST));
86
+ await expect(proofController.getPublicKey()).rejects.toThrow(new HttpException(error.message, HttpStatus.INTERNAL_SERVER_ERROR));
87
87
  });
88
88
  });
89
89
  });
@@ -1 +1 @@
1
- {"version":3,"file":"proof.controller.test.js","sourceRoot":"","sources":["../../../../ts/proof/__tests__/proof.controller.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAKvC,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,gBAAgB,CAAC,SAAS;KAClC,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,gBAAgB,CAAC,SAAS;KAClC,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
+ {"version":3,"file":"proof.controller.test.js","sourceRoot":"","sources":["../../../../ts/proof/__tests__/proof.controller.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"proof.controller.d.ts","sourceRoot":"","sources":["../../../ts/proof/proof.controller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAiB,eAAe,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,qBAGa,eAAe;IAaxB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAb9B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAE3D;;;;;OAKG;gBAEgB,qBAAqB,EAAE,qBAAqB,EAC5C,WAAW,EAAE,WAAW;IAG3C;;;;;OAKG;IAMG,QAAQ,CAAS,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAOtE;;;;;OAKG;IAMG,KAAK,CAAS,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAOvD;;;OAGG;IAMG,MAAM,CAAS,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAOhE;;;;OAIG;IAIG,YAAY,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAMjD"}
1
+ {"version":3,"file":"proof.controller.d.ts","sourceRoot":"","sources":["../../../ts/proof/proof.controller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAiB,eAAe,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,qBAGa,eAAe;IAaxB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAb9B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAE3D;;;;;OAKG;gBAEgB,qBAAqB,EAAE,qBAAqB,EAC5C,WAAW,EAAE,WAAW;IAG3C;;;;;OAKG;IAcG,QAAQ,CAAS,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAOtE;;;;;OAKG;IAcG,KAAK,CAAS,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAOvD;;;OAGG;IAcG,MAAM,CAAS,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAOhE;;;;OAIG;IAKG,YAAY,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAMjD"}
@@ -14,6 +14,7 @@ var ProofController_1;
14
14
  /* eslint-disable @typescript-eslint/no-shadow */
15
15
  import { Body, Controller, Get, HttpException, HttpStatus, Logger, Post } from "@nestjs/common";
16
16
  import { ApiBearerAuth, ApiBody, ApiResponse, ApiTags } from "@nestjs/swagger";
17
+ import { mapErrorToHttpStatus } from "../common/http";
17
18
  import { FileService } from "../file/file.service";
18
19
  import { GenerateProofDto, MergeTreesDto, SubmitProofsDto } from "./dto";
19
20
  import { ProofGeneratorService } from "./proof.service";
@@ -43,7 +44,7 @@ let ProofController = ProofController_1 = class ProofController {
43
44
  async generate(args) {
44
45
  return this.proofGeneratorService.generate(args).catch((error) => {
45
46
  this.logger.error(`Error:`, error);
46
- throw new HttpException(error.message, HttpStatus.BAD_REQUEST);
47
+ throw new HttpException(error.message, mapErrorToHttpStatus(error));
47
48
  });
48
49
  }
49
50
  /**
@@ -55,7 +56,7 @@ let ProofController = ProofController_1 = class ProofController {
55
56
  async merge(args) {
56
57
  return this.proofGeneratorService.merge(args).catch((error) => {
57
58
  this.logger.error(`Error:`, error);
58
- throw new HttpException(error.message, HttpStatus.BAD_REQUEST);
59
+ throw new HttpException(error.message, mapErrorToHttpStatus(error));
59
60
  });
60
61
  }
61
62
  /**
@@ -65,7 +66,7 @@ let ProofController = ProofController_1 = class ProofController {
65
66
  async submit(args) {
66
67
  return this.proofGeneratorService.submit(args).catch((error) => {
67
68
  this.logger.error(`Error:`, error);
68
- throw new HttpException(error.message, HttpStatus.BAD_REQUEST);
69
+ throw new HttpException(error.message, mapErrorToHttpStatus(error));
69
70
  });
70
71
  }
71
72
  /**
@@ -76,15 +77,23 @@ let ProofController = ProofController_1 = class ProofController {
76
77
  async getPublicKey() {
77
78
  return this.fileService.getPublicKey().catch((error) => {
78
79
  this.logger.error(`Error:`, error);
79
- throw new HttpException(error.message, HttpStatus.BAD_REQUEST);
80
+ throw new HttpException(error.message, mapErrorToHttpStatus(error));
80
81
  });
81
82
  }
82
83
  };
83
84
  __decorate([
84
85
  ApiBody({ type: GenerateProofDto }),
85
86
  ApiResponse({ status: HttpStatus.CREATED, description: "The proofs have been successfully generated" }),
86
- ApiResponse({ status: HttpStatus.FORBIDDEN, description: "Forbidden" }),
87
- ApiResponse({ status: HttpStatus.BAD_REQUEST, description: "BadRequest" }),
87
+ ApiResponse({ status: HttpStatus.FORBIDDEN, description: "Invalid approval signature" }),
88
+ ApiResponse({ status: HttpStatus.BAD_REQUEST, description: "Unsupported input (network/policy/voice credit proxy)" }),
89
+ ApiResponse({
90
+ status: HttpStatus.CONFLICT,
91
+ description: "Operation cannot proceed due to state conflict (e.g., poll already tallied or trees not merged)",
92
+ }),
93
+ ApiResponse({
94
+ status: HttpStatus.INTERNAL_SERVER_ERROR,
95
+ description: "Proof generation failed (encryption/decryption or merge failure)",
96
+ }),
88
97
  Post("generate"),
89
98
  __param(0, Body()),
90
99
  __metadata("design:type", Function),
@@ -94,8 +103,16 @@ __decorate([
94
103
  __decorate([
95
104
  ApiBody({ type: MergeTreesDto }),
96
105
  ApiResponse({ status: HttpStatus.CREATED, description: "The proofs have been successfully merged" }),
97
- ApiResponse({ status: HttpStatus.FORBIDDEN, description: "Forbidden" }),
98
- ApiResponse({ status: HttpStatus.BAD_REQUEST, description: "BadRequest" }),
106
+ ApiResponse({ status: HttpStatus.FORBIDDEN, description: "Invalid approval signature" }),
107
+ ApiResponse({ status: HttpStatus.BAD_REQUEST, description: "Invalid input" }),
108
+ ApiResponse({
109
+ status: HttpStatus.CONFLICT,
110
+ description: "Operation cannot proceed due to state conflict (e.g., trees not ready/merged)",
111
+ }),
112
+ ApiResponse({
113
+ status: HttpStatus.INTERNAL_SERVER_ERROR,
114
+ description: "Merge failed (failed to merge state or message trees)",
115
+ }),
99
116
  Post("merge"),
100
117
  __param(0, Body()),
101
118
  __metadata("design:type", Function),
@@ -105,8 +122,16 @@ __decorate([
105
122
  __decorate([
106
123
  ApiBody({ type: SubmitProofsDto }),
107
124
  ApiResponse({ status: HttpStatus.CREATED, description: "The proofs have been successfully submitted" }),
108
- ApiResponse({ status: HttpStatus.FORBIDDEN, description: "Forbidden" }),
109
- ApiResponse({ status: HttpStatus.BAD_REQUEST, description: "BadRequest" }),
125
+ ApiResponse({ status: HttpStatus.FORBIDDEN, description: "Invalid approval signature" }),
126
+ ApiResponse({ status: HttpStatus.BAD_REQUEST, description: "Invalid input" }),
127
+ ApiResponse({
128
+ status: HttpStatus.CONFLICT,
129
+ description: "Operation cannot proceed due to state conflict (e.g., poll already tallied)",
130
+ }),
131
+ ApiResponse({
132
+ status: HttpStatus.INTERNAL_SERVER_ERROR,
133
+ description: "On-chain submission failed (verifying keys/contract interaction errors)",
134
+ }),
110
135
  Post("submit"),
111
136
  __param(0, Body()),
112
137
  __metadata("design:type", Function),
@@ -115,7 +140,8 @@ __decorate([
115
140
  ], ProofController.prototype, "submit", null);
116
141
  __decorate([
117
142
  ApiResponse({ status: HttpStatus.OK, description: "Public key was successfully returned" }),
118
- ApiResponse({ status: HttpStatus.BAD_REQUEST, description: "BadRequest" }),
143
+ ApiResponse({ status: HttpStatus.BAD_REQUEST, description: "Invalid request" }),
144
+ ApiResponse({ status: HttpStatus.INTERNAL_SERVER_ERROR, description: "Failed to read or generate public key" }),
119
145
  Get("publicKey"),
120
146
  __metadata("design:type", Function),
121
147
  __metadata("design:paramtypes", []),
@@ -1 +1 @@
1
- {"version":3,"file":"proof.controller.js","sourceRoot":"","sources":["../../../ts/proof/proof.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proof.controller.js","sourceRoot":"","sources":["../../../ts/proof/proof.controller.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@ describe("SchedulerController", () => {
32
32
  test("should throw an error if registration fails", async () => {
33
33
  const errorMessage = "Registration failed";
34
34
  service.registerPoll.mockRejectedValueOnce(new Error(errorMessage));
35
- await expect(controller.register(scheduledPoll)).rejects.toThrow(new HttpException(errorMessage, HttpStatus.BAD_REQUEST));
35
+ await expect(controller.register(scheduledPoll)).rejects.toThrow(new HttpException(errorMessage, HttpStatus.INTERNAL_SERVER_ERROR));
36
36
  });
37
37
  });
38
38
  describe("status", () => {
@@ -43,7 +43,7 @@ describe("SchedulerController", () => {
43
43
  test("should throw an error if checking status fails", async () => {
44
44
  const errorMessage = "checking status failed";
45
45
  service.isPollScheduled.mockRejectedValueOnce(new Error(errorMessage));
46
- await expect(controller.status(scheduledPoll)).rejects.toThrow(new HttpException(errorMessage, HttpStatus.BAD_REQUEST));
46
+ await expect(controller.status(scheduledPoll)).rejects.toThrow(new HttpException(errorMessage, HttpStatus.INTERNAL_SERVER_ERROR));
47
47
  });
48
48
  });
49
49
  describe("delete", () => {
@@ -55,7 +55,7 @@ describe("SchedulerController", () => {
55
55
  test("should throw an error if checking status fails", async () => {
56
56
  const errorMessage = "Delete failed";
57
57
  service.deleteScheduledPoll.mockRejectedValueOnce(new Error(errorMessage));
58
- await expect(controller.delete(scheduledPoll)).rejects.toThrow(new HttpException(errorMessage, HttpStatus.BAD_REQUEST));
58
+ await expect(controller.delete(scheduledPoll)).rejects.toThrow(new HttpException(errorMessage, HttpStatus.INTERNAL_SERVER_ERROR));
59
59
  });
60
60
  });
61
61
  });
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.controller.test.js","sourceRoot":"","sources":["../../../../ts/scheduler/__tests__/scheduler.controller.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.controller.test.js","sourceRoot":"","sources":["../../../../ts/scheduler/__tests__/scheduler.controller.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.controller.d.ts","sourceRoot":"","sources":["../../../ts/scheduler/scheduler.controller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAA+B,MAAM,SAAS,CAAC;AAGrF,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,qBAEa,mBAAmB;IAWlB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAV7C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAE/D;;;;OAIG;gBAC0B,gBAAgB,EAAE,gBAAgB;IAE/D;;OAEG;IAIG,QAAQ,CAAS,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAe1F;;;;OAIG;IAIG,MAAM,CAAS,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAYvF;;;OAGG;IAIG,MAAM,CAAS,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAWxF"}
1
+ {"version":3,"file":"scheduler.controller.d.ts","sourceRoot":"","sources":["../../../ts/scheduler/scheduler.controller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAA+B,MAAM,SAAS,CAAC;AAKrF,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,qBAEa,mBAAmB;IAWlB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAV7C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAE/D;;;;OAIG;gBAC0B,gBAAgB,EAAE,gBAAgB;IAE/D;;OAEG;IAMG,QAAQ,CAAS,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAe1F;;;;OAIG;IAMG,MAAM,CAAS,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAYvF;;;OAGG;IAMG,MAAM,CAAS,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAWxF"}
@@ -13,6 +13,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  var SchedulerController_1;
14
14
  import { Body, Controller, HttpException, HttpStatus, Logger, Post } from "@nestjs/common";
15
15
  import { ApiResponse, ApiTags } from "@nestjs/swagger";
16
+ import { mapErrorToHttpStatus } from "../common/http";
16
17
  import { IdentityScheduledPollDto, SchedulePollWithSignerDto } from "./dto";
17
18
  import { SchedulerService } from "./scheduler.service";
18
19
  let SchedulerController = SchedulerController_1 = class SchedulerController {
@@ -42,7 +43,7 @@ let SchedulerController = SchedulerController_1 = class SchedulerController {
42
43
  };
43
44
  return this.schedulerService.registerPoll(schedulePollWithSignerArgs).catch((error) => {
44
45
  this.logger.error(`Error:`, error);
45
- throw new HttpException(error.message, HttpStatus.BAD_REQUEST);
46
+ throw new HttpException(error.message, mapErrorToHttpStatus(error));
46
47
  });
47
48
  }
48
49
  /**
@@ -57,7 +58,7 @@ let SchedulerController = SchedulerController_1 = class SchedulerController {
57
58
  };
58
59
  return this.schedulerService.isPollScheduled(identityScheduledPoll).catch((error) => {
59
60
  this.logger.error(`Error:`, error);
60
- throw new HttpException(error.message, HttpStatus.BAD_REQUEST);
61
+ throw new HttpException(error.message, mapErrorToHttpStatus(error));
61
62
  });
62
63
  }
63
64
  /**
@@ -71,13 +72,15 @@ let SchedulerController = SchedulerController_1 = class SchedulerController {
71
72
  };
72
73
  return this.schedulerService.deleteScheduledPoll(identityScheduledPoll).catch((error) => {
73
74
  this.logger.error(`Error:`, error);
74
- throw new HttpException(error.message, HttpStatus.BAD_REQUEST);
75
+ throw new HttpException(error.message, mapErrorToHttpStatus(error));
75
76
  });
76
77
  }
77
78
  };
78
79
  __decorate([
79
80
  ApiResponse({ status: HttpStatus.OK, description: "Poll finalization has been scheduled" }),
80
- ApiResponse({ status: HttpStatus.BAD_REQUEST, description: "BadRequest" }),
81
+ ApiResponse({ status: HttpStatus.BAD_REQUEST, description: "Invalid input" }),
82
+ ApiResponse({ status: HttpStatus.CONFLICT, description: "Poll already scheduled or already tallied" }),
83
+ ApiResponse({ status: HttpStatus.INTERNAL_SERVER_ERROR, description: "Failed to update scheduler state" }),
81
84
  Post("register"),
82
85
  __param(0, Body()),
83
86
  __metadata("design:type", Function),
@@ -86,7 +89,9 @@ __decorate([
86
89
  ], SchedulerController.prototype, "register", null);
87
90
  __decorate([
88
91
  ApiResponse({ status: HttpStatus.OK, description: "Poll finalization status" }),
89
- ApiResponse({ status: HttpStatus.NOT_FOUND, description: "BadRequest" }),
92
+ ApiResponse({ status: HttpStatus.NOT_FOUND, description: "Poll not found" }),
93
+ ApiResponse({ status: HttpStatus.CONFLICT, description: "Poll already tallied" }),
94
+ ApiResponse({ status: HttpStatus.INTERNAL_SERVER_ERROR, description: "Failed to read scheduler state" }),
90
95
  Post("status"),
91
96
  __param(0, Body()),
92
97
  __metadata("design:type", Function),
@@ -95,7 +100,9 @@ __decorate([
95
100
  ], SchedulerController.prototype, "status", null);
96
101
  __decorate([
97
102
  ApiResponse({ status: HttpStatus.OK, description: "Poll finalization has been deleted" }),
98
- ApiResponse({ status: HttpStatus.NOT_FOUND, description: "BadRequest" }),
103
+ ApiResponse({ status: HttpStatus.NOT_FOUND, description: "Poll not found" }),
104
+ ApiResponse({ status: HttpStatus.CONFLICT, description: "Poll already tallied" }),
105
+ ApiResponse({ status: HttpStatus.INTERNAL_SERVER_ERROR, description: "Failed to update scheduler state" }),
99
106
  Post("delete"),
100
107
  __param(0, Body()),
101
108
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.controller.js","sourceRoot":"","sources":["../../../ts/scheduler/scheduler.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.controller.js","sourceRoot":"","sources":["../../../ts/scheduler/scheduler.controller.ts"],"names":[],"mappings":"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"}
@@ -43,7 +43,7 @@ describe("SubgraphController", () => {
43
43
  test("should throw an error if proof generation is failed", async () => {
44
44
  const error = new Error("error");
45
45
  mockSubgraphService.deploy.mockRejectedValue(error);
46
- await expect(subgraphController.deploy(defaultSubgraphDeployArgs)).rejects.toThrow(new HttpException(error.message, HttpStatus.BAD_REQUEST));
46
+ await expect(subgraphController.deploy(defaultSubgraphDeployArgs)).rejects.toThrow(new HttpException(error.message, HttpStatus.INTERNAL_SERVER_ERROR));
47
47
  });
48
48
  });
49
49
  });
@@ -1 +1 @@
1
- {"version":3,"file":"subgraph.controller.test.js","sourceRoot":"","sources":["../../../../ts/subgraph/__tests__/subgraph.controller.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAIvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,kBAAsC,CAAC;IAE3C,MAAM,yBAAyB,GAAwB;QACrD,mBAAmB,EAAE,4CAA4C;QACjE,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,gBAAgB,CAAC,eAAe;QACzC,IAAI,EAAE,UAAU;QAChB,GAAG,EAAE,QAAQ;KACd,CAAC;IAEF,MAAM,yBAAyB,GAA0B;QACvD,GAAG,EAAE,KAAK;KACX,CAAC;IAEF,MAAM,mBAAmB,GAAG;QAC1B,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;KAClB,CAAC;IAEF,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC;YACzC,WAAW,EAAE,CAAC,kBAAkB,CAAC;SAClC,CAAC;aACC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;gBAC9B,mBAAmB,CAAC,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;gBAExE,OAAO,mBAAmB,CAAC;YAC7B,CAAC;YAED,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;QACnB,CAAC,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,kBAAkB,GAAG,GAAG,CAAC,GAAG,CAAqB,kBAAkB,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,IAAI,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACxE,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,mBAAmB,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAEpD,MAAM,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAChF,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
+ {"version":3,"file":"subgraph.controller.test.js","sourceRoot":"","sources":["../../../../ts/subgraph/__tests__/subgraph.controller.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAIvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,kBAAsC,CAAC;IAE3C,MAAM,yBAAyB,GAAwB;QACrD,mBAAmB,EAAE,4CAA4C;QACjE,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,gBAAgB,CAAC,eAAe;QACzC,IAAI,EAAE,UAAU;QAChB,GAAG,EAAE,QAAQ;KACd,CAAC;IAEF,MAAM,yBAAyB,GAA0B;QACvD,GAAG,EAAE,KAAK;KACX,CAAC;IAEF,MAAM,mBAAmB,GAAG;QAC1B,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;KAClB,CAAC;IAEF,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC;YACzC,WAAW,EAAE,CAAC,kBAAkB,CAAC;SAClC,CAAC;aACC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;gBAC9B,mBAAmB,CAAC,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;gBAExE,OAAO,mBAAmB,CAAC;YAC7B,CAAC;YAED,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;QACnB,CAAC,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,kBAAkB,GAAG,GAAG,CAAC,GAAG,CAAqB,kBAAkB,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,IAAI,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACxE,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,mBAAmB,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAEpD,MAAM,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAChF,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,qBAAqB,CAAC,CACnE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}