@maci-protocol/coordinator 0.0.0-ci.df71430 → 0.0.0-ci.e15f6a5

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 (105) 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/utils.d.ts.map +1 -1
  7. package/build/tests/utils.js.map +1 -1
  8. package/build/ts/app.module.d.ts.map +1 -1
  9. package/build/ts/app.module.js +2 -0
  10. package/build/ts/app.module.js.map +1 -1
  11. package/build/ts/common/__tests__/common.test.js +6 -16
  12. package/build/ts/common/__tests__/common.test.js.map +1 -1
  13. package/build/ts/common/accountAbstraction.js +2 -2
  14. package/build/ts/common/accountAbstraction.js.map +1 -1
  15. package/build/ts/common/chain.d.ts +3 -3
  16. package/build/ts/common/chain.d.ts.map +1 -1
  17. package/build/ts/common/chain.js +13 -15
  18. package/build/ts/common/chain.js.map +1 -1
  19. package/build/ts/common/coordinatorKeypair.d.ts +7 -0
  20. package/build/ts/common/coordinatorKeypair.d.ts.map +1 -0
  21. package/build/ts/common/coordinatorKeypair.js +14 -0
  22. package/build/ts/common/coordinatorKeypair.js.map +1 -0
  23. package/build/ts/common/errors.d.ts +1 -1
  24. package/build/ts/common/errors.d.ts.map +1 -1
  25. package/build/ts/common/errors.js +1 -1
  26. package/build/ts/common/errors.js.map +1 -1
  27. package/build/ts/deployer/__tests__/deployer.controller.test.js +7 -7
  28. package/build/ts/deployer/__tests__/deployer.controller.test.js.map +1 -1
  29. package/build/ts/deployer/__tests__/deployer.service.test.js +54 -8
  30. package/build/ts/deployer/__tests__/deployer.service.test.js.map +1 -1
  31. package/build/ts/deployer/__tests__/utils.d.ts +2 -6
  32. package/build/ts/deployer/__tests__/utils.d.ts.map +1 -1
  33. package/build/ts/deployer/__tests__/utils.js +7 -12
  34. package/build/ts/deployer/__tests__/utils.js.map +1 -1
  35. package/build/ts/deployer/deployer.service.d.ts +4 -5
  36. package/build/ts/deployer/deployer.service.d.ts.map +1 -1
  37. package/build/ts/deployer/deployer.service.js +173 -52
  38. package/build/ts/deployer/deployer.service.js.map +1 -1
  39. package/build/ts/deployer/types.d.ts +21 -18
  40. package/build/ts/deployer/types.d.ts.map +1 -1
  41. package/build/ts/file/__tests__/file.service.test.js +12 -11
  42. package/build/ts/file/__tests__/file.service.test.js.map +1 -1
  43. package/build/ts/file/file.service.d.ts +4 -3
  44. package/build/ts/file/file.service.d.ts.map +1 -1
  45. package/build/ts/file/file.service.js +14 -9
  46. package/build/ts/file/file.service.js.map +1 -1
  47. package/build/ts/file/types.d.ts +2 -2
  48. package/build/ts/file/types.d.ts.map +1 -1
  49. package/build/ts/health/__tests__/health.controller.test.d.ts +2 -0
  50. package/build/ts/health/__tests__/health.controller.test.d.ts.map +1 -0
  51. package/build/ts/health/__tests__/health.controller.test.js +22 -0
  52. package/build/ts/health/__tests__/health.controller.test.js.map +1 -0
  53. package/build/ts/health/__tests__/health.service.test.d.ts +2 -0
  54. package/build/ts/health/__tests__/health.service.test.d.ts.map +1 -0
  55. package/build/ts/health/__tests__/health.service.test.js +77 -0
  56. package/build/ts/health/__tests__/health.service.test.js.map +1 -0
  57. package/build/ts/health/health.controller.d.ts +16 -0
  58. package/build/ts/health/health.controller.d.ts.map +1 -0
  59. package/build/ts/health/health.controller.js +43 -0
  60. package/build/ts/health/health.controller.js.map +1 -0
  61. package/build/ts/health/health.module.d.ts +3 -0
  62. package/build/ts/health/health.module.d.ts.map +1 -0
  63. package/build/ts/health/health.module.js +21 -0
  64. package/build/ts/health/health.module.js.map +1 -0
  65. package/build/ts/health/health.service.d.ts +35 -0
  66. package/build/ts/health/health.service.d.ts.map +1 -0
  67. package/build/ts/health/health.service.js +169 -0
  68. package/build/ts/health/health.service.js.map +1 -0
  69. package/build/ts/health/types.d.ts +79 -0
  70. package/build/ts/health/types.d.ts.map +1 -0
  71. package/build/ts/health/types.js +2 -0
  72. package/build/ts/health/types.js.map +1 -0
  73. package/build/ts/proof/__tests__/proof.controller.test.js +2 -2
  74. package/build/ts/proof/__tests__/proof.controller.test.js.map +1 -1
  75. package/build/ts/proof/__tests__/proof.gateway.test.js +2 -2
  76. package/build/ts/proof/__tests__/proof.gateway.test.js.map +1 -1
  77. package/build/ts/proof/__tests__/proof.service.test.js +32 -73
  78. package/build/ts/proof/__tests__/proof.service.test.js.map +1 -1
  79. package/build/ts/proof/dto.d.ts +3 -6
  80. package/build/ts/proof/dto.d.ts.map +1 -1
  81. package/build/ts/proof/dto.js +9 -23
  82. package/build/ts/proof/dto.js.map +1 -1
  83. package/build/ts/proof/proof.controller.d.ts.map +1 -1
  84. package/build/ts/proof/proof.controller.js +1 -4
  85. package/build/ts/proof/proof.controller.js.map +1 -1
  86. package/build/ts/proof/proof.service.d.ts +2 -4
  87. package/build/ts/proof/proof.service.d.ts.map +1 -1
  88. package/build/ts/proof/proof.service.js +26 -27
  89. package/build/ts/proof/proof.service.js.map +1 -1
  90. package/build/ts/proof/types.d.ts +3 -6
  91. package/build/ts/proof/types.d.ts.map +1 -1
  92. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js +2 -2
  93. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js.map +1 -1
  94. package/build/ts/subgraph/__tests__/subgraph.service.test.js +2 -3
  95. package/build/ts/subgraph/__tests__/subgraph.service.test.js.map +1 -1
  96. package/build/ts/subgraph/subgraph.service.d.ts +4 -0
  97. package/build/ts/subgraph/subgraph.service.d.ts.map +1 -1
  98. package/build/ts/subgraph/subgraph.service.js +16 -5
  99. package/build/ts/subgraph/subgraph.service.js.map +1 -1
  100. package/build/tsconfig.build.tsbuildinfo +1 -1
  101. package/package.json +35 -36
  102. package/build/tests/e2e.aa.test.d.ts +0 -2
  103. package/build/tests/e2e.aa.test.d.ts.map +0 -1
  104. package/build/tests/e2e.aa.test.js +0 -106
  105. package/build/tests/e2e.aa.test.js.map +0 -1
