mirror of
https://github.com/logos-storage/logos-storage-proofs.git
synced 2026-01-02 13:33:10 +00:00
add mpack proof func
This commit is contained in:
parent
50009d46d1
commit
60e341912f
@ -81,6 +81,44 @@ impl StorageProofs {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn prove_mpack(
|
||||||
|
&mut self,
|
||||||
|
proof_bytes: &mut Vec<u8>,
|
||||||
|
public_inputs_bytes: &mut Vec<u8>,
|
||||||
|
) -> Result<(), String> {
|
||||||
|
|
||||||
|
let mut builder = self.builder.clone();
|
||||||
|
|
||||||
|
// vec of vecs is flattened, since wasm expects a contiguous array in memory
|
||||||
|
|
||||||
|
// chunks.iter().for_each(|c| builder.push_input("chunks", *c));
|
||||||
|
|
||||||
|
// siblings
|
||||||
|
// .iter()
|
||||||
|
// .for_each(|c| builder.push_input("siblings", *c));
|
||||||
|
|
||||||
|
// hashes.iter().for_each(|c| builder.push_input("hashes", *c));
|
||||||
|
|
||||||
|
// path.iter().for_each(|c| builder.push_input("path", *c));
|
||||||
|
|
||||||
|
// builder.push_input("root", root);
|
||||||
|
// builder.push_input("salt", salt);
|
||||||
|
|
||||||
|
let circuit = builder.build()
|
||||||
|
.map_err(|e| e.to_string())?;
|
||||||
|
let inputs = circuit
|
||||||
|
.get_public_inputs()
|
||||||
|
.ok_or("Unable to get public inputs!")?;
|
||||||
|
let proof = prove(circuit, &self.params, &mut self.rng).map_err(|e| e.to_string())?;
|
||||||
|
|
||||||
|
proof.serialize(proof_bytes).map_err(|e| e.to_string())?;
|
||||||
|
inputs
|
||||||
|
.serialize(public_inputs_bytes)
|
||||||
|
.map_err(|e| e.to_string())?;
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
pub fn verify<RR: Read>(
|
pub fn verify<RR: Read>(
|
||||||
&mut self,
|
&mut self,
|
||||||
proof_bytes: RR,
|
proof_bytes: RR,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user