@maci-protocol/coordinator 0.0.0-ci.d0dddbc → 0.0.0-ci.d231815

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 (213) hide show
  1. package/README.md +64 -28
  2. package/build/hardhat.config.cjs +14 -9
  3. package/build/hardhat.config.cjs.map +1 -1
  4. package/build/hardhat.config.d.cts +12 -12
  5. package/build/hardhat.config.d.cts.map +1 -1
  6. package/build/scripts/generateKeypair.js +2 -2
  7. package/build/scripts/generateKeypair.js.map +1 -1
  8. package/build/tests/constants.d.ts +3 -3
  9. package/build/tests/constants.d.ts.map +1 -1
  10. package/build/tests/constants.js +5 -3
  11. package/build/tests/constants.js.map +1 -1
  12. package/build/tests/e2e.deploy.test.js +28 -43
  13. package/build/tests/e2e.deploy.test.js.map +1 -1
  14. package/build/tests/e2e.redis.test.d.ts +2 -0
  15. package/build/tests/e2e.redis.test.d.ts.map +1 -0
  16. package/build/tests/e2e.redis.test.js +118 -0
  17. package/build/tests/e2e.redis.test.js.map +1 -0
  18. package/build/tests/utils.d.ts +1 -1
  19. package/build/tests/utils.d.ts.map +1 -1
  20. package/build/tests/utils.js +5 -3
  21. package/build/tests/utils.js.map +1 -1
  22. package/build/ts/app.module.d.ts.map +1 -1
  23. package/build/ts/app.module.js +6 -0
  24. package/build/ts/app.module.js.map +1 -1
  25. package/build/ts/common/__tests__/common.test.js +40 -38
  26. package/build/ts/common/__tests__/common.test.js.map +1 -1
  27. package/build/ts/common/accountAbstraction.d.ts +5 -5
  28. package/build/ts/common/accountAbstraction.d.ts.map +1 -1
  29. package/build/ts/common/accountAbstraction.js +10 -8
  30. package/build/ts/common/accountAbstraction.js.map +1 -1
  31. package/build/ts/common/chain.d.ts +10 -4
  32. package/build/ts/common/chain.d.ts.map +1 -1
  33. package/build/ts/common/chain.js +15 -10
  34. package/build/ts/common/chain.js.map +1 -1
  35. package/build/ts/common/errors.d.ts +15 -11
  36. package/build/ts/common/errors.d.ts.map +1 -1
  37. package/build/ts/common/errors.js +15 -11
  38. package/build/ts/common/errors.js.map +1 -1
  39. package/build/ts/common/http.d.ts +6 -0
  40. package/build/ts/common/http.d.ts.map +1 -0
  41. package/build/ts/common/http.js +49 -0
  42. package/build/ts/common/http.js.map +1 -0
  43. package/build/ts/common/index.d.ts +1 -1
  44. package/build/ts/common/index.d.ts.map +1 -1
  45. package/build/ts/common/index.js +1 -1
  46. package/build/ts/common/index.js.map +1 -1
  47. package/build/ts/common/networks.d.ts +2 -21
  48. package/build/ts/common/networks.d.ts.map +1 -1
  49. package/build/ts/common/networks.js +39 -48
  50. package/build/ts/common/networks.js.map +1 -1
  51. package/build/ts/common/types.d.ts +2 -2
  52. package/build/ts/common/types.d.ts.map +1 -1
  53. package/build/ts/deployer/__tests__/deployer.controller.test.js +23 -25
  54. package/build/ts/deployer/__tests__/deployer.controller.test.js.map +1 -1
  55. package/build/ts/deployer/__tests__/deployer.service.test.js +186 -80
  56. package/build/ts/deployer/__tests__/deployer.service.test.js.map +1 -1
  57. package/build/ts/deployer/__tests__/utils.d.ts +8 -9
  58. package/build/ts/deployer/__tests__/utils.d.ts.map +1 -1
  59. package/build/ts/deployer/__tests__/utils.js +13 -18
  60. package/build/ts/deployer/__tests__/utils.js.map +1 -1
  61. package/build/ts/deployer/deployer.controller.d.ts.map +1 -1
  62. package/build/ts/deployer/deployer.controller.js +19 -6
  63. package/build/ts/deployer/deployer.controller.js.map +1 -1
  64. package/build/ts/deployer/deployer.service.d.ts +17 -8
  65. package/build/ts/deployer/deployer.service.d.ts.map +1 -1
  66. package/build/ts/deployer/deployer.service.js +222 -62
  67. package/build/ts/deployer/deployer.service.js.map +1 -1
  68. package/build/ts/deployer/dto.d.ts +3 -3
  69. package/build/ts/deployer/dto.d.ts.map +1 -1
  70. package/build/ts/deployer/dto.js +5 -5
  71. package/build/ts/deployer/dto.js.map +1 -1
  72. package/build/ts/deployer/types.d.ts +38 -28
  73. package/build/ts/deployer/types.d.ts.map +1 -1
  74. package/build/ts/file/file.service.d.ts.map +1 -1
  75. package/build/ts/file/file.service.js +4 -3
  76. package/build/ts/file/file.service.js.map +1 -1
  77. package/build/ts/health/__tests__/health.controller.test.d.ts +2 -0
  78. package/build/ts/health/__tests__/health.controller.test.d.ts.map +1 -0
  79. package/build/ts/health/__tests__/health.controller.test.js +52 -0
  80. package/build/ts/health/__tests__/health.controller.test.js.map +1 -0
  81. package/build/ts/health/__tests__/health.service.test.d.ts +2 -0
  82. package/build/ts/health/__tests__/health.service.test.d.ts.map +1 -0
  83. package/build/ts/health/__tests__/health.service.test.js +101 -0
  84. package/build/ts/health/__tests__/health.service.test.js.map +1 -0
  85. package/build/ts/health/health.controller.d.ts +16 -0
  86. package/build/ts/health/health.controller.d.ts.map +1 -0
  87. package/build/ts/health/health.controller.js +43 -0
  88. package/build/ts/health/health.controller.js.map +1 -0
  89. package/build/ts/health/health.module.d.ts +3 -0
  90. package/build/ts/health/health.module.d.ts.map +1 -0
  91. package/build/ts/health/health.module.js +22 -0
  92. package/build/ts/health/health.module.js.map +1 -0
  93. package/build/ts/health/health.service.d.ts +42 -0
  94. package/build/ts/health/health.service.d.ts.map +1 -0
  95. package/build/ts/health/health.service.js +176 -0
  96. package/build/ts/health/health.service.js.map +1 -0
  97. package/build/ts/health/types.d.ts +87 -0
  98. package/build/ts/health/types.d.ts.map +1 -0
  99. package/build/ts/health/types.js +2 -0
  100. package/build/ts/health/types.js.map +1 -0
  101. package/build/ts/jest/__mocks__/@openzeppelin/merkle-tree.d.ts +11 -0
  102. package/build/ts/jest/__mocks__/@openzeppelin/merkle-tree.d.ts.map +1 -0
  103. package/build/ts/jest/__mocks__/@openzeppelin/merkle-tree.js +12 -0
  104. package/build/ts/jest/__mocks__/@openzeppelin/merkle-tree.js.map +1 -0
  105. package/build/ts/main.js +1 -1
  106. package/build/ts/proof/__tests__/proof.controller.test.js +5 -6
  107. package/build/ts/proof/__tests__/proof.controller.test.js.map +1 -1
  108. package/build/ts/proof/__tests__/proof.gateway.test.js +2 -3
  109. package/build/ts/proof/__tests__/proof.gateway.test.js.map +1 -1
  110. package/build/ts/proof/__tests__/proof.service.test.js +24 -55
  111. package/build/ts/proof/__tests__/proof.service.test.js.map +1 -1
  112. package/build/ts/proof/dto.d.ts +4 -5
  113. package/build/ts/proof/dto.d.ts.map +1 -1
  114. package/build/ts/proof/dto.js +7 -8
  115. package/build/ts/proof/dto.js.map +1 -1
  116. package/build/ts/proof/proof.controller.d.ts.map +1 -1
  117. package/build/ts/proof/proof.controller.js +37 -11
  118. package/build/ts/proof/proof.controller.js.map +1 -1
  119. package/build/ts/proof/proof.module.d.ts.map +1 -1
  120. package/build/ts/proof/proof.module.js +1 -0
  121. package/build/ts/proof/proof.module.js.map +1 -1
  122. package/build/ts/proof/proof.service.d.ts.map +1 -1
  123. package/build/ts/proof/proof.service.js.map +1 -1
  124. package/build/ts/proof/types.d.ts +4 -5
  125. package/build/ts/proof/types.d.ts.map +1 -1
  126. package/build/ts/proof/types.js.map +1 -1
  127. package/build/ts/redis/__tests__/redis.service.test.d.ts +2 -0
  128. package/build/ts/redis/__tests__/redis.service.test.d.ts.map +1 -0
  129. package/build/ts/redis/__tests__/redis.service.test.js +148 -0
  130. package/build/ts/redis/__tests__/redis.service.test.js.map +1 -0
  131. package/build/ts/redis/redis.module.d.ts +3 -0
  132. package/build/ts/redis/redis.module.d.ts.map +1 -0
  133. package/build/ts/redis/redis.module.js +18 -0
  134. package/build/ts/redis/redis.module.js.map +1 -0
  135. package/build/ts/redis/redis.service.d.ts +53 -0
  136. package/build/ts/redis/redis.service.d.ts.map +1 -0
  137. package/build/ts/redis/redis.service.js +99 -0
  138. package/build/ts/redis/redis.service.js.map +1 -0
  139. package/build/ts/redis/types.d.ts +66 -0
  140. package/build/ts/redis/types.d.ts.map +1 -0
  141. package/build/ts/redis/types.js +2 -0
  142. package/build/ts/redis/types.js.map +1 -0
  143. package/build/ts/redis/utils.d.ts +20 -0
  144. package/build/ts/redis/utils.d.ts.map +1 -0
  145. package/build/ts/redis/utils.js +27 -0
  146. package/build/ts/redis/utils.js.map +1 -0
  147. package/build/ts/scheduler/__tests__/scheduler.controller.test.d.ts +2 -0
  148. package/build/ts/scheduler/__tests__/scheduler.controller.test.d.ts.map +1 -0
  149. package/build/ts/scheduler/__tests__/scheduler.controller.test.js +62 -0
  150. package/build/ts/scheduler/__tests__/scheduler.controller.test.js.map +1 -0
  151. package/build/ts/scheduler/__tests__/scheduler.service.test.d.ts +2 -0
  152. package/build/ts/scheduler/__tests__/scheduler.service.test.d.ts.map +1 -0
  153. package/build/ts/scheduler/__tests__/scheduler.service.test.js +369 -0
  154. package/build/ts/scheduler/__tests__/scheduler.service.test.js.map +1 -0
  155. package/build/ts/scheduler/dto.d.ts +41 -0
  156. package/build/ts/scheduler/dto.d.ts.map +1 -0
  157. package/build/ts/scheduler/dto.js +115 -0
  158. package/build/ts/scheduler/dto.js.map +1 -0
  159. package/build/ts/scheduler/scheduler.controller.d.ts +32 -0
  160. package/build/ts/scheduler/scheduler.controller.d.ts.map +1 -0
  161. package/build/ts/scheduler/scheduler.controller.js +118 -0
  162. package/build/ts/scheduler/scheduler.controller.js.map +1 -0
  163. package/build/ts/scheduler/scheduler.module.d.ts +3 -0
  164. package/build/ts/scheduler/scheduler.module.d.ts.map +1 -0
  165. package/build/ts/scheduler/scheduler.module.js +24 -0
  166. package/build/ts/scheduler/scheduler.module.js.map +1 -0
  167. package/build/ts/scheduler/scheduler.service.d.ts +71 -0
  168. package/build/ts/scheduler/scheduler.service.d.ts.map +1 -0
  169. package/build/ts/scheduler/scheduler.service.js +297 -0
  170. package/build/ts/scheduler/scheduler.service.js.map +1 -0
  171. package/build/ts/scheduler/types.d.ts +65 -0
  172. package/build/ts/scheduler/types.d.ts.map +1 -0
  173. package/build/ts/scheduler/types.js +2 -0
  174. package/build/ts/scheduler/types.js.map +1 -0
  175. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js +2 -2
  176. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js.map +1 -1
  177. package/build/ts/sessionKeys/__tests__/sessionKeys.service.test.js +34 -19
  178. package/build/ts/sessionKeys/__tests__/sessionKeys.service.test.js.map +1 -1
  179. package/build/ts/sessionKeys/__tests__/utils.d.ts +1 -1
  180. package/build/ts/sessionKeys/__tests__/utils.d.ts.map +1 -1
  181. package/build/ts/sessionKeys/__tests__/utils.js +7 -6
  182. package/build/ts/sessionKeys/__tests__/utils.js.map +1 -1
  183. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.d.ts +1 -1
  184. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.d.ts.map +1 -1
  185. package/build/ts/sessionKeys/sessionKeys.service.d.ts +4 -3
  186. package/build/ts/sessionKeys/sessionKeys.service.d.ts.map +1 -1
  187. package/build/ts/sessionKeys/sessionKeys.service.js +1 -2
  188. package/build/ts/sessionKeys/sessionKeys.service.js.map +1 -1
  189. package/build/ts/subgraph/__tests__/subgraph.controller.test.js +3 -3
  190. package/build/ts/subgraph/__tests__/subgraph.controller.test.js.map +1 -1
  191. package/build/ts/subgraph/__tests__/subgraph.gateway.test.js +2 -2
  192. package/build/ts/subgraph/__tests__/subgraph.gateway.test.js.map +1 -1
  193. package/build/ts/subgraph/__tests__/subgraph.service.test.js +5 -5
  194. package/build/ts/subgraph/__tests__/subgraph.service.test.js.map +1 -1
  195. package/build/ts/subgraph/dto.d.ts +2 -2
  196. package/build/ts/subgraph/dto.d.ts.map +1 -1
  197. package/build/ts/subgraph/dto.js +3 -3
  198. package/build/ts/subgraph/dto.js.map +1 -1
  199. package/build/ts/subgraph/subgraph.controller.d.ts.map +1 -1
  200. package/build/ts/subgraph/subgraph.controller.js +8 -3
  201. package/build/ts/subgraph/subgraph.controller.js.map +1 -1
  202. package/build/ts/subgraph/subgraph.service.d.ts +4 -0
  203. package/build/ts/subgraph/subgraph.service.d.ts.map +1 -1
  204. package/build/ts/subgraph/subgraph.service.js +23 -10
  205. package/build/ts/subgraph/subgraph.service.js.map +1 -1
  206. package/build/ts/subgraph/types.d.ts +2 -2
  207. package/build/ts/subgraph/types.d.ts.map +1 -1
  208. package/build/tsconfig.build.tsbuildinfo +1 -1
  209. package/package.json +40 -33
  210. package/build/tests/e2e.aa.test.d.ts +0 -2
  211. package/build/tests/e2e.aa.test.d.ts.map +0 -1
  212. package/build/tests/e2e.aa.test.js +0 -96
  213. package/build/tests/e2e.aa.test.js.map +0 -1
