求助,如何获取preProof的内容 #228
-
class ProgramState extends Struct({
treeRoot: Field,
approvalNum?: Field,
rejectedNum?: Field,
}) { }
let VoteProgram = ZkProgram({
name: 'vote-system',
// publicInput: Field,
publicOutput: ProgramState,
methods: {
baseCase: {
privateInputs: [Field, Field, Field],
async method(treeRoot: Field, approvalNum: Field, rejectedNum: Field) {
approvalNum.assertEquals(Field(0));
rejectedNum.assertEquals(Field(0));
return new ProgramState({
treeRoot,
approvalNum,
rejectedNum,
});
},
},
voteApprovalCase: {
privateInputs: [MerkleTreeWitness, Field, Field, SelfProof],
async method(path: MerkleTreeWitness, account: Field, approvalNum: Field, preProof: SelfProof<Field, void>) {
const jsonProof = preProof.toJSON(); // 此行代码编译不通过
const [treeRoot, preApprovalNum, preRejectedNum] = jsonProof.publicOutput;
path.calculateRoot(Poseidon.hash([account])).assertEquals(treeRoot);
approvalNum.assertEquals(Field(preApprovalNum));
return new ProgramState({
treeRoot: Field(treeRoot),
approvalNum: approvalNum,
rejectedNum: Field(preRejectedNum),
});
},
},
voteRejectedCase: {
// ...
},
},
}); 问题:
const jsonProof = preProof.toJSON();
const [treeRoot, preApprovalNum, preRejectedNum] = jsonProof.publicOutput; |
Beta Was this translation helpful? Give feedback.
Answered by
zilong-dai
Nov 29, 2024
Replies: 1 comment 1 reply
-
电路中好像用不了 |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
你转成 json 是想把
publicinput
,publicoutput
打印出来吗? 可以用Field.toBigInt
打印 Field 的值