@maci-protocol/coordinator 0.0.0-ci.a577366 → 0.0.0-ci.ab3b4c1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -2
- package/README.md +13 -6
- package/build/hardhat.config.cjs +3 -0
- package/build/hardhat.config.cjs.map +1 -1
- package/build/hardhat.config.d.cts +3 -0
- package/build/scripts/generateMaciKeyPair.js +2 -2
- package/build/scripts/generateMaciKeyPair.js.map +1 -1
- package/build/tests/constants.d.ts +0 -1
- package/build/tests/constants.d.ts.map +1 -1
- package/build/tests/constants.js +0 -1
- package/build/tests/constants.js.map +1 -1
- package/build/tests/e2e.aa.test.js +17 -14
- package/build/tests/e2e.aa.test.js.map +1 -1
- package/build/tests/e2e.deploy.test.js +121 -73
- package/build/tests/e2e.deploy.test.js.map +1 -1
- package/build/tests/utils.d.ts +6 -0
- package/build/tests/utils.d.ts.map +1 -1
- package/build/tests/utils.js +12 -3
- package/build/tests/utils.js.map +1 -1
- package/build/ts/common/__tests__/common.test.js +2 -6
- package/build/ts/common/__tests__/common.test.js.map +1 -1
- package/build/ts/common/accountAbstraction.d.ts +2 -19
- package/build/ts/common/accountAbstraction.d.ts.map +1 -1
- package/build/ts/common/accountAbstraction.js +14 -43
- package/build/ts/common/accountAbstraction.js.map +1 -1
- package/build/ts/common/chain.d.ts +16 -0
- package/build/ts/common/chain.d.ts.map +1 -0
- package/build/ts/common/chain.js +35 -0
- package/build/ts/common/chain.js.map +1 -0
- package/build/ts/common/errors.d.ts +17 -18
- package/build/ts/common/errors.d.ts.map +1 -1
- package/build/ts/common/errors.js +17 -18
- package/build/ts/common/errors.js.map +1 -1
- package/build/ts/common/index.d.ts +2 -0
- package/build/ts/common/index.d.ts.map +1 -1
- package/build/ts/common/index.js +2 -0
- package/build/ts/common/index.js.map +1 -1
- package/build/ts/common/types.d.ts +2 -3
- package/build/ts/common/types.d.ts.map +1 -1
- package/build/ts/deployer/__tests__/deployer.service.test.js +30 -289
- package/build/ts/deployer/__tests__/deployer.service.test.js.map +1 -1
- package/build/ts/deployer/__tests__/utils.d.ts +30 -1
- package/build/ts/deployer/__tests__/utils.d.ts.map +1 -1
- package/build/ts/deployer/__tests__/utils.js +44 -11
- package/build/ts/deployer/__tests__/utils.js.map +1 -1
- package/build/ts/deployer/deployer.service.d.ts +17 -53
- package/build/ts/deployer/deployer.service.d.ts.map +1 -1
- package/build/ts/deployer/deployer.service.js +170 -460
- package/build/ts/deployer/deployer.service.js.map +1 -1
- package/build/ts/deployer/dto.d.ts +4 -4
- package/build/ts/deployer/dto.d.ts.map +1 -1
- package/build/ts/deployer/dto.js +9 -1
- package/build/ts/deployer/dto.js.map +1 -1
- package/build/ts/deployer/types.d.ts +54 -24
- package/build/ts/deployer/types.d.ts.map +1 -1
- package/build/ts/file/__tests__/file.service.test.js +7 -6
- package/build/ts/file/__tests__/file.service.test.js.map +1 -1
- package/build/ts/file/file.service.d.ts +3 -2
- package/build/ts/file/file.service.d.ts.map +1 -1
- package/build/ts/file/file.service.js +9 -4
- package/build/ts/file/file.service.js.map +1 -1
- package/build/ts/proof/__tests__/proof.controller.test.js +5 -2
- package/build/ts/proof/__tests__/proof.controller.test.js.map +1 -1
- package/build/ts/proof/__tests__/proof.gateway.test.js +6 -2
- package/build/ts/proof/__tests__/proof.gateway.test.js.map +1 -1
- package/build/ts/proof/__tests__/proof.service.test.js +12 -10
- package/build/ts/proof/__tests__/proof.service.test.js.map +1 -1
- package/build/ts/proof/dto.d.ts +13 -11
- package/build/ts/proof/dto.d.ts.map +1 -1
- package/build/ts/proof/dto.js +51 -29
- package/build/ts/proof/dto.js.map +1 -1
- package/build/ts/proof/proof.controller.d.ts +3 -2
- package/build/ts/proof/proof.controller.d.ts.map +1 -1
- package/build/ts/proof/proof.controller.js.map +1 -1
- package/build/ts/proof/proof.service.d.ts +3 -3
- package/build/ts/proof/proof.service.d.ts.map +1 -1
- package/build/ts/proof/proof.service.js +40 -120
- package/build/ts/proof/proof.service.js.map +1 -1
- package/build/ts/proof/types.d.ts +18 -10
- package/build/ts/proof/types.d.ts.map +1 -1
- package/build/ts/sessionKeys/provider/KernelEIP1193Provider.d.ts +53 -0
- package/build/ts/sessionKeys/provider/KernelEIP1193Provider.d.ts.map +1 -0
- package/build/ts/sessionKeys/provider/KernelEIP1193Provider.js +105 -0
- package/build/ts/sessionKeys/provider/KernelEIP1193Provider.js.map +1 -0
- package/build/ts/sessionKeys/sessionKeys.service.d.ts +13 -2
- package/build/ts/sessionKeys/sessionKeys.service.d.ts.map +1 -1
- package/build/ts/sessionKeys/sessionKeys.service.js +22 -4
- package/build/ts/sessionKeys/sessionKeys.service.js.map +1 -1
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +25 -24
- package/build/ts/deployer/utils.d.ts +0 -8
- package/build/ts/deployer/utils.d.ts.map +0 -1
- package/build/ts/deployer/utils.js +0 -9
- package/build/ts/deployer/utils.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Keypair,
|
|
2
|
-
import { Deployment, ProofGenerator } from "@maci-protocol/sdk";
|
|
1
|
+
import { Keypair, PrivateKey } from "@maci-protocol/domainobjs";
|
|
2
|
+
import { Deployment, EMode, ProofGenerator } from "@maci-protocol/sdk";
|
|
3
3
|
import dotenv from "dotenv";
|
|
4
4
|
import { zeroAddress } from "viem";
|
|
5
|
-
import { ErrorCodes } from "../../common";
|
|
5
|
+
import { ErrorCodes, ESupportedNetworks } from "../../common";
|
|
6
6
|
import { FileService } from "../../file/file.service";
|
|
7
7
|
import { SessionKeysService } from "../../sessionKeys/sessionKeys.service";
|
|
8
8
|
import { ProofGeneratorService } from "../proof.service";
|
|
@@ -31,9 +31,11 @@ describe("ProofGeneratorService", () => {
|
|
|
31
31
|
const defaultProofArgs = {
|
|
32
32
|
poll: 1,
|
|
33
33
|
maciContractAddress: zeroAddress,
|
|
34
|
-
|
|
35
|
-
useQuadraticVoting: false,
|
|
34
|
+
mode: EMode.NON_QV,
|
|
36
35
|
encryptedCoordinatorPrivateKey: "siO9W/g7jNVXs9tOUv/pffrcqYdMlgdXw7nSSlqM1q1UvHGSSbhtLJpeT+nJKW7/+xrBTgI0wB866DSkg8Rgr8zD+POUMiKPrGqAO/XhrcmRDL+COURFNDRh9WGeAua6hdiNoufQYvXPl1iWyIYidSDbfmC2wR6F9vVkhg/6KDZyw8Wlr6LUh0RYT+hUHEwwGbz7MeqZJcJQSTpECPF5pnk8NTHL2W/XThaewB4n4HYqjDUbYLmBDLYWsDDMgoPo709a309rTq3uEe0YBgVF8g9aGxucTDhz+/LYYzqaeSxclUwen9Z4BGZjiDSPBZfooOEQEEwIJlViQ2kl1VeOKAmkiWEUVfItivmNbC/PNZchklmfFsGpiu4DT9UU9YVBN2OTcFYHHsslcaqrR7SuesqjluaGjG46oYEmfQlkZ4gXhavdWXw2ant+Tv6HRo4trqjoD1e3jUkN6gJMWomxOeRBTg0czBZlz/IwUtTpBHcKhi3EqGQo8OuQtWww+Ts7ySmeoONuovYUsIAppNuOubfUxvFJoTr2vKbWNAiYetw09kddkjmBe+S8A5PUiFOi262mfc7g5wJwPPP7wpTBY0Fya+2BCPzXqRLMOtNI+1tW3/UQLZYvEY8J0TxmhoAGZaRn8FKaosatRxDZTQS6QUNmKxpmUspkRKzTXN5lznM=",
|
|
36
|
+
sessionKeyAddress: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
|
|
37
|
+
approval: "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
|
|
38
|
+
chain: ESupportedNetworks.LOCALHOST,
|
|
37
39
|
};
|
|
38
40
|
let mockContract = {
|
|
39
41
|
polls: jest.fn(),
|
|
@@ -41,7 +43,7 @@ describe("ProofGeneratorService", () => {
|
|
|
41
43
|
treeDepths: jest.fn(),
|
|
42
44
|
extContracts: jest.fn(),
|
|
43
45
|
stateMerged: jest.fn(),
|
|
44
|
-
|
|
46
|
+
coordinatorPublicKey: jest.fn(),
|
|
45
47
|
};
|
|
46
48
|
let defaultProofGenerator = {
|
|
47
49
|
generateMpProofs: jest.fn(),
|
|
@@ -65,7 +67,7 @@ describe("ProofGeneratorService", () => {
|
|
|
65
67
|
treeDepths: jest.fn(() => Promise.resolve([1, 2, 3])),
|
|
66
68
|
extContracts: jest.fn(() => Promise.resolve({ messageAq: zeroAddress })),
|
|
67
69
|
stateMerged: jest.fn(() => Promise.resolve(true)),
|
|
68
|
-
|
|
70
|
+
coordinatorPublicKey: jest.fn(() => Promise.resolve({
|
|
69
71
|
x: 21424602586933317770306541383681754745261216801634012235464162098738462892814n,
|
|
70
72
|
y: 11917647526382221762393892566678210317414189429046519403585863973939713533473n,
|
|
71
73
|
})),
|
|
@@ -93,8 +95,8 @@ describe("ProofGeneratorService", () => {
|
|
|
93
95
|
await expect(service.generate(defaultProofArgs)).rejects.toThrow(ErrorCodes.NOT_MERGED_STATE_TREE.toString());
|
|
94
96
|
});
|
|
95
97
|
test("should throw error if private key is wrong", async () => {
|
|
96
|
-
const keypair = new Keypair(new
|
|
97
|
-
mockContract.
|
|
98
|
+
const keypair = new Keypair(new PrivateKey(0n));
|
|
99
|
+
mockContract.coordinatorPublicKey.mockResolvedValue(keypair.publicKey.asContractParam());
|
|
98
100
|
const service = new ProofGeneratorService(defaultCryptoService, fileService, sessionKeysService);
|
|
99
101
|
await expect(service.generate(defaultProofArgs)).rejects.toThrow(ErrorCodes.PRIVATE_KEY_MISMATCH.toString());
|
|
100
102
|
});
|
|
@@ -120,7 +122,7 @@ describe("ProofGeneratorService", () => {
|
|
|
120
122
|
});
|
|
121
123
|
test("should generate proofs properly for Qv", async () => {
|
|
122
124
|
const service = new ProofGeneratorService(defaultCryptoService, fileService, sessionKeysService);
|
|
123
|
-
const data = await service.generate({ ...defaultProofArgs,
|
|
125
|
+
const data = await service.generate({ ...defaultProofArgs, mode: EMode.QV });
|
|
124
126
|
expect(data.processProofs).toHaveLength(1);
|
|
125
127
|
expect(data.tallyProofs).toHaveLength(1);
|
|
126
128
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proof.service.test.js","sourceRoot":"","sources":["../../../../ts/proof/__tests__/proof.service.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"proof.service.test.js","sourceRoot":"","sources":["../../../../ts/proof/__tests__/proof.service.test.ts"],"names":[],"mappings":"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"}
|
package/build/ts/proof/dto.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EMode } from "@maci-protocol/sdk";
|
|
1
2
|
import type { Hex } from "viem";
|
|
2
3
|
import { ESupportedNetworks } from "../common";
|
|
3
4
|
/**
|
|
@@ -13,13 +14,9 @@ export declare class GenerateProofDto {
|
|
|
13
14
|
*/
|
|
14
15
|
maciContractAddress: string;
|
|
15
16
|
/**
|
|
16
|
-
*
|
|
17
|
+
* Voting mode
|
|
17
18
|
*/
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Whether to use Qv or NonQv
|
|
21
|
-
*/
|
|
22
|
-
useQuadraticVoting: boolean;
|
|
19
|
+
mode: EMode;
|
|
23
20
|
/**
|
|
24
21
|
* Encrypted coordinator private key with RSA public key (see .env.example)
|
|
25
22
|
*/
|
|
@@ -36,6 +33,12 @@ export declare class GenerateProofDto {
|
|
|
36
33
|
* Blocks per batch for event processing
|
|
37
34
|
*/
|
|
38
35
|
blocksPerBatch?: number;
|
|
36
|
+
sessionKeyAddress?: Hex;
|
|
37
|
+
approval?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Chain Name
|
|
40
|
+
*/
|
|
41
|
+
chain: ESupportedNetworks;
|
|
39
42
|
}
|
|
40
43
|
/**
|
|
41
44
|
* Data transfer object for merge trees
|
|
@@ -46,8 +49,8 @@ export declare class MergeTreesDto {
|
|
|
46
49
|
*/
|
|
47
50
|
poll: number;
|
|
48
51
|
maciContractAddress: string;
|
|
49
|
-
sessionKeyAddress
|
|
50
|
-
approval
|
|
52
|
+
sessionKeyAddress?: string;
|
|
53
|
+
approval?: string;
|
|
51
54
|
/**
|
|
52
55
|
* Chain Name
|
|
53
56
|
*/
|
|
@@ -62,9 +65,8 @@ export declare class SubmitProofsDto {
|
|
|
62
65
|
*/
|
|
63
66
|
pollId: number;
|
|
64
67
|
maciContractAddress: Hex;
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
approval: string;
|
|
68
|
+
sessionKeyAddress?: Hex;
|
|
69
|
+
approval?: string;
|
|
68
70
|
/**
|
|
69
71
|
* Chain Name
|
|
70
72
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../../ts/proof/dto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../../ts/proof/dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAI3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,qBAAa,gBAAgB;IAC3B;;OAEG;IAQH,IAAI,EAAG,MAAM,CAAC;IAEd;;OAEG;IAMH,mBAAmB,EAAG,MAAM,CAAC;IAE7B;;OAEG;IAMH,IAAI,EAAG,KAAK,CAAC;IAEb;;OAEG;IASH,8BAA8B,EAAG,MAAM,CAAC;IAExC;;OAEG;IASH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IASH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IAWH,cAAc,CAAC,EAAE,MAAM,CAAC;IASxB,iBAAiB,CAAC,EAAE,GAAG,CAAC;IASxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IAMH,KAAK,EAAG,kBAAkB,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB;;OAEG;IAQH,IAAI,EAAG,MAAM,CAAC;IAOd,mBAAmB,EAAG,MAAM,CAAC;IAS7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAS3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IAMH,KAAK,EAAG,kBAAkB,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B;;OAEG;IAQH,MAAM,EAAG,MAAM,CAAC;IAOhB,mBAAmB,EAAG,GAAG,CAAC;IAS1B,iBAAiB,CAAC,EAAE,GAAG,CAAC;IASxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IAMH,KAAK,EAAG,kBAAkB,CAAC;CAC5B"}
|
package/build/ts/proof/dto.js
CHANGED
|
@@ -7,8 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
+
import { EMode } from "@maci-protocol/sdk";
|
|
10
11
|
import { ApiProperty } from "@nestjs/swagger";
|
|
11
|
-
import {
|
|
12
|
+
import { IsEnum, IsEthereumAddress, IsInt, IsOptional, IsString, Length, Max, Min } from "class-validator";
|
|
12
13
|
import { ESupportedNetworks } from "../common";
|
|
13
14
|
/**
|
|
14
15
|
* Data transfer object for generate proof
|
|
@@ -23,13 +24,9 @@ export class GenerateProofDto {
|
|
|
23
24
|
*/
|
|
24
25
|
maciContractAddress;
|
|
25
26
|
/**
|
|
26
|
-
*
|
|
27
|
+
* Voting mode
|
|
27
28
|
*/
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Whether to use Qv or NonQv
|
|
31
|
-
*/
|
|
32
|
-
useQuadraticVoting;
|
|
29
|
+
mode;
|
|
33
30
|
/**
|
|
34
31
|
* Encrypted coordinator private key with RSA public key (see .env.example)
|
|
35
32
|
*/
|
|
@@ -46,6 +43,12 @@ export class GenerateProofDto {
|
|
|
46
43
|
* Blocks per batch for event processing
|
|
47
44
|
*/
|
|
48
45
|
blocksPerBatch;
|
|
46
|
+
sessionKeyAddress;
|
|
47
|
+
approval;
|
|
48
|
+
/**
|
|
49
|
+
* Chain Name
|
|
50
|
+
*/
|
|
51
|
+
chain;
|
|
49
52
|
}
|
|
50
53
|
__decorate([
|
|
51
54
|
ApiProperty({
|
|
@@ -67,20 +70,12 @@ __decorate([
|
|
|
67
70
|
], GenerateProofDto.prototype, "maciContractAddress", void 0);
|
|
68
71
|
__decorate([
|
|
69
72
|
ApiProperty({
|
|
70
|
-
description: "
|
|
71
|
-
type:
|
|
72
|
-
}),
|
|
73
|
-
IsEthereumAddress(),
|
|
74
|
-
__metadata("design:type", String)
|
|
75
|
-
], GenerateProofDto.prototype, "tallyContractAddress", void 0);
|
|
76
|
-
__decorate([
|
|
77
|
-
ApiProperty({
|
|
78
|
-
description: "Whether to use quadratic voting or not",
|
|
79
|
-
type: Boolean,
|
|
73
|
+
description: "Voting mode (qv: 0, non-qv: 1, full: 2)",
|
|
74
|
+
type: Number,
|
|
80
75
|
}),
|
|
81
|
-
|
|
82
|
-
__metadata("design:type",
|
|
83
|
-
], GenerateProofDto.prototype, "
|
|
76
|
+
IsEnum(EMode),
|
|
77
|
+
__metadata("design:type", Number)
|
|
78
|
+
], GenerateProofDto.prototype, "mode", void 0);
|
|
84
79
|
__decorate([
|
|
85
80
|
ApiProperty({
|
|
86
81
|
description: "Encrypted coordinator private key with RSA public key (see README.md)",
|
|
@@ -127,6 +122,34 @@ __decorate([
|
|
|
127
122
|
IsOptional(),
|
|
128
123
|
__metadata("design:type", Number)
|
|
129
124
|
], GenerateProofDto.prototype, "blocksPerBatch", void 0);
|
|
125
|
+
__decorate([
|
|
126
|
+
ApiProperty({
|
|
127
|
+
description: "Session key address",
|
|
128
|
+
type: String,
|
|
129
|
+
required: false,
|
|
130
|
+
}),
|
|
131
|
+
IsOptional(),
|
|
132
|
+
IsEthereumAddress(),
|
|
133
|
+
__metadata("design:type", String)
|
|
134
|
+
], GenerateProofDto.prototype, "sessionKeyAddress", void 0);
|
|
135
|
+
__decorate([
|
|
136
|
+
ApiProperty({
|
|
137
|
+
description: "Approval",
|
|
138
|
+
type: String,
|
|
139
|
+
required: false,
|
|
140
|
+
}),
|
|
141
|
+
IsOptional(),
|
|
142
|
+
IsString(),
|
|
143
|
+
__metadata("design:type", String)
|
|
144
|
+
], GenerateProofDto.prototype, "approval", void 0);
|
|
145
|
+
__decorate([
|
|
146
|
+
ApiProperty({
|
|
147
|
+
description: "Chain to which to deploy the contract(s)",
|
|
148
|
+
enum: ESupportedNetworks,
|
|
149
|
+
}),
|
|
150
|
+
IsEnum(ESupportedNetworks),
|
|
151
|
+
__metadata("design:type", String)
|
|
152
|
+
], GenerateProofDto.prototype, "chain", void 0);
|
|
130
153
|
/**
|
|
131
154
|
* Data transfer object for merge trees
|
|
132
155
|
*/
|
|
@@ -165,7 +188,9 @@ __decorate([
|
|
|
165
188
|
ApiProperty({
|
|
166
189
|
description: "Session key address",
|
|
167
190
|
type: String,
|
|
191
|
+
required: false,
|
|
168
192
|
}),
|
|
193
|
+
IsOptional(),
|
|
169
194
|
IsEthereumAddress(),
|
|
170
195
|
__metadata("design:type", String)
|
|
171
196
|
], MergeTreesDto.prototype, "sessionKeyAddress", void 0);
|
|
@@ -173,7 +198,9 @@ __decorate([
|
|
|
173
198
|
ApiProperty({
|
|
174
199
|
description: "Approval",
|
|
175
200
|
type: String,
|
|
201
|
+
required: false,
|
|
176
202
|
}),
|
|
203
|
+
IsOptional(),
|
|
177
204
|
IsString(),
|
|
178
205
|
__metadata("design:type", String)
|
|
179
206
|
], MergeTreesDto.prototype, "approval", void 0);
|
|
@@ -194,7 +221,6 @@ export class SubmitProofsDto {
|
|
|
194
221
|
*/
|
|
195
222
|
pollId;
|
|
196
223
|
maciContractAddress;
|
|
197
|
-
tallyContractAddress;
|
|
198
224
|
sessionKeyAddress;
|
|
199
225
|
approval;
|
|
200
226
|
/**
|
|
@@ -220,19 +246,13 @@ __decorate([
|
|
|
220
246
|
IsEthereumAddress(),
|
|
221
247
|
__metadata("design:type", String)
|
|
222
248
|
], SubmitProofsDto.prototype, "maciContractAddress", void 0);
|
|
223
|
-
__decorate([
|
|
224
|
-
ApiProperty({
|
|
225
|
-
description: "Tally contract address",
|
|
226
|
-
type: String,
|
|
227
|
-
}),
|
|
228
|
-
IsEthereumAddress(),
|
|
229
|
-
__metadata("design:type", String)
|
|
230
|
-
], SubmitProofsDto.prototype, "tallyContractAddress", void 0);
|
|
231
249
|
__decorate([
|
|
232
250
|
ApiProperty({
|
|
233
251
|
description: "Session key address",
|
|
234
252
|
type: String,
|
|
253
|
+
required: false,
|
|
235
254
|
}),
|
|
255
|
+
IsOptional(),
|
|
236
256
|
IsEthereumAddress(),
|
|
237
257
|
__metadata("design:type", String)
|
|
238
258
|
], SubmitProofsDto.prototype, "sessionKeyAddress", void 0);
|
|
@@ -240,7 +260,9 @@ __decorate([
|
|
|
240
260
|
ApiProperty({
|
|
241
261
|
description: "Approval",
|
|
242
262
|
type: String,
|
|
263
|
+
required: false,
|
|
243
264
|
}),
|
|
265
|
+
IsOptional(),
|
|
244
266
|
IsString(),
|
|
245
267
|
__metadata("design:type", String)
|
|
246
268
|
], SubmitProofsDto.prototype, "approval", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dto.js","sourceRoot":"","sources":["../../../ts/proof/dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dto.js","sourceRoot":"","sources":["../../../ts/proof/dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { IGenerateData, IMergeArgs } from "./types";
|
|
2
|
-
import type {
|
|
2
|
+
import type { ITallyData } from "@maci-protocol/sdk";
|
|
3
3
|
import { FileService } from "../file/file.service";
|
|
4
|
+
import { IGetPublicKeyData } from "../file/types";
|
|
4
5
|
import { GenerateProofDto, SubmitProofsDto } from "./dto";
|
|
5
6
|
import { ProofGeneratorService } from "./proof.service";
|
|
6
7
|
export declare class ProofController {
|
|
@@ -35,7 +36,7 @@ export declare class ProofController {
|
|
|
35
36
|
* Submit proofs on-chain api method
|
|
36
37
|
* @param args - submit proofs on-chain args
|
|
37
38
|
*/
|
|
38
|
-
submit(args: SubmitProofsDto): Promise<
|
|
39
|
+
submit(args: SubmitProofsDto): Promise<ITallyData>;
|
|
39
40
|
/**
|
|
40
41
|
* Get RSA public key for authorization setup
|
|
41
42
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proof.controller.d.ts","sourceRoot":"","sources":["../../../ts/proof/proof.controller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"proof.controller.d.ts","sourceRoot":"","sources":["../../../ts/proof/proof.controller.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAiB,eAAe,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,qBAIa,eAAe;IAaxB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAb9B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAE3D;;;;;OAKG;gBAEgB,qBAAqB,EAAE,qBAAqB,EAC5C,WAAW,EAAE,WAAW;IAG3C;;;;;OAKG;IAMG,QAAQ,CAAS,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAOtE;;;;;OAKG;IAMG,KAAK,CAAS,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAOvD;;;OAGG;IAMG,MAAM,CAAS,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAOhE;;;;OAIG;IAKG,YAAY,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAMjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proof.controller.js","sourceRoot":"","sources":["../../../ts/proof/proof.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,iDAAiD;AACjD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3G,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAK/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"proof.controller.js","sourceRoot":"","sources":["../../../ts/proof/proof.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type IGenerateProofsOptions } from "@maci-protocol/sdk";
|
|
2
|
-
import { IProof } from "@maci-protocol/sdk";
|
|
2
|
+
import { IProof, ITallyData } from "@maci-protocol/sdk";
|
|
3
3
|
import type { IGenerateArgs, IGenerateData, IMergeArgs, ISubmitProofsArgs } from "./types";
|
|
4
4
|
import { CryptoService } from "../crypto/crypto.service";
|
|
5
5
|
import { FileService } from "../file/file.service";
|
|
@@ -36,7 +36,7 @@ export declare class ProofGeneratorService {
|
|
|
36
36
|
* @param args - generate proofs arguments
|
|
37
37
|
* @returns - generated proofs for message processing and tally
|
|
38
38
|
*/
|
|
39
|
-
generate({ poll, maciContractAddress,
|
|
39
|
+
generate({ approval, sessionKeyAddress, chain, poll, maciContractAddress, mode, encryptedCoordinatorPrivateKey, startBlock, endBlock, blocksPerBatch, }: IGenerateArgs, options?: IGenerateProofsOptions): Promise<IGenerateData>;
|
|
40
40
|
/**
|
|
41
41
|
* Merge state and message trees
|
|
42
42
|
*
|
|
@@ -49,6 +49,6 @@ export declare class ProofGeneratorService {
|
|
|
49
49
|
*
|
|
50
50
|
* @param args - submit proofs on-chain arguments
|
|
51
51
|
*/
|
|
52
|
-
submit({ maciContractAddress, pollId, chain }: ISubmitProofsArgs): Promise<
|
|
52
|
+
submit({ maciContractAddress, pollId, sessionKeyAddress, approval, chain, }: ISubmitProofsArgs): Promise<ITallyData>;
|
|
53
53
|
}
|
|
54
54
|
//# sourceMappingURL=proof.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proof.service.d.ts","sourceRoot":"","sources":["../../../ts/proof/proof.service.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"proof.service.d.ts","sourceRoot":"","sources":["../../../ts/proof/proof.service.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,sBAAsB,EAI5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAgC,MAAM,oBAAoB,CAAC;AAOtF,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAG3F,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE;;GAEG;AACH,qBACa,qBAAqB;IAe9B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAhBrC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;OAEG;gBAEgB,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,kBAAkB,EAAE,kBAAkB;IAOzD;;;;;OAKG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAY9E;;;;;OAKG;IACG,QAAQ,CACZ,EACE,QAAQ,EACR,iBAAiB,EACjB,KAAK,EACL,IAAI,EACJ,mBAAmB,EACnB,IAAI,EACJ,8BAA8B,EAC9B,UAAU,EACV,QAAQ,EACR,cAAc,GACf,EAAE,aAAa,EAChB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,aAAa,CAAC;IAuEzB;;;;;OAKG;IACG,KAAK,CAAC,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAY9G;;;;OAIG;IACG,MAAM,CAAC,EACX,mBAAmB,EACnB,MAAM,EACN,iBAAiB,EACjB,QAAQ,EACR,KAAK,GACN,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;CAiB3C"}
|
|
@@ -8,15 +8,14 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
10
|
var ProofGeneratorService_1;
|
|
11
|
-
import { Keypair,
|
|
12
|
-
import { Deployment, EContracts,
|
|
11
|
+
import { Keypair, PrivateKey, PublicKey } from "@maci-protocol/domainobjs";
|
|
12
|
+
import { Deployment, EContracts, getPoll, mergeSignups, EMode, } from "@maci-protocol/sdk";
|
|
13
|
+
import { generateProofs, proveOnChain } from "@maci-protocol/sdk";
|
|
13
14
|
import { Logger, Injectable } from "@nestjs/common";
|
|
14
|
-
import { ZeroAddress } from "ethers";
|
|
15
15
|
import hre from "hardhat";
|
|
16
16
|
import fs from "fs";
|
|
17
17
|
import path from "path";
|
|
18
18
|
import { ErrorCodes } from "../common";
|
|
19
|
-
import { getPublicClient } from "../common/accountAbstraction";
|
|
20
19
|
import { CryptoService } from "../crypto/crypto.service";
|
|
21
20
|
import { FileService } from "../file/file.service";
|
|
22
21
|
import { SessionKeysService } from "../sessionKeys/sessionKeys.service";
|
|
@@ -65,13 +64,9 @@ let ProofGeneratorService = ProofGeneratorService_1 = class ProofGeneratorServic
|
|
|
65
64
|
* @param args - generate proofs arguments
|
|
66
65
|
* @returns - generated proofs for message processing and tally
|
|
67
66
|
*/
|
|
68
|
-
async generate({ poll, maciContractAddress,
|
|
67
|
+
async generate({ approval, sessionKeyAddress, chain, poll, maciContractAddress, mode, encryptedCoordinatorPrivateKey, startBlock, endBlock, blocksPerBatch, }, options) {
|
|
69
68
|
try {
|
|
70
|
-
const
|
|
71
|
-
name: EContracts.MACI,
|
|
72
|
-
address: maciContractAddress,
|
|
73
|
-
});
|
|
74
|
-
const signer = await this.deployment.getDeployer();
|
|
69
|
+
const signer = await this.sessionKeysService.getCoordinatorSigner(chain, sessionKeyAddress, approval);
|
|
75
70
|
const pollData = await getPoll({
|
|
76
71
|
maciAddress: maciContractAddress,
|
|
77
72
|
pollId: poll,
|
|
@@ -81,58 +76,40 @@ let ProofGeneratorService = ProofGeneratorService_1 = class ProofGeneratorServic
|
|
|
81
76
|
name: EContracts.Poll,
|
|
82
77
|
address: pollData.address,
|
|
83
78
|
});
|
|
84
|
-
const
|
|
85
|
-
pollContract.coordinatorPubKey(),
|
|
86
|
-
pollContract.stateMerged(),
|
|
87
|
-
]);
|
|
88
|
-
if (!isStateAqMerged) {
|
|
89
|
-
this.logger.error(`Error: ${ErrorCodes.NOT_MERGED_STATE_TREE}, state tree is not merged`);
|
|
90
|
-
throw new Error(ErrorCodes.NOT_MERGED_STATE_TREE.toString());
|
|
91
|
-
}
|
|
79
|
+
const coordinatorPublicKey = await pollContract.coordinatorPublicKey();
|
|
92
80
|
const { privateKey } = await this.fileService.getPrivateKey();
|
|
93
|
-
const maciPrivateKey =
|
|
81
|
+
const maciPrivateKey = PrivateKey.deserialize(this.cryptoService.decrypt(privateKey, encryptedCoordinatorPrivateKey));
|
|
94
82
|
const coordinatorKeypair = new Keypair(maciPrivateKey);
|
|
95
|
-
const publicKey = new
|
|
83
|
+
const publicKey = new PublicKey([
|
|
96
84
|
BigInt(coordinatorPublicKey.x.toString()),
|
|
97
85
|
BigInt(coordinatorPublicKey.y.toString()),
|
|
98
86
|
]);
|
|
99
|
-
if (!coordinatorKeypair.
|
|
87
|
+
if (!coordinatorKeypair.publicKey.equals(publicKey)) {
|
|
100
88
|
this.logger.error(`Error: ${ErrorCodes.PRIVATE_KEY_MISMATCH}, wrong private key`);
|
|
101
89
|
throw new Error(ErrorCodes.PRIVATE_KEY_MISMATCH.toString());
|
|
102
90
|
}
|
|
103
|
-
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
pollId: poll,
|
|
91
|
+
// There are only QV and Non-QV modes
|
|
92
|
+
const tally = this.fileService.getZkeyFilePaths(process.env.COORDINATOR_TALLY_ZKEY_NAME, mode === EMode.QV ? mode : EMode.NON_QV);
|
|
93
|
+
const messageProcessor = this.fileService.getZkeyFilePaths(process.env.COORDINATOR_MESSAGE_PROCESS_ZKEY_NAME, mode);
|
|
94
|
+
const { processProofs, tallyProofs, tallyData } = await generateProofs({
|
|
95
|
+
outputDir: path.resolve("./proofs"),
|
|
96
|
+
coordinatorPrivateKey: maciPrivateKey.serialize(),
|
|
110
97
|
signer,
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
},
|
|
117
|
-
});
|
|
118
|
-
const foundPoll = maciState.polls.get(BigInt(poll));
|
|
119
|
-
if (!foundPoll) {
|
|
120
|
-
this.logger.error(`Error: ${ErrorCodes.POLL_NOT_FOUND}, Poll ${poll} not found in maci state`);
|
|
121
|
-
throw new Error(ErrorCodes.POLL_NOT_FOUND.toString());
|
|
122
|
-
}
|
|
123
|
-
const proofGenerator = new ProofGenerator({
|
|
124
|
-
poll: foundPoll,
|
|
125
|
-
maciContractAddress,
|
|
126
|
-
tallyContractAddress,
|
|
127
|
-
tally: this.fileService.getZkeyFilePaths(process.env.COORDINATOR_TALLY_ZKEY_NAME, useQuadraticVoting),
|
|
128
|
-
mp: this.fileService.getZkeyFilePaths(process.env.COORDINATOR_MESSAGE_PROCESS_ZKEY_NAME, useQuadraticVoting),
|
|
98
|
+
maciAddress: maciContractAddress,
|
|
99
|
+
pollId: BigInt(poll),
|
|
100
|
+
startBlock,
|
|
101
|
+
endBlock,
|
|
102
|
+
blocksPerBatch,
|
|
129
103
|
rapidsnark: process.env.COORDINATOR_RAPIDSNARK_EXE,
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
104
|
+
mode,
|
|
105
|
+
tallyZkey: tally.zkey,
|
|
106
|
+
tallyWitgen: tally.witgen,
|
|
107
|
+
tallyWasm: tally.wasm,
|
|
108
|
+
processZkey: messageProcessor.zkey,
|
|
109
|
+
processWitgen: messageProcessor.witgen,
|
|
110
|
+
processWasm: messageProcessor.wasm,
|
|
111
|
+
tallyFile: path.resolve("./tally.json"),
|
|
133
112
|
});
|
|
134
|
-
const processProofs = await proofGenerator.generateMpProofs(options);
|
|
135
|
-
const { proofs: tallyProofs, tallyData } = await proofGenerator.generateTallyProofs(hre.network.name, String(hre.network.config.chainId || 1), options);
|
|
136
113
|
return {
|
|
137
114
|
processProofs,
|
|
138
115
|
tallyProofs,
|
|
@@ -151,9 +128,7 @@ let ProofGeneratorService = ProofGeneratorService_1 = class ProofGeneratorServic
|
|
|
151
128
|
* @returns whether the proofs were successfully merged
|
|
152
129
|
*/
|
|
153
130
|
async merge({ maciContractAddress, pollId, approval, sessionKeyAddress, chain }) {
|
|
154
|
-
|
|
155
|
-
const kernelClient = await this.sessionKeysService.generateClientFromSessionKey(sessionKeyAddress, approval, chain);
|
|
156
|
-
const signer = await this.sessionKeysService.getKernelClientSigner(kernelClient);
|
|
131
|
+
const signer = await this.sessionKeysService.getCoordinatorSigner(chain, sessionKeyAddress, approval);
|
|
157
132
|
await mergeSignups({
|
|
158
133
|
maciAddress: maciContractAddress,
|
|
159
134
|
pollId: BigInt(pollId),
|
|
@@ -166,74 +141,19 @@ let ProofGeneratorService = ProofGeneratorService_1 = class ProofGeneratorServic
|
|
|
166
141
|
*
|
|
167
142
|
* @param args - submit proofs on-chain arguments
|
|
168
143
|
*/
|
|
169
|
-
async submit({ maciContractAddress, pollId, chain }) {
|
|
170
|
-
const
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
});
|
|
178
|
-
const pollAddress = pollContracts.poll;
|
|
179
|
-
if (pollAddress.toLowerCase() === ZeroAddress.toLowerCase()) {
|
|
180
|
-
this.logger.error(`Error: ${ErrorCodes.POLL_NOT_FOUND}, Poll ${pollId} not found`);
|
|
181
|
-
throw new Error(ErrorCodes.POLL_NOT_FOUND.toString());
|
|
182
|
-
}
|
|
183
|
-
// check if state tree has been merged
|
|
184
|
-
const isStateMerged = await publicClient.readContract({
|
|
185
|
-
address: pollAddress,
|
|
186
|
-
abi: PollFactory.abi,
|
|
187
|
-
functionName: "stateMerged",
|
|
144
|
+
async submit({ maciContractAddress, pollId, sessionKeyAddress, approval, chain, }) {
|
|
145
|
+
const signer = await this.sessionKeysService.getCoordinatorSigner(chain, sessionKeyAddress, approval);
|
|
146
|
+
const tallyData = await proveOnChain({
|
|
147
|
+
pollId: BigInt(pollId),
|
|
148
|
+
maciAddress: maciContractAddress,
|
|
149
|
+
proofDir: "./proofs",
|
|
150
|
+
tallyFile: "./tally.json",
|
|
151
|
+
signer,
|
|
188
152
|
});
|
|
189
|
-
if (!
|
|
190
|
-
|
|
191
|
-
throw new Error(ErrorCodes.NOT_MERGED_STATE_TREE.toString());
|
|
153
|
+
if (!tallyData) {
|
|
154
|
+
throw new Error("Tally data is undefined");
|
|
192
155
|
}
|
|
193
|
-
|
|
194
|
-
this.deployment.getContract({
|
|
195
|
-
name: EContracts.MACI,
|
|
196
|
-
address: maciContractAddress,
|
|
197
|
-
}),
|
|
198
|
-
this.deployment.getContract({
|
|
199
|
-
name: EContracts.MessageProcessor,
|
|
200
|
-
address: pollContracts.messageProcessor,
|
|
201
|
-
}),
|
|
202
|
-
this.deployment.getContract({
|
|
203
|
-
name: EContracts.Poll,
|
|
204
|
-
address: pollContracts.poll,
|
|
205
|
-
}),
|
|
206
|
-
this.deployment.getContract({
|
|
207
|
-
name: EContracts.Tally,
|
|
208
|
-
address: pollContracts.tally,
|
|
209
|
-
}),
|
|
210
|
-
this.deployment.getContract({ name: EContracts.VkRegistry }),
|
|
211
|
-
this.deployment.getContract({ name: EContracts.Verifier }),
|
|
212
|
-
]);
|
|
213
|
-
const prover = new Prover({
|
|
214
|
-
maciContract,
|
|
215
|
-
mpContract,
|
|
216
|
-
pollContract,
|
|
217
|
-
tallyContract,
|
|
218
|
-
vkRegistryContract,
|
|
219
|
-
verifierContract,
|
|
220
|
-
});
|
|
221
|
-
const data = {
|
|
222
|
-
processProofs: await this.readProofs(path.resolve("./proofs"), "process"),
|
|
223
|
-
tallyProofs: await this.readProofs(path.resolve("./proofs"), "tally"),
|
|
224
|
-
};
|
|
225
|
-
// prove message processing
|
|
226
|
-
await prover.proveMessageProcessing(data.processProofs);
|
|
227
|
-
// read tally data
|
|
228
|
-
const tallyData = await fs.promises
|
|
229
|
-
.readFile("./tally.json", "utf8")
|
|
230
|
-
.then((result) => JSON.parse(result));
|
|
231
|
-
// prove tally
|
|
232
|
-
await prover.proveTally(data.tallyProofs);
|
|
233
|
-
// submit results
|
|
234
|
-
const voteOptions = Number(await pollContract.voteOptions());
|
|
235
|
-
await prover.submitResults(tallyData, voteOptions);
|
|
236
|
-
return true;
|
|
156
|
+
return tallyData;
|
|
237
157
|
}
|
|
238
158
|
};
|
|
239
159
|
ProofGeneratorService = ProofGeneratorService_1 = __decorate([
|