@maci-protocol/coordinator 0.0.0-ci.66d67a4 → 0.0.0-ci.66f9b31

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 (166) hide show
  1. package/LICENSE +1 -2
  2. package/README.md +31 -6
  3. package/build/hardhat.config.cjs +3 -0
  4. package/build/hardhat.config.cjs.map +1 -1
  5. package/build/hardhat.config.d.cts +3 -0
  6. package/build/scripts/generateKeypair.js +2 -2
  7. package/build/scripts/generateKeypair.js.map +1 -1
  8. package/build/scripts/generateMaciKeyPair.js +2 -2
  9. package/build/scripts/generateMaciKeyPair.js.map +1 -1
  10. package/build/tests/constants.d.ts +0 -1
  11. package/build/tests/constants.d.ts.map +1 -1
  12. package/build/tests/constants.js +0 -1
  13. package/build/tests/constants.js.map +1 -1
  14. package/build/tests/e2e.deploy.test.js +145 -89
  15. package/build/tests/e2e.deploy.test.js.map +1 -1
  16. package/build/tests/e2e.redis.test.d.ts +2 -0
  17. package/build/tests/e2e.redis.test.d.ts.map +1 -0
  18. package/build/tests/e2e.redis.test.js +114 -0
  19. package/build/tests/e2e.redis.test.js.map +1 -0
  20. package/build/tests/utils.d.ts +6 -0
  21. package/build/tests/utils.d.ts.map +1 -1
  22. package/build/tests/utils.js +12 -3
  23. package/build/tests/utils.js.map +1 -1
  24. package/build/ts/app.module.d.ts.map +1 -1
  25. package/build/ts/app.module.js +4 -0
  26. package/build/ts/app.module.js.map +1 -1
  27. package/build/ts/common/__tests__/common.test.js +7 -21
  28. package/build/ts/common/__tests__/common.test.js.map +1 -1
  29. package/build/ts/common/accountAbstraction.d.ts +2 -19
  30. package/build/ts/common/accountAbstraction.d.ts.map +1 -1
  31. package/build/ts/common/accountAbstraction.js +15 -44
  32. package/build/ts/common/accountAbstraction.js.map +1 -1
  33. package/build/ts/common/chain.d.ts +16 -0
  34. package/build/ts/common/chain.d.ts.map +1 -0
  35. package/build/ts/common/chain.js +33 -0
  36. package/build/ts/common/chain.js.map +1 -0
  37. package/build/ts/common/coordinatorKeypair.d.ts +7 -0
  38. package/build/ts/common/coordinatorKeypair.d.ts.map +1 -0
  39. package/build/ts/common/coordinatorKeypair.js +14 -0
  40. package/build/ts/common/coordinatorKeypair.js.map +1 -0
  41. package/build/ts/common/errors.d.ts +17 -18
  42. package/build/ts/common/errors.d.ts.map +1 -1
  43. package/build/ts/common/errors.js +17 -18
  44. package/build/ts/common/errors.js.map +1 -1
  45. package/build/ts/common/index.d.ts +2 -0
  46. package/build/ts/common/index.d.ts.map +1 -1
  47. package/build/ts/common/index.js +2 -0
  48. package/build/ts/common/index.js.map +1 -1
  49. package/build/ts/common/types.d.ts +2 -3
  50. package/build/ts/common/types.d.ts.map +1 -1
  51. package/build/ts/deployer/__tests__/deployer.controller.test.js +7 -7
  52. package/build/ts/deployer/__tests__/deployer.controller.test.js.map +1 -1
  53. package/build/ts/deployer/__tests__/deployer.service.test.js +73 -286
  54. package/build/ts/deployer/__tests__/deployer.service.test.js.map +1 -1
  55. package/build/ts/deployer/__tests__/utils.d.ts +26 -1
  56. package/build/ts/deployer/__tests__/utils.d.ts.map +1 -1
  57. package/build/ts/deployer/__tests__/utils.js +39 -11
  58. package/build/ts/deployer/__tests__/utils.js.map +1 -1
  59. package/build/ts/deployer/deployer.service.d.ts +18 -55
  60. package/build/ts/deployer/deployer.service.d.ts.map +1 -1
  61. package/build/ts/deployer/deployer.service.js +310 -472
  62. package/build/ts/deployer/deployer.service.js.map +1 -1
  63. package/build/ts/deployer/dto.d.ts +4 -4
  64. package/build/ts/deployer/dto.d.ts.map +1 -1
  65. package/build/ts/deployer/dto.js +9 -1
  66. package/build/ts/deployer/dto.js.map +1 -1
  67. package/build/ts/deployer/types.d.ts +68 -35
  68. package/build/ts/deployer/types.d.ts.map +1 -1
  69. package/build/ts/file/__tests__/file.service.test.js +12 -11
  70. package/build/ts/file/__tests__/file.service.test.js.map +1 -1
  71. package/build/ts/file/file.service.d.ts +4 -3
  72. package/build/ts/file/file.service.d.ts.map +1 -1
  73. package/build/ts/file/file.service.js +14 -9
  74. package/build/ts/file/file.service.js.map +1 -1
  75. package/build/ts/file/types.d.ts +2 -2
  76. package/build/ts/file/types.d.ts.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 +28 -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 +88 -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 +182 -0
  96. package/build/ts/health/health.service.js.map +1 -0
  97. package/build/ts/health/types.d.ts +83 -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/proof/__tests__/proof.controller.test.js +5 -3
  102. package/build/ts/proof/__tests__/proof.controller.test.js.map +1 -1
  103. package/build/ts/proof/__tests__/proof.gateway.test.js +6 -3
  104. package/build/ts/proof/__tests__/proof.gateway.test.js.map +1 -1
  105. package/build/ts/proof/__tests__/proof.service.test.js +33 -72
  106. package/build/ts/proof/__tests__/proof.service.test.js.map +1 -1
  107. package/build/ts/proof/dto.d.ts +13 -15
  108. package/build/ts/proof/dto.d.ts.map +1 -1
  109. package/build/ts/proof/dto.js +51 -44
  110. package/build/ts/proof/dto.js.map +1 -1
  111. package/build/ts/proof/proof.controller.d.ts +3 -2
  112. package/build/ts/proof/proof.controller.d.ts.map +1 -1
  113. package/build/ts/proof/proof.controller.js +1 -4
  114. package/build/ts/proof/proof.controller.js.map +1 -1
  115. package/build/ts/proof/proof.service.d.ts +4 -6
  116. package/build/ts/proof/proof.service.d.ts.map +1 -1
  117. package/build/ts/proof/proof.service.js +48 -130
  118. package/build/ts/proof/proof.service.js.map +1 -1
  119. package/build/ts/proof/types.d.ts +19 -14
  120. package/build/ts/proof/types.d.ts.map +1 -1
  121. package/build/ts/redis/__tests__/redis.service.test.d.ts +2 -0
  122. package/build/ts/redis/__tests__/redis.service.test.d.ts.map +1 -0
  123. package/build/ts/redis/__tests__/redis.service.test.js +128 -0
  124. package/build/ts/redis/__tests__/redis.service.test.js.map +1 -0
  125. package/build/ts/redis/redis.module.d.ts +3 -0
  126. package/build/ts/redis/redis.module.d.ts.map +1 -0
  127. package/build/ts/redis/redis.module.js +18 -0
  128. package/build/ts/redis/redis.module.js.map +1 -0
  129. package/build/ts/redis/redis.service.d.ts +52 -0
  130. package/build/ts/redis/redis.service.d.ts.map +1 -0
  131. package/build/ts/redis/redis.service.js +97 -0
  132. package/build/ts/redis/redis.service.js.map +1 -0
  133. package/build/ts/redis/types.d.ts +57 -0
  134. package/build/ts/redis/types.d.ts.map +1 -0
  135. package/build/ts/redis/types.js +2 -0
  136. package/build/ts/redis/types.js.map +1 -0
  137. package/build/ts/redis/utils.d.ts +20 -0
  138. package/build/ts/redis/utils.d.ts.map +1 -0
  139. package/build/ts/redis/utils.js +24 -0
  140. package/build/ts/redis/utils.js.map +1 -0
  141. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js +2 -2
  142. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js.map +1 -1
  143. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.d.ts +53 -0
  144. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.d.ts.map +1 -0
  145. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.js +105 -0
  146. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.js.map +1 -0
  147. package/build/ts/sessionKeys/sessionKeys.service.d.ts +13 -2
  148. package/build/ts/sessionKeys/sessionKeys.service.d.ts.map +1 -1
  149. package/build/ts/sessionKeys/sessionKeys.service.js +22 -4
  150. package/build/ts/sessionKeys/sessionKeys.service.js.map +1 -1
  151. package/build/ts/subgraph/__tests__/subgraph.service.test.js +2 -3
  152. package/build/ts/subgraph/__tests__/subgraph.service.test.js.map +1 -1
  153. package/build/ts/subgraph/subgraph.service.d.ts +4 -0
  154. package/build/ts/subgraph/subgraph.service.d.ts.map +1 -1
  155. package/build/ts/subgraph/subgraph.service.js +16 -5
  156. package/build/ts/subgraph/subgraph.service.js.map +1 -1
  157. package/build/tsconfig.build.tsbuildinfo +1 -1
  158. package/package.json +36 -35
  159. package/build/tests/e2e.aa.test.d.ts +0 -2
  160. package/build/tests/e2e.aa.test.d.ts.map +0 -1
  161. package/build/tests/e2e.aa.test.js +0 -103
  162. package/build/tests/e2e.aa.test.js.map +0 -1
  163. package/build/ts/deployer/utils.d.ts +0 -8
  164. package/build/ts/deployer/utils.d.ts.map +0 -1
  165. package/build/ts/deployer/utils.js +0 -9
  166. package/build/ts/deployer/utils.js.map +0 -1
