@maci-protocol/coordinator 0.0.0-ci.01622be

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 (261) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/LICENSE +21 -0
  3. package/README.md +49 -0
  4. package/build/hardhat.config.cjs +34 -0
  5. package/build/hardhat.config.cjs.map +1 -0
  6. package/build/hardhat.config.d.cts +27 -0
  7. package/build/hardhat.config.d.cts.map +1 -0
  8. package/build/scripts/generateKeypair.d.ts +2 -0
  9. package/build/scripts/generateKeypair.d.ts.map +1 -0
  10. package/build/scripts/generateKeypair.js +25 -0
  11. package/build/scripts/generateKeypair.js.map +1 -0
  12. package/build/scripts/generateMaciKeyPair.d.ts +2 -0
  13. package/build/scripts/generateMaciKeyPair.d.ts.map +1 -0
  14. package/build/scripts/generateMaciKeyPair.js +3 -0
  15. package/build/scripts/generateMaciKeyPair.js.map +1 -0
  16. package/build/scripts/getAuthHeader.d.ts +2 -0
  17. package/build/scripts/getAuthHeader.d.ts.map +1 -0
  18. package/build/scripts/getAuthHeader.js +31 -0
  19. package/build/scripts/getAuthHeader.js.map +1 -0
  20. package/build/tests/constants.d.ts +7 -0
  21. package/build/tests/constants.d.ts.map +1 -0
  22. package/build/tests/constants.js +9 -0
  23. package/build/tests/constants.js.map +1 -0
  24. package/build/tests/e2e.aa.test.d.ts +2 -0
  25. package/build/tests/e2e.aa.test.d.ts.map +1 -0
  26. package/build/tests/e2e.aa.test.js +106 -0
  27. package/build/tests/e2e.aa.test.js.map +1 -0
  28. package/build/tests/e2e.deploy.test.d.ts +2 -0
  29. package/build/tests/e2e.deploy.test.d.ts.map +1 -0
  30. package/build/tests/e2e.deploy.test.js +282 -0
  31. package/build/tests/e2e.deploy.test.js.map +1 -0
  32. package/build/tests/utils.d.ts +20 -0
  33. package/build/tests/utils.d.ts.map +1 -0
  34. package/build/tests/utils.js +53 -0
  35. package/build/tests/utils.js.map +1 -0
  36. package/build/ts/app.module.d.ts +3 -0
  37. package/build/ts/app.module.d.ts.map +1 -0
  38. package/build/ts/app.module.js +36 -0
  39. package/build/ts/app.module.js.map +1 -0
  40. package/build/ts/auth/AccountSignatureGuard.service.d.ts +44 -0
  41. package/build/ts/auth/AccountSignatureGuard.service.d.ts.map +1 -0
  42. package/build/ts/auth/AccountSignatureGuard.service.js +96 -0
  43. package/build/ts/auth/AccountSignatureGuard.service.js.map +1 -0
  44. package/build/ts/auth/__tests__/AccountSignatureGuard.test.d.ts +2 -0
  45. package/build/ts/auth/__tests__/AccountSignatureGuard.test.d.ts.map +1 -0
  46. package/build/ts/auth/__tests__/AccountSignatureGuard.test.js +113 -0
  47. package/build/ts/auth/__tests__/AccountSignatureGuard.test.js.map +1 -0
  48. package/build/ts/common/__tests__/common.test.d.ts +2 -0
  49. package/build/ts/common/__tests__/common.test.d.ts.map +1 -0
  50. package/build/ts/common/__tests__/common.test.js +75 -0
  51. package/build/ts/common/__tests__/common.test.js.map +1 -0
  52. package/build/ts/common/accountAbstraction.d.ts +38 -0
  53. package/build/ts/common/accountAbstraction.d.ts.map +1 -0
  54. package/build/ts/common/accountAbstraction.js +81 -0
  55. package/build/ts/common/accountAbstraction.js.map +1 -0
  56. package/build/ts/common/chain.d.ts +16 -0
  57. package/build/ts/common/chain.d.ts.map +1 -0
  58. package/build/ts/common/chain.js +35 -0
  59. package/build/ts/common/chain.js.map +1 -0
  60. package/build/ts/common/errors.d.ts +32 -0
  61. package/build/ts/common/errors.d.ts.map +1 -0
  62. package/build/ts/common/errors.js +33 -0
  63. package/build/ts/common/errors.js.map +1 -0
  64. package/build/ts/common/index.d.ts +6 -0
  65. package/build/ts/common/index.d.ts.map +1 -0
  66. package/build/ts/common/index.js +6 -0
  67. package/build/ts/common/index.js.map +1 -0
  68. package/build/ts/common/networks.d.ts +29 -0
  69. package/build/ts/common/networks.d.ts.map +1 -0
  70. package/build/ts/common/networks.js +70 -0
  71. package/build/ts/common/networks.js.map +1 -0
  72. package/build/ts/common/types.d.ts +8 -0
  73. package/build/ts/common/types.d.ts.map +1 -0
  74. package/build/ts/common/types.js +2 -0
  75. package/build/ts/common/types.js.map +1 -0
  76. package/build/ts/crypto/__tests__/crypto.service.test.d.ts +2 -0
  77. package/build/ts/crypto/__tests__/crypto.service.test.d.ts.map +1 -0
  78. package/build/ts/crypto/__tests__/crypto.service.test.js +26 -0
  79. package/build/ts/crypto/__tests__/crypto.service.test.js.map +1 -0
  80. package/build/ts/crypto/crypto.module.d.ts +3 -0
  81. package/build/ts/crypto/crypto.module.d.ts.map +1 -0
  82. package/build/ts/crypto/crypto.module.js +18 -0
  83. package/build/ts/crypto/crypto.module.js.map +1 -0
  84. package/build/ts/crypto/crypto.service.d.ts +31 -0
  85. package/build/ts/crypto/crypto.service.d.ts.map +1 -0
  86. package/build/ts/crypto/crypto.service.js +68 -0
  87. package/build/ts/crypto/crypto.service.js.map +1 -0
  88. package/build/ts/deployer/__tests__/deployer.controller.test.d.ts +2 -0
  89. package/build/ts/deployer/__tests__/deployer.controller.test.d.ts.map +1 -0
  90. package/build/ts/deployer/__tests__/deployer.controller.test.js +84 -0
  91. package/build/ts/deployer/__tests__/deployer.controller.test.js.map +1 -0
  92. package/build/ts/deployer/__tests__/deployer.service.test.d.ts +2 -0
  93. package/build/ts/deployer/__tests__/deployer.service.test.d.ts.map +1 -0
  94. package/build/ts/deployer/__tests__/deployer.service.test.js +166 -0
  95. package/build/ts/deployer/__tests__/deployer.service.test.js.map +1 -0
  96. package/build/ts/deployer/__tests__/utils.d.ts +65 -0
  97. package/build/ts/deployer/__tests__/utils.d.ts.map +1 -0
  98. package/build/ts/deployer/__tests__/utils.js +131 -0
  99. package/build/ts/deployer/__tests__/utils.js.map +1 -0
  100. package/build/ts/deployer/constants.d.ts +13 -0
  101. package/build/ts/deployer/constants.d.ts.map +1 -0
  102. package/build/ts/deployer/constants.js +13 -0
  103. package/build/ts/deployer/constants.js.map +1 -0
  104. package/build/ts/deployer/deployer.controller.d.ts +34 -0
  105. package/build/ts/deployer/deployer.controller.d.ts.map +1 -0
  106. package/build/ts/deployer/deployer.controller.js +89 -0
  107. package/build/ts/deployer/deployer.controller.js.map +1 -0
  108. package/build/ts/deployer/deployer.module.d.ts +3 -0
  109. package/build/ts/deployer/deployer.module.d.ts.map +1 -0
  110. package/build/ts/deployer/deployer.module.js +23 -0
  111. package/build/ts/deployer/deployer.module.js.map +1 -0
  112. package/build/ts/deployer/deployer.service.d.ts +76 -0
  113. package/build/ts/deployer/deployer.service.d.ts.map +1 -0
  114. package/build/ts/deployer/deployer.service.js +341 -0
  115. package/build/ts/deployer/deployer.service.js.map +1 -0
  116. package/build/ts/deployer/dto.d.ts +46 -0
  117. package/build/ts/deployer/dto.d.ts.map +1 -0
  118. package/build/ts/deployer/dto.js +125 -0
  119. package/build/ts/deployer/dto.js.map +1 -0
  120. package/build/ts/deployer/types.d.ts +344 -0
  121. package/build/ts/deployer/types.d.ts.map +1 -0
  122. package/build/ts/deployer/types.js +2 -0
  123. package/build/ts/deployer/types.js.map +1 -0
  124. package/build/ts/file/__tests__/file.service.test.d.ts +2 -0
  125. package/build/ts/file/__tests__/file.service.test.d.ts.map +1 -0
  126. package/build/ts/file/__tests__/file.service.test.js +77 -0
  127. package/build/ts/file/__tests__/file.service.test.js.map +1 -0
  128. package/build/ts/file/file.module.d.ts +3 -0
  129. package/build/ts/file/file.module.d.ts.map +1 -0
  130. package/build/ts/file/file.module.js +18 -0
  131. package/build/ts/file/file.module.js.map +1 -0
  132. package/build/ts/file/file.service.d.ts +63 -0
  133. package/build/ts/file/file.service.d.ts.map +1 -0
  134. package/build/ts/file/file.service.js +120 -0
  135. package/build/ts/file/file.service.js.map +1 -0
  136. package/build/ts/file/types.d.ts +36 -0
  137. package/build/ts/file/types.d.ts.map +1 -0
  138. package/build/ts/file/types.js +2 -0
  139. package/build/ts/file/types.js.map +1 -0
  140. package/build/ts/jest/setup.d.ts +8 -0
  141. package/build/ts/jest/setup.d.ts.map +1 -0
  142. package/build/ts/jest/setup.js +2 -0
  143. package/build/ts/jest/setup.js.map +1 -0
  144. package/build/ts/jest/transform.d.ts +8 -0
  145. package/build/ts/jest/transform.d.ts.map +1 -0
  146. package/build/ts/jest/transform.js +10 -0
  147. package/build/ts/jest/transform.js.map +1 -0
  148. package/build/ts/main.d.ts +2 -0
  149. package/build/ts/main.d.ts.map +1 -0
  150. package/build/ts/main.js +46 -0
  151. package/build/ts/main.js.map +1 -0
  152. package/build/ts/proof/__tests__/proof.controller.test.d.ts +2 -0
  153. package/build/ts/proof/__tests__/proof.controller.test.d.ts.map +1 -0
  154. package/build/ts/proof/__tests__/proof.controller.test.js +92 -0
  155. package/build/ts/proof/__tests__/proof.controller.test.js.map +1 -0
  156. package/build/ts/proof/__tests__/proof.gateway.test.d.ts +2 -0
  157. package/build/ts/proof/__tests__/proof.gateway.test.d.ts.map +1 -0
  158. package/build/ts/proof/__tests__/proof.gateway.test.js +65 -0
  159. package/build/ts/proof/__tests__/proof.gateway.test.js.map +1 -0
  160. package/build/ts/proof/__tests__/proof.service.test.d.ts +2 -0
  161. package/build/ts/proof/__tests__/proof.service.test.d.ts.map +1 -0
  162. package/build/ts/proof/__tests__/proof.service.test.js +130 -0
  163. package/build/ts/proof/__tests__/proof.service.test.js.map +1 -0
  164. package/build/ts/proof/dto.d.ts +75 -0
  165. package/build/ts/proof/dto.d.ts.map +1 -0
  166. package/build/ts/proof/dto.js +277 -0
  167. package/build/ts/proof/dto.js.map +1 -0
  168. package/build/ts/proof/proof.controller.d.ts +47 -0
  169. package/build/ts/proof/proof.controller.d.ts.map +1 -0
  170. package/build/ts/proof/proof.controller.js +135 -0
  171. package/build/ts/proof/proof.controller.js.map +1 -0
  172. package/build/ts/proof/proof.gateway.d.ts +35 -0
  173. package/build/ts/proof/proof.gateway.d.ts.map +1 -0
  174. package/build/ts/proof/proof.gateway.js +93 -0
  175. package/build/ts/proof/proof.gateway.js.map +1 -0
  176. package/build/ts/proof/proof.module.d.ts +3 -0
  177. package/build/ts/proof/proof.module.d.ts.map +1 -0
  178. package/build/ts/proof/proof.module.js +24 -0
  179. package/build/ts/proof/proof.module.js.map +1 -0
  180. package/build/ts/proof/proof.service.d.ts +54 -0
  181. package/build/ts/proof/proof.service.d.ts.map +1 -0
  182. package/build/ts/proof/proof.service.js +166 -0
  183. package/build/ts/proof/proof.service.js.map +1 -0
  184. package/build/ts/proof/types.d.ts +148 -0
  185. package/build/ts/proof/types.d.ts.map +1 -0
  186. package/build/ts/proof/types.js +11 -0
  187. package/build/ts/proof/types.js.map +1 -0
  188. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.d.ts +2 -0
  189. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.d.ts.map +1 -0
  190. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js +44 -0
  191. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js.map +1 -0
  192. package/build/ts/sessionKeys/__tests__/sessionKeys.service.test.d.ts +2 -0
  193. package/build/ts/sessionKeys/__tests__/sessionKeys.service.test.d.ts.map +1 -0
  194. package/build/ts/sessionKeys/__tests__/sessionKeys.service.test.js +61 -0
  195. package/build/ts/sessionKeys/__tests__/sessionKeys.service.test.js.map +1 -0
  196. package/build/ts/sessionKeys/__tests__/utils.d.ts +25 -0
  197. package/build/ts/sessionKeys/__tests__/utils.d.ts.map +1 -0
  198. package/build/ts/sessionKeys/__tests__/utils.js +64 -0
  199. package/build/ts/sessionKeys/__tests__/utils.js.map +1 -0
  200. package/build/ts/sessionKeys/dto.d.ts +11 -0
  201. package/build/ts/sessionKeys/dto.d.ts.map +1 -0
  202. package/build/ts/sessionKeys/dto.js +29 -0
  203. package/build/ts/sessionKeys/dto.js.map +1 -0
  204. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.d.ts +53 -0
  205. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.d.ts.map +1 -0
  206. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.js +105 -0
  207. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.js.map +1 -0
  208. package/build/ts/sessionKeys/sessionKeys.controller.d.ts +26 -0
  209. package/build/ts/sessionKeys/sessionKeys.controller.d.ts.map +1 -0
  210. package/build/ts/sessionKeys/sessionKeys.controller.js +74 -0
  211. package/build/ts/sessionKeys/sessionKeys.controller.js.map +1 -0
  212. package/build/ts/sessionKeys/sessionKeys.module.d.ts +3 -0
  213. package/build/ts/sessionKeys/sessionKeys.module.d.ts.map +1 -0
  214. package/build/ts/sessionKeys/sessionKeys.module.js +23 -0
  215. package/build/ts/sessionKeys/sessionKeys.module.js.map +1 -0
  216. package/build/ts/sessionKeys/sessionKeys.service.d.ts +61 -0
  217. package/build/ts/sessionKeys/sessionKeys.service.d.ts.map +1 -0
  218. package/build/ts/sessionKeys/sessionKeys.service.js +122 -0
  219. package/build/ts/sessionKeys/sessionKeys.service.js.map +1 -0
  220. package/build/ts/sessionKeys/types.d.ts +11 -0
  221. package/build/ts/sessionKeys/types.d.ts.map +1 -0
  222. package/build/ts/sessionKeys/types.js +2 -0
  223. package/build/ts/sessionKeys/types.js.map +1 -0
  224. package/build/ts/subgraph/__tests__/subgraph.controller.test.d.ts +2 -0
  225. package/build/ts/subgraph/__tests__/subgraph.controller.test.d.ts.map +1 -0
  226. package/build/ts/subgraph/__tests__/subgraph.controller.test.js +50 -0
  227. package/build/ts/subgraph/__tests__/subgraph.controller.test.js.map +1 -0
  228. package/build/ts/subgraph/__tests__/subgraph.gateway.test.d.ts +2 -0
  229. package/build/ts/subgraph/__tests__/subgraph.gateway.test.d.ts.map +1 -0
  230. package/build/ts/subgraph/__tests__/subgraph.gateway.test.js +83 -0
  231. package/build/ts/subgraph/__tests__/subgraph.gateway.test.js.map +1 -0
  232. package/build/ts/subgraph/__tests__/subgraph.service.test.d.ts +2 -0
  233. package/build/ts/subgraph/__tests__/subgraph.service.test.d.ts.map +1 -0
  234. package/build/ts/subgraph/__tests__/subgraph.service.test.js +58 -0
  235. package/build/ts/subgraph/__tests__/subgraph.service.test.js.map +1 -0
  236. package/build/ts/subgraph/dto.d.ts +27 -0
  237. package/build/ts/subgraph/dto.d.ts.map +1 -0
  238. package/build/ts/subgraph/dto.js +83 -0
  239. package/build/ts/subgraph/dto.js.map +1 -0
  240. package/build/ts/subgraph/subgraph.controller.d.ts +24 -0
  241. package/build/ts/subgraph/subgraph.controller.d.ts.map +1 -0
  242. package/build/ts/subgraph/subgraph.controller.js +66 -0
  243. package/build/ts/subgraph/subgraph.controller.js.map +1 -0
  244. package/build/ts/subgraph/subgraph.gateway.d.ts +35 -0
  245. package/build/ts/subgraph/subgraph.gateway.d.ts.map +1 -0
  246. package/build/ts/subgraph/subgraph.gateway.js +93 -0
  247. package/build/ts/subgraph/subgraph.gateway.js.map +1 -0
  248. package/build/ts/subgraph/subgraph.module.d.ts +3 -0
  249. package/build/ts/subgraph/subgraph.module.d.ts.map +1 -0
  250. package/build/ts/subgraph/subgraph.module.js +23 -0
  251. package/build/ts/subgraph/subgraph.module.js.map +1 -0
  252. package/build/ts/subgraph/subgraph.service.d.ts +20 -0
  253. package/build/ts/subgraph/subgraph.service.d.ts.map +1 -0
  254. package/build/ts/subgraph/subgraph.service.js +106 -0
  255. package/build/ts/subgraph/subgraph.service.js.map +1 -0
  256. package/build/ts/subgraph/types.d.ts +93 -0
  257. package/build/ts/subgraph/types.d.ts.map +1 -0
  258. package/build/ts/subgraph/types.js +24 -0
  259. package/build/ts/subgraph/types.js.map +1 -0
  260. package/build/tsconfig.build.tsbuildinfo +1 -0
  261. package/package.json +125 -0
