@maci-protocol/coordinator 0.0.0-ci.8ce4c0a → 0.0.0-ci.92b493f

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 (199) hide show
  1. package/LICENSE +1 -2
  2. package/README.md +31 -6
  3. package/build/hardhat.config.cjs +5 -3
  4. package/build/hardhat.config.cjs.map +1 -1
  5. package/build/hardhat.config.d.cts +5 -4
  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 +119 -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 +13 -4
  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 +6 -0
  26. package/build/ts/app.module.js.map +1 -1
  27. package/build/ts/common/__tests__/common.test.js +12 -26
  28. package/build/ts/common/__tests__/common.test.js.map +1 -1
  29. package/build/ts/common/accountAbstraction.d.ts +3 -20
  30. package/build/ts/common/accountAbstraction.d.ts.map +1 -1
  31. package/build/ts/common/accountAbstraction.js +16 -46
  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 +13 -10
  42. package/build/ts/common/errors.d.ts.map +1 -1
  43. package/build/ts/common/errors.js +12 -9
  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 +17 -20
  52. package/build/ts/deployer/__tests__/deployer.controller.test.js.map +1 -1
  53. package/build/ts/deployer/__tests__/deployer.service.test.js +165 -342
  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 +42 -11
  58. package/build/ts/deployer/__tests__/utils.js.map +1 -1
  59. package/build/ts/deployer/deployer.service.d.ts +27 -53
  60. package/build/ts/deployer/deployer.service.d.ts.map +1 -1
  61. package/build/ts/deployer/deployer.service.js +338 -468
  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 +77 -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 +16 -10
  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 +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/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 +32 -76
  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 +149 -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 +54 -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 +27 -0
  140. package/build/ts/redis/utils.js.map +1 -0
  141. package/build/ts/scheduler/__tests__/scheduler.controller.test.d.ts +2 -0
  142. package/build/ts/scheduler/__tests__/scheduler.controller.test.d.ts.map +1 -0
  143. package/build/ts/scheduler/__tests__/scheduler.controller.test.js +63 -0
  144. package/build/ts/scheduler/__tests__/scheduler.controller.test.js.map +1 -0
  145. package/build/ts/scheduler/__tests__/scheduler.service.test.d.ts +2 -0
  146. package/build/ts/scheduler/__tests__/scheduler.service.test.d.ts.map +1 -0
  147. package/build/ts/scheduler/__tests__/scheduler.service.test.js +264 -0
  148. package/build/ts/scheduler/__tests__/scheduler.service.test.js.map +1 -0
  149. package/build/ts/scheduler/dto.d.ts +42 -0
  150. package/build/ts/scheduler/dto.d.ts.map +1 -0
  151. package/build/ts/scheduler/dto.js +116 -0
  152. package/build/ts/scheduler/dto.js.map +1 -0
  153. package/build/ts/scheduler/scheduler.controller.d.ts +32 -0
  154. package/build/ts/scheduler/scheduler.controller.d.ts.map +1 -0
  155. package/build/ts/scheduler/scheduler.controller.js +111 -0
  156. package/build/ts/scheduler/scheduler.controller.js.map +1 -0
  157. package/build/ts/scheduler/scheduler.module.d.ts +3 -0
  158. package/build/ts/scheduler/scheduler.module.d.ts.map +1 -0
  159. package/build/ts/scheduler/scheduler.module.js +23 -0
  160. package/build/ts/scheduler/scheduler.module.js.map +1 -0
  161. package/build/ts/scheduler/scheduler.service.d.ts +63 -0
  162. package/build/ts/scheduler/scheduler.service.d.ts.map +1 -0
  163. package/build/ts/scheduler/scheduler.service.js +239 -0
  164. package/build/ts/scheduler/scheduler.service.js.map +1 -0
  165. package/build/ts/scheduler/types.d.ts +61 -0
  166. package/build/ts/scheduler/types.d.ts.map +1 -0
  167. package/build/ts/scheduler/types.js +2 -0
  168. package/build/ts/scheduler/types.js.map +1 -0
  169. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js +2 -2
  170. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js.map +1 -1
  171. package/build/ts/sessionKeys/__tests__/sessionKeys.service.test.js +30 -16
  172. package/build/ts/sessionKeys/__tests__/sessionKeys.service.test.js.map +1 -1
  173. package/build/ts/sessionKeys/__tests__/utils.d.ts.map +1 -1
  174. package/build/ts/sessionKeys/__tests__/utils.js +3 -4
  175. package/build/ts/sessionKeys/__tests__/utils.js.map +1 -1
  176. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.d.ts +53 -0
  177. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.d.ts.map +1 -0
  178. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.js +105 -0
  179. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.js.map +1 -0
  180. package/build/ts/sessionKeys/sessionKeys.service.d.ts +13 -2
  181. package/build/ts/sessionKeys/sessionKeys.service.d.ts.map +1 -1
  182. package/build/ts/sessionKeys/sessionKeys.service.js +23 -6
  183. package/build/ts/sessionKeys/sessionKeys.service.js.map +1 -1
  184. package/build/ts/subgraph/__tests__/subgraph.service.test.js +2 -3
  185. package/build/ts/subgraph/__tests__/subgraph.service.test.js.map +1 -1
  186. package/build/ts/subgraph/subgraph.service.d.ts +4 -0
  187. package/build/ts/subgraph/subgraph.service.d.ts.map +1 -1
  188. package/build/ts/subgraph/subgraph.service.js +16 -5
  189. package/build/ts/subgraph/subgraph.service.js.map +1 -1
  190. package/build/tsconfig.build.tsbuildinfo +1 -1
  191. package/package.json +41 -37
  192. package/build/tests/e2e.aa.test.d.ts +0 -2
  193. package/build/tests/e2e.aa.test.d.ts.map +0 -1
  194. package/build/tests/e2e.aa.test.js +0 -103
  195. package/build/tests/e2e.aa.test.js.map +0 -1
  196. package/build/ts/deployer/utils.d.ts +0 -8
  197. package/build/ts/deployer/utils.d.ts.map +0 -1
  198. package/build/ts/deployer/utils.js +0 -9
  199. package/build/ts/deployer/utils.js.map +0 -1
