@maci-protocol/domainobjs 0.0.0-ci.2df0337 → 0.0.0-ci.2ff3d96
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/ts/ballot.d.ts +8 -7
- package/build/ts/ballot.d.ts.map +1 -1
- package/build/ts/ballot.js +19 -19
- package/build/ts/ballot.js.map +1 -1
- package/build/ts/commands/{PCommand.d.ts → VoteCommand.d.ts} +11 -11
- package/build/ts/commands/VoteCommand.d.ts.map +1 -0
- package/build/ts/commands/{PCommand.js → VoteCommand.js} +23 -23
- package/build/ts/commands/VoteCommand.js.map +1 -0
- package/build/ts/commands/index.d.ts +1 -1
- package/build/ts/commands/index.d.ts.map +1 -1
- package/build/ts/commands/index.js +3 -3
- package/build/ts/commands/index.js.map +1 -1
- package/build/ts/constants.d.ts.map +1 -1
- package/build/ts/constants.js +2 -2
- package/build/ts/constants.js.map +1 -1
- package/build/ts/index.d.ts +3 -2
- package/build/ts/index.d.ts.map +1 -1
- package/build/ts/index.js +5 -3
- package/build/ts/index.js.map +1 -1
- package/build/ts/keyPair.d.ts +2 -2
- package/build/ts/keyPair.d.ts.map +1 -1
- package/build/ts/keyPair.js +10 -11
- package/build/ts/keyPair.js.map +1 -1
- package/build/ts/message.d.ts.map +1 -1
- package/build/ts/message.js +1 -1
- package/build/ts/message.js.map +1 -1
- package/build/ts/privateKey.d.ts +6 -6
- package/build/ts/privateKey.d.ts.map +1 -1
- package/build/ts/privateKey.js +11 -11
- package/build/ts/privateKey.js.map +1 -1
- package/build/ts/publicKey.d.ts +10 -10
- package/build/ts/publicKey.d.ts.map +1 -1
- package/build/ts/publicKey.js +17 -17
- package/build/ts/publicKey.js.map +1 -1
- package/build/ts/stateLeaf.d.ts +2 -2
- package/build/ts/stateLeaf.d.ts.map +1 -1
- package/build/ts/stateLeaf.js +3 -3
- package/build/ts/stateLeaf.js.map +1 -1
- package/build/ts/types.d.ts +19 -2
- package/build/ts/types.d.ts.map +1 -1
- package/build/ts/verifyingKey.d.ts +7 -7
- package/build/ts/verifyingKey.d.ts.map +1 -1
- package/build/ts/verifyingKey.js +9 -9
- package/build/ts/verifyingKey.js.map +1 -1
- package/build/ts/voteCounts.d.ts +63 -0
- package/build/ts/voteCounts.d.ts.map +1 -0
- package/build/ts/voteCounts.js +110 -0
- package/build/ts/voteCounts.js.map +1 -0
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/build/ts/commands/PCommand.d.ts.map +0 -1
- package/build/ts/commands/PCommand.js.map +0 -1
package/LICENSE
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
4
|
-
Cory Dickson, Han Jian, Chih-Cheng Liang, and Koh Wei Jie
|
|
3
|
+
Copyright (c) 2025 Ethereum Foundation
|
|
5
4
|
|
|
6
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/build/ts/ballot.d.ts
CHANGED
|
@@ -7,12 +7,13 @@ export declare class Ballot {
|
|
|
7
7
|
votes: bigint[];
|
|
8
8
|
nonce: bigint;
|
|
9
9
|
voteOptionTreeDepth: number;
|
|
10
|
+
totalVoteOptions: number;
|
|
10
11
|
/**
|
|
11
12
|
* Create a new Ballot instance
|
|
12
|
-
* @param
|
|
13
|
-
* @param
|
|
13
|
+
* @param totalVoteOptions How many vote options are available in the poll
|
|
14
|
+
* @param voteOptionTreeDepth The depth of the merkle tree holding the vote options
|
|
14
15
|
*/
|
|
15
|
-
constructor(
|
|
16
|
+
constructor(totalVoteOptions: number, voteOptionTreeDepth: number);
|
|
16
17
|
/**
|
|
17
18
|
* Generate an hash of this ballot
|
|
18
19
|
* @returns The hash of the ballot
|
|
@@ -42,18 +43,18 @@ export declare class Ballot {
|
|
|
42
43
|
equals(b: Ballot): boolean;
|
|
43
44
|
/**
|
|
44
45
|
* Generate a random ballot
|
|
45
|
-
* @param
|
|
46
|
+
* @param totalVoteOptions How many vote options are available
|
|
46
47
|
* @param voteOptionTreeDepth How deep is the merkle tree holding the vote options
|
|
47
48
|
* @returns a random Ballot
|
|
48
49
|
*/
|
|
49
|
-
static
|
|
50
|
+
static generateRandom(totalVoteOptions: number, voteOptionTreeDepth: number): Ballot;
|
|
50
51
|
/**
|
|
51
52
|
* Generate a blank ballot
|
|
52
|
-
* @param
|
|
53
|
+
* @param totalVoteOptions How many vote options are available
|
|
53
54
|
* @param voteOptionTreeDepth How deep is the merkle tree holding the vote options
|
|
54
55
|
* @returns a Blank Ballot object
|
|
55
56
|
*/
|
|
56
|
-
static
|
|
57
|
+
static generateBlank(totalVoteOptions: number, voteOptionTreeDepth: number): Ballot;
|
|
57
58
|
/**
|
|
58
59
|
* Serialize to a JSON object
|
|
59
60
|
*/
|
package/build/ts/ballot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ballot.d.ts","sourceRoot":"","sources":["../../ts/ballot.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;GAGG;AACH,qBAAa,MAAM;IACjB,KAAK,EAAE,MAAM,EAAE,CAAM;IAErB,KAAK,SAAa;IAElB,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;;;OAIG;gBACS,
|
|
1
|
+
{"version":3,"file":"ballot.d.ts","sourceRoot":"","sources":["../../ts/ballot.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;GAGG;AACH,qBAAa,MAAM;IACjB,KAAK,EAAE,MAAM,EAAE,CAAM;IAErB,KAAK,SAAa;IAElB,mBAAmB,EAAE,MAAM,CAAC;IAE5B,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;gBACS,gBAAgB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM;IAYjE;;;OAGG;IACH,IAAI,QAAO,MAAM,CAGf;IAEF;;;OAGG;IACH,eAAe,QAAO,MAAM,EAAE,CAAmB;IAEjD;;;;OAIG;IACH,OAAO,QAAO,MAAM,EAAE,CAWpB;IAEF;;;OAGG;IACH,IAAI,QAAO,MAAM,CAMf;IAEF;;;;OAIG;IACH,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAK1B;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,MAAM;IAMpF;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,gBAAgB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,MAAM;IAInF;;OAEG;IACH,MAAM,IAAI,WAAW;IAQrB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM;CAM3C"}
|
package/build/ts/ballot.js
CHANGED
|
@@ -13,10 +13,10 @@ const assert_1 = __importDefault(require("assert"));
|
|
|
13
13
|
class Ballot {
|
|
14
14
|
/**
|
|
15
15
|
* Create a new Ballot instance
|
|
16
|
-
* @param
|
|
17
|
-
* @param
|
|
16
|
+
* @param totalVoteOptions How many vote options are available in the poll
|
|
17
|
+
* @param voteOptionTreeDepth The depth of the merkle tree holding the vote options
|
|
18
18
|
*/
|
|
19
|
-
constructor(
|
|
19
|
+
constructor(totalVoteOptions, voteOptionTreeDepth) {
|
|
20
20
|
this.votes = [];
|
|
21
21
|
this.nonce = BigInt(0);
|
|
22
22
|
/**
|
|
@@ -41,11 +41,11 @@ class Ballot {
|
|
|
41
41
|
const lastIndex = this.votes.length - 1;
|
|
42
42
|
const foundIndex = this.votes.findIndex((_, index) => this.votes[lastIndex - index] !== BigInt(0));
|
|
43
43
|
const lastIndexToInsert = foundIndex < 0 ? -1 : lastIndex - foundIndex;
|
|
44
|
-
const
|
|
44
|
+
const voteTree = new crypto_1.IncrementalQuinTree(this.voteOptionTreeDepth, BigInt(0), 5, crypto_1.hash5);
|
|
45
45
|
for (let i = 0; i <= lastIndexToInsert; i += 1) {
|
|
46
|
-
|
|
46
|
+
voteTree.insert(this.votes[i]);
|
|
47
47
|
}
|
|
48
|
-
return [this.nonce,
|
|
48
|
+
return [this.nonce, voteTree.root];
|
|
49
49
|
};
|
|
50
50
|
/**
|
|
51
51
|
* Create a deep clone of this Ballot
|
|
@@ -57,11 +57,12 @@ class Ballot {
|
|
|
57
57
|
b.nonce = BigInt(this.nonce.toString());
|
|
58
58
|
return b;
|
|
59
59
|
};
|
|
60
|
-
|
|
61
|
-
(0, assert_1.default)(
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
60
|
+
(0, assert_1.default)(5 ** voteOptionTreeDepth >= totalVoteOptions);
|
|
61
|
+
(0, assert_1.default)(totalVoteOptions >= 0);
|
|
62
|
+
this.voteOptionTreeDepth = voteOptionTreeDepth;
|
|
63
|
+
this.totalVoteOptions = totalVoteOptions;
|
|
64
|
+
for (let i = 0; i < totalVoteOptions; i += 1) {
|
|
65
|
+
this.votes.push(0n);
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
68
|
/**
|
|
@@ -75,24 +76,23 @@ class Ballot {
|
|
|
75
76
|
}
|
|
76
77
|
/**
|
|
77
78
|
* Generate a random ballot
|
|
78
|
-
* @param
|
|
79
|
+
* @param totalVoteOptions How many vote options are available
|
|
79
80
|
* @param voteOptionTreeDepth How deep is the merkle tree holding the vote options
|
|
80
81
|
* @returns a random Ballot
|
|
81
82
|
*/
|
|
82
|
-
static
|
|
83
|
-
const ballot = new Ballot(
|
|
84
|
-
ballot.nonce = (0, crypto_1.
|
|
83
|
+
static generateRandom(totalVoteOptions, voteOptionTreeDepth) {
|
|
84
|
+
const ballot = new Ballot(totalVoteOptions, voteOptionTreeDepth);
|
|
85
|
+
ballot.nonce = (0, crypto_1.generateRandomSalt)();
|
|
85
86
|
return ballot;
|
|
86
87
|
}
|
|
87
88
|
/**
|
|
88
89
|
* Generate a blank ballot
|
|
89
|
-
* @param
|
|
90
|
+
* @param totalVoteOptions How many vote options are available
|
|
90
91
|
* @param voteOptionTreeDepth How deep is the merkle tree holding the vote options
|
|
91
92
|
* @returns a Blank Ballot object
|
|
92
93
|
*/
|
|
93
|
-
static
|
|
94
|
-
|
|
95
|
-
return ballot;
|
|
94
|
+
static generateBlank(totalVoteOptions, voteOptionTreeDepth) {
|
|
95
|
+
return new Ballot(totalVoteOptions, voteOptionTreeDepth);
|
|
96
96
|
}
|
|
97
97
|
/**
|
|
98
98
|
* Serialize to a JSON object
|
package/build/ts/ballot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ballot.js","sourceRoot":"","sources":["../../ts/ballot.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"ballot.js","sourceRoot":"","sources":["../../ts/ballot.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,14 +4,14 @@ import type { PrivateKey } from "../privateKey";
|
|
|
4
4
|
import { Message } from "../message";
|
|
5
5
|
import { PublicKey } from "../publicKey";
|
|
6
6
|
export interface IDecryptMessage {
|
|
7
|
-
command:
|
|
7
|
+
command: VoteCommand;
|
|
8
8
|
signature: Signature;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* @notice Unencrypted data whose fields include the user's public key, vote etc.
|
|
12
12
|
* This represents a Vote command.
|
|
13
13
|
*/
|
|
14
|
-
export declare class
|
|
14
|
+
export declare class VoteCommand {
|
|
15
15
|
stateIndex: bigint;
|
|
16
16
|
newPublicKey: PublicKey;
|
|
17
17
|
voteOptionIndex: bigint;
|
|
@@ -20,7 +20,7 @@ export declare class PCommand {
|
|
|
20
20
|
pollId: bigint;
|
|
21
21
|
salt: bigint;
|
|
22
22
|
/**
|
|
23
|
-
* Create a new
|
|
23
|
+
* Create a new VoteCommand
|
|
24
24
|
* @param stateIndex the state index of the user
|
|
25
25
|
* @param newPublicKey the new public key of the user
|
|
26
26
|
* @param voteOptionIndex the index of the vote option
|
|
@@ -31,10 +31,10 @@ export declare class PCommand {
|
|
|
31
31
|
*/
|
|
32
32
|
constructor(stateIndex: bigint, newPublicKey: PublicKey, voteOptionIndex: bigint, newVoteWeight: bigint, nonce: bigint, pollId: bigint, salt?: bigint);
|
|
33
33
|
/**
|
|
34
|
-
* Create a deep clone of this
|
|
35
|
-
* @returns a copy of the
|
|
34
|
+
* Create a deep clone of this VoteCommand
|
|
35
|
+
* @returns a copy of the VoteCommand
|
|
36
36
|
*/
|
|
37
|
-
copy: <T extends
|
|
37
|
+
copy: <T extends VoteCommand>() => T;
|
|
38
38
|
/**
|
|
39
39
|
* @notice Returns this Command as an array. Note that 5 of the Command's fields
|
|
40
40
|
* are packed into a single 250-bit value. This allows Messages to be
|
|
@@ -43,7 +43,7 @@ export declare class PCommand {
|
|
|
43
43
|
*/
|
|
44
44
|
asArray: () => bigint[];
|
|
45
45
|
asCircuitInputs: () => bigint[];
|
|
46
|
-
equals: (command:
|
|
46
|
+
equals: (command: VoteCommand) => boolean;
|
|
47
47
|
hash: () => bigint;
|
|
48
48
|
/**
|
|
49
49
|
* @notice Signs this command and returns a Signature.
|
|
@@ -80,10 +80,10 @@ export declare class PCommand {
|
|
|
80
80
|
*/
|
|
81
81
|
toJSON(): IJsonPCommand;
|
|
82
82
|
/**
|
|
83
|
-
* Deserialize into a
|
|
83
|
+
* Deserialize into a VoteCommand instance
|
|
84
84
|
* @param json
|
|
85
|
-
* @returns a
|
|
85
|
+
* @returns a VoteCommand instance
|
|
86
86
|
*/
|
|
87
|
-
static fromJSON(json: IJsonPCommand):
|
|
87
|
+
static fromJSON(json: IJsonPCommand): VoteCommand;
|
|
88
88
|
}
|
|
89
|
-
//# sourceMappingURL=
|
|
89
|
+
//# sourceMappingURL=VoteCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VoteCommand.d.ts","sourceRoot":"","sources":["../../../ts/commands/VoteCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,aAAa,EAGnB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,EAAE,SAAS,CAAC;IAExB,eAAe,EAAE,MAAM,CAAC;IAExB,aAAa,EAAE,MAAM,CAAC;IAEtB,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;;;OASG;gBAED,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,SAAS,EACvB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,MAA6B;IAkBrC;;;OAGG;IACH,IAAI,GAAI,CAAC,SAAS,WAAW,OAAK,CAAC,CASf;IAEpB;;;;;OAKG;IACH,OAAO,QAAO,MAAM,EAAE,CAcpB;IAEF,eAAe,QAAO,MAAM,EAAE,CAAmB;IAKjD,MAAM,GAAI,SAAS,WAAW,KAAG,OAAO,CAOX;IAE7B,IAAI,QAAO,MAAM,CAA0B;IAE3C;;OAEG;IACH,IAAI,GAAI,YAAY,UAAU,KAAG,SAAS,CAAiD;IAE3F;;;;OAIG;IACH,eAAe,GAAI,WAAW,SAAS,EAAE,WAAW,SAAS,KAAG,OAAO,CACd;IAEzD;;;;;;;;;OASG;IACH,OAAO,GAAI,WAAW,SAAS,EAAE,WAAW,aAAa,KAAG,OAAO,CAUjE;IAEF;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,GAAI,SAAS,OAAO,EAAE,WAAW,aAAa,EAAE,eAAa,KAAG,eAAe,CAyC3F;IAEF;;OAEG;IACH,MAAM,IAAI,aAAa;IAYvB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW;CAalD"}
|
|
@@ -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.
|
|
6
|
+
exports.VoteCommand = void 0;
|
|
7
7
|
const crypto_1 = require("@maci-protocol/crypto");
|
|
8
8
|
const assert_1 = __importDefault(require("assert"));
|
|
9
9
|
const message_1 = require("../message");
|
|
@@ -12,9 +12,9 @@ const publicKey_1 = require("../publicKey");
|
|
|
12
12
|
* @notice Unencrypted data whose fields include the user's public key, vote etc.
|
|
13
13
|
* This represents a Vote command.
|
|
14
14
|
*/
|
|
15
|
-
class
|
|
15
|
+
class VoteCommand {
|
|
16
16
|
/**
|
|
17
|
-
* Create a new
|
|
17
|
+
* Create a new VoteCommand
|
|
18
18
|
* @param stateIndex the state index of the user
|
|
19
19
|
* @param newPublicKey the new public key of the user
|
|
20
20
|
* @param voteOptionIndex the index of the vote option
|
|
@@ -23,12 +23,12 @@ class PCommand {
|
|
|
23
23
|
* @param pollId the poll ID
|
|
24
24
|
* @param salt the salt of the message
|
|
25
25
|
*/
|
|
26
|
-
constructor(stateIndex, newPublicKey, voteOptionIndex, newVoteWeight, nonce, pollId, salt = (0, crypto_1.
|
|
26
|
+
constructor(stateIndex, newPublicKey, voteOptionIndex, newVoteWeight, nonce, pollId, salt = (0, crypto_1.generateRandomSalt)()) {
|
|
27
27
|
/**
|
|
28
|
-
* Create a deep clone of this
|
|
29
|
-
* @returns a copy of the
|
|
28
|
+
* Create a deep clone of this VoteCommand
|
|
29
|
+
* @returns a copy of the VoteCommand
|
|
30
30
|
*/
|
|
31
|
-
this.copy = () => new
|
|
31
|
+
this.copy = () => new VoteCommand(BigInt(this.stateIndex.toString()), this.newPublicKey.copy(), BigInt(this.voteOptionIndex.toString()), BigInt(this.newVoteWeight.toString()), BigInt(this.nonce.toString()), BigInt(this.pollId.toString()), BigInt(this.salt.toString()));
|
|
32
32
|
/**
|
|
33
33
|
* @notice Returns this Command as an array. Note that 5 of the Command's fields
|
|
34
34
|
* are packed into a single 250-bit value. This allows Messages to be
|
|
@@ -62,13 +62,13 @@ class PCommand {
|
|
|
62
62
|
/**
|
|
63
63
|
* @notice Signs this command and returns a Signature.
|
|
64
64
|
*/
|
|
65
|
-
this.sign = (privateKey) => (0, crypto_1.sign)(privateKey.
|
|
65
|
+
this.sign = (privateKey) => (0, crypto_1.sign)(privateKey.raw.toString(), this.hash());
|
|
66
66
|
/**
|
|
67
67
|
* @notice Returns true if the given signature is a correct signature of this
|
|
68
68
|
* command and signed by the private key associated with the given public
|
|
69
69
|
* key.
|
|
70
70
|
*/
|
|
71
|
-
this.verifySignature = (signature, publicKey) => (0, crypto_1.verifySignature)(this.hash(), signature, publicKey.
|
|
71
|
+
this.verifySignature = (signature, publicKey) => (0, crypto_1.verifySignature)(this.hash(), signature, publicKey.raw);
|
|
72
72
|
/**
|
|
73
73
|
* @notice Encrypts this command along with a signature to produce a Message.
|
|
74
74
|
* To save gas, we can constrain the following values to 50 bits and pack
|
|
@@ -115,16 +115,16 @@ class PCommand {
|
|
|
115
115
|
};
|
|
116
116
|
}
|
|
117
117
|
/**
|
|
118
|
-
* Deserialize into a
|
|
118
|
+
* Deserialize into a VoteCommand instance
|
|
119
119
|
* @param json
|
|
120
|
-
* @returns a
|
|
120
|
+
* @returns a VoteCommand instance
|
|
121
121
|
*/
|
|
122
122
|
static fromJSON(json) {
|
|
123
|
-
const command = new
|
|
123
|
+
const command = new VoteCommand(BigInt(json.stateIndex), publicKey_1.PublicKey.deserialize(json.newPublicKey), BigInt(json.voteOptionIndex), BigInt(json.newVoteWeight), BigInt(json.nonce), BigInt(json.pollId), BigInt(json.salt));
|
|
124
124
|
return command;
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
|
-
exports.
|
|
127
|
+
exports.VoteCommand = VoteCommand;
|
|
128
128
|
/**
|
|
129
129
|
* Decrypts a Message to produce a Command.
|
|
130
130
|
* @dev You can force decrypt the message by setting `force` to true.
|
|
@@ -133,11 +133,11 @@ exports.PCommand = PCommand;
|
|
|
133
133
|
* @param sharedKey - the shared key to use for decryption
|
|
134
134
|
* @param force - whether to force decryption or not
|
|
135
135
|
*/
|
|
136
|
-
|
|
136
|
+
VoteCommand.decrypt = (message, sharedKey, force = false) => {
|
|
137
137
|
const decrypted = force
|
|
138
138
|
? (0, crypto_1.poseidonDecryptWithoutCheck)(message.data, sharedKey, BigInt(0), 7)
|
|
139
139
|
: (0, crypto_1.poseidonDecrypt)(message.data, sharedKey, BigInt(0), 7);
|
|
140
|
-
const
|
|
140
|
+
const data = BigInt(decrypted[0].toString());
|
|
141
141
|
// Returns the value of the 50 bits at position `pos` in `val`
|
|
142
142
|
// create 50 '1' bits
|
|
143
143
|
// shift left by pos
|
|
@@ -146,26 +146,26 @@ PCommand.decrypt = (message, sharedKey, force = false) => {
|
|
|
146
146
|
const extract = (val, pos) =>
|
|
147
147
|
// eslint-disable-next-line no-bitwise
|
|
148
148
|
BigInt((((BigInt(1) << BigInt(50)) - BigInt(1)) << BigInt(pos)) & val) >> BigInt(pos);
|
|
149
|
-
//
|
|
149
|
+
// data is a packed value
|
|
150
150
|
// bits 0 - 50: stateIndex
|
|
151
151
|
// bits 51 - 100: voteOptionIndex
|
|
152
152
|
// bits 101 - 150: newVoteWeight
|
|
153
153
|
// bits 151 - 200: nonce
|
|
154
154
|
// bits 201 - 250: pollId
|
|
155
|
-
const stateIndex = extract(
|
|
156
|
-
const voteOptionIndex = extract(
|
|
157
|
-
const newVoteWeight = extract(
|
|
158
|
-
const nonce = extract(
|
|
159
|
-
const pollId = extract(
|
|
155
|
+
const stateIndex = extract(data, 0);
|
|
156
|
+
const voteOptionIndex = extract(data, 50);
|
|
157
|
+
const newVoteWeight = extract(data, 100);
|
|
158
|
+
const nonce = extract(data, 150);
|
|
159
|
+
const pollId = extract(data, 200);
|
|
160
160
|
// create new public key but allow it to be invalid (as when passing an mismatched
|
|
161
161
|
// encryptionPublicKey, a message will not decrypt resulting in potentially invalid public keys)
|
|
162
162
|
const newPublicKey = new publicKey_1.PublicKey([decrypted[1], decrypted[2]], true);
|
|
163
163
|
const salt = decrypted[3];
|
|
164
|
-
const command = new
|
|
164
|
+
const command = new VoteCommand(stateIndex, newPublicKey, voteOptionIndex, newVoteWeight, nonce, pollId, salt);
|
|
165
165
|
const signature = {
|
|
166
166
|
R8: [decrypted[4], decrypted[5]],
|
|
167
167
|
S: decrypted[6],
|
|
168
168
|
};
|
|
169
169
|
return { command, signature };
|
|
170
170
|
};
|
|
171
|
-
//# sourceMappingURL=
|
|
171
|
+
//# sourceMappingURL=VoteCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VoteCommand.js","sourceRoot":"","sources":["../../../ts/commands/VoteCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "
|
|
3
|
+
exports.VoteCommand = void 0;
|
|
4
|
+
var VoteCommand_1 = require("./VoteCommand");
|
|
5
|
+
Object.defineProperty(exports, "VoteCommand", { enumerable: true, get: function () { return VoteCommand_1.VoteCommand; } });
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/commands/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/commands/index.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAAnC,0GAAA,WAAW,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../ts/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../ts/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,eAAO,MAAM,cAAc,WAA4B,CAAC;AACxD,eAAO,MAAM,kBAAkB,QAAwB,CAAC;AACxD,eAAO,MAAM,MAAM,WAAiC,CAAC"}
|
package/build/ts/constants.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.padKey = exports.blankStateLeafHash = exports.blankStateLeaf = void 0;
|
|
4
4
|
const publicKey_1 = require("./publicKey");
|
|
5
5
|
const stateLeaf_1 = require("./stateLeaf");
|
|
6
|
-
exports.blankStateLeaf = stateLeaf_1.StateLeaf.
|
|
6
|
+
exports.blankStateLeaf = stateLeaf_1.StateLeaf.generateBlank();
|
|
7
7
|
exports.blankStateLeafHash = exports.blankStateLeaf.hash();
|
|
8
|
-
exports.padKey = publicKey_1.PublicKey.
|
|
8
|
+
exports.padKey = publicKey_1.PublicKey.generatePaddingKey();
|
|
9
9
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../ts/constants.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,2CAAwC;AAE3B,QAAA,cAAc,GAAG,qBAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../ts/constants.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,2CAAwC;AAE3B,QAAA,cAAc,GAAG,qBAAS,CAAC,aAAa,EAAE,CAAC;AAC3C,QAAA,kBAAkB,GAAG,sBAAc,CAAC,IAAI,EAAE,CAAC;AAC3C,QAAA,MAAM,GAAG,qBAAS,CAAC,kBAAkB,EAAE,CAAC"}
|
package/build/ts/index.d.ts
CHANGED
|
@@ -5,7 +5,8 @@ export { PublicKey, SERIALIZED_PUB_KEY_PREFIX } from "./publicKey";
|
|
|
5
5
|
export { Keypair } from "./keyPair";
|
|
6
6
|
export { StateLeaf } from "./stateLeaf";
|
|
7
7
|
export { blankStateLeaf, blankStateLeafHash, padKey } from "./constants";
|
|
8
|
-
export type { Proof, IStateLeaf, VoteOptionTreeLeaf, IJsonKeyPair, IJsonPrivateKey, IJsonPublicKey, IJsonStateLeaf, IG1ContractParams, IG2ContractParams, IVkContractParams, IVkObjectParams, IStateLeafContractParams, IMessageContractParams, IJsonBallot, } from "./types";
|
|
9
|
-
export { type IJsonTCommand, type IJsonPCommand, PCommand } from "./commands";
|
|
10
8
|
export { VerifyingKey } from "./verifyingKey";
|
|
9
|
+
export { VoteCounts } from "./voteCounts";
|
|
10
|
+
export type { Proof, IStateLeaf, VoteOptionTreeLeaf, IJsonKeyPair, IJsonPrivateKey, IJsonPublicKey, IJsonStateLeaf, IG1ContractParams, IG2ContractParams, IVerifyingKeyContractParams, IVerifyingKeyObjectParams, IStateLeafContractParams, IMessageContractParams, IJsonBallot, IJsonVoteCounts, } from "./types";
|
|
11
|
+
export { type IJsonTCommand, type IJsonPCommand, VoteCommand } from "./commands";
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
package/build/ts/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,YAAY,EACV,KAAK,EACL,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,EACX,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
package/build/ts/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.VoteCommand = exports.VoteCounts = exports.VerifyingKey = exports.padKey = exports.blankStateLeafHash = exports.blankStateLeaf = exports.StateLeaf = exports.Keypair = exports.SERIALIZED_PUB_KEY_PREFIX = exports.PublicKey = exports.SERIALIZED_PRIV_KEY_PREFIX = exports.PrivateKey = exports.Message = exports.Ballot = void 0;
|
|
4
4
|
var ballot_1 = require("./ballot");
|
|
5
5
|
Object.defineProperty(exports, "Ballot", { enumerable: true, get: function () { return ballot_1.Ballot; } });
|
|
6
6
|
var message_1 = require("./message");
|
|
@@ -19,8 +19,10 @@ var constants_1 = require("./constants");
|
|
|
19
19
|
Object.defineProperty(exports, "blankStateLeaf", { enumerable: true, get: function () { return constants_1.blankStateLeaf; } });
|
|
20
20
|
Object.defineProperty(exports, "blankStateLeafHash", { enumerable: true, get: function () { return constants_1.blankStateLeafHash; } });
|
|
21
21
|
Object.defineProperty(exports, "padKey", { enumerable: true, get: function () { return constants_1.padKey; } });
|
|
22
|
-
var commands_1 = require("./commands");
|
|
23
|
-
Object.defineProperty(exports, "PCommand", { enumerable: true, get: function () { return commands_1.PCommand; } });
|
|
24
22
|
var verifyingKey_1 = require("./verifyingKey");
|
|
25
23
|
Object.defineProperty(exports, "VerifyingKey", { enumerable: true, get: function () { return verifyingKey_1.VerifyingKey; } });
|
|
24
|
+
var voteCounts_1 = require("./voteCounts");
|
|
25
|
+
Object.defineProperty(exports, "VoteCounts", { enumerable: true, get: function () { return voteCounts_1.VoteCounts; } });
|
|
26
|
+
var commands_1 = require("./commands");
|
|
27
|
+
Object.defineProperty(exports, "VoteCommand", { enumerable: true, get: function () { return commands_1.VoteCommand; } });
|
|
26
28
|
//# sourceMappingURL=index.js.map
|
package/build/ts/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/index.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,2CAAsE;AAA7D,wGAAA,UAAU,OAAA;AAAE,wHAAA,0BAA0B,OAAA;AAC/C,yCAAmE;AAA1D,sGAAA,SAAS,OAAA;AAAE,sHAAA,yBAAyB,OAAA;AAC7C,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,yCAAyE;AAAhE,2GAAA,cAAc,OAAA;AAAE,+GAAA,kBAAkB,OAAA;AAAE,mGAAA,MAAM,OAAA;AACnD,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AAoBnB,uCAAiF;AAAhC,uGAAA,WAAW,OAAA"}
|
package/build/ts/keyPair.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EcdhSharedKey } from "@maci-protocol/crypto";
|
|
1
|
+
import { type EcdhSharedKey } from "@maci-protocol/crypto";
|
|
2
2
|
import type { IJsonKeyPair } from "./types";
|
|
3
3
|
import { PrivateKey } from "./privateKey";
|
|
4
4
|
import { PublicKey } from "./publicKey";
|
|
@@ -28,7 +28,7 @@ export declare class Keypair {
|
|
|
28
28
|
* @param publicKey
|
|
29
29
|
* @returns
|
|
30
30
|
*/
|
|
31
|
-
static
|
|
31
|
+
static generateEcdhSharedKey(privateKey: PrivateKey, publicKey: PublicKey): EcdhSharedKey;
|
|
32
32
|
/**
|
|
33
33
|
* Check whether two Keypairs are equal
|
|
34
34
|
* @param keypair the keypair to compare with
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../ts/keyPair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../ts/keyPair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAA6D,MAAM,uBAAuB,CAAC;AAItH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;GAKG;AACH,qBAAa,OAAO;IAClB,UAAU,EAAE,UAAU,CAAC;IAEvB,SAAS,EAAE,SAAS,CAAC;IAErB;;;;OAIG;gBACS,UAAU,CAAC,EAAE,UAAU;IAWnC;;;OAGG;IACH,IAAI,QAAO,OAAO,CAAwC;IAE1D;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,GAAG,aAAa;IAIzF;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAajC;;OAEG;IACH,MAAM,IAAI,YAAY;IAOtB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO;CAG7C"}
|
package/build/ts/keyPair.js
CHANGED
|
@@ -28,12 +28,12 @@ class Keypair {
|
|
|
28
28
|
this.copy = () => new Keypair(this.privateKey.copy());
|
|
29
29
|
if (privateKey) {
|
|
30
30
|
this.privateKey = privateKey;
|
|
31
|
-
this.publicKey = new publicKey_1.PublicKey((0, crypto_1.
|
|
31
|
+
this.publicKey = new publicKey_1.PublicKey((0, crypto_1.generatePublicKey)(privateKey.raw));
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
|
-
const
|
|
35
|
-
this.privateKey = new privateKey_1.PrivateKey(
|
|
36
|
-
this.publicKey = new publicKey_1.PublicKey(
|
|
34
|
+
const rawKeypair = (0, crypto_1.generateKeypair)();
|
|
35
|
+
this.privateKey = new privateKey_1.PrivateKey(rawKeypair.privateKey);
|
|
36
|
+
this.publicKey = new publicKey_1.PublicKey(rawKeypair.publicKey);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
/**
|
|
@@ -42,8 +42,8 @@ class Keypair {
|
|
|
42
42
|
* @param publicKey
|
|
43
43
|
* @returns
|
|
44
44
|
*/
|
|
45
|
-
static
|
|
46
|
-
return (0, crypto_1.
|
|
45
|
+
static generateEcdhSharedKey(privateKey, publicKey) {
|
|
46
|
+
return (0, crypto_1.generateEcdhSharedKey)(privateKey.raw, publicKey.raw);
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
49
|
* Check whether two Keypairs are equal
|
|
@@ -51,14 +51,13 @@ class Keypair {
|
|
|
51
51
|
* @returns whether they are equal or not
|
|
52
52
|
*/
|
|
53
53
|
equals(keypair) {
|
|
54
|
-
const
|
|
55
|
-
const
|
|
56
|
-
this.publicKey.rawPubKey[1] === keypair.publicKey.rawPubKey[1];
|
|
54
|
+
const equalPrivateKey = this.privateKey.raw === keypair.privateKey.raw;
|
|
55
|
+
const equalPublic = this.publicKey.raw[0] === keypair.publicKey.raw[0] && this.publicKey.raw[1] === keypair.publicKey.raw[1];
|
|
57
56
|
// If this assertion fails, something is very wrong and this function
|
|
58
57
|
// should not return anything
|
|
59
58
|
// eslint-disable-next-line no-bitwise
|
|
60
|
-
(0, assert_1.default)(!(+
|
|
61
|
-
return
|
|
59
|
+
(0, assert_1.default)(!(+equalPrivateKey ^ +equalPublic));
|
|
60
|
+
return equalPrivateKey;
|
|
62
61
|
}
|
|
63
62
|
/**
|
|
64
63
|
* Serialize into a JSON object
|
package/build/ts/keyPair.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyPair.js","sourceRoot":"","sources":["../../ts/keyPair.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"keyPair.js","sourceRoot":"","sources":["../../ts/keyPair.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAsH;AAEtH,oDAA4B;AAI5B,6CAA0C;AAC1C,2CAAwC;AAExC;;;;;GAKG;AACH,MAAa,OAAO;IAKlB;;;;OAIG;IACH,YAAY,UAAuB;QAWnC;;;WAGG;QACH,SAAI,GAAG,GAAY,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAdxD,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,IAAA,0BAAiB,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,IAAA,wBAAe,GAAE,CAAC;YACrC,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAQD;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,UAAsB,EAAE,SAAoB;QACvE,OAAO,IAAA,8BAAqB,EAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAgB;QACrB,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QACvE,MAAM,WAAW,GACf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE3G,qEAAqE;QACrE,6BAA6B;QAC7B,sCAAsC;QACtC,IAAA,gBAAM,EAAC,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QAE3C,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YACvC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;SACtC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAkB;QAChC,OAAO,IAAI,OAAO,CAAC,uBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,CAAC;CACF;AAzED,0BAyEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../ts/message.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD;;GAEG;AACH,qBAAa,OAAO;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IAEf,MAAM,CAAC,WAAW,SAAM;IAExB;;;;OAIG;gBACS,IAAI,EAAE,MAAM,EAAE;IAK1B;;;OAGG;IACH,OAAO,CAAC,OAAO,CAA6B;IAE5C;;;OAGG;IACH,eAAe,QAAO,sBAAsB,CAEzC;IAEH;;;OAGG;IACH,eAAe,QAAO,MAAM,EAAE,CAAmB;IAEjD;;;;OAIG;IACH,IAAI,GAAI,qBAAqB,SAAS,KAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../ts/message.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD;;GAEG;AACH,qBAAa,OAAO;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IAEf,MAAM,CAAC,WAAW,SAAM;IAExB;;;;OAIG;gBACS,IAAI,EAAE,MAAM,EAAE;IAK1B;;;OAGG;IACH,OAAO,CAAC,OAAO,CAA6B;IAE5C;;;OAGG;IACH,eAAe,QAAO,sBAAsB,CAEzC;IAEH;;;OAGG;IACH,eAAe,QAAO,MAAM,EAAE,CAAmB;IAEjD;;;;OAIG;IACH,IAAI,GAAI,qBAAqB,SAAS,KAAG,MAAM,CAAuD;IAEtG;;;OAGG;IACH,IAAI,QAAO,OAAO,CAAoE;IAEtF;;;;OAIG;IACH,MAAM,GAAI,GAAG,OAAO,KAAG,OAAO,CAM5B;IAEF;;OAEG;IACH,MAAM,IAAI,sBAAsB;IAIhC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO;CAGvD"}
|
package/build/ts/message.js
CHANGED
|
@@ -38,7 +38,7 @@ class Message {
|
|
|
38
38
|
* @param encryptionPublicKey the public key that is used to encrypt this message
|
|
39
39
|
* @returns the hash of the message data and the public key
|
|
40
40
|
*/
|
|
41
|
-
this.hash = (encryptionPublicKey) => (0, crypto_1.hash12)([...this.data, ...encryptionPublicKey.
|
|
41
|
+
this.hash = (encryptionPublicKey) => (0, crypto_1.hash12)([...this.data, ...encryptionPublicKey.raw]);
|
|
42
42
|
/**
|
|
43
43
|
* Create a copy of the message
|
|
44
44
|
* @returns a copy of the message
|
package/build/ts/message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../ts/message.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA+C;AAE/C,oDAA4B;AAK5B;;GAEG;AACH,MAAa,OAAO;IAKlB;;;;OAIG;IACH,YAAY,IAAc;QAK1B;;;WAGG;QACK,YAAO,GAAG,GAAa,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QAE5C;;;WAGG;QACH,oBAAe,GAAG,GAA2B,EAAE,CAAC,CAAC;YAC/C,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SACjD,CAAC,CAAC;QAEH;;;WAGG;QACH,oBAAe,GAAG,GAAa,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAEjD;;;;WAIG;QACH,SAAI,GAAG,CAAC,mBAA8B,EAAU,EAAE,CAAC,IAAA,eAAM,EAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../ts/message.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA+C;AAE/C,oDAA4B;AAK5B;;GAEG;AACH,MAAa,OAAO;IAKlB;;;;OAIG;IACH,YAAY,IAAc;QAK1B;;;WAGG;QACK,YAAO,GAAG,GAAa,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QAE5C;;;WAGG;QACH,oBAAe,GAAG,GAA2B,EAAE,CAAC,CAAC;YAC/C,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SACjD,CAAC,CAAC;QAEH;;;WAGG;QACH,oBAAe,GAAG,GAAa,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAEjD;;;;WAIG;QACH,SAAI,GAAG,CAAC,mBAA8B,EAAU,EAAE,CAAC,IAAA,eAAM,EAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;QAEtG;;;WAGG;QACH,SAAI,GAAG,GAAY,EAAE,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAEtF;;;;WAIG;QACH,WAAM,GAAG,CAAC,CAAU,EAAW,EAAE;YAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACvC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC;QAhDA,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAgDD;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAA4B;QAC1C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;;AA3EH,0BA4EC;AAzEQ,mBAAW,GAAG,EAAE,AAAL,CAAM"}
|
package/build/ts/privateKey.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type PrivateKey as
|
|
1
|
+
import { type PrivateKey as RawPrivateKey } from "@maci-protocol/crypto";
|
|
2
2
|
import type { IJsonPrivateKey } from "./types";
|
|
3
3
|
export declare const SERIALIZED_PRIV_KEY_PREFIX = "macisk.";
|
|
4
4
|
/**
|
|
@@ -9,12 +9,12 @@ export declare const SERIALIZED_PRIV_KEY_PREFIX = "macisk.";
|
|
|
9
9
|
* A serialized MACI private key is prefixed by 'macisk.'
|
|
10
10
|
*/
|
|
11
11
|
export declare class PrivateKey {
|
|
12
|
-
|
|
12
|
+
raw: RawPrivateKey;
|
|
13
13
|
/**
|
|
14
14
|
* Generate a new Private key object
|
|
15
|
-
* @param
|
|
15
|
+
* @param raw the raw private key (a bigint)
|
|
16
16
|
*/
|
|
17
|
-
constructor(
|
|
17
|
+
constructor(raw: RawPrivateKey);
|
|
18
18
|
/**
|
|
19
19
|
* Create a copy of this Private key
|
|
20
20
|
* @returns a copy of the Private key
|
|
@@ -38,10 +38,10 @@ export declare class PrivateKey {
|
|
|
38
38
|
static deserialize: (s: string) => PrivateKey;
|
|
39
39
|
/**
|
|
40
40
|
* Check if the serialized private key is valid
|
|
41
|
-
* @param
|
|
41
|
+
* @param serialized the serialized private key
|
|
42
42
|
* @returns whether it is a valid serialized private key
|
|
43
43
|
*/
|
|
44
|
-
static
|
|
44
|
+
static isValidSerialized: (serialized: string) => boolean;
|
|
45
45
|
/**
|
|
46
46
|
* Serialize this object
|
|
47
47
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privateKey.d.ts","sourceRoot":"","sources":["../../ts/privateKey.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"privateKey.d.ts","sourceRoot":"","sources":["../../ts/privateKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,UAAU,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAErG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,0BAA0B,YAAY,CAAC;AAEpD;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,GAAG,EAAE,aAAa,CAAC;IAEnB;;;OAGG;gBACS,GAAG,EAAE,aAAa;IAI9B;;;OAGG;IACH,IAAI,QAAO,UAAU,CAAgD;IAErE;;;OAGG;IACH,eAAe,QAAO,MAAM,CAAoD;IAEhF;;;OAGG;IACH,SAAS,QAAO,MAAM,CAOpB;IAEF;;;;OAIG;IACH,MAAM,CAAC,WAAW,GAAI,GAAG,MAAM,KAAG,UAAU,CAG1C;IAEF;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,GAAI,YAAY,MAAM,KAAG,OAAO,CAKtD;IAEF;;OAEG;IACH,MAAM,IAAI,eAAe;IAMzB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,UAAU;CAGnD"}
|