@@ -0,0 +1,118 @@
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
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ var SchedulerController_1;
14
+ import { Body, Controller, HttpException, HttpStatus, Logger, Post } from "@nestjs/common";
15
+ import { ApiResponse, ApiTags } from "@nestjs/swagger";
16
+ import { mapErrorToHttpStatus } from "../common/http";
17
+ import { IdentityScheduledPollDto, SchedulePollWithSignerDto } from "./dto";
18
+ import { SchedulerService } from "./scheduler.service";
19
+ let SchedulerController = SchedulerController_1 = class SchedulerController {
20
+ schedulerService;
21
+ /**
22
+ * Logger
23
+ */
24
+ logger = new Logger(SchedulerController_1.name);
25
+ /**
26
+ * Initialize SchedulerController
27
+ *
28
+ * @param schedulerService - scheduler service
29
+ */
30
+ constructor(schedulerService) {
31
+ this.schedulerService = schedulerService;
32
+ }
33
+ /**
34
+ * Register poll for finalization
35
+ */
36
+ async register(args) {
37
+ const schedulePollWithSignerArgs = {
38
+ ...args,
39
+ pollId: args.pollId.toString(),
40
+ endDate: 0,
41
+ merged: false,
42
+ proofsGenerated: false,
43
+ };
44
+ return this.schedulerService.registerPoll(schedulePollWithSignerArgs).catch((error) => {
45
+ this.logger.error(`Error:`, error);
46
+ throw new HttpException(error.message, mapErrorToHttpStatus(error));
47
+ });
48
+ }
49
+ /**
50
+ * Check if poll is scheduled for finalization
51
+ * @param args - poll id to check
52
+ * @returns true if poll is scheduled, false otherwise
53
+ */
54
+ async status(args) {
55
+ const identityScheduledPoll = {
56
+ ...args,
57
+ pollId: args.pollId.toString(),
58
+ };
59
+ return this.schedulerService.isPollScheduled(identityScheduledPoll).catch((error) => {
60
+ this.logger.error(`Error:`, error);
61
+ throw new HttpException(error.message, mapErrorToHttpStatus(error));
62
+ });
63
+ }
64
+ /**
65
+ * Delete scheduled poll
66
+ * @param args - poll id to delete
67
+ */
68
+ async delete(args) {
69
+ const identityScheduledPoll = {
70
+ ...args,
71
+ pollId: args.pollId.toString(),
72
+ };
73
+ return this.schedulerService.deleteScheduledPoll(identityScheduledPoll).catch((error) => {
74
+ this.logger.error(`Error:`, error);
75
+ throw new HttpException(error.message, mapErrorToHttpStatus(error));
76
+ });
77
+ }
78
+ };
79
+ __decorate([
80
+ ApiResponse({ status: HttpStatus.OK, description: "Poll finalization has been scheduled" }),
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" }),
84
+ Post("register"),
85
+ __param(0, Body()),
86
+ __metadata("design:type", Function),
87
+ __metadata("design:paramtypes", [SchedulePollWithSignerDto]),
88
+ __metadata("design:returntype", Promise)
89
+ ], SchedulerController.prototype, "register", null);
90
+ __decorate([
91
+ ApiResponse({ status: HttpStatus.OK, description: "Poll finalization status" }),
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" }),
95
+ Post("status"),
96
+ __param(0, Body()),
97
+ __metadata("design:type", Function),
98
+ __metadata("design:paramtypes", [IdentityScheduledPollDto]),
99
+ __metadata("design:returntype", Promise)
100
+ ], SchedulerController.prototype, "status", null);
101
+ __decorate([
102
+ ApiResponse({ status: HttpStatus.OK, description: "Poll finalization has been deleted" }),
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" }),
106
+ Post("delete"),
107
+ __param(0, Body()),
108
+ __metadata("design:type", Function),
109
+ __metadata("design:paramtypes", [IdentityScheduledPollDto]),
110
+ __metadata("design:returntype", Promise)
111
+ ], SchedulerController.prototype, "delete", null);
112
+ SchedulerController = SchedulerController_1 = __decorate([
113
+ ApiTags("v1/scheduler"),
114
+ Controller("v1/scheduler"),
115
+ __metadata("design:paramtypes", [SchedulerService])
116
+ ], SchedulerController);
117
+ export { SchedulerController };
118
+ //# sourceMappingURL=scheduler.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.controller.js","sourceRoot":"","sources":["../../../ts/scheduler/scheduler.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare class SchedulerModule {
2
+ }
3
+ //# sourceMappingURL=scheduler.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.module.d.ts","sourceRoot":"","sources":["../../../ts/scheduler/scheduler.module.ts"],"names":[],"mappings":"AAUA,qBAKa,eAAe;CAAG"}
@@ -0,0 +1,24 @@
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 { ScheduleModule } from "@nestjs/schedule";
9
+ import { ProofModule } from "../proof/proof.module";
10
+ import { RedisModule } from "../redis/redis.module";
11
+ import { SessionKeysModule } from "../sessionKeys/sessionKeys.module";
12
+ import { SchedulerController } from "./scheduler.controller";
13
+ import { SchedulerService } from "./scheduler.service";
14
+ let SchedulerModule = class SchedulerModule {
15
+ };
16
+ SchedulerModule = __decorate([
17
+ Module({
18
+ imports: [SessionKeysModule, RedisModule, ScheduleModule.forRoot(), ProofModule],
19
+ providers: [SchedulerService],
20
+ controllers: [SchedulerController],
21
+ })
22
+ ], SchedulerModule);
23
+ export { SchedulerModule };
24
+ //# sourceMappingURL=scheduler.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.module.js","sourceRoot":"","sources":["../../../ts/scheduler/scheduler.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAOhD,IAAM,eAAe,GAArB,MAAM,eAAe;CAAG,CAAA;AAAlB,eAAe;IAL3B,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,iBAAiB,EAAE,WAAW,EAAE,cAAc,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC;QAChF,SAAS,EAAE,CAAC,gBAAgB,CAAC;QAC7B,WAAW,EAAE,CAAC,mBAAmB,CAAC;KACnC,CAAC;GACW,eAAe,CAAG"}
@@ -0,0 +1,71 @@
1
+ import { OnModuleInit } from "@nestjs/common";
2
+ import { SchedulerRegistry } from "@nestjs/schedule";
3
+ import type { IIsPollScheduledResponse, IGetPollFinalizationData, IIdentityPollWithSignerArgs, ISchedulePollWithSignerArgs } from "./types";
4
+ import type { IIdentityScheduledPoll, IScheduledPoll } from "../redis/types";
5
+ import { ProofGeneratorService } from "../proof/proof.service";
6
+ import { RedisService } from "../redis/redis.service";
7
+ import { SessionKeysService } from "../sessionKeys/sessionKeys.service";
8
+ export declare class SchedulerService implements OnModuleInit {
9
+ private readonly sessionKeysService;
10
+ private readonly redisService;
11
+ private readonly schedulerRegistry;
12
+ private readonly proofService;
13
+ /**
14
+ * Logger
15
+ */
16
+ private readonly logger;
17
+ /**
18
+ * Create a new scheduler service instance.
19
+ * @param sessionKeysService - session keys service to manage session keys
20
+ * @param redisService - redis service to interact with Redis database
21
+ * @param schedulerRegistry - scheduler registry to manage scheduled tasks
22
+ */
23
+ constructor(sessionKeysService: SessionKeysService, redisService: RedisService, schedulerRegistry: SchedulerRegistry, proofService: ProofGeneratorService);
24
+ /**
25
+ * Instantiate and schedule the saved polls in the database
26
+ * @dev it is a lifecycle hook provided by NestJS that is called after all dependencies
27
+ * are injected and the module is fully initialized.
28
+ * This ensures your service is ready and all dependencies are available.
29
+ */
30
+ onModuleInit(): Promise<void>;
31
+ /**
32
+ * Check if poll is scheduled for finalization
33
+ * @param args - Arguments for checking poll finalization
34
+ * @returns true if poll is scheduled for finalization, false otherwise
35
+ */
36
+ isPollScheduled(scheduledPoll: IIdentityScheduledPoll): Promise<IIsPollScheduledResponse>;
37
+ /**
38
+ * Return the poll end date and whether it is tallied
39
+ * @param args - Arguments to retrieve poll data
40
+ */
41
+ getPollFinalizationData({ pollId, maciAddress, chain, sessionKeyAddress, approval, }: IIdentityPollWithSignerArgs): Promise<IGetPollFinalizationData>;
42
+ /**
43
+ * Finalize poll starting from any step
44
+ *
45
+ * @param args - generate proofs arguments
46
+ */
47
+ finalizePoll(poll: IScheduledPoll): Promise<void>;
48
+ /**
49
+ * Store poll information and schedule its finalization.
50
+ * @param args - Arguments for storing and scheduling poll finalization
51
+ * @return delay in milliseconds until the poll is scheduled for finalization
52
+ */
53
+ private setupPollFinalization;
54
+ /**
55
+ * Schedule poll for finalization
56
+ * @param args - Arguments to register poll for finalization
57
+ * @returns Response object with isScheduled property indicating the poll is scheduled
58
+ */
59
+ registerPoll({ maciAddress, pollId, chain, mode, deploymentBlockNumber, sessionKeyAddress, approval, }: ISchedulePollWithSignerArgs): Promise<IIsPollScheduledResponse>;
60
+ /**
61
+ * Delete scheduled poll
62
+ * @param args - Arguments to identify the scheduled poll
63
+ * @returns Response object with isScheduled property indicating the poll is no longer scheduled
64
+ */
65
+ deleteScheduledPoll(scheduledPoll: IIdentityScheduledPoll): Promise<IIsPollScheduledResponse>;
66
+ /**
67
+ * Restore all scheduled timeouts from Redis
68
+ */
69
+ private restoreTimeouts;
70
+ }
71
+ //# sourceMappingURL=scheduler.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.service.d.ts","sourceRoot":"","sources":["../../../ts/scheduler/scheduler.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EACV,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,2BAA2B,EAE5B,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAG7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAIxE,qBACa,gBAAiB,YAAW,YAAY;IAajD,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAf/B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;;;;OAKG;gBAEgB,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,qBAAqB;IAKtD;;;;;OAKG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;;;OAIG;IACG,eAAe,CAAC,aAAa,EAAE,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAiC/F;;;OAGG;IACG,uBAAuB,CAAC,EAC5B,MAAM,EACN,WAAW,EACX,KAAK,EACL,iBAAiB,EACjB,QAAQ,GACT,EAAE,2BAA2B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAuBlE;;;;OAIG;IACG,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAmFvD;;;;OAIG;YACW,qBAAqB;IA0BnC;;;;OAIG;IACG,YAAY,CAAC,EACjB,WAAW,EACX,MAAM,EACN,KAAK,EACL,IAAI,EACJ,qBAAqB,EACrB,iBAAiB,EACjB,QAAQ,GACT,EAAE,2BAA2B,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAuClE;;;;OAIG;IACG,mBAAmB,CAAC,aAAa,EAAE,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAcnG;;OAEG;YACW,eAAe;CAsC9B"}
@@ -0,0 +1,297 @@
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
+ var SchedulerService_1;
11
+ import { getPoll, isTallied } from "@maci-protocol/sdk";
12
+ import { Injectable, Logger } from "@nestjs/common";
13
+ import { SchedulerRegistry } from "@nestjs/schedule";
14
+ import { ErrorCodes } from "../common";
15
+ import { ProofGeneratorService } from "../proof/proof.service";
16
+ import { RedisService } from "../redis/redis.service";
17
+ import { getPollKeyFromObject } from "../redis/utils";
18
+ import { SessionKeysService } from "../sessionKeys/sessionKeys.service";
19
+ const BUFFER_TIMEOUT = 15 * 1000; // 15 seconds buffer for poll finalization
20
+ let SchedulerService = SchedulerService_1 = class SchedulerService {
21
+ sessionKeysService;
22
+ redisService;
23
+ schedulerRegistry;
24
+ proofService;
25
+ /**
26
+ * Logger
27
+ */
28
+ logger;
29
+ /**
30
+ * Create a new scheduler service instance.
31
+ * @param sessionKeysService - session keys service to manage session keys
32
+ * @param redisService - redis service to interact with Redis database
33
+ * @param schedulerRegistry - scheduler registry to manage scheduled tasks
34
+ */
35
+ constructor(sessionKeysService, redisService, schedulerRegistry, proofService) {
36
+ this.sessionKeysService = sessionKeysService;
37
+ this.redisService = redisService;
38
+ this.schedulerRegistry = schedulerRegistry;
39
+ this.proofService = proofService;
40
+ this.logger = new Logger(SchedulerService_1.name);
41
+ }
42
+ /**
43
+ * Instantiate and schedule the saved polls in the database
44
+ * @dev it is a lifecycle hook provided by NestJS that is called after all dependencies
45
+ * are injected and the module is fully initialized.
46
+ * This ensures your service is ready and all dependencies are available.
47
+ */
48
+ async onModuleInit() {
49
+ await this.restoreTimeouts();
50
+ }
51
+ /**
52
+ * Check if poll is scheduled for finalization
53
+ * @param args - Arguments for checking poll finalization
54
+ * @returns true if poll is scheduled for finalization, false otherwise
55
+ */
56
+ async isPollScheduled(scheduledPoll) {
57
+ const key = getPollKeyFromObject(scheduledPoll);
58
+ const { maciAddress, pollId, chain } = scheduledPoll;
59
+ const { isPollTallied } = await this.getPollFinalizationData({
60
+ maciAddress,
61
+ pollId,
62
+ chain,
63
+ });
64
+ if (isPollTallied) {
65
+ this.deleteScheduledPoll({ maciAddress, pollId, chain });
66
+ this.logger.error(`Error: ${ErrorCodes.POLL_ALREADY_TALLIED}, poll has already been tallied`);
67
+ throw new Error(ErrorCodes.POLL_ALREADY_TALLIED.toString());
68
+ }
69
+ const storedPoll = await this.redisService.get(key);
70
+ if (!storedPoll) {
71
+ return { isScheduled: false };
72
+ }
73
+ const isPollTimeoutScheduled = this.schedulerRegistry.doesExist("timeout", key);
74
+ if (!isPollTimeoutScheduled) {
75
+ // delete redis data so user has to reschedule again
76
+ await this.redisService.delete(key);
77
+ return { isScheduled: false };
78
+ }
79
+ return { isScheduled: true };
80
+ }
81
+ /**
82
+ * Return the poll end date and whether it is tallied
83
+ * @param args - Arguments to retrieve poll data
84
+ */
85
+ async getPollFinalizationData({ pollId, maciAddress, chain, sessionKeyAddress, approval, }) {
86
+ const signer = await this.sessionKeysService.getCoordinatorSigner(chain, sessionKeyAddress, approval);
87
+ const [{ endDate, isMerged: isPollMerged }, isPollTallied] = await Promise.all([
88
+ getPoll({
89
+ maciAddress,
90
+ pollId: BigInt(pollId),
91
+ signer,
92
+ }),
93
+ isTallied({
94
+ maciAddress,
95
+ pollId: String(pollId),
96
+ signer,
97
+ }),
98
+ ]);
99
+ return {
100
+ endDate: Number(endDate),
101
+ isPollTallied,
102
+ isPollMerged,
103
+ };
104
+ }
105
+ /**
106
+ * Finalize poll starting from any step
107
+ *
108
+ * @param args - generate proofs arguments
109
+ */
110
+ async finalizePoll(poll) {
111
+ const { maciAddress, pollId, chain, deploymentBlockNumber, mode, merged, proofsGenerated } = poll;
112
+ const key = getPollKeyFromObject({ maciAddress, pollId, chain });
113
+ const { endDate, isPollMerged } = await this.getPollFinalizationData({
114
+ maciAddress,
115
+ pollId,
116
+ chain,
117
+ });
118
+ if (endDate * 1000 > Date.now()) {
119
+ this.logger.error(`Error finalizing poll ${pollId}: voting period is not over.`);
120
+ await this.deleteScheduledPoll({ maciAddress, pollId, chain });
121
+ await this.setupPollFinalization(poll);
122
+ return;
123
+ }
124
+ if (isPollMerged !== merged) {
125
+ this.logger.error(`Error finalizing poll ${pollId}: is poll merged mismatch. Updating database.`);
126
+ await this.deleteScheduledPoll({ maciAddress, pollId, chain });
127
+ await this.setupPollFinalization({ ...poll, merged: isPollMerged });
128
+ return;
129
+ }
130
+ try {
131
+ if (!merged) {
132
+ await this.proofService
133
+ .merge({
134
+ maciContractAddress: maciAddress,
135
+ pollId: Number(pollId),
136
+ chain,
137
+ })
138
+ .then(() => this.redisService.set(key, JSON.stringify({ ...poll, merged: true })))
139
+ .catch(async (error) => {
140
+ await this.deleteScheduledPoll({ maciAddress, pollId, chain });
141
+ await this.setupPollFinalization(poll);
142
+ throw new Error(`Error merging poll ${pollId}: ${error.message}`);
143
+ });
144
+ }
145
+ if (!proofsGenerated) {
146
+ await this.proofService
147
+ .generate({
148
+ maciContractAddress: maciAddress,
149
+ poll: Number(pollId),
150
+ chain,
151
+ mode,
152
+ startBlock: deploymentBlockNumber,
153
+ blocksPerBatch: Number(process.env.COORDINATOR_BLOCK_BATCH_SIZE || 1000),
154
+ })
155
+ .then(() => this.redisService.set(key, JSON.stringify({ ...poll, merged: true, proofsGenerated: true })))
156
+ .catch(async (error) => {
157
+ await this.deleteScheduledPoll({ maciAddress, pollId, chain });
158
+ await this.setupPollFinalization({ ...poll, merged: true });
159
+ throw new Error(`Error generating proofs for poll ${pollId}: ${error.message}`);
160
+ });
161
+ }
162
+ await this.proofService
163
+ .submit({
164
+ maciContractAddress: maciAddress,
165
+ pollId: Number(pollId),
166
+ chain,
167
+ })
168
+ .then(() => this.deleteScheduledPoll({ maciAddress, pollId, chain }))
169
+ .catch(async (error) => {
170
+ await this.deleteScheduledPoll({ maciAddress, pollId, chain });
171
+ await this.setupPollFinalization({ ...poll, merged: true, proofsGenerated: true });
172
+ throw new Error(`Error submitting proofs for poll ${pollId}: ${error.message}`);
173
+ });
174
+ }
175
+ catch (error) {
176
+ this.logger.error(`Error finalizing poll ${pollId}: ${error.message}`);
177
+ }
178
+ }
179
+ /**
180
+ * Store poll information and schedule its finalization.
181
+ * @param args - Arguments for storing and scheduling poll finalization
182
+ * @return delay in milliseconds until the poll is scheduled for finalization
183
+ */
184
+ async setupPollFinalization(poll) {
185
+ const { maciAddress, pollId, chain, endDate } = poll;
186
+ const key = getPollKeyFromObject({ maciAddress, pollId, chain });
187
+ await this.redisService.set(key, JSON.stringify(poll));
188
+ const shouldBeExecutedIn = endDate * 1000 - Date.now();
189
+ const toBeExecutedIn = shouldBeExecutedIn > 0 ? shouldBeExecutedIn : 0;
190
+ const delay = toBeExecutedIn + BUFFER_TIMEOUT;
191
+ const timeout = setTimeout(async () => {
192
+ await this.finalizePoll(poll);
193
+ }, delay);
194
+ const isPollTimeoutScheduled = this.schedulerRegistry.doesExist("timeout", key);
195
+ if (isPollTimeoutScheduled) {
196
+ this.logger.error(`Error: ${ErrorCodes.POLL_ALREADY_SCHEDULED}, poll is already scheduled`);
197
+ throw new Error(ErrorCodes.POLL_ALREADY_SCHEDULED.toString());
198
+ }
199
+ this.schedulerRegistry.addTimeout(key, timeout);
200
+ return { delay };
201
+ }
202
+ /**
203
+ * Schedule poll for finalization
204
+ * @param args - Arguments to register poll for finalization
205
+ * @returns Response object with isScheduled property indicating the poll is scheduled
206
+ */
207
+ async registerPoll({ maciAddress, pollId, chain, mode, deploymentBlockNumber, sessionKeyAddress, approval, }) {
208
+ const { endDate, isPollTallied } = await this.getPollFinalizationData({
209
+ maciAddress,
210
+ pollId,
211
+ chain,
212
+ sessionKeyAddress,
213
+ approval,
214
+ });
215
+ if (isPollTallied) {
216
+ this.logger.error(`Error: ${ErrorCodes.POLL_ALREADY_TALLIED}, poll has already been tallied`);
217
+ throw new Error(ErrorCodes.POLL_ALREADY_TALLIED.toString());
218
+ }
219
+ const { isScheduled } = await this.isPollScheduled({
220
+ maciAddress,
221
+ pollId,
222
+ chain,
223
+ });
224
+ if (isScheduled) {
225
+ this.logger.error(`Error: ${ErrorCodes.POLL_ALREADY_SCHEDULED}, poll is already scheduled`);
226
+ throw new Error(ErrorCodes.POLL_ALREADY_SCHEDULED.toString());
227
+ }
228
+ await this.setupPollFinalization({
229
+ maciAddress,
230
+ pollId,
231
+ chain,
232
+ deploymentBlockNumber,
233
+ mode,
234
+ endDate,
235
+ merged: false,
236
+ proofsGenerated: false,
237
+ });
238
+ return { isScheduled: true };
239
+ }
240
+ /**
241
+ * Delete scheduled poll
242
+ * @param args - Arguments to identify the scheduled poll
243
+ * @returns Response object with isScheduled property indicating the poll is no longer scheduled
244
+ */
245
+ async deleteScheduledPoll(scheduledPoll) {
246
+ const key = getPollKeyFromObject(scheduledPoll);
247
+ const isPollTimeoutScheduled = this.schedulerRegistry.doesExist("timeout", key);
248
+ if (isPollTimeoutScheduled) {
249
+ this.schedulerRegistry.deleteTimeout(key);
250
+ }
251
+ await this.redisService.delete(key);
252
+ return { isScheduled: false };
253
+ }
254
+ /**
255
+ * Restore all scheduled timeouts from Redis
256
+ */
257
+ async restoreTimeouts() {
258
+ const polls = await this.redisService.getAll();
259
+ await Promise.all(polls.map(async ({ key, value }) => {
260
+ this.logger.log(`Restoring timeout for poll key: ${key}`);
261
+ try {
262
+ if (!value) {
263
+ await this.redisService.delete(key);
264
+ return;
265
+ }
266
+ const poll = JSON.parse(value);
267
+ const { endDate, isPollTallied } = await this.getPollFinalizationData({
268
+ maciAddress: poll.maciAddress,
269
+ pollId: poll.pollId,
270
+ chain: poll.chain,
271
+ });
272
+ if (isPollTallied) {
273
+ await this.deleteScheduledPoll({
274
+ maciAddress: poll.maciAddress,
275
+ pollId: poll.pollId,
276
+ chain: poll.chain,
277
+ });
278
+ return;
279
+ }
280
+ const { delay } = await this.setupPollFinalization({ ...poll, endDate });
281
+ this.logger.log(`poll ${value} to be finalized at ${new Date(Date.now() + delay).toISOString()}`);
282
+ }
283
+ catch (error) {
284
+ this.logger.error(`Error restoring timeout for poll key: ${key}`, error);
285
+ }
286
+ }));
287
+ }
288
+ };
289
+ SchedulerService = SchedulerService_1 = __decorate([
290
+ Injectable(),
291
+ __metadata("design:paramtypes", [SessionKeysService,
292
+ RedisService,
293
+ SchedulerRegistry,
294
+ ProofGeneratorService])
295
+ ], SchedulerService);
296
+ export { SchedulerService };
297
+ //# sourceMappingURL=scheduler.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.service.js","sourceRoot":"","sources":["../../../ts/scheduler/scheduler.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import type { IIdentityScheduledPoll, IScheduledPoll } from "../redis/types";
2
+ import type { Hex } from "viem";
3
+ /**
4
+ * Identity scheduled poll arguments with required arguments for signer
5
+ */
6
+ export interface IIdentityPollWithSignerArgs extends IIdentityScheduledPoll {
7
+ /**
8
+ * Approval for the session key
9
+ */
10
+ approval?: string;
11
+ /**
12
+ * Session key address
13
+ */
14
+ sessionKeyAddress?: Hex;
15
+ }
16
+ /**
17
+ * Scheduled poll arguments with required arguments for signer
18
+ */
19
+ export interface ISchedulePollWithSignerArgs extends IScheduledPoll {
20
+ /**
21
+ * Approval for the session key
22
+ */
23
+ approval?: string;
24
+ /**
25
+ * Session key address
26
+ */
27
+ sessionKeyAddress?: Hex;
28
+ }
29
+ /**
30
+ * poll end date and is tallied response
31
+ */
32
+ export interface IGetPollFinalizationData {
33
+ /**
34
+ * End date of the poll
35
+ */
36
+ endDate: number;
37
+ /**
38
+ * Indicates if the poll is tallied
39
+ */
40
+ isPollTallied: boolean;
41
+ /**
42
+ * Indicates if the poll has been merged
43
+ */
44
+ isPollMerged: boolean;
45
+ }
46
+ /**
47
+ * Is poll scheduled response
48
+ */
49
+ export interface IIsPollScheduledResponse {
50
+ /**
51
+ * Indicates if the poll is scheduled
52
+ *
53
+ */
54
+ isScheduled: boolean;
55
+ }
56
+ /**
57
+ * Setup poll finalization response
58
+ */
59
+ export interface ISetupPollFinalizationResponse {
60
+ /**
61
+ * delay in milliseconds until poll finalization is executed
62
+ */
63
+ delay: number;
64
+ }
65
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/scheduler/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,sBAAsB;IACzE;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE,GAAG,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,cAAc;IACjE;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE,GAAG,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../ts/scheduler/types.ts"],"names":[],"mappings":""}
@@ -29,8 +29,8 @@ describe("SessionKeysController", () => {
29
29
  jest.clearAllMocks();
30
30
  });
