@maci-protocol/testing 0.0.0-ci.00107eb

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 (93) hide show
  1. package/CHANGELOG.md +262 -0
  2. package/LICENSE +21 -0
  3. package/README.md +16 -0
  4. package/build/hardhat.config.d.ts +5 -0
  5. package/build/hardhat.config.d.ts.map +1 -0
  6. package/build/hardhat.config.js +37 -0
  7. package/build/hardhat.config.js.map +1 -0
  8. package/build/ts/__tests__/e2e.full.test.d.ts +2 -0
  9. package/build/ts/__tests__/e2e.full.test.d.ts.map +1 -0
  10. package/build/ts/__tests__/e2e.full.test.js +839 -0
  11. package/build/ts/__tests__/e2e.full.test.js.map +1 -0
  12. package/build/ts/__tests__/e2e.nonQv.test.d.ts +2 -0
  13. package/build/ts/__tests__/e2e.nonQv.test.d.ts.map +1 -0
  14. package/build/ts/__tests__/e2e.nonQv.test.js +605 -0
  15. package/build/ts/__tests__/e2e.nonQv.test.js.map +1 -0
  16. package/build/ts/__tests__/e2e.test.d.ts +2 -0
  17. package/build/ts/__tests__/e2e.test.d.ts.map +1 -0
  18. package/build/ts/__tests__/e2e.test.js +1596 -0
  19. package/build/ts/__tests__/e2e.test.js.map +1 -0
  20. package/build/ts/__tests__/integration.test.d.ts +2 -0
  21. package/build/ts/__tests__/integration.test.d.ts.map +1 -0
  22. package/build/ts/__tests__/integration.test.js +288 -0
  23. package/build/ts/__tests__/integration.test.js.map +1 -0
  24. package/build/ts/__tests__/keyChange.test.d.ts +2 -0
  25. package/build/ts/__tests__/keyChange.test.d.ts.map +1 -0
  26. package/build/ts/__tests__/keyChange.test.js +455 -0
  27. package/build/ts/__tests__/keyChange.test.js.map +1 -0
  28. package/build/ts/__tests__/maciKeys.test.d.ts +2 -0
  29. package/build/ts/__tests__/maciKeys.test.d.ts.map +1 -0
  30. package/build/ts/__tests__/maciKeys.test.js +78 -0
  31. package/build/ts/__tests__/maciKeys.test.js.map +1 -0
  32. package/build/ts/__tests__/stress/stress.full.test.d.ts +2 -0
  33. package/build/ts/__tests__/stress/stress.full.test.d.ts.map +1 -0
  34. package/build/ts/__tests__/stress/stress.full.test.js +186 -0
  35. package/build/ts/__tests__/stress/stress.full.test.js.map +1 -0
  36. package/build/ts/__tests__/unit/fundWallet.test.d.ts +2 -0
  37. package/build/ts/__tests__/unit/fundWallet.test.d.ts.map +1 -0
  38. package/build/ts/__tests__/unit/fundWallet.test.js +15 -0
  39. package/build/ts/__tests__/unit/fundWallet.test.js.map +1 -0
  40. package/build/ts/__tests__/unit/joinPoll.test.d.ts +2 -0
  41. package/build/ts/__tests__/unit/joinPoll.test.d.ts.map +1 -0
  42. package/build/ts/__tests__/unit/joinPoll.test.js +160 -0
  43. package/build/ts/__tests__/unit/joinPoll.test.js.map +1 -0
  44. package/build/ts/__tests__/unit/poll.test.d.ts +2 -0
  45. package/build/ts/__tests__/unit/poll.test.d.ts.map +1 -0
  46. package/build/ts/__tests__/unit/poll.test.js +87 -0
  47. package/build/ts/__tests__/unit/poll.test.js.map +1 -0
  48. package/build/ts/__tests__/unit/publish.test.d.ts +2 -0
  49. package/build/ts/__tests__/unit/publish.test.d.ts.map +1 -0
  50. package/build/ts/__tests__/unit/publish.test.js +130 -0
  51. package/build/ts/__tests__/unit/publish.test.js.map +1 -0
  52. package/build/ts/__tests__/unit/setVerifyingKeys.test.d.ts +2 -0
  53. package/build/ts/__tests__/unit/setVerifyingKeys.test.d.ts.map +1 -0
  54. package/build/ts/__tests__/unit/setVerifyingKeys.test.js +52 -0
  55. package/build/ts/__tests__/unit/setVerifyingKeys.test.js.map +1 -0
  56. package/build/ts/__tests__/unit/signup.test.d.ts +2 -0
  57. package/build/ts/__tests__/unit/signup.test.d.ts.map +1 -0
  58. package/build/ts/__tests__/unit/signup.test.js +65 -0
  59. package/build/ts/__tests__/unit/signup.test.js.map +1 -0
  60. package/build/ts/__tests__/unit/timeTravel.test.d.ts +2 -0
  61. package/build/ts/__tests__/unit/timeTravel.test.d.ts.map +1 -0
  62. package/build/ts/__tests__/unit/timeTravel.test.js +14 -0
  63. package/build/ts/__tests__/unit/timeTravel.test.js.map +1 -0
  64. package/build/ts/__tests__/unit/utils.test.d.ts +2 -0
  65. package/build/ts/__tests__/unit/utils.test.d.ts.map +1 -0
  66. package/build/ts/__tests__/unit/utils.test.js +36 -0
  67. package/build/ts/__tests__/unit/utils.test.js.map +1 -0
  68. package/build/ts/constants.d.ts +82 -0
  69. package/build/ts/constants.d.ts.map +1 -0
  70. package/build/ts/constants.js +198 -0
  71. package/build/ts/constants.js.map +1 -0
  72. package/build/ts/index.d.ts +4 -0
  73. package/build/ts/index.d.ts.map +1 -0
  74. package/build/ts/index.js +23 -0
  75. package/build/ts/index.js.map +1 -0
  76. package/build/ts/testingClass.d.ts +43 -0
  77. package/build/ts/testingClass.d.ts.map +1 -0
  78. package/build/ts/testingClass.js +145 -0
  79. package/build/ts/testingClass.js.map +1 -0
  80. package/build/ts/types.d.ts +99 -0
  81. package/build/ts/types.d.ts.map +1 -0
  82. package/build/ts/types.js +3 -0
  83. package/build/ts/types.js.map +1 -0
  84. package/build/ts/user.d.ts +27 -0
  85. package/build/ts/user.d.ts.map +1 -0
  86. package/build/ts/user.js +36 -0
  87. package/build/ts/user.js.map +1 -0
  88. package/build/ts/utils.d.ts +70 -0
  89. package/build/ts/utils.d.ts.map +1 -0
  90. package/build/ts/utils.js +192 -0
  91. package/build/ts/utils.js.map +1 -0
  92. package/build/tsconfig.tsbuildinfo +1 -0
  93. package/package.json +54 -0
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const crypto_1 = require("@maci-protocol/crypto");
4
+ const domainobjs_1 = require("@maci-protocol/domainobjs");
5
+ const sdk_1 = require("@maci-protocol/sdk");
6
+ const chai_1 = require("chai");
7
+ const constants_1 = require("../../constants");
8
+ describe("publish", function test() {
9
+ this.timeout(900000);
10
+ let maciAddresses;
11
+ let initialVoiceCreditProxyContractAddress;
12
+ let pollAddresses;
13
+ let signer;
14
+ const messages = [
15
+ {
16
+ stateIndex: 1n,
17
+ voteOptionIndex: 1n,
18
+ nonce: 1n,
19
+ newVoteWeight: 1n,
20
+ salt: 1n,
21
+ },
22
+ {
23
+ stateIndex: 1n,
24
+ voteOptionIndex: 2n,
25
+ nonce: 2n,
26
+ newVoteWeight: 1n,
27
+ },
28
+ ];
29
+ // before all tests we deploy the verifying keys registry contract and set the verifying keys
30
+ before(async () => {
31
+ signer = await (0, sdk_1.getDefaultSigner)();
32
+ const [signupPolicy, , signupPolicyFactory, signupCheckerFactory] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
33
+ const signupPolicyContractAddress = await signupPolicy.getAddress();
34
+ const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({
35
+ policy: signupPolicyFactory,
36
+ checker: signupCheckerFactory,
37
+ }, signer, true);
38
+ const pollPolicyContractAddress = await pollPolicy.getAddress();
39
+ const constantInitialVoiceCreditProxyFactory = await (0, sdk_1.deployConstantInitialVoiceCreditProxyFactory)(signer, true);
40
+ const initialVoiceCreditProxy = await (0, sdk_1.deployConstantInitialVoiceCreditProxy)({ amount: constants_1.DEFAULT_INITIAL_VOICE_CREDITS }, constantInitialVoiceCreditProxyFactory, signer);
41
+ initialVoiceCreditProxyContractAddress = await initialVoiceCreditProxy.getAddress();
42
+ const startDate = await (0, sdk_1.getBlockTimestamp)(signer);
43
+ // deploy the smart contracts
44
+ maciAddresses = await (0, sdk_1.deployMaci)({
45
+ ...constants_1.deployArgs,
46
+ signer,
47
+ signupPolicyAddress: signupPolicyContractAddress,
48
+ });
49
+ // we set the verifying keys
50
+ const { verifyingKeysRegistryContractAddress } = maciAddresses;
51
+ await (0, sdk_1.setVerifyingKeys)({
52
+ ...(await (0, constants_1.verifyingKeysArgs)(signer)),
53
+ verifyingKeysRegistryAddress: verifyingKeysRegistryContractAddress,
54
+ });
55
+ // deploy a poll contract
56
+ pollAddresses = await (0, sdk_1.deployPoll)({
57
+ ...constants_1.deployPollArgs,
58
+ signer,
59
+ pollStartTimestamp: startDate,
60
+ pollEndTimestamp: startDate + constants_1.pollDuration,
61
+ relayers: [await signer.getAddress()],
62
+ maciAddress: maciAddresses.maciContractAddress,
63
+ policyContractAddress: pollPolicyContractAddress,
64
+ initialVoiceCreditProxyContractAddress,
65
+ });
66
+ });
67
+ describe("publish batch messages", () => {
68
+ const user = new domainobjs_1.Keypair();
69
+ let defaultArgs;
70
+ before(async () => {
71
+ defaultArgs = {
72
+ maciAddress: maciAddresses.maciContractAddress,
73
+ publicKey: user.publicKey.serialize(),
74
+ privateKey: user.privateKey.serialize(),
75
+ messages,
76
+ pollId: 0n,
77
+ signer,
78
+ };
79
+ await (0, sdk_1.signup)({
80
+ maciAddress: maciAddresses.maciContractAddress,
81
+ maciPublicKey: user.publicKey.serialize(),
82
+ sgData: constants_1.DEFAULT_SG_DATA,
83
+ signer,
84
+ });
85
+ });
86
+ it("should publish messages properly", async () => {
87
+ const pollContract = sdk_1.Poll__factory.connect(pollAddresses.pollContractAddress, signer);
88
+ const initialNumMessages = await pollContract.numMessages();
89
+ const { hash, encryptedMessages, privateKeys } = await (0, sdk_1.publishBatch)(defaultArgs);
90
+ const numMessages = await pollContract.numMessages();
91
+ (0, chai_1.expect)(initialNumMessages).to.eq(1n);
92
+ (0, chai_1.expect)(hash).to.not.eq(null);
93
+ (0, chai_1.expect)(hash).to.not.eq(undefined);
94
+ (0, chai_1.expect)(numMessages).to.eq(BigInt(messages.length + 1));
95
+ (0, chai_1.expect)(privateKeys.length).to.eq(defaultArgs.messages.length);
96
+ (0, chai_1.expect)(encryptedMessages.length).to.eq(defaultArgs.messages.length);
97
+ });
98
+ it("should throw error if public key is invalid", async () => {
99
+ await (0, chai_1.expect)((0, sdk_1.publishBatch)({ ...defaultArgs, publicKey: "invalid" })).eventually.rejectedWith("Invalid MACI public key");
100
+ });
101
+ it("should throw error if private key is invalid", async () => {
102
+ await (0, chai_1.expect)((0, sdk_1.publishBatch)({ ...defaultArgs, privateKey: "invalid" })).eventually.rejectedWith("Invalid MACI private key");
103
+ });
104
+ it("should throw error if poll id is invalid", async () => {
105
+ await (0, chai_1.expect)((0, sdk_1.publishBatch)({ ...defaultArgs, pollId: -1n })).eventually.rejectedWith("Invalid poll id -1");
106
+ });
107
+ it("should throw error if current poll is not deployed", async () => {
108
+ await (0, chai_1.expect)((0, sdk_1.publishBatch)({ ...defaultArgs, pollId: 9000n })).eventually.rejectedWith("MACI contract doesn't have any deployed poll 9000");
109
+ });
110
+ it("should throw error if message is invalid", async () => {
111
+ await (0, chai_1.expect)((0, sdk_1.publishBatch)({
112
+ ...defaultArgs,
113
+ messages: [...messages, { ...messages[0], voteOptionIndex: -1n }],
114
+ })).eventually.rejectedWith("Invalid vote option index");
115
+ await (0, chai_1.expect)((0, sdk_1.publishBatch)({
116
+ ...defaultArgs,
117
+ messages: [...messages, { ...messages[0], stateIndex: 0n }],
118
+ })).eventually.rejectedWith("Invalid state index");
119
+ await (0, chai_1.expect)((0, sdk_1.publishBatch)({
120
+ ...defaultArgs,
121
+ messages: [...messages, { ...messages[0], nonce: -1n }],
122
+ })).eventually.rejectedWith("Invalid nonce");
123
+ await (0, chai_1.expect)((0, sdk_1.publishBatch)({
124
+ ...defaultArgs,
125
+ messages: [...messages, { ...messages[0], salt: crypto_1.SNARK_FIELD_SIZE + 1n }],
126
+ })).eventually.rejectedWith("Invalid salt");
127
+ });
128
+ });
129
+ });
130
+ //# sourceMappingURL=publish.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/unit/publish.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=setVerifyingKeys.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setVerifyingKeys.test.d.ts","sourceRoot":"","sources":["../../../../ts/__tests__/unit/setVerifyingKeys.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sdk_1 = require("@maci-protocol/sdk");
4
+ const chai_1 = require("chai");
5
+ const constants_1 = require("../../constants");
6
+ describe("setVerifyingKeys", function test() {
7
+ this.timeout(900000);
8
+ let signer;
9
+ let verifyingKeysRegistryAddress;
10
+ before(async () => {
11
+ signer = await (0, sdk_1.getDefaultSigner)();
12
+ });
13
+ beforeEach(async () => {
14
+ verifyingKeysRegistryAddress = await (0, sdk_1.deployVerifyingKeysRegistryContract)({ signer });
15
+ });
16
+ it("should set the verifying keys of mode QV on the contract", async () => {
17
+ await (0, sdk_1.setVerifyingKeys)({ ...(await (0, constants_1.verifyingKeysArgs)(signer)), verifyingKeysRegistryAddress });
18
+ });
19
+ it("should set the verifying keys of mode QV and NON_QV on the contract", async () => {
20
+ await (0, sdk_1.setVerifyingKeys)({
21
+ ...(await (0, constants_1.verifyingKeysArgs)(signer, [sdk_1.EMode.QV, sdk_1.EMode.NON_QV])),
22
+ verifyingKeysRegistryAddress,
23
+ });
24
+ });
25
+ it("should set the verifying keys of mode QV, NON_QV and FULL on the contract", async () => {
26
+ await (0, sdk_1.setVerifyingKeys)({
27
+ ...(await (0, constants_1.verifyingKeysArgs)(signer, [sdk_1.EMode.QV, sdk_1.EMode.NON_QV, sdk_1.EMode.FULL])),
28
+ verifyingKeysRegistryAddress,
29
+ });
30
+ });
31
+ it("should throw when setting verifying keys twice", async () => {
32
+ await (0, sdk_1.setVerifyingKeys)({
33
+ ...(await (0, constants_1.verifyingKeysArgs)(signer)),
34
+ verifyingKeysRegistryAddress,
35
+ });
36
+ (0, chai_1.expect)((0, sdk_1.setVerifyingKeys)({
37
+ ...(await (0, constants_1.verifyingKeysArgs)(signer, [sdk_1.EMode.NON_QV])),
38
+ verifyingKeysRegistryAddress,
39
+ })).rejectedWith("This poll joining verifying key is already set in the contract");
40
+ });
41
+ it("should throw when setting different number of modes and different number of process verifying keys", async () => {
42
+ const args = await (0, constants_1.verifyingKeysArgs)(signer, [sdk_1.EMode.QV, sdk_1.EMode.NON_QV]);
43
+ args.processMessagesVerifyingKeys.splice(1, 1);
44
+ await (0, chai_1.expect)((0, sdk_1.setVerifyingKeys)({ ...args, verifyingKeysRegistryAddress })).eventually.rejectedWith("Number of process messages verifying keys must match number of modes");
45
+ });
46
+ it("should throw when setting different number of modes and different number of tally verifying keys", async () => {
47
+ const args = await (0, constants_1.verifyingKeysArgs)(signer, [sdk_1.EMode.QV, sdk_1.EMode.NON_QV]);
48
+ args.tallyVotesVerifyingKeys.splice(1, 1);
49
+ await (0, chai_1.expect)((0, sdk_1.setVerifyingKeys)({ ...args, verifyingKeysRegistryAddress })).eventually.rejectedWith("Number of tally votes verifying keys must match number of modes");
50
+ });
51
+ });
52
+ //# sourceMappingURL=setVerifyingKeys.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setVerifyingKeys.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/unit/setVerifyingKeys.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=signup.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signup.test.d.ts","sourceRoot":"","sources":["../../../../ts/__tests__/unit/signup.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const domainobjs_1 = require("@maci-protocol/domainobjs");
4
+ const sdk_1 = require("@maci-protocol/sdk");
5
+ const chai_1 = require("chai");
6
+ const constants_1 = require("../../constants");
7
+ describe("signup", function test() {
8
+ this.timeout(900000);
9
+ let signer;
10
+ let maciAddresses;
11
+ const user = new domainobjs_1.Keypair();
12
+ // before all tests we deploy the verifying keys registry contract and set the verifying keys
13
+ before(async () => {
14
+ signer = await (0, sdk_1.getDefaultSigner)();
15
+ const [signupPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
16
+ const signupPolicyContractAddress = await signupPolicy.getAddress();
17
+ // deploy the smart contracts
18
+ maciAddresses = await (0, sdk_1.deployMaci)({
19
+ ...constants_1.deployArgs,
20
+ signer,
21
+ signupPolicyAddress: signupPolicyContractAddress,
22
+ });
23
+ // we set the verifying keys
24
+ const { verifyingKeysRegistryContractAddress } = maciAddresses;
25
+ await (0, sdk_1.setVerifyingKeys)({
26
+ ...(await (0, constants_1.verifyingKeysArgs)(signer)),
27
+ verifyingKeysRegistryAddress: verifyingKeysRegistryContractAddress,
28
+ });
29
+ });
30
+ it("should allow to signup and return the user data", async () => {
31
+ const startBlock = await signer.provider?.getBlockNumber();
32
+ const signUpData = await (0, sdk_1.signup)({
33
+ maciAddress: maciAddresses.maciContractAddress,
34
+ maciPublicKey: user.publicKey.serialize(),
35
+ sgData: constants_1.DEFAULT_SG_DATA,
36
+ signer,
37
+ });
38
+ const registeredUserData = await (0, sdk_1.getSignedupUserData)({
39
+ maciAddress: maciAddresses.maciContractAddress,
40
+ startBlock,
41
+ maciPublicKey: user.publicKey.serialize(),
42
+ signer,
43
+ });
44
+ (0, chai_1.expect)(registeredUserData.isRegistered).to.eq(true);
45
+ (0, chai_1.expect)(registeredUserData.stateIndex).to.eq(signUpData.stateIndex);
46
+ });
47
+ it("should not get the user data if the user is not registered", async () => {
48
+ const registeredUserData = await (0, sdk_1.getSignedupUserData)({
49
+ maciAddress: maciAddresses.maciContractAddress,
50
+ startBlock: await signer.provider?.getBlockNumber(),
51
+ maciPublicKey: new domainobjs_1.Keypair().publicKey.serialize(),
52
+ signer,
53
+ });
54
+ (0, chai_1.expect)(registeredUserData.isRegistered).to.eq(false);
55
+ });
56
+ it("should start fetchig from block zero if the start block is not provided", async () => {
57
+ const registeredUserData = await (0, sdk_1.getSignedupUserData)({
58
+ maciAddress: maciAddresses.maciContractAddress,
59
+ maciPublicKey: user.publicKey.serialize(),
60
+ signer,
61
+ });
62
+ (0, chai_1.expect)(registeredUserData.isRegistered).to.eq(true);
63
+ });
64
+ });
65
+ //# sourceMappingURL=signup.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signup.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/unit/signup.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=timeTravel.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeTravel.test.d.ts","sourceRoot":"","sources":["../../../../ts/__tests__/unit/timeTravel.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sdk_1 = require("@maci-protocol/sdk");
4
+ const chai_1 = require("chai");
5
+ describe("timeTravel", () => {
6
+ it("should work when given a valid integer number", async () => {
7
+ const signer = await (0, sdk_1.getDefaultSigner)();
8
+ const blockNumber = await signer.provider?.getBlock("latest");
9
+ await (0, sdk_1.timeTravel)({ seconds: 5, signer });
10
+ const blockNumberAfter = await signer.provider?.getBlock("latest");
11
+ (0, chai_1.expect)(blockNumberAfter.timestamp).to.be.gt(blockNumber.timestamp);
12
+ });
13
+ });
14
+ //# sourceMappingURL=timeTravel.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeTravel.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/unit/timeTravel.test.ts"],"names":[],"mappings":";;AAAA,4CAAkE;AAClE,+BAA8B;AAE9B,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAgB,GAAE,CAAC;QACxC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE9D,MAAM,IAAA,gBAAU,EAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAEzC,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnE,IAAA,aAAM,EAAC,gBAAiB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,WAAY,CAAC,SAAS,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../../../ts/__tests__/unit/utils.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const crypto_1 = require("@maci-protocol/crypto");
7
+ const domainobjs_1 = require("@maci-protocol/domainobjs");
8
+ const sdk_1 = require("@maci-protocol/sdk");
9
+ const chai_1 = require("chai");
10
+ const fs_1 = __importDefault(require("fs"));
11
+ const path_1 = __importDefault(require("path"));
12
+ describe("utils", () => {
13
+ describe("verifying keys", () => {
14
+ it("should return true for two equal verifying keys", async () => {
15
+ const verifyingKeyPath = path_1.default.resolve(__dirname, "..", "data", "testVk.json");
16
+ const verifyingKey = domainobjs_1.VerifyingKey.fromJSON(await fs_1.default.promises.readFile(verifyingKeyPath).then((res) => res.toString()));
17
+ (0, chai_1.expect)((0, sdk_1.compareVerifyingKeys)(verifyingKey, verifyingKey.asContractParam())).to.eq(true);
18
+ });
19
+ it("should return false for two unequal verifying keys", async () => {
20
+ const verifyingKeyPath = path_1.default.resolve(__dirname, "..", "data", "testVk.json");
21
+ const verifyingKey = domainobjs_1.VerifyingKey.fromJSON(await fs_1.default.promises.readFile(verifyingKeyPath).then((res) => res.toString()));
22
+ const verifyingKeyCopy = verifyingKey.asContractParam();
23
+ verifyingKeyCopy.alpha1.x = 9999n;
24
+ (0, chai_1.expect)((0, sdk_1.compareVerifyingKeys)(verifyingKey, verifyingKeyCopy)).to.eq(false);
25
+ });
26
+ });
27
+ describe("validateSalt", () => {
28
+ it("should return true for a valid salt", () => {
29
+ (0, chai_1.expect)((0, sdk_1.validateSalt)((0, crypto_1.generateRandomSalt)())).to.eq(true);
30
+ });
31
+ it("should return false for an invalid salt", () => {
32
+ (0, chai_1.expect)((0, sdk_1.validateSalt)(crypto_1.SNARK_FIELD_SIZE)).to.eq(false);
33
+ });
34
+ });
35
+ });
36
+ //# sourceMappingURL=utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/unit/utils.test.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6E;AAC7E,0DAAyD;AACzD,4CAAwE;AACxE,+BAA8B;AAE9B,4CAAoB;AACpB,gDAAwB;AAExB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,gBAAgB,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;YAC9E,MAAM,YAAY,GAAG,yBAAY,CAAC,QAAQ,CACxC,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAC3E,CAAC;YAEF,IAAA,aAAM,EAAC,IAAA,0BAAoB,EAAC,YAAY,EAAE,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,gBAAgB,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;YAC9E,MAAM,YAAY,GAAG,yBAAY,CAAC,QAAQ,CACxC,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAC3E,CAAC;YAEF,MAAM,gBAAgB,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC;YACxD,gBAAgB,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC;YAClC,IAAA,aAAM,EAAC,IAAA,0BAAoB,EAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,IAAA,aAAM,EAAC,IAAA,kBAAY,EAAC,IAAA,2BAAkB,GAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,IAAA,aAAM,EAAC,IAAA,kBAAY,EAAC,yBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,82 @@
1
+ import { Keypair } from "@maci-protocol/domainobjs";
2
+ import { EMode, type ICheckVerifyingKeysArgs, type IDeployPollArgs, type ISetVerifyingKeysArgs, type IMergeSignupsArgs, type IVerifyArgs, type IProveOnChainArgs, type ITimeTravelArgs, type IDeployMaciArgs } from "@maci-protocol/sdk";
3
+ import type { Signer } from "ethers";
4
+ export declare const STATE_TREE_DEPTH = 10;
5
+ export declare const POLL_STATE_TREE_DEPTH = 10;
6
+ export declare const TALLY_PROCESSING_STATE_TREE_DEPTH = 1;
7
+ export declare const VOTE_OPTION_TREE_DEPTH = 2;
8
+ export declare const MESSAGE_BATCH_SIZE = 20;
9
+ export declare const DEFAULT_INITIAL_VOICE_CREDITS = 100;
10
+ export declare const DEFAULT_VOTE_OPTIONS = 25;
11
+ export declare const DEFAULT_SG_DATA = "0x0000000000000000000000000000000000000000000000000000000000000000";
12
+ export declare const DEFAULT_IVCP_DATA = "0x0000000000000000000000000000000000000000000000000000000000000000";
13
+ export declare const coordinatorKeypair: Keypair;
14
+ export declare const coordinatorPublicKey: string;
15
+ export declare const coordinatorPrivateKey: string;
16
+ export declare const pollDuration = 2000;
17
+ export declare const maxMessages = 25;
18
+ export declare const maxVoteOptions = 25;
19
+ export declare const testRapidsnarkPath: string;
20
+ export declare const testTallyFilePath = "./tally.json";
21
+ export declare const testProofsDirPath = "./proofs";
22
+ export declare const testPollJoiningZkeyPath: string;
23
+ export declare const testPollJoiningWitnessPath: string;
24
+ export declare const testPollJoiningWasmPath: string;
25
+ export declare const testPollJoinedZkeyPath: string;
26
+ export declare const testPollJoinedWitnessPath: string;
27
+ export declare const testPollJoinedWasmPath: string;
28
+ export declare const testProcessMessageZkeyPath: string;
29
+ export declare const testProcessMessagesWitnessPath: string;
30
+ export declare const testProcessMessagesWitnessDatPath: string;
31
+ export declare const testProcessMessagesWasmPath: string;
32
+ export declare const ceremonyProcessMessagesZkeyPath: string;
33
+ export declare const ceremonyProcessMessagesWitnessPath: string;
34
+ export declare const ceremonyProcessMessagesDatPath: string;
35
+ export declare const ceremonyProcessMessagesWasmPath: string;
36
+ export declare const testProcessMessageNonQvZkeyPath: string;
37
+ export declare const testProcessMessagesNonQvWitnessPath: string;
38
+ export declare const testProcessMessagesNonQvWitnessDatPath: string;
39
+ export declare const testProcessMessagesNonQvWasmPath: string;
40
+ export declare const ceremonyProcessMessagesNonQvZkeyPath: string;
41
+ export declare const ceremonyProcessMessagesNonQvWitnessPath: string;
42
+ export declare const ceremonyProcessMessagesNonQvDatPath: string;
43
+ export declare const ceremonyProcessMessagesNonQvWasmPath: string;
44
+ export declare const testProcessMessageFullZkeyPath: string;
45
+ export declare const testProcessMessagesFullWitnessPath: string;
46
+ export declare const testProcessMessagesFullWitnessDatPath: string;
47
+ export declare const testProcessMessagesFullWasmPath: string;
48
+ export declare const testTallyVotesZkeyPath: string;
49
+ export declare const testTallyVotesWitnessPath: string;
50
+ export declare const testTallyVotesWitnessDatPath: string;
51
+ export declare const testTallyVotesWasmPath: string;
52
+ export declare const ceremonyTallyVotesZkeyPath: string;
53
+ export declare const ceremonyTallyVotesWitnessPath: string;
54
+ export declare const ceremonyTallyVotesDatPath: string;
55
+ export declare const ceremonyTallyVotesWasmPath: string;
56
+ export declare const testVoteTallyNonQvZkeyPath: string;
57
+ export declare const testVoteTallyNonQvWitnessPath: string;
58
+ export declare const testVoteTallyNonQvWitnessDatPath: string;
59
+ export declare const testVoteTallyNonQvWasmPath: string;
60
+ export declare const ceremonyVoteTallyNonQvZkeyPath: string;
61
+ export declare const ceremonyVoteTallyNonQvWitnessPath: string;
62
+ export declare const ceremonyVoteTallyNonQvDatPath: string;
63
+ export declare const ceremonyVoteTallyNonQvWasmPath: string;
64
+ export declare const testTallyVotesFullZkeyPath: string;
65
+ export declare const testTallyVotesFullWitnessPath: string;
66
+ export declare const testTallyVotesFullWitnessDatPath: string;
67
+ export declare const testTallyVotesFullWasmPath: string;
68
+ export declare const checkVerifyingKeysArgs: Omit<ICheckVerifyingKeysArgs, "verifyingKeysRegistry" | "signer">;
69
+ export declare const timeTravelArgs: Omit<ITimeTravelArgs, "signer">;
70
+ export declare const mergeSignupsArgs: Omit<IMergeSignupsArgs, "maciAddress" | "signer">;
71
+ export declare const proveOnChainArgs: Omit<IProveOnChainArgs, "maciAddress" | "signer">;
72
+ export declare const verifyArgs: (signer: Signer) => Promise<IVerifyArgs>;
73
+ export declare const verifyingKeysArgs: (signer: Signer, modes?: EMode[]) => Promise<Omit<ISetVerifyingKeysArgs, "verifyingKeysRegistryAddress">>;
74
+ export declare const deployArgs: Omit<IDeployMaciArgs, "signer" | "signupPolicyAddress">;
75
+ export declare const deployPollArgs: Omit<IDeployPollArgs, "relayers" | "signer" | "pollStartTimestamp" | "pollEndTimestamp" | "maciAddress" | "verifierContractAddress" | "verifyingKeysRegistryContractAddress" | "policyContractAddress" | "initialVoiceCreditProxyContractAddress">;
76
+ export declare const invalidVote: {
77
+ voteWeight: bigint;
78
+ nonce: bigint;
79
+ maxVoteWeight: bigint;
80
+ voteCreditBalance: bigint;
81
+ };
82
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../ts/constants.ts"],"names":[],"mappings":"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"}