@maci-protocol/coordinator 0.0.0-ci.533e19d

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 (257) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/LICENSE +22 -0
  3. package/README.md +42 -0
  4. package/build/hardhat.config.cjs +31 -0
  5. package/build/hardhat.config.cjs.map +1 -0
  6. package/build/hardhat.config.d.cts +24 -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 +8 -0
  21. package/build/tests/constants.d.ts.map +1 -0
  22. package/build/tests/constants.js +10 -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 +103 -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 +234 -0
  31. package/build/tests/e2e.deploy.test.js.map +1 -0
  32. package/build/tests/utils.d.ts +14 -0
  33. package/build/tests/utils.d.ts.map +1 -0
  34. package/build/tests/utils.js +44 -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 +79 -0
  51. package/build/ts/common/__tests__/common.test.js.map +1 -0
  52. package/build/ts/common/accountAbstraction.d.ts +55 -0
  53. package/build/ts/common/accountAbstraction.d.ts.map +1 -0
  54. package/build/ts/common/accountAbstraction.js +110 -0
  55. package/build/ts/common/accountAbstraction.js.map +1 -0
  56. package/build/ts/common/errors.d.ts +33 -0
  57. package/build/ts/common/errors.d.ts.map +1 -0
  58. package/build/ts/common/errors.js +34 -0
  59. package/build/ts/common/errors.js.map +1 -0
  60. package/build/ts/common/index.d.ts +4 -0
  61. package/build/ts/common/index.d.ts.map +1 -0
  62. package/build/ts/common/index.js +4 -0
  63. package/build/ts/common/index.js.map +1 -0
  64. package/build/ts/common/networks.d.ts +29 -0
  65. package/build/ts/common/networks.d.ts.map +1 -0
  66. package/build/ts/common/networks.js +70 -0
  67. package/build/ts/common/networks.js.map +1 -0
  68. package/build/ts/common/types.d.ts +9 -0
  69. package/build/ts/common/types.d.ts.map +1 -0
  70. package/build/ts/common/types.js +2 -0
  71. package/build/ts/common/types.js.map +1 -0
  72. package/build/ts/crypto/__tests__/crypto.service.test.d.ts +2 -0
  73. package/build/ts/crypto/__tests__/crypto.service.test.d.ts.map +1 -0
  74. package/build/ts/crypto/__tests__/crypto.service.test.js +26 -0
  75. package/build/ts/crypto/__tests__/crypto.service.test.js.map +1 -0
  76. package/build/ts/crypto/crypto.module.d.ts +3 -0
  77. package/build/ts/crypto/crypto.module.d.ts.map +1 -0
  78. package/build/ts/crypto/crypto.module.js +18 -0
  79. package/build/ts/crypto/crypto.module.js.map +1 -0
  80. package/build/ts/crypto/crypto.service.d.ts +31 -0
  81. package/build/ts/crypto/crypto.service.d.ts.map +1 -0
  82. package/build/ts/crypto/crypto.service.js +68 -0
  83. package/build/ts/crypto/crypto.service.js.map +1 -0
  84. package/build/ts/deployer/__tests__/deployer.controller.test.d.ts +2 -0
  85. package/build/ts/deployer/__tests__/deployer.controller.test.d.ts.map +1 -0
  86. package/build/ts/deployer/__tests__/deployer.controller.test.js +84 -0
  87. package/build/ts/deployer/__tests__/deployer.controller.test.js.map +1 -0
  88. package/build/ts/deployer/__tests__/deployer.service.test.d.ts +2 -0
  89. package/build/ts/deployer/__tests__/deployer.service.test.d.ts.map +1 -0
  90. package/build/ts/deployer/__tests__/deployer.service.test.js +425 -0
  91. package/build/ts/deployer/__tests__/deployer.service.test.js.map +1 -0
  92. package/build/ts/deployer/__tests__/utils.d.ts +36 -0
  93. package/build/ts/deployer/__tests__/utils.d.ts.map +1 -0
  94. package/build/ts/deployer/__tests__/utils.js +96 -0
  95. package/build/ts/deployer/__tests__/utils.js.map +1 -0
  96. package/build/ts/deployer/constants.d.ts +13 -0
  97. package/build/ts/deployer/constants.d.ts.map +1 -0
  98. package/build/ts/deployer/constants.js +13 -0
  99. package/build/ts/deployer/constants.js.map +1 -0
  100. package/build/ts/deployer/deployer.controller.d.ts +34 -0
  101. package/build/ts/deployer/deployer.controller.d.ts.map +1 -0
  102. package/build/ts/deployer/deployer.controller.js +89 -0
  103. package/build/ts/deployer/deployer.controller.js.map +1 -0
  104. package/build/ts/deployer/deployer.module.d.ts +3 -0
  105. package/build/ts/deployer/deployer.module.d.ts.map +1 -0
  106. package/build/ts/deployer/deployer.module.js +23 -0
  107. package/build/ts/deployer/deployer.module.js.map +1 -0
  108. package/build/ts/deployer/deployer.service.d.ts +112 -0
  109. package/build/ts/deployer/deployer.service.d.ts.map +1 -0
  110. package/build/ts/deployer/deployer.service.js +614 -0
  111. package/build/ts/deployer/deployer.service.js.map +1 -0
  112. package/build/ts/deployer/dto.d.ts +46 -0
  113. package/build/ts/deployer/dto.d.ts.map +1 -0
  114. package/build/ts/deployer/dto.js +117 -0
  115. package/build/ts/deployer/dto.js.map +1 -0
  116. package/build/ts/deployer/types.d.ts +293 -0
  117. package/build/ts/deployer/types.d.ts.map +1 -0
  118. package/build/ts/deployer/types.js +2 -0
  119. package/build/ts/deployer/types.js.map +1 -0
  120. package/build/ts/deployer/utils.d.ts +8 -0
  121. package/build/ts/deployer/utils.d.ts.map +1 -0
  122. package/build/ts/deployer/utils.js +9 -0
  123. package/build/ts/deployer/utils.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 +76 -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 +62 -0
  133. package/build/ts/file/file.service.d.ts.map +1 -0
  134. package/build/ts/file/file.service.js +115 -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 +89 -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 +61 -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 +128 -0
  163. package/build/ts/proof/__tests__/proof.service.test.js.map +1 -0
  164. package/build/ts/proof/dto.d.ts +73 -0
  165. package/build/ts/proof/dto.d.ts.map +1 -0
  166. package/build/ts/proof/dto.js +255 -0
  167. package/build/ts/proof/dto.js.map +1 -0
  168. package/build/ts/proof/proof.controller.d.ts +46 -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 +246 -0
  183. package/build/ts/proof/proof.service.js.map +1 -0
  184. package/build/ts/proof/types.d.ts +140 -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/sessionKeys.controller.d.ts +26 -0
  205. package/build/ts/sessionKeys/sessionKeys.controller.d.ts.map +1 -0
  206. package/build/ts/sessionKeys/sessionKeys.controller.js +74 -0
  207. package/build/ts/sessionKeys/sessionKeys.controller.js.map +1 -0
  208. package/build/ts/sessionKeys/sessionKeys.module.d.ts +3 -0
  209. package/build/ts/sessionKeys/sessionKeys.module.d.ts.map +1 -0
  210. package/build/ts/sessionKeys/sessionKeys.module.js +23 -0
  211. package/build/ts/sessionKeys/sessionKeys.module.js.map +1 -0
  212. package/build/ts/sessionKeys/sessionKeys.service.d.ts +50 -0
  213. package/build/ts/sessionKeys/sessionKeys.service.d.ts.map +1 -0
  214. package/build/ts/sessionKeys/sessionKeys.service.js +104 -0
  215. package/build/ts/sessionKeys/sessionKeys.service.js.map +1 -0
  216. package/build/ts/sessionKeys/types.d.ts +11 -0
  217. package/build/ts/sessionKeys/types.d.ts.map +1 -0
  218. package/build/ts/sessionKeys/types.js +2 -0
  219. package/build/ts/sessionKeys/types.js.map +1 -0
  220. package/build/ts/subgraph/__tests__/subgraph.controller.test.d.ts +2 -0
  221. package/build/ts/subgraph/__tests__/subgraph.controller.test.d.ts.map +1 -0
  222. package/build/ts/subgraph/__tests__/subgraph.controller.test.js +50 -0
  223. package/build/ts/subgraph/__tests__/subgraph.controller.test.js.map +1 -0
  224. package/build/ts/subgraph/__tests__/subgraph.gateway.test.d.ts +2 -0
  225. package/build/ts/subgraph/__tests__/subgraph.gateway.test.d.ts.map +1 -0
  226. package/build/ts/subgraph/__tests__/subgraph.gateway.test.js +83 -0
  227. package/build/ts/subgraph/__tests__/subgraph.gateway.test.js.map +1 -0
  228. package/build/ts/subgraph/__tests__/subgraph.service.test.d.ts +2 -0
  229. package/build/ts/subgraph/__tests__/subgraph.service.test.d.ts.map +1 -0
  230. package/build/ts/subgraph/__tests__/subgraph.service.test.js +58 -0
  231. package/build/ts/subgraph/__tests__/subgraph.service.test.js.map +1 -0
  232. package/build/ts/subgraph/dto.d.ts +27 -0
  233. package/build/ts/subgraph/dto.d.ts.map +1 -0
  234. package/build/ts/subgraph/dto.js +83 -0
  235. package/build/ts/subgraph/dto.js.map +1 -0
  236. package/build/ts/subgraph/subgraph.controller.d.ts +24 -0
  237. package/build/ts/subgraph/subgraph.controller.d.ts.map +1 -0
  238. package/build/ts/subgraph/subgraph.controller.js +66 -0
  239. package/build/ts/subgraph/subgraph.controller.js.map +1 -0
  240. package/build/ts/subgraph/subgraph.gateway.d.ts +35 -0
  241. package/build/ts/subgraph/subgraph.gateway.d.ts.map +1 -0
  242. package/build/ts/subgraph/subgraph.gateway.js +93 -0
  243. package/build/ts/subgraph/subgraph.gateway.js.map +1 -0
  244. package/build/ts/subgraph/subgraph.module.d.ts +3 -0
  245. package/build/ts/subgraph/subgraph.module.d.ts.map +1 -0
  246. package/build/ts/subgraph/subgraph.module.js +23 -0
  247. package/build/ts/subgraph/subgraph.module.js.map +1 -0
  248. package/build/ts/subgraph/subgraph.service.d.ts +20 -0
  249. package/build/ts/subgraph/subgraph.service.d.ts.map +1 -0
  250. package/build/ts/subgraph/subgraph.service.js +106 -0
  251. package/build/ts/subgraph/subgraph.service.js.map +1 -0
  252. package/build/ts/subgraph/types.d.ts +93 -0
  253. package/build/ts/subgraph/types.d.ts.map +1 -0
  254. package/build/ts/subgraph/types.js +24 -0
  255. package/build/ts/subgraph/types.js.map +1 -0
  256. package/build/tsconfig.build.tsbuildinfo +1 -0
  257. package/package.json +124 -0