@@ -0,0 +1,97 @@
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 { Injectable } from "@nestjs/common";
11
+ import { createClient } from "@redis/client";
12
+ /**
13
+ * Redis service to interact with the Redis database.
14
+ */
15
+ let RedisService = class RedisService {
16
+ /**
17
+ * Client instance used to interact with the Redis database.
18
+ */
19
+ client;
20
+ /**
21
+ * Create a new instance of the RedisService.
22
+ * The Redis configuration is set up here
23
+ */
24
+ constructor() {
25
+ this.client = createClient({
26
+ url: `redis://${process.env.COORDINATOR_REDIS_HOST}:${process.env.COORDINATOR_REDIS_PORT}`,
27
+ disableOfflineQueue: true,
28
+ });
29
+ }
30
+ /**
31
+ * Initializes the Redis client connection when the module has been uploaded.
32
+ * @dev it is a lifecycle hook provided by NestJS that is called after all dependencies
33
+ * are injected and the module is fully initialized.
34
+ * This ensures your service is ready and all dependencies are available.
35
+ */
36
+ async onModuleInit() {
37
+ await this.client.connect();
38
+ }
39
+ /**
40
+ * Saves a new key-value pair in Redis.
41
+ * @param key key for the Redis entry
42
+ * @param value value to be stored in Redis
43
+ */
44
+ async set(key, value) {
45
+ // we are not using @redis/json because we dont need complex search capabilities
46
+ // we store a string (lightweight) and parse it to use the object
47
+ await this.client.set(key, value);
48
+ }
49
+ /**
50
+ * Retrieves a value from Redis by its key.
51
+ * @param key key for the Redis entry
52
+ * @returns the value stored as string in Redis or null if the key does not exist
53
+ */
54
+ async get(key) {
55
+ return this.client.get(key);
56
+ }
57
+ /**
58
+ * Retrieves all keys from Redis that match a specific pattern.
59
+ * @param match optional pattern to match keys in Redis
60
+ * @dev if no match is provided, it will return all keys
61
+ * @returns the array of string values stored in Redis that match the pattern
62
+ */
63
+ async getAll(match) {
64
+ let result = [];
65
+ let currentCursor = "0";
66
+ do {
67
+ // using a cursor is recommended to be use in production environment
68
+ // eslint-disable-next-line no-await-in-loop
69
+ const { cursor, keys } = await this.client.scan(currentCursor, { MATCH: match || "*", COUNT: 100 });
70
+ // eslint-disable-next-line no-await-in-loop
71
+ const values = await Promise.all(keys.map((key) => this.get(key)));
72
+ result = result.concat(values.filter((value) => value !== null));
73
+ currentCursor = cursor;
74
+ } while (currentCursor !== "0");
75
+ return result;
76
+ }
77
+ /**
78
+ * Deletes a key from Redis.
79
+ * @param key key to be deleted from Redis
80
+ */
81
+ async delete(key) {
82
+ return this.client.del(key);
83
+ }
84
+ /**
85
+ * Check if the connection to Redis is open
86
+ * @return true if the connection is open, false otherwise
87
+ */
88
+ isOpen() {
89
+ return this.client.isOpen;
90
+ }
91
+ };
92
+ RedisService = __decorate([
93
+ Injectable(),
94
+ __metadata("design:paramtypes", [])
95
+ ], RedisService);
96
+ export { RedisService };
97
+ //# sourceMappingURL=redis.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../../ts/redis/redis.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAgB,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAmB,MAAM,eAAe,CAAC;AAE9D;;GAEG;AAEI,IAAM,YAAY,GAAlB,MAAM,YAAY;IACvB;;OAEG;IACK,MAAM,CAAkB;IAEhC;;;OAGG;IACH;QACE,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;YACzB,GAAG,EAAE,WAAW,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE;YAC1F,mBAAmB,EAAE,IAAI;SAC1B,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa;QAClC,gFAAgF;QAChF,iEAAiE;QACjE,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,KAAc;QACzB,IAAI,MAAM,GAAa,EAAE,CAAC;QAC1B,IAAI,aAAa,GAAG,GAAG,CAAC;QAExB,GAAG,CAAC;YACF,oEAAoE;YACpE,4CAA4C;YAC5C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAEpG,4CAA4C;YAC5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;YAEjE,aAAa,GAAG,MAAM,CAAC;QACzB,CAAC,QAAQ,aAAa,KAAK,GAAG,EAAE;QAEhC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;CACF,CAAA;AAvFY,YAAY;IADxB,UAAU,EAAE;;GACA,YAAY,CAuFxB"}
@@ -0,0 +1,57 @@
1
+ import type { ESupportedNetworks } from "../common";
2
+ import type { EMode } from "@maci-protocol/sdk";
3
+ /**
4
+ * Interface for scheduled polls stored in Redis
5
+ */
6
+ export interface IScheduledPoll {
7
+ /**
8
+ * Maci contract address
9
+ */
10
+ maciAddress: string;
11
+ /**
12
+ * Poll id (unique identifier)
13
+ */
14
+ pollId: string;
15
+ /**
16
+ * Voting mode
17
+ */
18
+ mode: EMode;
19
+ /**
20
+ * Chain in which the poll is deployed
21
+ */
22
+ chain: ESupportedNetworks;
23
+ /**
24
+ * End date
25
+ */
26
+ endDate: number;
27
+ /**
28
+ * Whether the MACI contract's state root has been merged
29
+ */
30
+ merged: boolean;
31
+ /**
32
+ * Whether the proofs has been generated
33
+ */
34
+ proofsGenerated: boolean;
35
+ }
36
+ /**
37
+ * getPollKeyForRedis parameters
38
+ */
39
+ export interface IGetPollKeyForRedisParams {
40
+ /**
41
+ * Chain in which the poll is deployed
42
+ */
43
+ chain: ESupportedNetworks;
44
+ /**
45
+ * Maci contract address
46
+ */
47
+ maciAddress: string;
48
+ /**
49
+ * Poll id (unique identifier)
50
+ */
51
+ pollId: string;
52
+ /**
53
+ * Test environment flag (optional)
54
+ */
55
+ test?: boolean;
56
+ }
57
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/redis/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC;IAEZ;;OAEG;IACH,KAAK,EAAE,kBAAkB,CAAC;IAE1B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,KAAK,EAAE,kBAAkB,CAAC;IAE1B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../ts/redis/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import type { IGetPollKeyForRedisParams, IScheduledPoll } from "./types";
2
+ /**
3
+ * Generates a Redis key for a poll based on its attributes
4
+ *
5
+ * @param chain - chain where the poll is deployed
6
+ * @param maciAddress - maci contract where the poll was created
7
+ * @param pollId - poll ID
8
+ * @param test - Optional flag to indicate if this is a test environment
9
+ * @returns key for Redis
10
+ */
11
+ export declare const getPollKeyForRedis: ({ chain, maciAddress, pollId, test }: IGetPollKeyForRedisParams) => string;
12
+ /**
13
+ * Generates a Redis key for a poll object
14
+ *
15
+ * @param scheduledPoll - poll object to generate the key from
16
+ * @param test - Optional flag to indicate if this is a test environment
17
+ * @returns key for Redis
18
+ */
19
+ export declare const getPollKeyFromObject: (scheduledPoll: IScheduledPoll, test?: boolean) => string;
20
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/redis/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzE;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAAI,sCAA8C,yBAAyB,KAAG,MAC7C,CAAC;AAEjE;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,eAAe,cAAc,EAAE,OAAO,OAAO,KAAG,MAMjF,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Generates a Redis key for a poll based on its attributes
3
+ *
4
+ * @param chain - chain where the poll is deployed
5
+ * @param maciAddress - maci contract where the poll was created
6
+ * @param pollId - poll ID
7
+ * @param test - Optional flag to indicate if this is a test environment
8
+ * @returns key for Redis
9
+ */
10
+ export const getPollKeyForRedis = ({ chain, maciAddress, pollId, test = false }) => `${chain}-${maciAddress}-poll-${pollId}${test ? `-test` : ""}`;
11
+ /**
12
+ * Generates a Redis key for a poll object
13
+ *
14
+ * @param scheduledPoll - poll object to generate the key from
15
+ * @param test - Optional flag to indicate if this is a test environment
16
+ * @returns key for Redis
17
+ */
18
+ export const getPollKeyFromObject = (scheduledPoll, test) => getPollKeyForRedis({
19
+ chain: scheduledPoll.chain,
20
+ maciAddress: scheduledPoll.maciAddress,
21
+ pollId: scheduledPoll.pollId,
22
+ test,
23
+ });
24
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/redis/utils.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,GAAG,KAAK,EAA6B,EAAU,EAAE,CACpH,GAAG,KAAK,IAAI,WAAW,SAAS,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,aAA6B,EAAE,IAAc,EAAU,EAAE,CAC5F,kBAAkB,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC,KAAK;IAC1B,WAAW,EAAE,aAAa,CAAC,WAAW;IACtC,MAAM,EAAE,aAAa,CAAC,MAAM;IAC5B,IAAI;CACL,CAAC,CAAC"}
@@ -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"}
@@ -0,0 +1,53 @@
1
+ import { KernelAccountClient } from "@zerodev/sdk";
2
+ import { encodeFunctionData } from "viem";
3
+ import { EventEmitter } from "events";
4
+ import type { EIP1193Parameters, EIP1193RequestFn, Hex } from "viem";
5
+ export declare const SafeCreateCallAbi: readonly [{
6
+ readonly name: "performCreate";
7
+ readonly type: "function";
8
+ readonly stateMutability: "nonpayable";
9
+ readonly inputs: readonly [{
10
+ readonly type: "uint256";
11
+ readonly name: "value";
12
+ }, {
13
+ readonly type: "bytes";
14
+ readonly name: "deploymentData";
15
+ }];
16
+ readonly outputs: readonly [{
17
+ readonly type: "address";
18
+ readonly name: "newContract";
19
+ }];
20
+ }, {
21
+ readonly name: "performCreate2";
22
+ readonly type: "function";
23
+ readonly stateMutability: "nonpayable";
24
+ readonly inputs: readonly [{
25
+ readonly type: "uint256";
26
+ readonly name: "value";
27
+ }, {
28
+ readonly type: "bytes";
29
+ readonly name: "deploymentData";
30
+ }, {
31
+ readonly type: "bytes32";
32
+ readonly name: "salt";
33
+ }];
34
+ readonly outputs: readonly [{
35
+ readonly type: "address";
36
+ readonly name: "newContract";
37
+ }];
38
+ }];
39
+ type EncodeExecuteDelegateCallArgs = Parameters<typeof encodeFunctionData<typeof SafeCreateCallAbi, "performCreate">>[0]["args"];
40
+ export declare const encodeSafeCreateCall: (args: EncodeExecuteDelegateCallArgs) => Hex;
41
+ export declare class KernelEIP1193Provider extends EventEmitter {
42
+ private kernelClient;
43
+ constructor(kernelClient: KernelAccountClient);
44
+ request({ method, params }: EIP1193Parameters): ReturnType<EIP1193RequestFn>;
45
+ private handleEthRequestAccounts;
46
+ private handleEthAccounts;
47
+ private handleEthSendTransaction;
48
+ private handleEthSign;
49
+ private handlePersonalSign;
50
+ private handleEthSignTypedDataV4;
51
+ }
52
+ export {};
53
+ //# sourceMappingURL=KernelEIP1193Provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KernelEIP1193Provider.d.ts","sourceRoot":"","sources":["../../../../ts/sessionKeys/provider/KernelEIP1193Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAY,MAAM,MAAM,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAQ,GAAG,EAA8C,MAAM,MAAM,CAAC;AAEvH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAG5B,CAAC;AAEH,KAAK,6BAA6B,GAAG,UAAU,CAC7C,OAAO,kBAAkB,CAAC,OAAO,iBAAiB,EAAE,eAAe,CAAC,CACrE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEb,eAAO,MAAM,oBAAoB,GAAI,MAAM,6BAA6B,KAAG,GAKvE,CAAC;AAEL,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,OAAO,CAAC,YAAY,CAAsB;gBAE9B,YAAY,EAAE,mBAAmB;IAKvC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAW,EAAE,EAAE,iBAAiB,GAAG,UAAU,CAAC,gBAAgB,CAAC;IAoBvF,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,iBAAiB;YAQX,wBAAwB;YAexB,aAAa;YAiBb,kBAAkB;YAiBlB,wBAAwB;CA0BvC"}
@@ -0,0 +1,105 @@
1
+ import { safeCreateCallAddress } from "@zerodev/sdk/constants";
2
+ import { encodeFunctionData, parseAbi } from "viem";
3
+ import { EventEmitter } from "events";
4
+ export const SafeCreateCallAbi = parseAbi([
5
+ "function performCreate(uint256 value, bytes memory deploymentData) public returns (address newContract)",
6
+ "function performCreate2(uint256 value, bytes memory deploymentData, bytes32 salt) public returns (address newContract)",
7
+ ]);
8
+ export const encodeSafeCreateCall = (args) => encodeFunctionData({
9
+ abi: SafeCreateCallAbi,
10
+ functionName: "performCreate",
11
+ args,
12
+ });
13
+ export class KernelEIP1193Provider extends EventEmitter {
14
+ kernelClient;
15
+ constructor(kernelClient) {
16
+ super();
17
+ this.kernelClient = kernelClient;
18
+ }
19
+ async request({ method, params = [] }) {
20
+ switch (method) {
21
+ case "eth_requestAccounts":
22
+ return this.handleEthRequestAccounts();
23
+ case "eth_accounts":
24
+ return this.handleEthAccounts();
25
+ case "eth_sendTransaction":
26
+ return this.handleEthSendTransaction(params);
27
+ case "eth_sign":
28
+ return this.handleEthSign(params);
29
+ case "personal_sign":
30
+ return this.handlePersonalSign(params);
31
+ case "eth_signTypedData":
32
+ case "eth_signTypedData_v4":
33
+ return this.handleEthSignTypedDataV4(params);
34
+ default:
35
+ return this.kernelClient.transport.request({ method, params });
36
+ }
37
+ }
38
+ handleEthRequestAccounts() {
39
+ if (!this.kernelClient.account) {
40
+ return [];
41
+ }
42
+ return [this.kernelClient.account.address];
43
+ }
44
+ handleEthAccounts() {
45
+ if (!this.kernelClient.account) {
46
+ return [];
47
+ }
48
+ return [this.kernelClient.account.address];
49
+ }
50
+ async handleEthSendTransaction(params) {
51
+ const [tx] = params;
52
+ if (!("to" in tx) && tx.data) {
53
+ // contract deployment
54
+ tx.data = encodeSafeCreateCall([0n, tx.data]);
55
+ tx.to = safeCreateCallAddress;
56
+ return this.kernelClient.sendTransaction(tx);
57
+ }
58
+ // eth transaction (function call or eth transfer)
59
+ return this.kernelClient.sendTransaction(tx);
60
+ }
61
+ async handleEthSign(params) {
62
+ if (!this.kernelClient.account) {
63
+ throw new Error("account not connected!");
64
+ }
65
+ const [address, message] = params;
66
+ if (address.toLowerCase() !== this.kernelClient.account.address.toLowerCase()) {
67
+ throw new Error("cannot sign for address that is not the current account");
68
+ }
69
+ return this.kernelClient.signMessage({
70
+ message,
71
+ account: this.kernelClient.account,
72
+ });
73
+ }
74
+ async handlePersonalSign(params) {
75
+ if (!this.kernelClient.account) {
76
+ throw new Error("account not connected!");
77
+ }
78
+ const [message, address] = params;
79
+ if (address.toLowerCase() !== this.kernelClient.account.address.toLowerCase()) {
80
+ throw new Error("cannot sign for address that is not the current account");
81
+ }
82
+ return this.kernelClient.signMessage({
83
+ message,
84
+ account: this.kernelClient.account,
85
+ });
86
+ }
87
+ async handleEthSignTypedDataV4(params) {
88
+ if (!this.kernelClient.account) {
89
+ throw new Error("account not connected!");
90
+ }
91
+ const [address, typedDataJSON] = params;
92
+ const typedData = JSON.parse(typedDataJSON);
93
+ if (address.toLowerCase() !== this.kernelClient.account.address.toLowerCase()) {
94
+ throw new Error("cannot sign for address that is not the current account");
95
+ }
96
+ return this.kernelClient.signTypedData({
97
+ account: this.kernelClient.account,
98
+ domain: typedData.domain,
99
+ types: typedData.types,
100
+ message: typedData.message,
101
+ primaryType: typedData.primaryType,
102
+ });
103
+ }
104
+ }
105
+ //# sourceMappingURL=KernelEIP1193Provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KernelEIP1193Provider.js","sourceRoot":"","sources":["../../../../ts/sessionKeys/provider/KernelEIP1193Provider.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { JsonRpcSigner } from "ethers";
1
+ import { Signer } from "ethers";
2
+ import type { AASigner } from "@maci-protocol/contracts";
2
3
  import type { Hex } from "viem";