@@ -0,0 +1,119 @@
1
+ import { EMode } from "@maci-protocol/sdk";
2
+ import { createClient } from "@redis/client";
3
+ import { ESupportedNetworks } from "../ts/common";
4
+ import { RedisService } from "../ts/redis/redis.service";
5
+ import { getPollKeyFromObject } from "../ts/redis/utils";
6
+ const REDIS__GET_ALL_PREFIX = "*-test";
7
+ const scheduledPoll = {
8
+ maciAddress: "0xb83074Ac11fc569AC12F1b7D0C0a6809c3dc355b",
9
+ pollId: "5",
10
+ mode: EMode.NON_QV,
11
+ chain: ESupportedNetworks.OPTIMISM_SEPOLIA,
12
+ endDate: 1752534000,
13
+ deploymentBlockNumber: 1,
14
+ merged: false,
15
+ proofsGenerated: false,
16
+ };
17
+ describe("RedisService", () => {
18
+ let redisClient;
19
+ let service;
20
+ beforeAll(async () => {
21
+ redisClient = createClient({
22
+ url: `redis://${process.env.COORDINATOR_REDIS_HOST}:${process.env.COORDINATOR_REDIS_PORT}`,
23
+ disableOfflineQueue: true,
24
+ });
25
+ await redisClient.connect();
26
+ service = new RedisService();
27
+ await service.onModuleInit();
28
+ });
29
+ afterEach(async () => {
30
+ // Clean up after each test
31
+ const keys = await redisClient.keys(REDIS__GET_ALL_PREFIX);
32
+ if (keys.length) {
33
+ await redisClient.del(keys);
34
+ }
35
+ });
36
+ afterAll(async () => {
37
+ await redisClient.quit();
38
+ });
39
+ test("should connect to Redis without issues", () => {
40
+ expect(service.isOpen()).toBe(true);
41
+ });
42
+ test("should set and get a value, and parse it as IScheduledPoll", async () => {
43
+ const key = getPollKeyFromObject(scheduledPoll, true);
44
+ const value = JSON.stringify(scheduledPoll);
45
+ await service.set(key, value);
46
+ const stored = await service.get(key);
47
+ expect(stored).not.toBeNull();
48
+ const parsed = JSON.parse(stored);
49
+ expect(parsed).toEqual(scheduledPoll);
50
+ });
51
+ test("should return null when non-existent key is requested", async () => {
52
+ const nonExistentKey = "non-existent-key";
53
+ const result = await service.get(nonExistentKey);
54
+ expect(result).toBeNull();
55
+ });
56
+ test("should set and get multiple values", async () => {
57
+ const pollOne = { ...scheduledPoll };
58
+ pollOne.pollId = "1";
59
+ const pollKeyOne = getPollKeyFromObject(pollOne, true);
60
+ await service.set(pollKeyOne, JSON.stringify(pollOne));
61
+ const pollTwo = { ...scheduledPoll };
62
+ pollTwo.pollId = "2";
63
+ const pollKeyTwo = getPollKeyFromObject(pollTwo, true);
64
+ await service.set(pollKeyTwo, JSON.stringify(pollTwo));
65
+ const pollThree = { ...scheduledPoll };
66
+ pollThree.pollId = "3";
67
+ const pollKeyThree = getPollKeyFromObject(pollThree, true);
68
+ await service.set(pollKeyThree, JSON.stringify(pollThree));
69
+ const [storedPollOne, storedPollTwo, storedPollThree] = await Promise.all([
70
+ service.get(pollKeyOne),
71
+ service.get(pollKeyTwo),
72
+ service.get(pollKeyThree),
73
+ ]);
74
+ expect(pollOne).toEqual(JSON.parse(storedPollOne || "{}"));
75
+ expect(pollTwo).toEqual(JSON.parse(storedPollTwo || "{}"));
76
+ expect(pollThree).toEqual(JSON.parse(storedPollThree || "{}"));
77
+ });
78
+ test("should retrieve all values using getAll", async () => {
79
+ const pollOne = { ...scheduledPoll };
80
+ pollOne.pollId = "1";
81
+ const pollKeyOne = getPollKeyFromObject(pollOne, true);
82
+ await service.set(pollKeyOne, JSON.stringify(pollOne));
83
+ const pollTwo = { ...scheduledPoll };
84
+ pollTwo.pollId = "2";
85
+ const pollKeyTwo = getPollKeyFromObject(pollTwo, true);
86
+ await service.set(pollKeyTwo, JSON.stringify(pollTwo));
87
+ const pollThree = { ...scheduledPoll };
88
+ pollThree.pollId = "3";
89
+ const pollKeyThree = getPollKeyFromObject(pollThree, true);
90
+ await service.set(pollKeyThree, JSON.stringify(pollThree));
91
+ const all = await service.getAll(REDIS__GET_ALL_PREFIX);
92
+ expect(all.length).toBe(3);
93
+ });
94
+ test("should delete a value and return one as confirmation", async () => {
95
+ const key = "delete-me";
96
+ await service.set(key, '{"bye":"now"}');
97
+ const deleted = await service.delete(key);
98
+ const value = await service.get(key);
99
+ expect(deleted).toBe(1);
100
+ expect(value).toBeNull();
101
+ });
102
+ test("should not throw and return zero when deleting non-existent value", async () => {
103
+ const key = "non-existent-key";
104
+ const deleted = await service.delete(key);
105
+ expect(deleted).toBe(0);
106
+ });
107
+ test("should update a value using set with same key", async () => {
108
+ const key = getPollKeyFromObject(scheduledPoll, true);
109
+ const valuePoll = JSON.stringify(scheduledPoll);
110
+ await service.set(key, valuePoll);
111
+ const updatedPoll = { ...scheduledPoll, endDate: 1 };
112
+ const updatedPollValue = JSON.stringify(updatedPoll);
113
+ await service.set(key, updatedPollValue);
114
+ const stored = await service.get(key);
115
+ const parsed = JSON.parse(stored);
116
+ expect(parsed.endDate).toBe(updatedPoll.endDate);
117
+ });
118
+ });
119
+ //# sourceMappingURL=e2e.redis.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2e.redis.test.js","sourceRoot":"","sources":["../../tests/e2e.redis.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  import { type Signer } from "ethers";
2
2
  import { Hex } from "viem";
