@maci-protocol/sdk 0.0.0-ci.2653bc0
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/CHANGELOG.md +80 -0
- package/LICENSE +22 -0
- package/README.md +12 -0
- package/build/package.json +56 -0
- package/build/ts/browser/index.d.ts +15 -0
- package/build/ts/browser/index.d.ts.map +1 -0
- package/build/ts/browser/index.js +43 -0
- package/build/ts/browser/index.js.map +1 -0
- package/build/ts/deploy/index.d.ts +5 -0
- package/build/ts/deploy/index.d.ts.map +1 -0
- package/build/ts/deploy/index.js +10 -0
- package/build/ts/deploy/index.js.map +1 -0
- package/build/ts/deploy/maci.d.ts +8 -0
- package/build/ts/deploy/maci.d.ts.map +1 -0
- package/build/ts/deploy/maci.js +87 -0
- package/build/ts/deploy/maci.js.map +1 -0
- package/build/ts/deploy/poll.d.ts +8 -0
- package/build/ts/deploy/poll.d.ts.map +1 -0
- package/build/ts/deploy/poll.js +107 -0
- package/build/ts/deploy/poll.js.map +1 -0
- package/build/ts/deploy/types.d.ts +204 -0
- package/build/ts/deploy/types.d.ts.map +1 -0
- package/build/ts/deploy/types.js +3 -0
- package/build/ts/deploy/types.js.map +1 -0
- package/build/ts/deploy/utils.d.ts +11 -0
- package/build/ts/deploy/utils.d.ts.map +1 -0
- package/build/ts/deploy/utils.js +22 -0
- package/build/ts/deploy/utils.js.map +1 -0
- package/build/ts/deploy/vkRegistry.d.ts +7 -0
- package/build/ts/deploy/vkRegistry.d.ts.map +1 -0
- package/build/ts/deploy/vkRegistry.js +14 -0
- package/build/ts/deploy/vkRegistry.js.map +1 -0
- package/build/ts/index.d.ts +16 -0
- package/build/ts/index.d.ts.map +1 -0
- package/build/ts/index.js +69 -0
- package/build/ts/index.js.map +1 -0
- package/build/ts/maci/index.d.ts +6 -0
- package/build/ts/maci/index.d.ts.map +1 -0
- package/build/ts/maci/index.js +17 -0
- package/build/ts/maci/index.js.map +1 -0
- package/build/ts/maci/merge.d.ts +9 -0
- package/build/ts/maci/merge.d.ts.map +1 -0
- package/build/ts/maci/merge.js +29 -0
- package/build/ts/maci/merge.js.map +1 -0
- package/build/ts/maci/policy.d.ts +41 -0
- package/build/ts/maci/policy.d.ts.map +1 -0
- package/build/ts/maci/policy.js +127 -0
- package/build/ts/maci/policy.js.map +1 -0
- package/build/ts/maci/state.d.ts +8 -0
- package/build/ts/maci/state.d.ts.map +1 -0
- package/build/ts/maci/state.js +82 -0
- package/build/ts/maci/state.js.map +1 -0
- package/build/ts/maci/types.d.ts +176 -0
- package/build/ts/maci/types.d.ts.map +1 -0
- package/build/ts/maci/types.js +18 -0
- package/build/ts/maci/types.js.map +1 -0
- package/build/ts/maciKeys/__tests__/keypair.test.d.ts +2 -0
- package/build/ts/maciKeys/__tests__/keypair.test.d.ts.map +1 -0
- package/build/ts/maciKeys/__tests__/keypair.test.js +24 -0
- package/build/ts/maciKeys/__tests__/keypair.test.js.map +1 -0
- package/build/ts/maciKeys/__tests__/publicKeys.test.d.ts +2 -0
- package/build/ts/maciKeys/__tests__/publicKeys.test.d.ts.map +1 -0
- package/build/ts/maciKeys/__tests__/publicKeys.test.js +22 -0
- package/build/ts/maciKeys/__tests__/publicKeys.test.js.map +1 -0
- package/build/ts/maciKeys/index.d.ts +4 -0
- package/build/ts/maciKeys/index.d.ts.map +1 -0
- package/build/ts/maciKeys/index.js +8 -0
- package/build/ts/maciKeys/index.js.map +1 -0
- package/build/ts/maciKeys/keypair.d.ts +9 -0
- package/build/ts/maciKeys/keypair.d.ts.map +1 -0
- package/build/ts/maciKeys/keypair.js +20 -0
- package/build/ts/maciKeys/keypair.js.map +1 -0
- package/build/ts/maciKeys/publicKeys.d.ts +8 -0
- package/build/ts/maciKeys/publicKeys.d.ts.map +1 -0
- package/build/ts/maciKeys/publicKeys.js +23 -0
- package/build/ts/maciKeys/publicKeys.js.map +1 -0
- package/build/ts/maciKeys/types.d.ts +23 -0
- package/build/ts/maciKeys/types.d.ts.map +1 -0
- package/build/ts/maciKeys/types.js +3 -0
- package/build/ts/maciKeys/types.js.map +1 -0
- package/build/ts/poll/index.d.ts +4 -0
- package/build/ts/poll/index.d.ts.map +1 -0
- package/build/ts/poll/index.js +9 -0
- package/build/ts/poll/index.js.map +1 -0
- package/build/ts/poll/poll.d.ts +14 -0
- package/build/ts/poll/poll.d.ts.map +1 -0
- package/build/ts/poll/poll.js +62 -0
- package/build/ts/poll/poll.js.map +1 -0
- package/build/ts/poll/types.d.ts +152 -0
- package/build/ts/poll/types.d.ts.map +1 -0
- package/build/ts/poll/types.js +3 -0
- package/build/ts/poll/types.js.map +1 -0
- package/build/ts/poll/utils.d.ts +9 -0
- package/build/ts/poll/utils.d.ts.map +1 -0
- package/build/ts/poll/utils.js +43 -0
- package/build/ts/poll/utils.js.map +1 -0
- package/build/ts/proof/__tests__/download.test.d.ts +2 -0
- package/build/ts/proof/__tests__/download.test.d.ts.map +1 -0
- package/build/ts/proof/__tests__/download.test.js +50 -0
- package/build/ts/proof/__tests__/download.test.js.map +1 -0
- package/build/ts/proof/constants.d.ts +17 -0
- package/build/ts/proof/constants.d.ts.map +1 -0
- package/build/ts/proof/constants.js +20 -0
- package/build/ts/proof/constants.js.map +1 -0
- package/build/ts/proof/download.d.ts +9 -0
- package/build/ts/proof/download.d.ts.map +1 -0
- package/build/ts/proof/download.js +49 -0
- package/build/ts/proof/download.js.map +1 -0
- package/build/ts/proof/generate.d.ts +8 -0
- package/build/ts/proof/generate.d.ts.map +1 -0
- package/build/ts/proof/generate.js +127 -0
- package/build/ts/proof/generate.js.map +1 -0
- package/build/ts/proof/index.d.ts +4 -0
- package/build/ts/proof/index.d.ts.map +1 -0
- package/build/ts/proof/index.js +8 -0
- package/build/ts/proof/index.js.map +1 -0
- package/build/ts/proof/prove.d.ts +8 -0
- package/build/ts/proof/prove.d.ts.map +1 -0
- package/build/ts/proof/prove.js +81 -0
- package/build/ts/proof/prove.js.map +1 -0
- package/build/ts/proof/types.d.ts +175 -0
- package/build/ts/proof/types.d.ts.map +1 -0
- package/build/ts/proof/types.js +3 -0
- package/build/ts/proof/types.js.map +1 -0
- package/build/ts/relayer/__tests__/messages.test.d.ts +2 -0
- package/build/ts/relayer/__tests__/messages.test.d.ts.map +1 -0
- package/build/ts/relayer/__tests__/messages.test.js +76 -0
- package/build/ts/relayer/__tests__/messages.test.js.map +1 -0
- package/build/ts/relayer/__tests__/utils.test.d.ts +2 -0
- package/build/ts/relayer/__tests__/utils.test.d.ts.map +1 -0
- package/build/ts/relayer/__tests__/utils.test.js +73 -0
- package/build/ts/relayer/__tests__/utils.test.js.map +1 -0
- package/build/ts/relayer/index.d.ts +3 -0
- package/build/ts/relayer/index.d.ts.map +1 -0
- package/build/ts/relayer/index.js +8 -0
- package/build/ts/relayer/index.js.map +1 -0
- package/build/ts/relayer/messages.d.ts +23 -0
- package/build/ts/relayer/messages.d.ts.map +1 -0
- package/build/ts/relayer/messages.js +66 -0
- package/build/ts/relayer/messages.js.map +1 -0
- package/build/ts/relayer/types.d.ts +168 -0
- package/build/ts/relayer/types.d.ts.map +1 -0
- package/build/ts/relayer/types.js +3 -0
- package/build/ts/relayer/types.js.map +1 -0
- package/build/ts/relayer/utils.d.ts +12 -0
- package/build/ts/relayer/utils.d.ts.map +1 -0
- package/build/ts/relayer/utils.js +37 -0
- package/build/ts/relayer/utils.js.map +1 -0
- package/build/ts/tally/commitments.d.ts +9 -0
- package/build/ts/tally/commitments.d.ts.map +1 -0
- package/build/ts/tally/commitments.js +42 -0
- package/build/ts/tally/commitments.js.map +1 -0
- package/build/ts/tally/index.d.ts +4 -0
- package/build/ts/tally/index.d.ts.map +1 -0
- package/build/ts/tally/index.js +8 -0
- package/build/ts/tally/index.js.map +1 -0
- package/build/ts/tally/types.d.ts +179 -0
- package/build/ts/tally/types.d.ts.map +1 -0
- package/build/ts/tally/types.js +3 -0
- package/build/ts/tally/types.js.map +1 -0
- package/build/ts/tally/utils.d.ts +24 -0
- package/build/ts/tally/utils.d.ts.map +1 -0
- package/build/ts/tally/utils.js +50 -0
- package/build/ts/tally/utils.js.map +1 -0
- package/build/ts/tally/verification.d.ts +7 -0
- package/build/ts/tally/verification.d.ts.map +1 -0
- package/build/ts/tally/verification.js +62 -0
- package/build/ts/tally/verification.js.map +1 -0
- package/build/ts/trees/index.d.ts +3 -0
- package/build/ts/trees/index.d.ts.map +1 -0
- package/build/ts/trees/index.js +6 -0
- package/build/ts/trees/index.js.map +1 -0
- package/build/ts/trees/stateTree.d.ts +13 -0
- package/build/ts/trees/stateTree.d.ts.map +1 -0
- package/build/ts/trees/stateTree.js +53 -0
- package/build/ts/trees/stateTree.js.map +1 -0
- package/build/ts/trees/types.d.ts +46 -0
- package/build/ts/trees/types.d.ts.map +1 -0
- package/build/ts/trees/types.js +3 -0
- package/build/ts/trees/types.js.map +1 -0
- package/build/ts/user/index.d.ts +3 -0
- package/build/ts/user/index.d.ts.map +1 -0
- package/build/ts/user/index.js +11 -0
- package/build/ts/user/index.js.map +1 -0
- package/build/ts/user/types.d.ts +424 -0
- package/build/ts/user/types.d.ts.map +1 -0
- package/build/ts/user/types.js +3 -0
- package/build/ts/user/types.js.map +1 -0
- package/build/ts/user/user.d.ts +42 -0
- package/build/ts/user/user.d.ts.map +1 -0
- package/build/ts/user/user.js +192 -0
- package/build/ts/user/user.js.map +1 -0
- package/build/ts/user/utils.d.ts +52 -0
- package/build/ts/user/utils.d.ts.map +1 -0
- package/build/ts/user/utils.js +186 -0
- package/build/ts/user/utils.js.map +1 -0
- package/build/ts/utils/cid.d.ts +23 -0
- package/build/ts/utils/cid.d.ts.map +1 -0
- package/build/ts/utils/cid.js +72 -0
- package/build/ts/utils/cid.js.map +1 -0
- package/build/ts/utils/constants.d.ts +2 -0
- package/build/ts/utils/constants.d.ts.map +1 -0
- package/build/ts/utils/constants.js +5 -0
- package/build/ts/utils/constants.js.map +1 -0
- package/build/ts/utils/contracts.d.ts +15 -0
- package/build/ts/utils/contracts.d.ts.map +1 -0
- package/build/ts/utils/contracts.js +26 -0
- package/build/ts/utils/contracts.js.map +1 -0
- package/build/ts/utils/files.d.ts +9 -0
- package/build/ts/utils/files.d.ts.map +1 -0
- package/build/ts/utils/files.js +20 -0
- package/build/ts/utils/files.js.map +1 -0
- package/build/ts/utils/formatting.d.ts +8 -0
- package/build/ts/utils/formatting.d.ts.map +1 -0
- package/build/ts/utils/formatting.js +11 -0
- package/build/ts/utils/formatting.js.map +1 -0
- package/build/ts/utils/fundWallet.d.ts +7 -0
- package/build/ts/utils/fundWallet.d.ts.map +1 -0
- package/build/ts/utils/fundWallet.js +20 -0
- package/build/ts/utils/fundWallet.js.map +1 -0
- package/build/ts/utils/index.d.ts +12 -0
- package/build/ts/utils/index.d.ts.map +1 -0
- package/build/ts/utils/index.js +28 -0
- package/build/ts/utils/index.js.map +1 -0
- package/build/ts/utils/params.d.ts +7 -0
- package/build/ts/utils/params.d.ts.map +1 -0
- package/build/ts/utils/params.js +19 -0
- package/build/ts/utils/params.js.map +1 -0
- package/build/ts/utils/proofs.d.ts +13 -0
- package/build/ts/utils/proofs.d.ts.map +1 -0
- package/build/ts/utils/proofs.js +41 -0
- package/build/ts/utils/proofs.js.map +1 -0
- package/build/ts/utils/timeTravel.d.ts +7 -0
- package/build/ts/utils/timeTravel.d.ts.map +1 -0
- package/build/ts/utils/timeTravel.js +14 -0
- package/build/ts/utils/timeTravel.js.map +1 -0
- package/build/ts/utils/trees.d.ts +13 -0
- package/build/ts/utils/trees.d.ts.map +1 -0
- package/build/ts/utils/trees.js +30 -0
- package/build/ts/utils/trees.js.map +1 -0
- package/build/ts/utils/types.d.ts +71 -0
- package/build/ts/utils/types.d.ts.map +1 -0
- package/build/ts/utils/types.js +3 -0
- package/build/ts/utils/types.js.map +1 -0
- package/build/ts/utils/utils.d.ts +16 -0
- package/build/ts/utils/utils.d.ts.map +1 -0
- package/build/ts/utils/utils.js +36 -0
- package/build/ts/utils/utils.js.map +1 -0
- package/build/ts/verifyingKeys/checkVerifyingKeys.d.ts +10 -0
- package/build/ts/verifyingKeys/checkVerifyingKeys.d.ts.map +1 -0
- package/build/ts/verifyingKeys/checkVerifyingKeys.js +67 -0
- package/build/ts/verifyingKeys/checkVerifyingKeys.js.map +1 -0
- package/build/ts/verifyingKeys/index.d.ts +5 -0
- package/build/ts/verifyingKeys/index.d.ts.map +1 -0
- package/build/ts/verifyingKeys/index.js +13 -0
- package/build/ts/verifyingKeys/index.js.map +1 -0
- package/build/ts/verifyingKeys/setVerifyingKeys.d.ts +7 -0
- package/build/ts/verifyingKeys/setVerifyingKeys.d.ts.map +1 -0
- package/build/ts/verifyingKeys/setVerifyingKeys.js +73 -0
- package/build/ts/verifyingKeys/setVerifyingKeys.js.map +1 -0
- package/build/ts/verifyingKeys/types.d.ts +231 -0
- package/build/ts/verifyingKeys/types.d.ts.map +1 -0
- package/build/ts/verifyingKeys/types.js +3 -0
- package/build/ts/verifyingKeys/types.js.map +1 -0
- package/build/ts/verifyingKeys/utils.d.ts +29 -0
- package/build/ts/verifyingKeys/utils.d.ts.map +1 -0
- package/build/ts/verifyingKeys/utils.js +102 -0
- package/build/ts/verifyingKeys/utils.js.map +1 -0
- package/build/ts/vote/generate.d.ts +8 -0
- package/build/ts/vote/generate.d.ts.map +1 -0
- package/build/ts/vote/generate.js +46 -0
- package/build/ts/vote/generate.js.map +1 -0
- package/build/ts/vote/index.d.ts +6 -0
- package/build/ts/vote/index.d.ts.map +1 -0
- package/build/ts/vote/index.js +15 -0
- package/build/ts/vote/index.js.map +1 -0
- package/build/ts/vote/invalidate.d.ts +13 -0
- package/build/ts/vote/invalidate.d.ts.map +1 -0
- package/build/ts/vote/invalidate.js +44 -0
- package/build/ts/vote/invalidate.js.map +1 -0
- package/build/ts/vote/publish.d.ts +14 -0
- package/build/ts/vote/publish.d.ts.map +1 -0
- package/build/ts/vote/publish.js +88 -0
- package/build/ts/vote/publish.js.map +1 -0
- package/build/ts/vote/submit.d.ts +13 -0
- package/build/ts/vote/submit.d.ts.map +1 -0
- package/build/ts/vote/submit.js +36 -0
- package/build/ts/vote/submit.js.map +1 -0
- package/build/ts/vote/types.d.ts +238 -0
- package/build/ts/vote/types.d.ts.map +1 -0
- package/build/ts/vote/types.js +3 -0
- package/build/ts/vote/types.js.map +1 -0
- package/build/ts/vote/utils.d.ts +16 -0
- package/build/ts/vote/utils.d.ts.map +1 -0
- package/build/ts/vote/utils.js +26 -0
- package/build/ts/vote/utils.js.map +1 -0
- package/build/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.verifyTallyResults = exports.verifyPerVOSpentVoiceCredits = void 0;
|
|
4
|
+
const crypto_1 = require("@maci-protocol/crypto");
|
|
5
|
+
/**
|
|
6
|
+
* Loop through each per vote option spent voice credits and verify it on-chain
|
|
7
|
+
*
|
|
8
|
+
* @param tallyContract The tally contract
|
|
9
|
+
* @param tallyData The tally.json file data
|
|
10
|
+
* @param voteOptionTreeDepth The vote option tree depth
|
|
11
|
+
* @param newSpentVoiceCreditsCommitment The total spent voice credits commitment
|
|
12
|
+
* @param newResultsCommitment The tally result commitment
|
|
13
|
+
* @returns list of the indexes of the tally result that failed on-chain verification
|
|
14
|
+
*/
|
|
15
|
+
const verifyPerVOSpentVoiceCredits = async (tallyContract, tallyData, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newResultsCommitment) => {
|
|
16
|
+
const failedIndices = [];
|
|
17
|
+
for (let i = 0; i < tallyData.perVOSpentVoiceCredits.tally.length; i += 1) {
|
|
18
|
+
const proof = (0, crypto_1.genTreeProof)(i, tallyData.perVOSpentVoiceCredits.tally.map((x) => BigInt(x)), voteOptionTreeDepth);
|
|
19
|
+
// eslint-disable-next-line no-await-in-loop
|
|
20
|
+
const isValid = await tallyContract.verifyPerVOSpentVoiceCredits(i, tallyData.perVOSpentVoiceCredits.tally[i], proof, tallyData.perVOSpentVoiceCredits.salt, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newResultsCommitment);
|
|
21
|
+
if (!isValid) {
|
|
22
|
+
failedIndices.push(i);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return failedIndices;
|
|
26
|
+
};
|
|
27
|
+
exports.verifyPerVOSpentVoiceCredits = verifyPerVOSpentVoiceCredits;
|
|
28
|
+
/**
|
|
29
|
+
* Loop through each tally result and verify it on-chain
|
|
30
|
+
* @param tallyContract The tally contract
|
|
31
|
+
* @param tallyData The tally.json file data
|
|
32
|
+
* @param voteOptionTreeDepth The vote option tree depth
|
|
33
|
+
* @param newSpentVoiceCreditsCommitment The total spent voice credits commitment
|
|
34
|
+
* @param newPerVOSpentVoiceCreditsCommitment The per vote option voice credits commitment
|
|
35
|
+
* @returns list of the indexes of the tally result that failed on-chain verification
|
|
36
|
+
*/
|
|
37
|
+
const verifyTallyResults = async (tallyContract, tallyData, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newPerVOSpentVoiceCreditsCommitment) => {
|
|
38
|
+
const failedIndices = [];
|
|
39
|
+
for (let i = 0; i < tallyData.results.tally.length; i += 1) {
|
|
40
|
+
const proof = (0, crypto_1.genTreeProof)(i, tallyData.results.tally.map((x) => BigInt(x)), voteOptionTreeDepth);
|
|
41
|
+
// eslint-disable-next-line no-await-in-loop
|
|
42
|
+
const isValid = await tallyContract.verifyTallyResult(i, tallyData.results.tally[i], proof, tallyData.results.salt, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newPerVOSpentVoiceCreditsCommitment ?? 0n);
|
|
43
|
+
if (!isValid) {
|
|
44
|
+
failedIndices.push(i);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return failedIndices;
|
|
48
|
+
};
|
|
49
|
+
exports.verifyTallyResults = verifyTallyResults;
|
|
50
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/tally/utils.ts"],"names":[],"mappings":";;;AAAA,kDAAqD;AAKrD;;;;;;;;;GASG;AACI,MAAM,4BAA4B,GAAG,KAAK,EAC/C,aAAoB,EACpB,SAAqB,EACrB,mBAA2B,EAC3B,8BAAsC,EACtC,oBAA4B,EACT,EAAE;IACrB,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,sBAAuB,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3E,MAAM,KAAK,GAAG,IAAA,qBAAY,EACxB,CAAC,EACD,SAAS,CAAC,sBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC7D,mBAAmB,CACpB,CAAC;QAEF,4CAA4C;QAC5C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,4BAA4B,CAC9D,CAAC,EACD,SAAS,CAAC,sBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,EAC1C,KAAK,EACL,SAAS,CAAC,sBAAuB,CAAC,IAAI,EACtC,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,CACrB,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAjCW,QAAA,4BAA4B,gCAiCvC;AAEF;;;;;;;;GAQG;AACI,MAAM,kBAAkB,GAAG,KAAK,EACrC,aAAoB,EACpB,SAAqB,EACrB,mBAA2B,EAC3B,8BAAsC,EACtC,mCAA4C,EACzB,EAAE;IACrB,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAA,qBAAY,EACxB,CAAC,EACD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC7C,mBAAmB,CACpB,CAAC;QAEF,4CAA4C;QAC5C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,iBAAiB,CACnD,CAAC,EACD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAC1B,KAAK,EACL,SAAS,CAAC,OAAO,CAAC,IAAI,EACtB,mBAAmB,EACnB,8BAA8B,EAC9B,mCAAmC,IAAI,EAAE,CAC1C,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAjCW,QAAA,kBAAkB,sBAiC7B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { IVerifyArgs } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Verify the results of a poll on-chain
|
|
4
|
+
* @param VerifyArgs - The arguments for the verify command
|
|
5
|
+
*/
|
|
6
|
+
export declare const verify: ({ pollId, tallyData, signer, tallyCommitments, numVoteOptions, voteOptionTreeDepth, }: IVerifyArgs) => Promise<boolean>;
|
|
7
|
+
//# sourceMappingURL=verification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../../ts/tally/verification.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAM3C;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAU,uFAO1B,WAAW,KAAG,OAAO,CAAC,OAAO,CAiG/B,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.verify = void 0;
|
|
4
|
+
const typechain_types_1 = require("@maci-protocol/contracts/typechain-types");
|
|
5
|
+
const contracts_1 = require("../utils/contracts");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
/**
|
|
8
|
+
* Verify the results of a poll on-chain
|
|
9
|
+
* @param VerifyArgs - The arguments for the verify command
|
|
10
|
+
*/
|
|
11
|
+
const verify = async ({ pollId, tallyData, signer, tallyCommitments, numVoteOptions, voteOptionTreeDepth, }) => {
|
|
12
|
+
const useQv = tallyData.isQuadratic;
|
|
13
|
+
const maciContractAddress = tallyData.maci;
|
|
14
|
+
const validContract = await (0, contracts_1.contractExists)(signer.provider, maciContractAddress);
|
|
15
|
+
if (!validContract) {
|
|
16
|
+
throw new Error(`There is no MACI contract deployed at ${maciContractAddress}.`);
|
|
17
|
+
}
|
|
18
|
+
// get the contract objects
|
|
19
|
+
const maciContract = typechain_types_1.MACI__factory.connect(maciContractAddress, signer);
|
|
20
|
+
const pollContracts = await maciContract.polls(pollId);
|
|
21
|
+
const tallyContract = typechain_types_1.Tally__factory.connect(pollContracts.tally, signer);
|
|
22
|
+
// get the on-chain tally commitment\
|
|
23
|
+
const onChainTallyCommitment = BigInt(await tallyContract.tallyCommitment());
|
|
24
|
+
// check the results commitment
|
|
25
|
+
const validResultsCommitment = tallyData.newTallyCommitment.match(/0x[a-fA-F0-9]+/);
|
|
26
|
+
if (!validResultsCommitment) {
|
|
27
|
+
throw new Error("Invalid results commitment format");
|
|
28
|
+
}
|
|
29
|
+
if (tallyData.results.tally.length !== numVoteOptions) {
|
|
30
|
+
throw new Error("Wrong number of vote options.");
|
|
31
|
+
}
|
|
32
|
+
// destructure the tally commitments
|
|
33
|
+
const { newTallyCommitment, newSpentVoiceCreditsCommitment, newPerVOSpentVoiceCreditsCommitment, newResultsCommitment, } = tallyCommitments;
|
|
34
|
+
// verify that the results commitment matches the output of genTreeCommitment()
|
|
35
|
+
if (onChainTallyCommitment !== newTallyCommitment) {
|
|
36
|
+
throw new Error("The on-chain tally commitment does not match.");
|
|
37
|
+
}
|
|
38
|
+
// verify total spent voice credits on-chain
|
|
39
|
+
const verified = await tallyContract.verifySpentVoiceCredits(tallyData.totalSpentVoiceCredits.spent, tallyData.totalSpentVoiceCredits.salt, newResultsCommitment, newPerVOSpentVoiceCreditsCommitment ?? 0n);
|
|
40
|
+
if (!verified) {
|
|
41
|
+
throw new Error("The on-chain verification of total spent voice credits failed.");
|
|
42
|
+
}
|
|
43
|
+
// verify tally result on-chain for each vote option
|
|
44
|
+
const failedPerVOSpentCredits = await (0, utils_1.verifyTallyResults)(tallyContract, tallyData, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newPerVOSpentVoiceCreditsCommitment);
|
|
45
|
+
if (failedPerVOSpentCredits.length > 0) {
|
|
46
|
+
throw new Error(`At least one spent voice credits entry in the tally results failed the on-chain verification. Please check your tally results at these indexes: ${failedPerVOSpentCredits.join(", ")}`);
|
|
47
|
+
}
|
|
48
|
+
if (!useQv) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
if (tallyData.perVOSpentVoiceCredits?.tally.length !== numVoteOptions) {
|
|
52
|
+
throw new Error("Wrong number of vote options.");
|
|
53
|
+
}
|
|
54
|
+
// verify per vote option voice credits on-chain
|
|
55
|
+
const failedSpentCredits = await (0, utils_1.verifyPerVOSpentVoiceCredits)(tallyContract, tallyData, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newResultsCommitment);
|
|
56
|
+
if (failedSpentCredits.length > 0) {
|
|
57
|
+
throw new Error(`At least one tally result failed the on-chain verification. Please check your Tally data at these indexes: ${failedSpentCredits.join(", ")}`);
|
|
58
|
+
}
|
|
59
|
+
return true;
|
|
60
|
+
};
|
|
61
|
+
exports.verify = verify;
|
|
62
|
+
//# sourceMappingURL=verification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../ts/tally/verification.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/trees/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateSignUpTree = void 0;
|
|
4
|
+
var stateTree_1 = require("./stateTree");
|
|
5
|
+
Object.defineProperty(exports, "generateSignUpTree", { enumerable: true, get: function () { return stateTree_1.generateSignUpTree; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/trees/index.ts"],"names":[],"mappings":";;;AAAA,yCAAiD;AAAxC,+GAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IGenerateSignUpTreeArgs, IGenerateSignUpTree } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Generate a State tree object from the events of a MACI smart contracts
|
|
4
|
+
* @param provider - the ethereum provider
|
|
5
|
+
* @param address - the address of the MACI contract
|
|
6
|
+
* @param fromBlock - the block number from which to start fetching events
|
|
7
|
+
* @param blocksPerRequest - the number of blocks to fetch in each request
|
|
8
|
+
* @param endBlock - the block number at which to stop fetching events
|
|
9
|
+
* @param sleepAmount - the amount of time to sleep between each request
|
|
10
|
+
* @returns State tree
|
|
11
|
+
*/
|
|
12
|
+
export declare const generateSignUpTree: ({ provider, address, fromBlock, blocksPerRequest, endBlock, sleepAmount, }: IGenerateSignUpTreeArgs) => Promise<IGenerateSignUpTree>;
|
|
13
|
+
//# sourceMappingURL=stateTree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stateTree.d.ts","sourceRoot":"","sources":["../../../ts/trees/stateTree.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAI5E;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,GAAU,4EAOtC,uBAAuB,KAAG,OAAO,CAAC,mBAAmB,CAqCvD,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateSignUpTree = void 0;
|
|
4
|
+
/* eslint-disable no-underscore-dangle */
|
|
5
|
+
const contracts_1 = require("@maci-protocol/contracts");
|
|
6
|
+
const crypto_1 = require("@maci-protocol/crypto");
|
|
7
|
+
const domainobjs_1 = require("@maci-protocol/domainobjs");
|
|
8
|
+
const lean_imt_1 = require("@zk-kit/lean-imt");
|
|
9
|
+
const console_1 = require("console");
|
|
10
|
+
const utils_1 = require("../utils/utils");
|
|
11
|
+
/**
|
|
12
|
+
* Generate a State tree object from the events of a MACI smart contracts
|
|
13
|
+
* @param provider - the ethereum provider
|
|
14
|
+
* @param address - the address of the MACI contract
|
|
15
|
+
* @param fromBlock - the block number from which to start fetching events
|
|
16
|
+
* @param blocksPerRequest - the number of blocks to fetch in each request
|
|
17
|
+
* @param endBlock - the block number at which to stop fetching events
|
|
18
|
+
* @param sleepAmount - the amount of time to sleep between each request
|
|
19
|
+
* @returns State tree
|
|
20
|
+
*/
|
|
21
|
+
const generateSignUpTree = async ({ provider, address, fromBlock = 0, blocksPerRequest = 50, endBlock, sleepAmount, }) => {
|
|
22
|
+
const lastBlock = endBlock || (await provider.getBlockNumber());
|
|
23
|
+
const maciContract = contracts_1.MACI__factory.connect(address, provider);
|
|
24
|
+
const signUpTree = new lean_imt_1.LeanIMT(crypto_1.hashLeanIMT);
|
|
25
|
+
signUpTree.insert(crypto_1.PAD_KEY_HASH);
|
|
26
|
+
const pubKeys = [];
|
|
27
|
+
// Fetch event logs in batches (lastBlock inclusive)
|
|
28
|
+
for (let i = fromBlock; i <= lastBlock; i += blocksPerRequest + 1) {
|
|
29
|
+
// the last block batch will be either current iteration block + blockPerRequest
|
|
30
|
+
// or the end block if it is set
|
|
31
|
+
const toBlock = i + blocksPerRequest >= lastBlock ? lastBlock : i + blocksPerRequest;
|
|
32
|
+
// eslint-disable-next-line no-await-in-loop
|
|
33
|
+
const signUpLogs = await maciContract.queryFilter(maciContract.filters.SignUp(), i, toBlock);
|
|
34
|
+
signUpLogs.forEach((event) => {
|
|
35
|
+
(0, console_1.assert)(!!event);
|
|
36
|
+
const pubKeyX = event.args._userPubKeyX;
|
|
37
|
+
const pubKeyY = event.args._userPubKeyY;
|
|
38
|
+
const pubKey = new domainobjs_1.PubKey([pubKeyX, pubKeyY]);
|
|
39
|
+
pubKeys.push(pubKey);
|
|
40
|
+
signUpTree.insert((0, crypto_1.hashLeftRight)(pubKeyX, pubKeyY));
|
|
41
|
+
});
|
|
42
|
+
if (sleepAmount) {
|
|
43
|
+
// eslint-disable-next-line no-await-in-loop
|
|
44
|
+
await (0, utils_1.sleep)(sleepAmount);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
signUpTree,
|
|
49
|
+
pubKeys,
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
exports.generateSignUpTree = generateSignUpTree;
|
|
53
|
+
//# sourceMappingURL=stateTree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stateTree.js","sourceRoot":"","sources":["../../../ts/trees/stateTree.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,wDAAwE;AACxE,kDAAiF;AACjF,0DAAmD;AACnD,+CAAgE;AAEhE,qCAAiC;AAIjC,0CAAuC;AAEvC;;;;;;;;;GASG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,EACvC,QAAQ,EACR,OAAO,EACP,SAAS,GAAG,CAAC,EACb,gBAAgB,GAAG,EAAE,EACrB,QAAQ,EACR,WAAW,GACa,EAAgC,EAAE;IAC1D,MAAM,SAAS,GAAG,QAAQ,IAAI,CAAC,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;IAEhE,MAAM,YAAY,GAAG,yBAAW,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,IAAI,kBAAO,CAAC,oBAAkC,CAAC,CAAC;IACnE,UAAU,CAAC,MAAM,CAAC,qBAAY,CAAC,CAAC;IAChC,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,oDAAoD;IACpD,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QAClE,gFAAgF;QAChF,gCAAgC;QAChC,MAAM,OAAO,GAAG,CAAC,GAAG,gBAAgB,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;QAErF,4CAA4C;QAC5C,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7F,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAA,gBAAM,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAChB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;YACxC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;YAExC,MAAM,MAAM,GAAG,IAAI,mBAAM,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAE9C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,UAAU,CAAC,MAAM,CAAC,IAAA,sBAAa,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,IAAI,WAAW,EAAE,CAAC;YAChB,4CAA4C;YAC5C,MAAM,IAAA,aAAK,EAAC,WAAW,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU;QACV,OAAO;KACR,CAAC;AACJ,CAAC,CAAC;AA5CW,QAAA,kBAAkB,sBA4C7B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { PubKey } from "@maci-protocol/domainobjs";
|
|
2
|
+
import type { LeanIMT } from "@zk-kit/lean-imt";
|
|
3
|
+
import type { Provider } from "ethers";
|
|
4
|
+
/**
|
|
5
|
+
* An interface that represents arguments of generation sign up tree and state leaves
|
|
6
|
+
*/
|
|
7
|
+
export interface IGenerateSignUpTreeArgs {
|
|
8
|
+
/**
|
|
9
|
+
* The etherum provider
|
|
10
|
+
*/
|
|
11
|
+
provider: Provider;
|
|
12
|
+
/**
|
|
13
|
+
* The address of MACI contract
|
|
14
|
+
*/
|
|
15
|
+
address: string;
|
|
16
|
+
/**
|
|
17
|
+
* The block number from which to start fetching events
|
|
18
|
+
*/
|
|
19
|
+
fromBlock?: number;
|
|
20
|
+
/**
|
|
21
|
+
* The number of blocks to fetch in each request
|
|
22
|
+
*/
|
|
23
|
+
blocksPerRequest?: number;
|
|
24
|
+
/**
|
|
25
|
+
* The block number at which to stop fetching events
|
|
26
|
+
*/
|
|
27
|
+
endBlock?: number;
|
|
28
|
+
/**
|
|
29
|
+
* The amount of time to sleep between each request
|
|
30
|
+
*/
|
|
31
|
+
sleepAmount?: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* An interface that represents sign up tree and state leaves
|
|
35
|
+
*/
|
|
36
|
+
export interface IGenerateSignUpTree {
|
|
37
|
+
/**
|
|
38
|
+
* Sign up tree
|
|
39
|
+
*/
|
|
40
|
+
signUpTree: LeanIMT;
|
|
41
|
+
/**
|
|
42
|
+
* State leaves
|
|
43
|
+
*/
|
|
44
|
+
pubKeys: PubKey[];
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/trees/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../ts/trees/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { getSignedupUserData, signup, getJoinedUserData, joinPoll, hasUserJoinedPoll, hasUserSignedUp } from "./user";
|
|
2
|
+
export type { IJoinedUserArgs, IIsRegisteredUser, IIsJoinedUser, ISignupArgs, IRegisteredUserArgs, IPollJoinedCircuitInputs, IPollJoiningCircuitInputs, IJoinPollArgs, IIsNullifierOnChainArgs, IGetPollJoiningCircuitEventsArgs, IGetPollJoiningCircuitInputsFromStateFileArgs, IJoinPollData, IParsePollJoinEventsArgs, IParseSignupEventsArgs, ISignupData, IHasUserSignedUpArgs, } from "./types";
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACtH,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,aAAa,EACb,uBAAuB,EACvB,gCAAgC,EAChC,6CAA6C,EAC7C,aAAa,EACb,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,EACX,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasUserSignedUp = exports.hasUserJoinedPoll = exports.joinPoll = exports.getJoinedUserData = exports.signup = exports.getSignedupUserData = void 0;
|
|
4
|
+
var user_1 = require("./user");
|
|
5
|
+
Object.defineProperty(exports, "getSignedupUserData", { enumerable: true, get: function () { return user_1.getSignedupUserData; } });
|
|
6
|
+
Object.defineProperty(exports, "signup", { enumerable: true, get: function () { return user_1.signup; } });
|
|
7
|
+
Object.defineProperty(exports, "getJoinedUserData", { enumerable: true, get: function () { return user_1.getJoinedUserData; } });
|
|
8
|
+
Object.defineProperty(exports, "joinPoll", { enumerable: true, get: function () { return user_1.joinPoll; } });
|
|
9
|
+
Object.defineProperty(exports, "hasUserJoinedPoll", { enumerable: true, get: function () { return user_1.hasUserJoinedPoll; } });
|
|
10
|
+
Object.defineProperty(exports, "hasUserSignedUp", { enumerable: true, get: function () { return user_1.hasUserSignedUp; } });
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/user/index.ts"],"names":[],"mappings":";;;AAAA,+BAAsH;AAA7G,2GAAA,mBAAmB,OAAA;AAAE,8FAAA,MAAM,OAAA;AAAE,yGAAA,iBAAiB,OAAA;AAAE,gGAAA,QAAQ,OAAA;AAAE,yGAAA,iBAAiB,OAAA;AAAE,uGAAA,eAAe,OAAA"}
|