@maci-protocol/testing 0.0.0-ci.a584b1a → 0.0.0-ci.a874953
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/build/hardhat.config.js +1 -1
- package/build/hardhat.config.js.map +1 -1
- 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 +842 -0
- package/build/ts/__tests__/e2e.full.test.js.map +1 -0
- package/build/ts/__tests__/e2e.nonQv.test.js +429 -29
- package/build/ts/__tests__/e2e.nonQv.test.js.map +1 -1
- package/build/ts/__tests__/e2e.test.js +136 -125
- package/build/ts/__tests__/e2e.test.js.map +1 -1
- package/build/ts/__tests__/integration.test.js +50 -52
- package/build/ts/__tests__/integration.test.js.map +1 -1
- package/build/ts/__tests__/keyChange.test.js +41 -39
- package/build/ts/__tests__/keyChange.test.js.map +1 -1
- package/build/ts/__tests__/maciKeys.test.js +7 -7
- package/build/ts/__tests__/maciKeys.test.js.map +1 -1
- 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 +189 -0
- package/build/ts/__tests__/stress/stress.full.test.js.map +1 -0
- package/build/ts/__tests__/unit/joinPoll.test.js +53 -53
- package/build/ts/__tests__/unit/joinPoll.test.js.map +1 -1
- package/build/ts/__tests__/unit/poll.test.js +8 -10
- package/build/ts/__tests__/unit/poll.test.js.map +1 -1
- package/build/ts/__tests__/unit/publish.test.js +8 -10
- package/build/ts/__tests__/unit/publish.test.js.map +1 -1
- 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.js +6 -4
- package/build/ts/__tests__/unit/signup.test.js.map +1 -1
- package/build/ts/constants.d.ts +49 -51
- package/build/ts/constants.d.ts.map +1 -1
- package/build/ts/constants.js +107 -68
- package/build/ts/constants.js.map +1 -1
- package/build/ts/testingClass.d.ts +9 -9
- package/build/ts/testingClass.d.ts.map +1 -1
- package/build/ts/testingClass.js +34 -33
- package/build/ts/testingClass.js.map +1 -1
- package/build/ts/types.d.ts +10 -11
- package/build/ts/types.d.ts.map +1 -1
- package/build/ts/utils.d.ts +1 -1
- package/build/ts/utils.d.ts.map +1 -1
- package/build/ts/utils.js +9 -9
- package/build/ts/utils.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +20 -18
|
@@ -1,58 +1,63 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const contracts_1 = require("@maci-protocol/contracts");
|
|
3
4
|
const domainobjs_1 = require("@maci-protocol/domainobjs");
|
|
4
5
|
const sdk_1 = require("@maci-protocol/sdk");
|
|
5
6
|
const browser_1 = require("@maci-protocol/sdk/browser");
|
|
6
7
|
const chai_1 = require("chai");
|
|
7
8
|
const constants_1 = require("../../constants");
|
|
9
|
+
const utils_1 = require("../../utils");
|
|
10
|
+
const useWasm = (0, utils_1.isArm)();
|
|
8
11
|
describe("joinPoll", function test() {
|
|
9
12
|
let signer;
|
|
13
|
+
let userSigners;
|
|
10
14
|
let maciAddresses;
|
|
11
15
|
let initialVoiceCreditProxyContractAddress;
|
|
12
|
-
|
|
13
|
-
const user = new domainobjs_1.Keypair();
|
|
14
|
-
const userPrivateKey = user.privateKey.serialize();
|
|
15
|
-
const userPublicKey = user.publicKey.serialize();
|
|
16
|
-
const user2 = new domainobjs_1.Keypair();
|
|
17
|
-
const user2PrivateKey = user2.privateKey.serialize();
|
|
18
|
-
const user2PublicKey = user2.publicKey.serialize();
|
|
19
|
-
const mockStateIndex = 1n;
|
|
16
|
+
const users = new Array(3).fill(undefined).map(() => new domainobjs_1.Keypair());
|
|
20
17
|
const mockPollId = 9000n;
|
|
21
18
|
this.timeout(900000);
|
|
22
19
|
// before all tests we deploy the verifying keys registry contract and set the verifying keys
|
|
23
20
|
before(async () => {
|
|
24
|
-
|
|
21
|
+
const signers = await (0, contracts_1.getSigners)();
|
|
22
|
+
[signer, ...userSigners] = signers;
|
|
25
23
|
const [signupPolicy, , signupPolicyFactory, signupCheckerFactory] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
|
|
26
24
|
const signupPolicyContractAddress = await signupPolicy.getAddress();
|
|
27
25
|
const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({ policy: signupPolicyFactory, checker: signupCheckerFactory }, signer, true);
|
|
28
26
|
const pollPolicyContractAddress = await pollPolicy.getAddress();
|
|
29
|
-
const
|
|
27
|
+
const constantInitialVoiceCreditProxyFactory = await (0, sdk_1.deployConstantInitialVoiceCreditProxyFactory)(signer, true);
|
|
28
|
+
const initialVoiceCreditProxy = await (0, sdk_1.deployConstantInitialVoiceCreditProxy)({ amount: constants_1.DEFAULT_INITIAL_VOICE_CREDITS }, constantInitialVoiceCreditProxyFactory, signer);
|
|
30
29
|
initialVoiceCreditProxyContractAddress = await initialVoiceCreditProxy.getAddress();
|
|
31
|
-
const verifier = await (0, sdk_1.deployVerifier)(signer, true);
|
|
32
|
-
verifierContractAddress = await verifier.getAddress();
|
|
33
30
|
const startDate = await (0, sdk_1.getBlockTimestamp)(signer);
|
|
34
|
-
// we deploy the verifying keys registry contract
|
|
35
|
-
const verifyingKeysRegistryAddress = await (0, sdk_1.deployVerifyingKeysRegistryContract)({ signer });
|
|
36
|
-
// we set the verifying keys
|
|
37
|
-
await (0, sdk_1.setVerifyingKeys)({ ...(await (0, constants_1.verifyingKeysArgs)(signer)), verifyingKeysRegistryAddress });
|
|
38
31
|
// deploy the smart contracts
|
|
39
32
|
maciAddresses = await (0, sdk_1.deployMaci)({
|
|
40
33
|
...constants_1.deployArgs,
|
|
41
34
|
signer,
|
|
42
35
|
signupPolicyAddress: signupPolicyContractAddress,
|
|
43
36
|
});
|
|
37
|
+
// we set the verifying keys
|
|
38
|
+
const { verifyingKeysRegistryContractAddress } = maciAddresses;
|
|
39
|
+
await (0, sdk_1.setVerifyingKeys)({
|
|
40
|
+
...(await (0, constants_1.verifyingKeysArgs)(signer)),
|
|
41
|
+
verifyingKeysRegistryAddress: verifyingKeysRegistryContractAddress,
|
|
42
|
+
});
|
|
44
43
|
// signup the user
|
|
45
44
|
await (0, sdk_1.signup)({
|
|
46
45
|
maciAddress: maciAddresses.maciContractAddress,
|
|
47
|
-
maciPublicKey:
|
|
46
|
+
maciPublicKey: users[0].publicKey.serialize(),
|
|
48
47
|
sgData: constants_1.DEFAULT_SG_DATA,
|
|
49
|
-
signer,
|
|
48
|
+
signer: userSigners[0],
|
|
50
49
|
});
|
|
51
50
|
await (0, sdk_1.signup)({
|
|
52
51
|
maciAddress: maciAddresses.maciContractAddress,
|
|
53
|
-
maciPublicKey:
|
|
52
|
+
maciPublicKey: users[1].publicKey.serialize(),
|
|
54
53
|
sgData: constants_1.DEFAULT_SG_DATA,
|
|
55
|
-
signer,
|
|
54
|
+
signer: userSigners[1],
|
|
55
|
+
});
|
|
56
|
+
await (0, sdk_1.signup)({
|
|
57
|
+
maciAddress: maciAddresses.maciContractAddress,
|
|
58
|
+
maciPublicKey: users[2].publicKey.serialize(),
|
|
59
|
+
sgData: constants_1.DEFAULT_SG_DATA,
|
|
60
|
+
signer: userSigners[2],
|
|
56
61
|
});
|
|
57
62
|
// deploy a poll contract
|
|
58
63
|
await (0, sdk_1.deployPoll)({
|
|
@@ -62,8 +67,6 @@ describe("joinPoll", function test() {
|
|
|
62
67
|
pollEndTimestamp: startDate + constants_1.pollDuration,
|
|
63
68
|
relayers: [await signer.getAddress()],
|
|
64
69
|
maciAddress: maciAddresses.maciContractAddress,
|
|
65
|
-
verifierContractAddress,
|
|
66
|
-
verifyingKeysRegistryContractAddress: verifyingKeysRegistryAddress,
|
|
67
70
|
policyContractAddress: pollPolicyContractAddress,
|
|
68
71
|
initialVoiceCreditProxyContractAddress,
|
|
69
72
|
});
|
|
@@ -72,14 +75,13 @@ describe("joinPoll", function test() {
|
|
|
72
75
|
const startBlock = await signer.provider?.getBlockNumber();
|
|
73
76
|
await (0, sdk_1.joinPoll)({
|
|
74
77
|
maciAddress: maciAddresses.maciContractAddress,
|
|
75
|
-
privateKey:
|
|
76
|
-
|
|
77
|
-
signer,
|
|
78
|
+
privateKey: users[0].privateKey.serialize(),
|
|
79
|
+
signer: userSigners[0],
|
|
78
80
|
pollId: 0n,
|
|
79
|
-
pollJoiningZkey: constants_1.
|
|
80
|
-
useWasm
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
|
|
82
|
+
useWasm,
|
|
83
|
+
pollJoiningWasm: constants_1.testPollJoiningWasmPath,
|
|
84
|
+
pollWitnessGenerator: constants_1.testPollJoiningWitnessPath,
|
|
83
85
|
rapidsnark: constants_1.testRapidsnarkPath,
|
|
84
86
|
sgDataArg: constants_1.DEFAULT_SG_DATA,
|
|
85
87
|
ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
|
|
@@ -87,62 +89,61 @@ describe("joinPoll", function test() {
|
|
|
87
89
|
const registeredUserData = await (0, sdk_1.getJoinedUserData)({
|
|
88
90
|
maciAddress: maciAddresses.maciContractAddress,
|
|
89
91
|
pollId: 0n,
|
|
90
|
-
pollPublicKey:
|
|
91
|
-
signer,
|
|
92
|
+
pollPublicKey: users[0].publicKey.serialize(),
|
|
93
|
+
signer: userSigners[0],
|
|
92
94
|
startBlock: startBlock || 0,
|
|
93
95
|
});
|
|
94
96
|
(0, chai_1.expect)(registeredUserData.isJoined).to.eq(true);
|
|
95
97
|
(0, chai_1.expect)(BigInt(registeredUserData.pollStateIndex)).to.eq(1);
|
|
96
98
|
});
|
|
97
|
-
it("should allow to join the poll
|
|
99
|
+
it("should allow to join the poll using a precomputed inclusion proof", async () => {
|
|
98
100
|
const startBlock = await signer.provider?.getBlockNumber();
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
101
|
+
const stateTree = await (0, sdk_1.generateMaciStateTreeWithEndKey)({
|
|
102
|
+
maciContractAddress: maciAddresses.maciContractAddress,
|
|
103
|
+
signer: userSigners[1],
|
|
104
|
+
userPublicKey: users[1].publicKey,
|
|
102
105
|
});
|
|
106
|
+
const inclusionProof = stateTree.signUpTree.generateProof(2);
|
|
103
107
|
await (0, browser_1.joinPoll)({
|
|
104
108
|
maciAddress: maciAddresses.maciContractAddress,
|
|
105
|
-
privateKey:
|
|
106
|
-
|
|
107
|
-
signer,
|
|
109
|
+
privateKey: users[1].privateKey.serialize(),
|
|
110
|
+
signer: userSigners[1],
|
|
108
111
|
pollId: 0n,
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
+
inclusionProof,
|
|
113
|
+
pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
|
|
114
|
+
pollJoiningWasm: constants_1.testPollJoiningWasmPath,
|
|
112
115
|
sgDataArg: constants_1.DEFAULT_SG_DATA,
|
|
113
116
|
ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
|
|
114
117
|
});
|
|
115
118
|
const registeredUserData = await (0, sdk_1.getJoinedUserData)({
|
|
116
119
|
maciAddress: maciAddresses.maciContractAddress,
|
|
117
120
|
pollId: 0n,
|
|
118
|
-
pollPublicKey:
|
|
119
|
-
signer,
|
|
121
|
+
pollPublicKey: users[1].publicKey.serialize(),
|
|
122
|
+
signer: userSigners[1],
|
|
120
123
|
startBlock: startBlock || 0,
|
|
121
124
|
});
|
|
122
125
|
(0, chai_1.expect)(registeredUserData.isJoined).to.eq(true);
|
|
123
|
-
(0, chai_1.expect)(BigInt(registeredUserData.pollStateIndex)).to.eq(
|
|
126
|
+
(0, chai_1.expect)(BigInt(registeredUserData.pollStateIndex)).to.eq(2);
|
|
124
127
|
});
|
|
125
128
|
it("should throw error if poll does not exist", async () => {
|
|
126
129
|
await (0, chai_1.expect)((0, sdk_1.joinPoll)({
|
|
127
130
|
maciAddress: maciAddresses.maciContractAddress,
|
|
128
|
-
privateKey:
|
|
129
|
-
stateIndex: mockStateIndex,
|
|
131
|
+
privateKey: users[0].privateKey.serialize(),
|
|
130
132
|
signer,
|
|
131
133
|
pollId: mockPollId,
|
|
132
|
-
pollJoiningZkey: constants_1.
|
|
134
|
+
pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
|
|
133
135
|
sgDataArg: constants_1.DEFAULT_SG_DATA,
|
|
134
136
|
ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
|
|
135
137
|
})).eventually.rejectedWith("PollDoesNotExist(9000)");
|
|
136
138
|
});
|
|
137
|
-
it("should throw error if state index is invalid", async () => {
|
|
139
|
+
it("should throw error if user did not sign up to maci and therefore state index is invalid", async () => {
|
|
138
140
|
const keypair = new domainobjs_1.Keypair();
|
|
139
141
|
await (0, chai_1.expect)((0, sdk_1.joinPoll)({
|
|
140
142
|
maciAddress: maciAddresses.maciContractAddress,
|
|
141
143
|
privateKey: keypair.privateKey.serialize(),
|
|
142
|
-
stateIndex: -1n,
|
|
143
144
|
signer,
|
|
144
145
|
pollId: 0n,
|
|
145
|
-
pollJoiningZkey: constants_1.
|
|
146
|
+
pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
|
|
146
147
|
sgDataArg: constants_1.DEFAULT_SG_DATA,
|
|
147
148
|
ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
|
|
148
149
|
})).eventually.rejectedWith("Invalid state index");
|
|
@@ -150,11 +151,10 @@ describe("joinPoll", function test() {
|
|
|
150
151
|
it("should throw error if current poll id is invalid", async () => {
|
|
151
152
|
await (0, chai_1.expect)((0, sdk_1.joinPoll)({
|
|
152
153
|
maciAddress: maciAddresses.maciContractAddress,
|
|
153
|
-
privateKey:
|
|
154
|
-
stateIndex: mockStateIndex,
|
|
154
|
+
privateKey: users[0].privateKey.serialize(),
|
|
155
155
|
signer,
|
|
156
156
|
pollId: -1n,
|
|
157
|
-
pollJoiningZkey: constants_1.
|
|
157
|
+
pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
|
|
158
158
|
sgDataArg: constants_1.DEFAULT_SG_DATA,
|
|
159
159
|
ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
|
|
160
160
|
})).eventually.rejectedWith("Invalid poll id");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joinPoll.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/unit/joinPoll.test.ts"],"names":[],"mappings":";;AAAA,0DAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"joinPoll.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/unit/joinPoll.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,6 @@ describe("poll", function test() {
|
|
|
7
7
|
this.timeout(900000);
|
|
8
8
|
let maciAddresses;
|
|
9
9
|
let initialVoiceCreditProxyContractAddress;
|
|
10
|
-
let verifierContractAddress;
|
|
11
10
|
let pollAddresses;
|
|
12
11
|
let signer;
|
|
13
12
|
// before all tests we deploy the verifying keys registry contract and set the verifying keys
|
|
@@ -17,14 +16,9 @@ describe("poll", function test() {
|
|
|
17
16
|
const signupPolicyContractAddress = await signupPolicy.getAddress();
|
|
18
17
|
const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({ policy: signupPolicyFactory, checker: signupCheckerFactory }, signer, true);
|
|
19
18
|
const pollPolicyContractAddress = await pollPolicy.getAddress();
|
|
20
|
-
const
|
|
19
|
+
const constantInitialVoiceCreditProxyFactory = await (0, sdk_1.deployConstantInitialVoiceCreditProxyFactory)(signer, true);
|
|
20
|
+
const initialVoiceCreditProxy = await (0, sdk_1.deployConstantInitialVoiceCreditProxy)({ amount: constants_1.DEFAULT_INITIAL_VOICE_CREDITS }, constantInitialVoiceCreditProxyFactory, signer);
|
|
21
21
|
initialVoiceCreditProxyContractAddress = await initialVoiceCreditProxy.getAddress();
|
|
22
|
-
const verifier = await (0, sdk_1.deployVerifier)(signer, true);
|
|
23
|
-
verifierContractAddress = await verifier.getAddress();
|
|
24
|
-
// we deploy the verifying keys registry contract
|
|
25
|
-
const verifyingKeysRegistryAddress = await (0, sdk_1.deployVerifyingKeysRegistryContract)({ signer });
|
|
26
|
-
// we set the verifying keys
|
|
27
|
-
await (0, sdk_1.setVerifyingKeys)({ ...(await (0, constants_1.verifyingKeysArgs)(signer)), verifyingKeysRegistryAddress });
|
|
28
22
|
const startDate = await (0, sdk_1.getBlockTimestamp)(signer);
|
|
29
23
|
// deploy the smart contracts
|
|
30
24
|
maciAddresses = await (0, sdk_1.deployMaci)({
|
|
@@ -32,6 +26,12 @@ describe("poll", function test() {
|
|
|
32
26
|
signer,
|
|
33
27
|
signupPolicyAddress: signupPolicyContractAddress,
|
|
34
28
|
});
|
|
29
|
+
// we set the verifying keys
|
|
30
|
+
const { verifyingKeysRegistryContractAddress } = maciAddresses;
|
|
31
|
+
await (0, sdk_1.setVerifyingKeys)({
|
|
32
|
+
...(await (0, constants_1.verifyingKeysArgs)(signer)),
|
|
33
|
+
verifyingKeysRegistryAddress: verifyingKeysRegistryContractAddress,
|
|
34
|
+
});
|
|
35
35
|
// deploy a poll contract
|
|
36
36
|
pollAddresses = await (0, sdk_1.deployPoll)({
|
|
37
37
|
...constants_1.deployPollArgs,
|
|
@@ -40,8 +40,6 @@ describe("poll", function test() {
|
|
|
40
40
|
pollEndTimestamp: startDate + constants_1.pollDuration,
|
|
41
41
|
relayers: [await signer.getAddress()],
|
|
42
42
|
maciAddress: maciAddresses.maciContractAddress,
|
|
43
|
-
verifierContractAddress,
|
|
44
|
-
verifyingKeysRegistryContractAddress: verifyingKeysRegistryAddress,
|
|
45
43
|
policyContractAddress: pollPolicyContractAddress,
|
|
46
44
|
initialVoiceCreditProxyContractAddress,
|
|
47
45
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poll.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/unit/poll.test.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"poll.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/unit/poll.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,6 @@ describe("publish", function test() {
|
|
|
9
9
|
this.timeout(900000);
|
|
10
10
|
let maciAddresses;
|
|
11
11
|
let initialVoiceCreditProxyContractAddress;
|
|
12
|
-
let verifierContractAddress;
|
|
13
12
|
let pollAddresses;
|
|
14
13
|
let signer;
|
|
15
14
|
const messages = [
|
|
@@ -37,14 +36,9 @@ describe("publish", function test() {
|
|
|
37
36
|
checker: signupCheckerFactory,
|
|
38
37
|
}, signer, true);
|
|
39
38
|
const pollPolicyContractAddress = await pollPolicy.getAddress();
|
|
40
|
-
const
|
|
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
41
|
initialVoiceCreditProxyContractAddress = await initialVoiceCreditProxy.getAddress();
|
|
42
|
-
const verifier = await (0, sdk_1.deployVerifier)(signer, true);
|
|
43
|
-
verifierContractAddress = await verifier.getAddress();
|
|
44
|
-
// we deploy the verifying keys registry contract
|
|
45
|
-
const verifyingKeysRegistryAddress = await (0, sdk_1.deployVerifyingKeysRegistryContract)({ signer });
|
|
46
|
-
// we set the verifying keys
|
|
47
|
-
await (0, sdk_1.setVerifyingKeys)({ ...(await (0, constants_1.verifyingKeysArgs)(signer)), verifyingKeysRegistryAddress });
|
|
48
42
|
const startDate = await (0, sdk_1.getBlockTimestamp)(signer);
|
|
49
43
|
// deploy the smart contracts
|
|
50
44
|
maciAddresses = await (0, sdk_1.deployMaci)({
|
|
@@ -52,6 +46,12 @@ describe("publish", function test() {
|
|
|
52
46
|
signer,
|
|
53
47
|
signupPolicyAddress: signupPolicyContractAddress,
|
|
54
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
55
|
// deploy a poll contract
|
|
56
56
|
pollAddresses = await (0, sdk_1.deployPoll)({
|
|
57
57
|
...constants_1.deployPollArgs,
|
|
@@ -60,8 +60,6 @@ describe("publish", function test() {
|
|
|
60
60
|
pollEndTimestamp: startDate + constants_1.pollDuration,
|
|
61
61
|
relayers: [await signer.getAddress()],
|
|
62
62
|
maciAddress: maciAddresses.maciContractAddress,
|
|
63
|
-
verifierContractAddress,
|
|
64
|
-
verifyingKeysRegistryContractAddress: verifyingKeysRegistryAddress,
|
|
65
63
|
policyContractAddress: pollPolicyContractAddress,
|
|
66
64
|
initialVoiceCreditProxyContractAddress,
|
|
67
65
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/unit/publish.test.ts"],"names":[],"mappings":";;AAAA,kDAAyD;AACzD,0DAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"publish.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/unit/publish.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
+
await (0, chai_1.expect)((0, sdk_1.setVerifyingKeys)({
|
|
37
|
+
...(await (0, constants_1.verifyingKeysArgs)(signer, [sdk_1.EMode.NON_QV])),
|
|
38
|
+
verifyingKeysRegistryAddress,
|
|
39
|
+
})).eventually.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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"}
|
|
@@ -14,16 +14,18 @@ describe("signup", function test() {
|
|
|
14
14
|
signer = await (0, sdk_1.getDefaultSigner)();
|
|
15
15
|
const [signupPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
|
|
16
16
|
const signupPolicyContractAddress = await signupPolicy.getAddress();
|
|
17
|
-
// we deploy the verifying keys registry contract
|
|
18
|
-
const verifyingKeysRegistryAddress = await (0, sdk_1.deployVerifyingKeysRegistryContract)({ signer });
|
|
19
|
-
// we set the verifying keys
|
|
20
|
-
await (0, sdk_1.setVerifyingKeys)({ ...(await (0, constants_1.verifyingKeysArgs)(signer)), verifyingKeysRegistryAddress });
|
|
21
17
|
// deploy the smart contracts
|
|
22
18
|
maciAddresses = await (0, sdk_1.deployMaci)({
|
|
23
19
|
...constants_1.deployArgs,
|
|
24
20
|
signer,
|
|
25
21
|
signupPolicyAddress: signupPolicyContractAddress,
|
|
26
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
|
+
});
|
|
27
29
|
});
|
|
28
30
|
it("should allow to signup and return the user data", async () => {
|
|
29
31
|
const startBlock = await signer.provider?.getBlockNumber();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signup.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/unit/signup.test.ts"],"names":[],"mappings":";;AAAA,0DAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"signup.test.js","sourceRoot":"","sources":["../../../../ts/__tests__/unit/signup.test.ts"],"names":[],"mappings":"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"}
|