3
4
  import { ESupportedNetworks, KernelClientType } from "../common";
4
5
  import { FileService } from "../file/file.service";
@@ -39,7 +40,17 @@ export declare class SessionKeysService {
39
40
  * @param kernelClient - kernel client
40
41
  * @returns signer
41
42
  */
42
- getKernelClientSigner(kernelClient: KernelClientType): Promise<JsonRpcSigner>;
43
+ getKernelClientSigner(kernelClient: KernelClientType): Promise<AASigner>;
44
+ /**
45
+ * Get a signer that would execute all the contract interactions in the coordinator service.
46
+ * There are particular cases where the AA signer does not work so we default to the normal signer.
47
+ * (e.g. `deployPoll`)
48
+ * @param chain - the chain to use
49
+ * @param sessionKeyAddress - the address of the session key. Defaults to normal signer if not provided
50
+ * @param approval - the approval string. Defaults to normal signer if not provided
51
+ * @returns a signer
52
+ */
53
+ getCoordinatorSigner(chain: ESupportedNetworks, sessionKeyAddress?: Hex, approval?: string): Promise<AASigner | Signer>;
43
54
  /**
44
55
  * Deactivate a session key
45
56
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sessionKeys.service.d.ts","sourceRoot":"","sources":["../../../ts/sessionKeys/sessionKeys.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGxD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,EAAc,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEpD;;GAEG;AACH,qBACa,kBAAkB;IAWjB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAVxC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;;;OAIG;gBAC0B,WAAW,EAAE,WAAW;IAIrD;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAiB9D;;;;;;;OAOG;IACG,4BAA4B,CAChC,iBAAiB,EAAE,GAAG,EACtB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,gBAAgB,CAAC;IAkB5B;;;;;OAKG;IACG,qBAAqB,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAOnF;;;;OAIG;IACH,oBAAoB,CAAC,iBAAiB,EAAE,GAAG,GAAG,IAAI;CAGnD"}
1
+ {"version":3,"file":"sessionKeys.service.d.ts","sourceRoot":"","sources":["../../../ts/sessionKeys/sessionKeys.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,EAAc,kBAAkB,EAAa,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAExF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEpD;;GAEG;AACH,qBACa,kBAAkB;IAWjB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAVxC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;;;OAIG;gBAC0B,WAAW,EAAE,WAAW;IAIrD;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAiB9D;;;;;;;OAOG;IACG,4BAA4B,CAChC,iBAAiB,EAAE,GAAG,EACtB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,gBAAgB,CAAC;IAkB5B;;;;;OAKG;IACG,qBAAqB,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAU9E;;;;;;;;OAQG;IACG,oBAAoB,CACxB,KAAK,EAAE,kBAAkB,EACzB,iBAAiB,CAAC,EAAE,GAAG,EACvB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;IAS7B;;;;OAIG;IACH,oBAAoB,CAAC,iBAAiB,EAAE,GAAG,GAAG,IAAI;CAGnD"}
@@ -10,12 +10,12 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  var SessionKeysService_1;
11
11
  import { Injectable, Logger } from "@nestjs/common";
12
12
  import { toECDSASigner } from "@zerodev/permissions/signers";
13
- import { KernelEIP1193Provider } from "@zerodev/sdk";
14
13
  import { BrowserProvider } from "ethers";
15
14
  import { generatePrivateKey, privateKeyToAccount } from "viem/accounts";
16
- import { ErrorCodes } from "../common";
15
+ import { ErrorCodes, getSigner } from "../common";
17
16
  import { getKernelClient } from "../common/accountAbstraction";
18
17
  import { FileService } from "../file/file.service";
18
+ import { KernelEIP1193Provider } from "./provider/KernelEIP1193Provider";
19
19
  /**
20
20
  * SessionKeysService is responsible for generating and managing session keys.
21
21
  */
@@ -71,7 +71,7 @@ let SessionKeysService = SessionKeysService_1 = class SessionKeysService {
71
71
  return kernelClient;
72
72
  }
73
73
  catch (error) {
74
- this.logger.error(`Error: ${ErrorCodes.INVALID_APPROVAL}`, error);
74
+ this.logger.error("Error:", error);
75
75
  throw new Error(ErrorCodes.INVALID_APPROVAL.toString());
76
76
  }
77
77
  }