3
+ /**
4
+ * Encrypt a message using the coordinator's public key
5
+ * @param message to encrypt
6
+ * @returns encrypted message (ciphertext)
7
+ */
8
+ export declare const encryptWithCoordinatorRSAPublicKey: (message: string) => Promise<string>;
3
9
  /**
4
10
  * Sign a message with a wallet and encrypt it using the coordinator's public key
5
11
  * @param signer
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../tests/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAmC,GAAG,EAAoB,MAAM,MAAM,CAAC;AAY9E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CAM3E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,GAAG,EACZ,qBAAqB,MAAM,EAC3B,oBAAoB,MAAM,KACzB,OAAO,CAAC,IAAI,CAgBd,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../tests/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAmC,GAAG,EAAoB,MAAM,MAAM,CAAC;AAY9E;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAIxF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CAK3E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,GAAG,EACZ,qBAAqB,MAAM,EAC3B,oBAAoB,MAAM,KACzB,OAAO,CAAC,IAAI,CAkBd,CAAC"}
@@ -8,24 +8,33 @@ import { ESupportedNetworks } from "../ts/common";
8
8
  import { getPublicClient } from "../ts/common/accountAbstraction";
9
9
  import { CryptoService } from "../ts/crypto/crypto.service";
10
10
  dotenv.config();
11
+ /**
12
+ * Encrypt a message using the coordinator's public key
13
+ * @param message to encrypt
14
+ * @returns encrypted message (ciphertext)
15
+ */
16
+ export const encryptWithCoordinatorRSAPublicKey = async (message) => {
17
+ const cryptoService = new CryptoService();
18
+ const publicKey = await fs.promises.readFile(process.env.COORDINATOR_PUBLIC_KEY_PATH);
19
+ return cryptoService.encrypt(publicKey, message);
20
+ };
11
21
  /**
12
22
  * Sign a message with a wallet and encrypt it using the coordinator's public key
13
23
  * @param signer
14
24
  * @returns Authorization header
15
25
  */
16
26
  export const getAuthorizationHeader = async (signer) => {
17
- const cryptoService = new CryptoService();
18
- const publicKey = await fs.promises.readFile(process.env.COORDINATOR_PUBLIC_KEY_PATH);
19
27
  const signature = await signer.signMessage("message");
20
28
  const digest = Buffer.from(getBytes(hashMessage("message"))).toString("hex");
21
- return `Bearer ${cryptoService.encrypt(publicKey, `${signature}:${digest}`)}`;
29
+ const encrypted = await encryptWithCoordinatorRSAPublicKey(`${signature}:${digest}`);
30
+ return `Bearer ${encrypted}`;
22
31
  };
23
32
  /**
24
33
  * Reloads with ETH in case the smart account is out of gas (less than 0.05)
25
34
  * @param sessionKeyAddress
26
35
  */
