@maci-protocol/sdk 0.0.0-ci.9acdf3f → 0.0.0-ci.9c4d683

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 (82) hide show
  1. package/build/package.json +2 -2
  2. package/build/ts/browser/index.d.ts +1 -1
  3. package/build/ts/browser/index.d.ts.map +1 -1
  4. package/build/ts/browser/index.js +5 -1
  5. package/build/ts/browser/index.js.map +1 -1
  6. package/build/ts/browser/joinPoll.d.ts +4 -2
  7. package/build/ts/browser/joinPoll.d.ts.map +1 -1
  8. package/build/ts/browser/joinPoll.js +10 -10
  9. package/build/ts/browser/joinPoll.js.map +1 -1
  10. package/build/ts/browser/utils.d.ts +2 -2
  11. package/build/ts/browser/utils.d.ts.map +1 -1
  12. package/build/ts/browser/utils.js.map +1 -1
  13. package/build/ts/deploy/poll.d.ts +1 -1
  14. package/build/ts/deploy/poll.d.ts.map +1 -1
  15. package/build/ts/deploy/poll.js +3 -3
  16. package/build/ts/deploy/poll.js.map +1 -1
  17. package/build/ts/deploy/types.d.ts +3 -2
  18. package/build/ts/deploy/types.d.ts.map +1 -1
  19. package/build/ts/poll/poll.js +3 -3
  20. package/build/ts/poll/poll.js.map +1 -1
  21. package/build/ts/poll/types.d.ts +1 -1
  22. package/build/ts/poll/types.d.ts.map +1 -1
  23. package/build/ts/proof/generate.d.ts +1 -1
  24. package/build/ts/proof/generate.d.ts.map +1 -1
  25. package/build/ts/proof/generate.js +2 -2
  26. package/build/ts/proof/generate.js.map +1 -1
  27. package/build/ts/proof/types.d.ts +2 -2
  28. package/build/ts/proof/types.d.ts.map +1 -1
  29. package/build/ts/tally/commitments.d.ts.map +1 -1
  30. package/build/ts/tally/commitments.js +7 -6
  31. package/build/ts/tally/commitments.js.map +1 -1
  32. package/build/ts/tally/types.d.ts +4 -3
  33. package/build/ts/tally/types.d.ts.map +1 -1
  34. package/build/ts/tally/utils.d.ts +3 -3
  35. package/build/ts/tally/utils.d.ts.map +1 -1
  36. package/build/ts/tally/utils.js +9 -9
  37. package/build/ts/tally/utils.js.map +1 -1
  38. package/build/ts/tally/verification.d.ts.map +1 -1
  39. package/build/ts/tally/verification.js +6 -6
  40. package/build/ts/tally/verification.js.map +1 -1
  41. package/build/ts/trees/index.d.ts +2 -2
  42. package/build/ts/trees/index.d.ts.map +1 -1
  43. package/build/ts/trees/index.js +2 -1
  44. package/build/ts/trees/index.js.map +1 -1
  45. package/build/ts/trees/stateTree.d.ts +15 -1
  46. package/build/ts/trees/stateTree.d.ts.map +1 -1
  47. package/build/ts/trees/stateTree.js +54 -6
  48. package/build/ts/trees/stateTree.js.map +1 -1
  49. package/build/ts/trees/types.d.ts +9 -0
  50. package/build/ts/trees/types.d.ts.map +1 -1
  51. package/build/ts/user/index.d.ts +2 -2
  52. package/build/ts/user/index.d.ts.map +1 -1
  53. package/build/ts/user/index.js +5 -1
  54. package/build/ts/user/index.js.map +1 -1
  55. package/build/ts/user/types.d.ts +48 -0
  56. package/build/ts/user/types.d.ts.map +1 -1
  57. package/build/ts/user/utils.d.ts +15 -3
  58. package/build/ts/user/utils.d.ts.map +1 -1
  59. package/build/ts/user/utils.js +55 -26
  60. package/build/ts/user/utils.js.map +1 -1
  61. package/build/ts/utils/params.d.ts +1 -1
  62. package/build/ts/utils/params.d.ts.map +1 -1
  63. package/build/ts/utils/params.js +3 -3
  64. package/build/ts/utils/params.js.map +1 -1
  65. package/build/ts/utils/types.d.ts +1 -1
  66. package/build/ts/utils/types.d.ts.map +1 -1
  67. package/build/ts/verifyingKeys/checkVerifyingKeys.d.ts +1 -1
  68. package/build/ts/verifyingKeys/checkVerifyingKeys.d.ts.map +1 -1
  69. package/build/ts/verifyingKeys/checkVerifyingKeys.js +2 -3
  70. package/build/ts/verifyingKeys/checkVerifyingKeys.js.map +1 -1
  71. package/build/ts/verifyingKeys/setVerifyingKeys.d.ts +1 -1
  72. package/build/ts/verifyingKeys/setVerifyingKeys.d.ts.map +1 -1
  73. package/build/ts/verifyingKeys/setVerifyingKeys.js +6 -6
  74. package/build/ts/verifyingKeys/setVerifyingKeys.js.map +1 -1
  75. package/build/ts/verifyingKeys/types.d.ts +5 -5
  76. package/build/ts/verifyingKeys/types.d.ts.map +1 -1
  77. package/build/ts/verifyingKeys/utils.d.ts +1 -1
  78. package/build/ts/verifyingKeys/utils.d.ts.map +1 -1
  79. package/build/ts/verifyingKeys/utils.js +2 -2
  80. package/build/ts/verifyingKeys/utils.js.map +1 -1
  81. package/build/tsconfig.build.tsbuildinfo +1 -1
  82. package/package.json +8 -8
