@maci-protocol/sdk 0.0.0-ci.e3476db → 0.0.0-ci.e535d7c
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 +11 -3
- package/build/ts/browser/joinPoll.d.ts.map +1 -1
- package/build/ts/browser/joinPoll.js +14 -11
- 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 -6
- package/build/ts/deploy/poll.js.map +1 -1
- package/build/ts/deploy/types.d.ts +10 -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/policy.d.ts +13 -1
- package/build/ts/maci/policy.d.ts.map +1 -1
- package/build/ts/maci/policy.js +40 -1
- package/build/ts/maci/policy.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 +34 -2
- package/build/ts/maci/types.d.ts.map +1 -1
- package/build/ts/maci/types.js +2 -0
- package/build/ts/maci/types.js.map +1 -1
- package/build/ts/maciKeys/__tests__/keypair.test.js +7 -7
- package/build/ts/maciKeys/__tests__/keypair.test.js.map +1 -1
- package/build/ts/maciKeys/__tests__/publicKeys.test.js +7 -7
- package/build/ts/maciKeys/__tests__/publicKeys.test.js.map +1 -1
- package/build/ts/maciKeys/keypair.js +3 -3
- package/build/ts/maciKeys/keypair.js.map +1 -1
- package/build/ts/maciKeys/publicKeys.d.ts +2 -2
- package/build/ts/maciKeys/publicKeys.d.ts.map +1 -1
- package/build/ts/maciKeys/publicKeys.js +6 -6
- package/build/ts/maciKeys/publicKeys.js.map +1 -1
- package/build/ts/poll/poll.js +4 -4
- package/build/ts/poll/poll.js.map +1 -1
- package/build/ts/poll/types.d.ts +5 -6
- package/build/ts/poll/types.d.ts.map +1 -1
- package/build/ts/proof/__tests__/download.test.js +3 -3
- package/build/ts/proof/__tests__/download.test.js.map +1 -1
- package/build/ts/proof/generate.d.ts +1 -1
- package/build/ts/proof/generate.js +4 -4
- package/build/ts/proof/generate.js.map +1 -1
- package/build/ts/proof/prove.js +10 -10
- package/build/ts/proof/prove.js.map +1 -1
- package/build/ts/proof/types.d.ts +3 -3
- package/build/ts/proof/types.d.ts.map +1 -1
- package/build/ts/relayer/__tests__/messages.test.js +1 -1
- package/build/ts/relayer/__tests__/messages.test.js.map +1 -1
- package/build/ts/relayer/__tests__/utils.test.js +3 -3
- package/build/ts/relayer/__tests__/utils.test.js.map +1 -1
- package/build/ts/relayer/messages.js +1 -1
- package/build/ts/relayer/utils.js +1 -1
- package/build/ts/relayer/utils.js.map +1 -1
- package/build/ts/tally/commitments.js +2 -2
- 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 +33 -7
- package/build/ts/tally/types.d.ts.map +1 -1
- package/build/ts/tally/utils.js +3 -3
- 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 +4 -4
- package/build/ts/tally/verification.js.map +1 -1
- package/build/ts/trees/stateTree.js +12 -9
- package/build/ts/trees/stateTree.js.map +1 -1
- package/build/ts/trees/types.d.ts +2 -2
- package/build/ts/trees/types.d.ts.map +1 -1
- package/build/ts/user/joinPoll.d.ts.map +1 -1
- package/build/ts/user/joinPoll.js +9 -10
- 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 +8 -8
- package/build/ts/user/signup.js.map +1 -1
- package/build/ts/user/types.d.ts +12 -20
- package/build/ts/user/types.d.ts.map +1 -1
- package/build/ts/user/utils.d.ts +12 -12
- package/build/ts/user/utils.d.ts.map +1 -1
- package/build/ts/user/utils.js +27 -27
- package/build/ts/user/utils.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 +1 -1
- 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 +13 -13
- 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 +43 -33
- package/build/ts/verifyingKeys/setVerifyingKeys.js.map +1 -1
- package/build/ts/verifyingKeys/types.d.ts +36 -32
- 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 +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 +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 +3 -3
- package/build/ts/vote/invalidate.js.map +1 -1
- package/build/ts/vote/publish.d.ts +1 -1
- package/build/ts/vote/publish.d.ts.map +1 -1
- package/build/ts/vote/publish.js +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 +17 -9
- 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/maci/policy.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getMerkleProofPolicyData = exports.getEASPolicyData = exports.getZupassPolicyData = exports.getSemaphorePolicyData = exports.getPolicyContractNamesByTrait = exports.getPolicyTrait = void 0;
|
|
3
|
+
exports.getERC20VotesPolicyData = exports.getERC20PolicyData = exports.getMerkleProofPolicyData = exports.getEASPolicyData = exports.getZupassPolicyData = exports.getSemaphorePolicyData = exports.getPolicyContractNamesByTrait = exports.getPolicyTrait = void 0;
|
|
4
4
|
const contracts_1 = require("@maci-protocol/contracts");
|
|
5
5
|
const typechain_types_1 = require("@maci-protocol/contracts/typechain-types");
|
|
6
6
|
const types_1 = require("./types");
|
|
@@ -27,6 +27,8 @@ const POLICY_CONTRACT_NAMES_BY_TRAIT = {
|
|
|
27
27
|
[types_1.EPolicyTrait.Token]: contracts_1.EPolicies.Token,
|
|
28
28
|
[types_1.EPolicyTrait.Zupass]: contracts_1.EPolicies.Zupass,
|
|
29
29
|
[types_1.EPolicyTrait.MerkleProof]: contracts_1.EPolicies.MerkleProof,
|
|
30
|
+
[types_1.EPolicyTrait.ERC20]: contracts_1.EPolicies.ERC20,
|
|
31
|
+
[types_1.EPolicyTrait.ERC20Votes]: contracts_1.EPolicies.ERC20Votes,
|
|
30
32
|
};
|
|
31
33
|
/**
|
|
32
34
|
* Get policy contract names associated with the trait provided.
|
|
@@ -124,4 +126,41 @@ const getMerkleProofPolicyData = async ({ maciAddress, signer, }) => {
|
|
|
124
126
|
};
|
|
125
127
|
};
|
|
126
128
|
exports.getMerkleProofPolicyData = getMerkleProofPolicyData;
|
|
129
|
+
/**
|
|
130
|
+
* Get the ERC20 policy data
|
|
131
|
+
* @param IGetPolicyDataArgs - The arguments for the get erc20 policy data command
|
|
132
|
+
* @returns The erc20 policy data
|
|
133
|
+
*/
|
|
134
|
+
const getERC20PolicyData = async ({ maciAddress, signer }) => {
|
|
135
|
+
const maciContract = typechain_types_1.MACI__factory.connect(maciAddress, signer);
|
|
136
|
+
const policyContractAddress = await maciContract.signUpPolicy();
|
|
137
|
+
const policyContract = typechain_types_1.ERC20Checker__factory.connect(policyContractAddress, signer);
|
|
138
|
+
const [token, threshold] = await Promise.all([policyContract.token(), policyContract.threshold()]);
|
|
139
|
+
return {
|
|
140
|
+
token: token.toString(),
|
|
141
|
+
threshold: threshold.toString(),
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
exports.getERC20PolicyData = getERC20PolicyData;
|
|
145
|
+
/**
|
|
146
|
+
* Get the ERC20 votes policy data
|
|
147
|
+
* @param IGetPolicyDataArgs - The arguments for the get erc20 votes policy data command
|
|
148
|
+
* @returns The erc20 votes policy data
|
|
149
|
+
*/
|
|
150
|
+
const getERC20VotesPolicyData = async ({ maciAddress, signer, }) => {
|
|
151
|
+
const maciContract = typechain_types_1.MACI__factory.connect(maciAddress, signer);
|
|
152
|
+
const policyContractAddress = await maciContract.signUpPolicy();
|
|
153
|
+
const policyContract = typechain_types_1.ERC20VotesChecker__factory.connect(policyContractAddress, signer);
|
|
154
|
+
const [token, threshold, snapshotBlock] = await Promise.all([
|
|
155
|
+
policyContract.token(),
|
|
156
|
+
policyContract.threshold(),
|
|
157
|
+
policyContract.snapshotBlock(),
|
|
158
|
+
]);
|
|
159
|
+
return {
|
|
160
|
+
token: token.toString(),
|
|
161
|
+
threshold: threshold.toString(),
|
|
162
|
+
snapshotBlock: snapshotBlock.toString(),
|
|
163
|
+
};
|
|
164
|
+
};
|
|
165
|
+
exports.getERC20VotesPolicyData = getERC20VotesPolicyData;
|
|
127
166
|
//# sourceMappingURL=policy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../ts/maci/policy.ts"],"names":[],"mappings":";;;AAAA,wDAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../ts/maci/policy.ts"],"names":[],"mappings":"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"}
|
package/build/ts/maci/state.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { IGenerateMaciStateArgs } from "./types";
|
|
|
2
2
|
import type { MaciState } from "@maci-protocol/core";
|
|
3
3
|
/**
|
|
4
4
|
* Generate a local MACI state from the smart contracts events
|
|
5
|
-
* @param args The arguments for the
|
|
5
|
+
* @param args The arguments for the generateLocalState command
|
|
6
6
|
*/
|
|
7
7
|
export declare const generateMaciState: ({ outputPath, pollId, maciAddress, coordinatorPrivateKey, provider, endBlock, startBlock, blockPerBatch, transactionHash, sleep, signer, ipfsMessageBackupFiles, logsOutputPath, }: IGenerateMaciStateArgs) => Promise<MaciState>;
|
|
8
8
|
//# sourceMappingURL=state.d.ts.map
|
package/build/ts/maci/state.js
CHANGED
|
@@ -11,7 +11,7 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
11
11
|
const contracts_2 = require("../utils/contracts");
|
|
12
12
|
/**
|
|
13
13
|
* Generate a local MACI state from the smart contracts events
|
|
14
|
-
* @param args The arguments for the
|
|
14
|
+
* @param args The arguments for the generateLocalState command
|
|
15
15
|
*/
|
|
16
16
|
const generateMaciState = async ({ outputPath, pollId, maciAddress, coordinatorPrivateKey, provider, endBlock, startBlock, blockPerBatch, transactionHash, sleep, signer, ipfsMessageBackupFiles, logsOutputPath, }) => {
|
|
17
17
|
if (!maciAddress) {
|
|
@@ -22,11 +22,11 @@ const generateMaciState = async ({ outputPath, pollId, maciAddress, coordinatorP
|
|
|
22
22
|
throw new Error("MACI contract does not exist");
|
|
23
23
|
}
|
|
24
24
|
// if no private key is passed we ask it securely
|
|
25
|
-
if (!domainobjs_1.
|
|
25
|
+
if (!domainobjs_1.PrivateKey.isValidSerialized(coordinatorPrivateKey)) {
|
|
26
26
|
throw new Error("Invalid MACI private key");
|
|
27
27
|
}
|
|
28
|
-
const
|
|
29
|
-
const coordinatorKeypair = new domainobjs_1.Keypair(
|
|
28
|
+
const coordinatorMaciPrivateKey = domainobjs_1.PrivateKey.deserialize(coordinatorPrivateKey);
|
|
29
|
+
const coordinatorKeypair = new domainobjs_1.Keypair(coordinatorMaciPrivateKey);
|
|
30
30
|
const maciContract = contracts_1.MACI__factory.connect(maciAddress, signer);
|
|
31
31
|
const pollContracts = await maciContract.polls(pollId);
|
|
32
32
|
const isPollExists = await (0, contracts_2.contractExists)(signer.provider, pollContracts.poll);
|
|
@@ -34,19 +34,19 @@ const generateMaciState = async ({ outputPath, pollId, maciAddress, coordinatorP
|
|
|
34
34
|
throw new Error("Poll contract does not exist");
|
|
35
35
|
}
|
|
36
36
|
const pollContract = contracts_1.Poll__factory.connect(pollContracts.poll, signer);
|
|
37
|
-
const [defaultStartBlockSignup, defaultStartBlockPoll, stateRoot,
|
|
37
|
+
const [defaultStartBlockSignup, defaultStartBlockPoll, stateRoot, totalSignups] = await Promise.all([
|
|
38
38
|
maciContract.queryFilter(maciContract.filters.SignUp(), startBlock).then((events) => events[0]?.blockNumber ?? 0),
|
|
39
39
|
maciContract
|
|
40
40
|
.queryFilter(maciContract.filters.DeployPoll(), startBlock)
|
|
41
41
|
.then((events) => events[0]?.blockNumber ?? 0),
|
|
42
42
|
maciContract.getStateTreeRoot(),
|
|
43
|
-
maciContract.
|
|
43
|
+
maciContract.totalSignups(),
|
|
44
44
|
]);
|
|
45
45
|
const defaultStartBlock = Math.min(defaultStartBlockPoll, defaultStartBlockSignup);
|
|
46
46
|
let fromBlock = startBlock ? Number(startBlock) : defaultStartBlock;
|
|
47
47
|
const defaultEndBlock = await Promise.all([
|
|
48
48
|
pollContract
|
|
49
|
-
.queryFilter(pollContract.filters.MergeState(stateRoot,
|
|
49
|
+
.queryFilter(pollContract.filters.MergeState(stateRoot, totalSignups), fromBlock)
|
|
50
50
|
.then((events) => events[events.length - 1]?.blockNumber),
|
|
51
51
|
]).then((blocks) => Math.max(...blocks));
|
|
52
52
|
if (transactionHash) {
|
|
@@ -59,7 +59,7 @@ const generateMaciState = async ({ outputPath, pollId, maciAddress, coordinatorP
|
|
|
59
59
|
const tx = await signer.provider.getTransaction(transactionHash);
|
|
60
60
|
fromBlock = tx?.blockNumber ?? defaultStartBlock;
|
|
61
61
|
}
|
|
62
|
-
const maciState = await (0, contracts_1.
|
|
62
|
+
const maciState = await (0, contracts_1.generateMaciStateFromContract)({
|
|
63
63
|
provider: provider ? new ethers_1.JsonRpcProvider(provider) : signer.provider,
|
|
64
64
|
address: maciAddress,
|
|
65
65
|
coordinatorKeypair,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../ts/maci/state.ts"],"names":[],"mappings":";;;;;;AAAA,wDAIkC;AAClC,
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../ts/maci/state.ts"],"names":[],"mappings":"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"}
|
package/build/ts/maci/types.d.ts
CHANGED
|
@@ -10,7 +10,9 @@ export declare enum EPolicyTrait {
|
|
|
10
10
|
Semaphore = "Semaphore",
|
|
11
11
|
Token = "Token",
|
|
12
12
|
Zupass = "Zupass",
|
|
13
|
-
MerkleProof = "MerkleProof"
|
|
13
|
+
MerkleProof = "MerkleProof",
|
|
14
|
+
ERC20 = "ERC20",
|
|
15
|
+
ERC20Votes = "ERC20Votes"
|
|
14
16
|
}
|
|
15
17
|
/**
|
|
16
18
|
* Interface for the arguments to the getPolicyTrait command
|
|
@@ -94,6 +96,36 @@ export interface IMerkleProofPolicyData {
|
|
|
94
96
|
*/
|
|
95
97
|
root: string;
|
|
96
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Interface for the erc20 policy data
|
|
101
|
+
*/
|
|
102
|
+
export interface IERC20PolicyData {
|
|
103
|
+
/**
|
|
104
|
+
* The token address
|
|
105
|
+
*/
|
|
106
|
+
token: string;
|
|
107
|
+
/**
|
|
108
|
+
* The threshold
|
|
109
|
+
*/
|
|
110
|
+
threshold: string;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Interface for the erc20 votes policy data
|
|
114
|
+
*/
|
|
115
|
+
export interface IERC20VotesPolicyData {
|
|
116
|
+
/**
|
|
117
|
+
* The token address
|
|
118
|
+
*/
|
|
119
|
+
token: string;
|
|
120
|
+
/**
|
|
121
|
+
* The threshold
|
|
122
|
+
*/
|
|
123
|
+
threshold: string;
|
|
124
|
+
/**
|
|
125
|
+
* The snapshot block
|
|
126
|
+
*/
|
|
127
|
+
snapshotBlock: string;
|
|
128
|
+
}
|
|
97
129
|
/**
|
|
98
130
|
* Interface for the arguments to the mergeSignups command
|
|
99
131
|
*/
|
|
@@ -116,7 +148,7 @@ export interface IMergeSignupsArgs {
|
|
|
116
148
|
numQueueOps?: string;
|
|
117
149
|
}
|
|
118
150
|
/**
|
|
119
|
-
* Interface for the arguments to the
|
|
151
|
+
* Interface for the arguments to the generateLocalState command
|
|
120
152
|
* Generate a local MACI state from the smart contracts events
|
|
121
153
|
*/
|
|
122
154
|
export interface IGenerateMaciStateArgs {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/maci/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC;;GAEG;AACH,oBAAY,YAAY;IACtB,GAAG,QAAQ;IACX,UAAU,eAAe;IACzB,eAAe,oBAAoB;IACnC,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,WAAW,gBAAgB;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/maci/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC;;GAEG;AACH,oBAAY,YAAY;IACtB,GAAG,QAAQ;IACX,UAAU,eAAe;IACzB,eAAe,oBAAoB;IACnC,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,UAAU,eAAe;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAElC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
|
package/build/ts/maci/types.js
CHANGED
|
@@ -14,5 +14,7 @@ var EPolicyTrait;
|
|
|
14
14
|
EPolicyTrait["Token"] = "Token";
|
|
15
15
|
EPolicyTrait["Zupass"] = "Zupass";
|
|
16
16
|
EPolicyTrait["MerkleProof"] = "MerkleProof";
|
|
17
|
+
EPolicyTrait["ERC20"] = "ERC20";
|
|
18
|
+
EPolicyTrait["ERC20Votes"] = "ERC20Votes";
|
|
17
19
|
})(EPolicyTrait || (exports.EPolicyTrait = EPolicyTrait = {}));
|
|
18
20
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../ts/maci/types.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,IAAY,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../ts/maci/types.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,IAAY,YAWX;AAXD,WAAY,YAAY;IACtB,2BAAW,CAAA;IACX,yCAAyB,CAAA;IACzB,mDAAmC,CAAA;IACnC,6BAAa,CAAA;IACb,uCAAuB,CAAA;IACvB,+BAAe,CAAA;IACf,iCAAiB,CAAA;IACjB,2CAA2B,CAAA;IAC3B,+BAAe,CAAA;IACf,yCAAyB,CAAA;AAC3B,CAAC,EAXW,YAAY,4BAAZ,YAAY,QAWvB"}
|
|
@@ -12,13 +12,13 @@ describe("generateKeypair", () => {
|
|
|
12
12
|
// Invoking the same command twice should result in different private keys
|
|
13
13
|
expect(keypair1.privateKey).not.toBe(keypair2.privateKey);
|
|
14
14
|
expect(keypair1.publicKey).not.toBe(keypair2.publicKey);
|
|
15
|
-
expect(domainobjs_1.
|
|
16
|
-
expect(domainobjs_1.
|
|
17
|
-
expect(domainobjs_1.
|
|
18
|
-
expect(domainobjs_1.
|
|
19
|
-
const publicKey2 = (0, crypto_1.
|
|
20
|
-
expect(domainobjs_1.
|
|
21
|
-
expect(domainobjs_1.
|
|
15
|
+
expect(domainobjs_1.PrivateKey.deserialize(keypair1.privateKey)).toBeInstanceOf(domainobjs_1.PrivateKey);
|
|
16
|
+
expect(domainobjs_1.PublicKey.deserialize(keypair1.publicKey)).toBeInstanceOf(domainobjs_1.PublicKey);
|
|
17
|
+
expect(domainobjs_1.PrivateKey.deserialize(keypair2.privateKey)).toBeInstanceOf(domainobjs_1.PrivateKey);
|
|
18
|
+
expect(domainobjs_1.PublicKey.deserialize(keypair2.publicKey)).toBeInstanceOf(domainobjs_1.PublicKey);
|
|
19
|
+
const publicKey2 = (0, crypto_1.generatePublicKey)(domainobjs_1.PrivateKey.deserialize(keypair2.privateKey).raw);
|
|
20
|
+
expect(domainobjs_1.PublicKey.deserialize(keypair2.publicKey).raw[0].toString()).toBe(publicKey2[0].toString());
|
|
21
|
+
expect(domainobjs_1.PublicKey.deserialize(keypair2.publicKey).raw[1].toString()).toBe(publicKey2[1].toString());
|
|
22
22
|
});
|
|
23
23
|
});
|
|
24
24
|
//# sourceMappingURL=keypair.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keypair.test.js","sourceRoot":"","sources":["../../../../ts/maciKeys/__tests__/keypair.test.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"keypair.test.js","sourceRoot":"","sources":["../../../../ts/maciKeys/__tests__/keypair.test.ts"],"names":[],"mappings":";;AAAA,kDAA0D;AAC1D,0DAAkE;AAElE,wCAA6C;AAE7C,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,QAAQ,GAAG,IAAA,yBAAe,GAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAA,yBAAe,EAAC;YAC/B,IAAI,EAAE,8JAA8J;SACrK,CAAC,CAAC;QAEH,0EAA0E;QAC1E,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,CAAC,uBAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,uBAAU,CAAC,CAAC;QAC/E,MAAM,CAAC,sBAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,sBAAS,CAAC,CAAC;QAC5E,MAAM,CAAC,uBAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,uBAAU,CAAC,CAAC;QAC/E,MAAM,CAAC,sBAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,sBAAS,CAAC,CAAC;QAE5E,MAAM,UAAU,GAAG,IAAA,0BAAiB,EAAC,uBAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;QACtF,MAAM,CAAC,sBAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnG,MAAM,CAAC,sBAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -7,13 +7,13 @@ const publicKeys_1 = require("../publicKeys");
|
|
|
7
7
|
describe("generateMaciPublicKey", () => {
|
|
8
8
|
test("should output a valid public key", () => {
|
|
9
9
|
const keypair = (0, keypair_1.generateKeypair)();
|
|
10
|
-
const
|
|
11
|
-
expect(
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
expect(
|
|
16
|
-
expect(
|
|
10
|
+
const publicKey = (0, publicKeys_1.generateMaciPublicKey)(keypair.privateKey);
|
|
11
|
+
expect(publicKey).toBe(keypair.publicKey);
|
|
12
|
+
const unserialisedPrivate = domainobjs_1.PrivateKey.deserialize(keypair.privateKey);
|
|
13
|
+
const publicKey2 = (0, crypto_1.generatePublicKey)(unserialisedPrivate.raw);
|
|
14
|
+
const unserializedPublicKey = domainobjs_1.PublicKey.deserialize(keypair.publicKey);
|
|
15
|
+
expect(unserializedPublicKey.raw[0].toString()).toBe(publicKey2[0].toString());
|
|
16
|
+
expect(unserializedPublicKey.raw[1].toString()).toBe(publicKey2[1].toString());
|
|
17
17
|
});
|
|
18
18
|
test("should throw when given an invalid private key", () => {
|
|
19
19
|
expect(() => (0, publicKeys_1.generateMaciPublicKey)("invalid")).toThrow("Invalid private key");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publicKeys.test.js","sourceRoot":"","sources":["../../../../ts/maciKeys/__tests__/publicKeys.test.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"publicKeys.test.js","sourceRoot":"","sources":["../../../../ts/maciKeys/__tests__/publicKeys.test.ts"],"names":[],"mappings":";;AAAA,kDAA0D;AAC1D,0DAAkE;AAElE,wCAA6C;AAC7C,8CAAsD;AAEtD,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC5C,MAAM,OAAO,GAAG,IAAA,yBAAe,GAAE,CAAC;QAClC,MAAM,SAAS,GAAG,IAAA,kCAAqB,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE5D,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE1C,MAAM,mBAAmB,GAAG,uBAAU,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,IAAA,0BAAiB,EAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC9D,MAAM,qBAAqB,GAAG,sBAAS,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvE,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/E,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,kCAAqB,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -10,10 +10,10 @@ const domainobjs_1 = require("@maci-protocol/domainobjs");
|
|
|
10
10
|
*/
|
|
11
11
|
const generateKeypair = ({ seed } = {}) => {
|
|
12
12
|
// create the new random keypair if there is no seed value
|
|
13
|
-
const keypair = new domainobjs_1.Keypair(seed ? new domainobjs_1.
|
|
13
|
+
const keypair = new domainobjs_1.Keypair(seed ? new domainobjs_1.PrivateKey(seed) : undefined);
|
|
14
14
|
return {
|
|
15
|
-
publicKey: keypair.
|
|
16
|
-
privateKey: keypair.
|
|
15
|
+
publicKey: keypair.publicKey.serialize(),
|
|
16
|
+
privateKey: keypair.privateKey.serialize(),
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
19
|
exports.generateKeypair = generateKeypair;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keypair.js","sourceRoot":"","sources":["../../../ts/maciKeys/keypair.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"keypair.js","sourceRoot":"","sources":["../../../ts/maciKeys/keypair.ts"],"names":[],"mappings":";;;AAAA,0DAAgE;AAIhE;;;;;GAKG;AACI,MAAM,eAAe,GAAG,CAAC,EAAE,IAAI,KAA2B,EAAE,EAAwB,EAAE;IAC3F,0DAA0D;IAC1D,MAAM,OAAO,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,uBAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAErE,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE;QACxC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE;KAC3C,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,eAAe,mBAQ1B"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generate a new Maci Public key from a private key
|
|
3
|
-
* @param
|
|
3
|
+
* @param privateKey - the user private key
|
|
4
4
|
* @param quiet - whether to log the output
|
|
5
5
|
* @return the public key serialized
|
|
6
6
|
*/
|
|
7
|
-
export declare const generateMaciPublicKey: (
|
|
7
|
+
export declare const generateMaciPublicKey: (privateKey: string) => string;
|
|
8
8
|
//# sourceMappingURL=publicKeys.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publicKeys.d.ts","sourceRoot":"","sources":["../../../ts/maciKeys/publicKeys.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,
|
|
1
|
+
{"version":3,"file":"publicKeys.d.ts","sourceRoot":"","sources":["../../../ts/maciKeys/publicKeys.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,YAAY,MAAM,KAAG,MAW1D,CAAC"}
|
|
@@ -5,19 +5,19 @@ const crypto_1 = require("@maci-protocol/crypto");
|
|
|
5
5
|
const domainobjs_1 = require("@maci-protocol/domainobjs");
|
|
6
6
|
/**
|
|
7
7
|
* Generate a new Maci Public key from a private key
|
|
8
|
-
* @param
|
|
8
|
+
* @param privateKey - the user private key
|
|
9
9
|
* @param quiet - whether to log the output
|
|
10
10
|
* @return the public key serialized
|
|
11
11
|
*/
|
|
12
|
-
const generateMaciPublicKey = (
|
|
12
|
+
const generateMaciPublicKey = (privateKey) => {
|
|
13
13
|
// we check that the provided private key is valid
|
|
14
|
-
if (!domainobjs_1.
|
|
14
|
+
if (!domainobjs_1.PrivateKey.isValidSerialized(privateKey)) {
|
|
15
15
|
throw new Error("Invalid private key");
|
|
16
16
|
}
|
|
17
|
-
const unserializedKey = domainobjs_1.
|
|
18
|
-
const
|
|
17
|
+
const unserializedKey = domainobjs_1.PrivateKey.deserialize(privateKey);
|
|
18
|
+
const publicKey = new domainobjs_1.PublicKey((0, crypto_1.generatePublicKey)(unserializedKey.raw));
|
|
19
19
|
// we give back the serialized public key
|
|
20
|
-
return
|
|
20
|
+
return publicKey.serialize();
|
|
21
21
|
};
|
|
22
22
|
exports.generateMaciPublicKey = generateMaciPublicKey;
|
|
23
23
|
//# sourceMappingURL=publicKeys.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publicKeys.js","sourceRoot":"","sources":["../../../ts/maciKeys/publicKeys.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"publicKeys.js","sourceRoot":"","sources":["../../../ts/maciKeys/publicKeys.ts"],"names":[],"mappings":";;;AAAA,kDAA0D;AAC1D,0DAAkE;AAElE;;;;;GAKG;AACI,MAAM,qBAAqB,GAAG,CAAC,UAAkB,EAAU,EAAE;IAClE,kDAAkD;IAClD,IAAI,CAAC,uBAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,eAAe,GAAG,uBAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,sBAAS,CAAC,IAAA,0BAAiB,EAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IAExE,yCAAyC;IACzC,OAAO,SAAS,CAAC,SAAS,EAAE,CAAC;AAC/B,CAAC,CAAC;AAXW,QAAA,qBAAqB,yBAWhC"}
|
package/build/ts/poll/poll.js
CHANGED
|
@@ -18,7 +18,7 @@ const getPoll = async ({ maciAddress, signer, provider, pollId }) => {
|
|
|
18
18
|
pollContract.getAddress(),
|
|
19
19
|
]);
|
|
20
20
|
const isMerged = mergedStateRoot !== BigInt(0);
|
|
21
|
-
const
|
|
21
|
+
const totalSignups = await (isMerged ? pollContract.totalSignups() : maciContract.totalSignups());
|
|
22
22
|
// get the poll mode
|
|
23
23
|
const mode = await tallyContract.mode();
|
|
24
24
|
return {
|
|
@@ -26,7 +26,7 @@ const getPoll = async ({ maciAddress, signer, provider, pollId }) => {
|
|
|
26
26
|
address: pollAddress,
|
|
27
27
|
startDate,
|
|
28
28
|
endDate,
|
|
29
|
-
|
|
29
|
+
totalSignups,
|
|
30
30
|
isMerged,
|
|
31
31
|
mode,
|
|
32
32
|
};
|
|
@@ -46,13 +46,13 @@ const getPollParams = async ({ pollId, signer, maciContractAddress, }) => {
|
|
|
46
46
|
});
|
|
47
47
|
const treeDepths = await pollContract.treeDepths();
|
|
48
48
|
const voteOptionTreeDepth = Number(treeDepths.voteOptionTreeDepth);
|
|
49
|
-
const
|
|
49
|
+
const totalVoteOptions = 5 ** voteOptionTreeDepth;
|
|
50
50
|
const messageBatchSize = Number.parseInt((await pollContract.messageBatchSize()).toString(), 10);
|
|
51
51
|
const intStateTreeDepth = Number(treeDepths.intStateTreeDepth);
|
|
52
52
|
const tallyBatchSize = 5 ** intStateTreeDepth;
|
|
53
53
|
return {
|
|
54
54
|
messageBatchSize,
|
|
55
|
-
|
|
55
|
+
totalVoteOptions,
|
|
56
56
|
tallyBatchSize,
|
|
57
57
|
voteOptionTreeDepth,
|
|
58
58
|
intStateTreeDepth,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poll.js","sourceRoot":"","sources":["../../../ts/poll/poll.ts"],"names":[],"mappings":";;;AAEA,mCAA2C;AAE3C;;;;GAIG;AACI,MAAM,OAAO,GAAG,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAgB,EAAyB,EAAE;IAC9G,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,EACJ,EAAE,EACF,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,aAAa,GACrB,GAAG,MAAM,IAAA,wBAAgB,EAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEtE,MAAM,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7E,YAAY,CAAC,kBAAkB,EAAE;QACjC,YAAY,CAAC,eAAe,EAAE;QAC9B,YAAY,CAAC,UAAU,EAAE;KAC1B,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,
|
|
1
|
+
{"version":3,"file":"poll.js","sourceRoot":"","sources":["../../../ts/poll/poll.ts"],"names":[],"mappings":";;;AAEA,mCAA2C;AAE3C;;;;GAIG;AACI,MAAM,OAAO,GAAG,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAgB,EAAyB,EAAE;IAC9G,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,EACJ,EAAE,EACF,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,aAAa,GACrB,GAAG,MAAM,IAAA,wBAAgB,EAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEtE,MAAM,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7E,YAAY,CAAC,kBAAkB,EAAE;QACjC,YAAY,CAAC,eAAe,EAAE;QAC9B,YAAY,CAAC,UAAU,EAAE;KAC1B,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;IAElG,oBAAoB;IACpB,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;IAExC,OAAO;QACL,EAAE;QACF,OAAO,EAAE,WAAW;QACpB,SAAS;QACT,OAAO;QACP,YAAY;QACZ,QAAQ;QACR,IAAI;KACL,CAAC;AACJ,CAAC,CAAC;AAhCW,QAAA,OAAO,WAgClB;AAEF;;;;GAIG;AACI,MAAM,aAAa,GAAG,KAAK,EAAE,EAClC,MAAM,EACN,MAAM,EACN,mBAAmB,GACA,EAAwB,EAAE;IAC7C,2BAA2B;IAC3B,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,wBAAgB,EAAC;QACpD,WAAW,EAAE,mBAAmB;QAChC,MAAM;QACN,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;IACnD,MAAM,mBAAmB,GAAG,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;IACnE,MAAM,gBAAgB,GAAG,CAAC,IAAI,mBAAmB,CAAC;IAElD,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAEjG,MAAM,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,CAAC,IAAI,iBAAiB,CAAC;IAE9C,OAAO;QACL,gBAAgB;QAChB,gBAAgB;QAChB,cAAc;QACd,mBAAmB;QACnB,iBAAiB;KAClB,CAAC;AACJ,CAAC,CAAC;AA5BW,QAAA,aAAa,iBA4BxB"}
|
package/build/ts/poll/types.d.ts
CHANGED
|
@@ -69,7 +69,7 @@ export interface IGetPollData {
|
|
|
69
69
|
/**
|
|
70
70
|
* The poll number of signups
|
|
71
71
|
*/
|
|
72
|
-
|
|
72
|
+
totalSignups: BigNumberish;
|
|
73
73
|
/**
|
|
74
74
|
* Whether the MACI contract's state root has been merged
|
|
75
75
|
*/
|
|
@@ -107,7 +107,7 @@ export interface IPollParams {
|
|
|
107
107
|
/**
|
|
108
108
|
* The number of vote options
|
|
109
109
|
*/
|
|
110
|
-
|
|
110
|
+
totalVoteOptions: number;
|
|
111
111
|
/**
|
|
112
112
|
* Tally Batch Size
|
|
113
113
|
*/
|
|
@@ -125,8 +125,8 @@ export interface IPollParams {
|
|
|
125
125
|
* Inputs for circuit PollJoining
|
|
126
126
|
*/
|
|
127
127
|
export interface IPollJoiningInputs {
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
privateKey: bigint;
|
|
129
|
+
pollPublicKey: bigint[][];
|
|
130
130
|
stateLeaf: bigint[];
|
|
131
131
|
siblings: bigint[][];
|
|
132
132
|
indices: bigint[];
|
|
@@ -140,9 +140,8 @@ export interface IPollJoiningInputs {
|
|
|
140
140
|
* Inputs for circuit PollJoined
|
|
141
141
|
*/
|
|
142
142
|
export interface IPollJoinedInputs {
|
|
143
|
-
|
|
143
|
+
privateKey: bigint;
|
|
144
144
|
voiceCreditsBalance: bigint;
|
|
145
|
-
joinTimestamp: bigint;
|
|
146
145
|
stateLeaf: bigint[];
|
|
147
146
|
pathElements: bigint[][];
|
|
148
147
|
pathIndices: bigint[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/poll/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX;;OAEG;IACH,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,EAAE,EAAE,YAAY,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,EAAE,YAAY,CAAC;IAExB;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/poll/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX;;OAEG;IACH,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,EAAE,EAAE,YAAY,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,EAAE,YAAY,CAAC;IAExB;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC;IAE3B;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -6,8 +6,8 @@ const download_1 = require("../download");
|
|
|
6
6
|
* The inputs for the proof generation
|
|
7
7
|
*/
|
|
8
8
|
const inputs = {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
privateKey: "1259082279488355278660453796037744749156697484507442909424227073450806091599",
|
|
10
|
+
pollPublicKey: [
|
|
11
11
|
"4604149953291977424931588219098726306922992659857425248363017596008978179462",
|
|
12
12
|
"1911350329545195833133079763781611226710101140694516439580176096139978229522",
|
|
13
13
|
],
|
|
@@ -34,7 +34,7 @@ describe("downloadPollJoiningArtifactsBrowser", () => {
|
|
|
34
34
|
const { zKey, wasm } = await (0, download_1.downloadPollJoiningArtifactsBrowser)(true);
|
|
35
35
|
expect(zKey).toBeDefined();
|
|
36
36
|
expect(wasm).toBeDefined();
|
|
37
|
-
const { proof } = await (0, contracts_1.
|
|
37
|
+
const { proof } = await (0, contracts_1.generateProofSnarkjs)({
|
|
38
38
|
inputs: inputs,
|
|
39
39
|
zkeyPath: zKey,
|
|
40
40
|
wasmPath: wasm,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.test.js","sourceRoot":"","sources":["../../../../ts/proof/__tests__/download.test.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"download.test.js","sourceRoot":"","sources":["../../../../ts/proof/__tests__/download.test.ts"],"names":[],"mappings":";;AAAA,wDAAgE;AAGhE,0CAAkE;AAElE;;GAEG;AACH,MAAM,MAAM,GAAG;IACb,UAAU,EAAE,8EAA8E;IAC1F,aAAa,EAAE;QACb,8EAA8E;QAC9E,8EAA8E;KAC/E;IACD,QAAQ,EAAE;QACR,CAAC,8EAA8E,CAAC;QAChF,CAAC,GAAG,CAAC;QACL,CAAC,GAAG,CAAC;QACL,CAAC,GAAG,CAAC;QACL,CAAC,GAAG,CAAC;QACL,CAAC,GAAG,CAAC;QACL,CAAC,GAAG,CAAC;QACL,CAAC,GAAG,CAAC;QACL,CAAC,GAAG,CAAC;QACL,CAAC,GAAG,CAAC;KACN;IACD,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC3D,SAAS,EAAE,8EAA8E;IACzF,SAAS,EAAE,+EAA+E;IAC1F,oBAAoB,EAAE,GAAG;IACzB,MAAM,EAAE,GAAG;CACZ,CAAC;AAEF,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,8CAAmC,EAAC,IAAI,CAAC,CAAC;QAEvE,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAE3B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,gCAAoB,EAAC;YAC3C,MAAM,EAAE,MAAmC;YAC3C,QAAQ,EAAE,IAAyB;YACnC,QAAQ,EAAE,IAAyB;SACpC,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IGenerateProofsArgs, IGenerateProofsData } from "./types";
|
|
2
2
|
/**
|
|
3
3
|
* Generate proofs for the message processing and tally calculations
|
|
4
|
-
* @param args - The arguments for the
|
|
4
|
+
* @param args - The arguments for the generateProofs command
|
|
5
5
|
* @returns The tally data
|
|
6
6
|
*/
|
|
7
7
|
export declare const generateProofs: ({ outputDir, coordinatorPrivateKey, signer, maciAddress, pollId, ipfsMessageBackupFiles, stateFile, transactionHash, startBlock, endBlock, blocksPerBatch, rapidsnark, useQuadraticVoting, tallyZkey, tallyWitgen, tallyWasm, processZkey, processWitgen, processWasm, processDatFile, tallyDatFile, tallyFile, useWasm, }: IGenerateProofsArgs) => Promise<IGenerateProofsData>;
|
|
@@ -11,7 +11,7 @@ const utils_1 = require("../poll/utils");
|
|
|
11
11
|
const files_1 = require("../utils/files");
|
|
12
12
|
/**
|
|
13
13
|
* Generate proofs for the message processing and tally calculations
|
|
14
|
-
* @param args - The arguments for the
|
|
14
|
+
* @param args - The arguments for the generateProofs command
|
|
15
15
|
* @returns The tally data
|
|
16
16
|
*/
|
|
17
17
|
const generateProofs = async ({ outputDir, coordinatorPrivateKey, signer, maciAddress, pollId, ipfsMessageBackupFiles, stateFile, transactionHash, startBlock, endBlock, blocksPerBatch, rapidsnark, useQuadraticVoting, tallyZkey, tallyWitgen, tallyWasm, processZkey, processWitgen, processWasm, processDatFile, tallyDatFile, tallyFile, useWasm, }) => {
|
|
@@ -55,7 +55,7 @@ const generateProofs = async ({ outputDir, coordinatorPrivateKey, signer, maciAd
|
|
|
55
55
|
throw new Error("Please provide a MACI contract address");
|
|
56
56
|
}
|
|
57
57
|
// the coordinator's MACI private key
|
|
58
|
-
if (!domainobjs_1.
|
|
58
|
+
if (!domainobjs_1.PrivateKey.isValidSerialized(coordinatorPrivateKey)) {
|
|
59
59
|
throw new Error("Invalid MACI private key");
|
|
60
60
|
}
|
|
61
61
|
// if we do not have the output directory just create it
|
|
@@ -64,7 +64,7 @@ const generateProofs = async ({ outputDir, coordinatorPrivateKey, signer, maciAd
|
|
|
64
64
|
// Create the directory
|
|
65
65
|
await fs_1.default.promises.mkdir(outputDir);
|
|
66
66
|
}
|
|
67
|
-
const maciPrivateKey = domainobjs_1.
|
|
67
|
+
const maciPrivateKey = domainobjs_1.PrivateKey.deserialize(coordinatorPrivateKey);
|
|
68
68
|
const coordinatorKeypair = new domainobjs_1.Keypair(maciPrivateKey);
|
|
69
69
|
const { poll: pollContract, maci: maciContract, tally: tallyContract, } = await (0, utils_1.getPollContracts)({
|
|
70
70
|
maciAddress,
|
|
@@ -110,7 +110,7 @@ const generateProofs = async ({ outputDir, coordinatorPrivateKey, signer, maciAd
|
|
|
110
110
|
witgen: tallyWitgen,
|
|
111
111
|
wasm: tallyWasm,
|
|
112
112
|
},
|
|
113
|
-
|
|
113
|
+
messageProcessor: {
|
|
114
114
|
zkey: processZkey,
|
|
115
115
|
witgen: processWitgen,
|
|
116
116
|
wasm: processWasm,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../ts/proof/generate.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA0D;AAC1D,
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../ts/proof/generate.ts"],"names":[],"mappings":"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"}
|