@@ -85,7 +85,25 @@ let SessionKeysService = SessionKeysService_1 = class SessionKeysService {
85
85
  const kernelProvider = new KernelEIP1193Provider(kernelClient);
86
86
  const ethersProvider = new BrowserProvider(kernelProvider);
87
87
  const signer = await ethersProvider.getSigner();
88
- return signer;
88
+ const aaSigner = signer;
89
+ aaSigner.isAA = true;
90
+ return aaSigner;
91
+ }
92
+ /**
93
+ * Get a signer that would execute all the contract interactions in the coordinator service.
94
+ * There are particular cases where the AA signer does not work so we default to the normal signer.
95
+ * (e.g. `deployPoll`)
96
+ * @param chain - the chain to use
97
+ * @param sessionKeyAddress - the address of the session key. Defaults to normal signer if not provided
98
+ * @param approval - the approval string. Defaults to normal signer if not provided
99
+ * @returns a signer
100
+ */
101
+ async getCoordinatorSigner(chain, sessionKeyAddress, approval) {
102
+ if (sessionKeyAddress && approval) {
103
+ const kernelClient = await this.generateClientFromSessionKey(sessionKeyAddress, approval, chain);
104
+ return this.getKernelClientSigner(kernelClient);
105
+ }
106
+ return getSigner(chain);
89
107
  }
