@maci-protocol/testing 0.0.0-ci.c910408 → 0.0.0-ci.c92e3dd

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 (46) hide show
  1. package/build/ts/__tests__/e2e.full.test.d.ts +2 -0
  2. package/build/ts/__tests__/e2e.full.test.d.ts.map +1 -0
  3. package/build/ts/__tests__/e2e.full.test.js +839 -0
  4. package/build/ts/__tests__/e2e.full.test.js.map +1 -0
  5. package/build/ts/__tests__/e2e.nonQv.test.js +422 -25
  6. package/build/ts/__tests__/e2e.nonQv.test.js.map +1 -1
  7. package/build/ts/__tests__/e2e.test.js +95 -87
  8. package/build/ts/__tests__/e2e.test.js.map +1 -1
  9. package/build/ts/__tests__/integration.test.js +42 -47
  10. package/build/ts/__tests__/integration.test.js.map +1 -1
  11. package/build/ts/__tests__/keyChange.test.js +37 -35
  12. package/build/ts/__tests__/keyChange.test.js.map +1 -1
  13. package/build/ts/__tests__/maciKeys.test.js +7 -7
  14. package/build/ts/__tests__/maciKeys.test.js.map +1 -1
  15. package/build/ts/__tests__/stress/stress.full.test.d.ts +2 -0
  16. package/build/ts/__tests__/stress/stress.full.test.d.ts.map +1 -0
  17. package/build/ts/__tests__/stress/stress.full.test.js +186 -0
  18. package/build/ts/__tests__/stress/stress.full.test.js.map +1 -0
  19. package/build/ts/__tests__/unit/joinPoll.test.js +26 -66
  20. package/build/ts/__tests__/unit/joinPoll.test.js.map +1 -1
  21. package/build/ts/__tests__/unit/poll.test.js +8 -10
  22. package/build/ts/__tests__/unit/poll.test.js.map +1 -1
  23. package/build/ts/__tests__/unit/publish.test.js +8 -10
  24. package/build/ts/__tests__/unit/publish.test.js.map +1 -1
  25. package/build/ts/__tests__/unit/setVerifyingKeys.test.d.ts +2 -0
  26. package/build/ts/__tests__/unit/setVerifyingKeys.test.d.ts.map +1 -0
  27. package/build/ts/__tests__/unit/setVerifyingKeys.test.js +52 -0
  28. package/build/ts/__tests__/unit/setVerifyingKeys.test.js.map +1 -0
  29. package/build/ts/__tests__/unit/signup.test.js +6 -4
  30. package/build/ts/__tests__/unit/signup.test.js.map +1 -1
  31. package/build/ts/constants.d.ts +49 -53
  32. package/build/ts/constants.d.ts.map +1 -1
  33. package/build/ts/constants.js +99 -77
  34. package/build/ts/constants.js.map +1 -1
  35. package/build/ts/testingClass.d.ts +7 -7
  36. package/build/ts/testingClass.d.ts.map +1 -1
  37. package/build/ts/testingClass.js +32 -31
  38. package/build/ts/testingClass.js.map +1 -1
  39. package/build/ts/types.d.ts +8 -9
  40. package/build/ts/types.d.ts.map +1 -1
  41. package/build/ts/utils.d.ts +1 -1
  42. package/build/ts/utils.d.ts.map +1 -1
  43. package/build/ts/utils.js +9 -9
  44. package/build/ts/utils.js.map +1 -1
  45. package/build/tsconfig.tsbuildinfo +1 -1
  46. package/package.json +19 -18
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2e.full.test.js","sourceRoot":"","sources":["../../../ts/__tests__/e2e.full.test.ts"],"names":[],"mappings":";;AAAA,8CAA6D;AAC7D,kDAA2D;AAC3D,0DAAoD;AACpD,4CAsB4B;AAC5B,+BAA8B;AAI9B,4CA2BsB;AACtB,oCAAwE;AAExE;;;;;;;;;GASG;AACH,QAAQ,CAAC,oCAAoC,EAAE,SAAS,IAAI;IAC1D,MAAM,OAAO,GAAG,IAAA,WAAK,GAAE,CAAC;IACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAErB,IAAI,aAA6B,CAAC;IAClC,IAAI,sCAA8C,CAAC;IACnD,IAAI,MAAc,CAAC;IAEnB,MAAM,kBAAkB,GAAwD;QAC9E,SAAS,EAAE,6BAAiB;QAC5B,SAAS,EAAE,6BAAiB;QAC5B,aAAa,EAAE,sCAA0B;QACzC,oBAAoB,EAAE,0CAA8B;QACpD,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,8BAAkB;QAC9B,gCAAgC,EAAE,8CAAkC;QACpE,8BAA8B,EAAE,iDAAqC;QACrE,yBAAyB,EAAE,yCAA6B;QACxD,uBAAuB,EAAE,4CAAgC;QACzD,qBAAqB,EAArB,iCAAqB;QACrB,oBAAoB,EAAE,2CAA+B;QACrD,aAAa,EAAE,sCAA0B;QACzC,OAAO;QACP,IAAI,EAAE,WAAK,CAAC,IAAI;KACjB,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;QAC7B,MAAM,CAAC,YAAY,EAAE,AAAD,EAAG,mBAAmB,EAAE,oBAAoB,CAAC,GAAG,MAAM,IAAA,kCAA4B,EACpG,EAAE,EACF,MAAM,EACN,IAAI,CACL,CAAC;QACF,MAAM,2BAA2B,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;QAEpE,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,IAAA,kCAA4B,EACrD,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,oBAAoB,EAAE,EAC9D,MAAM,EACN,IAAI,CACL,CAAC;QACF,MAAM,yBAAyB,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;QAEhE,6BAA6B;QAC7B,MAAM,sBAAsB,GAAG,MAAM,IAAA,gBAAU,EAAC;YAC9C,GAAG,sBAAU;YACb,MAAM;YACN,mBAAmB,EAAE,2BAA2B;SACjD,CAAC,CAAC;QAEH,4BAA4B;QAC5B,MAAM,EAAE,oCAAoC,EAAE,GAAG,sBAAsB,CAAC;QACxE,MAAM,IAAA,sBAAgB,EAAC;YACrB,GAAG,CAAC,MAAM,IAAA,6BAAiB,EAAC,MAAM,EAAE,CAAC,WAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAClD,4BAA4B,EAAE,oCAAoC;SACnE,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,IAAA,uBAAiB,EAAC,MAAM,CAAC,CAAC;QAElD,yBAAyB;QACzB,MAAM,IAAA,gBAAU,EAAC;YACf,GAAG,0BAAc;YACjB,MAAM;YACN,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,SAAS,GAAG,wBAAY;YAC1C,QAAQ,EAAE,CAAC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;YACrC,WAAW,EAAE,sBAAsB,CAAC,mBAAmB;YACvD,qBAAqB,EAAE,yBAAyB;YAChD,sCAAsC;YACtC,IAAI,EAAE,WAAK,CAAC,IAAI;SACjB,CAAC,CAAC;QAEH,OAAO,sBAAsB,CAAC;IAChC,CAAC,CAAC;IAEF,6FAA6F;IAC7F,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,GAAG,MAAM,IAAA,sBAAgB,GAAE,CAAC;QAElC,MAAM,sCAAsC,GAAG,MAAM,IAAA,kDAA4C,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChH,MAAM,uBAAuB,GAAG,MAAM,IAAA,2CAAqC,EACzE,EAAE,MAAM,EAAE,yCAA6B,EAAE,EACzC,sCAAsC,EACtC,MAAM,CACP,CAAC;QACF,sCAAsC,GAAG,MAAM,uBAAuB,CAAC,UAAU,EAAE,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,IAAA,aAAK,GAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,oBAAO,EAAE,CAAC;QAE3B,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,6BAA6B;YAC7B,aAAa,GAAG,MAAM,WAAW,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,IAAA,YAAM,EAAC;gBACX,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;gBACzC,MAAM,EAAE,2BAAe;gBACvB,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,IAAA,cAAQ,EAAC;gBACb,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBACvC,MAAM,EAAE,EAAE;gBACV,eAAe,EAAE,mCAAuB;gBACxC,OAAO;gBACP,QAAQ,EAAE,mCAAuB;gBACjC,oBAAoB,EAAE,sCAA0B;gBAChD,UAAU,EAAE,8BAAkB;gBAC9B,SAAS,EAAE,2BAAe;gBAC1B,WAAW,EAAE,6BAAiB;gBAC9B,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,IAAA,aAAO,EAAC;gBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;gBACrC,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,CAAC;gBACpD,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBACvC,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,IAAA,gBAAU,EAAC,EAAE,OAAO,EAAE,wBAAY,EAAE,MAAM,EAAE,CAAC,CAAC;YACpD,MAAM,IAAA,kBAAY,EAAC,EAAE,GAAG,4BAAgB,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpG,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,oBAAc,EAAC;gBACxD,GAAG,kBAAkB;gBACrB,MAAM;gBACN,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,WAAK,CAAC,IAAI;aACjB,CAAC,CAAC;YACH,MAAM,IAAA,kBAAY,EAAC,EAAE,GAAG,4BAAgB,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpG,MAAM,IAAA,YAAM,EAAC;gBACX,GAAG,CAAC,MAAM,IAAA,sBAAU,EAAC,MAAM,CAAC,CAAC;gBAC7B,SAAS,EAAE,aAAa;gBACxB,WAAW,EAAE,aAAa,CAAC,IAAI;aAChC,CAAC,CAAC;YAEH,IAAA,aAAM,EAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,yCAA6B,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE9G,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACpD,IAAA,aAAM,EAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,yCAA6B,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChG,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC3C,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,IAAA,aAAK,GAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,oBAAO,EAAE,CAAC;QAE3B,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,6BAA6B;YAC7B,aAAa,GAAG,MAAM,WAAW,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,IAAA,YAAM,EAAC;gBACX,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;gBACzC,MAAM,EAAE,2BAAe;gBACvB,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,IAAA,cAAQ,EAAC;gBACb,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBACvC,MAAM,EAAE,EAAE;gBACV,eAAe,EAAE,mCAAuB;gBACxC,OAAO;gBACP,QAAQ,EAAE,mCAAuB;gBACjC,oBAAoB,EAAE,sCAA0B;gBAChD,UAAU,EAAE,8BAAkB;gBAC9B,SAAS,EAAE,2BAAe;gBAC1B,WAAW,EAAE,6BAAiB;gBAC9B,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,IAAA,kBAAY,EAAC;gBACjD,MAAM,EAAE,EAAE;gBACV,eAAe,EAAE,EAAE;gBACnB,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,KAAK,EAAE,EAAE;gBACT,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,EAAE;gBACd,UAAU,EAAE,MAAM,CAAC,yCAA6B,CAAC;gBACjD,oBAAoB,EAAE,8BAAkB,CAAC,SAAS;gBAClD,aAAa,EAAE,MAAM,CAAC,6BAAsB,IAAI,0BAAc,CAAC,mBAAmB,CAAC;gBACnF,YAAY,EAAE,IAAI,CAAC,SAAS;aAC7B,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG;gBACf;oBACE,WAAW,EAAE,aAAa,CAAC,mBAAmB;oBAC9C,IAAI,EAAE,CAAC;oBACP,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;oBAC9B,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;oBAC3D,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;iBAC1D;aACF,CAAC;YAEF,MAAM,IAAA,yBAAiB,EAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC3G,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,sBAAsB,GAAG,MAAM,IAAA,0BAAkB,GAAE,CAAC;YAC1D,MAAM,IAAA,gBAAU,EAAC,EAAE,OAAO,EAAE,wBAAY,EAAE,MAAM,EAAE,CAAC,CAAC;YACpD,MAAM,IAAA,kBAAY,EAAC,EAAE,GAAG,4BAAgB,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpG,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,oBAAc,EAAC;gBACxD,GAAG,kBAAkB;gBACrB,MAAM;gBACN,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,sBAAsB;gBACtB,IAAI,EAAE,WAAK,CAAC,IAAI;aACjB,CAAC,CAAC;YACH,MAAM,IAAA,kBAAY,EAAC,EAAE,GAAG,4BAAgB,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpG,MAAM,IAAA,YAAM,EAAC;gBACX,GAAG,CAAC,MAAM,IAAA,sBAAU,EAAC,MAAM,CAAC,CAAC;gBAC7B,SAAS,EAAE,aAAa;gBACxB,WAAW,EAAE,aAAa,CAAC,IAAI;aAChC,CAAC,CAAC;YAEH,IAAA,aAAM,EAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,yCAA6B,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE9G,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACpD,IAAA,aAAM,EAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,yCAA6B,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChG,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC1C,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,IAAA,aAAK,GAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,oBAAO,EAAE,CAAC;QAE3B,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,6BAA6B;YAC7B,aAAa,GAAG,MAAM,WAAW,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,IAAA,YAAM,EAAC;gBACX,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;gBACzC,MAAM,EAAE,2BAAe;gBACvB,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,IAAA,cAAQ,EAAC;gBACb,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBACvC,MAAM,EAAE,EAAE;gBACV,eAAe,EAAE,mCAAuB;gBACxC,OAAO;gBACP,QAAQ,EAAE,mCAAuB;gBACjC,oBAAoB,EAAE,sCAA0B;gBAChD,UAAU,EAAE,8BAAkB;gBAC9B,SAAS,EAAE,2BAAe;gBAC1B,WAAW,EAAE,6BAAiB;gBAC9B,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,IAAA,aAAO,EAAC;gBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;gBACrC,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,CAAC;gBACpD,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBACvC,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,IAAA,aAAO,EAAC;gBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;gBACrC,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,CAAC;gBACpD,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBACvC,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,IAAA,gBAAU,EAAC,EAAE,OAAO,EAAE,wBAAY,EAAE,MAAM,EAAE,CAAC,CAAC;YACpD,MAAM,IAAA,kBAAY,EAAC,EAAE,GAAG,4BAAgB,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpG,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,oBAAc,EAAC;gBACxD,GAAG,kBAAkB;gBACrB,MAAM;gBACN,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,WAAK,CAAC,IAAI;aACjB,CAAC,CAAC;YACH,MAAM,IAAA,kBAAY,EAAC,EAAE,GAAG,4BAAgB,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpG,MAAM,IAAA,YAAM,EAAC;gBACX,GAAG,CAAC,MAAM,IAAA,sBAAU,EAAC,MAAM,CAAC,CAAC;gBAC7B,SAAS,EAAE,aAAa;gBACxB,WAAW,EAAE,aAAa,CAAC,IAAI;aAChC,CAAC,CAAC;YAEH,IAAA,aAAM,EAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,yCAA6B,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE9G,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACpD,IAAA,aAAM,EAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,yCAA6B,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChG,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACvD,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,IAAA,aAAK,GAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,oBAAO,EAAE,CAAC;QAE3B,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,6BAA6B;YAC7B,aAAa,GAAG,MAAM,WAAW,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,IAAA,YAAM,EAAC;gBACX,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;gBACzC,MAAM,EAAE,2BAAe;gBACvB,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,IAAA,cAAQ,EAAC;gBACb,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBACvC,MAAM,EAAE,EAAE;gBACV,eAAe,EAAE,mCAAuB;gBACxC,OAAO;gBACP,QAAQ,EAAE,mCAAuB;gBACjC,oBAAoB,EAAE,sCAA0B;gBAChD,UAAU,EAAE,8BAAkB;gBAC9B,SAAS,EAAE,2BAAe;gBAC1B,WAAW,EAAE,6BAAiB;gBAC9B,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,IAAA,aAAO,EAAC;gBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;gBACrC,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,CAAC;gBACpD,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBACvC,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,IAAA,aAAO,EAAC;gBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;gBACrC,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,CAAC;gBACpD,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBACvC,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,IAAA,aAAO,EAAC;gBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;gBACrC,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,GAAG,EAAE,CAAC;gBACzD,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBACvC,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,IAAA,aAAO,EAAC;gBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;gBACrC,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,GAAG,EAAE,CAAC;gBACzD,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBACvC,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,IAAA,gBAAU,EAAC,EAAE,OAAO,EAAE,wBAAY,EAAE,MAAM,EAAE,CAAC,CAAC;YACpD,MAAM,IAAA,kBAAY,EAAC,EAAE,GAAG,4BAAgB,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpG,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,oBAAc,EAAC;gBACxD,GAAG,kBAAkB;gBACrB,MAAM;gBACN,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,WAAK,CAAC,IAAI;aACjB,CAAC,CAAC;YACH,MAAM,IAAA,kBAAY,EAAC,EAAE,GAAG,4BAAgB,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpG,MAAM,IAAA,YAAM,EAAC;gBACX,GAAG,CAAC,MAAM,IAAA,sBAAU,EAAC,MAAM,CAAC,CAAC;gBAC7B,SAAS,EAAE,aAAa;gBACxB,WAAW,EAAE,aAAa,CAAC,IAAI;aAChC,CAAC,CAAC;YAEH,IAAA,aAAM,EAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,yCAA6B,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE9G,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACpD,IAAA,aAAM,EAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,yCAA6B,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChG,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAC1D,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,IAAA,aAAK,GAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,CAAC,IAAI,oBAAO,EAAE,EAAE,IAAI,oBAAO,EAAE,EAAE,IAAI,oBAAO,EAAE,EAAE,IAAI,oBAAO,EAAE,CAAC,CAAC;QAE3E,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,6BAA6B;YAC7B,aAAa,GAAG,MAAM,WAAW,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,4DAA4D;YAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,4CAA4C;gBAC5C,MAAM,IAAA,YAAM,EAAC;oBACX,WAAW,EAAE,aAAa,CAAC,mBAAmB;oBAC9C,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE;oBAC7C,MAAM,EAAE,2BAAe;oBACvB,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,4DAA4D;YAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,4CAA4C;gBAC5C,MAAM,IAAA,cAAQ,EAAC;oBACb,WAAW,EAAE,aAAa,CAAC,mBAAmB;oBAC9C,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE;oBAC3C,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,mCAAuB;oBACxC,OAAO;oBACP,QAAQ,EAAE,mCAAuB;oBACjC,oBAAoB,EAAE,sCAA0B;oBAChD,UAAU,EAAE,8BAAkB;oBAC9B,SAAS,EAAE,2BAAe;oBAC1B,WAAW,EAAE,6BAAiB;oBAC9B,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,IAAA,aAAO,EAAC;gBACZ,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE;gBACzC,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,CAAC;gBACpD,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE;gBAC3C,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,IAAA,aAAO,EAAC;gBACZ,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE;gBACzC,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,CAAC;gBACpD,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE;gBAC3C,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,IAAA,aAAO,EAAC;gBACZ,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE;gBACzC,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,CAAC;gBACpD,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE;gBAC3C,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,IAAA,aAAO,EAAC;gBACZ,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE;gBACzC,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,CAAC;gBACpD,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE;gBAC3C,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,IAAA,aAAO,EAAC;gBACZ,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE;gBACzC,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,CAAC;gBACpD,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE;gBAC3C,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,IAAA,aAAO,EAAC;gBACZ,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE;gBACzC,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,CAAC;gBACpD,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE;gBAC3C,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,IAAA,aAAO,EAAC;gBACZ,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE;gBACzC,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,CAAC;gBACpD,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE;gBAC3C,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,IAAA,aAAO,EAAC;gBACZ,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE;gBACzC,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,CAAC;gBACpD,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE;gBAC3C,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,KAAK,GAAG;gBACZ;oBACE,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,EAAE;oBACnB,IAAI,EAAE,IAAA,2BAAkB,GAAE;oBAC1B,KAAK,EAAE,EAAE;oBACT,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;oBAC/B,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,MAAM,CAAC,yCAA6B,CAAC;oBACjD,oBAAoB,EAAE,8BAAkB,CAAC,SAAS;oBAClD,aAAa,EAAE,MAAM,CAAC,6BAAsB,IAAI,0BAAc,CAAC,mBAAmB,CAAC;oBACnF,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;iBACjC;gBACD;oBACE,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,EAAE;oBACnB,IAAI,EAAE,IAAA,2BAAkB,GAAE;oBAC1B,KAAK,EAAE,EAAE;oBACT,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;oBAC/B,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,MAAM,CAAC,yCAA6B,CAAC;oBACjD,oBAAoB,EAAE,8BAAkB,CAAC,SAAS;oBAClD,aAAa,EAAE,MAAM,CAAC,6BAAsB,IAAI,0BAAc,CAAC,mBAAmB,CAAC;oBACnF,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;iBACjC;gBACD;oBACE,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,EAAE;oBACnB,IAAI,EAAE,IAAA,2BAAkB,GAAE;oBAC1B,KAAK,EAAE,EAAE;oBACT,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;oBAC/B,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,MAAM,CAAC,yCAA6B,CAAC;oBACjD,oBAAoB,EAAE,8BAAkB,CAAC,SAAS;oBAClD,aAAa,EAAE,MAAM,CAAC,6BAAsB,IAAI,0BAAc,CAAC,mBAAmB,CAAC;oBACnF,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;iBACjC;gBACD;oBACE,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,EAAE;oBACnB,IAAI,EAAE,IAAA,2BAAkB,GAAE;oBAC1B,KAAK,EAAE,EAAE;oBACT,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;oBAC/B,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,MAAM,CAAC,yCAA6B,CAAC;oBACjD,oBAAoB,EAAE,8BAAkB,CAAC,SAAS;oBAClD,aAAa,EAAE,MAAM,CAAC,6BAAsB,IAAI,0BAAc,CAAC,mBAAmB,CAAC;oBACnF,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;iBACjC;gBACD;oBACE,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,EAAE;oBACnB,IAAI,EAAE,IAAA,2BAAkB,GAAE;oBAC1B,KAAK,EAAE,EAAE;oBACT,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;oBAC/B,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,MAAM,CAAC,yCAA6B,CAAC;oBACjD,oBAAoB,EAAE,8BAAkB,CAAC,SAAS;oBAClD,aAAa,EAAE,MAAM,CAAC,6BAAsB,IAAI,0BAAc,CAAC,mBAAmB,CAAC;oBACnF,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;iBACjC;gBACD;oBACE,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,EAAE;oBACnB,IAAI,EAAE,IAAA,2BAAkB,GAAE;oBAC1B,KAAK,EAAE,EAAE;oBACT,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;oBAC/B,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,MAAM,CAAC,yCAA6B,CAAC;oBACjD,oBAAoB,EAAE,8BAAkB,CAAC,SAAS;oBAClD,aAAa,EAAE,MAAM,CAAC,6BAAsB,IAAI,0BAAc,CAAC,mBAAmB,CAAC;oBACnF,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;iBACjC;gBACD;oBACE,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,EAAE;oBACnB,IAAI,EAAE,IAAA,2BAAkB,GAAE;oBAC1B,KAAK,EAAE,EAAE;oBACT,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;oBAC/B,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,MAAM,CAAC,yCAA6B,CAAC;oBACjD,oBAAoB,EAAE,8BAAkB,CAAC,SAAS;oBAClD,aAAa,EAAE,MAAM,CAAC,6BAAsB,IAAI,0BAAc,CAAC,mBAAmB,CAAC;oBACnF,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;iBACjC;gBACD;oBACE,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,EAAE;oBACnB,IAAI,EAAE,IAAA,2BAAkB,GAAE;oBAC1B,KAAK,EAAE,EAAE;oBACT,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU;oBAC/B,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,MAAM,CAAC,yCAA6B,CAAC;oBACjD,oBAAoB,EAAE,8BAAkB,CAAC,SAAS;oBAClD,aAAa,EAAE,MAAM,CAAC,6BAAsB,IAAI,0BAAc,CAAC,mBAAmB,CAAC;oBACnF,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;iBACjC;aACF,CAAC;YAEF,MAAM,QAAQ,GAAG,KAAK;iBACnB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,kBAAY,EAAC,IAAI,CAAC,CAAC;iBACjC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;gBACvC,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC9B,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC3D,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;aAC1D,CAAC,CAAC,CAAC;YAEN,MAAM,IAAA,yBAAiB,EAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC3G,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,sBAAsB,GAAG,MAAM,IAAA,0BAAkB,GAAE,CAAC;YAC1D,MAAM,IAAA,gBAAU,EAAC,EAAE,OAAO,EAAE,wBAAY,EAAE,MAAM,EAAE,CAAC,CAAC;YACpD,MAAM,IAAA,kBAAY,EAAC,EAAE,GAAG,4BAAgB,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpG,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,oBAAc,EAAC;gBACxD,GAAG,kBAAkB;gBACrB,MAAM;gBACN,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,sBAAsB;aACvB,CAAC,CAAC;YACH,MAAM,IAAA,kBAAY,EAAC,EAAE,GAAG,4BAAgB,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpG,MAAM,IAAA,YAAM,EAAC,EAAE,GAAG,CAAC,MAAM,IAAA,sBAAU,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;YAEhD,IAAA,aAAM,EAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CACjE,CAAC,yCAA6B,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAC1D,CAAC;YACF,IAAA,aAAM,EAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAC/D,IAAA,aAAM,EAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAE/D,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACpD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACd,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACpD,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,IAAA,aAAK,GAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,oBAAO,EAAE,CAAC,CAAC;QAE9D,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,6BAA6B;YAC7B,aAAa,GAAG,MAAM,WAAW,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,4DAA4D;YAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,4CAA4C;gBAC5C,MAAM,IAAA,YAAM,EAAC;oBACX,WAAW,EAAE,aAAa,CAAC,mBAAmB;oBAC9C,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE;oBAC7C,MAAM,EAAE,2BAAe;oBACvB,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,4DAA4D;YAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,4CAA4C;gBAC5C,MAAM,IAAA,cAAQ,EAAC;oBACb,WAAW,EAAE,aAAa,CAAC,mBAAmB;oBAC9C,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE;oBAC3C,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,mCAAuB;oBACxC,OAAO;oBACP,QAAQ,EAAE,mCAAuB;oBACjC,oBAAoB,EAAE,sCAA0B;oBAChD,UAAU,EAAE,8BAAkB;oBAC9B,SAAS,EAAE,2BAAe;oBAC1B,WAAW,EAAE,6BAAiB;oBAC9B,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,4DAA4D;YAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,4CAA4C;gBAC5C,MAAM,IAAA,aAAO,EAAC;oBACZ,WAAW,EAAE,aAAa,CAAC,mBAAmB;oBAC9C,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE;oBACzC,UAAU,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,eAAe,EAAE,EAAE;oBACnB,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;oBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,CAAC;oBACpD,IAAI,EAAE,IAAA,2BAAkB,GAAE;oBAC1B,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE;oBAC3C,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,IAAA,gBAAU,EAAC,EAAE,OAAO,EAAE,wBAAY,EAAE,MAAM,EAAE,CAAC,CAAC;YACpD,MAAM,IAAA,kBAAY,EAAC,EAAE,GAAG,4BAAgB,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpG,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,oBAAc,EAAC;gBACxD,GAAG,kBAAkB;gBACrB,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,MAAM;aACP,CAAC,CAAC;YACH,MAAM,IAAA,kBAAY,EAAC,EAAE,GAAG,4BAAgB,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpG,MAAM,IAAA,YAAM,EAAC,EAAE,GAAG,CAAC,MAAM,IAAA,sBAAU,EAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;YAE1E,MAAM,UAAU,GAAG,CAAC,yCAA6B,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAE7E,IAAA,aAAM,EAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YAChF,IAAA,aAAM,EAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;QAC3D,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,IAAA,aAAK,GAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,oBAAO,EAAE,CAAC,CAAC;QAE9D,MAAM,CAAC,KAAK,IAAI,EAAE;YAChB,6BAA6B;YAC7B,aAAa,GAAG,MAAM,WAAW,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,4DAA4D;YAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,4CAA4C;gBAC5C,MAAM,IAAA,YAAM,EAAC;oBACX,WAAW,EAAE,aAAa,CAAC,mBAAmB;oBAC9C,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE;oBAC7C,MAAM,EAAE,2BAAe;oBACvB,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,4DAA4D;YAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,4CAA4C;gBAC5C,MAAM,IAAA,cAAQ,EAAC;oBACb,WAAW,EAAE,aAAa,CAAC,mBAAmB;oBAC9C,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE;oBAC3C,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,mCAAuB;oBACxC,OAAO;oBACP,QAAQ,EAAE,mCAAuB;oBACjC,oBAAoB,EAAE,sCAA0B;oBAChD,UAAU,EAAE,8BAAkB;oBAC9B,SAAS,EAAE,2BAAe;oBAC1B,WAAW,EAAE,6BAAiB;oBAC9B,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,4DAA4D;YAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,4CAA4C;gBAC5C,MAAM,IAAA,aAAO,EAAC;oBACZ,WAAW,EAAE,aAAa,CAAC,mBAAmB;oBAC9C,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE;oBACzC,UAAU,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;oBACzB,eAAe,EAAE,EAAE;oBACnB,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;oBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,GAAG,EAAE,CAAC;oBACzD,IAAI,EAAE,IAAA,2BAAkB,GAAE;oBAC1B,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE;oBAC3C,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;YAED,MAAM,IAAA,aAAO,EAAC;gBACZ,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE;gBACzC,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,MAAM,CAAC,yCAA6B,CAAC;gBACpD,IAAI,EAAE,IAAA,2BAAkB,GAAE;gBAC1B,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE;gBAC3C,MAAM;aACP,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,IAAA,gBAAU,EAAC,EAAE,OAAO,EAAE,wBAAY,EAAE,MAAM,EAAE,CAAC,CAAC;YACpD,MAAM,IAAA,kBAAY,EAAC,EAAE,GAAG,4BAAgB,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpG,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,oBAAc,EAAC;gBACxD,GAAG,kBAAkB;gBACrB,WAAW,EAAE,aAAa,CAAC,mBAAmB;gBAC9C,MAAM;aACP,CAAC,CAAC;YACH,MAAM,IAAA,kBAAY,EAAC,EAAE,GAAG,4BAAgB,EAAE,WAAW,EAAE,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpG,MAAM,IAAA,YAAM,EAAC,EAAE,GAAG,CAAC,MAAM,IAAA,sBAAU,EAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;YAE1E,MAAM,UAAU,GAAG,yCAA6B,CAAC,QAAQ,EAAE,CAAC;YAE5D,IAAA,aAAM,EAAC,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YAChF,IAAA,aAAM,EAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -4,57 +4,53 @@ const core_1 = require("@maci-protocol/core");
4
4
  const crypto_1 = require("@maci-protocol/crypto");
