fvm_shared/sector/
post.rs1use cid::Cid;
6use fvm_ipld_encoding::strict_bytes;
7
8use super::*;
9use crate::ActorID;
10use crate::randomness::Randomness;
11
12pub type PoStRandomness = Randomness;
14
15#[derive(Debug, PartialEq, Clone, Eq, Serialize_tuple, Deserialize_tuple)]
17pub struct SectorInfo {
18 pub proof: RegisteredSealProof,
20 pub sector_number: SectorNumber,
21 pub sealed_cid: Cid,
22}
23
24#[derive(Debug, PartialEq, Clone, Eq, Serialize_tuple, Deserialize_tuple)]
26pub struct PoStProof {
27 pub post_proof: RegisteredPoStProof,
28 #[serde(with = "strict_bytes")]
29 pub proof_bytes: Vec<u8>,
30}
31
32#[cfg(feature = "arb")]
33impl quickcheck::Arbitrary for PoStProof {
34 fn arbitrary(g: &mut quickcheck::Gen) -> Self {
35 let registered_postproof = g
36 .choose(&[
37 RegisteredPoStProof::StackedDRGWinning2KiBV1,
38 RegisteredPoStProof::StackedDRGWinning8MiBV1,
39 RegisteredPoStProof::StackedDRGWinning512MiBV1,
40 RegisteredPoStProof::StackedDRGWinning32GiBV1,
41 RegisteredPoStProof::StackedDRGWinning64GiBV1,
42 RegisteredPoStProof::StackedDRGWindow2KiBV1P1,
43 RegisteredPoStProof::StackedDRGWindow8MiBV1P1,
44 RegisteredPoStProof::StackedDRGWindow512MiBV1P1,
45 RegisteredPoStProof::StackedDRGWindow32GiBV1P1,
46 RegisteredPoStProof::StackedDRGWindow64GiBV1P1,
47 ])
48 .unwrap();
49 PoStProof {
50 post_proof: *registered_postproof,
51 proof_bytes: Vec::arbitrary(g),
52 }
53 }
54}
55
56#[derive(Debug, PartialEq, Default, Clone, Eq, Serialize_tuple, Deserialize_tuple)]
59pub struct WinningPoStVerifyInfo {
60 pub randomness: PoStRandomness,
61 pub proofs: Vec<PoStProof>,
62 pub challenge_sectors: Vec<SectorInfo>,
63 pub prover: ActorID,
65}
66
67#[derive(Debug, PartialEq, Default, Clone, Eq, Serialize_tuple, Deserialize_tuple)]
69pub struct WindowPoStVerifyInfo {
70 pub randomness: PoStRandomness,
71 pub proofs: Vec<PoStProof>,
72 pub challenged_sectors: Vec<SectorInfo>,
73 pub prover: ActorID,
74}
75
76#[derive(Debug, PartialEq, Default, Clone, Eq, Serialize_tuple, Deserialize_tuple)]
78pub struct OnChainWindowPoStVerifyInfo {
79 pub proofs: Vec<PoStProof>,
80}