@@ -8,6 +8,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
10
  var FileService_1;
11
+ import { EMode } from "@maci-protocol/sdk";
11
12
  import { Injectable, Logger } from "@nestjs/common";
12
13
  import low from "lowdb";
13
14
  import FileSync from "lowdb/adapters/FileSync";
@@ -80,30 +81,34 @@ let FileService = FileService_1 = class FileService {
80
81
  return { privateKey: privateKey.toString() };
81
82
  }
82
83
  /**
83
- * Get zkey, wasm and witgen filepaths for zkey set
84
+ * Get zkey, wasm and witness generator filepaths for zkey set
84
85
  *
85
86
  * @param name - zkey set name
86
- * @param useQuadraticVoting - whether to use Qv or NonQv
87
+ * @param mode - voting mode
87
88
  * @returns zkey and wasm filepaths
88
89
  */
89
- getZkeyFilePaths(name, useQuadraticVoting) {
90
+ getZkeyFilePaths(name, mode) {
90
91
  const root = path.resolve(process.env.COORDINATOR_ZKEY_PATH);
91
92
  const index = name.indexOf("_");
92
93
  const type = name.slice(0, index);
93
94
  const params = name.slice(index + 1);
94
- const mode = useQuadraticVoting ? "" : "NonQv";
95
- const filename = `${type}${mode}_${params}`;
95
+ const modePrefixes = {
96
+ [EMode.QV]: "Qv",
97
+ [EMode.NON_QV]: "NonQv",
98
+ [EMode.FULL]: "Full",
99
+ };
100
+ const filename = `${type}${mode === undefined ? "" : modePrefixes[mode]}_${params}`;
96
101
  const zkey = path.resolve(root, `${filename}/${filename}.0.zkey`);
97
102
  const wasm = path.resolve(root, `${filename}/${filename}_js/${filename}.wasm`);
98
- const witgen = path.resolve(root, `${filename}/${filename}_cpp/${filename}`);
99
- if (!fs.existsSync(zkey) || (!fs.existsSync(wasm) && !fs.existsSync(witgen))) {
100
- this.logger.error(`Error: ${ErrorCodes.FILE_NOT_FOUND}, zkey: ${zkey}, wasm: ${wasm}, witgen: ${witgen}`);
103
+ const witnessGenerator = path.resolve(root, `${filename}/${filename}_cpp/${filename}`);
104
+ if (!fs.existsSync(zkey) || (!fs.existsSync(wasm) && !fs.existsSync(witnessGenerator))) {
105
+ this.logger.error(`Error: ${ErrorCodes.FILE_NOT_FOUND}, zkey: ${zkey}, wasm: ${wasm}, witnessGenerator: ${witnessGenerator}`);
101
106
  throw new Error(ErrorCodes.FILE_NOT_FOUND.toString());
102
107
  }
103
108
  return {
104
109
  zkey,
105
110
  wasm,
106
- witgen,
111
+ witnessGenerator,
107
112
  };
108
113
  }
109
114
  };
@@ -1 +1 @@
1
- {"version":3,"file":"file.service.js","sourceRoot":"","sources":["../../../ts/file/file.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file.service.js","sourceRoot":"","sources":["../../../ts/file/file.service.ts"],"names":[],"mappings":"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"}
@@ -29,8 +29,8 @@ export interface IGetZkeyFilePathsData {
29
29
  */
30
30
  wasm: string;
31
31
  /**
32
- * Witgen filepath
32
+ * Witness generator filepath
33
33
  */
34
- witgen: string;
34
+ witnessGenerator: string;
35
35
  }
36
36
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/file/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/file/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=health.controller.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.controller.test.d.ts","sourceRoot":"","sources":["../../../../ts/health/__tests__/health.controller.test.ts"],"names":[],"mappings":""}
@@ -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":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;IAErD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,eAAe,EAAE,CAAC;YAEvD,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACvF,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,+BAA+B,CAAC;YACzE,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,eAAe,EAAE,CAAC;YAEvD,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;YACrF,MAAM,EAAE,oBAAoB,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAC3F,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;YAEzD,MAAM,qBAAqB,GACzB,CAAC,GAAG,oBAAoB;gBACxB,CAAC,GAAG,mBAAmB;gBACvB,CAAC,GAAG,oDAAoD;gBACxD,CAAC,CAAC,CAAC,iDAAiD;YAEtD,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uGAAuG,EAAE,KAAK,IAAI,EAAE;YACrH,OAAO,CAAC,GAAG,CAAC,kCAAkC,GAAG,iCAAiC,CAAC;YACnF,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAErE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sGAAsG,EAAE,KAAK,IAAI,EAAE;YACpH,OAAO,CAAC,GAAG,CAAC,iCAAiC,GAAG,gCAAgC,CAAC;YACjF,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAErE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gGAAgG,EAAE,KAAK,IAAI,EAAE;YAC9G,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,+BAA+B,CAAC;YAC1E,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAErE,MAAM,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,SAAS,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClH,MAAM,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,SAAS,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0GAA0G,EAAE,KAAK,IAAI,EAAE;YACxH,OAAO,CAAC,GAAG,CAAC,qCAAqC,GAAG,yCAAyC,CAAC;YAC9F,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAErE,MAAM,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,qCAAqC,SAAS,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC9G,SAAS,CACV,CAAC;YACF,MAAM,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,qCAAqC,SAAS,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC1G,SAAS,CACV,CAAC;YACF,MAAM,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,qCAAqC,SAAS,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC5G,SAAS,CACV,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,0BAA0B,CAAC;YAC/D,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAE3E,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,gBAAgB,EAAE,CAAC;YAE3D,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC;YAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,aAAa,CAAC,gBAAgB,EAAE,CAAC;YAE3D,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -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":""}