@@ -1 +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,8BAA+B,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACnF,MAAM,KAAK,GAAG,IAAA,qBAAY,EACxB,CAAC,EACD,SAAS,CAAC,8BAA+B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACrE,mBAAmB,CACpB,CAAC;QAEF,4CAA4C;QAC5C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,4BAA4B,CAC9D,CAAC,EACD,SAAS,CAAC,8BAA+B,CAAC,KAAK,CAAC,CAAC,CAAC,EAClD,KAAK,EACL,SAAS,CAAC,8BAA+B,CAAC,IAAI,EAC9C,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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/tally/utils.ts"],"names":[],"mappings":";;;AAAA,kDAA0D;AAK1D;;;;;;;;;GASG;AACI,MAAM,oCAAoC,GAAG,KAAK,EACvD,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,8BAA+B,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACnF,MAAM,KAAK,GAAG,IAAA,0BAAiB,EAC7B,CAAC,EACD,SAAS,CAAC,8BAA+B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACrE,mBAAmB,CACpB,CAAC;QAEF,4CAA4C;QAC5C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,oCAAoC,CACtE,CAAC,EACD,SAAS,CAAC,8BAA+B,CAAC,KAAK,CAAC,CAAC,CAAC,EAClD,KAAK,EACL,SAAS,CAAC,8BAA+B,CAAC,IAAI,EAC9C,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,oCAAoC,wCAiC/C;AAEF;;;;;;;;GAQG;AACI,MAAM,kBAAkB,GAAG,KAAK,EACrC,aAAoB,EACpB,SAAqB,EACrB,mBAA2B,EAC3B,8BAAsC,EACtC,2CAAoD,EACjC,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,0BAAiB,EAC7B,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,2CAA2C,IAAI,EAAE,CAClD,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"}
@@ -1 +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,yFAO1B,WAAW,KAAG,OAAO,CAAC,OAAO,CAiG/B,CAAC"}
1
+ {"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../../ts/tally/verification.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAM3C;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAU,yFAO1B,WAAW,KAAG,OAAO,CAAC,OAAO,CAgG/B,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.verify = void 0;
4
4
  const typechain_types_1 = require("@maci-protocol/contracts/typechain-types");
5
+ const core_1 = require("@maci-protocol/core");
5
6
  const contracts_1 = require("../utils/contracts");
6
7
  const utils_1 = require("./utils");
7
8
  /**
@@ -9,7 +10,6 @@ const utils_1 = require("./utils");
9
10
  * @param VerifyArgs - The arguments for the verify command
10
11
  */
11
12
  const verify = async ({ pollId, tallyData, signer, tallyCommitments, totalVoteOptions, voteOptionTreeDepth, }) => {
12
- const useQv = tallyData.isQuadratic;
13
13
  const maciContractAddress = tallyData.maci;
14
14
  const validContract = await (0, contracts_1.contractExists)(signer.provider, maciContractAddress);
15
15
  if (!validContract) {
@@ -30,29 +30,29 @@ const verify = async ({ pollId, tallyData, signer, tallyCommitments, totalVoteOp
30
30
  throw new Error("Wrong number of vote options.");
31
31
  }
32
32
  // destructure the tally commitments
33
- const { newTallyCommitment, newSpentVoiceCreditsCommitment, newPerVOSpentVoiceCreditsCommitment, newResultsCommitment, } = tallyCommitments;
33
+ const { newTallyCommitment, newSpentVoiceCreditsCommitment, newPerVoteOptionSpentVoiceCreditsCommitment, newResultsCommitment, } = tallyCommitments;
34
34
  // verify that the results commitment matches the output of generateTreeCommitment()
35
35
  if (onChainTallyCommitment !== newTallyCommitment) {
36
36
  throw new Error("The on-chain tally commitment does not match.");
37
37
  }
38
38
  // verify total spent voice credits on-chain
39
- const verified = await tallyContract.verifySpentVoiceCredits(tallyData.totalSpentVoiceCredits.spent, tallyData.totalSpentVoiceCredits.salt, newResultsCommitment, newPerVOSpentVoiceCreditsCommitment ?? 0n);
39
+ const verified = await tallyContract.verifySpentVoiceCredits(tallyData.totalSpentVoiceCredits.spent, tallyData.totalSpentVoiceCredits.salt, newResultsCommitment, newPerVoteOptionSpentVoiceCreditsCommitment ?? 0n);
40
40
  if (!verified) {
41
41
  throw new Error("The on-chain verification of total spent voice credits failed.");
42
42
  }
43
43
  // verify tally result on-chain for each vote option
44
- const failedPerVOSpentCredits = await (0, utils_1.verifyTallyResults)(tallyContract, tallyData, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newPerVOSpentVoiceCreditsCommitment);
44
+ const failedPerVOSpentCredits = await (0, utils_1.verifyTallyResults)(tallyContract, tallyData, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newPerVoteOptionSpentVoiceCreditsCommitment);
45
45
  if (failedPerVOSpentCredits.length > 0) {
46
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
47
  }
48
- if (!useQv) {
48
+ if (tallyData.mode !== core_1.EMode.QV) {
49
49
  return true;
50
50
  }
51
51
  if (tallyData.perVoteOptionSpentVoiceCredits?.tally.length !== totalVoteOptions) {
52
52
  throw new Error("Wrong number of vote options.");
53
53
  }
54
54
  // verify per vote option voice credits on-chain
55
- const failedSpentCredits = await (0, utils_1.verifyPerVOSpentVoiceCredits)(tallyContract, tallyData, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newResultsCommitment);
55
+ const failedSpentCredits = await (0, utils_1.verifyPerVoteOptionSpentVoiceCredits)(tallyContract, tallyData, voteOptionTreeDepth, newSpentVoiceCreditsCommitment, newResultsCommitment);
56
56
  if (failedSpentCredits.length > 0) {
57
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
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../ts/tally/verification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../ts/tally/verification.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export { generateSignUpTree } from "./stateTree";
2
- export type { IGenerateSignUpTreeArgs, IGenerateSignUpTree } from "./types";
1
+ export { generateSignUpTree, generateSignUpTreeWithEndKey } from "./stateTree";
2
+ export type { IGenerateSignUpTreeArgs, IGenerateSignUpTree, IGenerateSignUpTreeWithEndKeyArgs } from "./types";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/trees/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC/E,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,iCAAiC,EAAE,MAAM,SAAS,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateSignUpTree = void 0;
3
+ exports.generateSignUpTreeWithEndKey = exports.generateSignUpTree = void 0;
4
4
  var stateTree_1 = require("./stateTree");
5
5
  Object.defineProperty(exports, "generateSignUpTree", { enumerable: true, get: function () { return stateTree_1.generateSignUpTree; } });
6
+ Object.defineProperty(exports, "generateSignUpTreeWithEndKey", { enumerable: true, get: function () { return stateTree_1.generateSignUpTreeWithEndKey; } });
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/trees/index.ts"],"names":[],"mappings":";;;AAAA,yCAAiD;AAAxC,+GAAA,kBAAkB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/trees/index.ts"],"names":[],"mappings":";;;AAAA,yCAA+E;AAAtE,+GAAA,kBAAkB,OAAA;AAAE,yHAAA,4BAA4B,OAAA"}
@@ -1,4 +1,4 @@
1
- import type { IGenerateSignUpTreeArgs, IGenerateSignUpTree } from "./types";
1
+ import type { IGenerateSignUpTreeArgs, IGenerateSignUpTree, IGenerateSignUpTreeWithEndKeyArgs } from "./types";
2
2
  /**
3
3
  * Generate a State tree object from the events of a MACI smart contracts
4
4
  * @param provider - the ethereum provider
@@ -10,4 +10,18 @@ import type { IGenerateSignUpTreeArgs, IGenerateSignUpTree } from "./types";
10
10
  * @returns State tree
11
11
  */
12
12
  export declare const generateSignUpTree: ({ provider, address, fromBlock, blocksPerRequest, endBlock, sleepAmount, }: IGenerateSignUpTreeArgs) => Promise<IGenerateSignUpTree>;
13
+ /**
14
+ * Generate a State tree object from the events of a MACI smart contracts
15
+ * @param provider - the ethereum provider
16
+ * @param address - the address of the MACI contract
17
+ * @param fromBlock - the block number from which to start fetching events
18
+ * @param blocksPerRequest - the number of blocks to fetch in each request
19
+ * @param endBlock - the block number at which to stop fetching events
20
+ * @param sleepAmount - the amount of time to sleep between each request
21
+ * @param userPublicKey - the user public key where we end/stop the signUpTree replica.
22
+ * If user public key is 4th then the returned signUpTree will have only 4 leaves
23
+ * (does not matter if MACI' signUpTree has more).
24
+ * @returns State tree
25
+ */
26
+ export declare const generateSignUpTreeWithEndKey: ({ provider, address, fromBlock, blocksPerRequest, endBlock, sleepAmount, userPublicKey, }: IGenerateSignUpTreeWithEndKeyArgs) => Promise<IGenerateSignUpTree>;
13
27
  //# sourceMappingURL=stateTree.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"stateTree.d.ts","sourceRoot":"","sources":["../../../ts/trees/stateTree.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,iCAAiC,EAAE,MAAM,SAAS,CAAC;AAI/G;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,GAAU,4EAOtC,uBAAuB,KAAG,OAAO,CAAC,mBAAmB,CAoCvD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,4BAA4B,GAAU,2FAQhD,iCAAiC,KAAG,OAAO,CAAC,mBAAmB,CA8CjE,CAAC"}
@@ -1,15 +1,11 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateSignUpTree = void 0;
3
+ exports.generateSignUpTreeWithEndKey = exports.generateSignUpTree = void 0;
7
4
  /* eslint-disable no-underscore-dangle */
8
5
  const typechain_types_1 = require("@maci-protocol/contracts/typechain-types");
9
6
  const crypto_1 = require("@maci-protocol/crypto");
10
7
  const domainobjs_1 = require("@maci-protocol/domainobjs");
11
8
  const lean_imt_1 = require("@zk-kit/lean-imt");
12
- const assert_1 = __importDefault(require("assert"));
13
9
  const utils_1 = require("../utils/utils");
14
10
  /**
15
11
  * Generate a State tree object from the events of a MACI smart contracts
@@ -35,7 +31,6 @@ const generateSignUpTree = async ({ provider, address, fromBlock = 0, blocksPerR
35
31
  // eslint-disable-next-line no-await-in-loop
36
32
  const signUpLogs = await maciContract.queryFilter(maciContract.filters.SignUp(), i, toBlock);
37
33
  signUpLogs.forEach((event) => {
38
- (0, assert_1.default)(!!event);
39
34
  const publicKeyX = event.args._userPublicKeyX;
40
35
  const publicKeyY = event.args._userPublicKeyY;
41
36
  const publicKey = new domainobjs_1.PublicKey([publicKeyX, publicKeyY]);
@@ -53,4 +48,57 @@ const generateSignUpTree = async ({ provider, address, fromBlock = 0, blocksPerR
53
48
  };
54
49
  };
55
50
  exports.generateSignUpTree = generateSignUpTree;
51
+ /**
52
+ * Generate a State tree object from the events of a MACI smart contracts
53
+ * @param provider - the ethereum provider
54
+ * @param address - the address of the MACI contract
55
+ * @param fromBlock - the block number from which to start fetching events
56
+ * @param blocksPerRequest - the number of blocks to fetch in each request
57
+ * @param endBlock - the block number at which to stop fetching events
58
+ * @param sleepAmount - the amount of time to sleep between each request
59
+ * @param userPublicKey - the user public key where we end/stop the signUpTree replica.
60
+ * If user public key is 4th then the returned signUpTree will have only 4 leaves
61
+ * (does not matter if MACI' signUpTree has more).
62
+ * @returns State tree
63
+ */
64
+ const generateSignUpTreeWithEndKey = async ({ provider, address, fromBlock = 0, blocksPerRequest = 50, endBlock, sleepAmount, userPublicKey, }) => {
65
+ const lastBlock = endBlock || (await provider.getBlockNumber());
66
+ const maciContract = typechain_types_1.MACI__factory.connect(address, provider);
67
+ const signUpTree = new lean_imt_1.LeanIMT(crypto_1.hashLeanIMT);
68
+ signUpTree.insert(crypto_1.PAD_KEY_HASH);
69
+ const publicKeys = [];
70
+ // Fetch event logs in batches (lastBlock inclusive)
71
+ for (let i = fromBlock; i <= lastBlock; i += blocksPerRequest + 1) {
72
+ // the last block batch will be either current iteration block + blockPerRequest
73
+ // or the end block if it is set
74
+ const toBlock = i + blocksPerRequest >= lastBlock ? lastBlock : i + blocksPerRequest;
75
+ // eslint-disable-next-line no-await-in-loop
76
+ const signUpLogs = await maciContract.queryFilter(maciContract.filters.SignUp(), i, toBlock);
77
+ // eslint-disable-next-line @typescript-eslint/prefer-for-of
78
+ for (let j = 0; j < signUpLogs.length; j += 1) {
79
+ const event = signUpLogs[j];
80
+ const publicKeyX = event.args._userPublicKeyX;
81
+ const publicKeyY = event.args._userPublicKeyY;
82
+ const publicKey = new domainobjs_1.PublicKey([publicKeyX, publicKeyY]);
83
+ publicKeys.push(publicKey);
84
+ signUpTree.insert((0, crypto_1.hashLeftRight)(publicKeyX, publicKeyY));
85
+ // early return cause we found the user
86
+ if (publicKey.equals(userPublicKey)) {
87
+ return {
88
+ signUpTree,
89
+ publicKeys,
90
+ };
91
+ }
92
+ }
93
+ if (sleepAmount) {
94
+ // eslint-disable-next-line no-await-in-loop
95
+ await (0, utils_1.sleep)(sleepAmount);
96
+ }
97
+ }
98
+ return {
99
+ signUpTree,
100
+ publicKeys,
101
+ };
102
+ };
103
+ exports.generateSignUpTreeWithEndKey = generateSignUpTreeWithEndKey;
56
104
  //# sourceMappingURL=stateTree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stateTree.js","sourceRoot":"","sources":["../../../ts/trees/stateTree.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAyC;AACzC,8EAAwF;AACxF,kDAAiF;AACjF,0DAAsD;AACtD,+CAAgE;AAEhE,oDAA4B;AAI5B,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,+BAAW,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,UAAU,GAAgB,EAAE,CAAC;IAEnC,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,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;YAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;YAE9C,MAAM,SAAS,GAAG,IAAI,sBAAS,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;YAE1D,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3B,UAAU,CAAC,MAAM,CAAC,IAAA,sBAAa,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;QAC3D,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,UAAU;KACX,CAAC;AACJ,CAAC,CAAC;AA5CW,QAAA,kBAAkB,sBA4C7B"}
1
+ {"version":3,"file":"stateTree.js","sourceRoot":"","sources":["../../../ts/trees/stateTree.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,15 @@ export interface IGenerateSignUpTreeArgs {
30
30
  */
31
31
  sleepAmount?: number;
32
32
  }
33
+ /**
34
+ * An interface that represents arguments of generation sign up tree which stops fetching at a given public key
35
+ */
36
+ export interface IGenerateSignUpTreeWithEndKeyArgs extends IGenerateSignUpTreeArgs {
37
+ /**
38
+ * The public key of the user
39
+ */
40
+ userPublicKey: PublicKey;
41
+ }
33
42
  /**
34
43
  * An interface that represents sign up tree and state leaves
35
44
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/trees/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,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,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/trees/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,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,iCAAkC,SAAQ,uBAAuB;IAChF;;OAEG;IACH,aAAa,EAAE,SAAS,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB"}
@@ -1,5 +1,5 @@
1
1
  export { joinPoll } from "./joinPoll";
2
2
  export { getSignedupUserData, signup, hasUserSignedUp } from "./signup";
3
- export { getJoinedUserData, hasUserJoinedPoll } from "./utils";
4
- export type { IJoinedUserArgs, IIsRegisteredUser, IIsJoinedUser, ISignupArgs, IRegisteredUserArgs, IPollJoinedCircuitInputs, IPollJoiningCircuitInputs, IJoinPollArgs, IIsNullifierOnChainArgs, IGetPollJoiningCircuitEventsArgs, IGetPollJoiningCircuitInputsFromStateFileArgs, IJoinPollData, IParsePollJoinEventsArgs, IParseSignupEventsArgs, ISignupData, IHasUserSignedUpArgs, } from "./types";
3
+ export { getJoinedUserData, hasUserJoinedPoll, generateMaciStateTree, generateMaciStateTreeWithEndKey, getPollJoiningCircuitEvents, joiningCircuitInputs, } from "./utils";
4
+ export type { IJoinedUserArgs, IIsRegisteredUser, IIsJoinedUser, ISignupArgs, IRegisteredUserArgs, IPollJoinedCircuitInputs, IPollJoiningCircuitInputs, IJoinPollArgs, IIsNullifierOnChainArgs, IGetPollJoiningCircuitEventsArgs, IGetPollJoiningCircuitInputsFromStateFileArgs, IJoinPollData, IParsePollJoinEventsArgs, IParseSignupEventsArgs, ISignupData, IHasUserSignedUpArgs, IGenerateMaciStateTreeArgs, IGenerateMaciStateTreeWithEndKeyArgs, } from "./types";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC/D,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ts/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,+BAA+B,EAC/B,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,SAAS,CAAC;AACjB,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,EACpB,0BAA0B,EAC1B,oCAAoC,GACrC,MAAM,SAAS,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasUserJoinedPoll = exports.getJoinedUserData = exports.hasUserSignedUp = exports.signup = exports.getSignedupUserData = exports.joinPoll = void 0;
3
+ exports.joiningCircuitInputs = exports.getPollJoiningCircuitEvents = exports.generateMaciStateTreeWithEndKey = exports.generateMaciStateTree = exports.hasUserJoinedPoll = exports.getJoinedUserData = exports.hasUserSignedUp = exports.signup = exports.getSignedupUserData = exports.joinPoll = void 0;
4
4
  var joinPoll_1 = require("./joinPoll");
5
5
  Object.defineProperty(exports, "joinPoll", { enumerable: true, get: function () { return joinPoll_1.joinPoll; } });
6
6
  var signup_1 = require("./signup");
@@ -10,4 +10,8 @@ Object.defineProperty(exports, "hasUserSignedUp", { enumerable: true, get: funct
10
10
  var utils_1 = require("./utils");
11
11
  Object.defineProperty(exports, "getJoinedUserData", { enumerable: true, get: function () { return utils_1.getJoinedUserData; } });
12
12
  Object.defineProperty(exports, "hasUserJoinedPoll", { enumerable: true, get: function () { return utils_1.hasUserJoinedPoll; } });
13
+ Object.defineProperty(exports, "generateMaciStateTree", { enumerable: true, get: function () { return utils_1.generateMaciStateTree; } });
14
+ Object.defineProperty(exports, "generateMaciStateTreeWithEndKey", { enumerable: true, get: function () { return utils_1.generateMaciStateTreeWithEndKey; } });
15
+ Object.defineProperty(exports, "getPollJoiningCircuitEvents", { enumerable: true, get: function () { return utils_1.getPollJoiningCircuitEvents; } });
16
+ Object.defineProperty(exports, "joiningCircuitInputs", { enumerable: true, get: function () { return utils_1.joiningCircuitInputs; } });
13
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/user/index.ts"],"names":[],"mappings":";;;AAAA,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,mCAAwE;AAA/D,6GAAA,mBAAmB,OAAA;AAAE,gGAAA,MAAM,OAAA;AAAE,yGAAA,eAAe,OAAA;AACrD,iCAA+D;AAAtD,0GAAA,iBAAiB,OAAA;AAAE,0GAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../ts/user/index.ts"],"names":[],"mappings":";;;AAAA,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,mCAAwE;AAA/D,6GAAA,mBAAmB,OAAA;AAAE,gGAAA,MAAM,OAAA;AAAE,yGAAA,eAAe,OAAA;AACrD,iCAOiB;AANf,0GAAA,iBAAiB,OAAA;AACjB,0GAAA,iBAAiB,OAAA;AACjB,8GAAA,qBAAqB,OAAA;AACrB,wHAAA,+BAA+B,OAAA;AAC/B,oHAAA,2BAA2B,OAAA;AAC3B,6GAAA,oBAAoB,OAAA"}
@@ -1,3 +1,4 @@
1
+ import { LeanIMTMerkleProof } from "@zk-kit/lean-imt";
1
2
  import type { MACI, Poll } from "@maci-protocol/contracts/typechain-types";
2
3
  import type { PrivateKey, PublicKey } from "@maci-protocol/domainobjs";
3
4
  import type { Signer } from "ethers";
@@ -296,6 +297,19 @@ export interface IJoinPollArgs {
296
297
  */
297
298
  ivcpDataArg: string;
298
299
  }
300
+ /**
301
+ * Interface for the arguments to the joinPoll command for the browser
302
+ */
303
+ export interface IJoinPollBrowserArgs extends IJoinPollArgs {
304
+ /**
305
+ * Whether to use of not the latest state index
306
+ */
307
+ useLatestStateIndex?: boolean;
308
+ /**
309
+ * The inclusion proof
310
+ */
311
+ inclusionProof?: LeanIMTMerkleProof;
312
+ }
299
313
  /**
300
314
  * Interface for the return data to the joinPoll command
301
315
  */
@@ -338,6 +352,40 @@ export interface IIsNullifierOnChainArgs {
338
352
  */
339
353
  signer: Signer;
340
354
  }
355
+ /**
356
+ * Arguments for IGenerateMaciStateTreeArgs
357
+ */
358
+ export interface IGenerateMaciStateTreeArgs {
359
+ /**
360
+ * The MACI contract
361
+ */
362
+ maciContract: MACI;
363
+ /**
364
+ * The signer
365
+ */
366
+ signer: Signer;
367
+ /**
368
+ * The start block
369
+ */
370
+ startBlock?: number;
371
+ /**
372
+ * The end block
373
+ */
374
+ endBlock?: number;
375
+ /**
376
+ * The blocks per batch
377
+ */
378
+ blocksPerBatch?: number;
379
+ }
380
+ /**
381
+ * Arguments for IGenerateMaciStateTreeWithEndKeyArgs
382
+ */
383
+ export interface IGenerateMaciStateTreeWithEndKeyArgs extends IGenerateMaciStateTreeArgs {
384
+ /**
385
+ * The public key of the user
386
+ */
387
+ userPublicKey: PublicKey;
388
+ }
341
389
  /**
342
390
  * Arguments for getPollJoiningCircuitEvents
343
391
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/user/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../ts/user/types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { PrivateKey, PublicKey } from "@maci-protocol/domainobjs";
2
- import type { IGetPollJoiningCircuitEventsArgs, IGetPollJoiningCircuitInputsFromStateFileArgs, IParsePollJoinEventsArgs, IParseSignupEventsArgs, IPollJoiningCircuitInputs, IJoinedUserArgs, IIsNullifierOnChainArgs } from "./types";
2
+ import type { IGetPollJoiningCircuitEventsArgs, IGetPollJoiningCircuitInputsFromStateFileArgs, IParsePollJoinEventsArgs, IParseSignupEventsArgs, IJoinedUserArgs, IIsNullifierOnChainArgs, IGenerateMaciStateTreeArgs, IGenerateMaciStateTreeWithEndKeyArgs } from "./types";
3
3
  import type { IGenerateSignUpTree } from "../trees/types";
4
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
  */
@@ -44,19 +45,30 @@ export declare const getStateIndex: (publicKeys: PublicKey[], userMaciPublicKey:
44
45
  * @param signUpData Sign up tree and state leaves
45
46
  * @param stateTreeDepth Maci state tree depth
46
47
  * @param maciPrivateKey User's private key for signing up
47
- * @param stateLeafIndex Index where the user is stored in the state leaves
48
48
  * @param pollPrivateKey Poll's private key for the poll joining
49
49
  * @param pollPublicKey Poll's public key for the poll joining
50
50
  * @param pollId Poll's id
51
51
  * @returns stringified circuit inputs
52
52
  */
53
- export declare const joiningCircuitInputs: (signUpData: IGenerateSignUpTree, stateTreeDepth: bigint, maciPrivateKey: PrivateKey, stateLeafIndex: bigint, pollPublicKey: PublicKey, pollId: bigint) => IPollJoiningCircuitInputs;
53
+ export declare const joiningCircuitInputs: (inclusionProof: LeanIMTMerkleProof, stateTreeDepth: bigint, maciPrivateKey: PrivateKey, pollPublicKey: PublicKey, pollId: bigint) => TCircuitInputs;
54
54
  /**
55
55
  * Get the poll joining circuit inputs from a state file
56
56
  * @param stateFile - The path to the state file
57
57
  * @returns The poll joining circuit inputs
58
58
  */
59
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: ({ maciContract, 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: ({ maciContract, signer, startBlock, endBlock, blocksPerBatch, userPublicKey, }: IGenerateMaciStateTreeWithEndKeyArgs) => Promise<IGenerateSignUpTree>;
60
72
  /**
61
73
  * Get the poll joining circuit events from a state file
62
74
  * @param maciContract - The MACI contract
@@ -1 +1 @@
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,yBAAyB,EACzB,eAAe,EACf,uBAAuB,EACxB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKrD;;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;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAC/B,YAAY,mBAAmB,EAC/B,gBAAgB,MAAM,EACtB,gBAAgB,UAAU,EAC1B,gBAAgB,MAAM,EACtB,eAAe,SAAS,EACxB,QAAQ,MAAM,KACb,yBAiDF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wCAAwC,GAAU,wDAK5D,6CAA6C,KAAG,OAAO,CAAC,cAAc,CAwBxE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,GAAU,yGAS/C,gCAAgC,KAAG,OAAO,CAAC,cAAc,CAsC3D,CAAC"}
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,iEAMzC,0BAA0B,KAAG,OAAO,CAAC,mBAAmB,CAgB1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,GAAU,gFAOnD,oCAAoC,KAAG,OAAO,CAAC,mBAAmB,CAgBpE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,GAAU,yGAS/C,gCAAgC,KAAG,OAAO,CAAC,cAAc,CA+B3D,CAAC"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getPollJoiningCircuitEvents = exports.getPollJoiningCircuitInputsFromStateFile = exports.joiningCircuitInputs = exports.getStateIndex = exports.parseSignupEvents = exports.hasUserJoinedPoll = exports.getJoinedUserData = exports.parsePollJoinEvents = void 0;
6
+ exports.getPollJoiningCircuitEvents = exports.generateMaciStateTreeWithEndKey = exports.generateMaciStateTree = exports.getPollJoiningCircuitInputsFromStateFile = exports.joiningCircuitInputs = exports.getStateIndex = exports.parseSignupEvents = exports.hasUserJoinedPoll = exports.getJoinedUserData = exports.parsePollJoinEvents = void 0;
7
7
  const typechain_types_1 = require("@maci-protocol/contracts/typechain-types");
8
8
  const core_1 = require("@maci-protocol/core");
9
9
  const crypto_1 = require("@maci-protocol/crypto");
@@ -114,17 +114,14 @@ exports.getStateIndex = getStateIndex;
114
114
  * @param signUpData Sign up tree and state leaves
115
115
  * @param stateTreeDepth Maci state tree depth
116
116
  * @param maciPrivateKey User's private key for signing up
117
- * @param stateLeafIndex Index where the user is stored in the state leaves
118
117
  * @param pollPrivateKey Poll's private key for the poll joining
119
118
  * @param pollPublicKey Poll's public key for the poll joining
120
119
  * @param pollId Poll's id
121
120
  * @returns stringified circuit inputs
122
121
  */
123
- const joiningCircuitInputs = (signUpData, stateTreeDepth, maciPrivateKey, stateLeafIndex, pollPublicKey, pollId) => {
124
- // Get the state leaf on the index position
125
- const { signUpTree: stateTree } = signUpData;
122
+ const joiningCircuitInputs = (inclusionProof, stateTreeDepth, maciPrivateKey, pollPublicKey, pollId) => {
126
123
  // calculate the path elements for the state tree given the original state tree
127
- const { siblings, index } = stateTree.generateProof(Number(stateLeafIndex));
124
+ const { siblings, index, root: stateRoot } = inclusionProof;
128
125
  const siblingsLength = siblings.length;
129
126
  // The index must be converted to a list of indices, 1 for each tree level.
130
127
  // The circuit tree depth is this.stateTreeDepth, so the number of siblings must be this.stateTreeDepth,
@@ -142,8 +139,6 @@ const joiningCircuitInputs = (signUpData, stateTreeDepth, maciPrivateKey, stateL
142
139
  // Create nullifier from private key
143
140
  const inputNullifier = BigInt(maciPrivateKey.asCircuitInputs());
144
141
  const nullifier = (0, crypto_1.poseidon)([inputNullifier, pollId]);
145
- // Get pll state tree's root
146
- const stateRoot = stateTree.root;
147
142
  // Set actualStateTreeDepth as number of initial siblings length
148
143
  const actualStateTreeDepth = BigInt(siblingsLength);
149
144
  // Calculate public input hash from nullifier, credits and current root
@@ -186,26 +181,17 @@ const getPollJoiningCircuitInputsFromStateFile = async ({ stateFile, pollId, sta
186
181
  };
187
182
  exports.getPollJoiningCircuitInputsFromStateFile = getPollJoiningCircuitInputsFromStateFile;
188
183
  /**
189
- * Get the poll joining circuit events from a state file
190
- * @param maciContract - The MACI contract
191
- * @param startBlock - The start block
192
- * @param signer - The signer
193
- * @returns The poll joining circuit events
184
+ * Generate MACI's state tree from the MACI contract
185
+ * @param {IGenerateMaciStateTreeArgs} args - The arguments for the generate maci state tree command
186
+ * @returns The MACI's state tree
194
187
  */
195
- const getPollJoiningCircuitEvents = async ({ maciContract, stateIndex, pollId, userMaciPrivateKey, signer, startBlock, endBlock, blocksPerBatch, }) => {
188
+ const generateMaciStateTree = async ({ maciContract, signer, startBlock, endBlock, blocksPerBatch, }) => {
196
189
  // build an off-chain representation of the MACI contract using data in the contract storage
197
- const [defaultStartBlockSignup, defaultStartBlockPoll, stateTreeDepth] = await Promise.all([
198
- maciContract
199
- .queryFilter(maciContract.filters.SignUp(), startBlock ?? 0)
200
- .then((events) => events[0]?.blockNumber ?? 0),
201
- maciContract
202
- .queryFilter(maciContract.filters.DeployPoll(), startBlock ?? 0)
203
- .then((events) => events[0]?.blockNumber ?? 0),
204
- maciContract.stateTreeDepth(),
205
- ]);
206
- const defaultStartBlock = Math.min(defaultStartBlockPoll, defaultStartBlockSignup);
190
+ const defaultStartBlock = await maciContract
191
+ .queryFilter(maciContract.filters.SignUp(), startBlock ?? 0)
192
+ .then((events) => events[0]?.blockNumber ?? 0);
207
193
  const fromBlock = startBlock ? Number(startBlock) : defaultStartBlock;
208
- const signUpData = await (0, stateTree_1.generateSignUpTree)({
194
+ return (0, stateTree_1.generateSignUpTree)({
209
195
  provider: signer.provider,
210
196
  address: await maciContract.getAddress(),
211
197
  blocksPerRequest: blocksPerBatch || 50,
@@ -213,12 +199,55 @@ const getPollJoiningCircuitEvents = async ({ maciContract, stateIndex, pollId, u
213
199
  endBlock,
214
200
  sleepAmount: 0,
215
201
  });
202
+ };
203
+ exports.generateMaciStateTree = generateMaciStateTree;
204
+ /**
205
+ * Generate MACI's state tree from the MACI contract with a given end key
206
+ * @param {IGenerateMaciStateTreeWithEndKeyArgs} args - The arguments for the generate maci state tree command
207
+ * @returns The MACI's state tree
208
+ */
209
+ const generateMaciStateTreeWithEndKey = async ({ maciContract, signer, startBlock, endBlock, blocksPerBatch, userPublicKey, }) => {
210
+ // build an off-chain representation of the MACI contract using data in the contract storage
211
+ const defaultStartBlock = await maciContract
212
+ .queryFilter(maciContract.filters.SignUp(), startBlock ?? 0)
213
+ .then((events) => events[0]?.blockNumber ?? 0);
214
+ const fromBlock = startBlock ? Number(startBlock) : defaultStartBlock;
215
+ return (0, stateTree_1.generateSignUpTreeWithEndKey)({
216
+ provider: signer.provider,
217
+ address: await maciContract.getAddress(),
218
+ blocksPerRequest: blocksPerBatch || 50,
219
+ fromBlock,
220
+ endBlock,
221
+ userPublicKey,
222
+ });
223
+ };
224
+ exports.generateMaciStateTreeWithEndKey = generateMaciStateTreeWithEndKey;
225
+ /**
226
+ * Get the poll joining circuit events from a state file
227
+ * @param maciContract - The MACI contract
228
+ * @param startBlock - The start block
229
+ * @param signer - The signer
230
+ * @returns The poll joining circuit events
231
+ */
232
+ const getPollJoiningCircuitEvents = async ({ maciContract, stateIndex, pollId, userMaciPrivateKey, signer, startBlock, endBlock, blocksPerBatch, }) => {
233
+ const stateTreeDepth = await maciContract.stateTreeDepth();
234
+ const signUpData = await (0, exports.generateMaciStateTree)({
235
+ maciContract,
236
+ signer,
237
+ startBlock,
238
+ endBlock,
239
+ blocksPerBatch,
240
+ });
216
241
  const { publicKey: userPublicKey } = new domainobjs_1.Keypair(userMaciPrivateKey);
217
242
  const loadedStateIndex = (0, exports.getStateIndex)(signUpData.publicKeys, userPublicKey, stateIndex);
218
243
  if (loadedStateIndex < 1) {
219
244
  throw new Error("Invalid state index");
220
245
  }
221
- return (0, exports.joiningCircuitInputs)(signUpData, stateTreeDepth, userMaciPrivateKey, stateIndex, userPublicKey, pollId);
246
+ // Get the state leaf on the index position
247
+ const { signUpTree: stateTree } = signUpData;
248
+ // calculate the path elements for the state tree given the original state tree
249
+ const inclusionProof = stateTree.generateProof(Number(loadedStateIndex));
250
+ return (0, exports.joiningCircuitInputs)(inclusionProof, stateTreeDepth, userMaciPrivateKey, userPublicKey, pollId);
222
251
  };
223
252
  exports.getPollJoiningCircuitEvents = getPollJoiningCircuitEvents;
224
253
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/user/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../ts/user/utils.ts"],"names":[],"mappings":"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"}