@maci-protocol/coordinator 0.0.0-ci.ec5a063 → 0.0.0-ci.eea13a2

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 (171) hide show
  1. package/README.md +18 -0
  2. package/build/hardhat.config.cjs +2 -3
  3. package/build/hardhat.config.cjs.map +1 -1
  4. package/build/hardhat.config.d.cts +2 -4
  5. package/build/scripts/generateKeypair.js +2 -2
  6. package/build/scripts/generateKeypair.js.map +1 -1
  7. package/build/tests/e2e.deploy.test.js +57 -49
  8. package/build/tests/e2e.deploy.test.js.map +1 -1
  9. package/build/tests/e2e.redis.test.d.ts +2 -0
  10. package/build/tests/e2e.redis.test.d.ts.map +1 -0
  11. package/build/tests/e2e.redis.test.js +119 -0
  12. package/build/tests/e2e.redis.test.js.map +1 -0
  13. package/build/tests/utils.d.ts.map +1 -1
  14. package/build/tests/utils.js +2 -2
  15. package/build/tests/utils.js.map +1 -1
  16. package/build/ts/app.module.d.ts.map +1 -1
  17. package/build/ts/app.module.js +6 -0
  18. package/build/ts/app.module.js.map +1 -1
  19. package/build/ts/common/__tests__/common.test.js +11 -21
  20. package/build/ts/common/__tests__/common.test.js.map +1 -1
  21. package/build/ts/common/accountAbstraction.d.ts +1 -1
  22. package/build/ts/common/accountAbstraction.d.ts.map +1 -1
  23. package/build/ts/common/accountAbstraction.js +5 -6
  24. package/build/ts/common/accountAbstraction.js.map +1 -1
  25. package/build/ts/common/chain.d.ts +4 -4
  26. package/build/ts/common/chain.d.ts.map +1 -1
  27. package/build/ts/common/chain.js +14 -16
  28. package/build/ts/common/chain.js.map +1 -1
  29. package/build/ts/common/coordinatorKeypair.d.ts +7 -0
  30. package/build/ts/common/coordinatorKeypair.d.ts.map +1 -0
  31. package/build/ts/common/coordinatorKeypair.js +14 -0
  32. package/build/ts/common/coordinatorKeypair.js.map +1 -0
  33. package/build/ts/common/errors.d.ts +16 -12
  34. package/build/ts/common/errors.d.ts.map +1 -1
  35. package/build/ts/common/errors.js +16 -12
  36. package/build/ts/common/errors.js.map +1 -1
  37. package/build/ts/deployer/__tests__/deployer.controller.test.js +17 -20
  38. package/build/ts/deployer/__tests__/deployer.controller.test.js.map +1 -1
  39. package/build/ts/deployer/__tests__/deployer.service.test.js +161 -79
  40. package/build/ts/deployer/__tests__/deployer.service.test.js.map +1 -1
  41. package/build/ts/deployer/__tests__/utils.d.ts +2 -6
  42. package/build/ts/deployer/__tests__/utils.d.ts.map +1 -1
  43. package/build/ts/deployer/__tests__/utils.js +6 -10
  44. package/build/ts/deployer/__tests__/utils.js.map +1 -1
  45. package/build/ts/deployer/deployer.service.d.ts +17 -7
  46. package/build/ts/deployer/deployer.service.d.ts.map +1 -1
  47. package/build/ts/deployer/deployer.service.js +215 -58
  48. package/build/ts/deployer/deployer.service.js.map +1 -1
  49. package/build/ts/deployer/types.d.ts +18 -14
  50. package/build/ts/deployer/types.d.ts.map +1 -1
  51. package/build/ts/file/__tests__/file.service.test.js +9 -9
  52. package/build/ts/file/__tests__/file.service.test.js.map +1 -1
  53. package/build/ts/file/file.service.d.ts +2 -2
  54. package/build/ts/file/file.service.d.ts.map +1 -1
  55. package/build/ts/file/file.service.js +9 -8
  56. package/build/ts/file/file.service.js.map +1 -1
  57. package/build/ts/file/types.d.ts +2 -2
  58. package/build/ts/file/types.d.ts.map +1 -1
  59. package/build/ts/health/__tests__/health.controller.test.d.ts +2 -0
  60. package/build/ts/health/__tests__/health.controller.test.d.ts.map +1 -0
  61. package/build/ts/health/__tests__/health.controller.test.js +52 -0
  62. package/build/ts/health/__tests__/health.controller.test.js.map +1 -0
  63. package/build/ts/health/__tests__/health.service.test.d.ts +2 -0
  64. package/build/ts/health/__tests__/health.service.test.d.ts.map +1 -0
  65. package/build/ts/health/__tests__/health.service.test.js +101 -0
  66. package/build/ts/health/__tests__/health.service.test.js.map +1 -0
  67. package/build/ts/health/health.controller.d.ts +16 -0
  68. package/build/ts/health/health.controller.d.ts.map +1 -0
  69. package/build/ts/health/health.controller.js +43 -0
  70. package/build/ts/health/health.controller.js.map +1 -0
  71. package/build/ts/health/health.module.d.ts +3 -0
  72. package/build/ts/health/health.module.d.ts.map +1 -0
  73. package/build/ts/health/health.module.js +22 -0
  74. package/build/ts/health/health.module.js.map +1 -0
  75. package/build/ts/health/health.service.d.ts +42 -0
  76. package/build/ts/health/health.service.d.ts.map +1 -0
  77. package/build/ts/health/health.service.js +176 -0
  78. package/build/ts/health/health.service.js.map +1 -0
  79. package/build/ts/health/types.d.ts +87 -0
  80. package/build/ts/health/types.d.ts.map +1 -0
  81. package/build/ts/health/types.js +2 -0
  82. package/build/ts/health/types.js.map +1 -0
  83. package/build/ts/proof/__tests__/proof.controller.test.js +0 -1
  84. package/build/ts/proof/__tests__/proof.controller.test.js.map +1 -1
  85. package/build/ts/proof/__tests__/proof.gateway.test.js +0 -1
  86. package/build/ts/proof/__tests__/proof.gateway.test.js.map +1 -1
  87. package/build/ts/proof/__tests__/proof.service.test.js +26 -72
  88. package/build/ts/proof/__tests__/proof.service.test.js.map +1 -1
  89. package/build/ts/proof/dto.d.ts +0 -4
  90. package/build/ts/proof/dto.d.ts.map +1 -1
  91. package/build/ts/proof/dto.js +1 -16
  92. package/build/ts/proof/dto.js.map +1 -1
  93. package/build/ts/proof/proof.controller.d.ts.map +1 -1
  94. package/build/ts/proof/proof.controller.js +1 -4
  95. package/build/ts/proof/proof.controller.js.map +1 -1
  96. package/build/ts/proof/proof.service.d.ts +2 -4
  97. package/build/ts/proof/proof.service.d.ts.map +1 -1
  98. package/build/ts/proof/proof.service.js +23 -25
  99. package/build/ts/proof/proof.service.js.map +1 -1
  100. package/build/ts/proof/types.d.ts +1 -4
  101. package/build/ts/proof/types.d.ts.map +1 -1
  102. package/build/ts/redis/__tests__/redis.service.test.d.ts +2 -0
  103. package/build/ts/redis/__tests__/redis.service.test.d.ts.map +1 -0
  104. package/build/ts/redis/__tests__/redis.service.test.js +149 -0
  105. package/build/ts/redis/__tests__/redis.service.test.js.map +1 -0
  106. package/build/ts/redis/redis.module.d.ts +3 -0
  107. package/build/ts/redis/redis.module.d.ts.map +1 -0
  108. package/build/ts/redis/redis.module.js +18 -0
  109. package/build/ts/redis/redis.module.js.map +1 -0
  110. package/build/ts/redis/redis.service.d.ts +52 -0
  111. package/build/ts/redis/redis.service.d.ts.map +1 -0
  112. package/build/ts/redis/redis.service.js +97 -0
  113. package/build/ts/redis/redis.service.js.map +1 -0
  114. package/build/ts/redis/types.d.ts +54 -0
  115. package/build/ts/redis/types.d.ts.map +1 -0
  116. package/build/ts/redis/types.js +2 -0
  117. package/build/ts/redis/types.js.map +1 -0
  118. package/build/ts/redis/utils.d.ts +20 -0
  119. package/build/ts/redis/utils.d.ts.map +1 -0
  120. package/build/ts/redis/utils.js +27 -0
  121. package/build/ts/redis/utils.js.map +1 -0
  122. package/build/ts/scheduler/__tests__/scheduler.controller.test.d.ts +2 -0
  123. package/build/ts/scheduler/__tests__/scheduler.controller.test.d.ts.map +1 -0
  124. package/build/ts/scheduler/__tests__/scheduler.controller.test.js +63 -0
  125. package/build/ts/scheduler/__tests__/scheduler.controller.test.js.map +1 -0
  126. package/build/ts/scheduler/__tests__/scheduler.service.test.d.ts +2 -0
  127. package/build/ts/scheduler/__tests__/scheduler.service.test.d.ts.map +1 -0
  128. package/build/ts/scheduler/__tests__/scheduler.service.test.js +264 -0
  129. package/build/ts/scheduler/__tests__/scheduler.service.test.js.map +1 -0
  130. package/build/ts/scheduler/dto.d.ts +42 -0
  131. package/build/ts/scheduler/dto.d.ts.map +1 -0
  132. package/build/ts/scheduler/dto.js +116 -0
  133. package/build/ts/scheduler/dto.js.map +1 -0
  134. package/build/ts/scheduler/scheduler.controller.d.ts +32 -0
  135. package/build/ts/scheduler/scheduler.controller.d.ts.map +1 -0
  136. package/build/ts/scheduler/scheduler.controller.js +111 -0
  137. package/build/ts/scheduler/scheduler.controller.js.map +1 -0
  138. package/build/ts/scheduler/scheduler.module.d.ts +3 -0
  139. package/build/ts/scheduler/scheduler.module.d.ts.map +1 -0
  140. package/build/ts/scheduler/scheduler.module.js +23 -0
  141. package/build/ts/scheduler/scheduler.module.js.map +1 -0
  142. package/build/ts/scheduler/scheduler.service.d.ts +63 -0
  143. package/build/ts/scheduler/scheduler.service.d.ts.map +1 -0
  144. package/build/ts/scheduler/scheduler.service.js +239 -0
  145. package/build/ts/scheduler/scheduler.service.js.map +1 -0
  146. package/build/ts/scheduler/types.d.ts +61 -0
  147. package/build/ts/scheduler/types.d.ts.map +1 -0
  148. package/build/ts/scheduler/types.js +2 -0
  149. package/build/ts/scheduler/types.js.map +1 -0
  150. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js +2 -2
  151. package/build/ts/sessionKeys/__tests__/sessionKeys.controller.test.js.map +1 -1
  152. package/build/ts/sessionKeys/__tests__/sessionKeys.service.test.js +30 -16
  153. package/build/ts/sessionKeys/__tests__/sessionKeys.service.test.js.map +1 -1
  154. package/build/ts/sessionKeys/__tests__/utils.d.ts.map +1 -1
  155. package/build/ts/sessionKeys/__tests__/utils.js +4 -5
  156. package/build/ts/sessionKeys/__tests__/utils.js.map +1 -1
  157. package/build/ts/sessionKeys/sessionKeys.service.d.ts.map +1 -1
  158. package/build/ts/sessionKeys/sessionKeys.service.js +1 -2
  159. package/build/ts/sessionKeys/sessionKeys.service.js.map +1 -1
  160. package/build/ts/subgraph/__tests__/subgraph.service.test.js +2 -3
  161. package/build/ts/subgraph/__tests__/subgraph.service.test.js.map +1 -1
  162. package/build/ts/subgraph/subgraph.service.d.ts +4 -0
  163. package/build/ts/subgraph/subgraph.service.d.ts.map +1 -1
  164. package/build/ts/subgraph/subgraph.service.js +16 -5
  165. package/build/ts/subgraph/subgraph.service.js.map +1 -1
  166. package/build/tsconfig.build.tsbuildinfo +1 -1
  167. package/package.json +38 -35
  168. package/build/tests/e2e.aa.test.d.ts +0 -2
  169. package/build/tests/e2e.aa.test.d.ts.map +0 -1
  170. package/build/tests/e2e.aa.test.js +0 -106
  171. package/build/tests/e2e.aa.test.js.map +0 -1
