@maci-protocol/sdk 0.0.0-ci.044d30d → 0.0.0-ci.057a7b7
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/LICENSE +1 -2
- package/build/package.json +15 -7
- package/build/ts/browser/index.d.ts +4 -2
- package/build/ts/browser/index.d.ts.map +1 -1
- package/build/ts/browser/index.js +7 -1
- package/build/ts/browser/index.js.map +1 -1
- package/build/ts/browser/joinPoll.d.ts +4 -2
- package/build/ts/browser/joinPoll.d.ts.map +1 -1
- package/build/ts/browser/joinPoll.js +21 -17
- package/build/ts/browser/joinPoll.js.map +1 -1
- package/build/ts/browser/utils.d.ts +2 -2
- package/build/ts/browser/utils.d.ts.map +1 -1
- package/build/ts/browser/utils.js +3 -3
- package/build/ts/browser/utils.js.map +1 -1
- package/build/ts/deploy/index.d.ts +2 -2
- package/build/ts/deploy/index.d.ts.map +1 -1
- package/build/ts/deploy/index.js +3 -3
- package/build/ts/deploy/index.js.map +1 -1
- package/build/ts/deploy/maci.js +1 -1
- package/build/ts/deploy/maci.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 +12 -9
- package/build/ts/deploy/poll.js.map +1 -1
- package/build/ts/deploy/types.d.ts +15 -10
- package/build/ts/deploy/types.d.ts.map +1 -1
- package/build/ts/deploy/utils.js +1 -1
- package/build/ts/deploy/utils.js.map +1 -1
- package/build/ts/deploy/verifyingKeysRegistry.d.ts +7 -0
- package/build/ts/deploy/verifyingKeysRegistry.d.ts.map +1 -0
- package/build/ts/deploy/verifyingKeysRegistry.js +14 -0
- package/build/ts/deploy/verifyingKeysRegistry.js.map +1 -0
- package/build/ts/index.d.ts +3 -2
- package/build/ts/index.d.ts.map +1 -1
- package/build/ts/index.js +16 -9
- package/build/ts/index.js.map +1 -1
- package/build/ts/maci/state.d.ts +1 -1
- package/build/ts/maci/state.js +8 -8
- package/build/ts/maci/state.js.map +1 -1
- package/build/ts/maci/types.d.ts +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 +7 -7
- package/build/ts/maciKeys/__tests__/publicKeys.test.js.map +1 -1
- package/build/ts/maciKeys/keypair.d.ts.map +1 -1
- package/build/ts/maciKeys/keypair.js +4 -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/maciKeys/types.d.ts +5 -0
- package/build/ts/maciKeys/types.d.ts.map +1 -1
- package/build/ts/poll/poll.d.ts.map +1 -1
- package/build/ts/poll/poll.js +9 -9
- package/build/ts/poll/poll.js.map +1 -1
- package/build/ts/poll/types.d.ts +6 -6
- package/build/ts/poll/types.d.ts.map +1 -1
- package/build/ts/proof/__tests__/download.test.js +8 -5
- package/build/ts/proof/__tests__/download.test.js.map +1 -1
- package/build/ts/proof/download.d.ts +3 -3
- package/build/ts/proof/download.d.ts.map +1 -1
- package/build/ts/proof/download.js +5 -7
- package/build/ts/proof/download.js.map +1 -1
- package/build/ts/proof/generate.d.ts +2 -2
- package/build/ts/proof/generate.d.ts.map +1 -1
- package/build/ts/proof/generate.js +29 -23
- package/build/ts/proof/generate.js.map +1 -1
- package/build/ts/proof/prove.js +13 -13
- package/build/ts/proof/prove.js.map +1 -1
- package/build/ts/proof/types.d.ts +40 -14
- package/build/ts/proof/types.d.ts.map +1 -1
- package/build/ts/proof/utils.d.ts +10 -0
- package/build/ts/proof/utils.d.ts.map +1 -0
- package/build/ts/proof/utils.js +24 -0
- package/build/ts/proof/utils.js.map +1 -0
- 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/messages.js +1 -1
- package/build/ts/relayer/utils.js +1 -1
- package/build/ts/relayer/utils.js.map +1 -1
- package/build/ts/subgraph/index.d.ts +3 -0
- package/build/ts/subgraph/index.d.ts.map +1 -0
- package/build/ts/subgraph/index.js +18 -0
- package/build/ts/subgraph/index.js.map +1 -0
- package/build/ts/subgraph/maciSubgraph.d.ts +28 -0
- package/build/ts/subgraph/maciSubgraph.d.ts.map +1 -0
- package/build/ts/subgraph/maciSubgraph.js +64 -0
- package/build/ts/subgraph/maciSubgraph.js.map +1 -0
- package/build/ts/subgraph/types.d.ts +20 -0
- package/build/ts/subgraph/types.d.ts.map +1 -0
- package/build/ts/subgraph/types.js +3 -0
- package/build/ts/subgraph/types.js.map +1 -0
- package/build/ts/tally/commitments.d.ts.map +1 -1
- package/build/ts/tally/commitments.js +8 -7
- package/build/ts/tally/commitments.js.map +1 -1
- package/build/ts/tally/index.d.ts +2 -1
- package/build/ts/tally/index.d.ts.map +1 -1
- package/build/ts/tally/index.js +5 -1
- package/build/ts/tally/index.js.map +1 -1
- package/build/ts/tally/results.d.ts +20 -0
- package/build/ts/tally/results.d.ts.map +1 -0
- package/build/ts/tally/results.js +49 -0
- package/build/ts/tally/results.js.map +1 -0
- package/build/ts/tally/types.d.ts +55 -15
- package/build/ts/tally/types.d.ts.map +1 -1
- package/build/ts/tally/utils.d.ts +3 -3
- package/build/ts/tally/utils.d.ts.map +1 -1
- package/build/ts/tally/utils.js +10 -10
- package/build/ts/tally/utils.js.map +1 -1
- package/build/ts/tally/verification.d.ts +1 -1
- package/build/ts/tally/verification.d.ts.map +1 -1
- package/build/ts/tally/verification.js +10 -10
- package/build/ts/tally/verification.js.map +1 -1
- package/build/ts/trees/index.d.ts +2 -2
- package/build/ts/trees/index.d.ts.map +1 -1
- package/build/ts/trees/index.js +3 -1
- package/build/ts/trees/index.js.map +1 -1
- package/build/ts/trees/stateTree.d.ts +23 -1
- package/build/ts/trees/stateTree.d.ts.map +1 -1
- package/build/ts/trees/stateTree.js +74 -13
- package/build/ts/trees/stateTree.js.map +1 -1
- package/build/ts/trees/types.d.ts +11 -2
- package/build/ts/trees/types.d.ts.map +1 -1
- package/build/ts/user/index.d.ts +2 -2
- package/build/ts/user/index.d.ts.map +1 -1
- package/build/ts/user/index.js +5 -1
- package/build/ts/user/index.js.map +1 -1
- package/build/ts/user/joinPoll.d.ts +1 -1
- package/build/ts/user/joinPoll.d.ts.map +1 -1
- package/build/ts/user/joinPoll.js +11 -11
- package/build/ts/user/joinPoll.js.map +1 -1
- package/build/ts/user/signup.d.ts +3 -3
- package/build/ts/user/signup.d.ts.map +1 -1
- package/build/ts/user/signup.js +26 -21
- package/build/ts/user/signup.js.map +1 -1
- package/build/ts/user/types.d.ts +63 -19
- package/build/ts/user/types.d.ts.map +1 -1
- package/build/ts/user/utils.d.ts +26 -14
- package/build/ts/user/utils.d.ts.map +1 -1
- package/build/ts/user/utils.js +84 -57
- package/build/ts/user/utils.js.map +1 -1
- package/build/ts/utils/index.d.ts +1 -1
- package/build/ts/utils/index.d.ts.map +1 -1
- package/build/ts/utils/index.js +2 -1
- package/build/ts/utils/index.js.map +1 -1
- package/build/ts/utils/params.d.ts +1 -1
- package/build/ts/utils/params.d.ts.map +1 -1
- package/build/ts/utils/params.js +3 -3
- package/build/ts/utils/params.js.map +1 -1
- package/build/ts/utils/proofs.d.ts +2 -2
- package/build/ts/utils/proofs.d.ts.map +1 -1
- package/build/ts/utils/proofs.js +4 -4
- package/build/ts/utils/proofs.js.map +1 -1
- package/build/ts/utils/types.d.ts +2 -2
- package/build/ts/utils/types.d.ts.map +1 -1
- package/build/ts/utils/utils.d.ts +5 -0
- package/build/ts/utils/utils.d.ts.map +1 -1
- package/build/ts/utils/utils.js +13 -1
- package/build/ts/utils/utils.js.map +1 -1
- package/build/ts/verifyingKeys/checkVerifyingKeys.d.ts +1 -1
- package/build/ts/verifyingKeys/checkVerifyingKeys.d.ts.map +1 -1
- package/build/ts/verifyingKeys/checkVerifyingKeys.js +18 -19
- package/build/ts/verifyingKeys/checkVerifyingKeys.js.map +1 -1
- package/build/ts/verifyingKeys/index.d.ts +2 -2
- package/build/ts/verifyingKeys/index.d.ts.map +1 -1
- package/build/ts/verifyingKeys/index.js +5 -5
- package/build/ts/verifyingKeys/index.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 +70 -47
- package/build/ts/verifyingKeys/setVerifyingKeys.js.map +1 -1
- package/build/ts/verifyingKeys/types.d.ts +52 -48
- package/build/ts/verifyingKeys/types.d.ts.map +1 -1
- package/build/ts/verifyingKeys/utils.d.ts +10 -10
- package/build/ts/verifyingKeys/utils.d.ts.map +1 -1
- package/build/ts/verifyingKeys/utils.js +75 -60
- 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 +4 -4
- package/build/ts/vote/generate.js.map +1 -1
- package/build/ts/vote/index.d.ts +2 -1
- package/build/ts/vote/index.d.ts.map +1 -1
- package/build/ts/vote/index.js +4 -2
- package/build/ts/vote/index.js.map +1 -1
- package/build/ts/vote/invalidate.js +4 -4
- 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 +19 -19
- package/build/ts/vote/publish.js.map +1 -1
- package/build/ts/vote/submit.js +2 -2
- 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 +5 -5
- package/build/ts/vote/utils.js.map +1 -1
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +21 -13
- package/build/ts/deploy/vkRegistry.d.ts +0 -7
- package/build/ts/deploy/vkRegistry.d.ts.map +0 -1
- package/build/ts/deploy/vkRegistry.js +0 -14
- package/build/ts/deploy/vkRegistry.js.map +0 -1
- package/build/ts/proof/constants.d.ts +0 -17
- package/build/ts/proof/constants.d.ts.map +0 -1
- package/build/ts/proof/constants.js +0 -20
- package/build/ts/proof/constants.js.map +0 -1
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import type {
|
|
1
|
+
import { type IVerifyingKeyContractParams, VerifyingKey } from "@maci-protocol/domainobjs";
|
|
2
|
+
import type { IGetAllVerifyingKeysArgs, IExtractAllVerifyingKeysArgs, IMaciVerifyingKeys, IMaciVerifyingKeysOnchain, IExtractVerifyingKeyToFileArgs } from "./types";
|
|
3
3
|
/**
|
|
4
4
|
* Get all the verifying keys from the contract
|
|
5
|
-
* @param args - The arguments for the
|
|
5
|
+
* @param args - The arguments for the getAllVerifyingKeys function
|
|
6
6
|
* @returns The verifying keys
|
|
7
7
|
*/
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const getAllOnChainVerifyingKeys: ({ verifyingKeysRegistryAddress, signer, stateTreeDepth, voteOptionTreeDepth, messageBatchSize, tallyProcessingStateTreeDepth, mode, }: IGetAllVerifyingKeysArgs) => Promise<IMaciVerifyingKeysOnchain>;
|
|
9
9
|
/**
|
|
10
10
|
* Compare two verifying keys
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
11
|
+
* @param verifyingKeyOnChain - the verifying key on chain
|
|
12
|
+
* @param verifyingKey - the local verifying key
|
|
13
13
|
* @returns whether they are equal or not
|
|
14
14
|
*/
|
|
15
|
-
export declare const
|
|
15
|
+
export declare const compareVerifyingKeys: (verifyingKeyOnChain: VerifyingKey | IVerifyingKeyContractParams, verifyingKey?: VerifyingKey | IVerifyingKeyContractParams) => boolean;
|
|
16
16
|
/**
|
|
17
17
|
* Extract all the verifying keys
|
|
18
|
-
* @param args - The arguments for the
|
|
18
|
+
* @param args - The arguments for the extractAllVerifyingKeys function
|
|
19
19
|
* @returns The verifying keys
|
|
20
20
|
*/
|
|
21
|
-
export declare const
|
|
21
|
+
export declare const extractAllVerifyingKeys: ({ pollJoiningZkeyPath, pollJoinedZkeyPath, messageProcessorZkeyPath, voteTallyZkeyPath, }: IExtractAllVerifyingKeysArgs) => Promise<IMaciVerifyingKeys>;
|
|
22
22
|
/**
|
|
23
23
|
* Command to confirm that the verifying keys in the contract match the local ones
|
|
24
24
|
* @note see different options for zkey files to use specific circuits https://maci.pse.dev/docs/trusted-setup, https://maci.pse.dev/docs/testing/#pre-compiled-artifacts-for-testing
|
|
25
25
|
* @param args The arguments for the checkVerifyingKeys command
|
|
26
26
|
* @returns Whether the verifying keys match or not
|
|
27
27
|
*/
|
|
28
|
-
export declare const
|
|
28
|
+
export declare const extractVerifyingKeyToFile: ({ messageProcessorZkeyPathQv, voteTallyZkeyPathQv, messageProcessorZkeyPathNonQv, messageProcessorZkeyPathFull, pollJoinedZkeyPath, pollJoiningZkeyPath, voteTallyZkeyPathNonQv, outputFilePath, }: IExtractVerifyingKeyToFileArgs) => Promise<void>;
|
|
29
29
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/verifyingKeys/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/verifyingKeys/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,2BAA2B,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI3F,OAAO,KAAK,EACV,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,EAClB,yBAAyB,EACzB,8BAA8B,EAC/B,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,GAAU,uIAQ9C,wBAAwB,KAAG,OAAO,CAAC,yBAAyB,CAqB9D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,qBAAqB,YAAY,GAAG,2BAA2B,EAC/D,eAAe,YAAY,GAAG,2BAA2B,KACxD,OA2BF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAU,2FAK3C,4BAA4B,KAAG,OAAO,CAAC,kBAAkB,CAsB3D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,GAAU,oMAS7C,8BAA8B,KAAG,OAAO,CAAC,IAAI,CA+B/C,CAAC"}
|
|
@@ -3,101 +3,116 @@ 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.
|
|
6
|
+
exports.extractVerifyingKeyToFile = exports.extractAllVerifyingKeys = exports.compareVerifyingKeys = exports.getAllOnChainVerifyingKeys = void 0;
|
|
7
7
|
const contracts_1 = require("@maci-protocol/contracts");
|
|
8
8
|
const typechain_types_1 = require("@maci-protocol/contracts/typechain-types");
|
|
9
9
|
const domainobjs_1 = require("@maci-protocol/domainobjs");
|
|
10
10
|
const fs_1 = __importDefault(require("fs"));
|
|
11
11
|
/**
|
|
12
12
|
* Get all the verifying keys from the contract
|
|
13
|
-
* @param args - The arguments for the
|
|
13
|
+
* @param args - The arguments for the getAllVerifyingKeys function
|
|
14
14
|
* @returns The verifying keys
|
|
15
15
|
*/
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const [
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
const getAllOnChainVerifyingKeys = async ({ verifyingKeysRegistryAddress, signer, stateTreeDepth, voteOptionTreeDepth, messageBatchSize, tallyProcessingStateTreeDepth, mode, }) => {
|
|
17
|
+
const contract = typechain_types_1.VerifyingKeysRegistry__factory.connect(verifyingKeysRegistryAddress, signer);
|
|
18
|
+
const [pollJoiningVerifyingKeyOnChain, pollJoinedVerifyingKeyOnChain, processVerifyingKeyOnChain, tallyVerifyingKeyOnChain,] = await Promise.all([
|
|
19
|
+
contract.getPollJoiningVerifyingKey(stateTreeDepth),
|
|
20
|
+
contract.getPollJoinedVerifyingKey(stateTreeDepth),
|
|
21
|
+
contract.getProcessVerifyingKey(stateTreeDepth, voteOptionTreeDepth, messageBatchSize, mode),
|
|
22
|
+
contract.getTallyVerifyingKey(stateTreeDepth, tallyProcessingStateTreeDepth, voteOptionTreeDepth, mode),
|
|
23
23
|
]);
|
|
24
24
|
return {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
pollJoiningVerifyingKeyOnChain,
|
|
26
|
+
pollJoinedVerifyingKeyOnChain,
|
|
27
|
+
processVerifyingKeyOnChain,
|
|
28
|
+
tallyVerifyingKeyOnChain,
|
|
29
29
|
};
|
|
30
30
|
};
|
|
31
|
-
exports.
|
|
31
|
+
exports.getAllOnChainVerifyingKeys = getAllOnChainVerifyingKeys;
|
|
32
32
|
/**
|
|
33
33
|
* Compare two verifying keys
|
|
34
|
-
* @param
|
|
35
|
-
* @param
|
|
34
|
+
* @param verifyingKeyOnChain - the verifying key on chain
|
|
35
|
+
* @param verifyingKey - the local verifying key
|
|
36
36
|
* @returns whether they are equal or not
|
|
37
37
|
*/
|
|
38
|
-
const
|
|
39
|
-
if (!
|
|
38
|
+
const compareVerifyingKeys = (verifyingKeyOnChain, verifyingKey) => {
|
|
39
|
+
if (!verifyingKey) {
|
|
40
40
|
throw new Error("Verifying key is not provided");
|
|
41
41
|
}
|
|
42
|
-
let isEqual =
|
|
43
|
-
for (let i = 0; i <
|
|
44
|
-
isEqual = isEqual &&
|
|
45
|
-
isEqual = isEqual &&
|
|
42
|
+
let isEqual = verifyingKey.ic.length === verifyingKeyOnChain.ic.length;
|
|
43
|
+
for (let i = 0; i < verifyingKey.ic.length; i += 1) {
|
|
44
|
+
isEqual = isEqual && verifyingKey.ic[i].x.toString() === verifyingKeyOnChain.ic[i].x.toString();
|
|
45
|
+
isEqual = isEqual && verifyingKey.ic[i].y.toString() === verifyingKeyOnChain.ic[i].y.toString();
|
|
46
46
|
}
|
|
47
|
-
isEqual = isEqual &&
|
|
48
|
-
isEqual = isEqual &&
|
|
49
|
-
isEqual = isEqual &&
|
|
50
|
-
isEqual = isEqual &&
|
|
51
|
-
isEqual = isEqual &&
|
|
52
|
-
isEqual = isEqual &&
|
|
53
|
-
isEqual = isEqual &&
|
|
54
|
-
isEqual = isEqual &&
|
|
55
|
-
isEqual = isEqual &&
|
|
56
|
-
isEqual = isEqual &&
|
|
57
|
-
isEqual = isEqual &&
|
|
58
|
-
isEqual = isEqual &&
|
|
59
|
-
isEqual = isEqual &&
|
|
60
|
-
isEqual = isEqual &&
|
|
47
|
+
isEqual = isEqual && verifyingKey.alpha1.x.toString() === verifyingKeyOnChain.alpha1.x.toString();
|
|
48
|
+
isEqual = isEqual && verifyingKey.alpha1.y.toString() === verifyingKeyOnChain.alpha1.y.toString();
|
|
49
|
+
isEqual = isEqual && verifyingKey.beta2.x[0].toString() === verifyingKeyOnChain.beta2.x[0].toString();
|
|
50
|
+
isEqual = isEqual && verifyingKey.beta2.x[1].toString() === verifyingKeyOnChain.beta2.x[1].toString();
|
|
51
|
+
isEqual = isEqual && verifyingKey.beta2.y[0].toString() === verifyingKeyOnChain.beta2.y[0].toString();
|
|
52
|
+
isEqual = isEqual && verifyingKey.beta2.y[1].toString() === verifyingKeyOnChain.beta2.y[1].toString();
|
|
53
|
+
isEqual = isEqual && verifyingKey.delta2.x[0].toString() === verifyingKeyOnChain.delta2.x[0].toString();
|
|
54
|
+
isEqual = isEqual && verifyingKey.delta2.x[1].toString() === verifyingKeyOnChain.delta2.x[1].toString();
|
|
55
|
+
isEqual = isEqual && verifyingKey.delta2.y[0].toString() === verifyingKeyOnChain.delta2.y[0].toString();
|
|
56
|
+
isEqual = isEqual && verifyingKey.delta2.y[1].toString() === verifyingKeyOnChain.delta2.y[1].toString();
|
|
57
|
+
isEqual = isEqual && verifyingKey.gamma2.x[0].toString() === verifyingKeyOnChain.gamma2.x[0].toString();
|
|
58
|
+
isEqual = isEqual && verifyingKey.gamma2.x[1].toString() === verifyingKeyOnChain.gamma2.x[1].toString();
|
|
59
|
+
isEqual = isEqual && verifyingKey.gamma2.y[0].toString() === verifyingKeyOnChain.gamma2.y[0].toString();
|
|
60
|
+
isEqual = isEqual && verifyingKey.gamma2.y[1].toString() === verifyingKeyOnChain.gamma2.y[1].toString();
|
|
61
61
|
return isEqual;
|
|
62
62
|
};
|
|
63
|
-
exports.
|
|
63
|
+
exports.compareVerifyingKeys = compareVerifyingKeys;
|
|
64
64
|
/**
|
|
65
65
|
* Extract all the verifying keys
|
|
66
|
-
* @param args - The arguments for the
|
|
66
|
+
* @param args - The arguments for the extractAllVerifyingKeys function
|
|
67
67
|
* @returns The verifying keys
|
|
68
68
|
*/
|
|
69
|
-
const
|
|
70
|
-
// extract the
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
const extractAllVerifyingKeys = async ({ pollJoiningZkeyPath, pollJoinedZkeyPath, messageProcessorZkeyPath, voteTallyZkeyPath, }) => {
|
|
70
|
+
// extract the verifying keys
|
|
71
|
+
const pollJoiningVerifyingKey = pollJoiningZkeyPath
|
|
72
|
+
? domainobjs_1.VerifyingKey.fromObj(await (0, contracts_1.extractVerifyingKey)(pollJoiningZkeyPath))
|
|
73
|
+
: undefined;
|
|
74
|
+
const pollJoinedVerifyingKey = pollJoinedZkeyPath
|
|
75
|
+
? domainobjs_1.VerifyingKey.fromObj(await (0, contracts_1.extractVerifyingKey)(pollJoinedZkeyPath))
|
|
76
|
+
: undefined;
|
|
77
|
+
const processVerifyingKey = messageProcessorZkeyPath
|
|
78
|
+
? domainobjs_1.VerifyingKey.fromObj(await (0, contracts_1.extractVerifyingKey)(messageProcessorZkeyPath))
|
|
79
|
+
: undefined;
|
|
80
|
+
const tallyVerifyingKey = voteTallyZkeyPath
|
|
81
|
+
? domainobjs_1.VerifyingKey.fromObj(await (0, contracts_1.extractVerifyingKey)(voteTallyZkeyPath))
|
|
75
82
|
: undefined;
|
|
76
|
-
const tallyVk = tallyVotesZkeyPath ? domainobjs_1.VerifyingKey.fromObj(await (0, contracts_1.extractVk)(tallyVotesZkeyPath)) : undefined;
|
|
77
83
|
return {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
84
|
+
pollJoiningVerifyingKey,
|
|
85
|
+
pollJoinedVerifyingKey,
|
|
86
|
+
processVerifyingKey,
|
|
87
|
+
tallyVerifyingKey,
|
|
82
88
|
};
|
|
83
89
|
};
|
|
84
|
-
exports.
|
|
90
|
+
exports.extractAllVerifyingKeys = extractAllVerifyingKeys;
|
|
85
91
|
/**
|
|
86
92
|
* Command to confirm that the verifying keys in the contract match the local ones
|
|
87
93
|
* @note see different options for zkey files to use specific circuits https://maci.pse.dev/docs/trusted-setup, https://maci.pse.dev/docs/testing/#pre-compiled-artifacts-for-testing
|
|
88
94
|
* @param args The arguments for the checkVerifyingKeys command
|
|
89
95
|
* @returns Whether the verifying keys match or not
|
|
90
96
|
*/
|
|
91
|
-
const
|
|
92
|
-
const [
|
|
93
|
-
(0, contracts_1.
|
|
94
|
-
(0, contracts_1.
|
|
95
|
-
(0, contracts_1.
|
|
96
|
-
(0, contracts_1.
|
|
97
|
-
(0, contracts_1.
|
|
98
|
-
(0, contracts_1.
|
|
97
|
+
const extractVerifyingKeyToFile = async ({ messageProcessorZkeyPathQv, voteTallyZkeyPathQv, messageProcessorZkeyPathNonQv, messageProcessorZkeyPathFull, pollJoinedZkeyPath, pollJoiningZkeyPath, voteTallyZkeyPathNonQv, outputFilePath, }) => {
|
|
98
|
+
const [processVerifyingKeyQv, tallyVerifyingKeyQv, processVerifyingKeyNonQv, tallyVerifyingKeyNonQv, pollJoiningVerifyingKey, pollJoinedVerifyingKey, processVerifyingKeyFull,] = await Promise.all([
|
|
99
|
+
(0, contracts_1.extractVerifyingKey)(messageProcessorZkeyPathQv),
|
|
100
|
+
(0, contracts_1.extractVerifyingKey)(voteTallyZkeyPathQv),
|
|
101
|
+
(0, contracts_1.extractVerifyingKey)(messageProcessorZkeyPathNonQv),
|
|
102
|
+
(0, contracts_1.extractVerifyingKey)(voteTallyZkeyPathNonQv),
|
|
103
|
+
(0, contracts_1.extractVerifyingKey)(pollJoiningZkeyPath),
|
|
104
|
+
(0, contracts_1.extractVerifyingKey)(pollJoinedZkeyPath),
|
|
105
|
+
(0, contracts_1.extractVerifyingKey)(messageProcessorZkeyPathFull),
|
|
99
106
|
]);
|
|
100
|
-
await fs_1.default.promises.writeFile(outputFilePath, JSON.stringify({
|
|
107
|
+
await fs_1.default.promises.writeFile(outputFilePath, JSON.stringify({
|
|
108
|
+
processVerifyingKeyQv,
|
|
109
|
+
tallyVerifyingKeyQv,
|
|
110
|
+
processVerifyingKeyNonQv,
|
|
111
|
+
tallyVerifyingKeyNonQv,
|
|
112
|
+
pollJoiningVerifyingKey,
|
|
113
|
+
pollJoinedVerifyingKey,
|
|
114
|
+
processVerifyingKeyFull,
|
|
115
|
+
}));
|
|
101
116
|
};
|
|
102
|
-
exports.
|
|
117
|
+
exports.extractVerifyingKeyToFile = extractVerifyingKeyToFile;
|
|
103
118
|
//# sourceMappingURL=utils.js.map
|
|
@@ -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,KAsDtB,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) {
|
|
@@ -25,18 +25,18 @@ const generateVote = ({ pollId, voteOptionIndex, salt, nonce, privateKey, stateI
|
|
|
25
25
|
if (salt && !(0, utils_1.validateSalt)(salt)) {
|
|
26
26
|
throw new Error("Invalid salt");
|
|
27
27
|
}
|
|
28
|
-
const userSalt = salt ? BigInt(salt) : (0, crypto_1.
|
|
28
|
+
const userSalt = salt ? BigInt(salt) : (0, crypto_1.generateRandomSalt)();
|
|
29
29
|
if (pollId < 0) {
|
|
30
30
|
throw new Error("Invalid poll id");
|
|
31
31
|
}
|
|
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.
|
|
35
|
+
const command = new domainobjs_1.VoteCommand(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.
|
|
39
|
+
const message = command.encrypt(signature, domainobjs_1.Keypair.generateEcdhSharedKey(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,
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../ts/vote/generate.ts"],"names":[],"mappings":";;;AAAA,kDAA2D;AAC3D,0DAAiE;AAIjE,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,2BAAkB,GAAE,CAAC;IAE5D,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,wBAAW,CAC7B,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,CAC7B,SAAS,EACT,oBAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAC3E,CAAC;IAEF,OAAO;QACL,OAAO;QACP,gBAAgB,EAAE,UAAU;KAC7B,CAAC;AACJ,CAAC,CAAC;AAlEW,QAAA,YAAY,gBAkEvB"}
|
package/build/ts/vote/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export type { IVote, IGenerateVoteArgs, IPublishArgs, IPublishBatchArgs, IPublishBatchData, IPublishData, IPublishMessage, ISubmitVoteArgs, ISubmitVoteBatchArgs, } from "./types";
|
|
2
2
|
export { generateVote } from "./generate";
|
|
3
|
+
export { invalidateVotes } from "./invalidate";
|
|
3
4
|
export { publish, publishBatch } from "./publish";
|
|
4
5
|
export { submitVote, submitVoteBatch } from "./submit";
|
|
5
|
-
export {
|
|
6
|
+
export { getCoordinatorPublicKey, validateSalt } from "./utils";
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/vote/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,KAAK,EACL,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,oBAAoB,GACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/vote/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,KAAK,EACL,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,oBAAoB,GACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
|
package/build/ts/vote/index.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateSalt = exports.
|
|
3
|
+
exports.validateSalt = exports.getCoordinatorPublicKey = exports.submitVoteBatch = exports.submitVote = exports.publishBatch = exports.publish = exports.invalidateVotes = exports.generateVote = void 0;
|
|
4
4
|
var generate_1 = require("./generate");
|
|
5
5
|
Object.defineProperty(exports, "generateVote", { enumerable: true, get: function () { return generate_1.generateVote; } });
|
|
6
|
+
var invalidate_1 = require("./invalidate");
|
|
7
|
+
Object.defineProperty(exports, "invalidateVotes", { enumerable: true, get: function () { return invalidate_1.invalidateVotes; } });
|
|
6
8
|
var publish_1 = require("./publish");
|
|
7
9
|
Object.defineProperty(exports, "publish", { enumerable: true, get: function () { return publish_1.publish; } });
|
|
8
10
|
Object.defineProperty(exports, "publishBatch", { enumerable: true, get: function () { return publish_1.publishBatch; } });
|
|
@@ -10,6 +12,6 @@ var submit_1 = require("./submit");
|
|
|
10
12
|
Object.defineProperty(exports, "submitVote", { enumerable: true, get: function () { return submit_1.submitVote; } });
|
|
11
13
|
Object.defineProperty(exports, "submitVoteBatch", { enumerable: true, get: function () { return submit_1.submitVoteBatch; } });
|
|
12
14
|
var utils_1 = require("./utils");
|
|
13
|
-
Object.defineProperty(exports, "
|
|
15
|
+
Object.defineProperty(exports, "getCoordinatorPublicKey", { enumerable: true, get: function () { return utils_1.getCoordinatorPublicKey; } });
|
|
14
16
|
Object.defineProperty(exports, "validateSalt", { enumerable: true, get: function () { return utils_1.validateSalt; } });
|
|
15
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/vote/index.ts"],"names":[],"mappings":";;;AAWA,uCAA0C;AAAjC,wGAAA,YAAY,OAAA;AACrB,qCAAkD;AAAzC,kGAAA,OAAO,OAAA;AAAE,uGAAA,YAAY,OAAA;AAC9B,mCAAuD;AAA9C,oGAAA,UAAU,OAAA;AAAE,yGAAA,eAAe,OAAA;AACpC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/vote/index.ts"],"names":[],"mappings":";;;AAWA,uCAA0C;AAAjC,wGAAA,YAAY,OAAA;AACrB,2CAA+C;AAAtC,6GAAA,eAAe,OAAA;AACxB,qCAAkD;AAAzC,kGAAA,OAAO,OAAA;AAAE,uGAAA,YAAY,OAAA;AAC9B,mCAAuD;AAA9C,oGAAA,UAAU,OAAA;AAAE,yGAAA,eAAe,OAAA;AACpC,iCAAgE;AAAvD,gHAAA,uBAAuB,OAAA;AAAE,qGAAA,YAAY,OAAA"}
|
|
@@ -19,18 +19,18 @@ 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.getCoordinatorPublicKey)(pollAddress, signer);
|
|
23
23
|
// generate the key change message
|
|
24
24
|
const message = (0, generate_1.generateVote)({
|
|
25
25
|
pollId,
|
|
26
26
|
voteOptionIndex: 0n,
|
|
27
|
-
nonce:
|
|
27
|
+
nonce: 1n,
|
|
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,
|
|
1
|
+
{"version":3,"file":"invalidate.js","sourceRoot":"","sources":["../../../ts/vote/invalidate.ts"],"names":[],"mappings":";;;AAAA,0DAAoD;AAIpD,kCAA2C;AAE3C,yCAA0C;AAC1C,qCAAsC;AACtC,mCAAkD;AAElD;;;;;;;;;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,+BAAuB,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAEhF,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.isValidSerialized(serializedPublicKey)) {
|
|
16
16
|
throw new Error("Invalid MACI public key");
|
|
17
17
|
}
|
|
18
|
-
if (!domainobjs_1.
|
|
18
|
+
if (!domainobjs_1.PrivateKey.isValidSerialized(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
|
|
23
|
-
const
|
|
22
|
+
const votePublicKey = 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.getCoordinatorPublicKey)(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: votePublicKey,
|
|
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,29 +49,29 @@ 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.isValidSerialized(publicKey)) {
|
|
53
53
|
throw new Error("Invalid MACI public key");
|
|
54
54
|
}
|
|
55
|
-
if (!domainobjs_1.
|
|
55
|
+
if (!domainobjs_1.PrivateKey.isValidSerialized(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
|
|
60
|
-
const
|
|
59
|
+
const userMaciPublicKey = domainobjs_1.PublicKey.deserialize(publicKey);
|
|
60
|
+
const userMaciPrivateKey = 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.getCoordinatorPublicKey)(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,
|
|
66
66
|
voteOptionIndex,
|
|
67
67
|
nonce,
|
|
68
|
-
privateKey:
|
|
68
|
+
privateKey: userMaciPrivateKey,
|
|
69
69
|
stateIndex,
|
|
70
70
|
maxVoteOption: BigInt(maxVoteOption),
|
|
71
71
|
salt,
|
|
72
72
|
voteWeight: newVoteWeight,
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
coordinatorPublicKey,
|
|
74
|
+
newPublicKey: userMaciPublicKey,
|
|
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":";;;AAAA,0DAAkE;AAIlE,kCAA2C;AAE3C,yCAA0C;AAC1C,qCAAuD;AACvD,mCAAkD;AAElD;;;;GAIG;AACI,MAAM,OAAO,GAAG,KAAK,EAAE,EAC5B,UAAU,EACV,eAAe,EACf,KAAK,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,IAAI,EACJ,SAAS,EAAE,mBAAmB,EAC9B,UAAU,EAAE,oBAAoB,EAChC,MAAM,GACO,EAAyB,EAAE;IACxC,IAAI,CAAC,sBAAS,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,uBAAU,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,uBAAgB,EAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAEvF,MAAM,aAAa,GAAG,sBAAS,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,uBAAU,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAEhE,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,+BAAuB,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAEhF,MAAM,IAAI,GAAG,IAAA,uBAAY,EAAC;QACxB,MAAM;QACN,eAAe;QACf,IAAI;QACJ,KAAK;QACL,UAAU;QACV,UAAU;QACV,UAAU,EAAE,aAAa;QACzB,oBAAoB;QACpB,aAAa;QACb,YAAY,EAAE,aAAa;KAC5B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAU,EAAC,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAE/D,OAAO;QACL,IAAI,EAAE,MAAO;QACb,gBAAgB,EAAE,IAAI,CAAC,OAAO;QAC9B,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAE;KACzD,CAAC;AACJ,CAAC,CAAC;AAhDW,QAAA,OAAO,WAgDlB;AAEF;;;;GAIG;AACI,MAAM,YAAY,GAAG,KAAK,EAAE,EACjC,QAAQ,EACR,MAAM,EACN,WAAW,EACX,SAAS,EACT,UAAU,EACV,MAAM,GACY,EAA8B,EAAE;IAClD,IAAI,CAAC,sBAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,uBAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,uBAAgB,EAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAEvF,MAAM,iBAAiB,GAAG,sBAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC3D,MAAM,kBAAkB,GAAG,uBAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE9D,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,+BAAuB,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAEhF,sEAAsE;IACtE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,CACzF,IAAA,uBAAY,EAAC;QACX,MAAM;QACN,eAAe;QACf,KAAK;QACL,UAAU,EAAE,kBAAkB;QAC9B,UAAU;QACV,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC;QACpC,IAAI;QACJ,UAAU,EAAE,aAAa;QACzB,oBAAoB;QACpB,YAAY,EAAE,iBAAiB;KAChC,CAAC,CACH,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAe,EAAC;QACnC,WAAW;QACX,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;QACtB,MAAM;KACP,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,MAAO;QACb,iBAAiB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;QACpD,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;KAC/E,CAAC;AACJ,CAAC,CAAC;AAnDW,QAAA,YAAY,gBAmDvB"}
|
package/build/ts/vote/submit.js
CHANGED
|
@@ -9,7 +9,7 @@ const typechain_types_1 = require("@maci-protocol/contracts/typechain-types");
|
|
|
9
9
|
const submitVote = async ({ pollAddress, vote, signer }) => {
|
|
10
10
|
const pollContract = typechain_types_1.Poll__factory.connect(pollAddress, signer);
|
|
11
11
|
const receipt = await pollContract
|
|
12
|
-
.publishMessage(vote.message, vote.ephemeralKeypair.
|
|
12
|
+
.publishMessage(vote.message, vote.ephemeralKeypair.publicKey.asContractParam())
|
|
13
13
|
.then((tx) => tx.wait());
|
|
14
14
|
if (receipt?.status === 0) {
|
|
15
15
|
throw new Error("Failed to submit the vote");
|
|
@@ -25,7 +25,7 @@ exports.submitVote = submitVote;
|
|
|
25
25
|
const submitVoteBatch = async ({ pollAddress, votes, signer, }) => {
|
|
26
26
|
const pollContract = typechain_types_1.Poll__factory.connect(pollAddress, signer);
|
|
27
27
|
const receipt = await pollContract
|
|
28
|
-
.publishMessageBatch(votes.map((vote) => vote.message), votes.map((vote) => vote.ephemeralKeypair.
|
|
28
|
+
.publishMessageBatch(votes.map((vote) => vote.message), votes.map((vote) => vote.ephemeralKeypair.publicKey.asContractParam()))
|
|
29
29
|
.then((tx) => tx.wait());
|
|
30
30
|
if (receipt?.status === 0) {
|
|
31
31
|
throw new Error("Failed to submit the batch of votes");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../ts/vote/submit.ts"],"names":[],"mappings":";;;AAAA,8EAAwF;AAIxF;;;GAGG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAmB,EAA+B,EAAE;IAC9G,MAAM,YAAY,GAAG,+BAAW,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,MAAM,YAAY;SAC/B,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../ts/vote/submit.ts"],"names":[],"mappings":";;;AAAA,8EAAwF;AAIxF;;;GAGG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAmB,EAA+B,EAAE;IAC9G,MAAM,YAAY,GAAG,+BAAW,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,MAAM,YAAY;SAC/B,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;SAC/E,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAE3B,IAAI,OAAO,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,OAAO,EAAE,IAAI,CAAC;AACvB,CAAC,CAAC;AAZW,QAAA,UAAU,cAYrB;AAEF;;;;GAIG;AACI,MAAM,eAAe,GAAG,KAAK,EAAE,EACpC,WAAW,EACX,KAAK,EACL,MAAM,GACe,EAA+B,EAAE;IACtD,MAAM,YAAY,GAAG,+BAAW,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAE9D,MAAM,OAAO,GAAG,MAAM,YAAY;SAC/B,mBAAmB,CAClB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EACjC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CACvE;SACA,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAE3B,IAAI,OAAO,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,OAAO,EAAE,IAAI,CAAC;AACvB,CAAC,CAAC;AAnBW,QAAA,eAAe,mBAmB1B"}
|
package/build/ts/vote/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IMessageContractParams, Keypair, Message,
|
|
1
|
+
import type { IMessageContractParams, Keypair, Message, PrivateKey, PublicKey } from "@maci-protocol/domainobjs";
|
|
2
2
|
import type { Signer } from "ethers";
|
|
3
3
|
/**
|
|
4
4
|
* Interface for the arguments for the generateVote function
|
|
@@ -23,7 +23,7 @@ export interface IGenerateVoteArgs {
|
|
|
23
23
|
/**
|
|
24
24
|
* The private key for the vote
|
|
25
25
|
*/
|
|
26
|
-
privateKey:
|
|
26
|
+
privateKey: PrivateKey;
|
|
27
27
|
/**
|
|
28
28
|
* The state index for the vote
|
|
29
29
|
*/
|
|
@@ -35,7 +35,7 @@ export interface IGenerateVoteArgs {
|
|
|
35
35
|
/**
|
|
36
36
|
* The coordinator public key
|
|
37
37
|
*/
|
|
38
|
-
|
|
38
|
+
coordinatorPublicKey: PublicKey;
|
|
39
39
|
/**
|
|
40
40
|
* The largest vote option index
|
|
41
41
|
*/
|
|
@@ -47,7 +47,7 @@ export interface IGenerateVoteArgs {
|
|
|
47
47
|
/**
|
|
48
48
|
* New key in case of key change message
|
|
49
49
|
*/
|
|
50
|
-
|
|
50
|
+
newPublicKey?: PublicKey;
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
53
|
* Interface for the vote object
|
|
@@ -175,7 +175,7 @@ export interface IPublishArgs extends IPublishMessage {
|
|
|
175
175
|
/**
|
|
176
176
|
* The poll public key
|
|
177
177
|
*/
|
|
178
|
-
|
|
178
|
+
publicKey: string;
|
|
179
179
|
/**
|
|
180
180
|
* The poll private key
|
|
181
181
|
*/
|
|
@@ -229,7 +229,7 @@ export interface IInvalidateVotesArgs {
|
|
|
229
229
|
/**
|
|
230
230
|
* MACI private key
|
|
231
231
|
*/
|
|
232
|
-
maciPrivateKey:
|
|
232
|
+
maciPrivateKey: PrivateKey;
|
|
233
233
|
/**
|
|
234
234
|
* State index
|
|
235
235
|
*/
|