@maci-protocol/sdk 0.0.0-ci.fd7cff6 → 0.0.0-ci.fdde0de
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 +16 -7
- package/build/ts/browser/index.d.ts +6 -7
- package/build/ts/browser/index.d.ts.map +1 -1
- package/build/ts/browser/index.js +16 -20
- package/build/ts/browser/index.js.map +1 -1
- package/build/ts/browser/joinPoll.d.ts +10 -0
- package/build/ts/browser/joinPoll.d.ts.map +1 -0
- package/build/ts/browser/joinPoll.js +88 -0
- package/build/ts/browser/joinPoll.js.map +1 -0
- package/build/ts/browser/utils.d.ts +18 -0
- package/build/ts/browser/utils.d.ts.map +1 -0
- package/build/ts/browser/utils.js +37 -0
- package/build/ts/browser/utils.js.map +1 -0
- package/build/ts/deploy/index.d.ts +3 -2
- package/build/ts/deploy/index.d.ts.map +1 -1
- package/build/ts/deploy/index.js +5 -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 +20 -13
- package/build/ts/deploy/poll.js.map +1 -1
- package/build/ts/deploy/types.d.ts +21 -8
- 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 +2 -1
- package/build/ts/index.d.ts.map +1 -1
- package/build/ts/index.js +26 -8
- 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 +41 -2
- package/build/ts/maci/policy.js.map +1 -1
- package/build/ts/maci/state.d.ts +1 -1
- package/build/ts/maci/state.js +11 -11
- 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.d.ts.map +1 -1
- package/build/ts/maciKeys/keypair.js +4 -3
- package/build/ts/maciKeys/keypair.js.map +1 -1
- package/build/ts/maciKeys/publicKeys.d.ts +2 -2
- package/build/ts/maciKeys/publicKeys.d.ts.map +1 -1
- package/build/ts/maciKeys/publicKeys.js +6 -6
- package/build/ts/maciKeys/publicKeys.js.map +1 -1
- package/build/ts/maciKeys/types.d.ts +5 -0
- package/build/ts/maciKeys/types.d.ts.map +1 -1
- package/build/ts/poll/poll.d.ts.map +1 -1
- package/build/ts/poll/poll.js +8 -8
- package/build/ts/poll/poll.js.map +1 -1
- package/build/ts/poll/types.d.ts +6 -7
- package/build/ts/poll/types.d.ts.map +1 -1
- package/build/ts/poll/utils.js +3 -3
- package/build/ts/poll/utils.js.map +1 -1
- package/build/ts/proof/__tests__/download.test.js +7 -4
- package/build/ts/proof/__tests__/download.test.js.map +1 -1
- package/build/ts/proof/download.d.ts +3 -3
- package/build/ts/proof/download.d.ts.map +1 -1
- package/build/ts/proof/download.js +5 -7
- package/build/ts/proof/download.js.map +1 -1
- package/build/ts/proof/generate.d.ts +2 -2
- package/build/ts/proof/generate.d.ts.map +1 -1
- package/build/ts/proof/generate.js +31 -25
- package/build/ts/proof/generate.js.map +1 -1
- package/build/ts/proof/prove.js +16 -16
- package/build/ts/proof/prove.js.map +1 -1
- package/build/ts/proof/types.d.ts +41 -15
- package/build/ts/proof/types.d.ts.map +1 -1
- package/build/ts/proof/utils.d.ts +10 -0
- package/build/ts/proof/utils.d.ts.map +1 -0
- package/build/ts/proof/utils.js +24 -0
- package/build/ts/proof/utils.js.map +1 -0
- package/build/ts/relayer/__tests__/messages.test.js +1 -1
- package/build/ts/relayer/__tests__/messages.test.js.map +1 -1
- package/build/ts/relayer/__tests__/utils.test.js +3 -3
- package/build/ts/relayer/__tests__/utils.test.js.map +1 -1
- package/build/ts/relayer/messages.js +1 -1
- package/build/ts/relayer/utils.js +4 -4
- package/build/ts/relayer/utils.js.map +1 -1
- package/build/ts/subgraph/index.d.ts +3 -0
- package/build/ts/subgraph/index.d.ts.map +1 -0
- package/build/ts/subgraph/index.js +18 -0
- package/build/ts/subgraph/index.js.map +1 -0
- package/build/ts/subgraph/maciSubgraph.d.ts +28 -0
- package/build/ts/subgraph/maciSubgraph.d.ts.map +1 -0
- package/build/ts/subgraph/maciSubgraph.js +62 -0
- package/build/ts/subgraph/maciSubgraph.js.map +1 -0
- package/build/ts/subgraph/types.d.ts +20 -0
- package/build/ts/subgraph/types.d.ts.map +1 -0
- package/build/ts/subgraph/types.js +3 -0
- package/build/ts/subgraph/types.js.map +1 -0
- package/build/ts/tally/commitments.d.ts.map +1 -1
- package/build/ts/tally/commitments.js +8 -7
- package/build/ts/tally/commitments.js.map +1 -1
- package/build/ts/tally/index.d.ts +2 -1
- package/build/ts/tally/index.d.ts.map +1 -1
- package/build/ts/tally/index.js +5 -1
- package/build/ts/tally/index.js.map +1 -1
- package/build/ts/tally/results.d.ts +20 -0
- package/build/ts/tally/results.d.ts.map +1 -0
- package/build/ts/tally/results.js +49 -0
- package/build/ts/tally/results.js.map +1 -0
- package/build/ts/tally/types.d.ts +55 -15
- package/build/ts/tally/types.d.ts.map +1 -1
- package/build/ts/tally/utils.d.ts +3 -3
- package/build/ts/tally/utils.d.ts.map +1 -1
- package/build/ts/tally/utils.js +10 -10
- package/build/ts/tally/utils.js.map +1 -1
- package/build/ts/tally/verification.d.ts +1 -1
- package/build/ts/tally/verification.d.ts.map +1 -1
- package/build/ts/tally/verification.js +10 -10
- package/build/ts/tally/verification.js.map +1 -1
- package/build/ts/trees/index.d.ts +2 -2
- package/build/ts/trees/index.d.ts.map +1 -1
- package/build/ts/trees/index.js +3 -1
- package/build/ts/trees/index.js.map +1 -1
- package/build/ts/trees/stateTree.d.ts +23 -1
- package/build/ts/trees/stateTree.d.ts.map +1 -1
- package/build/ts/trees/stateTree.js +76 -12
- package/build/ts/trees/stateTree.js.map +1 -1
- package/build/ts/trees/types.d.ts +11 -2
- package/build/ts/trees/types.d.ts.map +1 -1
- package/build/ts/user/index.d.ts +4 -2
- package/build/ts/user/index.d.ts.map +1 -1
- package/build/ts/user/index.js +14 -8
- package/build/ts/user/index.js.map +1 -1
- package/build/ts/user/joinPoll.d.ts +8 -0
- package/build/ts/user/joinPoll.d.ts.map +1 -0
- package/build/ts/user/joinPoll.js +84 -0
- package/build/ts/user/joinPoll.js.map +1 -0
- package/build/ts/user/signup.d.ts +20 -0
- package/build/ts/user/signup.d.ts.map +1 -0
- package/build/ts/user/signup.js +84 -0
- package/build/ts/user/signup.js.map +1 -0
- package/build/ts/user/types.d.ts +63 -27
- package/build/ts/user/types.d.ts.map +1 -1
- package/build/ts/user/utils.d.ts +42 -14
- package/build/ts/user/utils.d.ts.map +1 -1
- package/build/ts/user/utils.js +121 -49
- package/build/ts/user/utils.js.map +1 -1
- package/build/ts/utils/params.d.ts +1 -1
- package/build/ts/utils/params.d.ts.map +1 -1
- package/build/ts/utils/params.js +3 -3
- package/build/ts/utils/params.js.map +1 -1
- package/build/ts/utils/proofs.d.ts +2 -2
- package/build/ts/utils/proofs.d.ts.map +1 -1
- package/build/ts/utils/proofs.js +4 -4
- package/build/ts/utils/proofs.js.map +1 -1
- package/build/ts/utils/types.d.ts +2 -2
- package/build/ts/utils/types.d.ts.map +1 -1
- package/build/ts/utils/utils.d.ts +8 -0
- package/build/ts/utils/utils.d.ts.map +1 -1
- package/build/ts/utils/utils.js +14 -1
- package/build/ts/utils/utils.js.map +1 -1
- package/build/ts/verifyingKeys/checkVerifyingKeys.d.ts +1 -1
- package/build/ts/verifyingKeys/checkVerifyingKeys.d.ts.map +1 -1
- package/build/ts/verifyingKeys/checkVerifyingKeys.js +18 -19
- package/build/ts/verifyingKeys/checkVerifyingKeys.js.map +1 -1
- package/build/ts/verifyingKeys/index.d.ts +2 -2
- package/build/ts/verifyingKeys/index.d.ts.map +1 -1
- package/build/ts/verifyingKeys/index.js +5 -5
- package/build/ts/verifyingKeys/index.js.map +1 -1
- package/build/ts/verifyingKeys/setVerifyingKeys.d.ts +1 -1
- package/build/ts/verifyingKeys/setVerifyingKeys.d.ts.map +1 -1
- package/build/ts/verifyingKeys/setVerifyingKeys.js +46 -35
- package/build/ts/verifyingKeys/setVerifyingKeys.js.map +1 -1
- package/build/ts/verifyingKeys/types.d.ts +54 -46
- 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 +76 -60
- package/build/ts/verifyingKeys/utils.js.map +1 -1
- package/build/ts/vote/generate.d.ts +1 -1
- package/build/ts/vote/generate.d.ts.map +1 -1
- package/build/ts/vote/generate.js +4 -4
- package/build/ts/vote/generate.js.map +1 -1
- package/build/ts/vote/index.d.ts +2 -1
- package/build/ts/vote/index.d.ts.map +1 -1
- package/build/ts/vote/index.js +4 -2
- package/build/ts/vote/index.js.map +1 -1
- package/build/ts/vote/invalidate.js +4 -4
- package/build/ts/vote/invalidate.js.map +1 -1
- package/build/ts/vote/publish.d.ts +1 -1
- package/build/ts/vote/publish.d.ts.map +1 -1
- package/build/ts/vote/publish.js +19 -19
- package/build/ts/vote/publish.js.map +1 -1
- package/build/ts/vote/submit.js +5 -5
- 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 +7 -7
- package/build/ts/vote/utils.js.map +1 -1
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +22 -13
- package/build/ts/deploy/vkRegistry.d.ts +0 -7
- package/build/ts/deploy/vkRegistry.d.ts.map +0 -1
- package/build/ts/deploy/vkRegistry.js +0 -14
- package/build/ts/deploy/vkRegistry.js.map +0 -1
- package/build/ts/proof/constants.d.ts +0 -17
- package/build/ts/proof/constants.d.ts.map +0 -1
- package/build/ts/proof/constants.js +0 -20
- package/build/ts/proof/constants.js.map +0 -1
- package/build/ts/user/user.d.ts +0 -42
- package/build/ts/user/user.d.ts.map +0 -1
- package/build/ts/user/user.js +0 -192
- package/build/ts/user/user.js.map +0 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IJoinPollData, IJoinPollArgs } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Join Poll user to the Poll contract
|
|
4
|
+
* @param {IJoinPollArgs} args - The arguments for the join poll command
|
|
5
|
+
* @returns {IJoinPollData} The poll state index of the joined user and transaction hash
|
|
6
|
+
*/
|
|
7
|
+
export declare const joinPoll: ({ maciAddress, privateKey, stateFile, pollId, signer, startBlock, endBlock, blocksPerBatch, pollJoiningZkey, useWasm, rapidsnark, pollWitnessGenerator, pollWasm, sgDataArg, ivcpDataArg, }: IJoinPollArgs) => Promise<IJoinPollData>;
|
|
8
|
+
//# sourceMappingURL=joinPoll.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"joinPoll.d.ts","sourceRoot":"","sources":["../../../ts/user/joinPoll.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAQ5D;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAU,6LAgB5B,aAAa,KAAG,OAAO,CAAC,aAAa,CAmGvC,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.joinPoll = void 0;
|
|
4
|
+
/* eslint-disable no-underscore-dangle */
|
|
5
|
+
const typechain_types_1 = require("@maci-protocol/contracts/typechain-types");
|
|
6
|
+
const crypto_1 = require("@maci-protocol/crypto");
|
|
7
|
+
const domainobjs_1 = require("@maci-protocol/domainobjs");
|
|
8
|
+
const contracts_1 = require("../utils/contracts");
|
|
9
|
+
const proofs_1 = require("../utils/proofs");
|
|
10
|
+
const utils_1 = require("./utils");
|
|
11
|
+
/**
|
|
12
|
+
* Join Poll user to the Poll contract
|
|
13
|
+
* @param {IJoinPollArgs} args - The arguments for the join poll command
|
|
14
|
+
* @returns {IJoinPollData} The poll state index of the joined user and transaction hash
|
|
15
|
+
*/
|
|
16
|
+
const joinPoll = async ({ maciAddress, privateKey, stateFile, pollId, signer, startBlock, endBlock, blocksPerBatch, pollJoiningZkey, useWasm, rapidsnark, pollWitnessGenerator, pollWasm, sgDataArg, ivcpDataArg, }) => {
|
|
17
|
+
const validContract = await (0, contracts_1.contractExists)(signer.provider, maciAddress);
|
|
18
|
+
if (!validContract) {
|
|
19
|
+
throw new Error("MACI contract does not exist");
|
|
20
|
+
}
|
|
21
|
+
if (!domainobjs_1.PrivateKey.isValidSerialized(privateKey)) {
|
|
22
|
+
throw new Error("Invalid MACI private key");
|
|
23
|
+
}
|
|
24
|
+
if (pollId < 0) {
|
|
25
|
+
throw new Error("Invalid poll id");
|
|
26
|
+
}
|
|
27
|
+
const userMaciPrivateKey = domainobjs_1.PrivateKey.deserialize(privateKey);
|
|
28
|
+
const userMaciPublicKey = new domainobjs_1.Keypair(userMaciPrivateKey).publicKey;
|
|
29
|
+
const nullifier = (0, crypto_1.poseidon)([BigInt(userMaciPrivateKey.asCircuitInputs()), pollId]);
|
|
30
|
+
// check if the user has already joined the poll based on the nullifier
|
|
31
|
+
const hasUserJoinedAlready = await (0, utils_1.hasUserJoinedPoll)({
|
|
32
|
+
maciAddress,
|
|
33
|
+
pollId,
|
|
34
|
+
nullifier,
|
|
35
|
+
signer,
|
|
36
|
+
});
|
|
37
|
+
if (hasUserJoinedAlready) {
|
|
38
|
+
throw new Error("User has already joined");
|
|
39
|
+
}
|
|
40
|
+
const maciContract = typechain_types_1.MACI__factory.connect(maciAddress, signer);
|
|
41
|
+
const pollContracts = await maciContract.getPoll(pollId);
|
|
42
|
+
const pollContract = typechain_types_1.Poll__factory.connect(pollContracts.poll, signer);
|
|
43
|
+
// get the state index from the MACI contract
|
|
44
|
+
const stateIndex = await maciContract.getStateIndex(userMaciPublicKey.hash()).catch(() => -1n);
|
|
45
|
+
let circuitInputs;
|
|
46
|
+
if (stateFile) {
|
|
47
|
+
circuitInputs = await (0, utils_1.getPollJoiningCircuitInputsFromStateFile)({
|
|
48
|
+
stateFile,
|
|
49
|
+
pollId,
|
|
50
|
+
stateIndex,
|
|
51
|
+
userMaciPrivateKey,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
circuitInputs = await (0, utils_1.getPollJoiningCircuitEvents)({
|
|
56
|
+
maciContract,
|
|
57
|
+
stateIndex,
|
|
58
|
+
pollId,
|
|
59
|
+
userMaciPrivateKey,
|
|
60
|
+
signer,
|
|
61
|
+
startBlock,
|
|
62
|
+
endBlock,
|
|
63
|
+
blocksPerBatch,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
const currentStateRootIndex = Number.parseInt((await maciContract.totalSignups()).toString(), 10) - 1;
|
|
67
|
+
// generate the proof for this batch
|
|
68
|
+
const proof = await (0, proofs_1.generateAndVerifyProof)(circuitInputs, pollJoiningZkey, useWasm, rapidsnark, pollWitnessGenerator, pollWasm);
|
|
69
|
+
// submit the message onchain as well as the encryption public key
|
|
70
|
+
const tx = await pollContract.joinPoll(nullifier, userMaciPublicKey.asContractParam(), currentStateRootIndex, proof, sgDataArg, ivcpDataArg);
|
|
71
|
+
const receipt = await tx.wait();
|
|
72
|
+
if (receipt?.status !== 1) {
|
|
73
|
+
throw new Error("Transaction failed");
|
|
74
|
+
}
|
|
75
|
+
const [{ args }] = await pollContract.queryFilter(pollContract.filters.PollJoined, receipt.blockNumber, receipt.blockNumber);
|
|
76
|
+
return {
|
|
77
|
+
pollStateIndex: args._pollStateIndex.toString(),
|
|
78
|
+
voiceCredits: args._voiceCreditBalance.toString(),
|
|
79
|
+
nullifier: nullifier.toString(),
|
|
80
|
+
hash: receipt.hash,
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
exports.joinPoll = joinPoll;
|
|
84
|
+
//# sourceMappingURL=joinPoll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"joinPoll.js","sourceRoot":"","sources":["../../../ts/user/joinPoll.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IIsRegisteredUser, ISignupArgs, ISignupData, IRegisteredUserArgs, IHasUserSignedUpArgs } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Checks if user is registered with a given public key and get its data
|
|
4
|
+
* @param IRegisteredArgs - The arguments for the check register command
|
|
5
|
+
* @returns whether the user is registered or not and their state index
|
|
6
|
+
*/
|
|
7
|
+
export declare const getSignedupUserData: ({ maciAddress, maciPublicKey, signer, }: IRegisteredUserArgs) => Promise<IIsRegisteredUser>;
|
|
8
|
+
/**
|
|
9
|
+
* Signup a user to the MACI contract
|
|
10
|
+
* @param {SignupArgs} args - The arguments for the signup command
|
|
11
|
+
* @returns {ISignupData} The state index of the user and transaction hash
|
|
12
|
+
*/
|
|
13
|
+
export declare const signup: ({ maciPublicKey, maciAddress, sgData, signer }: ISignupArgs) => Promise<ISignupData>;
|
|
14
|
+
/**
|
|
15
|
+
* Checks if a user is signed up with a given public key
|
|
16
|
+
* @param {IIsSignedUpArgs} args - The arguments for the is signed up command
|
|
17
|
+
* @returns {boolean} Whether the user is signed up or not
|
|
18
|
+
*/
|
|
19
|
+
export declare const hasUserSignedUp: ({ maciAddress, maciPublicKey, signer, }: IHasUserSignedUpArgs) => Promise<boolean>;
|
|
20
|
+
//# sourceMappingURL=signup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signup.d.ts","sourceRoot":"","sources":["../../../ts/user/signup.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAItH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAU,yCAIvC,mBAAmB,KAAG,OAAO,CAAC,iBAAiB,CAsBjD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAU,gDAAgD,WAAW,KAAG,OAAO,CAAC,WAAW,CA6C7G,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAU,yCAInC,oBAAoB,KAAG,OAAO,CAAC,OAAO,CAMxC,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hasUserSignedUp = exports.signup = exports.getSignedupUserData = void 0;
|
|
4
|
+
const typechain_types_1 = require("@maci-protocol/contracts/typechain-types");
|
|
5
|
+
const domainobjs_1 = require("@maci-protocol/domainobjs");
|
|
6
|
+
const ethers_1 = require("ethers");
|
|
7
|
+
const contracts_1 = require("../utils/contracts");
|
|
8
|
+
/**
|
|
9
|
+
* Checks if user is registered with a given public key and get its data
|
|
10
|
+
* @param IRegisteredArgs - The arguments for the check register command
|
|
11
|
+
* @returns whether the user is registered or not and their state index
|
|
12
|
+
*/
|
|
13
|
+
const getSignedupUserData = async ({ maciAddress, maciPublicKey, signer, }) => {
|
|
14
|
+
const maciContract = typechain_types_1.MACI__factory.connect(maciAddress, signer);
|
|
15
|
+
const publicKey = domainobjs_1.PublicKey.deserialize(maciPublicKey);
|
|
16
|
+
try {
|
|
17
|
+
const stateIndex = await maciContract.getStateIndex(publicKey.hash());
|
|
18
|
+
return {
|
|
19
|
+
isRegistered: stateIndex !== 0n, // 0 index is reserved for deleted leaves
|
|
20
|
+
stateIndex: String(stateIndex),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
// Check if this is a "UserNotSignedUp" maci contract error
|
|
25
|
+
if (error instanceof Error && error.message.includes("UserNotSignedUp()")) {
|
|
26
|
+
return {
|
|
27
|
+
isRegistered: false,
|
|
28
|
+
stateIndex: undefined,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
// If it's a different error, rethrow it
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.getSignedupUserData = getSignedupUserData;
|
|
36
|
+
/**
|
|
37
|
+
* Signup a user to the MACI contract
|
|
38
|
+
* @param {SignupArgs} args - The arguments for the signup command
|
|
39
|
+
* @returns {ISignupData} The state index of the user and transaction hash
|
|
40
|
+
*/
|
|
41
|
+
const signup = async ({ maciPublicKey, maciAddress, sgData, signer }) => {
|
|
42
|
+
// validate user key
|
|
43
|
+
if (!domainobjs_1.PublicKey.isValidSerialized(maciPublicKey)) {
|
|
44
|
+
throw new Error("Invalid MACI public key");
|
|
45
|
+
}
|
|
46
|
+
const userMaciPublicKey = domainobjs_1.PublicKey.deserialize(maciPublicKey);
|
|
47
|
+
const validContract = await (0, contracts_1.contractExists)(signer.provider, maciAddress);
|
|
48
|
+
if (!validContract) {
|
|
49
|
+
throw new Error("There is no contract deployed at the specified address");
|
|
50
|
+
}
|
|
51
|
+
// we validate that the signup data and voice credit data is valid
|
|
52
|
+
if (!(0, ethers_1.isBytesLike)(sgData)) {
|
|
53
|
+
throw new Error("invalid signup gateway data");
|
|
54
|
+
}
|
|
55
|
+
const maciContract = typechain_types_1.MACI__factory.connect(maciAddress, signer);
|
|
56
|
+
let stateIndex = "";
|
|
57
|
+
let receipt = null;
|
|
58
|
+
// sign up to the MACI contract
|
|
59
|
+
const tx = await maciContract.signUp(userMaciPublicKey.asContractParam(), sgData);
|
|
60
|
+
receipt = await tx.wait();
|
|
61
|
+
if (receipt?.status !== 1) {
|
|
62
|
+
throw new Error("The transaction failed");
|
|
63
|
+
}
|
|
64
|
+
// get state index from the event
|
|
65
|
+
const [{ args = [] } = { args: [] }] = await maciContract.queryFilter(maciContract.filters.SignUp, receipt.blockNumber, receipt.blockNumber);
|
|
66
|
+
stateIndex = args[0].toString();
|
|
67
|
+
return {
|
|
68
|
+
stateIndex: stateIndex ? stateIndex.toString() : "",
|
|
69
|
+
transactionHash: receipt.hash,
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
exports.signup = signup;
|
|
73
|
+
/**
|
|
74
|
+
* Checks if a user is signed up with a given public key
|
|
75
|
+
* @param {IIsSignedUpArgs} args - The arguments for the is signed up command
|
|
76
|
+
* @returns {boolean} Whether the user is signed up or not
|
|
77
|
+
*/
|
|
78
|
+
const hasUserSignedUp = async ({ maciAddress, maciPublicKey, signer, }) => {
|
|
79
|
+
const maciContract = typechain_types_1.MACI__factory.connect(maciAddress, signer);
|
|
80
|
+
const stateIndex = await maciContract.getStateIndex(domainobjs_1.PublicKey.deserialize(maciPublicKey).hash());
|
|
81
|
+
return stateIndex !== 0n;
|
|
82
|
+
};
|
|
83
|
+
exports.hasUserSignedUp = hasUserSignedUp;
|
|
84
|
+
//# sourceMappingURL=signup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signup.js","sourceRoot":"","sources":["../../../ts/user/signup.ts"],"names":[],"mappings":"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"}
|
package/build/ts/user/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { LeanIMTMerkleProof } from "@zk-kit/lean-imt";
|
|
1
2
|
import type { MACI, Poll } from "@maci-protocol/contracts/typechain-types";
|
|
2
|
-
import type {
|
|
3
|
+
import type { PrivateKey, PublicKey } from "@maci-protocol/domainobjs";
|
|
3
4
|
import type { Signer } from "ethers";
|
|
4
5
|
/**
|
|
5
6
|
* Interface for the arguments to the isJoinedUser command
|
|
@@ -16,7 +17,7 @@ export interface IJoinedUserArgs {
|
|
|
16
17
|
/**
|
|
17
18
|
* Poll public key for the poll
|
|
18
19
|
*/
|
|
19
|
-
|
|
20
|
+
pollPublicKey: string;
|
|
20
21
|
/**
|
|
21
22
|
* A signer object
|
|
22
23
|
*/
|
|
@@ -63,7 +64,7 @@ export interface ISignupArgs {
|
|
|
63
64
|
/**
|
|
64
65
|
* The public key of the user
|
|
65
66
|
*/
|
|
66
|
-
|
|
67
|
+
maciPublicKey: string;
|
|
67
68
|
/**
|
|
68
69
|
* A signer object
|
|
69
70
|
*/
|
|
@@ -101,7 +102,7 @@ export interface IRegisteredUserArgs {
|
|
|
101
102
|
/**
|
|
102
103
|
* The public key of the user
|
|
103
104
|
*/
|
|
104
|
-
|
|
105
|
+
maciPublicKey: string;
|
|
105
106
|
/**
|
|
106
107
|
* The address of the MACI contract
|
|
107
108
|
*/
|
|
@@ -130,7 +131,7 @@ export interface IParsePollJoinEventsArgs {
|
|
|
130
131
|
/**
|
|
131
132
|
* The public key
|
|
132
133
|
*/
|
|
133
|
-
pollPublicKey:
|
|
134
|
+
pollPublicKey: PublicKey;
|
|
134
135
|
}
|
|
135
136
|
/**
|
|
136
137
|
* Interface for the arguments to the parseSignupEvents function
|
|
@@ -151,7 +152,7 @@ export interface IParseSignupEventsArgs {
|
|
|
151
152
|
/**
|
|
152
153
|
* The public key
|
|
153
154
|
*/
|
|
154
|
-
publicKey:
|
|
155
|
+
publicKey: PublicKey;
|
|
155
156
|
}
|
|
156
157
|
/**
|
|
157
158
|
* An interface describing the circuit inputs to the PollJoining circuit
|
|
@@ -160,11 +161,11 @@ export interface IPollJoiningCircuitInputs {
|
|
|
160
161
|
/**
|
|
161
162
|
* The private key
|
|
162
163
|
*/
|
|
163
|
-
|
|
164
|
+
privateKey: string;
|
|
164
165
|
/**
|
|
165
166
|
* The poll public key
|
|
166
167
|
*/
|
|
167
|
-
|
|
168
|
+
pollPublicKey: string[];
|
|
168
169
|
/**
|
|
169
170
|
* The state leaf
|
|
170
171
|
*/
|
|
@@ -201,15 +202,11 @@ export interface IPollJoinedCircuitInputs {
|
|
|
201
202
|
/**
|
|
202
203
|
* The private key
|
|
203
204
|
*/
|
|
204
|
-
|
|
205
|
+
privateKey: string;
|
|
205
206
|
/**
|
|
206
207
|
* The voice credits balance
|
|
207
208
|
*/
|
|
208
209
|
voiceCreditsBalance: string;
|
|
209
|
-
/**
|
|
210
|
-
* The join timestamp
|
|
211
|
-
*/
|
|
212
|
-
joinTimestamp: string;
|
|
213
210
|
/**
|
|
214
211
|
* The state leaf
|
|
215
212
|
*/
|
|
@@ -248,11 +245,7 @@ export interface IJoinPollArgs {
|
|
|
248
245
|
*/
|
|
249
246
|
pollId: bigint;
|
|
250
247
|
/**
|
|
251
|
-
*
|
|
252
|
-
*/
|
|
253
|
-
stateIndex?: bigint;
|
|
254
|
-
/**
|
|
255
|
-
* Path to the state file with MACI state
|
|
248
|
+
* Path to the state file with MACI state. Not available in the browser's SDK
|
|
256
249
|
*/
|
|
257
250
|
stateFile?: string;
|
|
258
251
|
/**
|
|
@@ -284,9 +277,9 @@ export interface IJoinPollArgs {
|
|
|
284
277
|
*/
|
|
285
278
|
rapidsnark?: string;
|
|
286
279
|
/**
|
|
287
|
-
* The path to the poll
|
|
280
|
+
* The path to the poll witness generator binary
|
|
288
281
|
*/
|
|
289
|
-
|
|
282
|
+
pollWitnessGenerator?: string;
|
|
290
283
|
/**
|
|
291
284
|
* The path to the poll wasm file
|
|
292
285
|
*/
|
|
@@ -300,6 +293,19 @@ export interface IJoinPollArgs {
|
|
|
300
293
|
*/
|
|
301
294
|
ivcpDataArg: string;
|
|
302
295
|
}
|
|
296
|
+
/**
|
|
297
|
+
* Interface for the arguments to the joinPoll command for the browser
|
|
298
|
+
*/
|
|
299
|
+
export interface IJoinPollBrowserArgs extends IJoinPollArgs {
|
|
300
|
+
/**
|
|
301
|
+
* Whether to use of not the latest state index
|
|
302
|
+
*/
|
|
303
|
+
useLatestStateIndex?: boolean;
|
|
304
|
+
/**
|
|
305
|
+
* The inclusion proof
|
|
306
|
+
*/
|
|
307
|
+
inclusionProof?: LeanIMTMerkleProof;
|
|
308
|
+
}
|
|
303
309
|
/**
|
|
304
310
|
* Interface for the return data to the joinPoll command
|
|
305
311
|
*/
|
|
@@ -312,10 +318,6 @@ export interface IJoinPollData {
|
|
|
312
318
|
* Voice credits balance
|
|
313
319
|
*/
|
|
314
320
|
voiceCredits: string;
|
|
315
|
-
/**
|
|
316
|
-
* Joining poll timestamp
|
|
317
|
-
*/
|
|
318
|
-
timestamp: string;
|
|
319
321
|
/**
|
|
320
322
|
* Private key nullifier
|
|
321
323
|
*/
|
|
@@ -346,6 +348,40 @@ export interface IIsNullifierOnChainArgs {
|
|
|
346
348
|
*/
|
|
347
349
|
signer: Signer;
|
|
348
350
|
}
|
|
351
|
+
/**
|
|
352
|
+
* Arguments for IGenerateMaciStateTreeArgs
|
|
353
|
+
*/
|
|
354
|
+
export interface IGenerateMaciStateTreeArgs {
|
|
355
|
+
/**
|
|
356
|
+
* The MACI contract address
|
|
357
|
+
*/
|
|
358
|
+
maciContractAddress: string;
|
|
359
|
+
/**
|
|
360
|
+
* The signer
|
|
361
|
+
*/
|
|
362
|
+
signer: Signer;
|
|
363
|
+
/**
|
|
364
|
+
* The start block
|
|
365
|
+
*/
|
|
366
|
+
startBlock?: number;
|
|
367
|
+
/**
|
|
368
|
+
* The end block
|
|
369
|
+
*/
|
|
370
|
+
endBlock?: number;
|
|
371
|
+
/**
|
|
372
|
+
* The blocks per batch
|
|
373
|
+
*/
|
|
374
|
+
blocksPerBatch?: number;
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Arguments for IGenerateMaciStateTreeWithEndKeyArgs
|
|
378
|
+
*/
|
|
379
|
+
export interface IGenerateMaciStateTreeWithEndKeyArgs extends IGenerateMaciStateTreeArgs {
|
|
380
|
+
/**
|
|
381
|
+
* The public key of the user
|
|
382
|
+
*/
|
|
383
|
+
userPublicKey: PublicKey;
|
|
384
|
+
}
|
|
349
385
|
/**
|
|
350
386
|
* Arguments for getPollJoiningCircuitEvents
|
|
351
387
|
*/
|
|
@@ -365,7 +401,7 @@ export interface IGetPollJoiningCircuitEventsArgs {
|
|
|
365
401
|
/**
|
|
366
402
|
* The user's maci private key
|
|
367
403
|
*/
|
|
368
|
-
|
|
404
|
+
userMaciPrivateKey: PrivateKey;
|
|
369
405
|
/**
|
|
370
406
|
* The signer
|
|
371
407
|
*/
|
|
@@ -402,7 +438,7 @@ export interface IGetPollJoiningCircuitInputsFromStateFileArgs {
|
|
|
402
438
|
/**
|
|
403
439
|
* The user's maci private key
|
|
404
440
|
*/
|
|
405
|
-
|
|
441
|
+
userMaciPrivateKey: PrivateKey;
|
|
406
442
|
}
|
|
407
443
|
/**
|
|
408
444
|
* Interface for the arguments for the is signed up command
|
|
@@ -415,7 +451,7 @@ export interface IHasUserSignedUpArgs {
|
|
|
415
451
|
/**
|
|
416
452
|
* The public key of the user
|
|
417
453
|
*/
|
|
418
|
-
|
|
454
|
+
maciPublicKey: string;
|
|
419
455
|
/**
|
|
420
456
|
* The signer to use for the transaction
|
|
421
457
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/user/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/user/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,YAAY,EAAE,IAAI,CAAC;IAEnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,EAAE,SAAS,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,YAAY,EAAE,IAAI,CAAC;IAEnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IAExB;;OAEG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;IAEzB;;OAEG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oCAAqC,SAAQ,0BAA0B;IACtF;;OAEG;IACH,aAAa,EAAE,SAAS,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,YAAY,EAAE,IAAI,CAAC;IAEnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,kBAAkB,EAAE,UAAU,CAAC;IAE/B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,6CAA6C;IAC5D;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,kBAAkB,EAAE,UAAU,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
package/build/ts/user/utils.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { IGetPollJoiningCircuitEventsArgs, IGetPollJoiningCircuitInputsFromStateFileArgs, IParsePollJoinEventsArgs, IParseSignupEventsArgs,
|
|
3
|
-
import { IGenerateSignUpTree } from "../trees";
|
|
4
|
-
import {
|
|
1
|
+
import { PrivateKey, PublicKey } from "@maci-protocol/domainobjs";
|
|
2
|
+
import type { IGetPollJoiningCircuitEventsArgs, IGetPollJoiningCircuitInputsFromStateFileArgs, IParsePollJoinEventsArgs, IParseSignupEventsArgs, IJoinedUserArgs, IIsNullifierOnChainArgs, IGenerateMaciStateTreeArgs, IGenerateMaciStateTreeWithEndKeyArgs } from "./types";
|
|
3
|
+
import type { IGenerateSignUpTree } from "../trees/types";
|
|
4
|
+
import type { TCircuitInputs } from "../utils/types";
|
|
5
|
+
import type { LeanIMTMerkleProof } from "@zk-kit/lean-imt";
|
|
5
6
|
/**
|
|
6
7
|
* Parse the poll joining events from the Poll contract
|
|
7
8
|
*/
|
|
@@ -9,6 +10,22 @@ export declare const parsePollJoinEvents: ({ pollContract, startBlock, currentBl
|
|
|
9
10
|
pollStateIndex?: string;
|
|
10
11
|
voiceCredits?: string;
|
|
11
12
|
}>;
|
|
13
|
+
/**
|
|
14
|
+
* Checks if user is joined to a poll with their public key and get its data
|
|
15
|
+
* @param {IJoinedUserArgs} - The arguments for the join check command
|
|
16
|
+
* @returns user joined or not and poll state index, voice credit balance
|
|
17
|
+
*/
|
|
18
|
+
export declare const getJoinedUserData: ({ maciAddress, pollId, pollPublicKey: serializedPollPublicKey, signer, startBlock, }: IJoinedUserArgs) => Promise<{
|
|
19
|
+
isJoined: boolean;
|
|
20
|
+
pollStateIndex?: string;
|
|
21
|
+
voiceCredits?: string;
|
|
22
|
+
}>;
|
|
23
|
+
/**
|
|
24
|
+
* Checks if a user joined a poll with a given nullifier
|
|
25
|
+
* @param {IIsNullifierOnChainArgs} args - The arguments for the is nullifier on chain command
|
|
26
|
+
* @returns whether the nullifier is on chain or not
|
|
27
|
+
*/
|
|
28
|
+
export declare const hasUserJoinedPoll: ({ maciAddress, pollId, nullifier, signer, }: IIsNullifierOnChainArgs) => Promise<boolean>;
|
|
12
29
|
/**
|
|
13
30
|
* Parse the signup events from the MACI contract
|
|
14
31
|
*/
|
|
@@ -17,30 +34,41 @@ export declare const parseSignupEvents: ({ maciContract, startBlock, currentBloc
|
|
|
17
34
|
}>;
|
|
18
35
|
/**
|
|
19
36
|
* Get state index from maci state leaves or from sign up leaves
|
|
20
|
-
* @param
|
|
21
|
-
* @param
|
|
37
|
+
* @param publicKeys Public keys from maci state or sign up tree
|
|
38
|
+
* @param userMaciPublicKey Public key of the maci user
|
|
22
39
|
* @param stateIndex State index from the command
|
|
23
40
|
* @returns State index
|
|
24
41
|
*/
|
|
25
|
-
export declare const getStateIndex: (
|
|
42
|
+
export declare const getStateIndex: (publicKeys: PublicKey[], userMaciPublicKey: PublicKey, stateIndex?: bigint) => bigint | undefined;
|
|
26
43
|
/**
|
|
27
44
|
* Create circuit input for pollJoining
|
|
28
45
|
* @param signUpData Sign up tree and state leaves
|
|
29
46
|
* @param stateTreeDepth Maci state tree depth
|
|
30
|
-
* @param
|
|
31
|
-
* @param
|
|
32
|
-
* @param
|
|
33
|
-
* @param pollPubKey Poll's public key for the poll joining
|
|
47
|
+
* @param maciPrivateKey User's private key for signing up
|
|
48
|
+
* @param pollPrivateKey Poll's private key for the poll joining
|
|
49
|
+
* @param pollPublicKey Poll's public key for the poll joining
|
|
34
50
|
* @param pollId Poll's id
|
|
35
51
|
* @returns stringified circuit inputs
|
|
36
52
|
*/
|
|
37
|
-
export declare const joiningCircuitInputs: (
|
|
53
|
+
export declare const joiningCircuitInputs: (inclusionProof: LeanIMTMerkleProof, stateTreeDepth: bigint, maciPrivateKey: PrivateKey, pollPublicKey: PublicKey, pollId: bigint) => TCircuitInputs;
|
|
38
54
|
/**
|
|
39
55
|
* Get the poll joining circuit inputs from a state file
|
|
40
56
|
* @param stateFile - The path to the state file
|
|
41
57
|
* @returns The poll joining circuit inputs
|
|
42
58
|
*/
|
|
43
|
-
export declare const getPollJoiningCircuitInputsFromStateFile: ({ stateFile, pollId, stateIndex,
|
|
59
|
+
export declare const getPollJoiningCircuitInputsFromStateFile: ({ stateFile, pollId, stateIndex, userMaciPrivateKey, }: IGetPollJoiningCircuitInputsFromStateFileArgs) => Promise<TCircuitInputs>;
|
|
60
|
+
/**
|
|
61
|
+
* Generate MACI's state tree from the MACI contract
|
|
62
|
+
* @param {IGenerateMaciStateTreeArgs} args - The arguments for the generate maci state tree command
|
|
63
|
+
* @returns The MACI's state tree
|
|
64
|
+
*/
|
|
65
|
+
export declare const generateMaciStateTree: ({ maciContractAddress, signer, startBlock, endBlock, blocksPerBatch, }: IGenerateMaciStateTreeArgs) => Promise<IGenerateSignUpTree>;
|
|
66
|
+
/**
|
|
67
|
+
* Generate MACI's state tree from the MACI contract with a given end key
|
|
68
|
+
* @param {IGenerateMaciStateTreeWithEndKeyArgs} args - The arguments for the generate maci state tree command
|
|
69
|
+
* @returns The MACI's state tree
|
|
70
|
+
*/
|
|
71
|
+
export declare const generateMaciStateTreeWithEndKey: ({ maciContractAddress, signer, startBlock, endBlock, blocksPerBatch, userPublicKey, }: IGenerateMaciStateTreeWithEndKeyArgs) => Promise<IGenerateSignUpTree>;
|
|
44
72
|
/**
|
|
45
73
|
* Get the poll joining circuit events from a state file
|
|
46
74
|
* @param maciContract - The MACI contract
|
|
@@ -48,5 +76,5 @@ export declare const getPollJoiningCircuitInputsFromStateFile: ({ stateFile, pol
|
|
|
48
76
|
* @param signer - The signer
|
|
49
77
|
* @returns The poll joining circuit events
|
|
50
78
|
*/
|
|
51
|
-
export declare const getPollJoiningCircuitEvents: ({ maciContract, stateIndex, pollId,
|
|
79
|
+
export declare const getPollJoiningCircuitEvents: ({ maciContract, stateIndex, pollId, userMaciPrivateKey, signer, startBlock, endBlock, blocksPerBatch, }: IGetPollJoiningCircuitEventsArgs) => Promise<TCircuitInputs>;
|
|
52
80
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/user/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/user/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAW,UAAU,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAI3E,OAAO,KAAK,EACV,gCAAgC,EAChC,6CAA6C,EAC7C,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,0BAA0B,EAC1B,oCAAoC,EACrC,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAK3D;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAAU,4DAKvC,wBAAwB,KAAG,OAAO,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAyBA,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAU,sFAMrC,eAAe,KAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAqBjG,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAU,6CAKrC,uBAAuB,KAAG,OAAO,CAAC,OAAO,CAM3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAU,wDAKrC,sBAAsB,KAAG,OAAO,CAAC;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAsB1D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GACxB,YAAY,SAAS,EAAE,EACvB,mBAAmB,SAAS,EAC5B,aAAa,MAAM,KAClB,MAAM,GAAG,SAYX,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,GAC/B,gBAAgB,kBAAkB,EAClC,gBAAgB,MAAM,EACtB,gBAAgB,UAAU,EAC1B,eAAe,SAAS,EACxB,QAAQ,MAAM,KACb,cA0CF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wCAAwC,GAAU,wDAK5D,6CAA6C,KAAG,OAAO,CAAC,cAAc,CAwBxE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAU,wEAMzC,0BAA0B,KAAG,OAAO,CAAC,mBAAmB,CAkB1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,GAAU,uFAOnD,oCAAoC,KAAG,OAAO,CAAC,mBAAmB,CAkBpE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,GAAU,yGAS/C,gCAAgC,KAAG,OAAO,CAAC,cAAc,CAkC3D,CAAC"}
|