@maci-protocol/sdk 0.0.0-ci.a1bedc5 → 0.0.0-ci.a51dc13
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 +12 -4
- package/build/ts/browser/index.d.ts +1 -1
- package/build/ts/browser/index.d.ts.map +1 -1
- package/build/ts/browser/index.js +5 -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 +1 -1
- 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 +7 -7
- package/build/ts/deploy/poll.js.map +1 -1
- package/build/ts/deploy/types.d.ts +7 -6
- 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 +1 -1
- package/build/ts/index.d.ts.map +1 -1
- package/build/ts/index.js +11 -7
- 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 +3 -3
- package/build/ts/maciKeys/__tests__/keypair.test.js.map +1 -1
- package/build/ts/maciKeys/__tests__/publicKeys.test.js +5 -5
- package/build/ts/maciKeys/__tests__/publicKeys.test.js.map +1 -1
- package/build/ts/maciKeys/publicKeys.js +2 -2
- package/build/ts/maciKeys/publicKeys.js.map +1 -1
- package/build/ts/poll/poll.js +7 -7
- package/build/ts/poll/poll.js.map +1 -1
- package/build/ts/poll/types.d.ts +3 -3
- package/build/ts/poll/types.d.ts.map +1 -1
- package/build/ts/proof/__tests__/download.test.js +5 -2
- 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 +5 -5
- package/build/ts/proof/generate.js.map +1 -1
- package/build/ts/proof/prove.js +10 -10
- package/build/ts/proof/prove.js.map +1 -1
- package/build/ts/proof/types.d.ts +30 -4
- 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/messages.js +1 -1
- 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 +4 -1
- package/build/ts/tally/index.js.map +1 -1
- package/build/ts/tally/results.d.ts +14 -0
- package/build/ts/tally/results.d.ts.map +1 -0
- package/build/ts/tally/results.js +44 -0
- package/build/ts/tally/results.js.map +1 -0
- package/build/ts/tally/types.d.ts +40 -13
- 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 +9 -9
- 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 +2 -1
- package/build/ts/trees/index.js.map +1 -1
- package/build/ts/trees/stateTree.d.ts +15 -1
- package/build/ts/trees/stateTree.d.ts.map +1 -1
- package/build/ts/trees/stateTree.js +61 -13
- package/build/ts/trees/stateTree.js.map +1 -1
- package/build/ts/trees/types.d.ts +10 -1
- 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.js +9 -9
- package/build/ts/user/joinPoll.js.map +1 -1
- package/build/ts/user/signup.js +3 -3
- package/build/ts/user/signup.js.map +1 -1
- package/build/ts/user/types.d.ts +50 -2
- package/build/ts/user/types.d.ts.map +1 -1
- package/build/ts/user/utils.d.ts +23 -11
- package/build/ts/user/utils.d.ts.map +1 -1
- package/build/ts/user/utils.js +72 -43
- package/build/ts/user/utils.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/verifyingKeys/checkVerifyingKeys.d.ts +1 -1
- package/build/ts/verifyingKeys/checkVerifyingKeys.d.ts.map +1 -1
- package/build/ts/verifyingKeys/checkVerifyingKeys.js +14 -15
- 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 +39 -40
- package/build/ts/verifyingKeys/setVerifyingKeys.js.map +1 -1
- package/build/ts/verifyingKeys/types.d.ts +37 -37
- 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 +73 -60
- package/build/ts/verifyingKeys/utils.js.map +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/index.d.ts +1 -1
- package/build/ts/vote/index.d.ts.map +1 -1
- package/build/ts/vote/index.js +2 -2
- package/build/ts/vote/index.js.map +1 -1
- package/build/ts/vote/invalidate.js +1 -1
- package/build/ts/vote/invalidate.js.map +1 -1
- package/build/ts/vote/publish.js +12 -12
- package/build/ts/vote/publish.js.map +1 -1
- package/build/ts/vote/utils.d.ts +1 -1
- package/build/ts/vote/utils.d.ts.map +1 -1
- package/build/ts/vote/utils.js +3 -3
- package/build/ts/vote/utils.js.map +1 -1
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +18 -10
- 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
|
@@ -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
|
@@ -2,5 +2,5 @@ export type { IVote, IGenerateVoteArgs, IPublishArgs, IPublishBatchArgs, IPublis
|
|
|
2
2
|
export { generateVote } from "./generate";
|
|
3
3
|
export { publish, publishBatch } from "./publish";
|
|
4
4
|
export { submitVote, submitVoteBatch } from "./submit";
|
|
5
|
-
export {
|
|
5
|
+
export { getCoordinatorPublicKey, validateSalt } from "./utils";
|
|
6
6
|
//# 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,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,6 +1,6 @@
|
|
|
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.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
6
|
var publish_1 = require("./publish");
|
|
@@ -10,6 +10,6 @@ var submit_1 = require("./submit");
|
|
|
10
10
|
Object.defineProperty(exports, "submitVote", { enumerable: true, get: function () { return submit_1.submitVote; } });
|
|
11
11
|
Object.defineProperty(exports, "submitVoteBatch", { enumerable: true, get: function () { return submit_1.submitVoteBatch; } });
|
|
12
12
|
var utils_1 = require("./utils");
|
|
13
|
-
Object.defineProperty(exports, "
|
|
13
|
+
Object.defineProperty(exports, "getCoordinatorPublicKey", { enumerable: true, get: function () { return utils_1.getCoordinatorPublicKey; } });
|
|
14
14
|
Object.defineProperty(exports, "validateSalt", { enumerable: true, get: function () { return utils_1.validateSalt; } });
|
|
15
15
|
//# 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,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,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 coordinatorPublicKey = await (0, utils_1.
|
|
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,
|
|
@@ -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"}
|
package/build/ts/vote/publish.js
CHANGED
|
@@ -12,17 +12,17 @@ const utils_1 = require("./utils");
|
|
|
12
12
|
* @returns {IPublishData} The ephemeral private key used to encrypt the message, transaction hash
|
|
13
13
|
*/
|
|
14
14
|
const publish = async ({ stateIndex, voteOptionIndex, nonce, pollId, newVoteWeight, maciAddress, salt, publicKey: serializedPublicKey, privateKey: serializedPrivateKey, signer, }) => {
|
|
15
|
-
if (!domainobjs_1.PublicKey.
|
|
15
|
+
if (!domainobjs_1.PublicKey.isValidSerialized(serializedPublicKey)) {
|
|
16
16
|
throw new Error("Invalid MACI public key");
|
|
17
17
|
}
|
|
18
|
-
if (!domainobjs_1.PrivateKey.
|
|
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
|
|
22
|
+
const votePublicKey = domainobjs_1.PublicKey.deserialize(serializedPublicKey);
|
|
23
23
|
const privateKey = domainobjs_1.PrivateKey.deserialize(serializedPrivateKey);
|
|
24
24
|
const [maxVoteOption, pollAddress] = await Promise.all([pollContract.voteOptions(), pollContract.getAddress()]);
|
|
25
|
-
const coordinatorPublicKey = await (0, utils_1.
|
|
25
|
+
const coordinatorPublicKey = await (0, utils_1.getCoordinatorPublicKey)(pollAddress, signer);
|
|
26
26
|
const vote = (0, generate_1.generateVote)({
|
|
27
27
|
pollId,
|
|
28
28
|
voteOptionIndex,
|
|
@@ -33,7 +33,7 @@ const publish = async ({ stateIndex, voteOptionIndex, nonce, pollId, newVoteWeig
|
|
|
33
33
|
voteWeight: newVoteWeight,
|
|
34
34
|
coordinatorPublicKey,
|
|
35
35
|
maxVoteOption,
|
|
36
|
-
newPublicKey:
|
|
36
|
+
newPublicKey: votePublicKey,
|
|
37
37
|
});
|
|
38
38
|
const txHash = await (0, submit_1.submitVote)({ pollAddress, vote, signer });
|
|
39
39
|
return {
|
|
@@ -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.PublicKey.
|
|
52
|
+
if (!domainobjs_1.PublicKey.isValidSerialized(publicKey)) {
|
|
53
53
|
throw new Error("Invalid MACI public key");
|
|
54
54
|
}
|
|
55
|
-
if (!domainobjs_1.PrivateKey.
|
|
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 coordinatorPublicKey = await (0, utils_1.
|
|
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
73
|
coordinatorPublicKey,
|
|
74
|
-
newPublicKey:
|
|
74
|
+
newPublicKey: userMaciPublicKey,
|
|
75
75
|
}));
|
|
76
76
|
const txHash = await (0, submit_1.submitVoteBatch)({
|
|
77
77
|
pollAddress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../ts/vote/publish.ts"],"names":[],"mappings":";;;AAAA,0DAAkE;AAIlE,kCAA2C;AAE3C,yCAA0C;AAC1C,qCAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../ts/vote/publish.ts"],"names":[],"mappings":"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"}
|
package/build/ts/vote/utils.d.ts
CHANGED
|
@@ -12,5 +12,5 @@ export declare const validateSalt: (salt: bigint) => boolean;
|
|
|
12
12
|
* @param signer - the signer to use
|
|
13
13
|
* @returns the coordinator public key
|
|
14
14
|
*/
|
|
15
|
-
export declare const
|
|
15
|
+
export declare const getCoordinatorPublicKey: (pollAddress: string, signer: Signer) => Promise<PublicKey>;
|
|
16
16
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/vote/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,OAAkC,CAAC;AAE/E;;;;;GAKG;AACH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/vote/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,OAAkC,CAAC;AAE/E;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAU,aAAa,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,SAAS,CAMpG,CAAC"}
|
package/build/ts/vote/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getCoordinatorPublicKey = exports.validateSalt = void 0;
|
|
4
4
|
const typechain_types_1 = require("@maci-protocol/contracts/typechain-types");
|
|
5
5
|
const crypto_1 = require("@maci-protocol/crypto");
|
|
6
6
|
const domainobjs_1 = require("@maci-protocol/domainobjs");
|
|
@@ -17,10 +17,10 @@ exports.validateSalt = validateSalt;
|
|
|
17
17
|
* @param signer - the signer to use
|
|
18
18
|
* @returns the coordinator public key
|
|
19
19
|
*/
|
|
20
|
-
const
|
|
20
|
+
const getCoordinatorPublicKey = async (pollAddress, signer) => {
|
|
21
21
|
const pollContract = typechain_types_1.Poll__factory.connect(pollAddress, signer);
|
|
22
22
|
const coordinatorPublicKey = await pollContract.coordinatorPublicKey();
|
|
23
23
|
return new domainobjs_1.PublicKey([coordinatorPublicKey.x, coordinatorPublicKey.y]);
|
|
24
24
|
};
|
|
25
|
-
exports.
|
|
25
|
+
exports.getCoordinatorPublicKey = getCoordinatorPublicKey;
|
|
26
26
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/vote/utils.ts"],"names":[],"mappings":";;;AAAA,8EAAwF;AACxF,kDAAyD;AACzD,0DAAsD;AAItD;;;;GAIG;AACI,MAAM,YAAY,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,GAAG,yBAAgB,CAAC;AAAlE,QAAA,YAAY,gBAAsD;AAE/E;;;;;GAKG;AACI,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/vote/utils.ts"],"names":[],"mappings":";;;AAAA,8EAAwF;AACxF,kDAAyD;AACzD,0DAAsD;AAItD;;;;GAIG;AACI,MAAM,YAAY,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,GAAG,yBAAgB,CAAC;AAAlE,QAAA,YAAY,gBAAsD;AAE/E;;;;;GAKG;AACI,MAAM,uBAAuB,GAAG,KAAK,EAAE,WAAmB,EAAE,MAAc,EAAsB,EAAE;IACvG,MAAM,YAAY,GAAG,+BAAW,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAE9D,MAAM,oBAAoB,GAAG,MAAM,YAAY,CAAC,oBAAoB,EAAE,CAAC;IAEvE,OAAO,IAAI,sBAAS,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC;AANW,QAAA,uBAAuB,2BAMlC"}
|