@@ -1,68 +1,162 @@
1
- import { ContractStorage, EContracts, EInitialVoiceCreditProxies, EPolicies, MACI__factory as MACIFactory, Verifier__factory as VerifierFactory, } from "@maci-protocol/sdk";
1
+ import { ContractStorage, deployFreeForAllSignUpPolicy, deployPoll, deployVerifier, deployVerifyingKeysRegistryContract, deployMaci, deployConstantInitialVoiceCreditProxyFactory, deployConstantInitialVoiceCreditProxy, getDeployedPolicyProxyFactories, ECheckerFactories, EContracts, EInitialVoiceCreditProxies, EInitialVoiceCreditProxiesFactories, EPolicies, EPolicyFactories, } from "@maci-protocol/sdk";
2
2
  import dotenv from "dotenv";
3
- import { BaseContract } from "ethers";
4
3
  import { zeroAddress } from "viem";
5
- import path from "path";
6
4
  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
5
  import { DeployerService } from "../deployer.service";
11
6
  import { testMaciDeploymentConfig, testPollDeploymentConfig } from "./utils";
12
7
  dotenv.config();
8
+ jest.mock("@maci-protocol/sdk", () => ({
9
+ ...jest.requireActual("@maci-protocol/sdk"),
10
+ ContractStorage: {
11
+ getInstance: jest.fn(),
12
+ },
13
+ deployFreeForAllSignUpPolicy: jest.fn(),
14
+ deployPoll: jest.fn(),
15
+ deployVerifyingKeysRegistryContract: jest.fn(),
16
+ deployVerifier: jest.fn(),
17
+ getDeployedPolicyProxyFactories: jest.fn(),
18
+ setVerifyingKeys: jest.fn(),
19
+ deployMaci: jest.fn(),
20
+ deployConstantInitialVoiceCreditProxyFactory: jest.fn(),
21
+ deployConstantInitialVoiceCreditProxy: jest.fn(),
22
+ }));
13
23
  describe("DeployerService", () => {
14
- afterEach(() => {
15
- jest.clearAllMocks();
16
- });
17
24
  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);
25
+ const signer = {
26
+ getAddress: jest.fn().mockResolvedValue(zeroAddress),
27
+ };
28
+ const approval = "approval";
29
+ const sessionKeyAddress = zeroAddress;
30
+ const mockStorage = {
31
+ register: jest.fn(),
32
+ getAddress: jest.fn(),
33
+ };
34
+ const mockContract = {
35
+ deploymentTransaction: jest.fn(),
36
+ getAddress: jest.fn().mockResolvedValue(zeroAddress.replace("0x0", "0x1")),
37
+ };
38
+ const fileService = {
39
+ getZkeyFilePaths: jest.fn(),
40
+ };
41
+ const sessionKeyService = {
42
+ getCoordinatorSigner: jest.fn().mockResolvedValue(signer),
43
+ };
44
+ beforeEach(() => {
45
+ mockStorage.getAddress = jest.fn().mockReturnValue(zeroAddress);
46
+ sessionKeyService.getCoordinatorSigner = jest.fn().mockResolvedValue(signer);
47
+ fileService.getZkeyFilePaths = jest.fn().mockReturnValue({ zkey: "" });
48
+ ContractStorage.getInstance.mockReturnValue(mockStorage);
49
+ deployFreeForAllSignUpPolicy.mockResolvedValue([
50
+ mockContract,
51
+ mockContract,
52
+ mockContract,
53
+ mockContract,
54
+ ]);
55
+ deployVerifier.mockResolvedValue(mockContract);
56
+ deployVerifyingKeysRegistryContract.mockResolvedValue(mockContract);
57
+ deployConstantInitialVoiceCreditProxyFactory.mockResolvedValue(mockContract);
58
+ deployConstantInitialVoiceCreditProxy.mockResolvedValue(mockContract);
59
+ deployPoll.mockResolvedValue({
60
+ pollContractAddress: zeroAddress,
61
+ messageProcessorContractAddress: zeroAddress,
62
+ tallyContractAddress: zeroAddress,
63
+ pollId: 0n,
64
+ });
65
+ deployMaci.mockResolvedValue({
66
+ maciContractAddress: zeroAddress.replace("0x0", "0x1"),
67
+ pollFactoryContractAddress: zeroAddress,
68
+ messageProcessorFactoryContractAddress: zeroAddress,
69
+ tallyFactoryContractAddress: zeroAddress,
70
+ poseidonAddresses: {
71
+ poseidonT3: zeroAddress,
72
+ poseidonT4: zeroAddress,
73
+ poseidonT5: zeroAddress,
74
+ poseidonT6: zeroAddress,
75
+ },
76
+ });
77
+ getDeployedPolicyProxyFactories.mockResolvedValue({ checker: undefined, policy: undefined });
31
78
  });
32
- afterAll(() => {
33
- storageInstance.cleanup(ESupportedNetworks.OPTIMISM_SEPOLIA);
34
- storageInstance.cleanup(ESupportedNetworks.ARBITRUM_ONE);
79
+ afterEach(() => {
80
+ jest.clearAllMocks();
35
81
  });
36
82
  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());
83
+ test("should throw when the policy is not existent", async () => {
84
+ const deployerService = new DeployerService(sessionKeyService, fileService);
85
+ await expect(deployerService.deployAndSavePolicy(signer, chain, { type: "NonExistent" })).rejects.toThrow(ErrorCodes.UNSUPPORTED_POLICY.toString());
43
86
  });
44
87
  test("should deploy policy if none is stored", async () => {
45
- const policy = await deployerService.deployAndSavePolicy(signer, EPolicies.FreeForAll, chain);
88
+ const deployerService = new DeployerService(sessionKeyService, fileService);
89
+ const policy = await deployerService.deployAndSavePolicy(signer, chain, { type: EPolicies.FreeForAll });
46
90
  expect(policy).toBeDefined();
47
91
  expect(await policy.getAddress()).not.toBe(zeroAddress);
48
92
  });
93
+ test("should save factories (policy and checker) after deploying policy", async () => {
94
+ const deployerService = new DeployerService(sessionKeyService, fileService);
95
+ await deployerService.deployAndSavePolicy(signer, chain, { type: EPolicies.FreeForAll });
96
+ expect(mockStorage.register).toHaveBeenCalledTimes(3);
97
+ expect(mockStorage.register).toHaveBeenNthCalledWith(1, {
98
+ id: EPolicies.FreeForAll,
99
+ name: EPolicies.FreeForAll,
100
+ contract: mockContract,
101
+ args: [],
102
+ network: chain,
103
+ });
104
+ expect(mockStorage.register).toHaveBeenNthCalledWith(2, {
105
+ id: EPolicyFactories.FreeForAll,
106
+ name: EPolicyFactories.FreeForAll,
107
+ contract: mockContract,
108
+ network: chain,
109
+ });
110
+ expect(mockStorage.register).toHaveBeenNthCalledWith(3, {
111
+ id: ECheckerFactories.FreeForAll,
112
+ name: ECheckerFactories.FreeForAll,
113
+ contract: mockContract,
114
+ network: chain,
115
+ });
116
+ });
117
+ test("should reuse policy factories if already stored", async () => {
118
+ getDeployedPolicyProxyFactories.mockResolvedValue({
119
+ checker: mockContract,
120
+ policy: mockContract,
121
+ });
122
+ const deployerService = new DeployerService(sessionKeyService, fileService);
123
+ await deployerService.deployAndSavePolicy(signer, chain, { type: EPolicies.FreeForAll });
124
+ await deployerService.deployAndSavePolicy(signer, chain, { type: EPolicies.FreeForAll });
125
+ expect(mockStorage.register).toHaveBeenCalledTimes(2);
126
+ });
49
127
  });