5
5
  const domainobjs_1 = require("@maci-protocol/domainobjs");
6
6
  const sdk_1 = require("@maci-protocol/sdk");
7
+ const chai_1 = require("chai");
7
8
  const constants_1 = require("../constants");
8
9
  const utils_1 = require("../utils");
9
10
  /**
10
11
  Test scenarios:
11
12
  1 signup, 1 message with quadratic voting disabled
12
13
  1 signup, 1 relayed message
14
+ 1 signup, 2 valid messages
15
+ 1 signup, 2 valid and 2 invalid messages
16
+ 2 signups, 2 different messages
13
17
  */
14
18
  describe("e2e tests with non quadratic voting", function test() {
15
19
  const useWasm = (0, sdk_1.isArm)();
16
20
  this.timeout(900000);
17
21
  let maciAddresses;
18
22
  let initialVoiceCreditProxyContractAddress;
19
- let verifierContractAddress;
20
23
  let signer;
21
- let verifyingKeysRegistryAddress;
22
24
  const generateProofsArgs = {
23
25
  outputDir: constants_1.testProofsDirPath,
24
26
  tallyFile: constants_1.testTallyFilePath,
25
- tallyZkey: constants_1.tallyVotesTestNonQvZkeyPath,
26
- processZkey: constants_1.processMessageTestNonQvZkeyPath,
27
+ voteTallyZkey: constants_1.testVoteTallyNonQvZkeyPath,
28
+ messageProcessorZkey: constants_1.testProcessMessageNonQvZkeyPath,
27
29
  pollId: 0n,
28
30
  rapidsnark: constants_1.testRapidsnarkPath,
29
- processWitgen: constants_1.testProcessMessagesNonQvWitnessPath,
30
- processDatFile: constants_1.testProcessMessagesNonQvWitnessDatPath,
31
- tallyWitgen: constants_1.testTallyVotesNonQvWitnessPath,
32
- tallyDatFile: constants_1.testTallyVotesNonQvWitnessDatPath,
31
+ messageProcessorWitnessGenerator: constants_1.testProcessMessagesNonQvWitnessPath,
32
+ messageProcessorWitnessDatFile: constants_1.testProcessMessagesNonQvWitnessDatPath,
33
+ voteTallyWitnessGenerator: constants_1.testVoteTallyNonQvWitnessPath,
34
+ voteTallyWitnessDatFile: constants_1.testVoteTallyNonQvWitnessDatPath,
33
35
  coordinatorPrivateKey: constants_1.coordinatorPrivateKey,
34
- processWasm: constants_1.testProcessMessagesNonQvWasmPath,
35
- tallyWasm: constants_1.testTallyVotesNonQvWasmPath,
36
+ messageProcessorWasm: constants_1.testProcessMessagesNonQvWasmPath,
37
+ voteTallyWasm: constants_1.testVoteTallyNonQvWasmPath,
36
38
  useWasm,
37
39
  mode: sdk_1.EMode.NON_QV,
38
40
  };
39
41
  // before all tests we deploy the verifying keys registry contract and set the verifying keys
40
42
  before(async () => {
41
43
  signer = await (0, sdk_1.getDefaultSigner)();
42
- // we deploy the verifying keys registry contract
43
- verifyingKeysRegistryAddress = await (0, sdk_1.deployVerifyingKeysRegistryContract)({ signer });
44
- const [initialVoiceCreditProxy] = await (0, sdk_1.deployConstantInitialVoiceCreditProxy)({ amount: constants_1.DEFAULT_INITIAL_VOICE_CREDITS }, signer, undefined, true);
44
+ const constantInitialVoiceCreditProxyFactory = await (0, sdk_1.deployConstantInitialVoiceCreditProxyFactory)(signer, true);
45
+ const initialVoiceCreditProxy = await (0, sdk_1.deployConstantInitialVoiceCreditProxy)({ amount: constants_1.DEFAULT_INITIAL_VOICE_CREDITS }, constantInitialVoiceCreditProxyFactory, signer);
45
46
  initialVoiceCreditProxyContractAddress = await initialVoiceCreditProxy.getAddress();
46
- const verifier = await (0, sdk_1.deployVerifier)(signer, true);
47
- verifierContractAddress = await verifier.getAddress();
48
- // we deploy the verifying keys registry contract
49
- verifyingKeysRegistryAddress = await (0, sdk_1.deployVerifyingKeysRegistryContract)({ signer });
50
- // we set the verifying keys
51
- await (0, sdk_1.setVerifyingKeys)({ ...(await (0, constants_1.verifyingKeysArgs)(signer, sdk_1.EMode.NON_QV)), verifyingKeysRegistryAddress });
52
47
  });
53
48
  describe("1 signup, 1 message", () => {
54
49
  after(async () => {
55
50
  await (0, utils_1.clean)();
56
51
  });
57
52
  const user = new domainobjs_1.Keypair();
53
+ const voteWeight = 9n;
58
54
  before(async () => {
59
55
  const [signupPolicy, , signupPolicyFactory, signupCheckerFactory] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
60
56
  const signupPolicyContractAddress = await signupPolicy.getAddress();
@@ -66,6 +62,12 @@ describe("e2e tests with non quadratic voting", function test() {
66
62
  signer,
67
63
  signupPolicyAddress: signupPolicyContractAddress,
68
64
  });
65
+ // we set the verifying keys
66
+ const { verifyingKeysRegistryContractAddress } = maciAddresses;
67
+ await (0, sdk_1.setVerifyingKeys)({
68
+ ...(await (0, constants_1.verifyingKeysArgs)(signer, [sdk_1.EMode.NON_QV])),
69
+ verifyingKeysRegistryAddress: verifyingKeysRegistryContractAddress,
70
+ });
69
71
  const startDate = await (0, sdk_1.getBlockTimestamp)(signer);
70
72
  // deploy a poll contract
71
73
  await (0, sdk_1.deployPoll)({
@@ -75,8 +77,6 @@ describe("e2e tests with non quadratic voting", function test() {
75
77
  pollEndTimestamp: startDate + constants_1.pollDuration,
76
78
  relayers: [await signer.getAddress()],
77
79
  maciAddress: maciAddresses.maciContractAddress,
78
- verifierContractAddress,
79
- verifyingKeysRegistryContractAddress: verifyingKeysRegistryAddress,
80
80
  policyContractAddress: pollPolicyContractAddress,
81
81
  initialVoiceCreditProxyContractAddress,
82
82
  mode: sdk_1.EMode.NON_QV,
@@ -90,6 +90,21 @@ describe("e2e tests with non quadratic voting", function test() {
90
90
  signer,
91
91
  });
92
92
  });
93
+ it("should join one user", async () => {
94
+ await (0, sdk_1.joinPoll)({
95
+ maciAddress: maciAddresses.maciContractAddress,
96
+ privateKey: user.privateKey.serialize(),
97
+ pollId: 0n,
98
+ pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
99
+ useWasm,
100
+ pollWasm: constants_1.testPollJoiningWasmPath,
101
+ pollWitnessGenerator: constants_1.testPollJoiningWitnessPath,
102
+ rapidsnark: constants_1.testRapidsnarkPath,
103
+ sgDataArg: constants_1.DEFAULT_SG_DATA,
104
+ ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
105
+ signer,
106
+ });
107
+ });
93
108
  it("should publish one message", async () => {
94
109
  await (0, sdk_1.publish)({
95
110
  publicKey: user.publicKey.serialize(),
@@ -97,7 +112,7 @@ describe("e2e tests with non quadratic voting", function test() {
97
112
  voteOptionIndex: 0n,
98
113
  nonce: 1n,
99
114
  pollId: 0n,
100
- newVoteWeight: 9n,
115
+ newVoteWeight: voteWeight,
101
116
  maciAddress: maciAddresses.maciContractAddress,
102
117
  salt: (0, crypto_1.generateRandomSalt)(),
103
118
  privateKey: user.privateKey.serialize(),
@@ -119,6 +134,10 @@ describe("e2e tests with non quadratic voting", function test() {
119
134
  tallyData: tallyFileData,
120
135
  maciAddress: tallyFileData.maci,
121
136
  });
137
+ (0, chai_1.expect)(tallyFileData.totalSpentVoiceCredits.spent.toString()).to.eq(voteWeight.toString());
138
+ tallyFileData.results.tally.forEach((result, index) => {
139
+ (0, chai_1.expect)(result.toString()).to.eq(index === 0 ? voteWeight.toString() : "0");
140
+ });
122
141
  });
123
142
  });
124
143
  describe("1 signup, 1 relayed message", () => {
@@ -126,6 +145,7 @@ describe("e2e tests with non quadratic voting", function test() {
126
145
  await (0, utils_1.clean)();
127
146
  });
128
147
  const user = new domainobjs_1.Keypair();
148
+ const voteWeight = 9n;
129
149
  before(async () => {
130
150
  const [signupPolicy, , signupPolicyFactory, signupCheckerFactory] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
131
151
  const signupPolicyContractAddress = await signupPolicy.getAddress();
@@ -137,6 +157,12 @@ describe("e2e tests with non quadratic voting", function test() {
137
157
  signer,
138
158
  signupPolicyAddress: signupPolicyContractAddress,
139
159
  });
160
+ // we set the verifying keys
161
+ const { verifyingKeysRegistryContractAddress } = maciAddresses;
162
+ await (0, sdk_1.setVerifyingKeys)({
163
+ ...(await (0, constants_1.verifyingKeysArgs)(signer, [sdk_1.EMode.NON_QV])),
164
+ verifyingKeysRegistryAddress: verifyingKeysRegistryContractAddress,
165
+ });
140
166
  const startDate = await (0, sdk_1.getBlockTimestamp)(signer);
141
167
  // deploy a poll contract
142
168
  await (0, sdk_1.deployPoll)({
@@ -146,8 +172,6 @@ describe("e2e tests with non quadratic voting", function test() {
146
172
  pollEndTimestamp: startDate + constants_1.pollDuration,
147
173
  relayers: [await signer.getAddress()],
148
174
  maciAddress: maciAddresses.maciContractAddress,
149
- verifierContractAddress,
150
- verifyingKeysRegistryContractAddress: verifyingKeysRegistryAddress,
151
175
  policyContractAddress: pollPolicyContractAddress,
152
176
  initialVoiceCreditProxyContractAddress,
153
177
  mode: sdk_1.EMode.NON_QV,
@@ -161,6 +185,21 @@ describe("e2e tests with non quadratic voting", function test() {
161
185
  signer,
162
186
  });
163
187
  });
188
+ it("should join one user", async () => {
189
+ await (0, sdk_1.joinPoll)({
190
+ maciAddress: maciAddresses.maciContractAddress,
191
+ privateKey: user.privateKey.serialize(),
192
+ pollId: 0n,
193
+ pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
194
+ useWasm,
195
+ pollWasm: constants_1.testPollJoiningWasmPath,
196
+ pollWitnessGenerator: constants_1.testPollJoiningWitnessPath,
197
+ rapidsnark: constants_1.testRapidsnarkPath,
198
+ sgDataArg: constants_1.DEFAULT_SG_DATA,
199
+ ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
200
+ signer,
201
+ });
202
+ });
164
203
  it("should relay one message", async () => {
165
204
  const { message, ephemeralKeypair } = (0, sdk_1.generateVote)({
166
205
  pollId: 0n,
@@ -169,7 +208,7 @@ describe("e2e tests with non quadratic voting", function test() {
169
208
  nonce: 1n,
170
209
  privateKey: user.privateKey,
171
210
  stateIndex: 1n,
172
- voteWeight: 9n,
211
+ voteWeight,
173
212
  coordinatorPublicKey: constants_1.coordinatorKeypair.publicKey,
174
213
  maxVoteOption: BigInt(core_1.VOTE_OPTION_TREE_ARITY ** constants_1.deployPollArgs.voteOptionTreeDepth),
175
214
  newPublicKey: user.publicKey,
@@ -202,6 +241,364 @@ describe("e2e tests with non quadratic voting", function test() {
202
241
  tallyData: tallyFileData,
203
242
  maciAddress: tallyFileData.maci,
204
243
  });
244
+ (0, chai_1.expect)(tallyFileData.totalSpentVoiceCredits.spent.toString()).to.eq(voteWeight.toString());
245
+ tallyFileData.results.tally.forEach((result, index) => {
246
+ (0, chai_1.expect)(result.toString()).to.eq(index === 0 ? voteWeight.toString() : "0");
247
+ });
248
+ });
249
+ });
250
+ describe("1 signup, 2 valid messages", () => {
251
+ after(async () => {
252
+ await (0, utils_1.clean)();
253
+ });
254
+ const user = new domainobjs_1.Keypair();
255
+ before(async () => {
256
+ const [signupPolicy, , signupPolicyFactory, signupCheckerFactory] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
257
+ const signupPolicyContractAddress = await signupPolicy.getAddress();
258
+ const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({ policy: signupPolicyFactory, checker: signupCheckerFactory }, signer, true);
259
+ const pollPolicyContractAddress = await pollPolicy.getAddress();
260
+ // deploy the smart contracts
261
+ maciAddresses = await (0, sdk_1.deployMaci)({
262
+ ...constants_1.deployArgs,
263
+ signer,
264
+ signupPolicyAddress: signupPolicyContractAddress,
265
+ });
266
+ // we set the verifying keys
267
+ const { verifyingKeysRegistryContractAddress } = maciAddresses;
268
+ await (0, sdk_1.setVerifyingKeys)({
269
+ ...(await (0, constants_1.verifyingKeysArgs)(signer, [sdk_1.EMode.NON_QV])),
270
+ verifyingKeysRegistryAddress: verifyingKeysRegistryContractAddress,
271
+ });
272
+ const startDate = await (0, sdk_1.getBlockTimestamp)(signer);
273
+ // deploy a poll contract
274
+ await (0, sdk_1.deployPoll)({
275
+ ...constants_1.deployPollArgs,
276
+ signer,
277
+ pollStartTimestamp: startDate,
278
+ pollEndTimestamp: startDate + constants_1.pollDuration,
279
+ relayers: [await signer.getAddress()],
280
+ maciAddress: maciAddresses.maciContractAddress,
281
+ policyContractAddress: pollPolicyContractAddress,
282
+ initialVoiceCreditProxyContractAddress,
283
+ mode: sdk_1.EMode.NON_QV,
284
+ });
285
+ });
286
+ it("should signup one user", async () => {
287
+ await (0, sdk_1.signup)({
288
+ maciAddress: maciAddresses.maciContractAddress,
289
+ maciPublicKey: user.publicKey.serialize(),
290
+ sgData: constants_1.DEFAULT_SG_DATA,
291
+ signer,
292
+ });
293
+ });
294
+ it("should join one user", async () => {
295
+ await (0, sdk_1.joinPoll)({
296
+ maciAddress: maciAddresses.maciContractAddress,
297
+ privateKey: user.privateKey.serialize(),
298
+ pollId: 0n,
299
+ pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
300
+ useWasm,
301
+ pollWasm: constants_1.testPollJoiningWasmPath,
302
+ pollWitnessGenerator: constants_1.testPollJoiningWitnessPath,
303
+ rapidsnark: constants_1.testRapidsnarkPath,
304
+ sgDataArg: constants_1.DEFAULT_SG_DATA,
305
+ ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
306
+ signer,
307
+ });
308
+ });
309
+ it("should publish two messages", async () => {
310
+ await (0, sdk_1.publish)({
311
+ publicKey: user.publicKey.serialize(),
312
+ stateIndex: 1n,
313
+ voteOptionIndex: 0n,
314
+ nonce: 2n,
315
+ pollId: 0n,
316
+ newVoteWeight: BigInt(constants_1.DEFAULT_INITIAL_VOICE_CREDITS),
317
+ maciAddress: maciAddresses.maciContractAddress,
318
+ salt: (0, crypto_1.generateRandomSalt)(),
319
+ privateKey: user.privateKey.serialize(),
320
+ signer,
321
+ });
322
+ await (0, sdk_1.publish)({
323
+ publicKey: user.publicKey.serialize(),
324
+ stateIndex: 1n,
325
+ voteOptionIndex: 1n,
326
+ nonce: 1n,
327
+ pollId: 0n,
328
+ newVoteWeight: BigInt(constants_1.DEFAULT_INITIAL_VOICE_CREDITS),
329
+ maciAddress: maciAddresses.maciContractAddress,
330
+ salt: (0, crypto_1.generateRandomSalt)(),
331
+ privateKey: user.privateKey.serialize(),
332
+ signer,
333
+ });
334
+ });
335
+ it("should generate zk-SNARK proofs and verify them", async () => {
336
+ await (0, sdk_1.timeTravel)({ seconds: constants_1.pollDuration, signer });
337
+ await (0, sdk_1.mergeSignups)({ ...constants_1.mergeSignupsArgs, maciAddress: maciAddresses.maciContractAddress, signer });
338
+ const { tallyData: tallyFileData } = await (0, sdk_1.generateProofs)({
339
+ ...generateProofsArgs,
340
+ signer,
341
+ maciAddress: maciAddresses.maciContractAddress,
342
+ mode: sdk_1.EMode.NON_QV,
343
+ });
344
+ await (0, sdk_1.proveOnChain)({ ...constants_1.proveOnChainArgs, maciAddress: maciAddresses.maciContractAddress, signer });
345
+ await (0, sdk_1.verify)({
346
+ ...(await (0, constants_1.verifyArgs)(signer)),
347
+ tallyData: tallyFileData,
348
+ maciAddress: tallyFileData.maci,
349
+ });
350
+ (0, chai_1.expect)(tallyFileData.totalSpentVoiceCredits.spent.toString()).to.eq(constants_1.DEFAULT_INITIAL_VOICE_CREDITS.toString());
351
+ tallyFileData.results.tally.forEach((result, index) => {
352
+ (0, chai_1.expect)(result.toString()).to.eq(index === 1 ? constants_1.DEFAULT_INITIAL_VOICE_CREDITS.toString() : "0");
353
+ });
354
+ });
355
+ });
356
+ describe("1 signup, 2 valid and 1 invalid message", () => {
357
+ after(async () => {
358
+ await (0, utils_1.clean)();
359
+ });
360
+ const user = new domainobjs_1.Keypair();
361
+ const voteWeight = 9n;
362
+ before(async () => {
363
+ const [signupPolicy, , signupPolicyFactory, signupCheckerFactory] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
364
+ const signupPolicyContractAddress = await signupPolicy.getAddress();
365
+ const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({ policy: signupPolicyFactory, checker: signupCheckerFactory }, signer, true);
366
+ const pollPolicyContractAddress = await pollPolicy.getAddress();
367
+ // deploy the smart contracts
368
+ maciAddresses = await (0, sdk_1.deployMaci)({
369
+ ...constants_1.deployArgs,
370
+ signer,
371
+ signupPolicyAddress: signupPolicyContractAddress,
372
+ });
373
+ // we set the verifying keys
374
+ const { verifyingKeysRegistryContractAddress } = maciAddresses;
375
+ await (0, sdk_1.setVerifyingKeys)({
376
+ ...(await (0, constants_1.verifyingKeysArgs)(signer, [sdk_1.EMode.NON_QV])),
377
+ verifyingKeysRegistryAddress: verifyingKeysRegistryContractAddress,
378
+ });
379
+ const startDate = await (0, sdk_1.getBlockTimestamp)(signer);
380
+ // deploy a poll contract
381
+ await (0, sdk_1.deployPoll)({
382
+ ...constants_1.deployPollArgs,
383
+ signer,
384
+ pollStartTimestamp: startDate,
385
+ pollEndTimestamp: startDate + constants_1.pollDuration,
386
+ relayers: [await signer.getAddress()],
387
+ maciAddress: maciAddresses.maciContractAddress,
388
+ policyContractAddress: pollPolicyContractAddress,
389
+ initialVoiceCreditProxyContractAddress,
390
+ mode: sdk_1.EMode.NON_QV,
391
+ });
392
+ });
393
+ it("should signup one user", async () => {
394
+ await (0, sdk_1.signup)({
395
+ maciAddress: maciAddresses.maciContractAddress,
396
+ maciPublicKey: user.publicKey.serialize(),
397
+ sgData: constants_1.DEFAULT_SG_DATA,
398
+ signer,
399
+ });
400
+ });
401
+ it("should join one user", async () => {
402
+ await (0, sdk_1.joinPoll)({
403
+ maciAddress: maciAddresses.maciContractAddress,
404
+ privateKey: user.privateKey.serialize(),
405
+ pollId: 0n,
406
+ pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
407
+ useWasm,
408
+ pollWasm: constants_1.testPollJoiningWasmPath,
409
+ pollWitnessGenerator: constants_1.testPollJoiningWitnessPath,
410
+ rapidsnark: constants_1.testRapidsnarkPath,
411
+ sgDataArg: constants_1.DEFAULT_SG_DATA,
412
+ ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
413
+ signer,
414
+ });
415
+ });
416
+ it("should publish two valid and two invalid messages", async () => {
417
+ await (0, sdk_1.publish)({
418
+ publicKey: user.publicKey.serialize(),
419
+ stateIndex: 1n,
420
+ voteOptionIndex: 0n,
421
+ nonce: 1n,
422
+ pollId: 0n,
423
+ newVoteWeight: voteWeight,
424
+ maciAddress: maciAddresses.maciContractAddress,
425
+ salt: (0, crypto_1.generateRandomSalt)(),
426
+ privateKey: user.privateKey.serialize(),
427
+ signer,
428
+ });
429
+ await (0, sdk_1.publish)({
430
+ publicKey: user.publicKey.serialize(),
431
+ stateIndex: 1n,
432
+ voteOptionIndex: 1n,
433
+ nonce: 1n,
434
+ pollId: 0n,
435
+ newVoteWeight: BigInt(constants_1.DEFAULT_INITIAL_VOICE_CREDITS + 10),
436
+ maciAddress: maciAddresses.maciContractAddress,
437
+ salt: (0, crypto_1.generateRandomSalt)(),
438
+ privateKey: user.privateKey.serialize(),
439
+ signer,
440
+ });
441
+ await (0, sdk_1.publish)({
442
+ publicKey: user.publicKey.serialize(),
443
+ stateIndex: 1n,
444
+ voteOptionIndex: 1n,
445
+ nonce: 1n,
446
+ pollId: 0n,
447
+ newVoteWeight: -voteWeight,
448
+ maciAddress: maciAddresses.maciContractAddress,
449
+ salt: (0, crypto_1.generateRandomSalt)(),
450
+ privateKey: user.privateKey.serialize(),
451
+ signer,
452
+ });
453
+ await (0, sdk_1.publish)({
454
+ publicKey: user.publicKey.serialize(),
455
+ stateIndex: 1n,
456
+ voteOptionIndex: 1n,
457
+ nonce: 1n,
458
+ pollId: 0n,
459
+ newVoteWeight: voteWeight,
460
+ maciAddress: maciAddresses.maciContractAddress,
461
+ salt: (0, crypto_1.generateRandomSalt)(),
462
+ privateKey: user.privateKey.serialize(),
463
+ signer,
464
+ });
465
+ });
466
+ it("should generate zk-SNARK proofs and verify them", async () => {
467
+ await (0, sdk_1.timeTravel)({ seconds: constants_1.pollDuration, signer });
468
+ await (0, sdk_1.mergeSignups)({ ...constants_1.mergeSignupsArgs, maciAddress: maciAddresses.maciContractAddress, signer });
469
+ const { tallyData: tallyFileData } = await (0, sdk_1.generateProofs)({
470
+ ...generateProofsArgs,
471
+ signer,
472
+ maciAddress: maciAddresses.maciContractAddress,
473
+ mode: sdk_1.EMode.NON_QV,
474
+ });
475
+ await (0, sdk_1.proveOnChain)({ ...constants_1.proveOnChainArgs, maciAddress: maciAddresses.maciContractAddress, signer });
476
+ await (0, sdk_1.verify)({
477
+ ...(await (0, constants_1.verifyArgs)(signer)),
478
+ tallyData: tallyFileData,
479
+ maciAddress: tallyFileData.maci,
480
+ });
481
+ (0, chai_1.expect)(tallyFileData.totalSpentVoiceCredits.spent.toString()).to.eq(voteWeight.toString());
482
+ tallyFileData.results.tally.forEach((result, index) => {
483
+ (0, chai_1.expect)(result.toString()).to.eq(index === 1 ? voteWeight.toString() : "0");
484
+ });
485
+ });
486
+ });
487
+ describe("2 signups, 2 different messages", () => {
488
+ after(async () => {
489
+ await (0, utils_1.clean)();
490
+ });
491
+ const users = [new domainobjs_1.Keypair(), new domainobjs_1.Keypair()];
492
+ const voteWeight = 9n;
493
+ before(async () => {
494
+ const [signupPolicy, , signupPolicyFactory, signupCheckerFactory] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({}, signer, true);
495
+ const signupPolicyContractAddress = await signupPolicy.getAddress();
496
+ const [pollPolicy] = await (0, sdk_1.deployFreeForAllSignUpPolicy)({ policy: signupPolicyFactory, checker: signupCheckerFactory }, signer, true);
497
+ const pollPolicyContractAddress = await pollPolicy.getAddress();
498
+ // deploy the smart contracts
499
+ maciAddresses = await (0, sdk_1.deployMaci)({
500
+ ...constants_1.deployArgs,
501
+ signer,
502
+ signupPolicyAddress: signupPolicyContractAddress,
503
+ });
504
+ // we set the verifying keys
505
+ const { verifyingKeysRegistryContractAddress } = maciAddresses;
506
+ await (0, sdk_1.setVerifyingKeys)({
507
+ ...(await (0, constants_1.verifyingKeysArgs)(signer, [sdk_1.EMode.NON_QV])),
508
+ verifyingKeysRegistryAddress: verifyingKeysRegistryContractAddress,
509
+ });
510
+ const startDate = await (0, sdk_1.getBlockTimestamp)(signer);
511
+ // deploy a poll contract
512
+ await (0, sdk_1.deployPoll)({
513
+ ...constants_1.deployPollArgs,
514
+ signer,
515
+ pollStartTimestamp: startDate,
516
+ pollEndTimestamp: startDate + constants_1.pollDuration,
517
+ relayers: [await signer.getAddress()],
518
+ maciAddress: maciAddresses.maciContractAddress,
519
+ policyContractAddress: pollPolicyContractAddress,
520
+ initialVoiceCreditProxyContractAddress,
521
+ mode: sdk_1.EMode.NON_QV,
522
+ });
523
+ });
524
+ it("should signup two users", async () => {
525
+ await (0, sdk_1.signup)({
526
+ maciAddress: maciAddresses.maciContractAddress,
527
+ maciPublicKey: users[0].publicKey.serialize(),
528
+ sgData: constants_1.DEFAULT_SG_DATA,
529
+ signer,
530
+ });
531
+ await (0, sdk_1.signup)({
532
+ maciAddress: maciAddresses.maciContractAddress,
533
+ maciPublicKey: users[1].publicKey.serialize(),
534
+ sgData: constants_1.DEFAULT_SG_DATA,
535
+ signer,
536
+ });
537
+ });
538
+ it("should join two users", async () => {
539
+ // eslint-disable-next-line @typescript-eslint/prefer-for-of
540
+ for (let index = 0; index < users.length; index += 1) {
541
+ // eslint-disable-next-line no-await-in-loop
542
+ await (0, sdk_1.joinPoll)({
543
+ maciAddress: maciAddresses.maciContractAddress,
544
+ privateKey: users[index].privateKey.serialize(),
545
+ pollId: 0n,
546
+ pollJoiningZkey: constants_1.testPollJoiningZkeyPath,
547
+ useWasm,
548
+ pollWasm: constants_1.testPollJoiningWasmPath,
549
+ pollWitnessGenerator: constants_1.testPollJoiningWitnessPath,
550
+ rapidsnark: constants_1.testRapidsnarkPath,
551
+ sgDataArg: constants_1.DEFAULT_SG_DATA,
552
+ ivcpDataArg: constants_1.DEFAULT_IVCP_DATA,
553
+ signer,
554
+ });
555
+ }
556
+ });
557
+ it("should publish two different messages", async () => {
558
+ await (0, sdk_1.publish)({
559
+ publicKey: users[0].publicKey.serialize(),
560
+ stateIndex: 1n,
561
+ voteOptionIndex: 0n,
562
+ nonce: 1n,
563
+ pollId: 0n,
564
+ newVoteWeight: voteWeight,
565
+ maciAddress: maciAddresses.maciContractAddress,
566
+ salt: (0, crypto_1.generateRandomSalt)(),
567
+ privateKey: users[0].privateKey.serialize(),
568
+ signer,
569
+ });
570
+ await (0, sdk_1.publish)({
571
+ publicKey: users[1].publicKey.serialize(),
572
+ stateIndex: 2n,
573
+ voteOptionIndex: 1n,
574
+ nonce: 1n,
575
+ pollId: 0n,
576
+ newVoteWeight: voteWeight,
577
+ maciAddress: maciAddresses.maciContractAddress,
578
+ salt: (0, crypto_1.generateRandomSalt)(),
579
+ privateKey: users[1].privateKey.serialize(),
580
+ signer,
581
+ });
582
+ });
583
+ it("should generate zk-SNARK proofs and verify them", async () => {
584
+ await (0, sdk_1.timeTravel)({ seconds: constants_1.pollDuration, signer });
585
+ await (0, sdk_1.mergeSignups)({ ...constants_1.mergeSignupsArgs, maciAddress: maciAddresses.maciContractAddress, signer });
586
+ const { tallyData: tallyFileData } = await (0, sdk_1.generateProofs)({
587
+ ...generateProofsArgs,
588
+ signer,
589
+ maciAddress: maciAddresses.maciContractAddress,
590
+ mode: sdk_1.EMode.NON_QV,
591
+ });
592
+ await (0, sdk_1.proveOnChain)({ ...constants_1.proveOnChainArgs, maciAddress: maciAddresses.maciContractAddress, signer });
593
+ await (0, sdk_1.verify)({
594
+ ...(await (0, constants_1.verifyArgs)(signer)),
595
+ tallyData: tallyFileData,
596
+ maciAddress: tallyFileData.maci,
597
+ });
598
+ (0, chai_1.expect)(tallyFileData.totalSpentVoiceCredits.spent.toString()).to.eq((voteWeight * 2n).toString());
599
+ tallyFileData.results.tally.forEach((result, index) => {
600
+ (0, chai_1.expect)(result.toString()).to.eq(index < 2 ? voteWeight.toString() : "0");
601
+ });
205
602
  });
206
603
  });
207
604
  });