@@ -0,0 +1,113 @@
1
+ import dotenv from "dotenv";
2
+ import { getBytes, hashMessage } from "ethers";
3
+ import hardhat from "hardhat";
4
+ import { AccountSignatureGuard, PUBLIC_METADATA_KEY, Public } from "../AccountSignatureGuard.service";
5
+ dotenv.config();
6
+ jest.mock("../../crypto/crypto.service", () => ({
7
+ CryptoService: {
8
+ getInstance: jest.fn(),
9
+ },
10
+ }));
11
+ describe("AccountSignatureGuard", () => {
12
+ const mockRequest = {
13
+ headers: { authorization: "data" },
14
+ };
15
+ const mockContext = {
16
+ getHandler: jest.fn(),
17
+ switchToHttp: jest.fn().mockReturnValue({
18
+ getRequest: jest.fn(() => mockRequest),
19
+ }),
20
+ switchToWs: jest.fn().mockReturnValue({
21
+ getClient: jest.fn(() => ({ handshake: mockRequest })),
22
+ }),
23
+ };
24
+ const mockSignature = "0xc0436b6fbd5ff883fe88367f081d0780706b5c29fbfde8db2c1d607510f9095a73b3bc9b94a1588d561eaf49d195b134e3f92c36449c017ecf92c5e4d84a32131c";
25
+ const mockDigest = "7f6c0e5c497ded52462ec18daeb1c94cefa11cd6949ebdb7074b2a32cac13fba";
26
+ const mockCryptoService = {
27
+ decrypt: jest.fn(),
28
+ };
29
+ const reflector = {
30
+ get: jest.fn(),
31
+ };
32
+ beforeEach(() => {
33
+ mockCryptoService.decrypt = jest.fn(() => `${mockSignature}:${mockDigest}`);
34
+ reflector.get.mockReturnValue(false);
35
+ });
36
+ afterEach(() => {
37
+ jest.clearAllMocks();
38
+ });
39
+ test("should create public decorator properly", () => {
40
+ const decorator = Public();
41
+ expect(decorator.KEY).toBe(PUBLIC_METADATA_KEY);
42
+ });
43
+ test("should return false if there is no Authorization header", async () => {
44
+ const ctx = {
45
+ getHandler: jest.fn(),
46
+ switchToHttp: jest.fn().mockReturnValue({
47
+ getRequest: jest.fn(() => ({
48
+ headers: { authorization: "" },
49
+ })),
50
+ }),
51
+ switchToWs: jest.fn().mockReturnValue({
52
+ getClient: jest.fn(() => ({ handshake: { headers: { authorization: "" } } })),
53
+ }),
54
+ };
55
+ const guard = new AccountSignatureGuard(mockCryptoService, reflector);
56
+ const result = await guard.canActivate(ctx);
57
+ expect(result).toBe(false);
58
+ });
59
+ test("should return false if there is no signature", async () => {
60
+ mockCryptoService.decrypt.mockReturnValue(`:${mockDigest}`);
61
+ const guard = new AccountSignatureGuard(mockCryptoService, reflector);
62
+ const result = await guard.canActivate(mockContext);
63
+ expect(result).toBe(false);
64
+ });
65
+ test("should return false if there is no digest", async () => {
66
+ mockCryptoService.decrypt.mockReturnValue(mockSignature);
67
+ const guard = new AccountSignatureGuard(mockCryptoService, reflector);
68
+ const result = await guard.canActivate(mockContext);
69
+ expect(result).toBe(false);
70
+ });
71
+ test("should return false if signature or digest are invalid", async () => {
72
+ mockCryptoService.decrypt.mockReturnValue(`signature:digest`);
73
+ const guard = new AccountSignatureGuard(mockCryptoService, reflector);
74
+ const result = await guard.canActivate(mockContext);
75
+ expect(result).toBe(false);
76
+ });
77
+ test("should return false if signer is different", async () => {
78
+ const [, signer] = await hardhat.ethers.getSigners();
79
+ const signature = await signer.signMessage("message");
80
+ const digest = Buffer.from(getBytes(hashMessage("message"))).toString("hex");
81
+ mockCryptoService.decrypt.mockReturnValue(`${signature}:${digest}`);
82
+ const guard = new AccountSignatureGuard(mockCryptoService, reflector);
83
+ const result = await guard.canActivate(mockContext);
84
+ expect(result).toBe(false);
85
+ });
86
+ test("should return true if authorization is passed properly", async () => {
87
+ const [signer] = await hardhat.ethers.getSigners();
88
+ process.env.COORDINATOR_ADDRESSES = await signer.getAddress();
89
+ const signature = await signer.signMessage("message");
90
+ const digest = Buffer.from(getBytes(hashMessage("message"))).toString("hex");
91
+ mockCryptoService.decrypt.mockReturnValue(`${signature}:${digest}`);
92
+ const guard = new AccountSignatureGuard(mockCryptoService, reflector);
93
+ const result = await guard.canActivate(mockContext);
94
+ expect(result).toBe(true);
95
+ });
96
+ test("should return false if there is no COORDINATOR_ADDRESSES env", async () => {
97
+ const [signer] = await hardhat.ethers.getSigners();
98
+ process.env.COORDINATOR_ADDRESSES = undefined;
99
+ const signature = await signer.signMessage("message");
100
+ const digest = Buffer.from(getBytes(hashMessage("message"))).toString("hex");
101
+ mockCryptoService.decrypt.mockReturnValue(`${signature}:${digest}`);
102
+ const guard = new AccountSignatureGuard(mockCryptoService, reflector);
103
+ const result = await guard.canActivate(mockContext);
104
+ expect(result).toBe(false);
105
+ });
106
+ test("should return true if can skip authorization", async () => {
107
+ reflector.get.mockReturnValue(true);
108
+ const guard = new AccountSignatureGuard(mockCryptoService, reflector);
109
+ const result = await guard.canActivate(mockContext);
110
+ expect(result).toBe(true);
111
+ });
112
+ });
113
+ //# sourceMappingURL=AccountSignatureGuard.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountSignatureGuard.test.js","sourceRoot":"","sources":["../../../../ts/auth/__tests__/AccountSignatureGuard.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=common.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.test.d.ts","sourceRoot":"","sources":["../../../../ts/common/__tests__/common.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
1
+ import { mainnet, sepolia, arbitrum, arbitrumSepolia, baseSepolia, lineaSepolia, scrollSepolia, scroll, base, holesky, linea, bsc, gnosis, polygon, optimism, optimismSepolia, } from "viem/chains";
2
+ import { getBundlerClient, getPublicClient, getZeroDevBundlerRPCUrl } from "../accountAbstraction";
3
+ import { genAlchemyRPCUrl } from "../chain";
4
+ import { ErrorCodes } from "../errors";
5
+ import { ESupportedNetworks, viemChain } from "../networks";
6
+ describe("common", () => {
7
+ describe("getPublicClient", () => {
8
+ test("should return a public client", () => {
9
+ const publicClient = getPublicClient(ESupportedNetworks.OPTIMISM_SEPOLIA);
10
+ expect(publicClient).toBeDefined();
11
+ });
12
+ test("should throw when given an unsupported network", () => {
13
+ expect(() => getPublicClient("Unsupported")).toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
14
+ });
15
+ });
16
+ describe("getZeroDevBundlerRPCUrl", () => {
17
+ test("should throw when the network is not supported", () => {
18
+ expect(() => getZeroDevBundlerRPCUrl("Unsupported")).toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
19
+ });
20
+ test("should return an RPCUrl for a supported network", () => {
21
+ const rpcUrlOPS = getZeroDevBundlerRPCUrl(ESupportedNetworks.OPTIMISM_SEPOLIA);
22
+ expect(rpcUrlOPS).toBeDefined();
23
+ const rpcUrlOP = getZeroDevBundlerRPCUrl(ESupportedNetworks.OPTIMISM);
24
+ expect(rpcUrlOP).toBeDefined();
25
+ });
26
+ });
27
+ describe("getBundlerClient", () => {
28
+ test("should throw when the network is not supported", () => {
29
+ expect(() => getBundlerClient("Unsupported")).toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
30
+ });
31
+ });
32
+ describe("genAlchemyRPCUrl", () => {
33
+ test("should return the correct RPCUrl for optimism-sepolia", () => {
34
+ const rpcUrl = genAlchemyRPCUrl(ESupportedNetworks.OPTIMISM_SEPOLIA);
35
+ expect(rpcUrl).toBeDefined();
36
+ expect(rpcUrl).toContain("https://opt-sepolia.g.alchemy.com/v2/");
37
+ });
38
+ test("should return the correct RPCUrl for sepolia", () => {
39
+ const rpcUrl = genAlchemyRPCUrl(ESupportedNetworks.ETHEREUM_SEPOLIA);
40
+ expect(rpcUrl).toBeDefined();
41
+ expect(rpcUrl).toContain("https://eth-sepolia.g.alchemy.com/v2/");
42
+ });
43
+ test("should throw when given an unsupported network", () => {
44
+ expect(() => genAlchemyRPCUrl(ESupportedNetworks.GNOSIS_CHAIN)).toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
45
+ });
46
+ test("should throw when ALCHEMY_API_KEY is not set", () => {
47
+ delete process.env.RPC_API_KEY;
48
+ expect(() => genAlchemyRPCUrl(ESupportedNetworks.OPTIMISM_SEPOLIA)).toThrow(ErrorCodes.RPC_API_KEY_NOT_SET.toString());
49
+ });
50
+ });
51
+ describe("viemChain", () => {
52
+ test("should return correct chain for all supported networks", () => {
53
+ expect(viemChain(ESupportedNetworks.ETHEREUM)).toBe(mainnet);
54
+ expect(viemChain(ESupportedNetworks.ETHEREUM_SEPOLIA)).toBe(sepolia);
55
+ expect(viemChain(ESupportedNetworks.ARBITRUM_ONE)).toBe(arbitrum);
56
+ expect(viemChain(ESupportedNetworks.ARBITRUM_SEPOLIA)).toBe(arbitrumSepolia);
57
+ expect(viemChain(ESupportedNetworks.BASE_SEPOLIA)).toBe(baseSepolia);
58
+ expect(viemChain(ESupportedNetworks.LINEA_SEPOLIA)).toBe(lineaSepolia);
59
+ expect(viemChain(ESupportedNetworks.SCROLL_SEPOLIA)).toBe(scrollSepolia);
60
+ expect(viemChain(ESupportedNetworks.SCROLL)).toBe(scroll);
61
+ expect(viemChain(ESupportedNetworks.BASE)).toBe(base);
62
+ expect(viemChain(ESupportedNetworks.HOLESKY)).toBe(holesky);
63
+ expect(viemChain(ESupportedNetworks.LINEA)).toBe(linea);
64
+ expect(viemChain(ESupportedNetworks.BSC)).toBe(bsc);
65
+ expect(viemChain(ESupportedNetworks.GNOSIS_CHAIN)).toBe(gnosis);
66
+ expect(viemChain(ESupportedNetworks.POLYGON)).toBe(polygon);
67
+ expect(viemChain(ESupportedNetworks.OPTIMISM)).toBe(optimism);
68
+ expect(viemChain(ESupportedNetworks.OPTIMISM_SEPOLIA)).toBe(optimismSepolia);
69
+ });
70
+ test("should throw error for unsupported network", () => {
71
+ expect(() => viemChain("UNSUPPORTED_NETWORK")).toThrow(ErrorCodes.UNSUPPORTED_NETWORK.toString());
72
+ });
73
+ });
74
+ });
75
+ //# sourceMappingURL=common.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.test.js","sourceRoot":"","sources":["../../../../ts/common/__tests__/common.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { type Hex } from "viem";
2
+ import type { BundlerClientType, KernelClientType, PublicClientHTTPType } from "./types";
3
+ import { ESupportedNetworks } from "./networks";
4
+ /**
5
+ * Get a public client
6
+ *
7
+ * @param chainName - the name of the chain to use
8
+ * @returns the public client
9
+ */
10
+ export declare const getPublicClient: (chainName: ESupportedNetworks) => PublicClientHTTPType;
11
+ /**
12
+ * Get the ZeroDev bundler RPC URL based on the network
13
+ *
14
+ * @param network - the network we are on
15
+ * @returns the ZeroDev bundler RPC URL
16
+ */
17
+ export declare const getZeroDevBundlerRPCUrl: (network: ESupportedNetworks) => string;
18
+ /**
19
+ * Get a bundler client
20
+ *
21
+ * @param chainName - the chain name
22
+ * @returns the bundler client
23
+ */
24
+ export declare const getBundlerClient: (chainName: ESupportedNetworks) => BundlerClientType;
25
+ /**
26
+ * The offset for the address in the contract creation event
27
+ */
28
+ export declare const addressOffset = 26;
29
+ /**
30
+ * Get a Kernel account handle given a session key
31
+ *
32
+ * @param sessionKey - the session key to use
33
+ * @param approval - the approval to the session key
34
+ * @param chain - the chain to use
35
+ * @returns the kernel client
36
+ */
37
+ export declare const getKernelClient: (sessionKey: Hex, approval: string, chain: ESupportedNetworks) => Promise<KernelClientType>;
38
+ //# sourceMappingURL=accountAbstraction.d.ts.map
@@ -0,0 +1 @@
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,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,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,CA2B1B,CAAC"}
@@ -0,0 +1,81 @@
1
+ import { deserializePermissionAccount } from "@zerodev/permissions";
2
+ import { toECDSASigner } from "@zerodev/permissions/signers";
3
+ import { createKernelAccountClient } from "@zerodev/sdk";
4
+ import { getEntryPoint, KERNEL_V3_1 } from "@zerodev/sdk/constants";
5
+ import dotenv from "dotenv";
6
+ import { createPublicClient, http } from "viem";
7
+ import { createBundlerClient } from "viem/account-abstraction";
8
+ import { privateKeyToAccount } from "viem/accounts";
9
+ import { genAlchemyRPCUrl } from "./chain";
10
+ import { ErrorCodes } from "./errors";
11
+ import { ESupportedNetworks, viemChain } from "./networks";
12
+ dotenv.config();
13
+ /**
14
+ * Get a public client
15
+ *
16
+ * @param chainName - the name of the chain to use
17
+ * @returns the public client
18
+ */
19
+ export const getPublicClient = (chainName) => createPublicClient({
20
+ transport: http(genAlchemyRPCUrl(chainName)),
21
+ chain: viemChain(chainName),
22
+ });
23
+ /**
24
+ * Get the ZeroDev bundler RPC URL based on the network
25
+ *
26
+ * @param network - the network we are on
27
+ * @returns the ZeroDev bundler RPC URL
28
+ */
29
+ export const getZeroDevBundlerRPCUrl = (network) => {
30
+ switch (network) {
31
+ case ESupportedNetworks.OPTIMISM_SEPOLIA:
32
+ return process.env.ZERODEV_BUNDLER_RPC_OP_SEPOLIA || "";
33
+ case ESupportedNetworks.OPTIMISM:
34
+ return process.env.ZERODEV_BUNDLER_RPC_OP || "";
35
+ default:
36
+ throw new Error(ErrorCodes.UNSUPPORTED_NETWORK.toString());
37
+ }
38
+ };
39
+ /**
40
+ * Get a bundler client
41
+ *
42
+ * @param chainName - the chain name
43
+ * @returns the bundler client
44
+ */
45
+ export const getBundlerClient = (chainName) => createBundlerClient({
46
+ transport: http(getZeroDevBundlerRPCUrl(chainName)),
47
+ chain: viemChain(chainName),
48
+ });
49
+ /**
50
+ * The offset for the address in the contract creation event
51
+ */
52
+ export const addressOffset = 26;
53
+ /**
54
+ * Get a Kernel account handle given a session key
55
+ *
56
+ * @param sessionKey - the session key to use
57
+ * @param approval - the approval to the session key
58
+ * @param chain - the chain to use
59
+ * @returns the kernel client
60
+ */
61
+ export const getKernelClient = async (sessionKey, approval, chain) => {
62
+ const bundlerUrl = getZeroDevBundlerRPCUrl(chain);
63
+ const publicClient = getPublicClient(chain);
64
+ // Using a stored private key
65
+ const sessionKeySigner = await toECDSASigner({
66
+ signer: privateKeyToAccount(sessionKey),
67
+ });
68
+ try {
69
+ const sessionKeyAccount = await deserializePermissionAccount(publicClient, getEntryPoint("0.7"), KERNEL_V3_1, approval, sessionKeySigner);
70
+ const kernelClient = createKernelAccountClient({
71
+ bundlerTransport: http(bundlerUrl),
72
+ account: sessionKeyAccount,
73
+ chain: viemChain(chain),
74
+ });
75
+ return kernelClient;
76
+ }
77
+ catch (error) {
78
+ throw new Error(ErrorCodes.INVALID_APPROVAL.toString());
79
+ }
80
+ };
81
+ //# sourceMappingURL=accountAbstraction.js.map
@@ -0,0 +1 @@
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
+ * Generate the RPCUrl for Alchemy based on the chain we need to interact with
5
+ *
6
+ * @param network - the network we want to interact with
7
+ * @returns the RPCUrl for the network
8
+ */
9
+ export declare const genAlchemyRPCUrl: (network: ESupportedNetworks) => 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) => 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,gBAAgB,GAAI,SAAS,kBAAkB,KAAG,MAe9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,kBAAkB,KAAG,MAMrD,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { JsonRpcProvider, Wallet } from "ethers";
2
+ import { ErrorCodes } from "./errors";
3
+ import { ESupportedNetworks } from "./networks";
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 const genAlchemyRPCUrl = (network) => {
11
+ const rpcAPIKey = process.env.RPC_API_KEY;
12
+ if (!rpcAPIKey) {
13
+ throw new Error(ErrorCodes.RPC_API_KEY_NOT_SET.toString());
14
+ }
15
+ switch (network) {
16
+ case ESupportedNetworks.OPTIMISM_SEPOLIA:
17
+ return `https://opt-sepolia.g.alchemy.com/v2/${rpcAPIKey}`;
18
+ case ESupportedNetworks.ETHEREUM_SEPOLIA:
19
+ return `https://eth-sepolia.g.alchemy.com/v2/${rpcAPIKey}`;
20
+ default:
21
+ throw new Error(ErrorCodes.UNSUPPORTED_NETWORK.toString());
22
+ }
23
+ };
24
+ /**
25
+ * Get a Ethers Signer given a chain and private key
26
+ * @param chain
27
+ * @returns
28
+ */
29
+ export const getSigner = (chain) => {
30
+ const wallet = new Wallet(process.env.PRIVATE_KEY);
31
+ const alchemyRpcUrl = genAlchemyRPCUrl(chain);
32
+ const provider = new JsonRpcProvider(alchemyRpcUrl);
33
+ return wallet.connect(provider);
34
+ };
35
+ //# 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,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;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAyB,EAAU,EAAE;IAC7D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,WAAY,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC;IAEpD,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Error codes that are used for api responses
3
+ */
4
+ export declare enum ErrorCodes {
5
+ NOT_MERGED_STATE_TREE = 0,
6
+ PRIVATE_KEY_MISMATCH = 1,
7
+ POLL_NOT_FOUND = 2,
8
+ DECRYPTION = 3,
9
+ ENCRYPTION = 4,
10
+ FILE_NOT_FOUND = 5,
11
+ SUBGRAPH_DEPLOY = 6,
12
+ SUBGRAPH_DEPLOY_KEY_NOT_FOUND = 7,
13
+ SESSION_KEY_NOT_FOUND = 8,
14
+ INVALID_APPROVAL = 9,
15
+ UNSUPPORTED_NETWORK = 10,
16
+ RPC_API_KEY_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 = 15,
21
+ UNSUPPORTED_POLICY = 16,
22
+ FAILED_TO_DEPLOY_CONTRACT = 17,
23
+ FAILED_TO_SET_MACI_INSTANCE_ON_POLICY = 18,
24
+ MACI_NOT_DEPLOYED = 19,
25
+ VERIFIER_NOT_DEPLOYED = 20,
26
+ VERIFYING_KEYS_REGISTRY_NOT_DEPLOYED = 21,
27
+ FAILED_TO_SET_VERIFYING_KEYS = 22,
28
+ FAILED_TO_DEPLOY_MACI = 23,
29
+ FAILED_TO_DEPLOY_POLL = 24,
30
+ NOT_MERGED_MESSAGE_TREE = 25
31
+ }
32
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../ts/common/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,UAAU;IACpB,qBAAqB,IAAA;IACrB,oBAAoB,IAAA;IACpB,cAAc,IAAA;IACd,UAAU,IAAA;IACV,UAAU,IAAA;IACV,cAAc,IAAA;IACd,eAAe,IAAA;IACf,6BAA6B,IAAA;IAC7B,qBAAqB,IAAA;IACrB,gBAAgB,IAAA;IAChB,mBAAmB,KAAA;IACnB,mBAAmB,KAAA;IACnB,0BAA0B,KAAA;IAC1B,gCAAgC,KAAA;IAChC,4BAA4B,KAAA;IAC5B,8BAA8B,KAAA;IAC9B,kBAAkB,KAAA;IAClB,yBAAyB,KAAA;IACzB,qCAAqC,KAAA;IACrC,iBAAiB,KAAA;IACjB,qBAAqB,KAAA;IACrB,oCAAoC,KAAA;IACpC,4BAA4B,KAAA;IAC5B,qBAAqB,KAAA;IACrB,qBAAqB,KAAA;IACrB,uBAAuB,KAAA;CACxB"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Error codes that are used for api responses
3
+ */
4
+ export var ErrorCodes;
5
+ (function (ErrorCodes) {
6
+ ErrorCodes[ErrorCodes["NOT_MERGED_STATE_TREE"] = 0] = "NOT_MERGED_STATE_TREE";
7
+ ErrorCodes[ErrorCodes["PRIVATE_KEY_MISMATCH"] = 1] = "PRIVATE_KEY_MISMATCH";
8
+ ErrorCodes[ErrorCodes["POLL_NOT_FOUND"] = 2] = "POLL_NOT_FOUND";
9
+ ErrorCodes[ErrorCodes["DECRYPTION"] = 3] = "DECRYPTION";
10
+ ErrorCodes[ErrorCodes["ENCRYPTION"] = 4] = "ENCRYPTION";
11
+ ErrorCodes[ErrorCodes["FILE_NOT_FOUND"] = 5] = "FILE_NOT_FOUND";
12
+ ErrorCodes[ErrorCodes["SUBGRAPH_DEPLOY"] = 6] = "SUBGRAPH_DEPLOY";
13
+ ErrorCodes[ErrorCodes["SUBGRAPH_DEPLOY_KEY_NOT_FOUND"] = 7] = "SUBGRAPH_DEPLOY_KEY_NOT_FOUND";
14
+ ErrorCodes[ErrorCodes["SESSION_KEY_NOT_FOUND"] = 8] = "SESSION_KEY_NOT_FOUND";
15
+ ErrorCodes[ErrorCodes["INVALID_APPROVAL"] = 9] = "INVALID_APPROVAL";
16
+ ErrorCodes[ErrorCodes["UNSUPPORTED_NETWORK"] = 10] = "UNSUPPORTED_NETWORK";
17
+ ErrorCodes[ErrorCodes["RPC_API_KEY_NOT_SET"] = 11] = "RPC_API_KEY_NOT_SET";
18
+ ErrorCodes[ErrorCodes["FAILED_TO_MERGE_STATE_TREE"] = 12] = "FAILED_TO_MERGE_STATE_TREE";
19
+ ErrorCodes[ErrorCodes["FAILED_TO_MERGE_MESSAGE_SUBTREES"] = 13] = "FAILED_TO_MERGE_MESSAGE_SUBTREES";
20
+ ErrorCodes[ErrorCodes["FAILED_TO_MERGE_MESSAGE_TREE"] = 14] = "FAILED_TO_MERGE_MESSAGE_TREE";
21
+ ErrorCodes[ErrorCodes["UNSUPPORTED_VOICE_CREDIT_PROXY"] = 15] = "UNSUPPORTED_VOICE_CREDIT_PROXY";
22
+ ErrorCodes[ErrorCodes["UNSUPPORTED_POLICY"] = 16] = "UNSUPPORTED_POLICY";
23
+ ErrorCodes[ErrorCodes["FAILED_TO_DEPLOY_CONTRACT"] = 17] = "FAILED_TO_DEPLOY_CONTRACT";
24
+ ErrorCodes[ErrorCodes["FAILED_TO_SET_MACI_INSTANCE_ON_POLICY"] = 18] = "FAILED_TO_SET_MACI_INSTANCE_ON_POLICY";
25
+ ErrorCodes[ErrorCodes["MACI_NOT_DEPLOYED"] = 19] = "MACI_NOT_DEPLOYED";
26
+ ErrorCodes[ErrorCodes["VERIFIER_NOT_DEPLOYED"] = 20] = "VERIFIER_NOT_DEPLOYED";
27
+ ErrorCodes[ErrorCodes["VERIFYING_KEYS_REGISTRY_NOT_DEPLOYED"] = 21] = "VERIFYING_KEYS_REGISTRY_NOT_DEPLOYED";
28
+ ErrorCodes[ErrorCodes["FAILED_TO_SET_VERIFYING_KEYS"] = 22] = "FAILED_TO_SET_VERIFYING_KEYS";
29
+ ErrorCodes[ErrorCodes["FAILED_TO_DEPLOY_MACI"] = 23] = "FAILED_TO_DEPLOY_MACI";
30
+ ErrorCodes[ErrorCodes["FAILED_TO_DEPLOY_POLL"] = 24] = "FAILED_TO_DEPLOY_POLL";
31
+ ErrorCodes[ErrorCodes["NOT_MERGED_MESSAGE_TREE"] = 25] = "NOT_MERGED_MESSAGE_TREE";
32
+ })(ErrorCodes || (ErrorCodes = {}));
33
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../ts/common/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,UA2BX;AA3BD,WAAY,UAAU;IACpB,6EAAqB,CAAA;IACrB,2EAAoB,CAAA;IACpB,+DAAc,CAAA;IACd,uDAAU,CAAA;IACV,uDAAU,CAAA;IACV,+DAAc,CAAA;IACd,iEAAe,CAAA;IACf,6FAA6B,CAAA;IAC7B,6EAAqB,CAAA;IACrB,mEAAgB,CAAA;IAChB,0EAAmB,CAAA;IACnB,0EAAmB,CAAA;IACnB,wFAA0B,CAAA;IAC1B,oGAAgC,CAAA;IAChC,4FAA4B,CAAA;IAC5B,gGAA8B,CAAA;IAC9B,wEAAkB,CAAA;IAClB,sFAAyB,CAAA;IACzB,8GAAqC,CAAA;IACrC,sEAAiB,CAAA;IACjB,8EAAqB,CAAA;IACrB,4GAAoC,CAAA;IACpC,4FAA4B,CAAA;IAC5B,8EAAqB,CAAA;IACrB,8EAAqB,CAAA;IACrB,kFAAuB,CAAA;AACzB,CAAC,EA3BW,UAAU,KAAV,UAAU,QA2BrB"}
@@ -0,0 +1,6 @@
1
+ export { ErrorCodes } from "./errors";
2
+ export { ESupportedNetworks } from "./networks";
3
+ export * from "./chain";
4
+ export * from "./accountAbstraction";
5
+ export * from "./types";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { ErrorCodes } from "./errors";
2
+ export { ESupportedNetworks } from "./networks";
3
+ export * from "./chain";
4
+ export * from "./accountAbstraction";
5
+ export * from "./types";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { type Chain } from "viem/chains";
2
+ export declare enum ESupportedNetworks {
3
+ ETHEREUM = "mainnet",
4
+ OPTIMISM = "optimism",
5
+ OPTIMISM_SEPOLIA = "optimism-sepolia",
6
+ BSC = "bsc",
7
+ BSC_CHAPEL = "chapel",
8
+ GNOSIS_CHAIN = "gnosis",
9
+ POLYGON = "matic",
10
+ ARBITRUM_ONE = "arbitrum-one",
11
+ HOLESKY = "holesky",
12
+ LINEA_SEPOLIA = "linea-sepolia",
13
+ BASE_SEPOLIA = "base-sepolia",
14
+ ETHEREUM_SEPOLIA = "sepolia",
15
+ ARBITRUM_SEPOLIA = "arbitrum-sepolia",
16
+ LINEA = "linea",
17
+ BASE = "base",
18
+ SCROLL_SEPOLIA = "scroll-sepolia",
19
+ SCROLL = "scroll",
20
+ LOCALHOST = "localhost"
21
+ }
22
+ /**
23
+ * Get the Viem chain for a given network
24
+ *
25
+ * @param network - the network to get the chain for
26
+ * @returns the Viem chain
27
+ */
28
+ export declare const viemChain: (network: ESupportedNetworks) => Chain;
29
+ //# sourceMappingURL=networks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networks.d.ts","sourceRoot":"","sources":["../../../ts/common/networks.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,KAAK,EAaX,MAAM,aAAa,CAAC;AAIrB,oBAAY,kBAAkB;IAC5B,QAAQ,YAAY;IACpB,QAAQ,aAAa;IACrB,gBAAgB,qBAAqB;IACrC,GAAG,QAAQ;IACX,UAAU,WAAW;IACrB,YAAY,WAAW;IACvB,OAAO,UAAU;IACjB,YAAY,iBAAiB;IAC7B,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,gBAAgB,YAAY;IAC5B,gBAAgB,qBAAqB;IACrC,KAAK,UAAU;IACf,IAAI,SAAS;IACb,cAAc,mBAAmB;IACjC,MAAM,WAAW;IACjB,SAAS,cAAc;CACxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,kBAAkB,KAAG,KAuCvD,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { arbitrum, arbitrumSepolia, base, baseSepolia, bsc, gnosis, holesky, linea, lineaSepolia, localhost, mainnet, optimism, optimismSepolia, polygon, scroll, scrollSepolia, sepolia, } from "viem/chains";
2
+ import { ErrorCodes } from "./errors";
3
+ export var ESupportedNetworks;
4
+ (function (ESupportedNetworks) {
5
+ ESupportedNetworks["ETHEREUM"] = "mainnet";
6
+ ESupportedNetworks["OPTIMISM"] = "optimism";
7
+ ESupportedNetworks["OPTIMISM_SEPOLIA"] = "optimism-sepolia";
8
+ ESupportedNetworks["BSC"] = "bsc";
9
+ ESupportedNetworks["BSC_CHAPEL"] = "chapel";
10
+ ESupportedNetworks["GNOSIS_CHAIN"] = "gnosis";
11
+ ESupportedNetworks["POLYGON"] = "matic";
12
+ ESupportedNetworks["ARBITRUM_ONE"] = "arbitrum-one";
13
+ ESupportedNetworks["HOLESKY"] = "holesky";
14
+ ESupportedNetworks["LINEA_SEPOLIA"] = "linea-sepolia";
15
+ ESupportedNetworks["BASE_SEPOLIA"] = "base-sepolia";
16
+ ESupportedNetworks["ETHEREUM_SEPOLIA"] = "sepolia";
17
+ ESupportedNetworks["ARBITRUM_SEPOLIA"] = "arbitrum-sepolia";
18
+ ESupportedNetworks["LINEA"] = "linea";
19
+ ESupportedNetworks["BASE"] = "base";
20
+ ESupportedNetworks["SCROLL_SEPOLIA"] = "scroll-sepolia";
21
+ ESupportedNetworks["SCROLL"] = "scroll";
22
+ ESupportedNetworks["LOCALHOST"] = "localhost";
23
+ })(ESupportedNetworks || (ESupportedNetworks = {}));
24
+ /**
25
+ * Get the Viem chain for a given network
26
+ *
27
+ * @param network - the network to get the chain for
28
+ * @returns the Viem chain
29
+ */
30
+ export const viemChain = (network) => {
31
+ switch (network) {
32
+ case ESupportedNetworks.ETHEREUM:
33
+ return mainnet;
34
+ case ESupportedNetworks.ETHEREUM_SEPOLIA:
35
+ return sepolia;
36
+ case ESupportedNetworks.ARBITRUM_ONE:
37
+ return arbitrum;
38
+ case ESupportedNetworks.ARBITRUM_SEPOLIA:
39
+ return arbitrumSepolia;
40
+ case ESupportedNetworks.BASE_SEPOLIA:
41
+ return baseSepolia;
42
+ case ESupportedNetworks.LINEA_SEPOLIA:
43
+ return lineaSepolia;
44
+ case ESupportedNetworks.SCROLL_SEPOLIA:
45
+ return scrollSepolia;
46
+ case ESupportedNetworks.SCROLL:
47
+ return scroll;
48
+ case ESupportedNetworks.BASE:
49
+ return base;
50
+ case ESupportedNetworks.HOLESKY:
51
+ return holesky;
52
+ case ESupportedNetworks.LINEA:
53
+ return linea;
54
+ case ESupportedNetworks.BSC:
55
+ return bsc;
56
+ case ESupportedNetworks.GNOSIS_CHAIN:
57
+ return gnosis;
58
+ case ESupportedNetworks.POLYGON:
59
+ return polygon;
60
+ case ESupportedNetworks.OPTIMISM:
61
+ return optimism;
62
+ case ESupportedNetworks.OPTIMISM_SEPOLIA:
63
+ return optimismSepolia;
64
+ case ESupportedNetworks.LOCALHOST:
65
+ return localhost;
66
+ default:
67
+ throw new Error(ErrorCodes.UNSUPPORTED_NETWORK.toString());
68
+ }
69
+ };
70
+ //# sourceMappingURL=networks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networks.js","sourceRoot":"","sources":["../../../ts/common/networks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,IAAI,EACJ,WAAW,EACX,GAAG,EAEH,MAAM,EACN,OAAO,EACP,KAAK,EACL,YAAY,EACZ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,eAAe,EACf,OAAO,EACP,MAAM,EACN,aAAa,EACb,OAAO,GACR,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,CAAN,IAAY,kBAmBX;AAnBD,WAAY,kBAAkB;IAC5B,0CAAoB,CAAA;IACpB,2CAAqB,CAAA;IACrB,2DAAqC,CAAA;IACrC,iCAAW,CAAA;IACX,2CAAqB,CAAA;IACrB,6CAAuB,CAAA;IACvB,uCAAiB,CAAA;IACjB,mDAA6B,CAAA;IAC7B,yCAAmB,CAAA;IACnB,qDAA+B,CAAA;IAC/B,mDAA6B,CAAA;IAC7B,kDAA4B,CAAA;IAC5B,2DAAqC,CAAA;IACrC,qCAAe,CAAA;IACf,mCAAa,CAAA;IACb,uDAAiC,CAAA;IACjC,uCAAiB,CAAA;IACjB,6CAAuB,CAAA;AACzB,CAAC,EAnBW,kBAAkB,KAAlB,kBAAkB,QAmB7B;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAA2B,EAAS,EAAE;IAC9D,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,kBAAkB,CAAC,QAAQ;YAC9B,OAAO,OAAO,CAAC;QACjB,KAAK,kBAAkB,CAAC,gBAAgB;YACtC,OAAO,OAAO,CAAC;QACjB,KAAK,kBAAkB,CAAC,YAAY;YAClC,OAAO,QAAQ,CAAC;QAClB,KAAK,kBAAkB,CAAC,gBAAgB;YACtC,OAAO,eAAe,CAAC;QACzB,KAAK,kBAAkB,CAAC,YAAY;YAClC,OAAO,WAAW,CAAC;QACrB,KAAK,kBAAkB,CAAC,aAAa;YACnC,OAAO,YAAY,CAAC;QACtB,KAAK,kBAAkB,CAAC,cAAc;YACpC,OAAO,aAAa,CAAC;QACvB,KAAK,kBAAkB,CAAC,MAAM;YAC5B,OAAO,MAAM,CAAC;QAChB,KAAK,kBAAkB,CAAC,IAAI;YAC1B,OAAO,IAAI,CAAC;QACd,KAAK,kBAAkB,CAAC,OAAO;YAC7B,OAAO,OAAO,CAAC;QACjB,KAAK,kBAAkB,CAAC,KAAK;YAC3B,OAAO,KAAK,CAAC;QACf,KAAK,kBAAkB,CAAC,GAAG;YACzB,OAAO,GAAG,CAAC;QACb,KAAK,kBAAkB,CAAC,YAAY;YAClC,OAAO,MAAM,CAAC;QAChB,KAAK,kBAAkB,CAAC,OAAO;YAC7B,OAAO,OAAO,CAAC;QACjB,KAAK,kBAAkB,CAAC,QAAQ;YAC9B,OAAO,QAAQ,CAAC;QAClB,KAAK,kBAAkB,CAAC,gBAAgB;YACtC,OAAO,eAAe,CAAC;QACzB,KAAK,kBAAkB,CAAC,SAAS;YAC/B,OAAO,SAAS,CAAC;QACnB;YACE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { CreateKernelAccountReturnType, KernelAccountClient } from "@zerodev/sdk";
2
+ import { BundlerClient } from "viem/account-abstraction";
3
+ import type { Chain, HttpTransport, PublicClient, Transport } from "viem";
4
+ export type KernelClientType = KernelAccountClient<Transport, Chain, CreateKernelAccountReturnType>;
5
+ export type BundlerClientType = BundlerClient;
6
+ export type PublicClientType = PublicClient<Transport, Chain>;
7
+ export type PublicClientHTTPType = PublicClient<HttpTransport, Chain>;
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAE1E,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,6BAA6B,CAAC,CAAC;AAEpG,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAE9C,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAE9D,MAAM,MAAM,oBAAoB,GAAG,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC"}