@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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../ts/common/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=crypto.service.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.service.test.d.ts","sourceRoot":"","sources":["../../../../ts/crypto/__tests__/crypto.service.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import fc from "fast-check";
2
+ import { generateKeyPairSync } from "crypto";
3
+ import { ErrorCodes } from "../../common";
4
+ import { CryptoService } from "../crypto.service";
5
+ describe("CryptoService", () => {
6
+ test("should throw encryption error if key is invalid", () => {
7
+ const service = new CryptoService();
8
+ expect(() => service.encrypt("", "")).toThrow(ErrorCodes.ENCRYPTION.toString());
9
+ });
10
+ test("should throw decryption error if key is invalid", () => {
11
+ const service = new CryptoService();
12
+ expect(() => service.decrypt("", "")).toThrow(ErrorCodes.DECRYPTION.toString());
13
+ });
14
+ test("should encrypt and decrypt properly", () => {
15
+ fc.assert(fc.property(fc.string(), (text) => {
16
+ const service = new CryptoService();
17
+ const keypair = generateKeyPairSync("rsa", {
18
+ modulusLength: 2048,
19
+ });
20
+ const encryptedText = service.encrypt(keypair.publicKey.export({ type: "pkcs1", format: "pem" }), text);
21
+ const decryptedText = service.decrypt(keypair.privateKey.export({ type: "pkcs1", format: "pem" }), encryptedText);
22
+ return decryptedText === text;
23
+ }));
24
+ });
25
+ });
26
+ //# sourceMappingURL=crypto.service.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.service.test.js","sourceRoot":"","sources":["../../../../ts/crypto/__tests__/crypto.service.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;QAC3D,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;QAEpC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;QAC3D,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;QAEpC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC/C,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAY,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;YAEpC,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,EAAE;gBACzC,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAExG,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CACnC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAC3D,aAAa,CACd,CAAC;YAEF,OAAO,aAAa,KAAK,IAAI,CAAC;QAChC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare class CryptoModule {
2
+ }
3
+ //# sourceMappingURL=crypto.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.module.d.ts","sourceRoot":"","sources":["../../../ts/crypto/crypto.module.ts"],"names":[],"mappings":"AAIA,qBAIa,YAAY;CAAG"}
@@ -0,0 +1,18 @@
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.service";
9
+ let CryptoModule = class CryptoModule {
10
+ };
11
+ CryptoModule = __decorate([
12
+ Module({
13
+ exports: [CryptoService],
14
+ providers: [CryptoService],
15
+ })
16
+ ], CryptoModule);
17
+ export { CryptoModule };
18
+ //# sourceMappingURL=crypto.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.module.js","sourceRoot":"","sources":["../../../ts/crypto/crypto.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAM1C,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,YAAY;IAJxB,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,aAAa,CAAC;QACxB,SAAS,EAAE,CAAC,aAAa,CAAC;KAC3B,CAAC;GACW,YAAY,CAAG"}
@@ -0,0 +1,31 @@
1
+ import { type KeyLike } from "crypto";
2
+ /**
3
+ * CryptoService is responsible for encrypting and decrypting user sensitive data
4
+ */
5
+ export declare class CryptoService {
6
+ /**
7
+ * Logger
8
+ */
9
+ private readonly logger;
10
+ /**
11
+ * Initialize service
12
+ */
13
+ constructor();
14
+ /**
15
+ * Encrypt plaintext with public key
16
+ *
17
+ * @param publicKey - public key
18
+ * @param value - plaintext
19
+ * @returns ciphertext
20
+ */
21
+ encrypt(publicKey: KeyLike, value: string): string;
22
+ /**
23
+ * Decrypt ciphertext with private key
24
+ *
25
+ * @param privateKey - private key
26
+ * @param value - ciphertext
27
+ * @returns plaintext
28
+ */
29
+ decrypt(privateKey: KeyLike, value: string): string;
30
+ }
31
+ //# sourceMappingURL=crypto.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.service.d.ts","sourceRoot":"","sources":["../../../ts/crypto/crypto.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAIrE;;GAEG;AACH,qBACa,aAAa;IACxB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;OAEG;;IAKH;;;;;;OAMG;IACH,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAWlD;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;CAUpD"}
@@ -0,0 +1,68 @@
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 CryptoService_1;
11
+ import { Injectable, Logger } from "@nestjs/common";
12
+ import { publicEncrypt, privateDecrypt } from "crypto";
13
+ import { ErrorCodes } from "../common";
14
+ /**
15
+ * CryptoService is responsible for encrypting and decrypting user sensitive data
16
+ */
17
+ let CryptoService = CryptoService_1 = class CryptoService {
18
+ /**
19
+ * Logger
20
+ */
21
+ logger;
22
+ /**
23
+ * Initialize service
24
+ */
25
+ constructor() {
26
+ this.logger = new Logger(CryptoService_1.name);
27
+ }
28
+ /**
29
+ * Encrypt plaintext with public key
30
+ *
31
+ * @param publicKey - public key
32
+ * @param value - plaintext
33
+ * @returns ciphertext
34
+ */
35
+ encrypt(publicKey, value) {
36
+ try {
37
+ const encrypted = publicEncrypt(publicKey, Buffer.from(value));
38
+ return encrypted.toString("base64");
39
+ }
40
+ catch (error) {
41
+ this.logger.error(`Error: ${ErrorCodes.ENCRYPTION}`, error);
42
+ throw new Error(ErrorCodes.ENCRYPTION.toString());
43
+ }
44
+ }
45
+ /**
46
+ * Decrypt ciphertext with private key
47
+ *
48
+ * @param privateKey - private key
49
+ * @param value - ciphertext
50
+ * @returns plaintext
51
+ */
52
+ decrypt(privateKey, value) {
53
+ try {
54
+ const decryptedData = privateDecrypt(privateKey, Buffer.from(value, "base64"));
55
+ return decryptedData.toString();
56
+ }
57
+ catch (error) {
58
+ this.logger.error(`Error: ${ErrorCodes.DECRYPTION}`, error);
59
+ throw new Error(ErrorCodes.DECRYPTION.toString());
60
+ }
61
+ }
62
+ };
63
+ CryptoService = CryptoService_1 = __decorate([
64
+ Injectable(),
65
+ __metadata("design:paramtypes", [])
66
+ ], CryptoService);
67
+ export { CryptoService };
68
+ //# sourceMappingURL=crypto.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.service.js","sourceRoot":"","sources":["../../../ts/crypto/crypto.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAgB,MAAM,QAAQ,CAAC;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC;;GAEG;AAEI,IAAM,aAAa,qBAAnB,MAAM,aAAa;IACxB;;OAEG;IACc,MAAM,CAAS;IAEhC;;OAEG;IACH;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,eAAa,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,SAAkB,EAAE,KAAa;QACvC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAE/D,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,UAAU,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,UAAmB,EAAE,KAAa;QACxC,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YAE/E,OAAO,aAAa,CAAC,QAAQ,EAAE,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,UAAU,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;CACF,CAAA;AAhDY,aAAa;IADzB,UAAU,EAAE;;GACA,aAAa,CAgDzB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deployer.controller.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployer.controller.test.d.ts","sourceRoot":"","sources":["../../../../ts/deployer/__tests__/deployer.controller.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,84 @@
1
+ import { Test } from "@nestjs/testing";
2
+ import { zeroAddress } from "viem";
3
+ import { ErrorCodes, ESupportedNetworks } from "../../common";
4
+ import { FileService } from "../../file/file.service";
5
+ import { generateApproval } from "../../sessionKeys/__tests__/utils";
6
+ import { SessionKeysService } from "../../sessionKeys/sessionKeys.service";
7
+ import { DeployerController } from "../deployer.controller";
8
+ import { DeployerService } from "../deployer.service";
9
+ import { testMaciDeploymentConfig, testPollDeploymentConfig } from "./utils";
10
+ describe("DeployerController", () => {
11
+ afterEach(() => {
12
+ jest.clearAllMocks();
13
+ });
14
+ let deployerController;
15
+ const mockDeployerService = {
16
+ deployMaci: jest.fn(),
17
+ deployPoll: jest.fn(),
18
+ };
19
+ const defaultDeployMaciReturn = zeroAddress;
20
+ const defaultDeployPollReturn = "0";
21
+ const deployerControllerFail = new DeployerController(new DeployerService(new SessionKeysService(new FileService()), new FileService()));
22
+ const fileService = new FileService();
23
+ const sessionKeyService = new SessionKeysService(fileService);
24
+ let approval;
25
+ let sessionKeyAddress;
26
+ beforeAll(async () => {
27
+ approval = await generateApproval(sessionKeyAddress);
28
+ sessionKeyAddress = (await sessionKeyService.generateSessionKey()).sessionKeyAddress;
29
+ });
30
+ beforeEach(async () => {
31
+ const app = await Test.createTestingModule({
32
+ controllers: [DeployerController],
33
+ })
34
+ .useMocker((token) => {
35
+ if (token === DeployerService) {
36
+ mockDeployerService.deployMaci.mockResolvedValue({ address: defaultDeployMaciReturn });
37
+ mockDeployerService.deployPoll.mockResolvedValue({ pollId: defaultDeployPollReturn });
38
+ return mockDeployerService;
39
+ }
40
+ return jest.fn();
41
+ })
42
+ .compile();
43
+ deployerController = app.get(DeployerController);
44
+ });
45
+ describe("v1/deploy/maci", () => {
46
+ test("should deploy all contracts", async () => {
47
+ const { address } = await deployerController.deployMACIContracts({
48
+ chain: ESupportedNetworks.OPTIMISM_SEPOLIA,
49
+ approval,
50
+ sessionKeyAddress,
51
+ config: testMaciDeploymentConfig,
52
+ });
53
+ expect(address).toEqual(defaultDeployMaciReturn);
54
+ });
55
+ test("should return 400 bad request when the service throws", async () => {
56
+ await expect(deployerControllerFail.deployMACIContracts({
57
+ chain: ESupportedNetworks.OPTIMISM_SEPOLIA,
58
+ approval: "",
59
+ sessionKeyAddress: "0x",
60
+ config: testMaciDeploymentConfig,
61
+ })).rejects.toThrow(ErrorCodes.SESSION_KEY_NOT_FOUND.toString());
62
+ });
63
+ });
64
+ describe("v1/deploy/poll", () => {
65
+ test("should deploy a new poll", async () => {
66
+ const { pollId } = await deployerController.deployPoll({
67
+ chain: ESupportedNetworks.OPTIMISM_SEPOLIA,
68
+ approval: "",
69
+ sessionKeyAddress: "0x",
70
+ config: testPollDeploymentConfig,
71
+ });
72
+ expect(pollId).toEqual(defaultDeployPollReturn);
73
+ });
74
+ test("should return 400 bad request when the service throws", async () => {
75
+ await expect(deployerControllerFail.deployPoll({
76
+ chain: ESupportedNetworks.OPTIMISM_SEPOLIA,
77
+ approval: "",
78
+ sessionKeyAddress: "0x",
79
+ config: testPollDeploymentConfig,
80
+ })).rejects.toThrow(ErrorCodes.SESSION_KEY_NOT_FOUND.toString());
81
+ });
82
+ });
83
+ });
84
+ //# sourceMappingURL=deployer.controller.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployer.controller.test.js","sourceRoot":"","sources":["../../../../ts/deployer/__tests__/deployer.controller.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deployer.service.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployer.service.test.d.ts","sourceRoot":"","sources":["../../../../ts/deployer/__tests__/deployer.service.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,166 @@
1
+ import { ContractStorage, EContracts, EInitialVoiceCreditProxies, EPolicies, MACI__factory as MACIFactory, Verifier__factory as VerifierFactory, } from "@maci-protocol/sdk";
2
+ import dotenv from "dotenv";
3
+ import { BaseContract } from "ethers";
4
+ import { zeroAddress } from "viem";
5
+ import path from "path";
6
+ import { ErrorCodes, ESupportedNetworks } from "../../common";
7
+ import { FileService } from "../../file/file.service";
8
+ import { generateApproval } from "../../sessionKeys/__tests__/utils";
9
+ import { SessionKeysService } from "../../sessionKeys/sessionKeys.service";
10
+ import { DeployerService } from "../deployer.service";
11
+ import { testMaciDeploymentConfig, testPollDeploymentConfig } from "./utils";
12
+ dotenv.config();
13
+ describe("DeployerService", () => {
14
+ afterEach(() => {
15
+ jest.clearAllMocks();
16
+ });
17
+ const chain = ESupportedNetworks.OPTIMISM_SEPOLIA;
18
+ const fileService = new FileService();
19
+ const storageInstance = ContractStorage.getInstance(path.join(process.cwd(), "deployed-contracts.json"));
20
+ const sessionKeyService = new SessionKeysService(fileService);
21
+ const deployerService = new DeployerService(sessionKeyService, fileService);
22
+ let approval;
23
+ let sessionKeyAddress;
24
+ let kernelClient;
25
+ let signer;
26
+ beforeAll(async () => {
27
+ sessionKeyAddress = (await sessionKeyService.generateSessionKey()).sessionKeyAddress;
28
+ approval = await generateApproval(sessionKeyAddress);
29
+ kernelClient = await sessionKeyService.generateClientFromSessionKey(sessionKeyAddress, approval, chain);
30
+ signer = await sessionKeyService.getKernelClientSigner(kernelClient);
31
+ });
32
+ afterAll(() => {
33
+ storageInstance.cleanup(ESupportedNetworks.OPTIMISM_SEPOLIA);
34
+ storageInstance.cleanup(ESupportedNetworks.ARBITRUM_ONE);
35
+ });
36
+ describe("deployAndSavePolicy", () => {
37
+ // we cleanup after each test so we don't have leftover saved contracts
38
+ afterEach(() => {
39
+ storageInstance.cleanup(chain);
40
+ });
41
+ it("should throw when the policy is not existent", async () => {
42
+ await expect(deployerService.deployAndSavePolicy(signer, "NonExistent", chain)).rejects.toThrow(ErrorCodes.UNSUPPORTED_POLICY.toString());
43
+ });
44
+ test("should deploy policy if none is stored", async () => {
45
+ const policy = await deployerService.deployAndSavePolicy(signer, EPolicies.FreeForAll, chain);
46
+ expect(policy).toBeDefined();
47
+ expect(await policy.getAddress()).not.toBe(zeroAddress);
48
+ });
49
+ });
50
+ describe("deployAndSaveVoiceCreditProxy", () => {
51
+ // we cleanup after each test so we don't have leftover saved contracts
52
+ afterEach(() => {
53
+ storageInstance.cleanup(chain);
54
+ });
55
+ it("should throw when the voice credit proxy is not existent", async () => {
56
+ await expect(deployerService.deployAndSaveVoiceCreditProxy(signer, "NonExistent", chain)).rejects.toThrow(ErrorCodes.UNSUPPORTED_VOICE_CREDIT_PROXY.toString());
57
+ });
58
+ test("should deploy voice credit proxy if none is stored", async () => {
59
+ const voiceCreditProxy = await deployerService.deployAndSaveVoiceCreditProxy(signer, EInitialVoiceCreditProxies.Constant, chain, { amount: 100 });
60
+ expect(voiceCreditProxy).toBeDefined();
61
+ expect(await voiceCreditProxy.getAddress()).not.toBe(zeroAddress);
62
+ });
63
+ });
64
+ describe("deployMaci", () => {
65
+ test("should throw when passing a non existent session key address", async () => {
66
+ await expect(deployerService.deployMaci({
67
+ config: testMaciDeploymentConfig,
68
+ chain,
69
+ approval,
70
+ sessionKeyAddress: "0x5",
71
+ })).rejects.toThrow(ErrorCodes.SESSION_KEY_NOT_FOUND.toString());
72
+ });
73
+ test("should throw when the approval is not valid", async () => {
74
+ await expect(deployerService.deployMaci({
75
+ config: testMaciDeploymentConfig,
76
+ chain,
77
+ approval: "0x",
78
+ sessionKeyAddress,
79
+ })).rejects.toThrow(ErrorCodes.INVALID_APPROVAL.toString());
80
+ });
81
+ test("should deploy all new contracts", async () => {
82
+ const mockDeployMaci = jest.fn().mockResolvedValue({ address: zeroAddress });
83
+ jest.spyOn(DeployerService.prototype, "deployMaci").mockImplementation(mockDeployMaci);
84
+ const { address: maciAddress } = await deployerService.deployMaci({
85
+ config: testMaciDeploymentConfig,
86
+ chain,
87
+ approval,
88
+ sessionKeyAddress,
89
+ });
90
+ expect(maciAddress).toBe(zeroAddress);
91
+ });
92
+ });
93
+ describe("deployPoll", () => {
94
+ afterEach(() => {
95
+ storageInstance.cleanup(chain);
96
+ });
97
+ test("should throw when there is no maci contract deployed", async () => {
98
+ await expect(deployerService.deployPoll({
99
+ approval,
100
+ sessionKeyAddress,
101
+ chain,
102
+ config: testPollDeploymentConfig,
103
+ })).rejects.toThrow(ErrorCodes.MACI_NOT_DEPLOYED.toString());
104
+ });
105
+ test("should throw when there is no maci contract deployed to this specific chain", async () => {
106
+ await storageInstance.register({
107
+ id: EContracts.MACI,
108
+ contract: new BaseContract("0x", MACIFactory.abi),
109
+ network: ESupportedNetworks.ARBITRUM_ONE,
110
+ args: [],
111
+ });
112
+ await expect(deployerService.deployPoll({
113
+ approval,
114
+ sessionKeyAddress,
115
+ chain,
116
+ config: testPollDeploymentConfig,
117
+ })).rejects.toThrow(ErrorCodes.MACI_NOT_DEPLOYED.toString());
118
+ });
119
+ it("should throw when there is no verifier deployed", async () => {
120
+ await storageInstance.register({
121
+ id: EContracts.MACI,
122
+ contract: new BaseContract("0x", MACIFactory.abi),
123
+ network: chain,
124
+ args: [],
125
+ });
126
+ await expect(deployerService.deployPoll({
127
+ approval,
128
+ sessionKeyAddress,
129
+ chain,
130
+ config: testPollDeploymentConfig,
131
+ })).rejects.toThrow(ErrorCodes.VERIFIER_NOT_DEPLOYED.toString());
132
+ });
133
+ it("should throw when there is no verifying keys registry deployed", async () => {
134
+ await storageInstance.register({
135
+ id: EContracts.MACI,
136
+ contract: new BaseContract("0x", MACIFactory.abi),
137
+ network: chain,
138
+ args: [],
139
+ });
140
+ await storageInstance.register({
141
+ id: EContracts.Verifier,
142
+ contract: new BaseContract("0x", VerifierFactory.abi),
143
+ network: chain,
144
+ args: [],
145
+ });
146
+ await expect(deployerService.deployPoll({
147
+ approval,
148
+ sessionKeyAddress,
149
+ chain,
150
+ config: testPollDeploymentConfig,
151
+ })).rejects.toThrow(ErrorCodes.VERIFYING_KEYS_REGISTRY_NOT_DEPLOYED.toString());
152
+ });
153
+ test("should deploy a poll", async () => {
154
+ const mockDeployPoll = jest.fn().mockResolvedValue({ pollId: "0" });
155
+ jest.spyOn(DeployerService.prototype, "deployPoll").mockImplementation(mockDeployPoll);
156
+ const { pollId } = await deployerService.deployPoll({
157
+ config: testPollDeploymentConfig,
158
+ chain,
159
+ approval,
160
+ sessionKeyAddress,
161
+ });
162
+ expect(pollId).toBe("0");
163
+ });
164
+ });
165
+ });
166
+ //# sourceMappingURL=deployer.service.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployer.service.test.js","sourceRoot":"","sources":["../../../../ts/deployer/__tests__/deployer.service.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { Keypair } from "@maci-protocol/domainobjs";
2
+ import { IDeployMaciConfig, IDeployPollConfig, IEASPolicyArgs, IGitcoinPassportPolicyArgs, IHatsPolicyArgs, IMerkleProofPolicyArgs, ISemaphorePolicyArgs, ITokenPolicyArgs, IZupassPolicyArgs } from "../types";
3
+ export declare const MSG_BATCH_SIZE = 20;
4
+ /**
5
+ * Coordinator MACI Keypair
6
+ */
7
+ export declare const coordinatorMACIKeypair: Keypair;
8
+ /**
9
+ * MACI deployment configuration for testing
10
+ */
11
+ export declare const testMaciDeploymentConfig: IDeployMaciConfig;
12
+ /**
13
+ * Start date for the poll (it cannot be in the past)
14
+ * n seconds are added to give it time until it is deployed
15
+ */
16
+ export declare const startDate: number;
17
+ /**
18
+ * Poll duration in seconds
19
+ * n seconds are added to the poll start date
20
+ */
21
+ export declare const pollDuration = 60;
22
+ /**
23
+ * Poll start date extra seconds
24
+ * n seconds are added to the poll start date
25
+ * to give it time until it the previous poll contracts are deployed
26
+ */
27
+ export declare const pollStartDateExtraSeconds = 60;
28
+ /**
29
+ * Poll deployment configuration for testing
30
+ */
31
+ export declare const testPollDeploymentConfig: IDeployPollConfig;
32
+ /**
33
+ *
34
+ * Policies
35
+ *
36
+ */
37
+ /**
38
+ * EAS Policy deployment configuration for testing
39
+ */
40
+ export declare const EASPolicyDeploymentConfig: IEASPolicyArgs;
41
+ /**
42
+ * Zupass Policy deployment configuration for testing
43
+ */
44
+ export declare const ZupassPolicyDeploymentConfig: IZupassPolicyArgs;
45
+ /**
46
+ * Semaphore Policy deployment configuration for testing
47
+ */
48
+ export declare const SemaphorePolicyDeploymentConfig: ISemaphorePolicyArgs;
49
+ /**
50
+ * HatsPolicy deployment configuration for testing
51
+ */
52
+ export declare const HatsPolicyDeploymentConfig: IHatsPolicyArgs;
53
+ /**
54
+ * MerkleProofPolicy deployment configuration for testing
55
+ */
56
+ export declare const MerkleProofPolicyDeploymentConfig: IMerkleProofPolicyArgs;
57
+ /**
58
+ * SignUpPolicy deployment configuration for testing
59
+ */
60
+ export declare const SignUpPolicyDeploymentConfig: ITokenPolicyArgs;
61
+ /**
62
+ * GitcoinPassportPolicy deployment configuration for testing
63
+ */
64
+ export declare const GitcoinPassportPolicyDeploymentConfig: IGitcoinPassportPolicyArgs;
65
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../ts/deployer/__tests__/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAc,MAAM,2BAA2B,CAAC;AAIhE,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,EAC1B,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,sBAAsB,SAElC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAwBtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,QAAsC,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAmBtC,CAAC;AAEF;;;;GAIG;AACH;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,cAIvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,iBAK1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,+BAA+B,EAAE,oBAG7C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,eAGxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iCAAiC,EAAE,sBAE/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,gBAE1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qCAAqC,EAAE,0BAGnD,CAAC"}