@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.
- package/CHANGELOG.md +262 -0
- package/LICENSE +21 -0
- package/README.md +16 -0
- package/build/hardhat.config.d.ts +5 -0
- package/build/hardhat.config.d.ts.map +1 -0
- package/build/hardhat.config.js +37 -0
- package/build/hardhat.config.js.map +1 -0
- package/build/ts/__tests__/e2e.full.test.d.ts +2 -0
- package/build/ts/__tests__/e2e.full.test.d.ts.map +1 -0
- package/build/ts/__tests__/e2e.full.test.js +839 -0
- package/build/ts/__tests__/e2e.full.test.js.map +1 -0
- package/build/ts/__tests__/e2e.nonQv.test.d.ts +2 -0
- package/build/ts/__tests__/e2e.nonQv.test.d.ts.map +1 -0
- package/build/ts/__tests__/e2e.nonQv.test.js +605 -0
- package/build/ts/__tests__/e2e.nonQv.test.js.map +1 -0
- package/build/ts/__tests__/e2e.test.d.ts +2 -0
- package/build/ts/__tests__/e2e.test.d.ts.map +1 -0
- package/build/ts/__tests__/e2e.test.js +1596 -0
- package/build/ts/__tests__/e2e.test.js.map +1 -0
- package/build/ts/__tests__/integration.test.d.ts +2 -0
- package/build/ts/__tests__/integration.test.d.ts.map +1 -0
- package/build/ts/__tests__/integration.test.js +288 -0
- package/build/ts/__tests__/integration.test.js.map +1 -0
- package/build/ts/__tests__/keyChange.test.d.ts +2 -0
- package/build/ts/__tests__/keyChange.test.d.ts.map +1 -0
- package/build/ts/__tests__/keyChange.test.js +455 -0
- package/build/ts/__tests__/keyChange.test.js.map +1 -0
- package/build/ts/__tests__/maciKeys.test.d.ts +2 -0
- package/build/ts/__tests__/maciKeys.test.d.ts.map +1 -0
- package/build/ts/__tests__/maciKeys.test.js +78 -0
- package/build/ts/__tests__/maciKeys.test.js.map +1 -0
- package/build/ts/__tests__/stress/stress.full.test.d.ts +2 -0
- package/build/ts/__tests__/stress/stress.full.test.d.ts.map +1 -0
- package/build/ts/__tests__/stress/stress.full.test.js +186 -0
- package/build/ts/__tests__/stress/stress.full.test.js.map +1 -0
- package/build/ts/__tests__/unit/fundWallet.test.d.ts +2 -0
- package/build/ts/__tests__/unit/fundWallet.test.d.ts.map +1 -0
- package/build/ts/__tests__/unit/fundWallet.test.js +15 -0
- package/build/ts/__tests__/unit/fundWallet.test.js.map +1 -0
- package/build/ts/__tests__/unit/joinPoll.test.d.ts +2 -0
- package/build/ts/__tests__/unit/joinPoll.test.d.ts.map +1 -0
- package/build/ts/__tests__/unit/joinPoll.test.js +160 -0
- package/build/ts/__tests__/unit/joinPoll.test.js.map +1 -0
- package/build/ts/__tests__/unit/poll.test.d.ts +2 -0
- package/build/ts/__tests__/unit/poll.test.d.ts.map +1 -0
- package/build/ts/__tests__/unit/poll.test.js +87 -0
- package/build/ts/__tests__/unit/poll.test.js.map +1 -0
- package/build/ts/__tests__/unit/publish.test.d.ts +2 -0
- package/build/ts/__tests__/unit/publish.test.d.ts.map +1 -0
- package/build/ts/__tests__/unit/publish.test.js +130 -0
- package/build/ts/__tests__/unit/publish.test.js.map +1 -0
- package/build/ts/__tests__/unit/setVerifyingKeys.test.d.ts +2 -0
- package/build/ts/__tests__/unit/setVerifyingKeys.test.d.ts.map +1 -0
- package/build/ts/__tests__/unit/setVerifyingKeys.test.js +52 -0
- package/build/ts/__tests__/unit/setVerifyingKeys.test.js.map +1 -0
- package/build/ts/__tests__/unit/signup.test.d.ts +2 -0
- package/build/ts/__tests__/unit/signup.test.d.ts.map +1 -0
- package/build/ts/__tests__/unit/signup.test.js +65 -0
- package/build/ts/__tests__/unit/signup.test.js.map +1 -0
- package/build/ts/__tests__/unit/timeTravel.test.d.ts +2 -0
- package/build/ts/__tests__/unit/timeTravel.test.d.ts.map +1 -0
- package/build/ts/__tests__/unit/timeTravel.test.js +14 -0
- package/build/ts/__tests__/unit/timeTravel.test.js.map +1 -0
- package/build/ts/__tests__/unit/utils.test.d.ts +2 -0
- package/build/ts/__tests__/unit/utils.test.d.ts.map +1 -0
- package/build/ts/__tests__/unit/utils.test.js +36 -0
- package/build/ts/__tests__/unit/utils.test.js.map +1 -0
- package/build/ts/constants.d.ts +82 -0
- package/build/ts/constants.d.ts.map +1 -0
- package/build/ts/constants.js +198 -0
- package/build/ts/constants.js.map +1 -0
- package/build/ts/index.d.ts +4 -0
- package/build/ts/index.d.ts.map +1 -0
- package/build/ts/index.js +23 -0
- package/build/ts/index.js.map +1 -0
- package/build/ts/testingClass.d.ts +43 -0
- package/build/ts/testingClass.d.ts.map +1 -0
- package/build/ts/testingClass.js +145 -0
- package/build/ts/testingClass.js.map +1 -0
- package/build/ts/types.d.ts +99 -0
- package/build/ts/types.d.ts.map +1 -0
- package/build/ts/types.js +3 -0
- package/build/ts/types.js.map +1 -0
- package/build/ts/user.d.ts +27 -0
- package/build/ts/user.d.ts.map +1 -0
- package/build/ts/user.js +36 -0
- package/build/ts/user.js.map +1 -0
- package/build/ts/utils.d.ts +70 -0
- package/build/ts/utils.d.ts.map +1 -0
- package/build/ts/utils.js +192 -0
- package/build/ts/utils.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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"}
|
package/build/ts/user.js
ADDED
|
@@ -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
|