@maci-protocol/coordinator 0.0.0-ci.6ccbb3c → 0.0.0-ci.70ceb0a

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 (85) hide show
  1. package/README.md +13 -6
  2. package/build/hardhat.config.cjs +3 -0
  3. package/build/hardhat.config.cjs.map +1 -1
  4. package/build/hardhat.config.d.cts +3 -0
  5. package/build/tests/constants.d.ts +0 -1
  6. package/build/tests/constants.d.ts.map +1 -1
  7. package/build/tests/constants.js +0 -1
  8. package/build/tests/constants.js.map +1 -1
  9. package/build/tests/e2e.aa.test.js +17 -14
  10. package/build/tests/e2e.aa.test.js.map +1 -1
  11. package/build/tests/e2e.deploy.test.js +112 -66
  12. package/build/tests/e2e.deploy.test.js.map +1 -1
  13. package/build/tests/utils.d.ts +6 -0
  14. package/build/tests/utils.d.ts.map +1 -1
  15. package/build/tests/utils.js +12 -3
  16. package/build/tests/utils.js.map +1 -1
  17. package/build/ts/common/__tests__/common.test.js +2 -6
  18. package/build/ts/common/__tests__/common.test.js.map +1 -1
  19. package/build/ts/common/accountAbstraction.d.ts +2 -19
  20. package/build/ts/common/accountAbstraction.d.ts.map +1 -1
  21. package/build/ts/common/accountAbstraction.js +14 -43
  22. package/build/ts/common/accountAbstraction.js.map +1 -1
  23. package/build/ts/common/chain.d.ts +16 -0
  24. package/build/ts/common/chain.d.ts.map +1 -0
  25. package/build/ts/common/chain.js +35 -0
  26. package/build/ts/common/chain.js.map +1 -0
  27. package/build/ts/common/errors.d.ts +17 -18
  28. package/build/ts/common/errors.d.ts.map +1 -1
  29. package/build/ts/common/errors.js +17 -18
  30. package/build/ts/common/errors.js.map +1 -1
  31. package/build/ts/common/index.d.ts +2 -0
  32. package/build/ts/common/index.d.ts.map +1 -1
  33. package/build/ts/common/index.js +2 -0
  34. package/build/ts/common/index.js.map +1 -1
  35. package/build/ts/common/types.d.ts +2 -3
  36. package/build/ts/common/types.d.ts.map +1 -1
  37. package/build/ts/deployer/__tests__/deployer.service.test.js +28 -287
  38. package/build/ts/deployer/__tests__/deployer.service.test.js.map +1 -1
  39. package/build/ts/deployer/__tests__/utils.d.ts +30 -1
  40. package/build/ts/deployer/__tests__/utils.d.ts.map +1 -1
  41. package/build/ts/deployer/__tests__/utils.js +39 -6
  42. package/build/ts/deployer/__tests__/utils.js.map +1 -1
  43. package/build/ts/deployer/deployer.service.d.ts +15 -51
  44. package/build/ts/deployer/deployer.service.d.ts.map +1 -1
  45. package/build/ts/deployer/deployer.service.js +149 -448
  46. package/build/ts/deployer/deployer.service.js.map +1 -1
  47. package/build/ts/deployer/dto.d.ts +4 -4
  48. package/build/ts/deployer/dto.d.ts.map +1 -1
  49. package/build/ts/deployer/dto.js +9 -1
  50. package/build/ts/deployer/dto.js.map +1 -1
  51. package/build/ts/deployer/types.d.ts +42 -12
  52. package/build/ts/deployer/types.d.ts.map +1 -1
  53. package/build/ts/proof/__tests__/proof.controller.test.js +3 -1
  54. package/build/ts/proof/__tests__/proof.controller.test.js.map +1 -1
  55. package/build/ts/proof/__tests__/proof.gateway.test.js +4 -1
  56. package/build/ts/proof/__tests__/proof.gateway.test.js.map +1 -1
  57. package/build/ts/proof/__tests__/proof.service.test.js +4 -2
  58. package/build/ts/proof/__tests__/proof.service.test.js.map +1 -1
  59. package/build/ts/proof/dto.d.ts +10 -9
  60. package/build/ts/proof/dto.d.ts.map +1 -1
  61. package/build/ts/proof/dto.js +42 -21
  62. package/build/ts/proof/dto.js.map +1 -1
  63. package/build/ts/proof/proof.controller.d.ts +3 -2
  64. package/build/ts/proof/proof.controller.d.ts.map +1 -1
  65. package/build/ts/proof/proof.controller.js.map +1 -1
  66. package/build/ts/proof/proof.service.d.ts +3 -3
  67. package/build/ts/proof/proof.service.d.ts.map +1 -1
  68. package/build/ts/proof/proof.service.js +34 -115
  69. package/build/ts/proof/proof.service.js.map +1 -1
  70. package/build/ts/proof/types.d.ts +16 -8
  71. package/build/ts/proof/types.d.ts.map +1 -1
  72. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.d.ts +53 -0
  73. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.d.ts.map +1 -0
  74. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.js +105 -0
  75. package/build/ts/sessionKeys/provider/KernelEIP1193Provider.js.map +1 -0
  76. package/build/ts/sessionKeys/sessionKeys.service.d.ts +13 -2
  77. package/build/ts/sessionKeys/sessionKeys.service.d.ts.map +1 -1
  78. package/build/ts/sessionKeys/sessionKeys.service.js +22 -4
  79. package/build/ts/sessionKeys/sessionKeys.service.js.map +1 -1
  80. package/build/tsconfig.build.tsbuildinfo +1 -1
  81. package/package.json +11 -9
  82. package/build/ts/deployer/utils.d.ts +0 -8
  83. package/build/ts/deployer/utils.d.ts.map +0 -1
  84. package/build/ts/deployer/utils.js +0 -9
  85. package/build/ts/deployer/utils.js.map +0 -1
