@maci-protocol/sdk 0.0.0-ci.c74cc8b → 0.0.0-ci.cf26211

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.
Files changed (85) hide show
  1. package/build/package.json +2 -1
  2. package/build/ts/browser/index.d.ts +5 -7
  3. package/build/ts/browser/index.d.ts.map +1 -1
  4. package/build/ts/browser/index.js +11 -20
  5. package/build/ts/browser/index.js.map +1 -1
  6. package/build/ts/browser/joinPoll.d.ts +8 -0
  7. package/build/ts/browser/joinPoll.d.ts.map +1 -0
  8. package/build/ts/browser/joinPoll.js +84 -0
  9. package/build/ts/browser/joinPoll.js.map +1 -0
  10. package/build/ts/browser/utils.d.ts +18 -0
  11. package/build/ts/browser/utils.d.ts.map +1 -0
  12. package/build/ts/browser/utils.js +37 -0
  13. package/build/ts/browser/utils.js.map +1 -0
  14. package/build/ts/deploy/poll.d.ts +1 -1
  15. package/build/ts/deploy/poll.d.ts.map +1 -1
  16. package/build/ts/deploy/poll.js +13 -6
  17. package/build/ts/deploy/poll.js.map +1 -1
  18. package/build/ts/deploy/types.d.ts +12 -0
  19. package/build/ts/deploy/types.d.ts.map +1 -1
  20. package/build/ts/maci/policy.d.ts +13 -1
  21. package/build/ts/maci/policy.d.ts.map +1 -1
  22. package/build/ts/maci/policy.js +41 -2
  23. package/build/ts/maci/policy.js.map +1 -1
  24. package/build/ts/maci/state.js +3 -3
  25. package/build/ts/maci/state.js.map +1 -1
  26. package/build/ts/maci/types.d.ts +33 -1
  27. package/build/ts/maci/types.d.ts.map +1 -1
  28. package/build/ts/maci/types.js +2 -0
  29. package/build/ts/maci/types.js.map +1 -1
  30. package/build/ts/poll/types.d.ts +0 -1
  31. package/build/ts/poll/types.d.ts.map +1 -1
  32. package/build/ts/poll/utils.js +3 -3
  33. package/build/ts/poll/utils.js.map +1 -1
  34. package/build/ts/proof/generate.js +2 -2
  35. package/build/ts/proof/generate.js.map +1 -1
  36. package/build/ts/proof/prove.js +5 -5
  37. package/build/ts/proof/prove.js.map +1 -1
  38. package/build/ts/proof/types.d.ts +1 -1
  39. package/build/ts/proof/types.d.ts.map +1 -1
  40. package/build/ts/relayer/utils.js +3 -3
  41. package/build/ts/relayer/utils.js.map +1 -1
  42. package/build/ts/trees/stateTree.js +7 -4
  43. package/build/ts/trees/stateTree.js.map +1 -1
  44. package/build/ts/user/index.d.ts +3 -1
  45. package/build/ts/user/index.d.ts.map +1 -1
  46. package/build/ts/user/index.js +10 -8
  47. package/build/ts/user/index.js.map +1 -1
  48. package/build/ts/user/joinPoll.d.ts +8 -0
  49. package/build/ts/user/joinPoll.d.ts.map +1 -0
  50. package/build/ts/user/joinPoll.js +84 -0
  51. package/build/ts/user/joinPoll.js.map +1 -0
  52. package/build/ts/user/signup.d.ts +20 -0
  53. package/build/ts/user/signup.d.ts.map +1 -0
  54. package/build/ts/user/signup.js +79 -0
  55. package/build/ts/user/signup.js.map +1 -0
  56. package/build/ts/user/types.d.ts +0 -8
  57. package/build/ts/user/types.d.ts.map +1 -1
  58. package/build/ts/user/utils.d.ts +19 -3
  59. package/build/ts/user/utils.d.ts.map +1 -1
  60. package/build/ts/user/utils.js +43 -5
  61. package/build/ts/user/utils.js.map +1 -1
  62. package/build/ts/utils/utils.d.ts +8 -0
  63. package/build/ts/utils/utils.d.ts.map +1 -1
  64. package/build/ts/utils/utils.js +14 -1
  65. package/build/ts/utils/utils.js.map +1 -1
  66. package/build/ts/verifyingKeys/setVerifyingKeys.d.ts +1 -1
  67. package/build/ts/verifyingKeys/setVerifyingKeys.d.ts.map +1 -1
  68. package/build/ts/verifyingKeys/setVerifyingKeys.js +15 -3
  69. package/build/ts/verifyingKeys/setVerifyingKeys.js.map +1 -1
  70. package/build/ts/verifyingKeys/types.d.ts +4 -0
  71. package/build/ts/verifyingKeys/types.d.ts.map +1 -1
  72. package/build/ts/verifyingKeys/utils.d.ts +1 -1
  73. package/build/ts/verifyingKeys/utils.d.ts.map +1 -1
  74. package/build/ts/verifyingKeys/utils.js +2 -1
  75. package/build/ts/verifyingKeys/utils.js.map +1 -1
  76. package/build/ts/vote/submit.js +3 -3
  77. package/build/ts/vote/submit.js.map +1 -1
  78. package/build/ts/vote/utils.js +2 -2
  79. package/build/ts/vote/utils.js.map +1 -1
  80. package/build/tsconfig.build.tsbuildinfo +1 -1
  81. package/package.json +8 -7
  82. package/build/ts/user/user.d.ts +0 -42
  83. package/build/ts/user/user.d.ts.map +0 -1
  84. package/build/ts/user/user.js +0 -192
  85. package/build/ts/user/user.js.map +0 -1
