@maci-protocol/sdk 0.0.0-ci.f4bc8a6 → 0.0.0-ci.f94d0a4
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/package.json +4 -3
- package/build/ts/browser/index.d.ts +5 -7
- package/build/ts/browser/index.d.ts.map +1 -1
- package/build/ts/browser/index.js +11 -20
- package/build/ts/browser/index.js.map +1 -1
- package/build/ts/browser/joinPoll.d.ts +8 -0
- package/build/ts/browser/joinPoll.d.ts.map +1 -0
- package/build/ts/browser/joinPoll.js +84 -0
- package/build/ts/browser/joinPoll.js.map +1 -0
- package/build/ts/browser/utils.d.ts +18 -0
- package/build/ts/browser/utils.d.ts.map +1 -0
- package/build/ts/browser/utils.js +37 -0
- package/build/ts/browser/utils.js.map +1 -0
- package/build/ts/deploy/index.d.ts +1 -0
- package/build/ts/deploy/index.d.ts.map +1 -1
- package/build/ts/deploy/index.js +3 -1
- package/build/ts/deploy/index.js.map +1 -1
- package/build/ts/deploy/poll.d.ts +1 -1
- package/build/ts/deploy/poll.d.ts.map +1 -1
- package/build/ts/deploy/poll.js +15 -8
- package/build/ts/deploy/poll.js.map +1 -1
- package/build/ts/deploy/types.d.ts +14 -2
- package/build/ts/deploy/types.d.ts.map +1 -1
- package/build/ts/index.d.ts +1 -1
- package/build/ts/index.d.ts.map +1 -1
- package/build/ts/index.js +15 -2
- package/build/ts/index.js.map +1 -1
- package/build/ts/maci/policy.d.ts +13 -1
- package/build/ts/maci/policy.d.ts.map +1 -1
- package/build/ts/maci/policy.js +41 -2
- package/build/ts/maci/policy.js.map +1 -1
- package/build/ts/maci/state.js +5 -5
- package/build/ts/maci/state.js.map +1 -1
- package/build/ts/maci/types.d.ts +33 -1
- package/build/ts/maci/types.d.ts.map +1 -1
- package/build/ts/maci/types.js +2 -0
- package/build/ts/maci/types.js.map +1 -1
- package/build/ts/maciKeys/__tests__/keypair.test.js +7 -7
- package/build/ts/maciKeys/__tests__/keypair.test.js.map +1 -1
- package/build/ts/maciKeys/__tests__/publicKeys.test.js +4 -4
- package/build/ts/maciKeys/__tests__/publicKeys.test.js.map +1 -1
- package/build/ts/maciKeys/keypair.js +3 -3
- package/build/ts/maciKeys/keypair.js.map +1 -1
- package/build/ts/maciKeys/publicKeys.d.ts +2 -2
- package/build/ts/maciKeys/publicKeys.d.ts.map +1 -1
- package/build/ts/maciKeys/publicKeys.js +6 -6
- package/build/ts/maciKeys/publicKeys.js.map +1 -1
- package/build/ts/poll/types.d.ts +3 -4
- package/build/ts/poll/types.d.ts.map +1 -1
- package/build/ts/poll/utils.js +3 -3
- package/build/ts/poll/utils.js.map +1 -1
- package/build/ts/proof/__tests__/download.test.js +2 -2
- package/build/ts/proof/__tests__/download.test.js.map +1 -1
- package/build/ts/proof/generate.js +4 -4
- package/build/ts/proof/generate.js.map +1 -1
- package/build/ts/proof/prove.js +5 -5
- package/build/ts/proof/prove.js.map +1 -1
- package/build/ts/proof/types.d.ts +1 -1
- package/build/ts/proof/types.d.ts.map +1 -1
- package/build/ts/relayer/__tests__/messages.test.js +1 -1
- package/build/ts/relayer/__tests__/messages.test.js.map +1 -1
- package/build/ts/relayer/__tests__/utils.test.js +3 -3
- package/build/ts/relayer/__tests__/utils.test.js.map +1 -1
- package/build/ts/relayer/utils.js +4 -4
- package/build/ts/relayer/utils.js.map +1 -1
- package/build/ts/trees/stateTree.js +9 -6
- package/build/ts/trees/stateTree.js.map +1 -1
- package/build/ts/trees/types.d.ts +2 -2
- package/build/ts/trees/types.d.ts.map +1 -1
- package/build/ts/user/index.d.ts +3 -1
- package/build/ts/user/index.d.ts.map +1 -1
- package/build/ts/user/index.js +10 -8
- package/build/ts/user/index.js.map +1 -1
- package/build/ts/user/joinPoll.d.ts +8 -0
- package/build/ts/user/joinPoll.d.ts.map +1 -0
- package/build/ts/user/joinPoll.js +84 -0
- package/build/ts/user/joinPoll.js.map +1 -0
- package/build/ts/user/signup.d.ts +20 -0
- package/build/ts/user/signup.d.ts.map +1 -0
- package/build/ts/user/signup.js +79 -0
- package/build/ts/user/signup.js.map +1 -0
- package/build/ts/user/types.d.ts +12 -20
- package/build/ts/user/types.d.ts.map +1 -1
- package/build/ts/user/utils.d.ts +23 -7
- package/build/ts/user/utils.d.ts.map +1 -1
- package/build/ts/user/utils.js +52 -14
- package/build/ts/user/utils.js.map +1 -1
- package/build/ts/utils/utils.d.ts +8 -0
- package/build/ts/utils/utils.d.ts.map +1 -1
- package/build/ts/utils/utils.js +14 -1
- package/build/ts/utils/utils.js.map +1 -1
- package/build/ts/verifyingKeys/setVerifyingKeys.d.ts +1 -1
- package/build/ts/verifyingKeys/setVerifyingKeys.d.ts.map +1 -1
- package/build/ts/verifyingKeys/setVerifyingKeys.js +15 -3
- package/build/ts/verifyingKeys/setVerifyingKeys.js.map +1 -1
- package/build/ts/verifyingKeys/types.d.ts +4 -0
- package/build/ts/verifyingKeys/types.d.ts.map +1 -1
- package/build/ts/verifyingKeys/utils.d.ts +1 -1
- package/build/ts/verifyingKeys/utils.d.ts.map +1 -1
- package/build/ts/verifyingKeys/utils.js +2 -1
- package/build/ts/verifyingKeys/utils.js.map +1 -1
- package/build/ts/vote/generate.d.ts +1 -1
- package/build/ts/vote/generate.d.ts.map +1 -1
- package/build/ts/vote/generate.js +3 -3
- package/build/ts/vote/generate.js.map +1 -1
- package/build/ts/vote/invalidate.js +3 -3
- package/build/ts/vote/invalidate.js.map +1 -1
- package/build/ts/vote/publish.d.ts +1 -1
- package/build/ts/vote/publish.d.ts.map +1 -1
- package/build/ts/vote/publish.js +18 -18
- package/build/ts/vote/publish.js.map +1 -1
- package/build/ts/vote/submit.js +5 -5
- package/build/ts/vote/submit.js.map +1 -1
- package/build/ts/vote/types.d.ts +6 -6
- package/build/ts/vote/types.d.ts.map +1 -1
- package/build/ts/vote/utils.d.ts +2 -2
- package/build/ts/vote/utils.d.ts.map +1 -1
- package/build/ts/vote/utils.js +4 -4
- package/build/ts/vote/utils.js.map +1 -1
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +10 -9
- package/build/ts/user/user.d.ts +0 -42
- package/build/ts/user/user.d.ts.map +0 -1
- package/build/ts/user/user.js +0 -192
- package/build/ts/user/user.js.map +0 -1
package/build/ts/user/utils.js
CHANGED
|
@@ -3,12 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getPollJoiningCircuitEvents = exports.getPollJoiningCircuitInputsFromStateFile = exports.joiningCircuitInputs = exports.getStateIndex = exports.parseSignupEvents = exports.parsePollJoinEvents = void 0;
|
|
6
|
+
exports.getPollJoiningCircuitEvents = exports.getPollJoiningCircuitInputsFromStateFile = exports.joiningCircuitInputs = exports.getStateIndex = exports.parseSignupEvents = exports.hasUserJoinedPoll = exports.getJoinedUserData = exports.parsePollJoinEvents = void 0;
|
|
7
|
+
const typechain_types_1 = require("@maci-protocol/contracts/typechain-types");
|
|
7
8
|
const core_1 = require("@maci-protocol/core");
|
|
8
9
|
const crypto_1 = require("@maci-protocol/crypto");
|
|
9
10
|
const domainobjs_1 = require("@maci-protocol/domainobjs");
|
|
10
11
|
const fs_1 = __importDefault(require("fs"));
|
|
11
|
-
const
|
|
12
|
+
const stateTree_1 = require("../trees/stateTree");
|
|
12
13
|
const constants_1 = require("../utils/constants");
|
|
13
14
|
/**
|
|
14
15
|
* Parse the poll joining events from the Poll contract
|
|
@@ -16,13 +17,13 @@ const constants_1 = require("../utils/constants");
|
|
|
16
17
|
const parsePollJoinEvents = async ({ pollContract, startBlock, currentBlock, pollPublicKey, }) => {
|
|
17
18
|
for (let block = startBlock; block <= currentBlock; block += constants_1.BLOCKS_STEP) {
|
|
18
19
|
const toBlock = Math.min(block + constants_1.BLOCKS_STEP - 1, currentBlock);
|
|
19
|
-
const
|
|
20
|
+
const publicKey = pollPublicKey.asArray();
|
|
20
21
|
// eslint-disable-next-line no-await-in-loop
|
|
21
|
-
const newEvents = await pollContract.queryFilter(pollContract.filters.PollJoined(
|
|
22
|
+
const newEvents = await pollContract.queryFilter(pollContract.filters.PollJoined(publicKey[0], publicKey[1], undefined, undefined, undefined), block, toBlock);
|
|
22
23
|
if (newEvents.length > 0) {
|
|
23
24
|
const [event] = newEvents;
|
|
24
25
|
return {
|
|
25
|
-
pollStateIndex: event.args[
|
|
26
|
+
pollStateIndex: event.args[4].toString(),
|
|
26
27
|
voiceCredits: event.args[2].toString(),
|
|
27
28
|
};
|
|
28
29
|
}
|
|
@@ -33,6 +34,43 @@ const parsePollJoinEvents = async ({ pollContract, startBlock, currentBlock, pol
|
|
|
33
34
|
};
|
|
34
35
|
};
|
|
35
36
|
exports.parsePollJoinEvents = parsePollJoinEvents;
|
|
37
|
+
/**
|
|
38
|
+
* Checks if user is joined to a poll with their public key and get its data
|
|
39
|
+
* @param {IJoinedUserArgs} - The arguments for the join check command
|
|
40
|
+
* @returns user joined or not and poll state index, voice credit balance
|
|
41
|
+
*/
|
|
42
|
+
const getJoinedUserData = async ({ maciAddress, pollId, pollPublicKey: serializedPollPublicKey, signer, startBlock, }) => {
|
|
43
|
+
const maciContract = typechain_types_1.MACI__factory.connect(maciAddress, signer);
|
|
44
|
+
const pollContracts = await maciContract.getPoll(pollId);
|
|
45
|
+
const pollContract = typechain_types_1.Poll__factory.connect(pollContracts.poll, signer);
|
|
46
|
+
const pollPublicKey = domainobjs_1.PublicKey.deserialize(serializedPollPublicKey);
|
|
47
|
+
const startBlockNumber = startBlock || 0;
|
|
48
|
+
const currentBlock = await signer.provider.getBlockNumber();
|
|
49
|
+
const { pollStateIndex, voiceCredits } = await (0, exports.parsePollJoinEvents)({
|
|
50
|
+
pollContract,
|
|
51
|
+
startBlock: startBlockNumber,
|
|
52
|
+
currentBlock,
|
|
53
|
+
pollPublicKey,
|
|
54
|
+
});
|
|
55
|
+
return {
|
|
56
|
+
isJoined: pollStateIndex !== undefined,
|
|
57
|
+
pollStateIndex,
|
|
58
|
+
voiceCredits,
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
exports.getJoinedUserData = getJoinedUserData;
|
|
62
|
+
/**
|
|
63
|
+
* Checks if a user joined a poll with a given nullifier
|
|
64
|
+
* @param {IIsNullifierOnChainArgs} args - The arguments for the is nullifier on chain command
|
|
65
|
+
* @returns whether the nullifier is on chain or not
|
|
66
|
+
*/
|
|
67
|
+
const hasUserJoinedPoll = async ({ maciAddress, pollId, nullifier, signer, }) => {
|
|
68
|
+
const maciContract = typechain_types_1.MACI__factory.connect(maciAddress, signer);
|
|
69
|
+
const pollContracts = await maciContract.getPoll(pollId);
|
|
70
|
+
const pollContract = typechain_types_1.Poll__factory.connect(pollContracts.poll, signer);
|
|
71
|
+
return pollContract.pollNullifiers(nullifier);
|
|
72
|
+
};
|
|
73
|
+
exports.hasUserJoinedPoll = hasUserJoinedPoll;
|
|
36
74
|
/**
|
|
37
75
|
* Parse the signup events from the MACI contract
|
|
38
76
|
*/
|
|
@@ -78,11 +116,11 @@ exports.getStateIndex = getStateIndex;
|
|
|
78
116
|
* @param maciPrivKey User's private key for signing up
|
|
79
117
|
* @param stateLeafIndex Index where the user is stored in the state leaves
|
|
80
118
|
* @param pollPrivKey Poll's private key for the poll joining
|
|
81
|
-
* @param
|
|
119
|
+
* @param pollPublicKey Poll's public key for the poll joining
|
|
82
120
|
* @param pollId Poll's id
|
|
83
121
|
* @returns stringified circuit inputs
|
|
84
122
|
*/
|
|
85
|
-
const joiningCircuitInputs = (signUpData, stateTreeDepth, maciPrivKey, stateLeafIndex,
|
|
123
|
+
const joiningCircuitInputs = (signUpData, stateTreeDepth, maciPrivKey, stateLeafIndex, pollPublicKey, pollId) => {
|
|
86
124
|
// Get the state leaf on the index position
|
|
87
125
|
const { signUpTree: stateTree } = signUpData;
|
|
88
126
|
// calculate the path elements for the state tree given the original state tree
|
|
@@ -110,8 +148,8 @@ const joiningCircuitInputs = (signUpData, stateTreeDepth, maciPrivKey, stateLeaf
|
|
|
110
148
|
const actualStateTreeDepth = BigInt(siblingsLength);
|
|
111
149
|
// Calculate public input hash from nullifier, credits and current root
|
|
112
150
|
const circuitInputs = {
|
|
113
|
-
|
|
114
|
-
|
|
151
|
+
privateKey: maciPrivKey.asCircuitInputs(),
|
|
152
|
+
pollPublicKey: pollPublicKey.asCircuitInputs(),
|
|
115
153
|
siblings: siblingsArray,
|
|
116
154
|
indices,
|
|
117
155
|
nullifier,
|
|
@@ -132,7 +170,7 @@ const getPollJoiningCircuitInputsFromStateFile = async ({ stateFile, pollId, sta
|
|
|
132
170
|
const content = JSON.parse(file.toString());
|
|
133
171
|
const maciState = core_1.MaciState.fromJSON(content);
|
|
134
172
|
const poll = maciState.polls.get(pollId);
|
|
135
|
-
const {
|
|
173
|
+
const { publicKey: userPubKey } = new domainobjs_1.Keypair(userMaciPrivKey);
|
|
136
174
|
const loadedStateIndex = (0, exports.getStateIndex)(maciState.pubKeys, userPubKey, stateIndex);
|
|
137
175
|
// check < 1 cause index zero is a blank state leaf
|
|
138
176
|
if (loadedStateIndex < 1) {
|
|
@@ -140,9 +178,9 @@ const getPollJoiningCircuitInputsFromStateFile = async ({ stateFile, pollId, sta
|
|
|
140
178
|
}
|
|
141
179
|
poll.updatePoll(BigInt(maciState.pubKeys.length));
|
|
142
180
|
const circuitInputs = poll.joiningCircuitInputs({
|
|
143
|
-
|
|
181
|
+
maciPrivateKey: userMaciPrivKey,
|
|
144
182
|
stateLeafIndex: stateIndex,
|
|
145
|
-
|
|
183
|
+
pollPublicKey: userPubKey,
|
|
146
184
|
});
|
|
147
185
|
return circuitInputs;
|
|
148
186
|
};
|
|
@@ -167,7 +205,7 @@ const getPollJoiningCircuitEvents = async ({ maciContract, stateIndex, pollId, u
|
|
|
167
205
|
]);
|
|
168
206
|
const defaultStartBlock = Math.min(defaultStartBlockPoll, defaultStartBlockSignup);
|
|
169
207
|
const fromBlock = startBlock ? Number(startBlock) : defaultStartBlock;
|
|
170
|
-
const signUpData = await (0,
|
|
208
|
+
const signUpData = await (0, stateTree_1.generateSignUpTree)({
|
|
171
209
|
provider: signer.provider,
|
|
172
210
|
address: await maciContract.getAddress(),
|
|
173
211
|
blocksPerRequest: blocksPerBatch || 50,
|
|
@@ -175,7 +213,7 @@ const getPollJoiningCircuitEvents = async ({ maciContract, stateIndex, pollId, u
|
|
|
175
213
|
endBlock,
|
|
176
214
|
sleepAmount: 0,
|
|
177
215
|
});
|
|
178
|
-
const {
|
|
216
|
+
const { publicKey: userPubKey } = new domainobjs_1.Keypair(userMaciPrivKey);
|
|
179
217
|
const loadedStateIndex = (0, exports.getStateIndex)(signUpData.pubKeys, userPubKey, stateIndex);
|
|
180
218
|
if (loadedStateIndex < 1) {
|
|
181
219
|
throw new Error("Invalid state index");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/user/utils.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAgE;AAChE,kDAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/user/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,4 +13,12 @@ export declare const unlinkFile: (filepath: string) => Promise<void>;
|
|
|
13
13
|
* @param ms - the amount of time to sleep in milliseconds
|
|
14
14
|
*/
|
|
15
15
|
export declare const sleep: (ms: number) => Promise<void>;
|
|
16
|
+
declare global {
|
|
17
|
+
interface ITerminatable {
|
|
18
|
+
terminate: () => Promise<unknown>;
|
|
19
|
+
}
|
|
20
|
+
var curve_bn128: ITerminatable | undefined;
|
|
21
|
+
var curve_bls12381: ITerminatable | undefined;
|
|
22
|
+
}
|
|
23
|
+
export declare const cleanThreads: () => Promise<void>;
|
|
16
24
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/utils/utils.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,KAAK,QAAO,OAAoC,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAM/D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CAIpD,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/utils/utils.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,KAAK,QAAO,OAAoC,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAM/D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CAIpD,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,aAAa;QACrB,SAAS,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;KACnC;IAGD,IAAI,WAAW,EAAE,aAAa,GAAG,SAAS,CAAC;IAG3C,IAAI,cAAc,EAAE,aAAa,GAAG,SAAS,CAAC;CAC/C;AAMD,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,IAAI,CAUjD,CAAC"}
|
package/build/ts/utils/utils.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.sleep = exports.unlinkFile = exports.isArm = void 0;
|
|
6
|
+
exports.cleanThreads = exports.sleep = exports.unlinkFile = exports.isArm = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const os_1 = __importDefault(require("os"));
|
|
9
9
|
/**
|
|
@@ -33,4 +33,17 @@ const sleep = async (ms) => {
|
|
|
33
33
|
});
|
|
34
34
|
};
|
|
35
35
|
exports.sleep = sleep;
|
|
36
|
+
/*
|
|
37
|
+
* https://github.com/iden3/snarkjs/issues/152
|
|
38
|
+
* Need to cleanup the threads to avoid stalling
|
|
39
|
+
*/
|
|
40
|
+
const cleanThreads = async () => {
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
42
|
+
if (!globalThis) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const curves = ["curve_bn128", "curve_bls12381"];
|
|
46
|
+
await Promise.all(curves.map((curve) => globalThis[curve]?.terminate()).filter(Boolean));
|
|
47
|
+
};
|
|
48
|
+
exports.cleanThreads = cleanThreads;
|
|
36
49
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/utils/utils.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,4CAAoB;AAEpB;;;GAGG;AACI,MAAM,KAAK,GAAG,GAAY,EAAE,CAAC,YAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAAjD,QAAA,KAAK,SAA4C;AAE9D;;;GAGG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;IAClE,MAAM,YAAY,GAAG,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE7C,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,YAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAC;AANW,QAAA,UAAU,cAMrB;AAEF;;;GAGG;AACI,MAAM,KAAK,GAAG,KAAK,EAAE,EAAU,EAAiB,EAAE;IACvD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAJW,QAAA,KAAK,SAIhB"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/utils/utils.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,4CAAoB;AAEpB;;;GAGG;AACI,MAAM,KAAK,GAAG,GAAY,EAAE,CAAC,YAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAAjD,QAAA,KAAK,SAA4C;AAE9D;;;GAGG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;IAClE,MAAM,YAAY,GAAG,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE7C,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,YAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAC;AANW,QAAA,UAAU,cAMrB;AAEF;;;GAGG;AACI,MAAM,KAAK,GAAG,KAAK,EAAE,EAAU,EAAiB,EAAE;IACvD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAJW,QAAA,KAAK,SAIhB;AAcF;;;GAGG;AACI,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;IACpD,uEAAuE;IACvE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACjD,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAyC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAC1G,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,YAAY,gBAUvB"}
|
|
@@ -3,5 +3,5 @@ import type { ISetVerifyingKeysArgs } from "./types";
|
|
|
3
3
|
* Set the verifying keys on the contract
|
|
4
4
|
* @param args - The arguments for the setVerifyingKeys function
|
|
5
5
|
*/
|
|
6
|
-
export declare const setVerifyingKeys: ({ pollJoiningVk, pollJoinedVk, processMessagesVk, tallyVotesVk, stateTreeDepth, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, vkRegistryAddress, signer, mode, }: ISetVerifyingKeysArgs) => Promise<void>;
|
|
6
|
+
export declare const setVerifyingKeys: ({ pollJoiningVk, pollJoinedVk, processMessagesVk, tallyVotesVk, stateTreeDepth, pollStateTreeDepth, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, vkRegistryAddress, signer, mode, }: ISetVerifyingKeysArgs) => Promise<void>;
|
|
7
7
|
//# sourceMappingURL=setVerifyingKeys.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setVerifyingKeys.d.ts","sourceRoot":"","sources":["../../../ts/verifyingKeys/setVerifyingKeys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setVerifyingKeys.d.ts","sourceRoot":"","sources":["../../../ts/verifyingKeys/setVerifyingKeys.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAMrD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAU,kMAapC,qBAAqB,KAAG,OAAO,CAAC,IAAI,CAyFtC,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.setVerifyingKeys = void 0;
|
|
4
4
|
const contracts_1 = require("@maci-protocol/contracts");
|
|
5
|
+
const typechain_types_1 = require("@maci-protocol/contracts/typechain-types");
|
|
5
6
|
const core_1 = require("@maci-protocol/core");
|
|
6
7
|
const utils_1 = require("../utils");
|
|
7
8
|
const utils_2 = require("./utils");
|
|
@@ -9,7 +10,7 @@ const utils_2 = require("./utils");
|
|
|
9
10
|
* Set the verifying keys on the contract
|
|
10
11
|
* @param args - The arguments for the setVerifyingKeys function
|
|
11
12
|
*/
|
|
12
|
-
const setVerifyingKeys = async ({ pollJoiningVk, pollJoinedVk, processMessagesVk, tallyVotesVk, stateTreeDepth, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, vkRegistryAddress, signer, mode, }) => {
|
|
13
|
+
const setVerifyingKeys = async ({ pollJoiningVk, pollJoinedVk, processMessagesVk, tallyVotesVk, stateTreeDepth, pollStateTreeDepth, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, vkRegistryAddress, signer, mode, }) => {
|
|
13
14
|
// validate args
|
|
14
15
|
if (stateTreeDepth < 1 || intStateTreeDepth < 1 || voteOptionTreeDepth < 1 || messageBatchSize < 1) {
|
|
15
16
|
throw new Error("Invalid depth or batch size parameters");
|
|
@@ -23,7 +24,7 @@ const setVerifyingKeys = async ({ pollJoiningVk, pollJoinedVk, processMessagesVk
|
|
|
23
24
|
throw new Error(`A VkRegistry contract is not deployed at ${vkRegistryAddress}`);
|
|
24
25
|
}
|
|
25
26
|
// connect to VkRegistry contract
|
|
26
|
-
const vkRegistryContract =
|
|
27
|
+
const vkRegistryContract = typechain_types_1.VkRegistry__factory.connect(vkRegistryAddress, signer);
|
|
27
28
|
// check if the poll vk was already set
|
|
28
29
|
const pollJoiningVkSig = (0, core_1.genPollJoiningVkSig)(stateTreeDepth);
|
|
29
30
|
if (await vkRegistryContract.isPollJoiningVkSet(pollJoiningVkSig)) {
|
|
@@ -45,7 +46,18 @@ const setVerifyingKeys = async ({ pollJoiningVk, pollJoinedVk, processMessagesVk
|
|
|
45
46
|
throw new Error("This tally verifying key is already set in the contract");
|
|
46
47
|
}
|
|
47
48
|
// set them onchain
|
|
48
|
-
const tx = await vkRegistryContract.setVerifyingKeysBatch(
|
|
49
|
+
const tx = await vkRegistryContract.setVerifyingKeysBatch({
|
|
50
|
+
stateTreeDepth,
|
|
51
|
+
pollStateTreeDepth,
|
|
52
|
+
intStateTreeDepth,
|
|
53
|
+
voteOptionTreeDepth,
|
|
54
|
+
messageBatchSize,
|
|
55
|
+
modes: [mode],
|
|
56
|
+
pollJoiningVk: pollJoiningVk.asContractParam(),
|
|
57
|
+
pollJoinedVk: pollJoinedVk.asContractParam(),
|
|
58
|
+
processVks: [processMessagesVk.asContractParam()],
|
|
59
|
+
tallyVks: [tallyVotesVk.asContractParam()],
|
|
60
|
+
});
|
|
49
61
|
const receipt = await tx.wait();
|
|
50
62
|
if (receipt?.status !== 1) {
|
|
51
63
|
throw new Error("Set verifying keys transaction failed");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setVerifyingKeys.js","sourceRoot":"","sources":["../../../ts/verifyingKeys/setVerifyingKeys.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"setVerifyingKeys.js","sourceRoot":"","sources":["../../../ts/verifyingKeys/setVerifyingKeys.ts"],"names":[],"mappings":"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"}
|
|
@@ -121,6 +121,10 @@ export interface ISetVerifyingKeysArgs {
|
|
|
121
121
|
* The state tree depth
|
|
122
122
|
*/
|
|
123
123
|
stateTreeDepth: number;
|
|
124
|
+
/**
|
|
125
|
+
* The poll state tree depth
|
|
126
|
+
*/
|
|
127
|
+
pollStateTreeDepth: number;
|
|
124
128
|
/**
|
|
125
129
|
* The intermediate state tree depth (ballot tree)
|
|
126
130
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/verifyingKeys/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/verifyingKeys/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IVkContractParams, VerifyingKey } from "@maci-protocol/domainobjs";
|
|
1
|
+
import { type IVkContractParams, VerifyingKey } from "@maci-protocol/domainobjs";
|
|
2
2
|
import type { IGetAllVksArgs, IExtractAllVksArgs, IMaciVks, IMaciVerifyingKeys, IExtractVkToFileArgs } from "./types";
|
|
3
3
|
/**
|
|
4
4
|
* Get all the verifying keys from the contract
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/verifyingKeys/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/verifyingKeys/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIjF,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEtH;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAU,gHAQpC,cAAc,KAAG,OAAO,CAAC,kBAAkB,CAgB7C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GACrB,WAAW,YAAY,GAAG,iBAAiB,EAC3C,KAAK,YAAY,GAAG,iBAAiB,KACpC,OA2BF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAU,2FAKjC,kBAAkB,KAAG,OAAO,CAAC,QAAQ,CAgBvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAU,sKAQnC,oBAAoB,KAAG,OAAO,CAAC,IAAI,CAcrC,CAAC"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.extractVkToFile = exports.extractAllVks = exports.compareVks = exports.getAllOnChainVks = void 0;
|
|
7
7
|
const contracts_1 = require("@maci-protocol/contracts");
|
|
8
|
+
const typechain_types_1 = require("@maci-protocol/contracts/typechain-types");
|
|
8
9
|
const domainobjs_1 = require("@maci-protocol/domainobjs");
|
|
9
10
|
const fs_1 = __importDefault(require("fs"));
|
|
10
11
|
/**
|
|
@@ -13,7 +14,7 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
13
14
|
* @returns The verifying keys
|
|
14
15
|
*/
|
|
15
16
|
const getAllOnChainVks = async ({ vkRegistryAddress, signer, stateTreeDepth, voteOptionTreeDepth, messageBatchSize, intStateTreeDepth, mode, }) => {
|
|
16
|
-
const vkRegistryContractInstance =
|
|
17
|
+
const vkRegistryContractInstance = typechain_types_1.VkRegistry__factory.connect(vkRegistryAddress, signer);
|
|
17
18
|
const [pollJoiningVkOnChain, pollJoinedVkOnChain, processVkOnChain, tallyVkOnChain] = await Promise.all([
|
|
18
19
|
vkRegistryContractInstance.getPollJoiningVk(stateTreeDepth),
|
|
19
20
|
vkRegistryContractInstance.getPollJoinedVk(stateTreeDepth),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/verifyingKeys/utils.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/verifyingKeys/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,5 @@ import type { IGenerateVoteArgs, IVote } from "./types";
|
|
|
4
4
|
* @param args - The arguments for the vote
|
|
5
5
|
* @returns The vote object
|
|
6
6
|
*/
|
|
7
|
-
export declare const generateVote: ({ pollId, voteOptionIndex, salt, nonce, privateKey, stateIndex, voteWeight,
|
|
7
|
+
export declare const generateVote: ({ pollId, voteOptionIndex, salt, nonce, privateKey, stateIndex, voteWeight, coordinatorPublicKey, maxVoteOption, ephemeralKeypair, newPublicKey, }: IGenerateVoteArgs) => IVote;
|
|
8
8
|
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../ts/vote/generate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIxD;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../ts/vote/generate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIxD;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,oJAY1B,iBAAiB,KAAG,KAmDtB,CAAC"}
|
|
@@ -9,7 +9,7 @@ const utils_1 = require("./utils");
|
|
|
9
9
|
* @param args - The arguments for the vote
|
|
10
10
|
* @returns The vote object
|
|
11
11
|
*/
|
|
12
|
-
const generateVote = ({ pollId, voteOptionIndex, salt, nonce, privateKey, stateIndex, voteWeight,
|
|
12
|
+
const generateVote = ({ pollId, voteOptionIndex, salt, nonce, privateKey, stateIndex, voteWeight, coordinatorPublicKey, maxVoteOption, ephemeralKeypair, newPublicKey, }) => {
|
|
13
13
|
const keypair = new domainobjs_1.Keypair(privateKey);
|
|
14
14
|
// validate args
|
|
15
15
|
if (voteOptionIndex < 0 || voteOptionIndex > maxVoteOption) {
|
|
@@ -32,11 +32,11 @@ const generateVote = ({ pollId, voteOptionIndex, salt, nonce, privateKey, stateI
|
|
|
32
32
|
// if no ephemeral keypair is provided, generate a new one
|
|
33
33
|
const encKeypair = ephemeralKeypair ?? new domainobjs_1.Keypair();
|
|
34
34
|
// create the command object
|
|
35
|
-
const command = new domainobjs_1.PCommand(stateIndex,
|
|
35
|
+
const command = new domainobjs_1.PCommand(stateIndex, newPublicKey ?? keypair.publicKey, voteOptionIndex, voteWeight, nonce, pollId, userSalt);
|
|
36
36
|
// sign the command with the poll private key
|
|
37
37
|
const signature = command.sign(privateKey);
|
|
38
38
|
// encrypt the command using a shared key between the user and the coordinator
|
|
39
|
-
const message = command.encrypt(signature, domainobjs_1.Keypair.genEcdhSharedKey(encKeypair.
|
|
39
|
+
const message = command.encrypt(signature, domainobjs_1.Keypair.genEcdhSharedKey(encKeypair.privateKey, coordinatorPublicKey));
|
|
40
40
|
return {
|
|
41
41
|
message,
|
|
42
42
|
ephemeralKeypair: encKeypair,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../ts/vote/generate.ts"],"names":[],"mappings":";;;AAAA,kDAAsD;AACtD,0DAA8D;AAI9D,mCAAuC;AAEvC;;;;GAIG;AACI,MAAM,YAAY,GAAG,CAAC,EAC3B,MAAM,EACN,eAAe,EACf,IAAI,EACJ,KAAK,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../ts/vote/generate.ts"],"names":[],"mappings":";;;AAAA,kDAAsD;AACtD,0DAA8D;AAI9D,mCAAuC;AAEvC;;;;GAIG;AACI,MAAM,YAAY,GAAG,CAAC,EAC3B,MAAM,EACN,eAAe,EACf,IAAI,EACJ,KAAK,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,YAAY,GACM,EAAS,EAAE;IAC7B,MAAM,OAAO,GAAG,IAAI,oBAAO,CAAC,UAAU,CAAC,CAAC;IAExC,gBAAgB;IAChB,IAAI,eAAe,GAAG,CAAC,IAAI,eAAe,GAAG,aAAa,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,mDAAmD;IACnD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,IAAI,IAAI,CAAC,IAAA,oBAAY,EAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,sBAAa,GAAE,CAAC;IAEvD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED,0DAA0D;IAC1D,MAAM,UAAU,GAAG,gBAAgB,IAAI,IAAI,oBAAO,EAAE,CAAC;IAErD,4BAA4B;IAC5B,MAAM,OAAO,GAAG,IAAI,qBAAQ,CAC1B,UAAU,EACV,YAAY,IAAI,OAAO,CAAC,SAAS,EACjC,eAAe,EACf,UAAU,EACV,KAAK,EACL,MAAM,EACN,QAAQ,CACT,CAAC;IAEF,6CAA6C;IAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE3C,8EAA8E;IAC9E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAElH,OAAO;QACL,OAAO;QACP,gBAAgB,EAAE,UAAU;KAC7B,CAAC;AACJ,CAAC,CAAC;AA/DW,QAAA,YAAY,gBA+DvB"}
|
|
@@ -19,7 +19,7 @@ const utils_1 = require("./utils");
|
|
|
19
19
|
const invalidateVotes = async ({ maciAddress, pollId, signer, maciPrivateKey, stateIndex, }) => {
|
|
20
20
|
const { poll: pollContract } = await (0, poll_1.getPollContracts)({ maciAddress, pollId, signer });
|
|
21
21
|
const [maxVoteOption, pollAddress] = await Promise.all([pollContract.voteOptions(), pollContract.getAddress()]);
|
|
22
|
-
const
|
|
22
|
+
const coordinatorPublicKey = await (0, utils_1.getCoordinatorPubKey)(pollAddress, signer);
|
|
23
23
|
// generate the key change message
|
|
24
24
|
const message = (0, generate_1.generateVote)({
|
|
25
25
|
pollId,
|
|
@@ -28,9 +28,9 @@ const invalidateVotes = async ({ maciAddress, pollId, signer, maciPrivateKey, st
|
|
|
28
28
|
privateKey: maciPrivateKey,
|
|
29
29
|
stateIndex,
|
|
30
30
|
// use a random key to invalidate the previous votes
|
|
31
|
-
|
|
31
|
+
newPublicKey: new domainobjs_1.Keypair().publicKey,
|
|
32
32
|
voteWeight: 0n,
|
|
33
|
-
|
|
33
|
+
coordinatorPublicKey,
|
|
34
34
|
maxVoteOption,
|
|
35
35
|
});
|
|
36
36
|
const receipt = await (0, submit_1.submitVote)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invalidate.js","sourceRoot":"","sources":["../../../ts/vote/invalidate.ts"],"names":[],"mappings":";;;AAAA,0DAAoD;AAIpD,kCAA2C;AAE3C,yCAA0C;AAC1C,qCAAsC;AACtC,mCAA+C;AAE/C;;;;;;;;;GASG;AACI,MAAM,eAAe,GAAG,KAAK,EAAE,EACpC,WAAW,EACX,MAAM,EACN,MAAM,EACN,cAAc,EACd,UAAU,GACW,EAA+B,EAAE;IACtD,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,uBAAgB,EAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAEvF,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAChH,MAAM,
|
|
1
|
+
{"version":3,"file":"invalidate.js","sourceRoot":"","sources":["../../../ts/vote/invalidate.ts"],"names":[],"mappings":";;;AAAA,0DAAoD;AAIpD,kCAA2C;AAE3C,yCAA0C;AAC1C,qCAAsC;AACtC,mCAA+C;AAE/C;;;;;;;;;GASG;AACI,MAAM,eAAe,GAAG,KAAK,EAAE,EACpC,WAAW,EACX,MAAM,EACN,MAAM,EACN,cAAc,EACd,UAAU,GACW,EAA+B,EAAE;IACtD,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,uBAAgB,EAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAEvF,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAChH,MAAM,oBAAoB,GAAG,MAAM,IAAA,4BAAoB,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAE7E,kCAAkC;IAClC,MAAM,OAAO,GAAG,IAAA,uBAAY,EAAC;QAC3B,MAAM;QACN,eAAe,EAAE,EAAE;QACnB,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,cAAc;QAC1B,UAAU;QACV,oDAAoD;QACpD,YAAY,EAAE,IAAI,oBAAO,EAAE,CAAC,SAAS;QACrC,UAAU,EAAE,EAAE;QACd,oBAAoB;QACpB,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAU,EAAC;QAC/B,WAAW;QACX,IAAI,EAAE,OAAO;QACb,MAAM;KACP,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAjCW,QAAA,eAAe,mBAiC1B"}
|
|
@@ -4,7 +4,7 @@ import type { IPublishBatchArgs, IPublishBatchData, IPublishArgs, IPublishData }
|
|
|
4
4
|
* @param {IPublishArgs} args - The arguments for the publish command
|
|
5
5
|
* @returns {IPublishData} The ephemeral private key used to encrypt the message, transaction hash
|
|
6
6
|
*/
|
|
7
|
-
export declare const publish: ({
|
|
7
|
+
export declare const publish: ({ stateIndex, voteOptionIndex, nonce, pollId, newVoteWeight, maciAddress, salt, publicKey: serializedPublicKey, privateKey: serializedPrivateKey, signer, }: IPublishArgs) => Promise<IPublishData>;
|
|
8
8
|
/**
|
|
9
9
|
* Batch publish new messages to a MACI Poll contract
|
|
10
10
|
* @param {IPublishBatchArgs} args - The arguments for the publish command
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../ts/vote/publish.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAQhG;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAU
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../ts/vote/publish.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAQhG;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAU,6JAW3B,YAAY,KAAG,OAAO,CAAC,YAAY,CAqCrC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAU,mEAOhC,iBAAiB,KAAG,OAAO,CAAC,iBAAiB,CA4C/C,CAAC"}
|
package/build/ts/vote/publish.js
CHANGED
|
@@ -11,35 +11,35 @@ const utils_1 = require("./utils");
|
|
|
11
11
|
* @param {IPublishArgs} args - The arguments for the publish command
|
|
12
12
|
* @returns {IPublishData} The ephemeral private key used to encrypt the message, transaction hash
|
|
13
13
|
*/
|
|
14
|
-
const publish = async ({
|
|
15
|
-
if (!domainobjs_1.
|
|
14
|
+
const publish = async ({ stateIndex, voteOptionIndex, nonce, pollId, newVoteWeight, maciAddress, salt, publicKey: serializedPublicKey, privateKey: serializedPrivateKey, signer, }) => {
|
|
15
|
+
if (!domainobjs_1.PublicKey.isValidSerializedPubKey(serializedPublicKey)) {
|
|
16
16
|
throw new Error("Invalid MACI public key");
|
|
17
17
|
}
|
|
18
|
-
if (!domainobjs_1.
|
|
18
|
+
if (!domainobjs_1.PrivateKey.isValidSerializedPrivKey(serializedPrivateKey)) {
|
|
19
19
|
throw new Error("Invalid MACI private key");
|
|
20
20
|
}
|
|
21
21
|
const { poll: pollContract } = await (0, poll_1.getPollContracts)({ maciAddress, pollId, signer });
|
|
22
|
-
const votePubKey = domainobjs_1.
|
|
23
|
-
const
|
|
22
|
+
const votePubKey = domainobjs_1.PublicKey.deserialize(serializedPublicKey);
|
|
23
|
+
const privateKey = domainobjs_1.PrivateKey.deserialize(serializedPrivateKey);
|
|
24
24
|
const [maxVoteOption, pollAddress] = await Promise.all([pollContract.voteOptions(), pollContract.getAddress()]);
|
|
25
|
-
const
|
|
25
|
+
const coordinatorPublicKey = await (0, utils_1.getCoordinatorPubKey)(pollAddress, signer);
|
|
26
26
|
const vote = (0, generate_1.generateVote)({
|
|
27
27
|
pollId,
|
|
28
28
|
voteOptionIndex,
|
|
29
29
|
salt,
|
|
30
30
|
nonce,
|
|
31
|
-
privateKey
|
|
31
|
+
privateKey,
|
|
32
32
|
stateIndex,
|
|
33
33
|
voteWeight: newVoteWeight,
|
|
34
|
-
|
|
34
|
+
coordinatorPublicKey,
|
|
35
35
|
maxVoteOption,
|
|
36
|
-
|
|
36
|
+
newPublicKey: votePubKey,
|
|
37
37
|
});
|
|
38
38
|
const txHash = await (0, submit_1.submitVote)({ pollAddress, vote, signer });
|
|
39
39
|
return {
|
|
40
40
|
hash: txHash,
|
|
41
41
|
encryptedMessage: vote.message,
|
|
42
|
-
privateKey: vote.ephemeralKeypair.
|
|
42
|
+
privateKey: vote.ephemeralKeypair.privateKey.serialize(),
|
|
43
43
|
};
|
|
44
44
|
};
|
|
45
45
|
exports.publish = publish;
|
|
@@ -49,17 +49,17 @@ exports.publish = publish;
|
|
|
49
49
|
* @returns {IPublishBatchData} The ephemeral private key used to encrypt the message, transaction hash
|
|
50
50
|
*/
|
|
51
51
|
const publishBatch = async ({ messages, pollId, maciAddress, publicKey, privateKey, signer, }) => {
|
|
52
|
-
if (!domainobjs_1.
|
|
52
|
+
if (!domainobjs_1.PublicKey.isValidSerializedPubKey(publicKey)) {
|
|
53
53
|
throw new Error("Invalid MACI public key");
|
|
54
54
|
}
|
|
55
|
-
if (!domainobjs_1.
|
|
55
|
+
if (!domainobjs_1.PrivateKey.isValidSerializedPrivKey(privateKey)) {
|
|
56
56
|
throw new Error("Invalid MACI private key");
|
|
57
57
|
}
|
|
58
58
|
const { poll: pollContract } = await (0, poll_1.getPollContracts)({ maciAddress, pollId, signer });
|
|
59
|
-
const userMaciPubKey = domainobjs_1.
|
|
60
|
-
const userMaciPrivKey = domainobjs_1.
|
|
59
|
+
const userMaciPubKey = domainobjs_1.PublicKey.deserialize(publicKey);
|
|
60
|
+
const userMaciPrivKey = domainobjs_1.PrivateKey.deserialize(privateKey);
|
|
61
61
|
const [maxVoteOption, pollAddress] = await Promise.all([pollContract.voteOptions(), pollContract.getAddress()]);
|
|
62
|
-
const
|
|
62
|
+
const coordinatorPublicKey = await (0, utils_1.getCoordinatorPubKey)(pollAddress, signer);
|
|
63
63
|
// validate the vote options index against the max leaf index on-chain
|
|
64
64
|
const votes = messages.map(({ stateIndex, voteOptionIndex, salt, nonce, newVoteWeight }) => (0, generate_1.generateVote)({
|
|
65
65
|
pollId,
|
|
@@ -70,8 +70,8 @@ const publishBatch = async ({ messages, pollId, maciAddress, publicKey, privateK
|
|
|
70
70
|
maxVoteOption: BigInt(maxVoteOption),
|
|
71
71
|
salt,
|
|
72
72
|
voteWeight: newVoteWeight,
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
coordinatorPublicKey,
|
|
74
|
+
newPublicKey: userMaciPubKey,
|
|
75
75
|
}));
|
|
76
76
|
const txHash = await (0, submit_1.submitVoteBatch)({
|
|
77
77
|
pollAddress,
|
|
@@ -81,7 +81,7 @@ const publishBatch = async ({ messages, pollId, maciAddress, publicKey, privateK
|
|
|
81
81
|
return {
|
|
82
82
|
hash: txHash,
|
|
83
83
|
encryptedMessages: votes.map((vote) => vote.message),
|
|
84
|
-
privateKeys: votes.map((vote) => vote.ephemeralKeypair.
|
|
84
|
+
privateKeys: votes.map((vote) => vote.ephemeralKeypair.privateKey.serialize()),
|
|
85
85
|
};
|
|
86
86
|
};
|
|
87
87
|
exports.publishBatch = publishBatch;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../ts/vote/publish.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../ts/vote/publish.ts"],"names":[],"mappings":"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"}
|