27
36
  export const rechargeGasIfNeeded = async (address, minimumValueOfEther, valueToSendOfEther) => {
28
- const publicClient = getPublicClient(ESupportedNetworks.OPTIMISM_SEPOLIA);
37
+ const publicClient = await getPublicClient(ESupportedNetworks.OPTIMISM_SEPOLIA);
29
38
  const balance = await publicClient.getBalance({ address });
30
39
  const balanceAsEther = formatEther(balance);
31
40
  if (balanceAsEther <= minimumValueOfEther) {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../tests/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAe,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAO,IAAI,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,MAAc,EAAmB,EAAE;IAC9E,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA4B,CAAC,CAAC;IACvF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7E,OAAO,UAAU,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC;AAChF,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,OAAY,EACZ,mBAA2B,EAC3B,kBAA0B,EACX,EAAE;IACjB,MAAM,YAAY,GAAG,eAAe,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,cAAc,IAAI,mBAAmB,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAwB,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,kBAAkB,CAAC;YACtC,KAAK,EAAE,eAAe;YACtB,SAAS,EAAE,IAAI,EAAE;SAClB,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,eAAe,CAAC;YACjC,OAAO,EAAE,WAAW;YACpB,EAAE,EAAE,OAAO;YACX,KAAK,EAAE,UAAU,CAAC,kBAAkB,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../tests/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAe,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAO,IAAI,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB;;;;GAIG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,KAAK,EAAE,OAAe,EAAmB,EAAE;IAC3F,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA4B,CAAC,CAAC;IACvF,OAAO,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,MAAc,EAAmB,EAAE;IAC9E,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,MAAM,kCAAkC,CAAC,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC,CAAC;IACrF,OAAO,UAAU,SAAS,EAAE,CAAC;AAC/B,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,OAAY,EACZ,mBAA2B,EAC3B,kBAA0B,EACX,EAAE;IACjB,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI,cAAc,IAAI,mBAAmB,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAwB,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,kBAAkB,CAAC;YACtC,KAAK,EAAE,eAAe;YACtB,SAAS,EAAE,IAAI,EAAE;SAClB,CAAC,CAAC;QAEH,MAAM,YAAY,CAAC,eAAe,CAAC;YACjC,OAAO,EAAE,WAAW;YACpB,EAAE,EAAE,OAAO;YACX,KAAK,EAAE,UAAU,CAAC,kBAAkB,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.d.ts","sourceRoot":"","sources":["../../ts/app.module.ts"],"names":[],"mappings":"AAUA,qBAgBa,SAAS;CAAG"}
1
+ {"version":3,"file":"app.module.d.ts","sourceRoot":"","sources":["../../ts/app.module.ts"],"names":[],"mappings":"AAaA,qBAmBa,SAAS;CAAG"}
@@ -9,7 +9,10 @@ import { ThrottlerModule } from "@nestjs/throttler";
9
9
  import { CryptoModule } from "./crypto/crypto.module";
10
10
  import { DeployerModule } from "./deployer/deployer.module";
11
11
  import { FileModule } from "./file/file.module";
12
+ import { HealthModule } from "./health/health.module";
12
13
  import { ProofModule } from "./proof/proof.module";
14
+ import { RedisModule } from "./redis/redis.module";
15
+ import { SchedulerModule } from "./scheduler/scheduler.module";
13
16
  import { SessionKeysModule } from "./sessionKeys/sessionKeys.module";
14
17
  import { SubgraphModule } from "./subgraph/subgraph.module";
15
18
  let AppModule = class AppModule {
@@ -23,12 +26,15 @@ AppModule = __decorate([
23
26
  limit: Number(process.env.LIMIT),
24
27
  },
25
28
  ]),
29
+ HealthModule,
26
30
  FileModule,
27
31
  CryptoModule,
28
32
  SubgraphModule,
29
33
  ProofModule,
30
34
  SessionKeysModule,
31
35
  DeployerModule,
36
+ RedisModule,
37
+ SchedulerModule,
32
38
  ],
33
39
  })
