@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,198 @@
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
+ exports.ceremonyTallyVotesWitnessPath = exports.ceremonyTallyVotesZkeyPath = exports.testTallyVotesWasmPath = exports.testTallyVotesWitnessDatPath = exports.testTallyVotesWitnessPath = exports.testTallyVotesZkeyPath = exports.testProcessMessagesFullWasmPath = exports.testProcessMessagesFullWitnessDatPath = exports.testProcessMessagesFullWitnessPath = exports.testProcessMessageFullZkeyPath = exports.ceremonyProcessMessagesNonQvWasmPath = exports.ceremonyProcessMessagesNonQvDatPath = exports.ceremonyProcessMessagesNonQvWitnessPath = exports.ceremonyProcessMessagesNonQvZkeyPath = exports.testProcessMessagesNonQvWasmPath = exports.testProcessMessagesNonQvWitnessDatPath = exports.testProcessMessagesNonQvWitnessPath = exports.testProcessMessageNonQvZkeyPath = exports.ceremonyProcessMessagesWasmPath = exports.ceremonyProcessMessagesDatPath = exports.ceremonyProcessMessagesWitnessPath = exports.ceremonyProcessMessagesZkeyPath = exports.testProcessMessagesWasmPath = exports.testProcessMessagesWitnessDatPath = exports.testProcessMessagesWitnessPath = exports.testProcessMessageZkeyPath = exports.testPollJoinedWasmPath = exports.testPollJoinedWitnessPath = exports.testPollJoinedZkeyPath = exports.testPollJoiningWasmPath = exports.testPollJoiningWitnessPath = exports.testPollJoiningZkeyPath = exports.testProofsDirPath = exports.testTallyFilePath = exports.testRapidsnarkPath = exports.maxVoteOptions = exports.maxMessages = exports.pollDuration = exports.coordinatorPrivateKey = exports.coordinatorPublicKey = exports.coordinatorKeypair = exports.DEFAULT_IVCP_DATA = exports.DEFAULT_SG_DATA = exports.DEFAULT_VOTE_OPTIONS = exports.DEFAULT_INITIAL_VOICE_CREDITS = exports.MESSAGE_BATCH_SIZE = exports.VOTE_OPTION_TREE_DEPTH = exports.TALLY_PROCESSING_STATE_TREE_DEPTH = exports.POLL_STATE_TREE_DEPTH = exports.STATE_TREE_DEPTH = void 0;
7
+ exports.invalidVote = exports.deployPollArgs = exports.deployArgs = exports.verifyingKeysArgs = exports.verifyArgs = exports.proveOnChainArgs = exports.mergeSignupsArgs = exports.timeTravelArgs = exports.checkVerifyingKeysArgs = exports.testTallyVotesFullWasmPath = exports.testTallyVotesFullWitnessDatPath = exports.testTallyVotesFullWitnessPath = exports.testTallyVotesFullZkeyPath = exports.ceremonyVoteTallyNonQvWasmPath = exports.ceremonyVoteTallyNonQvDatPath = exports.ceremonyVoteTallyNonQvWitnessPath = exports.ceremonyVoteTallyNonQvZkeyPath = exports.testVoteTallyNonQvWasmPath = exports.testVoteTallyNonQvWitnessDatPath = exports.testVoteTallyNonQvWitnessPath = exports.testVoteTallyNonQvZkeyPath = exports.ceremonyTallyVotesWasmPath = exports.ceremonyTallyVotesDatPath = void 0;
8
+ const domainobjs_1 = require("@maci-protocol/domainobjs");
9
+ const sdk_1 = require("@maci-protocol/sdk");
10
+ const os_1 = require("os");
11
+ const path_1 = __importDefault(require("path"));
12
+ const utils_1 = require("./utils");
13
+ exports.STATE_TREE_DEPTH = 10;
14
+ exports.POLL_STATE_TREE_DEPTH = 10;
15
+ exports.TALLY_PROCESSING_STATE_TREE_DEPTH = 1;
16
+ exports.VOTE_OPTION_TREE_DEPTH = 2;
17
+ exports.MESSAGE_BATCH_SIZE = 20;
18
+ exports.DEFAULT_INITIAL_VOICE_CREDITS = 100;
19
+ exports.DEFAULT_VOTE_OPTIONS = 25;
20
+ exports.DEFAULT_SG_DATA = "0x0000000000000000000000000000000000000000000000000000000000000000";
21
+ exports.DEFAULT_IVCP_DATA = "0x0000000000000000000000000000000000000000000000000000000000000000";
22
+ exports.coordinatorKeypair = new domainobjs_1.Keypair();
23
+ exports.coordinatorPublicKey = exports.coordinatorKeypair.publicKey.serialize();
24
+ exports.coordinatorPrivateKey = exports.coordinatorKeypair.privateKey.serialize();
25
+ exports.pollDuration = 2000;
26
+ exports.maxMessages = 25;
27
+ exports.maxVoteOptions = 25;
28
+ exports.testRapidsnarkPath = `${(0, os_1.homedir)()}/rapidsnark/build/prover`;
29
+ exports.testTallyFilePath = "./tally.json";
30
+ exports.testProofsDirPath = "./proofs";
31
+ const root = path_1.default.resolve(__dirname, "../../..");
32
+ // Poll joining paths
33
+ exports.testPollJoiningZkeyPath = path_1.default.resolve(root, "./zkeys/PollJoining_10_test/PollJoining_10_test.0.zkey");
34
+ exports.testPollJoiningWitnessPath = path_1.default.resolve(root, "./zkeys/PollJoining_10_test/PollJoining_10_test_cpp/PollJoining_10_test");
35
+ exports.testPollJoiningWasmPath = path_1.default.resolve(root, "./zkeys/PollJoining_10_test/PollJoining_10_test_js/PollJoining_10_test.wasm");
36
+ // Poll joined paths
37
+ exports.testPollJoinedZkeyPath = path_1.default.resolve(root, "./zkeys/PollJoined_10_test/PollJoined_10_test.0.zkey");
38
+ exports.testPollJoinedWitnessPath = path_1.default.resolve(root, "./zkeys/PollJoined_10_test/PollJoined_10_test_cpp/PollJoined_10_test");
39
+ exports.testPollJoinedWasmPath = path_1.default.resolve(root, "./zkeys/PollJoined_10_test/PollJoined_10_test_js/PollJoined_10_test.wasm");
40
+ // Process messages QV paths
41
+ exports.testProcessMessageZkeyPath = path_1.default.resolve(root, "./zkeys/MessageProcessorQv_10-20-2_test/MessageProcessorQv_10-20-2_test.0.zkey");
42
+ exports.testProcessMessagesWitnessPath = path_1.default.resolve(root, "./zkeys/MessageProcessorQv_10-20-2_test/MessageProcessorQv_10-20-2_test_cpp/MessageProcessorQv_10-20-2_test");
43
+ exports.testProcessMessagesWitnessDatPath = path_1.default.resolve(root, "./zkeys/MessageProcessorQv_10-20-2_test/MessageProcessorQv_10-20-2_test_cpp/MessageProcessorQv_10-20-2_test.dat");
44
+ exports.testProcessMessagesWasmPath = path_1.default.resolve(root, "./zkeys/MessageProcessorQv_10-20-2_test/MessageProcessorQv_10-20-2_test_js/MessageProcessorQv_10-20-2_test.wasm");
45
+ // Process messages ceremony QV paths
46
+ exports.ceremonyProcessMessagesZkeyPath = path_1.default.resolve(root, "./zkeys/MessageProcessorQv_6-9-2-3/processMessages_6-9-2-3.zkey");
47
+ exports.ceremonyProcessMessagesWitnessPath = path_1.default.resolve(root, "./zkeys/MessageProcessorQv_14-9-2-3/MessageProcessorQv_14-9-2-3_cpp/MessageProcessorQv_14-9-2-3");
48
+ exports.ceremonyProcessMessagesDatPath = path_1.default.resolve(root, "./zkeys/MessageProcessorQv_14-9-2-3/MessageProcessorQv_14-9-2-3_cpp/MessageProcessorQv_14-9-2-3.dat");
49
+ exports.ceremonyProcessMessagesWasmPath = path_1.default.resolve(root, "./zkeys/MessageProcessorQv_14-9-2-3/MessageProcessorQv_14-9-2-3_js/MessageProcessorQv_14-9-2-3.wasm");
50
+ // Process messages Non-QV paths
51
+ exports.testProcessMessageNonQvZkeyPath = path_1.default.resolve(root, "./zkeys/MessageProcessorNonQv_10-20-2_test/MessageProcessorNonQv_10-20-2_test.0.zkey");
52
+ exports.testProcessMessagesNonQvWitnessPath = path_1.default.resolve(root, "./zkeys/MessageProcessorNonQv_10-20-2_test/MessageProcessorNonQv_10-20-2_test_cpp/MessageProcessorNonQv_10-20-2_test");
53
+ exports.testProcessMessagesNonQvWitnessDatPath = path_1.default.resolve(root, "./zkeys/MessageProcessorNonQv_10-20-2_test/MessageProcessorNonQv_10-20-2_test_cpp/MessageProcessorNonQv_10-20-2_test.dat");
54
+ exports.testProcessMessagesNonQvWasmPath = path_1.default.resolve(root, "./zkeys/MessageProcessorNonQv_10-20-2_test/MessageProcessorNonQv_10-20-2_test_js/MessageProcessorNonQv_10-20-2_test.wasm");
55
+ // Process messages ceremony Non-QV paths
56
+ exports.ceremonyProcessMessagesNonQvZkeyPath = path_1.default.resolve(root, "./zkeys/MessageProcessorNonQv_6-9-2-3/MessageProcessorNonQv_6-9-2-3.zkey");
57
+ exports.ceremonyProcessMessagesNonQvWitnessPath = path_1.default.resolve(root, "./zkeys/MessageProcessorNonQv_14-9-2-3/MessageProcessorNonQv_14-9-2-3_cpp/MessageProcessorNonQv_14-9-2-3");
58
+ exports.ceremonyProcessMessagesNonQvDatPath = path_1.default.resolve(root, "./zkeys/MessageProcessorNonQv_14-9-2-3/MessageProcessorNonQv_14-9-2-3_cpp/MessageProcessorNonQv_14-9-2-3.dat");
59
+ exports.ceremonyProcessMessagesNonQvWasmPath = path_1.default.resolve(root, "./zkeys/MessageProcessorNonQv_14-9-2-3/MessageProcessorNonQv_14-9-2-3_js/MessageProcessorNonQv_14-9-2-3.wasm");
60
+ // Process messages Full paths
61
+ exports.testProcessMessageFullZkeyPath = path_1.default.resolve(root, "./zkeys/MessageProcessorFull_10-20-2_test/MessageProcessorFull_10-20-2_test.0.zkey");
62
+ exports.testProcessMessagesFullWitnessPath = path_1.default.resolve(root, "./zkeys/MessageProcessorFull_10-20-2_test/MessageProcessorFull_10-20-2_test_cpp/MessageProcessorFull_10-20-2_test");
63
+ exports.testProcessMessagesFullWitnessDatPath = path_1.default.resolve(root, "./zkeys/MessageProcessorFull_10-20-2_test/MessageProcessorFull_10-20-2_test_cpp/MessageProcessorFull_10-20-2_test.dat");
64
+ exports.testProcessMessagesFullWasmPath = path_1.default.resolve(root, "./zkeys/MessageProcessorFull_10-20-2_test/MessageProcessorFull_10-20-2_test_js/MessageProcessorFull_10-20-2_test.wasm");
65
+ // Tally votes QV paths
66
+ exports.testTallyVotesZkeyPath = path_1.default.resolve(root, "./zkeys/VoteTallyQv_10-1-2_test/VoteTallyQv_10-1-2_test.0.zkey");
67
+ exports.testTallyVotesWitnessPath = path_1.default.resolve(root, "./zkeys/VoteTallyQv_10-1-2_test/VoteTallyQv_10-1-2_test_cpp/VoteTallyQv_10-1-2_test");
68
+ exports.testTallyVotesWitnessDatPath = path_1.default.resolve(root, "./zkeys/VoteTallyQv_10-1-2_test/VoteTallyQv_10-1-2_test_cpp/VoteTallyQv_10-1-2_test.dat");
69
+ exports.testTallyVotesWasmPath = path_1.default.resolve(root, "./zkeys/VoteTallyQv_10-1-2_test/VoteTallyQv_10-1-2_test_js/VoteTallyQv_10-1-2_test.wasm");
70
+ // Tally votes ceremony QV paths
71
+ exports.ceremonyTallyVotesZkeyPath = path_1.default.resolve(root, "./zkeys/VoteTallyQv_6-2-3/tallyVotes_6-2-3.zkey");
72
+ exports.ceremonyTallyVotesWitnessPath = path_1.default.resolve(root, "./zkeys/VoteTallyQv_14-5-3/VoteTallyQv_14-5-3_cpp/VoteTallyQv_14-5-3");
73
+ exports.ceremonyTallyVotesDatPath = path_1.default.resolve(root, "./zkeys/VoteTallyQv_14-5-3/VoteTallyQv_14-5-3_cpp/VoteTallyQv_14-5-3.dat");
74
+ exports.ceremonyTallyVotesWasmPath = path_1.default.resolve(root, "./zkeys/VoteTallyQv_14-5-3/VoteTallyQv_14-5-3_js/VoteTallyQv_14-5-3.wasm");
75
+ // Tally votes Non-QV paths
76
+ exports.testVoteTallyNonQvZkeyPath = path_1.default.resolve(root, "./zkeys/VoteTallyNonQv_10-1-2_test/VoteTallyNonQv_10-1-2_test.0.zkey");
77
+ exports.testVoteTallyNonQvWitnessPath = path_1.default.resolve(root, "./zkeys/VoteTallyNonQv_10-1-2_test/VoteTallyNonQv_10-1-2_test_cpp/VoteTallyNonQv_10-1-2_test");
78
+ exports.testVoteTallyNonQvWitnessDatPath = path_1.default.resolve(root, "./zkeys/VoteTallyNonQv_10-1-2_test/VoteTallyNonQv_10-1-2_test_cpp/VoteTallyNonQv_10-1-2_test.dat");
79
+ exports.testVoteTallyNonQvWasmPath = path_1.default.resolve(root, "./zkeys/VoteTallyNonQv_10-1-2_test/VoteTallyNonQv_10-1-2_test_js/VoteTallyNonQv_10-1-2_test.wasm");
80
+ // Tally votes ceremony Non-QV paths
81
+ exports.ceremonyVoteTallyNonQvZkeyPath = path_1.default.resolve(root, "./zkeys/VoteTallyNonQv_6-2-3/tallyVotesNonQv_6-2-3.zkey");
82
+ exports.ceremonyVoteTallyNonQvWitnessPath = path_1.default.resolve(root, "./zkeys/VoteTallyNonQv_14-5-3/VoteTallyNonQv_14-5-3_cpp/VoteTallyNonQv_14-5-3");
83
+ exports.ceremonyVoteTallyNonQvDatPath = path_1.default.resolve(root, "./zkeys/VoteTallyNonQv_14-5-3/VoteTallyNonQv_14-5-3_cpp/VoteTallyNonQv_14-5-3.dat");
84
+ exports.ceremonyVoteTallyNonQvWasmPath = path_1.default.resolve(root, "./zkeys/VoteTallyNonQv_14-5-3/VoteTallyNonQv_14-5-3_js/VoteTallyNonQv_14-5-3.wasm");
85
+ // Tally votes Full paths
86
+ exports.testTallyVotesFullZkeyPath = path_1.default.resolve(root, "./zkeys/VoteTallyNonQv_10-1-2_test/VoteTallyNonQv_10-1-2_test.0.zkey");
87
+ exports.testTallyVotesFullWitnessPath = path_1.default.resolve(root, "./zkeys/VoteTallyNonQv_10-1-2_test/VoteTallyNonQv_10-1-2_test_cpp/VoteTallyNonQv_10-1-2_test");
88
+ exports.testTallyVotesFullWitnessDatPath = path_1.default.resolve(root, "./zkeys/VoteTallyNonQv_10-1-2_test/VoteTallyNonQv_10-1-2_test_cpp/VoteTallyNonQv_10-1-2_test.dat");
89
+ exports.testTallyVotesFullWasmPath = path_1.default.resolve(root, "./zkeys/VoteTallyNonQv_10-1-2_test/VoteTallyNonQv_10-1-2_test_js/VoteTallyNonQv_10-1-2_test.wasm");
90
+ exports.checkVerifyingKeysArgs = {
91
+ stateTreeDepth: exports.STATE_TREE_DEPTH,
92
+ tallyProcessingStateTreeDepth: exports.TALLY_PROCESSING_STATE_TREE_DEPTH,
93
+ voteOptionTreeDepth: exports.VOTE_OPTION_TREE_DEPTH,
94
+ messageBatchSize: exports.MESSAGE_BATCH_SIZE,
95
+ pollJoiningZkeyPath: exports.testPollJoiningZkeyPath,
96
+ pollJoinedZkeyPath: exports.testPollJoinedZkeyPath,
97
+ messageProcessorZkeyPath: exports.testProcessMessageZkeyPath,
98
+ voteTallyZkeyPath: exports.testTallyVotesZkeyPath,
99
+ };
100
+ exports.timeTravelArgs = {
101
+ seconds: exports.pollDuration,
102
+ };
103
+ exports.mergeSignupsArgs = {
104
+ pollId: 0n,
105
+ };
106
+ exports.proveOnChainArgs = {
107
+ pollId: 0n,
108
+ tallyFile: exports.testTallyFilePath,
109
+ proofDir: exports.testProofsDirPath,
110
+ };
111
+ const verifyArgs = async (signer) => {
112
+ const tallyData = await (0, utils_1.readJSONFile)(exports.testTallyFilePath);
113
+ const pollParams = await (0, sdk_1.getPollParams)({ pollId: 0n, maciContractAddress: tallyData.maci, signer });
114
+ const tallyCommitments = (0, sdk_1.generateTallyCommitments)({
115
+ tallyData,
116
+ voteOptionTreeDepth: pollParams.voteOptionTreeDepth,
117
+ });
118
+ return {
119
+ pollId: 0n,
120
+ tallyData,
121
+ maciAddress: tallyData.maci,
122
+ tallyCommitments,
123
+ totalVoteOptions: tallyData.results.tally.length,
124
+ voteOptionTreeDepth: pollParams.voteOptionTreeDepth,
125
+ signer,
126
+ };
127
+ };
128
+ exports.verifyArgs = verifyArgs;
129
+ const zkeysByMode = {
130
+ [sdk_1.EMode.QV]: {
131
+ messageProcessorZkeyPath: exports.testProcessMessageZkeyPath,
132
+ voteTallyZkeyPath: exports.testTallyVotesZkeyPath,
133
+ },
134
+ [sdk_1.EMode.NON_QV]: {
135
+ messageProcessorZkeyPath: exports.testProcessMessageNonQvZkeyPath,
136
+ voteTallyZkeyPath: exports.testVoteTallyNonQvZkeyPath,
137
+ },
138
+ [sdk_1.EMode.FULL]: {
139
+ messageProcessorZkeyPath: exports.testProcessMessageFullZkeyPath,
140
+ voteTallyZkeyPath: exports.testTallyVotesFullZkeyPath,
141
+ },
142
+ };
143
+ const verifyingKeysArgs = async (signer, modes = [sdk_1.EMode.QV]) => {
144
+ const { pollJoiningVerifyingKey, pollJoinedVerifyingKey } = await (0, sdk_1.extractAllVerifyingKeys)({
145
+ pollJoiningZkeyPath: exports.testPollJoiningZkeyPath,
146
+ pollJoinedZkeyPath: exports.testPollJoinedZkeyPath,
147
+ });
148
+ const keysResults = await Promise.all(modes.map((mode) => {
149
+ const { messageProcessorZkeyPath, voteTallyZkeyPath } = zkeysByMode[mode];
150
+ return (0, sdk_1.extractAllVerifyingKeys)({
151
+ messageProcessorZkeyPath,
152
+ voteTallyZkeyPath,
153
+ });
154
+ }));
155
+ const processMessagesVerifyingKeys = [];
156
+ const tallyVotesVerifyingKeys = [];
157
+ keysResults.forEach(({ processVerifyingKey, tallyVerifyingKey }, idx) => {
158
+ if (!processVerifyingKey || !tallyVerifyingKey) {
159
+ throw new Error(`Verifying keys for mode ${modes[idx]} are not valid`);
160
+ }
161
+ processMessagesVerifyingKeys.push(processVerifyingKey);
162
+ tallyVotesVerifyingKeys.push(tallyVerifyingKey);
163
+ });
164
+ return {
165
+ stateTreeDepth: exports.STATE_TREE_DEPTH,
166
+ pollStateTreeDepth: exports.POLL_STATE_TREE_DEPTH,
167
+ tallyProcessingStateTreeDepth: exports.TALLY_PROCESSING_STATE_TREE_DEPTH,
168
+ voteOptionTreeDepth: exports.VOTE_OPTION_TREE_DEPTH,
169
+ messageBatchSize: exports.MESSAGE_BATCH_SIZE,
170
+ pollJoiningVerifyingKey: pollJoiningVerifyingKey,
171
+ pollJoinedVerifyingKey: pollJoinedVerifyingKey,
172
+ processMessagesVerifyingKeys,
173
+ tallyVotesVerifyingKeys,
174
+ modes,
175
+ signer,
176
+ };
177
+ };
178
+ exports.verifyingKeysArgs = verifyingKeysArgs;
179
+ exports.deployArgs = {
180
+ stateTreeDepth: exports.STATE_TREE_DEPTH,
181
+ };
182
+ exports.deployPollArgs = {
183
+ tallyProcessingStateTreeDepth: exports.TALLY_PROCESSING_STATE_TREE_DEPTH,
184
+ messageBatchSize: exports.MESSAGE_BATCH_SIZE,
185
+ stateTreeDepth: exports.POLL_STATE_TREE_DEPTH,
186
+ voteOptionTreeDepth: exports.VOTE_OPTION_TREE_DEPTH,
187
+ coordinatorPublicKey: exports.coordinatorKeypair.publicKey,
188
+ initialVoiceCredits: exports.DEFAULT_INITIAL_VOICE_CREDITS,
189
+ mode: sdk_1.EMode.QV,
190
+ voteOptions: exports.DEFAULT_VOTE_OPTIONS,
191
+ };
192
+ exports.invalidVote = {
193
+ voteWeight: 2n,
194
+ nonce: 0n,
195
+ maxVoteWeight: 1n,
196
+ voteCreditBalance: 1n,
197
+ };
198
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../ts/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { TestingClass } from "./testingClass";
2
+ export { User } from "./user";
3
+ export * from "./types";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.User = exports.TestingClass = void 0;
18
+ var testingClass_1 = require("./testingClass");
19
+ Object.defineProperty(exports, "TestingClass", { enumerable: true, get: function () { return testingClass_1.TestingClass; } });
20
+ var user_1 = require("./user");
21
+ Object.defineProperty(exports, "User", { enumerable: true, get: function () { return user_1.User; } });
22
+ __exportStar(require("./types"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AAEb,0CAAwB"}
@@ -0,0 +1,43 @@
1
+ import type { ITestingClassPaths, IContractsData } from "./types";
2
+ /**
3
+ * A class that represents the testing class used in MACI tests
4
+ * It can be used to deploy and initialize the contracts
5
+ */
6
+ export declare class TestingClass {
7
+ private static INSTANCE?;
8
+ /**
9
+ * Paths to the pollJoining zkey file
10
+ */
11
+ private pollJoiningZkeyPath;
12
+ /**
13
+ * Paths to the pollJoined zkey file
14
+ */
15
+ private pollJoinedZkeyPath;
16
+ /**
17
+ * Paths to the MessageProcessor zkey file
18
+ */
19
+ private messageProcessorZkeyPath;
20
+ /**
21
+ * Paths to the VoteTally zkey file
22
+ */
23
+ private voteTallyZkeyPath;
24
+ /**
25
+ * Paths to the poll joining wasm file
26
+ */
27
+ private pollJoiningWasm;
28
+ /**
29
+ * Paths to the poll witnessGenerator file
30
+ */
31
+ private pollWitnessGenerator;
32
+ /**
33
+ * Paths to the rapidsnark file
34
+ */
35
+ private rapidsnark;
36
+ readonly contractsData: IContractsData;
37
+ constructor({ pollJoiningZkeyPath, pollJoinedZkeyPath, messageProcessorZkeyPath, voteTallyZkeyPath, pollJoiningWasm, pollWitnessGenerator, rapidsnark, }: ITestingClassPaths);
38
+ static getInstance(paths: ITestingClassPaths): Promise<TestingClass>;
39
+ static sleep(ms: number): Promise<void>;
40
+ static clean(): void;
41
+ private contractsInit;
42
+ }
43
+ //# sourceMappingURL=testingClass.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testingClass.d.ts","sourceRoot":"","sources":["../../ts/testingClass.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAiBlE;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAe;IAEvC;;OAEG;IACH,OAAO,CAAC,mBAAmB,CAAS;IAEpC;;OAEG;IACH,OAAO,CAAC,kBAAkB,CAAS;IAEnC;;OAEG;IACH,OAAO,CAAC,wBAAwB,CAAS;IAEzC;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAAS;IAElC;;OAEG;IACH,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAAS;IAErC;;OAEG;IACH,OAAO,CAAC,UAAU,CAAS;IAE3B,QAAQ,CAAC,aAAa,EAAE,cAAc,CAEpC;gBAEU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,UAAU,GACX,EAAE,kBAAkB;WAUR,WAAW,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;WAS7D,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C,MAAM,CAAC,KAAK,IAAI,IAAI;YAMN,aAAa;CA2H5B"}
@@ -0,0 +1,145 @@
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
+ exports.TestingClass = void 0;
7
+ const domainobjs_1 = require("@maci-protocol/domainobjs");
8
+ const sdk_1 = require("@maci-protocol/sdk");
9
+ const hardhat_1 = __importDefault(require("hardhat"));
10
+ const constants_1 = require("./constants");
11
+ const user_1 = require("./user");
12
+ const utils_1 = require("./utils");
13
+ /**
14
+ * A class that represents the testing class used in MACI tests
15
+ * It can be used to deploy and initialize the contracts
16
+ */
17
+ class TestingClass {
18
+ constructor({ pollJoiningZkeyPath, pollJoinedZkeyPath, messageProcessorZkeyPath, voteTallyZkeyPath, pollJoiningWasm, pollWitnessGenerator, rapidsnark, }) {
19
+ this.contractsData = {
20
+ initialized: false,
21
+ };
22
+ this.pollJoiningZkeyPath = pollJoiningZkeyPath;
23
+ this.pollJoinedZkeyPath = pollJoinedZkeyPath;
24
+ this.messageProcessorZkeyPath = messageProcessorZkeyPath;
25
+ this.voteTallyZkeyPath = voteTallyZkeyPath;
26
+ this.pollJoiningWasm = pollJoiningWasm;
27
+ this.pollWitnessGenerator = pollWitnessGenerator;
28
+ this.rapidsnark = rapidsnark;
29
+ }
30
+ static async getInstance(paths) {
31
+ if (!TestingClass.INSTANCE) {
32
+ TestingClass.INSTANCE = new TestingClass(paths);
33
+ await TestingClass.INSTANCE.contractsInit();
34
+ }
35
+ return TestingClass.INSTANCE;
36
+ }
37
+ static async sleep(ms) {
38
+ return new Promise((resolve) => {
39
+ setTimeout(resolve, ms);
40
+ });
41
+ }
42
+ static clean() {
43
+ const contractStorage = sdk_1.ContractStorage.getInstance();
44
+ contractStorage.cleanup("hardhat");
45
+ contractStorage.cleanup("localhost");
46
+ }
47
+ async contractsInit() {
48
+ if (this.contractsData.initialized) {
49
+ return;
50
+ }
51
+ const [signer] = (await hardhat_1.default.ethers.getSigners());
52
+ const coordinatorKeypair = new domainobjs_1.Keypair();
53
+ const user = new domainobjs_1.Keypair();
54
+ const { pollJoiningVerifyingKey, pollJoinedVerifyingKey, processVerifyingKey, tallyVerifyingKey } = await (0, sdk_1.extractAllVerifyingKeys)({
55
+ pollJoiningZkeyPath: this.pollJoiningZkeyPath,
56
+ pollJoinedZkeyPath: this.pollJoinedZkeyPath,
57
+ messageProcessorZkeyPath: this.messageProcessorZkeyPath,
58
+ voteTallyZkeyPath: this.voteTallyZkeyPath,
59
+ });
60
+ const [signupPolicy, , signupPolicyFactory, signupCheckerFactory] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
61
+ const signupPolicyContractAddress = await signupPolicy.getAddress();
62
+ const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({
63
+ policy: signupPolicyFactory,
64
+ checker: signupCheckerFactory,
65
+ }, signer, true);
66
+ const pollPolicyContractAddress = await pollPolicy.getAddress();
67
+ const maciAddresses = await (0, sdk_1.deployMaci)({
68
+ stateTreeDepth: 10,
69
+ signer,
70
+ signupPolicyAddress: signupPolicyContractAddress,
71
+ });
72
+ // we set the verifying keys
73
+ const { verifyingKeysRegistryContractAddress } = maciAddresses;
74
+ await (0, sdk_1.setVerifyingKeys)({
75
+ verifyingKeysRegistryAddress: verifyingKeysRegistryContractAddress,
76
+ stateTreeDepth: constants_1.STATE_TREE_DEPTH,
77
+ tallyProcessingStateTreeDepth: constants_1.TALLY_PROCESSING_STATE_TREE_DEPTH,
78
+ voteOptionTreeDepth: constants_1.VOTE_OPTION_TREE_DEPTH,
79
+ messageBatchSize: constants_1.MESSAGE_BATCH_SIZE,
80
+ pollStateTreeDepth: constants_1.POLL_STATE_TREE_DEPTH,
81
+ pollJoiningVerifyingKey: pollJoiningVerifyingKey,
82
+ pollJoinedVerifyingKey: pollJoinedVerifyingKey,
83
+ processMessagesVerifyingKeys: [processVerifyingKey],
84
+ tallyVotesVerifyingKeys: [tallyVerifyingKey],
85
+ modes: [sdk_1.EMode.NON_QV],
86
+ signer,
87
+ });
88
+ const constantInitialVoiceCreditProxyFactory = await (0, sdk_1.deployConstantInitialVoiceCreditProxyFactory)(signer, true);
89
+ const initialVoiceCreditProxy = await (0, sdk_1.deployConstantInitialVoiceCreditProxy)({ amount: constants_1.DEFAULT_INITIAL_VOICE_CREDITS }, constantInitialVoiceCreditProxyFactory, signer);
90
+ const initialVoiceCreditProxyFactoryAddress = await constantInitialVoiceCreditProxyFactory.getAddress();
91
+ const initialVoiceCreditProxyContractAddress = await initialVoiceCreditProxy.getAddress();
92
+ const startDate = Math.floor(Date.now() / 1000) + 30;
93
+ const { pollContractAddress } = await (0, sdk_1.deployPoll)({
94
+ pollStartTimestamp: startDate,
95
+ pollEndTimestamp: startDate + 130,
96
+ tallyProcessingStateTreeDepth: constants_1.TALLY_PROCESSING_STATE_TREE_DEPTH,
97
+ messageBatchSize: constants_1.MESSAGE_BATCH_SIZE,
98
+ stateTreeDepth: constants_1.POLL_STATE_TREE_DEPTH,
99
+ voteOptionTreeDepth: constants_1.VOTE_OPTION_TREE_DEPTH,
100
+ coordinatorPublicKey: coordinatorKeypair.publicKey,
101
+ mode: sdk_1.EMode.NON_QV,
102
+ relayers: [await signer.getAddress()],
103
+ signer,
104
+ maciAddress: maciAddresses.maciContractAddress,
105
+ policyContractAddress: pollPolicyContractAddress,
106
+ initialVoiceCreditProxyFactoryAddress,
107
+ initialVoiceCreditProxyContractAddress,
108
+ voteOptions: constants_1.DEFAULT_VOTE_OPTIONS,
109
+ });
110
+ await (0, sdk_1.signup)({
111
+ maciAddress: maciAddresses.maciContractAddress,
112
+ maciPublicKey: user.publicKey.serialize(),
113
+ sgData: constants_1.DEFAULT_SG_DATA,
114
+ signer,
115
+ });
116
+ const useWasm = (0, utils_1.isArm)();
117
+ const { pollStateIndex, voiceCredits } = await (0, sdk_1.joinPoll)({
118
+ maciAddress: maciAddresses.maciContractAddress,
119
+ pollId: 0n,
120
+ privateKey: user.privateKey.serialize(),
121
+ pollJoiningZkey: this.pollJoiningZkeyPath,
122
+ pollJoiningWasm: this.pollJoiningWasm,
123
+ pollWitnessGenerator: this.pollWitnessGenerator,
124
+ rapidsnark: this.rapidsnark,
125
+ signer,
126
+ useWasm,
127
+ sgDataArg: constants_1.DEFAULT_SG_DATA,
128
+ ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
129
+ });
130
+ const maciState = await (0, sdk_1.generateMaciStateFromContract)({
131
+ provider: signer.provider,
132
+ address: maciAddresses.maciContractAddress,
133
+ coordinatorKeypair,
134
+ pollId: 0n,
135
+ });
136
+ this.contractsData.maciState = maciState;
137
+ this.contractsData.maciContractAddress = maciAddresses.maciContractAddress;
138
+ this.contractsData.users = [];
139
+ this.contractsData.users.push(new user_1.User(user, [], BigInt(voiceCredits), 0n, BigInt(pollStateIndex)));
140
+ this.contractsData.initialized = true;
141
+ this.contractsData.polls?.push(pollContractAddress);
142
+ }
143
+ }
144
+ exports.TestingClass = TestingClass;
145
+ //# sourceMappingURL=testingClass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testingClass.js","sourceRoot":"","sources":["../../ts/testingClass.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ import { type generateMaciStateFromContract, type MACI, type Verifier, type VerifyingKeysRegistry, type FreeForAllPolicy, type ConstantInitialVoiceCreditProxy, type IIpfsMessage } from "@maci-protocol/sdk";
2
+ import type { User } from "./user";
3
+ import type { Signer } from "ethers";
4
+ /**
5
+ * A util interface that represents a vote object
6
+ */
7
+ export interface IVote {
8
+ voteOptionIndex: bigint;
9
+ voteWeight: bigint;
10
+ nonce: bigint;
11
+ }
12
+ /**
13
+ * A util interface that represents a briber object
14
+ */
15
+ export interface IBriber {
16
+ voteOptionIndices: bigint[];
17
+ }
18
+ /**
19
+ * A util interface that represents a change user keys object
20
+ */
21
+ export interface IChangeUsersKeys {
22
+ voteOptionIndex: bigint;
23
+ voteWeight: bigint;
24
+ }
25
+ /**
26
+ * A util interface that represents a test suite
27
+ */
28
+ export interface ITestSuite {
29
+ name: string;
30
+ description: string;
31
+ numVotesPerUser: number;
32
+ numUsers: number;
33
+ expectedTally: number[];
34
+ expectedSpentVoiceCredits: number[];
35
+ expectedTotalSpentVoiceCredits: number;
36
+ bribers?: IBriber[];
37
+ votes?: IVote[][];
38
+ changeUsersKeys?: IChangeUsersKeys[][];
39
+ }
40
+ /**
41
+ * A util interface that represents deployed test contracts
42
+ */
43
+ export interface IDeployedTestContracts {
44
+ maci: MACI;
45
+ verifier: Verifier;
46
+ verifyingKeysRegistry: VerifyingKeysRegistry;
47
+ policy: FreeForAllPolicy;
48
+ initialVoiceCreditProxy: ConstantInitialVoiceCreditProxy;
49
+ }
50
+ /**
51
+ * A util interface that represents testing data from the TestingClass object
52
+ */
53
+ export interface IContractsData {
54
+ initialized: boolean;
55
+ users?: User[];
56
+ maciContractAddress?: string;
57
+ maciState?: Awaited<ReturnType<typeof generateMaciStateFromContract>>;
58
+ polls?: string[];
59
+ }
60
+ export interface IRelayTestMessagesArgs {
61
+ messages: IIpfsMessage[];
62
+ maciAddress: string;
63
+ signer: Signer;
64
+ pollId: number;
65
+ }
66
+ /**
67
+ * Interface for the paths to the zkey files and the wasm and witnessGenerator files
68
+ */
69
+ export interface ITestingClassPaths {
70
+ /**
71
+ * Path to the pollJoining zkey file
72
+ */
73
+ pollJoiningZkeyPath: string;
74
+ /**
75
+ * Path to the pollJoined zkey file
76
+ */
77
+ pollJoinedZkeyPath: string;
78
+ /**
79
+ * Path to the MessageProcessor zkey file
80
+ */
81
+ messageProcessorZkeyPath: string;
82
+ /**
83
+ * Path to the VoteTally zkey file
84
+ */
85
+ voteTallyZkeyPath: string;
86
+ /**
87
+ * Path to the poll joining wasm file
88
+ */
89
+ pollJoiningWasm: string;
90
+ /**
91
+ * Path to the poll witnessGenerator file
92
+ */
93
+ pollWitnessGenerator: string;
94
+ /**
95
+ * Path to the rapidsnark file
96
+ */
97
+ rapidsnark: string;
98
+ }
99
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../ts/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,6BAA6B,EAClC,KAAK,IAAI,EACT,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,+BAA+B,EACpC,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,8BAA8B,EAAE,MAAM,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;IAClB,eAAe,CAAC,EAAE,gBAAgB,EAAE,EAAE,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;IACnB,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,MAAM,EAAE,gBAAgB,CAAC;IACzB,uBAAuB,EAAE,+BAA+B,CAAC;CAC1D;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC;IACtE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,wBAAwB,EAAE,MAAM,CAAC;IAEjC;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../ts/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import { Keypair, type PrivateKey } from "@maci-protocol/domainobjs";
2
+ import type { IVote } from "./types";
3
+ /**
4
+ * A class representing a user and its votes
5
+ */
6
+ export declare class User {
7
+ keypair: Keypair;
8
+ votes: IVote[];
9
+ voiceCreditBalance: bigint;
10
+ nonce: bigint;
11
+ stateLeafIndex?: bigint;
12
+ /**
13
+ * Create a new instance of a UserCommand object
14
+ * @param keypair the keypair of the user
15
+ * @param votes the votes casted by the user
16
+ * @param voiceCreditBalance the voice credit balance of the user
17
+ * @param nonce the nonce of the user
18
+ * @param stateLeafIndex the state leaf index
19
+ */
20
+ constructor(keypair: Keypair, votes: IVote[], voiceCreditBalance: bigint, nonce: bigint, stateLeafIndex?: bigint);
21
+ /**
22
+ * Helper function that can be used to change the keypair of the user
23
+ * @returns
24
+ */
25
+ changeKeypair(): PrivateKey;
26
+ }
27
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../ts/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,qBAAa,IAAI;IACf,OAAO,EAAE,OAAO,CAAC;IAEjB,KAAK,EAAE,KAAK,EAAE,CAAC;IAEf,kBAAkB,EAAE,MAAM,CAAC;IAE3B,KAAK,EAAE,MAAM,CAAC;IAEd,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;OAOG;gBACS,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;IAQhH;;;OAGG;IACH,aAAa,IAAI,UAAU;CAM5B"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.User = void 0;
4
+ const domainobjs_1 = require("@maci-protocol/domainobjs");
5
+ /**
6
+ * A class representing a user and its votes
7
+ */
8
+ class User {
9
+ /**
10
+ * Create a new instance of a UserCommand object
11
+ * @param keypair the keypair of the user
12
+ * @param votes the votes casted by the user
13
+ * @param voiceCreditBalance the voice credit balance of the user
14
+ * @param nonce the nonce of the user
15
+ * @param stateLeafIndex the state leaf index
16
+ */
17
+ constructor(keypair, votes, voiceCreditBalance, nonce, stateLeafIndex) {
18
+ this.keypair = keypair;
19
+ this.votes = votes;
20
+ this.voiceCreditBalance = voiceCreditBalance;
21
+ this.nonce = nonce;
22
+ this.stateLeafIndex = stateLeafIndex;
23
+ }
24
+ /**
25
+ * Helper function that can be used to change the keypair of the user
26
+ * @returns
27
+ */
28
+ changeKeypair() {
29
+ const newUserKeypair = new domainobjs_1.Keypair();
30
+ const oldPrivateKey = this.keypair.privateKey;
31
+ this.keypair = !newUserKeypair.equals(this.keypair) ? newUserKeypair : this.keypair;
32
+ return oldPrivateKey;
33
+ }
34
+ }
35
+ exports.User = User;
36
+ //# sourceMappingURL=user.js.map