@@ -0,0 +1,44 @@
1
+ import { Test } from "@nestjs/testing";
2
+ import { zeroAddress } from "viem";
3
+ import { SessionKeysController } from "../sessionKeys.controller";
4
+ import { SessionKeysService } from "../sessionKeys.service";
5
+ describe("SessionKeysController", () => {
6
+ let sessionKeysController;
7
+ const mockSessionKeysService = {
8
+ generateSessionKey: jest.fn(),
9
+ deactivateSessionKey: jest.fn(),
10
+ };
11
+ const defaultGenerateSessionKeyReturn = {
12
+ sessionKeyAddress: zeroAddress,
13
+ };
14
+ beforeEach(async () => {
15
+ const app = await Test.createTestingModule({
16
+ controllers: [SessionKeysController],
17
+ })
18
+ .useMocker((token) => {
19
+ if (token === SessionKeysService) {
20
+ mockSessionKeysService.generateSessionKey.mockResolvedValue(defaultGenerateSessionKeyReturn);
21
+ return mockSessionKeysService;
22
+ }
23
+ return jest.fn();
24
+ })
25
+ .compile();
26
+ sessionKeysController = app.get(SessionKeysController);
27
+ });
28
+ afterEach(() => {
29
+ jest.clearAllMocks();
30
+ });
31
+ describe("v1/session-keys/generate", () => {
32
+ test("should return a session key address", () => {
33
+ const data = sessionKeysController.generateSessionKey();
34
+ expect(data).toStrictEqual(defaultGenerateSessionKeyReturn);
35
+ });
36
+ });
37
+ describe("v1/session-keys/delete", () => {
38
+ test("should delete a session key", () => {
39
+ sessionKeysController.deactivateSessionKey({ sessionKeyAddress: zeroAddress });
40
+ expect(mockSessionKeysService.deactivateSessionKey).toHaveBeenCalledWith(zeroAddress);
41
+ });
42
+ });
43
+ });
44
+ //# sourceMappingURL=sessionKeys.controller.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionKeys.controller.test.js","sourceRoot":"","sources":["../../../../ts/sessionKeys/__tests__/sessionKeys.controller.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAInC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAI,qBAA4C,CAAC;IAEjD,MAAM,sBAAsB,GAAG;QAC7B,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC7B,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE;KAChC,CAAC;IAEF,MAAM,+BAA+B,GAA8B;QACjE,iBAAiB,EAAE,WAAW;KAC/B,CAAC;IAEF,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC;YACzC,WAAW,EAAE,CAAC,qBAAqB,CAAC;SACrC,CAAC;aACC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,IAAI,KAAK,KAAK,kBAAkB,EAAE,CAAC;gBACjC,sBAAsB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,CAAC;gBAC7F,OAAO,sBAAsB,CAAC;YAChC,CAAC;YAED,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;QACnB,CAAC,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,qBAAqB,GAAG,GAAG,CAAC,GAAG,CAAwB,qBAAqB,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC/C,MAAM,IAAI,GAAG,qBAAqB,CAAC,kBAAkB,EAAE,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,+BAA+B,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACvC,qBAAqB,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC,CAAC;YAC/E,MAAM,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sessionKeys.service.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionKeys.service.test.d.ts","sourceRoot":"","sources":["../../../../ts/sessionKeys/__tests__/sessionKeys.service.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,61 @@
1
+ import dotenv from "dotenv";
2
+ import { zeroAddress } from "viem";
3
+ import { ErrorCodes, ESupportedNetworks } from "../../common";
4
+ import { FileService } from "../../file/file.service";
5
+ import { SessionKeysService } from "../sessionKeys.service";
6
+ import { generateApproval } from "./utils";
7
+ dotenv.config();
8
+ describe("SessionKeysService", () => {
9
+ const fileService = new FileService();
10
+ let sessionKeysService;
11
+ beforeAll(() => {
12
+ sessionKeysService = new SessionKeysService(fileService);
13
+ });
14
+ describe("generateSessionKey", () => {
15
+ test("should generate and store a session key", async () => {
16
+ const sessionKeyAddress = await sessionKeysService.generateSessionKey();
17
+ expect(sessionKeyAddress).toBeDefined();
18
+ expect(sessionKeyAddress).not.toEqual(zeroAddress);
19
+ const sessionKey = fileService.getSessionKey(sessionKeyAddress.sessionKeyAddress);
20
+ expect(sessionKey).toBeDefined();
21
+ });
22
+ });
23
+ describe("deactivateSessionKey", () => {
24
+ test("should delete a session key", async () => {
25
+ const sessionKeyAddress = await sessionKeysService.generateSessionKey();
26
+ expect(sessionKeyAddress).toBeDefined();
27
+ expect(sessionKeyAddress).not.toEqual(zeroAddress);
28
+ const sessionKey = fileService.getSessionKey(sessionKeyAddress.sessionKeyAddress);
29
+ expect(sessionKey).toBeDefined();
30
+ sessionKeysService.deactivateSessionKey(sessionKeyAddress.sessionKeyAddress);
31
+ const sessionKeyDeleted = fileService.getSessionKey(sessionKeyAddress.sessionKeyAddress);
32
+ expect(sessionKeyDeleted).toBeUndefined();
33
+ });
34
+ });
35
+ describe("generateClientFromSessionKey", () => {
36
+ test("should fail to generate a client with an invalid approval", async () => {
37
+ const sessionKeyAddress = await sessionKeysService.generateSessionKey();
38
+ await expect(sessionKeysService.generateClientFromSessionKey(sessionKeyAddress.sessionKeyAddress, "0xinvalid", ESupportedNetworks.OPTIMISM_SEPOLIA)).rejects.toThrow(ErrorCodes.INVALID_APPROVAL.toString());
39
+ });
40
+ test("should throw when given a non existent session key address", async () => {
41
+ const approval = await generateApproval(zeroAddress);
42
+ await expect(sessionKeysService.generateClientFromSessionKey(zeroAddress, approval, ESupportedNetworks.OPTIMISM_SEPOLIA)).rejects.toThrow(ErrorCodes.SESSION_KEY_NOT_FOUND.toString());
43
+ });
44
+ test("should generate a client from a session key", async () => {
45
+ jest.mock("@zerodev/sdk", () => ({
46
+ ...jest.requireActual("@zerodev/sdk"),
47
+ createKernelAccountClient: jest.fn().mockReturnValue({ mockedKernelClient: true }),
48
+ }));
49
+ const mockGenerateClientFromSessionKey = jest.fn().mockResolvedValue({ mockedClient: true });
50
+ jest
51
+ .spyOn(SessionKeysService.prototype, "generateClientFromSessionKey")
52
+ .mockImplementation(mockGenerateClientFromSessionKey);
53
+ const sessionKeyAddress = await sessionKeysService.generateSessionKey();
54
+ const approval = await generateApproval(sessionKeyAddress.sessionKeyAddress);
55
+ const client = await sessionKeysService.generateClientFromSessionKey(sessionKeyAddress.sessionKeyAddress, approval, ESupportedNetworks.OPTIMISM_SEPOLIA);
56
+ expect(mockGenerateClientFromSessionKey).toHaveBeenCalledWith(sessionKeyAddress.sessionKeyAddress, approval, ESupportedNetworks.OPTIMISM_SEPOLIA);
57
+ expect(client).toEqual({ mockedClient: true });
58
+ });
59
+ });
60
+ });
61
+ //# sourceMappingURL=sessionKeys.service.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionKeys.service.test.js","sourceRoot":"","sources":["../../../../ts/sessionKeys/__tests__/sessionKeys.service.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type Policy } from "@zerodev/permissions";
2
+ import { CreateKernelAccountReturnType } from "@zerodev/sdk";
3
+ import { type Hex } from "viem";
4
+ export declare const ENTRY_POINT: import("@zerodev/sdk/types").EntryPointType<"0.7">;
5
+ export declare const KERNEL_VERSION: import("@zerodev/sdk/types").KERNEL_V3_VERSION_TYPE;
6
+ /**
7
+ * Generate a timestamp policy
8
+ * @param endTime - The end time of the policy
9
+ * @param start - The start time of the policy
10
+ * @returns The timestamp policy
11
+ */
12
+ export declare const generateTimestampPolicy: (endTime: number, start?: number) => Policy;
13
+ /**
14
+ * Get smart contract kernel account
15
+ * @param sessionKeyAddress - the session key address
16
+ * @returns - the kernel account
17
+ */
18
+ export declare const getKernelAccount: (sessionKeyAddress: Hex) => Promise<CreateKernelAccountReturnType>;
19
+ /**
20
+ * Generate an approval for a session key
21
+ * @param sessionKeyAddress - the session key address
22
+ * @returns - the approval
23
+ */
24
+ export declare const generateApproval: (sessionKeyAddress: Hex) => Promise<string>;
25
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../ts/sessionKeys/__tests__/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAqD,MAAM,sBAAsB,CAAC;AAGtG,OAAO,EAA8C,6BAA6B,EAAE,MAAM,cAAc,CAAC;AAGzG,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAQhC,eAAO,MAAM,WAAW,oDAAuB,CAAC;AAChD,eAAO,MAAM,cAAc,qDAAc,CAAC;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,KAAG,MAItE,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAU,mBAAmB,GAAG,KAAG,OAAO,CAAC,6BAA6B,CA6BpG,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAU,mBAAmB,GAAG,KAAG,OAAO,CAAC,MAAM,CAG7E,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { signerToEcdsaValidator } from "@zerodev/ecdsa-validator";
2
+ import { serializePermissionAccount, toPermissionValidator } from "@zerodev/permissions";
3
+ import { toSudoPolicy, toTimestampPolicy } from "@zerodev/permissions/policies";
4
+ import { toECDSASigner } from "@zerodev/permissions/signers";
5
+ import { addressToEmptyAccount, createKernelAccount } from "@zerodev/sdk";
6
+ import { getEntryPoint, KERNEL_V3_1 } from "@zerodev/sdk/constants";
7
+ import dotenv from "dotenv";
8
+ import { privateKeyToAccount } from "viem/accounts";
9
+ import { ESupportedNetworks } from "../../common";
10
+ import { getPublicClient } from "../../common/accountAbstraction";
11
+ dotenv.config();
12
+ export const ENTRY_POINT = getEntryPoint("0.7");
13
+ export const KERNEL_VERSION = KERNEL_V3_1;
14
+ /**
15
+ * Generate a timestamp policy
16
+ * @param endTime - The end time of the policy
17
+ * @param start - The start time of the policy
18
+ * @returns The timestamp policy
19
+ */
20
+ export const generateTimestampPolicy = (endTime, start) => toTimestampPolicy({
21
+ validAfter: start,
22
+ validUntil: endTime,
23
+ });
24
+ /**
25
+ * Get smart contract kernel account
26
+ * @param sessionKeyAddress - the session key address
27
+ * @returns - the kernel account
28
+ */
29
+ export const getKernelAccount = async (sessionKeyAddress) => {
30
+ const publicClient = getPublicClient(ESupportedNetworks.OPTIMISM_SEPOLIA);
31
+ const sessionKeySigner = privateKeyToAccount(process.env.TEST_PRIVATE_KEY);
32
+ const ecdsaValidator = await signerToEcdsaValidator(publicClient, {
33
+ signer: sessionKeySigner,
34
+ entryPoint: ENTRY_POINT,
35
+ kernelVersion: KERNEL_VERSION,
36
+ });
37
+ const emptyAccount = addressToEmptyAccount(sessionKeyAddress);
38
+ const emptySessionKeySigner = await toECDSASigner({ signer: emptyAccount });
39
+ const permissionPlugin = await toPermissionValidator(publicClient, {
40
+ entryPoint: ENTRY_POINT,
41
+ kernelVersion: KERNEL_VERSION,
42
+ signer: emptySessionKeySigner,
43
+ policies: [toSudoPolicy({})],
44
+ });
45
+ const sessionKeyAccount = await createKernelAccount(publicClient, {
46
+ entryPoint: ENTRY_POINT,
47
+ kernelVersion: KERNEL_VERSION,
48
+ plugins: {
49
+ sudo: ecdsaValidator,
50
+ regular: permissionPlugin,
51
+ },
52
+ });
53
+ return sessionKeyAccount;
54
+ };
55
+ /**
56
+ * Generate an approval for a session key
57
+ * @param sessionKeyAddress - the session key address
58
+ * @returns - the approval
59
+ */
60
+ export const generateApproval = async (sessionKeyAddress) => {
61
+ const sessionKeyAccount = await getKernelAccount(sessionKeyAddress);
62
+ return serializePermissionAccount(sessionKeyAccount);
63
+ };
64
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../ts/sessionKeys/__tests__/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAe,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAiC,MAAM,cAAc,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAe,EAAE,KAAc,EAAU,EAAE,CACjF,iBAAiB,CAAC;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,OAAO;CACpB,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,iBAAsB,EAA0C,EAAE;IACvG,MAAM,YAAY,GAAG,eAAe,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAE1E,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAwB,CAAC,CAAC;IACnF,MAAM,cAAc,GAAG,MAAM,sBAAsB,CAAC,YAAY,EAAE;QAChE,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,WAAW;QACvB,aAAa,EAAE,cAAc;KAC9B,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IAC9D,MAAM,qBAAqB,GAAG,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAE5E,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,CAAC,YAAY,EAAE;QACjE,UAAU,EAAE,WAAW;QACvB,aAAa,EAAE,cAAc;QAC7B,MAAM,EAAE,qBAAqB;QAC7B,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;KAC7B,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,MAAM,mBAAmB,CAAC,YAAY,EAAE;QAChE,UAAU,EAAE,WAAW;QACvB,aAAa,EAAE,cAAc;QAC7B,OAAO,EAAE;YACP,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,gBAAgB;SAC1B;KACF,CAAC,CAAC;IACH,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,iBAAsB,EAAmB,EAAE;IAChF,MAAM,iBAAiB,GAAG,MAAM,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACpE,OAAO,0BAA0B,CAAC,iBAAiB,CAAC,CAAC;AACvD,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Hex } from "viem";
2
+ /**
3
+ * Data transfer object for Deactivate session key
4
+ */
5
+ export declare class DeactivateSessionKeyDto {
6
+ /**
7
+ * Session key address
8
+ */
9
+ sessionKeyAddress: Hex;
10
+ }
11
+ //# sourceMappingURL=dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../../ts/sessionKeys/dto.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC;;GAEG;AACH,qBAAa,uBAAuB;IAClC;;OAEG;IAMH,iBAAiB,EAAG,GAAG,CAAC;CACzB"}
@@ -0,0 +1,29 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { ApiProperty } from "@nestjs/swagger";
11
+ import { IsEthereumAddress } from "class-validator";
12
+ /**
13
+ * Data transfer object for Deactivate session key
14
+ */
15
+ export class DeactivateSessionKeyDto {
16
+ /**
17
+ * Session key address
18
+ */
19
+ sessionKeyAddress;
20
+ }
21
+ __decorate([
22
+ ApiProperty({
23
+ description: "Session key address",
24
+ type: String,
25
+ }),
26
+ IsEthereumAddress(),
27
+ __metadata("design:type", String)
28
+ ], DeactivateSessionKeyDto.prototype, "sessionKeyAddress", void 0);
29
+ //# sourceMappingURL=dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dto.js","sourceRoot":"","sources":["../../../ts/sessionKeys/dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIpD;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAClC;;OAEG;IAMH,iBAAiB,CAAO;CACzB;AADC;IALC,WAAW,CAAC;QACX,WAAW,EAAE,qBAAqB;QAClC,IAAI,EAAE,MAAM;KACb,CAAC;IACD,iBAAiB,EAAE;;kEACI"}
@@ -0,0 +1,26 @@
1
+ import type { IGenerateSessionKeyReturn } from "./types";
2
+ import { DeactivateSessionKeyDto } from "./dto";
3
+ import { SessionKeysService } from "./sessionKeys.service";
4
+ export declare class SessionKeysController {
5
+ private readonly sessionKeysService;
6
+ /**
7
+ * Initialize SessionKeysController
8
+ *
9
+ * @param sessionKeysService - session keys service
10
+ */
11
+ constructor(sessionKeysService: SessionKeysService);
12
+ /**
13
+ * Generate a session key api method
14
+ *
15
+ * @returns generated session key address
16
+ */
17
+ generateSessionKey(): Promise<IGenerateSessionKeyReturn>;
18
+ /**
19
+ * Delete a session key api method
20
+ *
21
+ * @param args - delete session key dto
22
+ * @returns deleted session key address
23
+ */
24
+ deactivateSessionKey(args: DeactivateSessionKeyDto): void;
25
+ }
26
+ //# sourceMappingURL=sessionKeys.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionKeys.controller.d.ts","sourceRoot":"","sources":["../../../ts/sessionKeys/sessionKeys.controller.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAIzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,qBAIa,qBAAqB;IAMpB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAL/C;;;;OAIG;gBAC0B,kBAAkB,EAAE,kBAAkB;IAEnE;;;;OAIG;IAKG,kBAAkB,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAI9D;;;;;OAKG;IAMH,oBAAoB,CAAS,IAAI,EAAE,uBAAuB,GAAG,IAAI;CAGlE"}
@@ -0,0 +1,74 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { Body, Controller, Delete, Get, HttpStatus, UseGuards } from "@nestjs/common";
14
+ import { ApiBearerAuth, ApiBody, ApiResponse, ApiTags } from "@nestjs/swagger";
15
+ import { AccountSignatureGuard } from "../auth/AccountSignatureGuard.service";
16
+ import { DeactivateSessionKeyDto } from "./dto";
17
+ import { SessionKeysService } from "./sessionKeys.service";
18
+ let SessionKeysController = class SessionKeysController {
19
+ sessionKeysService;
20
+ /**
21
+ * Initialize SessionKeysController
22
+ *
23
+ * @param sessionKeysService - session keys service
24
+ */
25
+ constructor(sessionKeysService) {
26
+ this.sessionKeysService = sessionKeysService;
27
+ }
28
+ /**
29
+ * Generate a session key api method
30
+ *
31
+ * @returns generated session key address
32
+ */
33
+ async generateSessionKey() {
34
+ return this.sessionKeysService.generateSessionKey();
35
+ }
36
+ /**
37
+ * Delete a session key api method
38
+ *
39
+ * @param args - delete session key dto
40
+ * @returns deleted session key address
41
+ */
42
+ deactivateSessionKey(args) {
43
+ this.sessionKeysService.deactivateSessionKey(args.sessionKeyAddress);
44
+ }
45
+ };
46
+ __decorate([
47
+ ApiResponse({ status: HttpStatus.OK, description: "The session key was successfully generated" }),
48
+ ApiResponse({ status: HttpStatus.FORBIDDEN, description: "Forbidden" }),
49
+ ApiResponse({ status: HttpStatus.BAD_REQUEST, description: "BadRequest" }),
50
+ Get("generate"),
51
+ __metadata("design:type", Function),
52
+ __metadata("design:paramtypes", []),
53
+ __metadata("design:returntype", Promise)
54
+ ], SessionKeysController.prototype, "generateSessionKey", null);
55
+ __decorate([
56
+ ApiBody({ type: DeactivateSessionKeyDto }),
57
+ ApiResponse({ status: HttpStatus.CREATED, description: "The session key was successfully deactivated" }),
58
+ ApiResponse({ status: HttpStatus.FORBIDDEN, description: "Forbidden" }),
59
+ ApiResponse({ status: HttpStatus.BAD_REQUEST, description: "BadRequest" }),
60
+ Delete("delete"),
61
+ __param(0, Body()),
62
+ __metadata("design:type", Function),
63
+ __metadata("design:paramtypes", [DeactivateSessionKeyDto]),
64
+ __metadata("design:returntype", void 0)
65
+ ], SessionKeysController.prototype, "deactivateSessionKey", null);
66
+ SessionKeysController = __decorate([
67
+ ApiTags("v1/session-keys"),
68
+ ApiBearerAuth(),
69
+ Controller("v1/session-keys"),
70
+ UseGuards(AccountSignatureGuard),
71
+ __metadata("design:paramtypes", [SessionKeysService])
72
+ ], SessionKeysController);
73
+ export { SessionKeysController };
74
+ //# sourceMappingURL=sessionKeys.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionKeys.controller.js","sourceRoot":"","sources":["../../../ts/sessionKeys/sessionKeys.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAMpD,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAMH;IAL7B;;;;OAIG;IACH,YAA6B,kBAAsC;QAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;IAAG,CAAC;IAEvE;;;;OAIG;IAKG,AAAN,KAAK,CAAC,kBAAkB;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IAMH,oBAAoB,CAAS,IAA6B;QACxD,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACvE,CAAC;CACF,CAAA;AAlBO;IAJL,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;IACjG,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IACvE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;IAC1E,GAAG,CAAC,UAAU,CAAC;;;;+DAGf;AAaD;IALC,OAAO,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,8CAA8C,EAAE,CAAC;IACxG,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IACvE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;IAC1E,MAAM,CAAC,QAAQ,CAAC;IACK,WAAA,IAAI,EAAE,CAAA;;qCAAO,uBAAuB;;iEAEzD;AAlCU,qBAAqB;IAJjC,OAAO,CAAC,iBAAiB,CAAC;IAC1B,aAAa,EAAE;IACf,UAAU,CAAC,iBAAiB,CAAC;IAC7B,SAAS,CAAC,qBAAqB,CAAC;qCAOkB,kBAAkB;GANxD,qBAAqB,CAmCjC"}
@@ -0,0 +1,3 @@
1
+ export declare class SessionKeysModule {
2
+ }
3
+ //# sourceMappingURL=sessionKeys.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionKeys.module.d.ts","sourceRoot":"","sources":["../../../ts/sessionKeys/sessionKeys.module.ts"],"names":[],"mappings":"AAQA,qBAMa,iBAAiB;CAAG"}
@@ -0,0 +1,23 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Module } from "@nestjs/common";
8
+ import { CryptoService } from "../crypto/crypto.service";
9
+ import { FileModule } from "../file/file.module";
10
+ import { SessionKeysController } from "./sessionKeys.controller";
11
+ import { SessionKeysService } from "./sessionKeys.service";
12
+ let SessionKeysModule = class SessionKeysModule {
13
+ };
14
+ SessionKeysModule = __decorate([
15
+ Module({
16
+ imports: [FileModule],
17
+ controllers: [SessionKeysController],
18
+ providers: [SessionKeysService, CryptoService],
19
+ exports: [SessionKeysService],
20
+ })
21
+ ], SessionKeysModule);
22
+ export { SessionKeysModule };
23
+ //# sourceMappingURL=sessionKeys.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionKeys.module.js","sourceRoot":"","sources":["../../../ts/sessionKeys/sessionKeys.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAQpD,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,iBAAiB;IAN7B,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,UAAU,CAAC;QACrB,WAAW,EAAE,CAAC,qBAAqB,CAAC;QACpC,SAAS,EAAE,CAAC,kBAAkB,EAAE,aAAa,CAAC;QAC9C,OAAO,EAAE,CAAC,kBAAkB,CAAC;KAC9B,CAAC;GACW,iBAAiB,CAAG"}
@@ -0,0 +1,50 @@
1
+ import { JsonRpcSigner } from "ethers";
2
+ import type { Hex } from "viem";
3
+ import { ESupportedNetworks, KernelClientType } from "../common";
4
+ import { FileService } from "../file/file.service";
5
+ import { IGenerateSessionKeyReturn } from "./types";
6
+ /**
7
+ * SessionKeysService is responsible for generating and managing session keys.
8
+ */
9
+ export declare class SessionKeysService {
10
+ private readonly fileService;
11
+ /**
12
+ * Logger
13
+ */
14
+ private readonly logger;
15
+ /**
16
+ * Create a new instance of SessionKeysService
17
+ *
18
+ * @param fileService - file service
19
+ */
20
+ constructor(fileService: FileService);
21
+ /**
22
+ * Generate a session key
23
+ *
24
+ * @returns session key address
25
+ */
26
+ generateSessionKey(): Promise<IGenerateSessionKeyReturn>;
27
+ /**
28
+ * Generate a KernelClient from a session key and an approval
29
+ *
30
+ * @param sessionKeyAddress - the address of the session key
31
+ * @param approval - the approval string
32
+ * @param chain - the chain to use
33
+ * @returns a KernelAccountClient
34
+ */
35
+ generateClientFromSessionKey(sessionKeyAddress: Hex, approval: string, chain: ESupportedNetworks): Promise<KernelClientType>;
36
+ /**
37
+ * Get a signer from a kernel client (that could be generated from a session key)
38
+ *
39
+ * @param kernelClient - kernel client
40
+ * @returns signer
41
+ */
42
+ getKernelClientSigner(kernelClient: KernelClientType): Promise<JsonRpcSigner>;
43
+ /**
44
+ * Deactivate a session key
45
+ *
46
+ * @param sessionKeyAddress - key address
47
+ */
48
+ deactivateSessionKey(sessionKeyAddress: Hex): void;
49
+ }
50
+ //# sourceMappingURL=sessionKeys.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionKeys.service.d.ts","sourceRoot":"","sources":["../../../ts/sessionKeys/sessionKeys.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGxD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,EAAc,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEpD;;GAEG;AACH,qBACa,kBAAkB;IAWjB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAVxC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;;;OAIG;gBAC0B,WAAW,EAAE,WAAW;IAIrD;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAiB9D;;;;;;;OAOG;IACG,4BAA4B,CAChC,iBAAiB,EAAE,GAAG,EACtB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,gBAAgB,CAAC;IAkB5B;;;;;OAKG;IACG,qBAAqB,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAOnF;;;;OAIG;IACH,oBAAoB,CAAC,iBAAiB,EAAE,GAAG,GAAG,IAAI;CAGnD"}
@@ -0,0 +1,104 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var SessionKeysService_1;
11
+ import { Injectable, Logger } from "@nestjs/common";
12
+ import { toECDSASigner } from "@zerodev/permissions/signers";
13
+ import { KernelEIP1193Provider } from "@zerodev/sdk";
14
+ import { BrowserProvider } from "ethers";
15
+ import { generatePrivateKey, privateKeyToAccount } from "viem/accounts";
16
+ import { ErrorCodes } from "../common";
17
+ import { getKernelClient } from "../common/accountAbstraction";
18
+ import { FileService } from "../file/file.service";
19
+ /**
20
+ * SessionKeysService is responsible for generating and managing session keys.
21
+ */
22
+ let SessionKeysService = SessionKeysService_1 = class SessionKeysService {
23
+ fileService;
24
+ /**
25
+ * Logger
26
+ */
27
+ logger;
28
+ /**
29
+ * Create a new instance of SessionKeysService
30
+ *
31
+ * @param fileService - file service
32
+ */
33
+ constructor(fileService) {
34
+ this.fileService = fileService;
35
+ this.logger = new Logger(SessionKeysService_1.name);
36
+ }
37
+ /**
38
+ * Generate a session key
39
+ *
40
+ * @returns session key address
41
+ */
42
+ async generateSessionKey() {
43
+ const sessionPrivateKey = generatePrivateKey();
44
+ const sessionKeySigner = await toECDSASigner({
45
+ signer: privateKeyToAccount(sessionPrivateKey),
46
+ });
47
+ const sessionKeyAddress = sessionKeySigner.account.address;
48
+ // save the key
49
+ this.fileService.storeSessionKey(sessionPrivateKey, sessionKeyAddress);
50
+ return {
51
+ sessionKeyAddress,
52
+ };
53
+ }
54
+ /**
55
+ * Generate a KernelClient from a session key and an approval
56
+ *
57
+ * @param sessionKeyAddress - the address of the session key
58
+ * @param approval - the approval string
59
+ * @param chain - the chain to use
60
+ * @returns a KernelAccountClient
61
+ */
62
+ async generateClientFromSessionKey(sessionKeyAddress, approval, chain) {
63
+ // retrieve the session key from the file service
64
+ const sessionKey = this.fileService.getSessionKey(sessionKeyAddress);
65
+ if (!sessionKey) {
66
+ this.logger.error(`Session key not found: ${sessionKeyAddress}`);
67
+ throw new Error(ErrorCodes.SESSION_KEY_NOT_FOUND.toString());
68
+ }
69
+ try {
70
+ const kernelClient = getKernelClient(sessionKey, approval, chain);
71
+ return kernelClient;
72
+ }
73
+ catch (error) {
74
+ this.logger.error(`Error: ${ErrorCodes.INVALID_APPROVAL}`, error);
75
+ throw new Error(ErrorCodes.INVALID_APPROVAL.toString());
76
+ }
77
+ }
78
+ /**
79
+ * Get a signer from a kernel client (that could be generated from a session key)
80
+ *
81
+ * @param kernelClient - kernel client
82
+ * @returns signer
83
+ */
84
+ async getKernelClientSigner(kernelClient) {
85
+ const kernelProvider = new KernelEIP1193Provider(kernelClient);
86
+ const ethersProvider = new BrowserProvider(kernelProvider);
87
+ const signer = await ethersProvider.getSigner();
88
+ return signer;
89
+ }
90
+ /**
91
+ * Deactivate a session key
92
+ *
93
+ * @param sessionKeyAddress - key address
94
+ */
95
+ deactivateSessionKey(sessionKeyAddress) {
96
+ this.fileService.deleteSessionKey(sessionKeyAddress);
97
+ }
98
+ };
99
+ SessionKeysService = SessionKeysService_1 = __decorate([
100
+ Injectable(),
101
+ __metadata("design:paramtypes", [FileService])
102
+ ], SessionKeysService);
103
+ export { SessionKeysService };
104
+ //# sourceMappingURL=sessionKeys.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionKeys.service.js","sourceRoot":"","sources":["../../../ts/sessionKeys/sessionKeys.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,eAAe,EAAiB,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAIxE,OAAO,EAAE,UAAU,EAAwC,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAInD;;GAEG;AAEI,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAWA;IAV7B;;OAEG;IACc,MAAM,CAAS;IAEhC;;;;OAIG;IACH,YAA6B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QACnD,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,oBAAkB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB;QACtB,MAAM,iBAAiB,GAAG,kBAAkB,EAAE,CAAC;QAE/C,MAAM,gBAAgB,GAAG,MAAM,aAAa,CAAC;YAC3C,MAAM,EAAE,mBAAmB,CAAC,iBAAiB,CAAC;SAC/C,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC;QAE3D,eAAe;QACf,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QAEvE,OAAO;YACL,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,4BAA4B,CAChC,iBAAsB,EACtB,QAAgB,EAChB,KAAyB;QAEzB,iDAAiD;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAErE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,iBAAiB,EAAE,CAAC,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAClE,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,UAAU,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,qBAAqB,CAAC,YAA8B;QACxD,MAAM,cAAc,GAAG,IAAI,qBAAqB,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,cAAc,GAAG,IAAI,eAAe,CAAC,cAAc,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAAC,iBAAsB;QACzC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACvD,CAAC;CACF,CAAA;AAxFY,kBAAkB;IAD9B,UAAU,EAAE;qCAY+B,WAAW;GAX1C,kBAAkB,CAwF9B"}
@@ -0,0 +1,11 @@
1
+ import type { Hex } from "viem";
2
+ /**
3
+ * Generate session key return type
4
+ */
5
+ export interface IGenerateSessionKeyReturn {
6
+ /**
7
+ * Session key address
8
+ */
9
+ sessionKeyAddress: Hex;
10
+ }
11
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/sessionKeys/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,iBAAiB,EAAE,GAAG,CAAC;CACxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../ts/sessionKeys/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=subgraph.controller.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subgraph.controller.test.d.ts","sourceRoot":"","sources":["../../../../ts/subgraph/__tests__/subgraph.controller.test.ts"],"names":[],"mappings":""}