90
108
  /**
91
109
  * Deactivate a session key
@@ -1 +1 @@
1
- {"version":3,"file":"sessionKeys.service.js","sourceRoot":"","sources":["../../../ts/sessionKeys/sessionKeys.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,eAAe,EAAiB,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAIxE,OAAO,EAAE,UAAU,EAAwC,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAInD;;GAEG;AAEI,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAWA;IAV7B;;OAEG;IACc,MAAM,CAAS;IAEhC;;;;OAIG;IACH,YAA6B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QACnD,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,oBAAkB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB;QACtB,MAAM,iBAAiB,GAAG,kBAAkB,EAAE,CAAC;QAE/C,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC;YAC3C,MAAM,EAAE,mBAAmB,CAAC,iBAAiB,CAAC;SAC/C,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC;QAE3D,eAAe;QACf,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QAEvE,OAAO;YACL,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,4BAA4B,CAChC,iBAAsB,EACtB,QAAgB,EAChB,KAAyB;QAEzB,iDAAiD;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAErE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,iBAAiB,EAAE,CAAC,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAClE,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,UAAU,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,qBAAqB,CAAC,YAA8B;QACxD,MAAM,cAAc,GAAG,IAAI,qBAAqB,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,cAAc,GAAG,IAAI,eAAe,CAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAAC,iBAAsB;QACzC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACvD,CAAC;CACF,CAAA;AAxFY,kBAAkB;IAD9B,UAAU,EAAE;qCAY+B,WAAW;GAX1C,kBAAkB,CAwF9B"}
1
+ {"version":3,"file":"sessionKeys.service.js","sourceRoot":"","sources":["../../../ts/sessionKeys/sessionKeys.service.ts"],"names":[],"mappings":"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"}
@@ -40,12 +40,11 @@ describe("SubgraphService", () => {
40
40
  await expect(service.deploy(defaultArgs)).rejects.toThrow(ErrorCodes.SUBGRAPH_DEPLOY.toString());
41
41
  });
42
42
  test("should throw error if network is invalid", async () => {
43
- childProcess.execFile.mockRejectedValue(new Error());
44
43
  const service = new SubgraphService();
45
- await expect(service.deploy({ ...defaultArgs, network: "unknown" })).rejects.toThrow(ErrorCodes.SUBGRAPH_DEPLOY.toString());
44
+ await expect(service.deploy({ ...defaultArgs, network: "unknown" })).rejects.toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
46
45
  });
47
46
  test("should throw error if there is no subgraph url", async () => {
48
- childProcess.execFile.mockResolvedValue({ stdout: "" });
47
+ childProcess.execFile.mockResolvedValue({ stdout: "", stderr: "" });
49
48
  const service = new SubgraphService();
50
49
  await expect(service.deploy(defaultArgs)).rejects.toThrow(ErrorCodes.SUBGRAPH_DEPLOY.toString());
51
50
  });
@@ -1 +1 @@
1
- {"version":3,"file":"subgraph.service.test.js","sourceRoot":"","sources":["../../../../ts/subgraph/__tests__/subgraph.service.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subgraph.service.test.js","sourceRoot":"","sources":["../../../../ts/subgraph/__tests__/subgraph.service.test.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,10 @@ export declare class SubgraphService {
7
7
  * Logger
8
8
  */