package/README.md CHANGED
@@ -2,16 +2,23 @@
2
2
 
3
3
  Please refer to [Offchain relayer service documentation](https://maci.pse.dev/docs/category/offchain-relayer) for more information.
4
4
 
5
+ ## Requirements
6
+
7
+ 1. [Node.js](https://nodejs.org/en) version 20.0.0.
8
+ 2. [pnpm](https://pnpm.io/installation) package manager.
9
+ 3. [rapidsnark](https://github.com/iden3/rapidsnark) program.
10
+
5
11
  ## Instructions
6
12
 
7
13
  1. Add `.env` file (see `.env.example`).
8
- 2. Generate RSA key pair with `pnpm run generate-keypair`.
9
- 3. Download zkey files using `pnpm run download-zkeys:{type}` (only test type is available for now).
10
- 4. Make sure you copied RSA public key to your application. This will be needed for encrypting `Authorization` header and coordinator private key for proof generation. Also it can be accessed through API method `GET v1/proof/publicKey`.
11
- 5. Run `pnpm run start` to run the service.
12
- 6. All API calls must be called with `Authorization` header, where the value is encrypted with RSA public key you generated before. Header value contains message signature and message digest created by `COORDINATOR_ADDRESSES`. The format is `publicEncrypt({signature}:{digest})`.
14
+ 2. Remember to set up the rapidsnark file variable.
15
+ 3. Generate RSA key pair with `pnpm run generate-keypair`.
16
+ 4. Download zkey files using `pnpm run download-zkeys:{type}` (only test type is available for now).
17
+ 5. Make sure you copied RSA public key to your application. This will be needed for encrypting `Authorization` header and coordinator private key for proof generation. Also it can be accessed through API method `GET v1/proof/publicKey`.
18
+ 6. Run `pnpm run start` to run the service.
19
+ 7. All API calls must be called with `Authorization` header, where the value is encrypted with RSA public key you generated before. Header value contains message signature and message digest created by `COORDINATOR_ADDRESSES`. The format is `publicEncrypt({signature}:{digest})`.
13
20
  Make sure you set `COORDINATOR_ADDRESSES` env variable and sign any message with the addresses from your application (see [AccountSignatureGuard](./ts/auth/AccountSignatureGuard.service.ts)).
14
- 7. Proofs can be generated with `POST v1/proof/generate` API method or with Websockets (see [dto spec](./ts/proof/dto.ts), [controller](./ts/app.controller.ts) and [wsgateway](./ts/events/events.gateway.ts)).
21
+ 8. Proofs can be generated with `POST v1/proof/generate` API method or with Websockets (see [dto spec](./ts/proof/dto.ts), [controller](./ts/app.controller.ts) and [wsgateway](./ts/events/events.gateway.ts)).
15
22
 
16
23
  ## Subgraph deployment
17
24
 
@@ -23,6 +23,9 @@ module.exports = {
23
23
  loggingEnabled: false,
24
24
  },
25
25
  },
26
+ solidity: {
27
+ version: "0.8.28",
28
+ },
26
29
  paths: {
27
30
  sources: path.resolve(__dirname, parentDir, "./node_modules/@maci-protocol/sdk/node_modules/@maci-protocol/contracts/contracts"),
28
31
  artifacts: path.resolve(__dirname, parentDir, "./node_modules/@maci-protocol/sdk/node_modules/@maci-protocol/contracts/artifacts"),
@@ -1 +1 @@
1
- {"version":3,"file":"hardhat.config.cjs","sourceRoot":"","sources":["../hardhat.config.cjs"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,OAAO,CAAC,kCAAkC,CAAC,CAAC;AAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEjC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7B,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1D,MAAM,aAAa,GAAG,6DAA6D,CAAC;AAEpF,MAAM,CAAC,OAAO,GAAG;IACf,cAAc,EAAE,SAAS;IACzB,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,uBAAuB;YAC/D,QAAQ,EAAE;gBACR,QAAQ,EAAE,aAAa;gBACvB,IAAI,EAAE,gBAAgB;gBACtB,YAAY,EAAE,CAAC;gBACf,KAAK,EAAE,EAAE;aACV;YACD,cAAc,EAAE,KAAK;SACtB;QACD,OAAO,EAAE;YACP,cAAc,EAAE,KAAK;SACtB;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,CACnB,SAAS,EACT,SAAS,EACT,mFAAmF,CACpF;QACD,SAAS,EAAE,IAAI,CAAC,OAAO,CACrB,SAAS,EACT,SAAS,EACT,mFAAmF,CACpF;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"hardhat.config.cjs","sourceRoot":"","sources":["../hardhat.config.cjs"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,OAAO,CAAC,kCAAkC,CAAC,CAAC;AAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEjC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7B,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1D,MAAM,aAAa,GAAG,6DAA6D,CAAC;AAEpF,MAAM,CAAC,OAAO,GAAG;IACf,cAAc,EAAE,SAAS;IACzB,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,uBAAuB;YAC/D,QAAQ,EAAE;gBACR,QAAQ,EAAE,aAAa;gBACvB,IAAI,EAAE,gBAAgB;gBACtB,YAAY,EAAE,CAAC;gBACf,KAAK,EAAE,EAAE;aACV;YACD,cAAc,EAAE,KAAK;SACtB;QACD,OAAO,EAAE;YACP,cAAc,EAAE,KAAK;SACtB;KACF;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,QAAQ;KAClB;IACD,KAAK,EAAE;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,CACnB,SAAS,EACT,SAAS,EACT,mFAAmF,CACpF;QACD,SAAS,EAAE,IAAI,CAAC,OAAO,CACrB,SAAS,EACT,SAAS,EACT,mFAAmF,CACpF;KACF;CACF,CAAC"}
@@ -16,6 +16,9 @@ export namespace networks {
16
16
  export { loggingEnabled_1 as loggingEnabled };
17
17
  }
18
18
  }
19
+ export namespace solidity {
20
+ let version: string;
21
+ }
19
22
  export namespace paths {
20
23
  let sources: string;
21
24
  let artifacts: string;
@@ -4,5 +4,4 @@ export declare const testPollJoiningWitnessPath = "./zkeys/PollJoining_10_test/P
4
4
  export declare const testRapidsnarkPath: string;
5
5
  export declare const zeroUint256Encoded: string;
6
6
  export declare const oneUint256Encoded: string;
7
- export declare const pollDuration = 10;
8
7
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../tests/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,2DAA2D,CAAC;AAChG,eAAO,MAAM,uBAAuB,gFAAgF,CAAC;AACrH,eAAO,MAAM,0BAA0B,4EAA4E,CAAC;AACpH,eAAO,MAAM,kBAAkB,QAAyC,CAAC;AAEzE,eAAO,MAAM,kBAAkB,QAAsD,CAAC;AACtF,eAAO,MAAM,iBAAiB,QAAsD,CAAC;AAErF,eAAO,MAAM,YAAY,KAAK,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../tests/constants.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,uBAAuB,2DAA2D,CAAC;AAChG,eAAO,MAAM,uBAAuB,gFAAgF,CAAC;AACrH,eAAO,MAAM,0BAA0B,4EAA4E,CAAC;AACpH,eAAO,MAAM,kBAAkB,QAAyC,CAAC;AAEzE,eAAO,MAAM,kBAAkB,QAAsD,CAAC;AACtF,eAAO,MAAM,iBAAiB,QAAsD,CAAC"}
@@ -6,5 +6,4 @@ export const testPollJoiningWitnessPath = "./zkeys/PollJoining_10_test/PollJoini
6
6
  export const testRapidsnarkPath = `${homedir()}/rapidsnark/build/prover`;
7
7
  export const zeroUint256Encoded = AbiCoder.defaultAbiCoder().encode(["uint256"], [0]);
8
8
  export const oneUint256Encoded = AbiCoder.defaultAbiCoder().encode(["uint256"], [1]);
9
- export const pollDuration = 10; // 100 seconds (added to unix timestamp of start date)
10
9
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../tests/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,MAAM,CAAC,MAAM,uBAAuB,GAAG,wDAAwD,CAAC;AAChG,MAAM,CAAC,MAAM,uBAAuB,GAAG,6EAA6E,CAAC;AACrH,MAAM,CAAC,MAAM,0BAA0B,GAAG,yEAAyE,CAAC;AACpH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,OAAO,EAAE,0BAA0B,CAAC;AAEzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAErF,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC,CAAC,sDAAsD"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../tests/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,MAAM,CAAC,MAAM,uBAAuB,GAAG,wDAAwD,CAAC;AAChG,MAAM,CAAC,MAAM,uBAAuB,GAAG,6EAA6E,CAAC;AACrH,MAAM,CAAC,MAAM,0BAA0B,GAAG,yEAAyE,CAAC;AACpH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,OAAO,EAAE,0BAA0B,CAAC;AAEzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { sleep } from "@maci-protocol/sdk";
1
2
  import { zeroAddress } from "viem";
2
3
  import { ErrorCodes, ESupportedNetworks } from "../ts/common";
3
4
  import { CryptoService } from "../ts/crypto/crypto.service";
@@ -14,43 +15,44 @@ describe("E2E Account Abstraction Tests", () => {
14
15
  const proofService = new ProofGeneratorService(cryptoService, fileService, sessionKeyService);
15
16
  const deployerService = new DeployerService(sessionKeyService, fileService);
16
17
  // using an already deployed maci contract
17
- const maciContract = "0xf281870519822f302B13c07252d0f6A71E8D023e";
18
- const pollId = 2;
18
+ let maciContract = "";
19
+ let pollId;
19
20
  let approval;
20
21
  let sessionKeyAddress;
21
22
  beforeAll(async () => {
22
- approval = await generateApproval(sessionKeyAddress);
23
23
  sessionKeyAddress = (await sessionKeyService.generateSessionKey()).sessionKeyAddress;
24
+ approval = await generateApproval(sessionKeyAddress);
24
25
  });
25
26
  describe("deploy", () => {
26
27
  describe("deployMaci", () => {
27
28
  it("should deploy all maci related contracts", async () => {
28
29
  const { address: maciAddress } = await deployerService.deployMaci({
29
- approval,
30
- sessionKeyAddress,
31
30
  chain: ESupportedNetworks.OPTIMISM_SEPOLIA,
32
31
  config: testMaciDeploymentConfig,
33
32
  });
33
+ maciContract = maciAddress;
34
34
  expect(maciAddress).not.toBe(zeroAddress);
35
35
  });
36
36
  });
37
37
  describe("deployPoll", () => {
38
38
  it("should deploy a poll", async () => {
39
- // Serialize the config with the custom serializer
40
- const serializedConfig = JSON.stringify(testPollDeploymentConfig);
41
- const pollConfig = JSON.parse(serializedConfig);
42
39
  const { pollId: poll } = await deployerService.deployPoll({
43
- approval,
44
- sessionKeyAddress,
45
40
  chain: ESupportedNetworks.OPTIMISM_SEPOLIA,
46
- config: pollConfig,
41
+ config: {
42
+ ...testPollDeploymentConfig,
43
+ startDate: Math.floor(Date.now() / 1000) + 100,
44
+ endDate: Math.floor(Date.now() / 1000) + 200,
45
+ },
47
46
  });
48
47
  expect(poll).toBeDefined();
48
+ pollId = Number.parseInt(poll, 10);
49
49
  });
50
50
  });
51
51
  });
52
52
  describe("merge", () => {
53
53
  test("should return true when there are no errors", async () => {
54
+ // wait until we can complete a poll
55
+ await sleep(600);
54
56
  const { sessionKeyAddress: sessionKey } = await sessionKeyService.generateSessionKey();
55
57
  const generatedApproval = await generateApproval(sessionKey);
56
58
  const merged = await proofService.merge({
@@ -65,13 +67,14 @@ describe("E2E Account Abstraction Tests", () => {
65
67
  test("should throw when given an invalid pollId", async () => {
66
68
  const { sessionKeyAddress: sessionKey } = await sessionKeyService.generateSessionKey();
67
69
  const generatedApproval = await generateApproval(sessionKey);
70
+ const invalidPollId = 50000;
68
71
  await expect(proofService.merge({
69
72
  maciContractAddress: maciContract,
70
- pollId: 50000,
73
+ pollId: invalidPollId,
71
74
  sessionKeyAddress: sessionKey,
72
75
  approval: generatedApproval,
73
76
  chain: ESupportedNetworks.OPTIMISM_SEPOLIA,
74
- })).rejects.toThrow(ErrorCodes.POLL_NOT_FOUND.toString());
77
+ })).rejects.toThrow(`MACI contract doesn't have any deployed poll ${invalidPollId}`);
75
78
  });
76
79
  });
77
80
  describe("sessionKeys", () => {
@@ -82,7 +85,7 @@ describe("E2E Account Abstraction Tests", () => {
82
85
  expect(client.key).toBe("Account");
83
86
  expect(client.account.address).not.toBe(zeroAddress);
84
87
  expect(client.account.kernelVersion).toBe(KERNEL_VERSION);
85
- expect(client.account.entryPoint).toBe(ENTRY_POINT);
88
+ expect(client.account.entryPoint.version).toBe(ENTRY_POINT.version);
86
89
  // this is an account with limited permissions so no sudo validator
87
90
  expect(client.account.kernelPluginManager.address).toBe(zeroAddress);
88
91
  expect(client.account.kernelPluginManager.sudoValidator).toBe(undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"e2e.aa.test.js","sourceRoot":"","sources":["../../tests/e2e.aa.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE3E,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,MAAM,iBAAiB,GAAG,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,qBAAqB,CAAC,aAAa,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC9F,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAE5E,0CAA0C;IAC1C,MAAM,YAAY,GAAG,4CAA4C,CAAC;IAClE,MAAM,MAAM,GAAG,CAAC,CAAC;IAEjB,IAAI,QAAgB,CAAC;IACrB,IAAI,iBAAsB,CAAC;IAE3B,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,QAAQ,GAAG,MAAM,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QACrD,iBAAiB,GAAG,CAAC,MAAM,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,CAAC,iBAAiB,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;YAC1B,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;gBACxD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC;oBAChE,QAAQ;oBACR,iBAAiB;oBACjB,KAAK,EAAE,kBAAkB,CAAC,gBAAgB;oBAC1C,MAAM,EAAE,wBAAwB;iBACjC,CAAC,CAAC;gBAEH,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;YAC1B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;gBACpC,kDAAkD;gBAClD,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;gBAClE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAsB,CAAC;gBACrE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC;oBACxD,QAAQ;oBACR,iBAAiB;oBACjB,KAAK,EAAE,kBAAkB,CAAC,gBAAgB;oBAC1C,MAAM,EAAE,UAAU;iBACnB,CAAC,CAAC;gBAEH,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,MAAM,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;YACvF,MAAM,iBAAiB,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAE7D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC;gBACtC,mBAAmB,EAAE,YAAY;gBACjC,MAAM;gBACN,iBAAiB,EAAE,UAAU;gBAC7B,QAAQ,EAAE,iBAAiB;gBAC3B,KAAK,EAAE,kBAAkB,CAAC,gBAAgB;aAC3C,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,MAAM,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;YACvF,MAAM,iBAAiB,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAE7D,MAAM,MAAM,CACV,YAAY,CAAC,KAAK,CAAC;gBACjB,mBAAmB,EAAE,YAAY;gBACjC,MAAM,EAAE,KAAK;gBACb,iBAAiB,EAAE,UAAU;gBAC7B,QAAQ,EAAE,iBAAiB;gBAC3B,KAAK,EAAE,kBAAkB,CAAC,gBAAgB;aAC3C,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,4BAA4B,CACjE,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,CAAC,gBAAgB,CACpC,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpD,mEAAmE;YACnE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEzE,qBAAqB;YACrB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC;gBACtC,EAAE,EAAE,WAAW;gBACf,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;YAC9F,iBAAiB,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;YAE1D,MAAM,MAAM,CACV,iBAAiB,CAAC,4BAA4B,CAC5C,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,CAAC,gBAAgB,CACpC,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"e2e.aa.test.js","sourceRoot":"","sources":["../../tests/e2e.aa.test.ts"],"names":[],"mappings":"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"}
@@ -1,51 +1,54 @@
1
- // To only run this file: pnpm exec jest --testPathPattern=tests/e2e.deploy.test.ts
2
- import { generateRandomSalt } from "@maci-protocol/crypto";
3
1
  import { Keypair } from "@maci-protocol/domainobjs";
4
- import { joinPoll, publish, signup, sleep } from "@maci-protocol/sdk";
2
+ import { ContractStorage, joinPoll, signup, sleep } from "@maci-protocol/sdk";
5
3
  import { ValidationPipe } from "@nestjs/common";
6
4
  import { Test } from "@nestjs/testing";
7
5
  import dotenv from "dotenv";
8
- import hardhat from "hardhat";
9
6
  import { io } from "socket.io-client";
10
7
  import { zeroAddress } from "viem";
8
+ import path from "path";
11
9
  import { AppModule } from "../ts/app.module";
12
- import { ESupportedNetworks } from "../ts/common";
10
+ import { ESupportedNetworks, getSigner } from "../ts/common";
13
11
  import { getPublicClient } from "../ts/common/accountAbstraction";
14
- import { testMaciDeploymentConfig, testPollDeploymentConfig } from "../ts/deployer/__tests__/utils";
12
+ import { coordinatorMACIKeypair, pollStartDateExtraSeconds, testMaciDeploymentConfig, testPollDeploymentConfig, } from "../ts/deployer/__tests__/utils";
13
+ import { DeployerModule } from "../ts/deployer/deployer.module";
15
14
  import { FileModule } from "../ts/file/file.module";
15
+ import { ProofModule } from "../ts/proof/proof.module";
16
16
  import { generateApproval, getKernelAccount } from "../ts/sessionKeys/__tests__/utils";
17
- import { pollDuration, pollJoiningTestZkeyPath, testPollJoiningWasmPath, testPollJoiningWitnessPath, testRapidsnarkPath, zeroUint256Encoded, } from "./constants";
18
- import { getAuthorizationHeader, rechargeGasIfNeeded } from "./utils";
17
+ import { SessionKeysModule } from "../ts/sessionKeys/sessionKeys.module";
18
+ import { pollJoiningTestZkeyPath, testPollJoiningWasmPath, testPollJoiningWitnessPath, testRapidsnarkPath, zeroUint256Encoded, } from "./constants";
19
+ import { encryptWithCoordinatorRSAPublicKey, getAuthorizationHeader, rechargeGasIfNeeded } from "./utils";
19
20
  dotenv.config();
20
- const LOCALHOST = "http://localhost:3000";
21
+ jest.setTimeout(700000); // Sets timeout to 700 seconds
22
+ const TEST_URL = "http://localhost:3000/v1";
23
+ const CHAIN = ESupportedNetworks.OPTIMISM_SEPOLIA;
24
+ const REGEX_SUBGRAPH = /^https:\/\/api\.studio\.thegraph\.com\/query\/\d+\/maci-subgraph\/v0\.0\.\d+$/;
21
25
  const NUM_USERS = 1;
22
- const voteOptions = {
26
+ const VOTE_OPTIONS = {
23
27
  "0": 0,
24
28
  "1": 0,
25
29
  };
26
30
  describe("E2E Deployment Tests", () => {
27
31
  let signer;
28
32
  let encryptedHeader;
29
- let coordinatorKeypair;
30
33
  let sessionKeyAddress;
31
34
  let approval;
32
35
  let app;
33
36
  let socket;
34
- const publicClient = getPublicClient(ESupportedNetworks.OPTIMISM_SEPOLIA);
37
+ const publicClient = getPublicClient(CHAIN);
35
38
  let maciAddress;
36
39
  let pollId;
40
+ const pollDuration = 600;
37
41
  // set up coordinator address
38
42
  beforeAll(async () => {
39
- [signer] = await hardhat.ethers.getSigners();
43
+ signer = getSigner(CHAIN);
40
44
  encryptedHeader = await getAuthorizationHeader(signer);
41
- coordinatorKeypair = new Keypair();
42
45
  process.env.COORDINATOR_ADDRESSES = await signer.getAddress();
43
46
  await rechargeGasIfNeeded(process.env.COORDINATOR_ADDRESSES, "0.007", "0.007");
44
47
  });
45
48
  // set up NestJS app
46
49
  beforeAll(async () => {
47
50
  const moduleFixture = await Test.createTestingModule({
48
- imports: [AppModule, FileModule],
51
+ imports: [AppModule, FileModule, DeployerModule, ProofModule, SessionKeysModule],
49
52
  }).compile();
50
53
  app = moduleFixture.createNestApplication();
51
54
  app.useGlobalPipes(new ValidationPipe({ transform: true }));
@@ -54,6 +57,8 @@ describe("E2E Deployment Tests", () => {
54
57
  });
55
58
  afterAll(async () => {
56
59
  await app.close();
60
+ const storageInstance = ContractStorage.getInstance(path.join(process.cwd(), "deployed-contracts.json"));
61
+ storageInstance.cleanup(CHAIN);
57
62
  });
58
63
  // set up auth header in WS connection
59
64
  beforeEach(async () => {
@@ -75,8 +80,17 @@ describe("E2E Deployment Tests", () => {
75
80
  socket.disconnect();
76
81
  });
77
82
  // run tests
83
+ test("should retrieve RSA public key", async () => {
84
+ const response = await fetch(`${TEST_URL}/proof/publicKey`, {
85
+ method: "GET",
86
+ });
87
+ const body = (await response.json());
88
+ expect(response.status).toBe(200);
89
+ expect(body.publicKey).toBeDefined();
90
+ // this RSA should be used in the encrypted auth header and the encrypted coordinator maci private key
91
+ });
78
92
  test("should retrieve the session key address", async () => {
79
- const response = await fetch(`${LOCALHOST}/v1/session-keys/generate`, {
93
+ const response = await fetch(`${TEST_URL}/session-keys/generate`, {
80
94
  method: "GET",
81
95
  headers: {
82
96
  Authorization: encryptedHeader,
@@ -94,11 +108,13 @@ describe("E2E Deployment Tests", () => {
94
108
  test("should deploy MACI correctly", async () => {
95
109
  const config = testMaciDeploymentConfig;
96
110
  config.VerifyingKeysRegistry.args.stateTreeDepth = config.VerifyingKeysRegistry.args.stateTreeDepth.toString();
111
+ config.VerifyingKeysRegistry.args.pollStateTreeDepth =
112
+ config.VerifyingKeysRegistry.args.pollStateTreeDepth.toString();
97
113
  config.VerifyingKeysRegistry.args.intStateTreeDepth =
98
114
  config.VerifyingKeysRegistry.args.intStateTreeDepth.toString();
99
115
  config.VerifyingKeysRegistry.args.voteOptionTreeDepth =
100
116
  config.VerifyingKeysRegistry.args.voteOptionTreeDepth.toString();
101
- const response = await fetch(`${LOCALHOST}/v1/deploy/maci`, {
117
+ const response = await fetch(`${TEST_URL}/deploy/maci`, {
102
118
  method: "POST",
103
119
  headers: {
104
120
  Authorization: encryptedHeader,
@@ -107,7 +123,7 @@ describe("E2E Deployment Tests", () => {
107
123
  body: JSON.stringify({
108
124
  approval,
109
125
  sessionKeyAddress,
110
- chain: ESupportedNetworks.OPTIMISM_SEPOLIA,
126
+ chain: CHAIN,
111
127
  config,
112
128
  }),
113
129
  });
@@ -119,21 +135,18 @@ describe("E2E Deployment Tests", () => {
119
135
  });
120
136
  test("should deploy a poll correctly", async () => {
121
137
  const config = testPollDeploymentConfig;
122
- config.coordinatorPublicKey = coordinatorKeypair.publicKey.serialize();
123
138
  config.voteOptions = config.voteOptions.toString();
124
- const startDate = Math.floor(Date.now() / 1000) + 10;
139
+ const startDate = Math.floor(Date.now() / 1000) + pollStartDateExtraSeconds;
125
140
  config.startDate = startDate;
126
141
  config.endDate = startDate + pollDuration;
127
- const response = await fetch(`${LOCALHOST}/v1/deploy/poll`, {
142
+ const response = await fetch(`${TEST_URL}/deploy/poll`, {
128
143
  method: "POST",
129
144
  headers: {
130
145
  Authorization: encryptedHeader,
131
146
  "Content-Type": "application/json",
132
147
  },
133
148
  body: JSON.stringify({
134
- approval,
135
- sessionKeyAddress,
136
- chain: ESupportedNetworks.OPTIMISM_SEPOLIA,
149
+ chain: CHAIN,
137
150
  config,
138
151
  }),
139
152
  });
@@ -143,36 +156,14 @@ describe("E2E Deployment Tests", () => {
143
156
  // save them for next tests
144
157
  pollId = BigInt(body.pollId);
145
158
  });
146
- test("should deploy a subgraph correctly", async () => {
147
- const blockNumber = Number(await publicClient.getBlockNumber());
148
- const response = await fetch(`${LOCALHOST}/v1/subgraph/deploy`, {
149
- method: "POST",
150
- headers: {
151
- Authorization: encryptedHeader,
152
- "Content-Type": "application/json",
153
- },
154
- body: JSON.stringify({
155
- maciContractAddress: maciAddress,
156
- startBlock: blockNumber,
157
- network: ESupportedNetworks.OPTIMISM_SEPOLIA,
158
- name: process.env.SUBGRAPH_NAME,
159
- tag: `v0.0.${blockNumber}`, // different versions per test using block number
160
- }),
161
- });
162
- const body = (await response.json());
163
- const { url } = body;
164
- const regex = /^https:\/\/api\.studio\.thegraph\.com\/query\/\d+\/maci-subgraph\/v0\.0\.\d+$/;
165
- expect(response.status).toBe(201);
166
- expect(body.url).toBeDefined();
167
- expect(regex.test(url)).toBe(true);
168
- });
169
159
  test("should allow voting on a poll", async () => {
160
+ await sleep(pollStartDateExtraSeconds * 1000);
170
161
  for (let i = 0; i < NUM_USERS; i += 1) {
171
162
  const keypairUser = new Keypair();
172
163
  const userPublicKey = keypairUser.publicKey.serialize();
173
164
  const userPrivateKey = keypairUser.privateKey.serialize();
174
165
  const vote = i % 2;
175
- voteOptions[String(vote)] += 1;
166
+ VOTE_OPTIONS[String(vote)] += 1;
176
167
  // user signs up to MACI
177
168
  // eslint-disable-next-line no-await-in-loop
178
169
  await signup({
@@ -197,37 +188,92 @@ describe("E2E Deployment Tests", () => {
197
188
  ivcpDataArg: zeroUint256Encoded,
198
189
  signer,
199
190
  });
200
- // user publishes a vote
201
- // eslint-disable-next-line no-await-in-loop
202
- const publishData = await publish({
203
- publicKey: userPublicKey,
204
- stateIndex: 1n,
205
- voteOptionIndex: BigInt(vote),
206
- nonce: 1n,
207
- pollId: BigInt(pollId),
208
- newVoteWeight: 1n,
209
- maciAddress,
210
- salt: generateRandomSalt(),
211
- privateKey: userPrivateKey,
212
- signer,
213
- });
214
- expect(publishData.hash).not.toBe(zeroAddress);
215
191
  }
216
192
  });
193
+ test("should deploy a subgraph correctly", async () => {
194
+ const blockNumber = await publicClient.getBlockNumber();
195
+ const response = await fetch(`${TEST_URL}/subgraph/deploy`, {
196
+ method: "POST",
197
+ headers: {
198
+ Authorization: encryptedHeader,
199
+ "Content-Type": "application/json",
200
+ },
201
+ body: JSON.stringify({
202
+ maciContractAddress: maciAddress,
203
+ startBlock: Number(blockNumber),
204
+ network: CHAIN,
205
+ name: process.env.SUBGRAPH_NAME,
206
+ tag: `v0.0.${blockNumber}`, // different versions per test using block number
207
+ }),
208
+ });
209
+ const body = (await response.json());
210
+ const { url } = body;
211
+ expect(response.status).toBe(201);
212
+ expect(body.url).toBeDefined();
213
+ expect(REGEX_SUBGRAPH.test(url)).toBe(true);
214
+ });
217
215
  test("should merge correctly", async () => {
218
- await sleep(10000);
219
- const response = await fetch(`${LOCALHOST}/v1/proof/merge`, {
216
+ await sleep(pollDuration * 2000);
217
+ const response = await fetch(`${TEST_URL}/proof/merge`, {
218
+ method: "POST",
219
+ headers: {
220
+ Authorization: encryptedHeader,
221
+ "Content-Type": "application/json",
222
+ },
223
+ body: JSON.stringify({
224
+ maciContractAddress: maciAddress,
225
+ pollId: Number(pollId),
226
+ approval,
227
+ sessionKeyAddress,
228
+ chain: CHAIN,
229
+ }),
230
+ });
231
+ expect(response.status).toBe(201);
232
+ });
233
+ test("should generate proofs correctly", async () => {
234
+ const blockNumber = await publicClient.getBlockNumber();
235
+ const encryptedCoordinatorPrivateKey = await encryptWithCoordinatorRSAPublicKey(coordinatorMACIKeypair.privateKey.serialize());
236
+ const response = await fetch(`${TEST_URL}/proof/generate`, {
220
237
  method: "POST",
221
238
  headers: {
222
239
  Authorization: encryptedHeader,
223
240
  "Content-Type": "application/json",
224
241
  },
225
242
  body: JSON.stringify({
243
+ poll: Number(pollId),
226
244
  maciContractAddress: maciAddress,
245
+ useQuadraticVoting: testPollDeploymentConfig.useQuadraticVoting,
246
+ encryptedCoordinatorPrivateKey,
247
+ startBlock: Number(blockNumber) - 100,
248
+ endBlock: Number(blockNumber) + 100,
249
+ blocksPerBatch: 20,
250
+ approval,
251
+ sessionKeyAddress,
252
+ chain: CHAIN,
253
+ }),
254
+ });
255
+ const body = (await response.json());
256
+ expect(response.status).toBe(201);
257
+ expect(body.processProofs).toBeDefined();
258
+ expect(body.processProofs.length).toBeGreaterThan(0);
259
+ expect(body.tallyProofs).toBeDefined();
260
+ expect(body.tallyProofs.length).toBeGreaterThan(0);
261
+ expect(body.tallyData).toBeDefined();
262
+ expect(body.tallyData.results).toBeDefined();
263
+ });
264
+ test("should submit results on-chain correctly", async () => {
265
+ const response = await fetch(`${TEST_URL}/proof/submit`, {
266
+ method: "POST",
267
+ headers: {
268
+ Authorization: encryptedHeader,
269
+ "Content-Type": "application/json",
270
+ },
271
+ body: JSON.stringify({
227
272
  pollId: Number(pollId),
273
+ maciContractAddress: maciAddress,
228
274
  approval,
229
275
  sessionKeyAddress,
230
- chain: ESupportedNetworks.OPTIMISM_SEPOLIA,
276
+ chain: CHAIN,
231
277
  }),
232
278
  });
233
279
  expect(response.status).toBe(201);
@@ -1 +1 @@
1
- {"version":3,"file":"e2e.deploy.test.js","sourceRoot":"","sources":["../../tests/e2e.deploy.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"e2e.deploy.test.js","sourceRoot":"","sources":["../../tests/e2e.deploy.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  import { type Signer } from "ethers";
2
2
  import { Hex } from "viem";
3
+ /**
4
+ * Encrypt a message using the coordinator's public key
5
+ * @param message to encrypt
6
+ * @returns encrypted message (ciphertext)
7
+ */
8
+ export declare const encryptWithCoordinatorRSAPublicKey: (message: string) => Promise<string>;
3
9
  /**
4
10
  * Sign a message with a wallet and encrypt it using the coordinator's public key
5
11
  * @param signer
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../tests/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAmC,GAAG,EAAoB,MAAM,MAAM,CAAC;AAY9E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CAM3E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,GAAG,EACZ,qBAAqB,MAAM,EAC3B,oBAAoB,MAAM,KACzB,OAAO,CAAC,IAAI,CAgBd,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../tests/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAmC,GAAG,EAAoB,MAAM,MAAM,CAAC;AAY9E;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAIxF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CAK3E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,GAAG,EACZ,qBAAqB,MAAM,EAC3B,oBAAoB,MAAM,KACzB,OAAO,CAAC,IAAI,CAgBd,CAAC"}
@@ -8,17 +8,26 @@ import { ESupportedNetworks } from "../ts/common";
8
8
  import { getPublicClient } from "../ts/common/accountAbstraction";
9
9
  import { CryptoService } from "../ts/crypto/crypto.service";
10
10
  dotenv.config();
11
+ /**
12
+ * Encrypt a message using the coordinator's public key
13
+ * @param message to encrypt
14
+ * @returns encrypted message (ciphertext)
15
+ */
16
+ export const encryptWithCoordinatorRSAPublicKey = async (message) => {
17
+ const cryptoService = new CryptoService();
18
+ const publicKey = await fs.promises.readFile(process.env.COORDINATOR_PUBLIC_KEY_PATH);
19
+ return cryptoService.encrypt(publicKey, message);
20
+ };
11
21
  /**
12
22
  * Sign a message with a wallet and encrypt it using the coordinator's public key
13
23
  * @param signer
14
24
  * @returns Authorization header
15
25
  */
16
26
  export const getAuthorizationHeader = async (signer) => {
17
- const cryptoService = new CryptoService();
18
- const publicKey = await fs.promises.readFile(process.env.COORDINATOR_PUBLIC_KEY_PATH);
19
27
  const signature = await signer.signMessage("message");
20
28
  const digest = Buffer.from(getBytes(hashMessage("message"))).toString("hex");
21
- return `Bearer ${cryptoService.encrypt(publicKey, `${signature}:${digest}`)}`;
29
+ const encrypted = await encryptWithCoordinatorRSAPublicKey(`${signature}:${digest}`);
30
+ return `Bearer ${encrypted}`;
22
31
  };
23
32
  /**
24
33
  * Reloads with ETH in case the smart account is out of gas (less than 0.05)
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../tests/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAe,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAO,IAAI,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,MAAc,EAAmB,EAAE;IAC9E,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA4B,CAAC,CAAC;IACvF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7E,OAAO,UAAU,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC;AAChF,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,OAAY,EACZ,mBAA2B,EAC3B,kBAA0B,EACX,EAAE;IACjB,MAAM,YAAY,GAAG,eAAe,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,cAAc,IAAI,mBAAmB,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAwB,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,kBAAkB,CAAC;YACtC,KAAK,EAAE,eAAe;YACtB,SAAS,EAAE,IAAI,EAAE;SAClB,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,eAAe,CAAC;YACjC,OAAO,EAAE,WAAW;YACpB,EAAE,EAAE,OAAO;YACX,KAAK,EAAE,UAAU,CAAC,kBAAkB,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../tests/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAe,MAAM,QAAQ,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAO,IAAI,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB;;;;GAIG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,KAAK,EAAE,OAAe,EAAmB,EAAE;IAC3F,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA4B,CAAC,CAAC;IACvF,OAAO,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,MAAc,EAAmB,EAAE;IAC9E,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7E,MAAM,SAAS,GAAG,MAAM,kCAAkC,CAAC,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC,CAAC;IACrF,OAAO,UAAU,SAAS,EAAE,CAAC;AAC/B,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,OAAY,EACZ,mBAA2B,EAC3B,kBAA0B,EACX,EAAE;IACjB,MAAM,YAAY,GAAG,eAAe,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,cAAc,IAAI,mBAAmB,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAwB,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,kBAAkB,CAAC;YACtC,KAAK,EAAE,eAAe;YACtB,SAAS,EAAE,IAAI,EAAE;SAClB,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,eAAe,CAAC;YACjC,OAAO,EAAE,WAAW;YACpB,EAAE,EAAE,OAAO;YACX,KAAK,EAAE,UAAU,CAAC,kBAAkB,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { mainnet, sepolia, arbitrum, arbitrumSepolia, baseSepolia, lineaSepolia, scrollSepolia, scroll, base, holesky, linea, bsc, gnosis, polygon, optimism, optimismSepolia, } from "viem/chains";
2
- import { genAlchemyRPCUrl, getBundlerClient, getDeployedContractAddress, getPublicClient, getZeroDevBundlerRPCUrl, } from "../accountAbstraction";
2
+ import { getBundlerClient, getPublicClient, getZeroDevBundlerRPCUrl } from "../accountAbstraction";
3
+ import { genAlchemyRPCUrl } from "../chain";
3
4
  import { ErrorCodes } from "../errors";
4
5
  import { ESupportedNetworks, viemChain } from "../networks";
5
6
  describe("common", () => {
@@ -47,11 +48,6 @@ describe("common", () => {
47
48
  expect(() => genAlchemyRPCUrl(ESupportedNetworks.OPTIMISM_SEPOLIA)).toThrow(ErrorCodes.RPC_API_KEY_NOT_SET.toString());
48
49
  });
49
50
  });
50
- describe("getDeployedContractAddress", () => {
51
- test("should throw when the log is undefined", () => {
52
- expect(() => getDeployedContractAddress({})).toThrow();
53
- });
54
- });
55
51
  describe("viemChain", () => {
56
52
  test("should return correct chain for all supported networks", () => {
57
53
  expect(viemChain(ESupportedNetworks.ETHEREUM)).toBe(mainnet);