50
- describe("deployAndSaveVoiceCreditProxy", () => {
51
- // we cleanup after each test so we don't have leftover saved contracts
52
- afterEach(() => {
53
- storageInstance.cleanup(chain);
128
+ describe("deployAndSaveVoiceCreditProxyFactory", () => {
129
+ test("should throw when the voice credit proxy factory is not existent", async () => {
130
+ const deployerService = new DeployerService(sessionKeyService, fileService);
131
+ await expect(deployerService.deployAndSaveVoiceCreditProxyFactory(signer, "NonExistent", chain)).rejects.toThrow(ErrorCodes.UNSUPPORTED_VOICE_CREDIT_PROXY_FACTORY.toString());
54
132
  });
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());
133
+ test("should deploy voice credit proxy factory if none is stored", async () => {
134
+ const deployerService = new DeployerService(sessionKeyService, fileService);
135
+ const constantInitialVoiceCreditProxyFactory = await deployerService.deployAndSaveVoiceCreditProxyFactory(signer, EInitialVoiceCreditProxiesFactories.Constant, chain);
136
+ expect(constantInitialVoiceCreditProxyFactory).toBeDefined();
137
+ expect(await constantInitialVoiceCreditProxyFactory.getAddress()).not.toBe(zeroAddress);
138
+ });
139
+ });
140
+ describe("deployAndSaveVoiceCreditProxy", () => {
141
+ test("should throw when the voice credit proxy is not existent", async () => {
142
+ const deployerService = new DeployerService(sessionKeyService, fileService);
143
+ const constantInitialVoiceCreditProxyFactory = await deployerService.deployAndSaveVoiceCreditProxyFactory(signer, EInitialVoiceCreditProxiesFactories.Constant, chain);
144
+ await expect(deployerService.deployAndSaveVoiceCreditProxy(signer, "NonExistent", chain, constantInitialVoiceCreditProxyFactory)).rejects.toThrow(ErrorCodes.UNSUPPORTED_VOICE_CREDIT_PROXY.toString());
57
145
  });
58
146
  test("should deploy voice credit proxy if none is stored", async () => {
59
- const voiceCreditProxy = await deployerService.deployAndSaveVoiceCreditProxy(signer, EInitialVoiceCreditProxies.Constant, chain, { amount: 100 });
147
+ const deployerService = new DeployerService(sessionKeyService, fileService);
148
+ const constantInitialVoiceCreditProxyFactory = await deployerService.deployAndSaveVoiceCreditProxyFactory(signer, EInitialVoiceCreditProxiesFactories.Constant, chain);
149
+ const voiceCreditProxy = await deployerService.deployAndSaveVoiceCreditProxy(signer, EInitialVoiceCreditProxies.Constant, chain, constantInitialVoiceCreditProxyFactory, { amount: 100 });
60
150
  expect(voiceCreditProxy).toBeDefined();
61
151
  expect(await voiceCreditProxy.getAddress()).not.toBe(zeroAddress);
62
152
  });
63
153
  });
64
154
  describe("deployMaci", () => {
65
155
  test("should throw when passing a non existent session key address", async () => {
156
+ sessionKeyService.getCoordinatorSigner = jest
157
+ .fn()
158
+ .mockRejectedValue(new Error(ErrorCodes.SESSION_KEY_NOT_FOUND.toString()));
159
+ const deployerService = new DeployerService(sessionKeyService, fileService);
66
160
  await expect(deployerService.deployMaci({
67
161
  config: testMaciDeploymentConfig,
68
162
  chain,
@@ -71,44 +165,37 @@ describe("DeployerService", () => {
71
165
  })).rejects.toThrow(ErrorCodes.SESSION_KEY_NOT_FOUND.toString());
72
166
  });
73
167
  test("should throw when the approval is not valid", async () => {
168
+ sessionKeyService.getCoordinatorSigner = jest
169
+ .fn()
170
+ .mockRejectedValue(new Error(ErrorCodes.INVALID_APPROVAL.toString()));
171
+ const deployerService = new DeployerService(sessionKeyService, fileService);
74
172
  await expect(deployerService.deployMaci({
75
173
  config: testMaciDeploymentConfig,
76
174
  chain,
77
- approval: "0x",
175
+ approval: "0x123",
78
176
  sessionKeyAddress,
79
177
  })).rejects.toThrow(ErrorCodes.INVALID_APPROVAL.toString());
80
178
  });
81
179
  test("should deploy all new contracts", async () => {
82
- const mockDeployMaci = jest.fn().mockResolvedValue({ address: zeroAddress });
83
- jest.spyOn(DeployerService.prototype, "deployMaci").mockImplementation(mockDeployMaci);
180
+ const deployerService = new DeployerService(sessionKeyService, fileService);
84
181
  const { address: maciAddress } = await deployerService.deployMaci({
85
182
  config: testMaciDeploymentConfig,
86
183
  chain,
87
184
  approval,
88
185
  sessionKeyAddress,
89
186
  });
90
- expect(maciAddress).toBe(zeroAddress);
187
+ expect(maciAddress).toBe(zeroAddress.replace("0x0", "0x1"));
91
188
  });
92
189
  });
93
190
  describe("deployPoll", () => {
94
- afterEach(() => {
95
- storageInstance.cleanup(chain);
96
- });
97
191
  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: [],
192
+ ContractStorage.getInstance.mockReturnValue({
193
+ ...mockStorage,
194
+ getAddress: jest
195
+ .fn()
196
+ .mockImplementation((key) => (key !== EContracts.MACI ? zeroAddress : undefined)),
111
197
  });
198
+ const deployerService = new DeployerService(sessionKeyService, fileService);
112
199
  await expect(deployerService.deployPoll({
113
200
  approval,
114
201
  sessionKeyAddress,
@@ -116,13 +203,14 @@ describe("DeployerService", () => {
116
203
  config: testPollDeploymentConfig,
117
204
  })).rejects.toThrow(ErrorCodes.MACI_NOT_DEPLOYED.toString());
118
205
  });
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: [],
206
+ test("should throw when there is no verifier deployed", async () => {
207
+ ContractStorage.getInstance.mockReturnValue({
208
+ ...mockStorage,
209
+ getAddress: jest
210
+ .fn()
211
+ .mockImplementation((key) => (key !== EContracts.Verifier ? zeroAddress : undefined)),
125
212
  });
213
+ const deployerService = new DeployerService(sessionKeyService, fileService);
126
214
  await expect(deployerService.deployPoll({
127
215
  approval,
128
216
  sessionKeyAddress,
@@ -130,19 +218,14 @@ describe("DeployerService", () => {
130
218
  config: testPollDeploymentConfig,
131
219
  })).rejects.toThrow(ErrorCodes.VERIFIER_NOT_DEPLOYED.toString());
132
220
  });
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: [],
221
+ test("should throw when there is no verifying keys registry deployed", async () => {
222
+ ContractStorage.getInstance.mockReturnValue({
223
+ ...mockStorage,
224
+ getAddress: jest
225
+ .fn()
226
+ .mockImplementation((key) => key !== EContracts.VerifyingKeysRegistry ? zeroAddress : undefined),
145
227
  });
228
+ const deployerService = new DeployerService(sessionKeyService, fileService);
146
229
  await expect(deployerService.deployPoll({
147
230
  approval,
148
231
  sessionKeyAddress,
@@ -151,8 +234,7 @@ describe("DeployerService", () => {
151
234
  })).rejects.toThrow(ErrorCodes.VERIFYING_KEYS_REGISTRY_NOT_DEPLOYED.toString());
152
235
  });
153
236
  test("should deploy a poll", async () => {
154
- const mockDeployPoll = jest.fn().mockResolvedValue({ pollId: "0" });
155
- jest.spyOn(DeployerService.prototype, "deployPoll").mockImplementation(mockDeployPoll);
237
+ const deployerService = new DeployerService(sessionKeyService, fileService);
156
238
  const { pollId } = await deployerService.deployPoll({
157
239
  config: testPollDeploymentConfig,
158
240
  chain,
@@ -1 +1 @@
1
- {"version":3,"file":"deployer.service.test.js","sourceRoot":"","sources":["../../../../ts/deployer/__tests__/deployer.service.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployer.service.test.js","sourceRoot":"","sources":["../../../../ts/deployer/__tests__/deployer.service.test.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,13 @@
1
- import { Keypair } from "@maci-protocol/domainobjs";
1
+ import { EMode } from "@maci-protocol/sdk";
2
2
  import { IDeployMaciConfig, IDeployPollConfig, IEASPolicyArgs, IGitcoinPassportPolicyArgs, IHatsPolicyArgs, IMerkleProofPolicyArgs, ISemaphorePolicyArgs, ITokenPolicyArgs, IZupassPolicyArgs } from "../types";
3
3
  export declare const MSG_BATCH_SIZE = 20;
4
- /**
5
- * Coordinator MACI Keypair
6
- */
7
- export declare const coordinatorMACIKeypair: Keypair;
4
+ export declare const MODE = EMode.NON_QV;
8
5
  /**
9
6
  * MACI deployment configuration for testing
10
7
  */
11
8
  export declare const testMaciDeploymentConfig: IDeployMaciConfig;
12
9
  /**
13
10
  * 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
11
  */
16
12
  export declare const startDate: number;
17
13
  /**
@@ -1 +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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../ts/deployer/__tests__/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,KAAK,EAAuC,MAAM,oBAAoB,CAAC;AAGvH,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,eAAO,MAAM,IAAI,eAAe,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAyBtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,QAAgC,CAAC;AAEvD;;;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"}
@@ -1,11 +1,7 @@
1
- import { Keypair, PrivateKey } from "@maci-protocol/domainobjs";
2
- import { EPolicies, EInitialVoiceCreditProxies, EMode } from "@maci-protocol/sdk";
1
+ import { EPolicies, EInitialVoiceCreditProxies, EMode, EInitialVoiceCreditProxiesFactories } from "@maci-protocol/sdk";
3
2
  import { zeroHash } from "viem";
4
3
  export const MSG_BATCH_SIZE = 20;
5
- /**
6
- * Coordinator MACI Keypair
7
- */
8
- export const coordinatorMACIKeypair = new Keypair(PrivateKey.deserialize("macisk.bdd73f1757f75261a0c9997def6cd47519cad2856347cdc6fd30718999576860"));
4
+ export const MODE = EMode.NON_QV;
9
5
  /**
10
6
  * MACI deployment configuration for testing
11
7
  */
@@ -16,6 +12,7 @@ export const testMaciDeploymentConfig = {
16
12
  MACI: {
17
13
  policy: EPolicies.FreeForAll,
18
14
  stateTreeDepth: 10,
15
+ modes: [MODE],
19
16
  },
20
17
  VerifyingKeysRegistry: {
21
18
  args: {
@@ -36,9 +33,8 @@ export const testMaciDeploymentConfig = {
36
33
  };
37
34
  /**
38
35
  * Start date for the poll (it cannot be in the past)
39
- * n seconds are added to give it time until it is deployed
40
36
  */
41
- export const startDate = Math.floor(Date.now() / 1000) + 100;
37
+ export const startDate = Math.floor(Date.now() / 1000);
42
38
  /**
43
39
  * Poll duration in seconds
44
40
  * n seconds are added to the poll start date
@@ -56,8 +52,7 @@ export const pollStartDateExtraSeconds = 60;
56
52
  export const testPollDeploymentConfig = {
57
53
  startDate,
58
54
  endDate: startDate + pollDuration,
59
- mode: EMode.NON_QV,
60
- coordinatorPublicKey: coordinatorMACIKeypair.publicKey.serialize(),
55
+ mode: MODE,
61
56
  tallyProcessingStateTreeDepth: 1,
62
57
  messageBatchSize: MSG_BATCH_SIZE,
63
58
  pollStateTreeDepth: 10,
@@ -66,6 +61,7 @@ export const testPollDeploymentConfig = {
66
61
  type: EPolicies.FreeForAll,
67
62
  },
68
63
  initialVoiceCreditsProxy: {
64
+ factoryType: EInitialVoiceCreditProxiesFactories.Constant,
69
65
  type: EInitialVoiceCreditProxies.Constant,
70
66
  args: {
71
67
  amount: 100,
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../ts/deployer/__tests__/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../ts/deployer/__tests__/utils.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { EPolicies, EInitialVoiceCreditProxies, EMode, ISetVerifyingKeysArgs, BasePolicy, ConstantInitialVoiceCreditProxy } from "@maci-protocol/sdk";
1
+ import { EInitialVoiceCreditProxies, EMode, ISetVerifyingKeysArgs, BasePolicy, ConstantInitialVoiceCreditProxy, ConstantInitialVoiceCreditProxyFactory, EInitialVoiceCreditProxiesFactories } from "@maci-protocol/sdk";
2
2
  import { Signer } from "ethers";
3
3
  import { type Hex } from "viem";
4
4
  import { ESupportedNetworks } from "../common";
5
5
  import { FileService } from "../file/file.service";
6
6
  import { SessionKeysService } from "../sessionKeys/sessionKeys.service";
7
- import { IDeployMaciArgs, IDeployPollArgs, IPolicyArgs, IInitialVoiceCreditProxyArgs, IVerifyingKeysRegistryArgs } from "./types";
7
+ import { IDeployMaciArgs, IDeployPollArgs, IInitialVoiceCreditProxyArgs, IVerifyingKeysRegistryArgs, IDeployPolicyConfig } from "./types";
8
8
  /**
9
9
  * DeployerService is responsible for deploying contracts.
10
10
  */
@@ -26,12 +26,21 @@ export declare class DeployerService {
26
26
  * always deploy and save it
27
27
  *
28
28
  * @param signer - the signer
29
- * @param policyType - the policy type
30
29
  * @param network - the network
31
- * @param args - the policy args
30
+ * @param policyConfig - the policy configuration parameters
32
31
  * @returns - the policy contract
33
32
  */
34
- deployAndSavePolicy(signer: Signer, policyType: EPolicies, network: ESupportedNetworks, args?: IPolicyArgs): Promise<BasePolicy>;
33
+ deployAndSavePolicy(signer: Signer, network: ESupportedNetworks, policyConfig: IDeployPolicyConfig): Promise<BasePolicy>;
34
+ /**
35
+ * Get the voice credit proxy factory contract object
36
+ * always deploy and save it
37
+ *
38
+ * @param signer - the signer
39
+ * @param voiceCreditProxyFactoryType - the voice credit proxy factory type
40
+ * @param network - the network
41
+ * @returns - the voice credit proxy factory contract
42
+ */
43
+ deployAndSaveVoiceCreditProxyFactory(signer: Signer, voiceCreditProxyFactoryType: EInitialVoiceCreditProxiesFactories, network: ESupportedNetworks): Promise<ConstantInitialVoiceCreditProxyFactory>;
35
44
  /**
36
45
  * Get the voice credit proxy contract object
37
46
  * always deploy and save it
@@ -39,10 +48,11 @@ export declare class DeployerService {
39
48
  * @param signer - the signer
40
49
  * @param voiceCreditProxyType - the voice credit proxy type
41
50
  * @param network - the network
51
+ * @param initialVoiceCreditProxyFactory - the initial voice credit proxy factory
42
52
  * @param args - the args
43
53
  * @returns - the voice credit proxy contract
44
54
  */
45
- deployAndSaveVoiceCreditProxy(signer: Signer, voiceCreditProxyType: EInitialVoiceCreditProxies, network: ESupportedNetworks, args?: IInitialVoiceCreditProxyArgs): Promise<ConstantInitialVoiceCreditProxy>;
55
+ deployAndSaveVoiceCreditProxy(signer: Signer, voiceCreditProxyType: EInitialVoiceCreditProxies, network: ESupportedNetworks, initialVoiceCreditProxyFactory: ConstantInitialVoiceCreditProxyFactory, args?: IInitialVoiceCreditProxyArgs): Promise<ConstantInitialVoiceCreditProxy>;
46
56
  /**
47
57
  * Get verifying keys arguments (specially zkey paths)
48
58
  * @param signer - the signer
@@ -51,7 +61,7 @@ export declare class DeployerService {
51
61
  * @param mode - use QV or NON_QV
52
62
  * @returns SetVerifyingKeysArgs
53
63
  */
54
- getVerifyingKeysArgs(signer: Signer, verifyingKeysRegistryAddress: Hex, verifyingKeysRegistryArgs: IVerifyingKeysRegistryArgs, mode: EMode): Promise<ISetVerifyingKeysArgs>;
64
+ getVerifyingKeysArgs(signer: Signer, verifyingKeysRegistryAddress: Hex, verifyingKeysRegistryArgs: IVerifyingKeysRegistryArgs, modes: EMode[]): Promise<ISetVerifyingKeysArgs>;
55
65
  /**
56
66
  * Deploy MACI contracts
57
67
  *
@@ -1 +1 @@
1
- {"version":3,"file":"deployer.service.d.ts","sourceRoot":"","sources":["../../../ts/deployer/deployer.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,SAAS,EAOT,0BAA0B,EAC1B,KAAK,EAEL,qBAAqB,EAarB,UAAU,EAIV,+BAA+B,EAEhC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAgB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAIhC,OAAO,EAAc,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EACL,eAAe,EACf,eAAe,EACf,WAAW,EACX,4BAA4B,EAU5B,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,qBACa,eAAe;IAYxB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAZ9B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAE1C;;;;OAIG;gBAEgB,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,WAAW;IAK3C;;;;;;;;;OASG;IACG,mBAAmB,CACvB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,SAAS,EACrB,OAAO,EAAE,kBAAkB,EAC3B,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,UAAU,CAAC;IAsItB;;;;;;;;;OASG;IACG,6BAA6B,CACjC,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,0BAA0B,EAChD,OAAO,EAAE,kBAAkB,EAC3B,IAAI,CAAC,EAAE,4BAA4B,GAClC,OAAO,CAAC,+BAA+B,CAAC;IA6B3C;;;;;;;OAOG;IACG,oBAAoB,CACxB,MAAM,EAAE,MAAM,EACd,4BAA4B,EAAE,GAAG,EACjC,yBAAyB,EAAE,0BAA0B,EACrD,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,qBAAqB,CAAC;IAiDjC;;;;;;;OAOG;IACG,UAAU,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAuD/G;;;;;OAKG;IACG,UAAU,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CA8F/G"}
1
+ {"version":3,"file":"deployer.service.d.ts","sourceRoot":"","sources":["../../../ts/deployer/deployer.service.ts"],"names":[],"mappings":"AACA,OAAO,EASL,0BAA0B,EAC1B,KAAK,EAEL,qBAAqB,EAarB,UAAU,EAIV,+BAA+B,EA2B/B,sCAAsC,EACtC,mCAAmC,EACpC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAgB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,EAAc,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EACL,eAAe,EACf,eAAe,EACf,4BAA4B,EAU5B,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,qBACa,eAAe;IAYxB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAZ9B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAE1C;;;;OAIG;gBAEgB,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,WAAW;IAK3C;;;;;;;;OAQG;IACG,mBAAmB,CACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,kBAAkB,EAC3B,YAAY,EAAE,mBAAmB,GAChC,OAAO,CAAC,UAAU,CAAC;IAwStB;;;;;;;;OAQG;IACG,oCAAoC,CACxC,MAAM,EAAE,MAAM,EACd,2BAA2B,EAAE,mCAAmC,EAChE,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,sCAAsC,CAAC;IAsBlD;;;;;;;;;;OAUG;IACG,6BAA6B,CACjC,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,0BAA0B,EAChD,OAAO,EAAE,kBAAkB,EAC3B,8BAA8B,EAAE,sCAAsC,EACtE,IAAI,CAAC,EAAE,4BAA4B,GAClC,OAAO,CAAC,+BAA+B,CAAC;IA4B3C;;;;;;;OAOG;IACG,oBAAoB,CACxB,MAAM,EAAE,MAAM,EACd,4BAA4B,EAAE,GAAG,EACjC,yBAAyB,EAAE,0BAA0B,EACrD,KAAK,EAAE,KAAK,EAAE,GACb,OAAO,CAAC,qBAAqB,CAAC;IA2DjC;;;;;;;OAOG;IACG,UAAU,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAuD/G;;;;;OAKG;IACG,UAAU,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CA0G/G"}