@@ -41,7 +41,8 @@
41
41
  "@maci-protocol/core": "^3.0.0",
42
42
  "@maci-protocol/crypto": "^3.0.0",
43
43
  "@maci-protocol/domainobjs": "^3.0.0",
44
- "multiformats": "9.9.0"
44
+ "multiformats": "9.9.0",
45
+ "snarkjs": "^0.7.5"
45
46
  },
46
47
  "devDependencies": {
47
48
  "@types/jest": "^29.5.2",
@@ -1,15 +1,13 @@
1
- export * from "../verifyingKeys";
2
- export * from "../maci";
3
- export * from "../relayer";
4
1
  export * from "../poll";
5
- export * from "../proof";
2
+ export * from "../proof/download";
3
+ export * from "../proof/types";
6
4
  export * from "../tally";
7
5
  export * from "../trees";
8
6
  export * from "../vote";
9
- export * from "../utils";
10
- export * from "../user";
11
7
  export * from "../maciKeys";
12
- export { EMode, EContracts, EPolicies, EInitialVoiceCreditProxies, extractVk, genProofSnarkjs, formatProofForVerifierContract, verifyProof, cleanThreads, unlinkFile, getBlockTimestamp, genEmptyBallotRoots, } from "@maci-protocol/contracts";
8
+ export { getSignedupUserData, signup, hasUserSignedUp } from "../user/signup";
9
+ export { getJoinedUserData, hasUserJoinedPoll } from "../user/utils";
10
+ export * from "./joinPoll";
13
11
  export type { FullProveResult, IDeployParams, IMergeParams, IProveParams, IVerifyingKeyStruct, SnarkProof, IIpfsMessage, } from "@maci-protocol/contracts";
14
12
  export * from "@maci-protocol/contracts/typechain-types";
15
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,KAAK,EACL,UAAU,EACV,SAAS,EACT,0BAA0B,EAC1B,SAAS,EACT,eAAe,EACf,8BAA8B,EAC9B,WAAW,EACX,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,YAAY,GACb,MAAM,0BAA0B,CAAC;AAElC,cAAc,0CAA0C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAErE,cAAc,YAAY,CAAC;AAE3B,YAAY,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,UAAU,EACV,YAAY,GACb,MAAM,0BAA0B,CAAC;AAElC,cAAc,0CAA0C,CAAC"}
@@ -14,30 +14,21 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.genEmptyBallotRoots = exports.getBlockTimestamp = exports.unlinkFile = exports.cleanThreads = exports.verifyProof = exports.formatProofForVerifierContract = exports.genProofSnarkjs = exports.extractVk = exports.EInitialVoiceCreditProxies = exports.EPolicies = exports.EContracts = exports.EMode = void 0;
18
- __exportStar(require("../verifyingKeys"), exports);
19
- __exportStar(require("../maci"), exports);
20
- __exportStar(require("../relayer"), exports);
17
+ exports.hasUserJoinedPoll = exports.getJoinedUserData = exports.hasUserSignedUp = exports.signup = exports.getSignedupUserData = void 0;
21
18
  __exportStar(require("../poll"), exports);
22
- __exportStar(require("../proof"), exports);
19
+ __exportStar(require("../proof/download"), exports);
20
+ __exportStar(require("../proof/types"), exports);
23
21
  __exportStar(require("../tally"), exports);
24
22
  __exportStar(require("../trees"), exports);
25
23
  __exportStar(require("../vote"), exports);
26
- __exportStar(require("../utils"), exports);
27
- __exportStar(require("../user"), exports);
28
24
  __exportStar(require("../maciKeys"), exports);
29
- var contracts_1 = require("@maci-protocol/contracts");
30
- Object.defineProperty(exports, "EMode", { enumerable: true, get: function () { return contracts_1.EMode; } });
31
- Object.defineProperty(exports, "EContracts", { enumerable: true, get: function () { return contracts_1.EContracts; } });
32
- Object.defineProperty(exports, "EPolicies", { enumerable: true, get: function () { return contracts_1.EPolicies; } });
33
- Object.defineProperty(exports, "EInitialVoiceCreditProxies", { enumerable: true, get: function () { return contracts_1.EInitialVoiceCreditProxies; } });
34
- Object.defineProperty(exports, "extractVk", { enumerable: true, get: function () { return contracts_1.extractVk; } });
35
- Object.defineProperty(exports, "genProofSnarkjs", { enumerable: true, get: function () { return contracts_1.genProofSnarkjs; } });
36
- Object.defineProperty(exports, "formatProofForVerifierContract", { enumerable: true, get: function () { return contracts_1.formatProofForVerifierContract; } });
37
- Object.defineProperty(exports, "verifyProof", { enumerable: true, get: function () { return contracts_1.verifyProof; } });
38
- Object.defineProperty(exports, "cleanThreads", { enumerable: true, get: function () { return contracts_1.cleanThreads; } });
39
- Object.defineProperty(exports, "unlinkFile", { enumerable: true, get: function () { return contracts_1.unlinkFile; } });
40
- Object.defineProperty(exports, "getBlockTimestamp", { enumerable: true, get: function () { return contracts_1.getBlockTimestamp; } });
41
- Object.defineProperty(exports, "genEmptyBallotRoots", { enumerable: true, get: function () { return contracts_1.genEmptyBallotRoots; } });
25
+ var signup_1 = require("../user/signup");
26
+ Object.defineProperty(exports, "getSignedupUserData", { enumerable: true, get: function () { return signup_1.getSignedupUserData; } });
27
+ Object.defineProperty(exports, "signup", { enumerable: true, get: function () { return signup_1.signup; } });
28
+ Object.defineProperty(exports, "hasUserSignedUp", { enumerable: true, get: function () { return signup_1.hasUserSignedUp; } });
29
+ var utils_1 = require("../user/utils");
30
+ Object.defineProperty(exports, "getJoinedUserData", { enumerable: true, get: function () { return utils_1.getJoinedUserData; } });
31
+ Object.defineProperty(exports, "hasUserJoinedPoll", { enumerable: true, get: function () { return utils_1.hasUserJoinedPoll; } });
32
+ __exportStar(require("./joinPoll"), exports);
42
33
  __exportStar(require("@maci-protocol/contracts/typechain-types"), exports);
43
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/browser/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,0CAAwB;AACxB,6CAA2B;AAC3B,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,0CAAwB;AACxB,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,sDAakC;AAZhC,kGAAA,KAAK,OAAA;AACL,uGAAA,UAAU,OAAA;AACV,sGAAA,SAAS,OAAA;AACT,uHAAA,0BAA0B,OAAA;AAC1B,sGAAA,SAAS,OAAA;AACT,4GAAA,eAAe,OAAA;AACf,2HAAA,8BAA8B,OAAA;AAC9B,wGAAA,WAAW,OAAA;AACX,yGAAA,YAAY,OAAA;AACZ,uGAAA,UAAU,OAAA;AACV,8GAAA,iBAAiB,OAAA;AACjB,gHAAA,mBAAmB,OAAA;AAarB,2EAAyD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/browser/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,oDAAkC;AAClC,iDAA+B;AAC/B,2CAAyB;AACzB,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,yCAA8E;AAArE,6GAAA,mBAAmB,OAAA;AAAE,gGAAA,MAAM,OAAA;AAAE,yGAAA,eAAe,OAAA;AACrD,uCAAqE;AAA5D,0GAAA,iBAAiB,OAAA;AAAE,0GAAA,iBAAiB,OAAA;AAE7C,6CAA2B;AAY3B,2EAAyD"}
@@ -0,0 +1,8 @@
1
+ import type { IJoinPollArgs, IJoinPollData } from "../user/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, 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/browser/joinPoll.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAYlE;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAU,kJAa5B,aAAa,KAAG,OAAO,CAAC,aAAa,CA4FvC,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 utils_1 = require("../user/utils");
9
+ const contracts_1 = require("../utils/contracts");
10
+ const utils_2 = 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, 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.PrivKey.isValidSerializedPrivKey(privateKey)) {
22
+ throw new Error("Invalid MACI private key");
23
+ }
24
+ if (pollId < 0) {
25
+ throw new Error("Invalid poll id");
26
+ }
27
+ const userMaciPrivKey = domainobjs_1.PrivKey.deserialize(privateKey);
28
+ const userMaciPubKey = new domainobjs_1.Keypair(userMaciPrivKey).pubKey;
29
+ const nullifier = (0, crypto_1.poseidon)([BigInt(userMaciPrivKey.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(userMaciPubKey.hash()).catch(() => -1n);
45
+ let circuitInputs;
46
+ if (stateFile) {
47
+ circuitInputs = await (0, utils_1.getPollJoiningCircuitInputsFromStateFile)({
48
+ stateFile,
49
+ pollId,
50
+ stateIndex,
51
+ userMaciPrivKey,
52
+ });
53
+ }
54
+ else {
55
+ circuitInputs = await (0, utils_1.getPollJoiningCircuitEvents)({
56
+ maciContract,
57
+ stateIndex,
58
+ pollId,
59
+ userMaciPrivKey,
60
+ signer,
61
+ startBlock,
62
+ endBlock,
63
+ blocksPerBatch,
64
+ });
65
+ }
66
+ const currentStateRootIndex = Number.parseInt((await maciContract.numSignUps()).toString(), 10) - 1;
67
+ // generate the proof for this batch
68
+ const { proof } = await (0, utils_2.genProofSnarkjs)({ inputs: circuitInputs, zkeyPath: pollJoiningZkey, wasmPath: pollWasm });
69
+ // submit the message onchain as well as the encryption public key
70
+ const tx = await pollContract.joinPoll(nullifier, userMaciPubKey.asContractParam(), currentStateRootIndex, (0, utils_2.formatProofForVerifierContract)(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/browser/joinPoll.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type Groth16Proof } from "snarkjs";
2
+ import type { IGenProofOptions, FullProveResult, SnarkProof } from "@maci-protocol/contracts";
3
+ /**
4
+ * Format a SnarkProof type to an array of strings
5
+ * which can be passed to the Groth16 verifier contract.
6
+ * @param proof the SnarkProof to format
7
+ * @returns an array of strings
8
+ */
9
+ export declare const formatProofForVerifierContract: (proof: SnarkProof | Groth16Proof) => string[];
10
+ /**
11
+ * Generate a zk-SNARK proof using snarkjs
12
+ * @param inputs - the inputs to the circuit
13
+ * @param zkeyPath - the path to the zkey
14
+ * @param wasmPath - the path to the wasm witness
15
+ * @returns the zk-SNARK proof and public signals
16
+ */
17
+ export declare const genProofSnarkjs: ({ inputs, zkeyPath, wasmPath }: IGenProofOptions) => Promise<FullProveResult>;
18
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../ts/browser/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAErD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE9F;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,GAAI,OAAO,UAAU,GAAG,YAAY,KAAG,MAAM,EAY5D,CAAC;AAE7B;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAU,gCAAgC,gBAAgB,KAAG,OAAO,CAAC,eAAe,CAO/G,CAAC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.genProofSnarkjs = exports.formatProofForVerifierContract = void 0;
4
+ const snarkjs_1 = require("snarkjs");
5
+ /**
6
+ * Format a SnarkProof type to an array of strings
7
+ * which can be passed to the Groth16 verifier contract.
8
+ * @param proof the SnarkProof to format
9
+ * @returns an array of strings
10
+ */
11
+ const formatProofForVerifierContract = (proof) => [
12
+ proof.pi_a[0],
13
+ proof.pi_a[1],
14
+ proof.pi_b[0][1],
15
+ proof.pi_b[0][0],
16
+ proof.pi_b[1][1],
17
+ proof.pi_b[1][0],
18
+ proof.pi_c[0],
19
+ proof.pi_c[1],
20
+ ].map((x) => x.toString());
21
+ exports.formatProofForVerifierContract = formatProofForVerifierContract;
22
+ /**
23
+ * Generate a zk-SNARK proof using snarkjs
24
+ * @param inputs - the inputs to the circuit
25
+ * @param zkeyPath - the path to the zkey
26
+ * @param wasmPath - the path to the wasm witness
27
+ * @returns the zk-SNARK proof and public signals
28
+ */
29
+ const genProofSnarkjs = async ({ inputs, zkeyPath, wasmPath }) => {
30
+ if (!wasmPath) {
31
+ throw new Error("wasmPath must be specified");
32
+ }
33
+ const { proof, publicSignals } = await snarkjs_1.groth16.fullProve(inputs, wasmPath, zkeyPath);
34
+ return { proof, publicSignals };
35
+ };
36
+ exports.genProofSnarkjs = genProofSnarkjs;
37
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/browser/utils.ts"],"names":[],"mappings":";;;AAAA,qCAAqD;AAIrD;;;;;GAKG;AACI,MAAM,8BAA8B,GAAG,CAAC,KAAgC,EAAY,EAAE,CAC3F;IACE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACb,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAEb,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACb,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;CACd,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAZhB,QAAA,8BAA8B,kCAYd;AAE7B;;;;;;GAMG;AACI,MAAM,eAAe,GAAG,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAoB,EAA4B,EAAE;IAClH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,iBAAO,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrF,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAClC,CAAC,CAAC;AAPW,QAAA,eAAe,mBAO1B"}
@@ -4,5 +4,5 @@ import type { IDeployPollArgs, IPollContractsData } from "./types";
4
4
  * @param args - The arguments for the deploy poll command
5
5
  * @returns The addresses of the deployed contracts
6
6
  */
7
- export declare const deployPoll: ({ maciAddress, pollStartTimestamp, pollEndTimestamp, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, coordinatorPubKey, verifierContractAddress, vkRegistryContractAddress, mode, policyContractAddress, initialVoiceCreditProxyContractAddress, relayers, voteOptions, initialVoiceCredits, signer, }: IDeployPollArgs) => Promise<IPollContractsData>;
7
+ export declare const deployPoll: ({ maciAddress, pollStartTimestamp, pollEndTimestamp, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, stateTreeDepth, coordinatorPubKey, verifierContractAddress, vkRegistryContractAddress, mode, policyContractAddress, initialVoiceCreditProxyContractAddress, relayers, voteOptions, initialVoiceCredits, freeForAllCheckerFactoryAddress, freeForAllPolicyFactoryAddress, signer, }: IDeployPollArgs) => Promise<IPollContractsData>;
8
8
  //# sourceMappingURL=poll.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"poll.d.ts","sourceRoot":"","sources":["../../../ts/deploy/poll.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAMnE;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAU,kTAiB9B,eAAe,KAAG,OAAO,CAAC,kBAAkB,CAwH9C,CAAC"}
1
+ {"version":3,"file":"poll.d.ts","sourceRoot":"","sources":["../../../ts/deploy/poll.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAMnE;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAU,mYAoB9B,eAAe,KAAG,OAAO,CAAC,kBAAkB,CAqI9C,CAAC"}
@@ -4,21 +4,21 @@ exports.deployPoll = void 0;
4
4
  const contracts_1 = require("@maci-protocol/contracts");
5
5
  const core_1 = require("@maci-protocol/core");
6
6
  const domainobjs_1 = require("@maci-protocol/domainobjs");
7
- const utils_1 = require("../utils");
8
- const utils_2 = require("./utils");
7
+ const contracts_2 = require("../utils/contracts");
8
+ const utils_1 = require("./utils");
9
9
  /**
10
10
  * Deploy a poll
11
11
  * @param args - The arguments for the deploy poll command
12
12
  * @returns The addresses of the deployed contracts
13
13
  */
14
- const deployPoll = async ({ maciAddress, pollStartTimestamp, pollEndTimestamp, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, coordinatorPubKey, verifierContractAddress, vkRegistryContractAddress, mode, policyContractAddress, initialVoiceCreditProxyContractAddress, relayers, voteOptions, initialVoiceCredits, signer, }) => {
14
+ const deployPoll = async ({ maciAddress, pollStartTimestamp, pollEndTimestamp, intStateTreeDepth, voteOptionTreeDepth, messageBatchSize, stateTreeDepth, coordinatorPubKey, verifierContractAddress, vkRegistryContractAddress, mode, policyContractAddress, initialVoiceCreditProxyContractAddress, relayers, voteOptions, initialVoiceCredits, freeForAllCheckerFactoryAddress, freeForAllPolicyFactoryAddress, signer, }) => {
15
15
  if (!vkRegistryContractAddress) {
16
16
  throw new Error("Please provide a VkRegistry contract address");
17
17
  }
18
18
  if (!maciAddress) {
19
19
  throw new Error("Please provide a MACI contract address");
20
20
  }
21
- const isMaciExists = await (0, utils_1.contractExists)(signer.provider, maciAddress);
21
+ const isMaciExists = await (0, contracts_2.contractExists)(signer.provider, maciAddress);
22
22
  if (!isMaciExists) {
23
23
  throw new Error("MACI contract does not exist");
24
24
  }
@@ -26,12 +26,18 @@ const deployPoll = async ({ maciAddress, pollStartTimestamp, pollEndTimestamp, i
26
26
  // check if we have a signupPolicy already deployed or passed as arg
27
27
  let signupPolicyContractAddress = policyContractAddress;
28
28
  if (!signupPolicyContractAddress) {
29
- const [contract] = await (0, contracts_1.deployFreeForAllSignUpPolicy)(signer, true);
29
+ const checkerFactory = freeForAllCheckerFactoryAddress
30
+ ? contracts_1.FreeForAllCheckerFactory__factory.connect(freeForAllCheckerFactoryAddress, signer)
31
+ : undefined;
32
+ const policyFactory = freeForAllPolicyFactoryAddress
33
+ ? contracts_1.FreeForAllPolicyFactory__factory.connect(freeForAllPolicyFactoryAddress, signer)
34
+ : undefined;
35
+ const [contract] = await (0, contracts_1.deployFreeForAllSignUpPolicy)({ checker: checkerFactory, policy: policyFactory }, signer, true);
30
36
  signupPolicyContractAddress = await contract.getAddress();
31
37
  }
32
38
  let initialVoiceCreditProxyAddress = initialVoiceCreditProxyContractAddress;
33
39
  if (!initialVoiceCreditProxyAddress) {
34
- const [contract] = await (0, contracts_1.deployConstantInitialVoiceCreditProxy)({ amount: initialVoiceCredits ?? utils_2.DEFAULT_INITIAL_VOICE_CREDITS }, signer, undefined, true);
40
+ const [contract] = await (0, contracts_1.deployConstantInitialVoiceCreditProxy)({ amount: initialVoiceCredits ?? utils_1.DEFAULT_INITIAL_VOICE_CREDITS }, signer, undefined, true);
35
41
  initialVoiceCreditProxyAddress = await contract.getAddress();
36
42
  }
37
43
  // required arg -> poll duration
@@ -68,6 +74,7 @@ const deployPoll = async ({ maciAddress, pollStartTimestamp, pollEndTimestamp, i
68
74
  treeDepths: {
69
75
  intStateTreeDepth,
70
76
  voteOptionTreeDepth,
77
+ stateTreeDepth,
71
78
  },
72
79
  messageBatchSize,
73
80
  coordinatorPubKey: coordinatorPubKey.asContractParam(),
@@ -1 +1 @@
1
- {"version":3,"file":"poll.js","sourceRoot":"","sources":["../../../ts/deploy/poll.ts"],"names":[],"mappings":";;;AAAA,wDAKkC;AAClC,8CAA6D;AAC7D,0DAAmD;AAInD,oCAA0C;AAE1C,mCAAwD;AAExD;;;;GAIG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,EAC/B,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,IAAI,EACJ,qBAAqB,EACrB,sCAAsC,EACtC,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,MAAM,GACU,EAA+B,EAAE;IACjD,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,IAAA,sBAAc,EAAC,MAAM,CAAC,QAAS,EAAE,WAAW,CAAC,CAAC;IAEzE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,YAAY,GAAG,yBAAW,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAE9D,oEAAoE;IACpE,IAAI,2BAA2B,GAAG,qBAAqB,CAAC;IAExD,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAA,wCAA4B,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpE,2BAA2B,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC5D,CAAC;IAED,IAAI,8BAA8B,GAAG,sCAAsC,CAAC;IAE5E,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAA,iDAAqC,EAC5D,EAAE,MAAM,EAAE,mBAAmB,IAAI,qCAA6B,EAAE,EAChE,MAAM,EACN,SAAS,EACT,IAAI,CACL,CAAC;QACF,8BAA8B,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC/D,CAAC;IAED,gCAAgC;IAChC,IAAI,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,gBAAgB,IAAI,kBAAkB,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,uCAAuC;IACvC,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,qCAAqC;IACrC,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,yCAAyC;IACzC,IAAI,mBAAmB,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,wDAAwD;IACxD,IAAI,WAAW,IAAI,WAAW,GAAG,6BAAsB,IAAI,mBAAmB,EAAE,CAAC;QAC/E,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACtG,CAAC;IAED,sDAAsD;IACtD,IAAI,CAAC,mBAAM,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,YAAY;SAC/B,UAAU,CAAC;QACV,SAAS,EAAE,kBAAkB;QAC7B,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE;YACV,iBAAiB;YACjB,mBAAmB;SACpB;QACD,gBAAgB;QAChB,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE;QACtD,QAAQ,EAAE,uBAAuB;QACjC,UAAU,EAAE,yBAAyB;QACrC,IAAI;QACJ,MAAM,EAAE,2BAA2B;QACnC,uBAAuB,EAAE,8BAA8B;QACvD,QAAQ;QACR,WAAW;KACZ,CAAC;SACD,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAE3B,IAAI,OAAO,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,uBAAuB;IACvB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,WAAW,CAC3C,YAAY,CAAC,OAAO,CAAC,UAAU,EAC/B,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,WAAW,CACpB,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEtC,gDAAgD;IAChD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;IAChC,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAAC;IAC/C,MAAM,+BAA+B,GAAG,aAAa,CAAC,gBAAgB,CAAC;IACvE,MAAM,oBAAoB,GAAG,aAAa,CAAC,KAAK,CAAC;IAEjD,MAAM,cAAc,GAAG,gCAAmB,CAAC,OAAO,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;IACxF,MAAM,cAAc,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAE5E,OAAO;QACL,MAAM;QACN,mBAAmB;QACnB,+BAA+B;QAC/B,oBAAoB;QACpB,qBAAqB,EAAE,2BAA2B;QAClD,sCAAsC,EAAE,8BAA8B;KACvE,CAAC;AACJ,CAAC,CAAC;AAzIW,QAAA,UAAU,cAyIrB"}
1
+ {"version":3,"file":"poll.js","sourceRoot":"","sources":["../../../ts/deploy/poll.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,10 @@ export interface IDeployPollArgs {
29
29
  * The batch size of the messages
30
30
  */
31
31
  messageBatchSize: number;
32
+ /**
33
+ * The poll state tree depth
34
+ */
35
+ stateTreeDepth: number;
32
36
  /**
33
37
  * The coordinator public key
34
38
  */
@@ -65,6 +69,14 @@ export interface IDeployPollArgs {
65
69
  * The initial voice credits to be minted
66
70
  */
67
71
  initialVoiceCredits?: number;
72
+ /**
73
+ * Free for all checker factory address (using for deployment optimization if there is no signup policy)
74
+ */
75
+ freeForAllCheckerFactoryAddress?: string;
76
+ /**
77
+ * Free for all policy factory address (using for deployment optimization if there is no signup policy)
78
+ */
79
+ freeForAllPolicyFactoryAddress?: string;
68
80
  /**
69
81
  * The signer
70
82
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/deploy/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/deploy/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { EPolicies } from "@maci-protocol/contracts";
2
- import type { IGetPolicyTraitArgs, IGetPolicyDataArgs, ISemaphorePolicyData, IZupassPolicyData, IEASPolicyData, IMerkleProofPolicyData } from "./types";
2
+ import type { IGetPolicyTraitArgs, IGetPolicyDataArgs, ISemaphorePolicyData, IZupassPolicyData, IEASPolicyData, IMerkleProofPolicyData, IERC20PolicyData, IERC20VotesPolicyData } from "./types";
3
3
  import { EPolicyTrait } from "./types";
4
4
  /**
5
5
  * Get the policy type of the MACI contract
@@ -38,4 +38,16 @@ export declare const getEASPolicyData: ({ maciAddress, signer }: IGetPolicyDataA
38
38
  * @returns The merkleproof policy data
39
39
  */
40
40
  export declare const getMerkleProofPolicyData: ({ maciAddress, signer, }: IGetPolicyDataArgs) => Promise<IMerkleProofPolicyData>;
41
+ /**
42
+ * Get the ERC20 policy data
43
+ * @param IGetPolicyDataArgs - The arguments for the get erc20 policy data command
44
+ * @returns The erc20 policy data
45
+ */
46
+ export declare const getERC20PolicyData: ({ maciAddress, signer }: IGetPolicyDataArgs) => Promise<IERC20PolicyData>;
47
+ /**
48
+ * Get the ERC20 votes policy data
49
+ * @param IGetPolicyDataArgs - The arguments for the get erc20 votes policy data command
50
+ * @returns The erc20 votes policy data
51
+ */
52
+ export declare const getERC20VotesPolicyData: ({ maciAddress, signer, }: IGetPolicyDataArgs) => Promise<IERC20VotesPolicyData>;
41
53
  //# sourceMappingURL=policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../ts/maci/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA4D,MAAM,0BAA0B,CAAC;AAa/G,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAU,yBAAyB,mBAAmB,KAAG,OAAO,CAAC,YAAY,CAWvG,CAAC;AAaF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,GAAI,OAAO,YAAY,KAAG,SAAkD,CAAC;AAEvH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAU,0BAG1C,kBAAkB,KAAG,OAAO,CAAC,oBAAoB,CAoBnD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAU,yBAAyB,kBAAkB,KAAG,OAAO,CAAC,iBAAiB,CAqBhH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAU,yBAAyB,kBAAkB,KAAG,OAAO,CAAC,cAAc,CAoB1G,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAU,0BAG5C,kBAAkB,KAAG,OAAO,CAAC,sBAAsB,CAerD,CAAC"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../ts/maci/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAgBrD,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAU,yBAAyB,mBAAmB,KAAG,OAAO,CAAC,YAAY,CAWvG,CAAC;AAeF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,GAAI,OAAO,YAAY,KAAG,SAAkD,CAAC;AAEvH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAU,0BAG1C,kBAAkB,KAAG,OAAO,CAAC,oBAAoB,CAoBnD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAU,yBAAyB,kBAAkB,KAAG,OAAO,CAAC,iBAAiB,CAqBhH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAU,yBAAyB,kBAAkB,KAAG,OAAO,CAAC,cAAc,CAoB1G,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAU,0BAG5C,kBAAkB,KAAG,OAAO,CAAC,sBAAsB,CAerD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAU,yBAAyB,kBAAkB,KAAG,OAAO,CAAC,gBAAgB,CAa9G,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAU,0BAG3C,kBAAkB,KAAG,OAAO,CAAC,qBAAqB,CAkBpD,CAAC"}
@@ -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.
@@ -117,11 +119,48 @@ const getMerkleProofPolicyData = async ({ maciAddress, signer, }) => {
117
119
  const policyContractAddress = await maciContract.signUpPolicy();
118
120
  const policyContract = typechain_types_1.MerkleProofPolicy__factory.connect(policyContractAddress, signer);
119
121
  const checkerAddress = await policyContract.BASE_CHECKER();
120
- const checkerContract = contracts_1.MerkleProofChecker__factory.connect(checkerAddress, signer);
122
+ const checkerContract = typechain_types_1.MerkleProofChecker__factory.connect(checkerAddress, signer);
121
123
  const [validRoot] = await Promise.all([checkerContract.root()]);
122
124
  return {
123
125
  root: validRoot.toString(),
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":"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"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../ts/maci/policy.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ const contracts_1 = require("@maci-protocol/contracts");
8
8
  const domainobjs_1 = require("@maci-protocol/domainobjs");
9
9
  const ethers_1 = require("ethers");
10
10
  const fs_1 = __importDefault(require("fs"));
11
- const utils_1 = require("../utils");
11
+ const contracts_2 = require("../utils/contracts");
12
12
  /**
13
13
  * Generate a local MACI state from the smart contracts events
14
14
  * @param args The arguments for the genLocalState command
@@ -17,7 +17,7 @@ const generateMaciState = async ({ outputPath, pollId, maciAddress, coordinatorP
17
17
  if (!maciAddress) {
18
18
  throw new Error("MACI contract address is empty");
19
19
  }
20
- const isMaciExists = await (0, utils_1.contractExists)(signer.provider, maciAddress);
20
+ const isMaciExists = await (0, contracts_2.contractExists)(signer.provider, maciAddress);
21
21
  if (!isMaciExists) {
22
22
  throw new Error("MACI contract does not exist");
23
23
  }
@@ -29,7 +29,7 @@ const generateMaciState = async ({ outputPath, pollId, maciAddress, coordinatorP
29
29
  const coordinatorKeypair = new domainobjs_1.Keypair(coordinatorMaciPrivKey);
30
30
  const maciContract = contracts_1.MACI__factory.connect(maciAddress, signer);
31
31
  const pollContracts = await maciContract.polls(pollId);
32
- const isPollExists = await (0, utils_1.contractExists)(signer.provider, pollContracts.poll);
32
+ const isPollExists = await (0, contracts_2.contractExists)(signer.provider, pollContracts.poll);
33
33
  if (!isPollExists) {
34
34
  throw new Error("Poll contract does not exist");
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../ts/maci/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../ts/maci/state.ts"],"names":[],"mappings":"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"}
@@ -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
  */