34
40
  ], AppModule);
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../ts/app.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAkBrD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,SAAS;IAhBrB,MAAM,CAAC;QACN,OAAO,EAAE;YACP,eAAe,CAAC,OAAO,CAAC;gBACtB;oBACE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;oBAC5B,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;iBACjC;aACF,CAAC;YACF,UAAU;YACV,YAAY;YACZ,cAAc;YACd,WAAW;YACX,iBAAiB;YACjB,cAAc;SACf;KACF,CAAC;GACW,SAAS,CAAG"}
1
+ {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../ts/app.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAqBrD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,SAAS;IAnBrB,MAAM,CAAC;QACN,OAAO,EAAE;YACP,eAAe,CAAC,OAAO,CAAC;gBACtB;oBACE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;oBAC5B,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;iBACjC;aACF,CAAC;YACF,YAAY;YACZ,UAAU;YACV,YAAY;YACZ,cAAc;YACd,WAAW;YACX,iBAAiB;YACjB,cAAc;YACd,WAAW;YACX,eAAe;SAChB;KACF,CAAC;GACW,SAAS,CAAG"}
@@ -1,15 +1,16 @@
1
1
  import { mainnet, sepolia, arbitrum, arbitrumSepolia, baseSepolia, lineaSepolia, scrollSepolia, scroll, base, holesky, linea, bsc, gnosis, polygon, optimism, optimismSepolia, } from "viem/chains";
2
- import { genAlchemyRPCUrl, getBundlerClient, getDeployedContractAddress, getPublicClient, getZeroDevBundlerRPCUrl, } from "../accountAbstraction";
2
+ import { getBundlerClient, getPublicClient, getZeroDevBundlerRPCUrl } from "../accountAbstraction";
3
+ import { getRpcUrl } from "../chain";
3
4
  import { ErrorCodes } from "../errors";
4
5
  import { ESupportedNetworks, viemChain } from "../networks";
5
6
  describe("common", () => {
6
7
  describe("getPublicClient", () => {
7
- test("should return a public client", () => {
8
- const publicClient = getPublicClient(ESupportedNetworks.OPTIMISM_SEPOLIA);
8
+ test("should return a public client", async () => {
9
+ const publicClient = await getPublicClient(ESupportedNetworks.OPTIMISM_SEPOLIA);
9
10
  expect(publicClient).toBeDefined();
10
11
  });
11
- test("should throw when given an unsupported network", () => {
12
- expect(() => getPublicClient("Unsupported")).toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
12
+ test("should throw when given an unsupported network", async () => {
13
+ await expect(() => getPublicClient("Unsupported")).rejects.toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
13
14
  });
14
15
  });
15
16
  describe("getZeroDevBundlerRPCUrl", () => {
@@ -28,28 +29,13 @@ describe("common", () => {
28
29
  expect(() => getBundlerClient("Unsupported")).toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
29
30
  });
30
31
  });
31
- describe("genAlchemyRPCUrl", () => {
32
- test("should return the correct RPCUrl for optimism-sepolia", () => {
33
- const rpcUrl = genAlchemyRPCUrl(ESupportedNetworks.OPTIMISM_SEPOLIA);
34
- expect(rpcUrl).toBeDefined();
35
- expect(rpcUrl).toContain("https://opt-sepolia.g.alchemy.com/v2/");
32
+ describe("getRpcUrl", () => {
33
+ test("should throw when given an unsupported network", async () => {
34
+ await expect(() => getRpcUrl("Unsupported")).rejects.toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
36
35
  });
37
- test("should return the correct RPCUrl for sepolia", () => {
38
- const rpcUrl = genAlchemyRPCUrl(ESupportedNetworks.ETHEREUM_SEPOLIA);
39
- expect(rpcUrl).toBeDefined();
40
- expect(rpcUrl).toContain("https://eth-sepolia.g.alchemy.com/v2/");
41
- });
42
- test("should throw when given an unsupported network", () => {
43
- expect(() => genAlchemyRPCUrl(ESupportedNetworks.GNOSIS_CHAIN)).toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
44
- });
45
- test("should throw when ALCHEMY_API_KEY is not set", () => {
46
- delete process.env.RPC_API_KEY;
47
- expect(() => genAlchemyRPCUrl(ESupportedNetworks.OPTIMISM_SEPOLIA)).toThrow(ErrorCodes.RPC_API_KEY_NOT_SET.toString());
48
- });
49
- });
50
- describe("getDeployedContractAddress", () => {
51
- test("should throw when the log is undefined", () => {
52
- expect(() => getDeployedContractAddress({})).toThrow();
36
+ test("should throw when COORDINATOR_RPC_URL is not set", async () => {
37
+ delete process.env.COORDINATOR_RPC_URL;
38
+ await expect(() => getRpcUrl(ESupportedNetworks.OPTIMISM_SEPOLIA)).rejects.toThrow(ErrorCodes.COORDINATOR_RPC_URL_NOT_SET.toString());
53
39
  });
54
40
  });
55
41
  describe("viemChain", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"common.test.js","sourceRoot":"","sources":["../../../../ts/common/__tests__/common.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.test.js","sourceRoot":"","sources":["../../../../ts/common/__tests__/common.test.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,13 @@
1
- import { type Hex, TransactionReceipt } from "viem";
1
+ import { type Hex } from "viem";
2
+ import type { BundlerClientType, KernelClientType, PublicClientHTTPType } from "./types";
2
3
  import { ESupportedNetworks } from "./networks";
3
- import { KernelClientType, BundlerClientType, PublicClientHTTPType } from "./types";
4
- /**
5
- * Generate the RPCUrl for Alchemy based on the chain we need to interact with
6
- *
7
- * @param network - the network we want to interact with
8
- * @returns the RPCUrl for the network
9
- */
10
- export declare const genAlchemyRPCUrl: (network: ESupportedNetworks) => string;
11
4
  /**
12
5
  * Get a public client
13
6
  *
14
7
  * @param chainName - the name of the chain to use
15
8
  * @returns the public client
16
9
  */
17
- export declare const getPublicClient: (chainName: ESupportedNetworks) => PublicClientHTTPType;
10
+ export declare const getPublicClient: (chainName: ESupportedNetworks) => Promise<PublicClientHTTPType>;
18
11
  /**
19
12
  * Get the ZeroDev bundler RPC URL based on the network
20
13
  *
@@ -29,20 +22,10 @@ export declare const getZeroDevBundlerRPCUrl: (network: ESupportedNetworks) => s
29
22
  * @returns the bundler client
30
23
  */
31
24
  export declare const getBundlerClient: (chainName: ESupportedNetworks) => BundlerClientType;
32
- /**
33
- * The topic for the contract creation event
34
- */
35
- export declare const contractCreationEventTopic = "0x4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b511";
36
25
  /**
37
26
  * The offset for the address in the contract creation event
38
27
  */
39
28
  export declare const addressOffset = 26;
40
- /**
41
- * Get the address of the newly deployed contract from a transaction receipt
42
- * @param receipt - The transaction receipt
43
- * @returns The address of the newly deployed contract
44
- */
45
- export declare const getDeployedContractAddress: (receipt: TransactionReceipt) => string | undefined;
46
29
  /**
47
30
  * Get a Kernel account handle given a session key
48
31
  *
@@ -1 +1 @@
1
- {"version":3,"file":"accountAbstraction.d.ts","sourceRoot":"","sources":["../../../ts/common/accountAbstraction.ts"],"names":[],"mappings":"AAMA,OAAO,EAA4B,KAAK,GAAG,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAI9E,OAAO,EAAE,kBAAkB,EAAa,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAIpF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,kBAAkB,KAAG,MAe9D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,WAAW,kBAAkB,KAAG,oBAI5D,CAAC;AAEL;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,kBAAkB,KAAG,MASrE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,WAAW,kBAAkB,KAAG,iBAK7D,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,0BAA0B,uEAAuE,CAAC;AAE/G;;GAEG;AACH,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GAAI,SAAS,kBAAkB,KAAG,MAAM,GAAG,SAMjF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAC1B,YAAY,GAAG,EACf,UAAU,MAAM,EAChB,OAAO,kBAAkB,KACxB,OAAO,CAAC,gBAAgB,CAwB1B,CAAC"}
1
+ {"version":3,"file":"accountAbstraction.d.ts","sourceRoot":"","sources":["../../../ts/common/accountAbstraction.ts"],"names":[],"mappings":"AAKA,OAAO,EAA4B,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAI1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAIzF,OAAO,EAAE,kBAAkB,EAAa,MAAM,YAAY,CAAC;AAI3D;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAU,WAAW,kBAAkB,KAAG,OAAO,CAAC,oBAAoB,CAI9F,CAAC;AAEL;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,kBAAkB,KAAG,MASrE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,WAAW,kBAAkB,KAAG,iBAI7D,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAC1B,YAAY,GAAG,EACf,UAAU,MAAM,EAChB,OAAO,kBAAkB,KACxB,OAAO,CAAC,gBAAgB,CA0B1B,CAAC"}
@@ -3,40 +3,21 @@ import { toECDSASigner } from "@zerodev/permissions/signers";
3
3
  import { createKernelAccountClient } from "@zerodev/sdk";
4
4
  import { getEntryPoint, KERNEL_V3_1 } from "@zerodev/sdk/constants";
5
5
  import dotenv from "dotenv";
6
- import { createBundlerClient, ENTRYPOINT_ADDRESS_V07 } from "permissionless";
7
6
  import { createPublicClient, http } from "viem";
7
+ import { createBundlerClient } from "viem/account-abstraction";
8
8
  import { privateKeyToAccount } from "viem/accounts";
9
+ import { getRpcUrl } from "./chain";
9
10
  import { ErrorCodes } from "./errors";
10
11
  import { ESupportedNetworks, viemChain } from "./networks";
11
12
  dotenv.config();
12
- /**
13
- * Generate the RPCUrl for Alchemy based on the chain we need to interact with
14
- *
15
- * @param network - the network we want to interact with
16
- * @returns the RPCUrl for the network
17
- */
18
- export const genAlchemyRPCUrl = (network) => {
19
- const rpcAPIKey = process.env.RPC_API_KEY;
20
- if (!rpcAPIKey) {
21
- throw new Error(ErrorCodes.RPC_API_KEY_NOT_SET.toString());
22
- }
23
- switch (network) {
24
- case ESupportedNetworks.OPTIMISM_SEPOLIA:
25
- return `https://opt-sepolia.g.alchemy.com/v2/${rpcAPIKey}`;
26
- case ESupportedNetworks.ETHEREUM_SEPOLIA:
27
- return `https://eth-sepolia.g.alchemy.com/v2/${rpcAPIKey}`;
28
- default:
29
- throw new Error(ErrorCodes.UNSUPPORTED_NETWORK.toString());
30
- }
31
- };
32
13
  /**
33
14
  * Get a public client
34
15
  *
35
16
  * @param chainName - the name of the chain to use
36
17
  * @returns the public client
37
18
  */
38
- export const getPublicClient = (chainName) => createPublicClient({
39
- transport: http(genAlchemyRPCUrl(chainName)),
19
+ export const getPublicClient = async (chainName) => createPublicClient({
20
+ transport: http(await getRpcUrl(chainName)),
40
21
  chain: viemChain(chainName),
41
22
  });
42
23
  /**
@@ -64,26 +45,11 @@ export const getZeroDevBundlerRPCUrl = (network) => {
64
45
  export const getBundlerClient = (chainName) => createBundlerClient({
65
46
  transport: http(getZeroDevBundlerRPCUrl(chainName)),
66
47
  chain: viemChain(chainName),
67
- entryPoint: ENTRYPOINT_ADDRESS_V07,
68
48
  });
69
- /**
70
- * The topic for the contract creation event
71
- */
72
- export const contractCreationEventTopic = "0x4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b511";
73
49
  /**
74
50
  * The offset for the address in the contract creation event
75
51
  */
76
52
  export const addressOffset = 26;
77
- /**
78
- * Get the address of the newly deployed contract from a transaction receipt
79
- * @param receipt - The transaction receipt
80
- * @returns The address of the newly deployed contract
81
- */
82
- export const getDeployedContractAddress = (receipt) => {
83
- const addr = receipt.logs.find((log) => log.topics[0] === contractCreationEventTopic);
84
- const deployedAddress = addr ? `0x${addr.topics[1]?.slice(addressOffset)}` : undefined;
85
- return deployedAddress;
86
- };
87
53
  /**
88
54
  * Get a Kernel account handle given a session key
89
55
  *
@@ -94,17 +60,21 @@ export const getDeployedContractAddress = (receipt) => {
94
60
  */
95
61
  export const getKernelClient = async (sessionKey, approval, chain) => {
96
62
  const bundlerUrl = getZeroDevBundlerRPCUrl(chain);
97
- const publicClient = getPublicClient(chain);
63
+ const publicClient = await getPublicClient(chain);
98
64
  // Using a stored private key
99
65
  const sessionKeySigner = await toECDSASigner({
100
66
  signer: privateKeyToAccount(sessionKey),
101
67
  });
102
- const sessionKeyAccount = await deserializePermissionAccount(publicClient, getEntryPoint("0.7"), KERNEL_V3_1, approval, sessionKeySigner);
103
- const kernelClient = createKernelAccountClient({
104
- bundlerTransport: http(bundlerUrl),
105
- account: sessionKeyAccount,
106
- chain: viemChain(chain),
107
- });
108
- return kernelClient;
68
+ try {
69
+ const sessionKeyAccount = await deserializePermissionAccount(publicClient, getEntryPoint("0.7"), KERNEL_V3_1, approval, sessionKeySigner);
70
+ return createKernelAccountClient({
71
+ bundlerTransport: http(bundlerUrl),
72
+ account: sessionKeyAccount,
73
+ chain: viemChain(chain),
74
+ });
75
+ }
76
+ catch (error) {
77
+ throw new Error(ErrorCodes.INVALID_APPROVAL.toString());
78
+ }
109
79
  };
110
80
  //# sourceMappingURL=accountAbstraction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accountAbstraction.js","sourceRoot":"","sources":["../../../ts/common/accountAbstraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAgC,MAAM,MAAM,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG3D,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAA2B,EAAU,EAAE;IACtE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAE1C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,kBAAkB,CAAC,gBAAgB;YACtC,OAAO,wCAAwC,SAAS,EAAE,CAAC;QAC7D,KAAK,kBAAkB,CAAC,gBAAgB;YACtC,OAAO,wCAAwC,SAAS,EAAE,CAAC;QAC7D;YACE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAA6B,EAAwB,EAAE,CACrF,kBAAkB,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC5C,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC;CAC5B,CAAC,CAAC;AAEL;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAA2B,EAAU,EAAE;IAC7E,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,kBAAkB,CAAC,gBAAgB;YACtC,OAAO,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,EAAE,CAAC;QAC1D,KAAK,kBAAkB,CAAC,QAAQ;YAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC;QAClD;YACE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAA6B,EAAqB,EAAE,CACnF,mBAAmB,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACnD,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC;IAC3B,UAAU,EAAE,sBAAsB;CACnC,CAAC,CAAC;AAEL;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,oEAAoE,CAAC;AAE/G;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAEhC;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAA2B,EAAsB,EAAE;IAC5F,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAEtF,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvF,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,UAAe,EACf,QAAgB,EAChB,KAAyB,EACE,EAAE;IAC7B,MAAM,UAAU,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAE5C,6BAA6B;IAC7B,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC;QAC3C,MAAM,EAAE,mBAAmB,CAAC,UAAU,CAAC;KACxC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,MAAM,4BAA4B,CAC1D,YAAY,EACZ,aAAa,CAAC,KAAK,CAAC,EACpB,WAAW,EACX,QAAQ,EACR,gBAAgB,CACjB,CAAC;IAEF,MAAM,YAAY,GAAG,yBAAyB,CAAC;QAC7C,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC;QAClC,OAAO,EAAE,iBAAiB;QAC1B,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;KACxB,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC"}
1
+ {"version":3,"file":"accountAbstraction.js","sourceRoot":"","sources":["../../../ts/common/accountAbstraction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Signer } from "ethers";
2
+ import { ESupportedNetworks } from "./networks";
3
+ /**
4
+ * Get the RPC url for the chain we need to interact with
5
+ *
6
+ * @param network - the network we want to interact with
7
+ * @returns the RPC url for the network
8
+ */
9
+ export declare const getRpcUrl: (network: ESupportedNetworks) => Promise<string>;
10
+ /**
11
+ * Get a Ethers Signer given a chain and private key
12
+ * @param chain
13
+ * @returns
14
+ */
15
+ export declare const getSigner: (chain: ESupportedNetworks) => Promise<Signer>;
16
+ //# sourceMappingURL=chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../../ts/common/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAAU,MAAM,QAAQ,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAU,SAAS,kBAAkB,KAAG,OAAO,CAAC,MAAM,CAY3E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAU,OAAO,kBAAkB,KAAG,OAAO,CAAC,MAAM,CASzE,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { JsonRpcProvider, Wallet } from "ethers";
2
+ import { ErrorCodes } from "./errors";
3
+ import { ESupportedNetworks } from "./networks";
4
+ /**
5
+ * Get the RPC url for the chain we need to interact with
6
+ *
7
+ * @param network - the network we want to interact with
8
+ * @returns the RPC url for the network
9
+ */
10
+ export const getRpcUrl = async (network) => {
11
+ const rpcUrl = process.env.COORDINATOR_RPC_URL;
12
+ if (!rpcUrl) {
13
+ return Promise.reject(new Error(ErrorCodes.COORDINATOR_RPC_URL_NOT_SET.toString()));
14
+ }
15
+ if (!Object.values(ESupportedNetworks).includes(network)) {
16
+ return Promise.reject(new Error(ErrorCodes.UNSUPPORTED_NETWORK.toString()));
17
+ }
18
+ return Promise.resolve(rpcUrl);
19
+ };
20
+ /**
21
+ * Get a Ethers Signer given a chain and private key
22
+ * @param chain
23
+ * @returns
24
+ */
25
+ export const getSigner = async (chain) => {
26
+ const wallet = process.env.PRIVATE_KEY
27
+ ? new Wallet(process.env.PRIVATE_KEY)
28
+ : Wallet.fromPhrase(process.env.MNEMONIC);
29
+ const alchemyRpcUrl = await getRpcUrl(chain);
30
+ const provider = new JsonRpcProvider(alchemyRpcUrl);
31
+ return wallet.connect(provider);
32
+ };
33
+ //# sourceMappingURL=chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../ts/common/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,OAA2B,EAAmB,EAAE;IAC9E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAE/C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,2BAA2B,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,KAAyB,EAAmB,EAAE;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW;QACpC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;QACrC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAS,CAAC,CAAC;IAE7C,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC;IAEpD,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Keypair } from "@maci-protocol/domainobjs";
2
+ /**
3
+ * Instantiate the MACI Coordinator keypair.
4
+ * @returns {Keypair} - The MACI Coordinator keypair.
5
+ */
6
+ export declare const getCoordinatorKeypair: () => Keypair;
7
+ //# sourceMappingURL=coordinatorKeypair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinatorKeypair.d.ts","sourceRoot":"","sources":["../../../ts/common/coordinatorKeypair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAc,MAAM,2BAA2B,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAO,OAUxC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Keypair, PrivateKey } from "@maci-protocol/domainobjs";
2
+ /**
3
+ * Instantiate the MACI Coordinator keypair.
4
+ * @returns {Keypair} - The MACI Coordinator keypair.
5
+ */
6
+ export const getCoordinatorKeypair = () => {
7
+ const privateKey = String(process.env.COORDINATOR_MACI_PRIVATE_KEY);
8
+ if (!privateKey) {
9
+ throw new Error("COORDINATOR_MACI_PRIVATE_KEY environment variable is not set.");
10
+ }
11
+ const maciPrivateKey = PrivateKey.deserialize(privateKey);
12
+ return new Keypair(maciPrivateKey);
13
+ };
14
+ //# sourceMappingURL=coordinatorKeypair.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinatorKeypair.js","sourceRoot":"","sources":["../../../ts/common/coordinatorKeypair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAY,EAAE;IACjD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAEpE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,cAAc,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE1D,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;AACrC,CAAC,CAAC"}
@@ -11,23 +11,26 @@ export declare enum ErrorCodes {
11
11
  SUBGRAPH_DEPLOY = 6,
12
12
  SUBGRAPH_DEPLOY_KEY_NOT_FOUND = 7,
13
13
  SESSION_KEY_NOT_FOUND = 8,
14
- PIMLICO_API_KEY_NOT_SET = 9,
15
- INVALID_APPROVAL = 10,
16
- UNSUPPORTED_NETWORK = 11,
17
- RPC_API_KEY_NOT_SET = 12,
18
- FAILED_TO_MERGE_STATE_TREE = 13,
19
- FAILED_TO_MERGE_MESSAGE_SUBTREES = 14,
20
- FAILED_TO_MERGE_MESSAGE_TREE = 15,
14
+ INVALID_APPROVAL = 9,
15
+ UNSUPPORTED_NETWORK = 10,
16
+ COORDINATOR_RPC_URL_NOT_SET = 11,
17
+ FAILED_TO_MERGE_STATE_TREE = 12,
18
+ FAILED_TO_MERGE_MESSAGE_SUBTREES = 13,
19
+ FAILED_TO_MERGE_MESSAGE_TREE = 14,
20
+ UNSUPPORTED_VOICE_CREDIT_PROXY_FACTORY = 15,
21
21
  UNSUPPORTED_VOICE_CREDIT_PROXY = 16,
22
22
  UNSUPPORTED_POLICY = 17,
23
23
  FAILED_TO_DEPLOY_CONTRACT = 18,
24
24
  FAILED_TO_SET_MACI_INSTANCE_ON_POLICY = 19,
25
25
  MACI_NOT_DEPLOYED = 20,
26
26
  VERIFIER_NOT_DEPLOYED = 21,
27
- VK_REGISTRY_NOT_DEPLOYED = 22,
28
- FAILED_TO_SET_VERIFYING_KEYS_ON_VK_REGISTRY = 23,
27
+ VERIFYING_KEYS_REGISTRY_NOT_DEPLOYED = 22,
28
+ FAILED_TO_SET_VERIFYING_KEYS = 23,
29
29
  FAILED_TO_DEPLOY_MACI = 24,
30
30
  FAILED_TO_DEPLOY_POLL = 25,
31
- NOT_MERGED_MESSAGE_TREE = 26
31
+ NOT_MERGED_MESSAGE_TREE = 26,
32
+ FAILED_TO_UPDATE_SCHEDULED_POLL = 27,
33
+ POLL_ALREADY_SCHEDULED = 28,
34
+ POLL_ALREADY_TALLIED = 29
32
35
  }
33
36
  //# sourceMappingURL=errors.d.ts.map