9
9
  private readonly logger;
10
+ /**
11
+ * Initialize service
12
+ */
13
+ constructor();
10
14
  /**
11
15
  * Generate proofs for message processing and tally
12
16
  *
@@ -1 +1 @@
1
- {"version":3,"file":"subgraph.service.d.ts","sourceRoot":"","sources":["../../../ts/subgraph/subgraph.service.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,SAAS,CAAC;AAMjB;;GAEG;AACH,qBACa,eAAe;IAC1B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAE3D;;;;;;;OAOG;IACG,MAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CA0FpG"}
1
+ {"version":3,"file":"subgraph.service.d.ts","sourceRoot":"","sources":["../../../ts/subgraph/subgraph.service.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,SAAS,CAAC;AAMjB;;GAEG;AACH,qBACa,eAAe;IAC1B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;OAEG;;IAKH;;;;;;;OAOG;IACG,MAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CA4FpG"}
@@ -4,6 +4,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
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
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
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
+ };
7
10
  var SubgraphService_1;
8
11
  import { Injectable, Logger } from "@nestjs/common";
9
12
  import childProcess from "child_process";
@@ -21,7 +24,13 @@ let SubgraphService = SubgraphService_1 = class SubgraphService {
21
24
  /**
22
25
  * Logger
23
26
  */