31
31
  describe("v1/session-keys/generate", () => {
32
- test("should return a session key address", () => {
33
- const data = sessionKeysController.generateSessionKey();
32
+ test("should return a session key address", async () => {
33
+ const data = await sessionKeysController.generateSessionKey();
34
34
  expect(data).toStrictEqual(defaultGenerateSessionKeyReturn);
35
35
  });
36
36
  });
@@ -1 +1 @@
1
- {"version":3,"file":"sessionKeys.controller.test.js","sourceRoot":"","sources":["../../../../ts/sessionKeys/__tests__/sessionKeys.controller.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAInC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAI,qBAA4C,CAAC;IAEjD,MAAM,sBAAsB,GAAG;QAC7B,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC7B,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE;KAChC,CAAC;IAEF,MAAM,+BAA+B,GAA8B;QACjE,iBAAiB,EAAE,WAAW;KAC/B,CAAC;IAEF,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC;YACzC,WAAW,EAAE,CAAC,qBAAqB,CAAC;SACrC,CAAC;aACC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,IAAI,KAAK,KAAK,kBAAkB,EAAE,CAAC;gBACjC,sBAAsB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,CAAC;gBAC7F,OAAO,sBAAsB,CAAC;YAChC,CAAC;YAED,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;QACnB,CAAC,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,qBAAqB,GAAG,GAAG,CAAC,GAAG,CAAwB,qBAAqB,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC/C,MAAM,IAAI,GAAG,qBAAqB,CAAC,kBAAkB,EAAE,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACvC,qBAAqB,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC,CAAC;YAC/E,MAAM,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"sessionKeys.controller.test.js","sourceRoot":"","sources":["../../../../ts/sessionKeys/__tests__/sessionKeys.controller.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAInC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAI,qBAA4C,CAAC;IAEjD,MAAM,sBAAsB,GAAG;QAC7B,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC7B,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE;KAChC,CAAC;IAEF,MAAM,+BAA+B,GAA8B;QACjE,iBAAiB,EAAE,WAAW;KAC/B,CAAC;IAEF,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC;YACzC,WAAW,EAAE,CAAC,qBAAqB,CAAC;SACrC,CAAC;aACC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,IAAI,KAAK,KAAK,kBAAkB,EAAE,CAAC;gBACjC,sBAAsB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,CAAC;gBAC7F,OAAO,sBAAsB,CAAC;YAChC,CAAC;YAED,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;QACnB,CAAC,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,qBAAqB,GAAG,GAAG,CAAC,GAAG,CAAwB,qBAAqB,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,kBAAkB,EAAE,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACvC,qBAAqB,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC,CAAC;YAC/E,MAAM,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}