24
- logger = new Logger(SubgraphService_1.name);
27
+ logger;
28
+ /**
29
+ * Initialize service
30
+ */
31
+ constructor() {
32
+ this.logger = new Logger(SubgraphService_1.name);
33
+ }
25
34
  /**
26
35
  * Generate proofs for message processing and tally
27
36
  *
@@ -33,7 +42,7 @@ let SubgraphService = SubgraphService_1 = class SubgraphService {
33
42
  async deploy(args, options) {
34
43
  try {
35
44
  if (!Object.values(ESupportedNetworks).includes(args.network)) {
36
- throw new Error("Invalid network");
45
+ throw new Error(ErrorCodes.UNSUPPORTED_NETWORK.toString());
37
46
  }
38
47
  const subgraphManifestPath = path.resolve(process.env.SUBGRAPH_FOLDER, "subgraph.yaml");
39
48
  await execFile("cp", [
@@ -93,14 +102,16 @@ let SubgraphService = SubgraphService_1 = class SubgraphService {
93
102
  return { url };
94
103
  }
95
104
  catch (error) {
96
- this.logger.error("Error: ", error);
105
+ const errorMessage = error.message || ErrorCodes.SUBGRAPH_DEPLOY.toString();
106
+ this.logger.error("Error: ", errorMessage);
97
107
  options?.onFail(error);
98
- throw new Error(error.message);
108
+ throw new Error(errorMessage, { cause: error });
99
109
  }
100
110
  }
101
111
  };
102
112
  SubgraphService = SubgraphService_1 = __decorate([
103
- Injectable()
113
+ Injectable(),
114
+ __metadata("design:paramtypes", [])
104
115
  ], SubgraphService);
105
116
  export { SubgraphService };
106
117
  //# sourceMappingURL=subgraph.service.js.map